Files
CLIProxyAPI-auto-install-on…/static/management.html
T
2026-10-03 23:10:49 +07:00

170 lines
2.8 MiB
Plaintext
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!doctype html>
<html lang="zh-CN" translate="no" class="notranslate">
<head>
<meta charset="UTF-8" />
<meta name="google" content="notranslate" />
<link rel="icon" type="image/svg+xml" href="data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20aria-hidden%3D%22true%22%20role%3D%22img%22%20class%3D%22iconify%20iconify--logos%22%20width%3D%2231.88%22%20height%3D%2232%22%20preserveAspectRatio%3D%22xMidYMid%20meet%22%20viewBox%3D%220%200%20256%20257%22%3E%3Cdefs%3E%3ClinearGradient%20id%3D%22IconifyId1813088fe1fbc01fb466%22%20x1%3D%22-.828%25%22%20x2%3D%2257.636%25%22%20y1%3D%227.652%25%22%20y2%3D%2278.411%25%22%3E%3Cstop%20offset%3D%220%25%22%20stop-color%3D%22%2341D1FF%22%3E%3C%2Fstop%3E%3Cstop%20offset%3D%22100%25%22%20stop-color%3D%22%23BD34FE%22%3E%3C%2Fstop%3E%3C%2FlinearGradient%3E%3ClinearGradient%20id%3D%22IconifyId1813088fe1fbc01fb467%22%20x1%3D%2243.376%25%22%20x2%3D%2250.316%25%22%20y1%3D%222.242%25%22%20y2%3D%2289.03%25%22%3E%3Cstop%20offset%3D%220%25%22%20stop-color%3D%22%23FFEA83%22%3E%3C%2Fstop%3E%3Cstop%20offset%3D%228.333%25%22%20stop-color%3D%22%23FFDD35%22%3E%3C%2Fstop%3E%3Cstop%20offset%3D%22100%25%22%20stop-color%3D%22%23FFA800%22%3E%3C%2Fstop%3E%3C%2FlinearGradient%3E%3C%2Fdefs%3E%3Cpath%20fill%3D%22url(%23IconifyId1813088fe1fbc01fb466)%22%20d%3D%22M255.153%2037.938L134.897%20252.976c-2.483%204.44-8.862%204.466-11.382.048L.875%2037.958c-2.746-4.814%201.371-10.646%206.827-9.67l120.385%2021.517a6.537%206.537%200%200%200%202.322-.004l117.867-21.483c5.438-.991%209.574%204.796%206.877%209.62Z%22%3E%3C%2Fpath%3E%3Cpath%20fill%3D%22url(%23IconifyId1813088fe1fbc01fb467)%22%20d%3D%22M185.432.063L96.44%2017.501a3.268%203.268%200%200%200-2.634%203.014l-5.474%2092.456a3.268%203.268%200%200%200%203.997%203.378l24.777-5.718c2.318-.535%204.413%201.507%203.936%203.838l-7.361%2036.047c-.495%202.426%201.782%204.5%204.151%203.78l15.304-4.649c2.372-.72%204.652%201.36%204.15%203.788l-11.698%2056.621c-.732%203.542%203.979%205.473%205.943%202.437l1.313-2.028l72.516-144.72c1.215-2.423-.88-5.186-3.54-4.672l-25.505%204.922c-2.396.462-4.435-1.77-3.759-4.114l16.646-57.705c.677-2.35-1.37-4.583-3.769-4.113Z%22%3E%3C%2Fpath%3E%3C%2Fsvg%3E" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>CLI Proxy API Management Center</title>
<script type="module" crossorigin>var e=Object.create,t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,r=Object.getOwnPropertyNames,i=Object.getPrototypeOf,a=Object.prototype.hasOwnProperty,o=(e,t,n)=>()=>{if(n)throw n[0];try{return e&&(t=e(e=0)),t}catch(e){throw n=[e],e}},s=(e,t)=>()=>(t||(e((t={exports:{}}).exports,t),e=null),t.exports),c=(e,n)=>{let r={};for(var i in e)t(r,i,{get:e[i],enumerable:!0});return n||t(r,Symbol.toStringTag,{value:`Module`}),r},l=(e,i,o,s)=>{if(i&&typeof i==`object`||typeof i==`function`)for(var c=r(i),l=0,u=c.length,d;l<u;l++)d=c[l],!a.call(e,d)&&d!==o&&t(e,d,{get:(e=>i[e]).bind(null,d),enumerable:!(s=n(i,d))||s.enumerable});return e},u=(n,r,a)=>(a=n==null?{}:e(i(n)),l(r||!n||!n.__esModule?t(a,`default`,{value:n,enumerable:!0}):a,n));(function(){let e=document.createElement(`link`).relList;if(e&&e.supports&&e.supports(`modulepreload`))return;for(let e of document.querySelectorAll(`link[rel="modulepreload"]`))n(e);new MutationObserver(e=>{for(let t of e)if(t.type===`childList`)for(let e of t.addedNodes)e.tagName===`LINK`&&e.rel===`modulepreload`&&n(e)}).observe(document,{childList:!0,subtree:!0});function t(e){let t={};return e.integrity&&(t.integrity=e.integrity),e.referrerPolicy&&(t.referrerPolicy=e.referrerPolicy),e.crossOrigin===`use-credentials`?t.credentials=`include`:e.crossOrigin===`anonymous`?t.credentials=`omit`:t.credentials=`same-origin`,t}function n(e){if(e.ep)return;e.ep=!0;let n=t(e);fetch(e.href,n)}})();var d=s((e=>{var t=Symbol.for(`react.transitional.element`),n=Symbol.for(`react.portal`),r=Symbol.for(`react.fragment`),i=Symbol.for(`react.strict_mode`),a=Symbol.for(`react.profiler`),o=Symbol.for(`react.consumer`),s=Symbol.for(`react.context`),c=Symbol.for(`react.forward_ref`),l=Symbol.for(`react.suspense`),u=Symbol.for(`react.memo`),d=Symbol.for(`react.lazy`),f=Symbol.for(`react.activity`),p=Symbol.iterator;function m(e){return typeof e!=`object`||!e?null:(e=p&&e[p]||e[`@@iterator`],typeof e==`function`?e:null)}var h={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},g=Object.assign,_={};function v(e,t,n){this.props=e,this.context=t,this.refs=_,this.updater=n||h}v.prototype.isReactComponent={},v.prototype.setState=function(e,t){if(typeof e!=`object`&&typeof e!=`function`&&e!=null)throw Error(`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`)},v.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,`forceUpdate`)};function y(){}y.prototype=v.prototype;function b(e,t,n){this.props=e,this.context=t,this.refs=_,this.updater=n||h}var x=b.prototype=new y;x.constructor=b,g(x,v.prototype),x.isPureReactComponent=!0;var S=Array.isArray;function C(){}var w={H:null,A:null,T:null,S:null},T=Object.prototype.hasOwnProperty;function E(e,n,r){var i=r.ref;return{$$typeof:t,type:e,key:n,ref:i===void 0?null:i,props:r}}function D(e,t){return E(e.type,t,e.props)}function O(e){return typeof e==`object`&&!!e&&e.$$typeof===t}function k(e){var t={"=":`=0`,":":`=2`};return`$`+e.replace(/[=:]/g,function(e){return t[e]})}var A=/\/+/g;function j(e,t){return typeof e==`object`&&e&&e.key!=null?k(``+e.key):t.toString(36)}function M(e){switch(e.status){case`fulfilled`:return e.value;case`rejected`:throw e.reason;default:switch(typeof e.status==`string`?e.then(C,C):(e.status=`pending`,e.then(function(t){e.status===`pending`&&(e.status=`fulfilled`,e.value=t)},function(t){e.status===`pending`&&(e.status=`rejected`,e.reason=t)})),e.status){case`fulfilled`:return e.value;case`rejected`:throw e.reason}}throw e}function N(e,r,i,a,o){var s=typeof e;(s===`undefined`||s===`boolean`)&&(e=null);var c=!1;if(e===null)c=!0;else switch(s){case`bigint`:case`string`:case`number`:c=!0;break;case`object`:switch(e.$$typeof){case t:case n:c=!0;break;case d:return c=e._init,N(c(e._payload),r,i,a,o)}}if(c)return o=o(e),c=a===``?`.`+j(e,0):a,S(o)?(i=``,c!=null&&(i=c.replace(A,`$&/`)+`/`),N(o,r,i,``,function(e){return e})):o!=null&&(O(o)&&(o=D(o,i+(o.key==null||e&&e.key===o.key?``:(``+o.key).replace(A,`$&/`)+`/`)+c)),r.push(o)),1;c=0;var l=a===``?`.`:a+`:`;if(S(e))for(var u=0;u<e.length;u++)a=e[u],s=l+j(a,u),c+=N(a,r,i,s,o);else if(u=m(e),typeof u==`function`)for(e=u.call(e),u=0;!(a=e.next()).done;)a=a.value,s=l+j(a,u++),c+=N(a,r,i,s,o);else if(s===`object`){if(typeof e.then==`function`)return N(M(e),r,i,a,o);throw r=String(e),Error(`Objects are not valid as a React child (found: `+(r===`[object Object]`?`object with keys {`+Object.keys(e).join(`, `)+`}`:r)+`). If you meant to render a collection of children, use an array instead.`)}return c}function ee(e,t,n){if(e==null)return e;var r=[],i=0;return N(e,r,``,``,function(e){return t.call(n,e,i++)}),r}function P(e){if(e._status===-1){var t=e._result;t=t(),t.then(function(t){(e._status===0||e._status===-1)&&(e._status=1,e._result=t)},function(t){(e._status===0||e._status===-1)&&(e._status=2,e._result=t)}),e._status===-1&&(e._status=0,e._result=t)}if(e._status===1)return e._result.default;throw e._result}var F=typeof reportError==`function`?reportError:function(e){if(typeof window==`object`&&typeof window.ErrorEvent==`function`){var t=new window.ErrorEvent(`error`,{bubbles:!0,cancelable:!0,message:typeof e==`object`&&e&&typeof e.message==`string`?String(e.message):String(e),error:e});if(!window.dispatchEvent(t))return}else if(typeof process==`object`&&typeof process.emit==`function`){process.emit(`uncaughtException`,e);return}console.error(e)},I={map:ee,forEach:function(e,t,n){ee(e,function(){t.apply(this,arguments)},n)},count:function(e){var t=0;return ee(e,function(){t++}),t},toArray:function(e){return ee(e,function(e){return e})||[]},only:function(e){if(!O(e))throw Error(`React.Children.only expected to receive a single React element child.`);return e}};e.Activity=f,e.Children=I,e.Component=v,e.Fragment=r,e.Profiler=a,e.PureComponent=b,e.StrictMode=i,e.Suspense=l,e.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=w,e.__COMPILER_RUNTIME={__proto__:null,c:function(e){return w.H.useMemoCache(e)}},e.cache=function(e){return function(){return e.apply(null,arguments)}},e.cacheSignal=function(){return null},e.cloneElement=function(e,t,n){if(e==null)throw Error(`The argument must be a React element, but you passed `+e+`.`);var r=g({},e.props),i=e.key;if(t!=null)for(a in t.key!==void 0&&(i=``+t.key),t)!T.call(t,a)||a===`key`||a===`__self`||a===`__source`||a===`ref`&&t.ref===void 0||(r[a]=t[a]);var a=arguments.length-2;if(a===1)r.children=n;else if(1<a){for(var o=Array(a),s=0;s<a;s++)o[s]=arguments[s+2];r.children=o}return E(e.type,i,r)},e.createContext=function(e){return e={$$typeof:s,_currentValue:e,_currentValue2:e,_threadCount:0,Provider:null,Consumer:null},e.Provider=e,e.Consumer={$$typeof:o,_context:e},e},e.createElement=function(e,t,n){var r,i={},a=null;if(t!=null)for(r in t.key!==void 0&&(a=``+t.key),t)T.call(t,r)&&r!==`key`&&r!==`__self`&&r!==`__source`&&(i[r]=t[r]);var o=arguments.length-2;if(o===1)i.children=n;else if(1<o){for(var s=Array(o),c=0;c<o;c++)s[c]=arguments[c+2];i.children=s}if(e&&e.defaultProps)for(r in o=e.defaultProps,o)i[r]===void 0&&(i[r]=o[r]);return E(e,a,i)},e.createRef=function(){return{current:null}},e.forwardRef=function(e){return{$$typeof:c,render:e}},e.isValidElement=O,e.lazy=function(e){return{$$typeof:d,_payload:{_status:-1,_result:e},_init:P}},e.memo=function(e,t){return{$$typeof:u,type:e,compare:t===void 0?null:t}},e.startTransition=function(e){var t=w.T,n={};w.T=n;try{var r=e(),i=w.S;i!==null&&i(n,r),typeof r==`object`&&r&&typeof r.then==`function`&&r.then(C,F)}catch(e){F(e)}finally{t!==null&&n.types!==null&&(t.types=n.types),w.T=t}},e.unstable_useCacheRefresh=function(){return w.H.useCacheRefresh()},e.use=function(e){return w.H.use(e)},e.useActionState=function(e,t,n){return w.H.useActionState(e,t,n)},e.useCallback=function(e,t){return w.H.useCallback(e,t)},e.useContext=function(e){return w.H.useContext(e)},e.useDebugValue=function(){},e.useDeferredValue=function(e,t){return w.H.useDeferredValue(e,t)},e.useEffect=function(e,t){return w.H.useEffect(e,t)},e.useEffectEvent=function(e){return w.H.useEffectEvent(e)},e.useId=function(){return w.H.useId()},e.useImperativeHandle=function(e,t,n){return w.H.useImperativeHandle(e,t,n)},e.useInsertionEffect=function(e,t){return w.H.useInsertionEffect(e,t)},e.useLayoutEffect=function(e,t){return w.H.useLayoutEffect(e,t)},e.useMemo=function(e,t){return w.H.useMemo(e,t)},e.useOptimistic=function(e,t){return w.H.useOptimistic(e,t)},e.useReducer=function(e,t,n){return w.H.useReducer(e,t,n)},e.useRef=function(e){return w.H.useRef(e)},e.useState=function(e){return w.H.useState(e)},e.useSyncExternalStore=function(e,t,n){return w.H.useSyncExternalStore(e,t,n)},e.useTransition=function(){return w.H.useTransition()},e.version=`19.2.7`})),f=s(((e,t)=>{t.exports=d()})),p=s((e=>{function t(e,t){var n=e.length;e.push(t);a:for(;0<n;){var r=n-1>>>1,a=e[r];if(0<i(a,t))e[r]=t,e[n]=a,n=r;else break a}}function n(e){return e.length===0?null:e[0]}function r(e){if(e.length===0)return null;var t=e[0],n=e.pop();if(n!==t){e[0]=n;a:for(var r=0,a=e.length,o=a>>>1;r<o;){var s=2*(r+1)-1,c=e[s],l=s+1,u=e[l];if(0>i(c,n))l<a&&0>i(u,c)?(e[r]=u,e[l]=n,r=l):(e[r]=c,e[s]=n,r=s);else if(l<a&&0>i(u,n))e[r]=u,e[l]=n,r=l;else break a}}return t}function i(e,t){var n=e.sortIndex-t.sortIndex;return n===0?e.id-t.id:n}if(e.unstable_now=void 0,typeof performance==`object`&&typeof performance.now==`function`){var a=performance;e.unstable_now=function(){return a.now()}}else{var o=Date,s=o.now();e.unstable_now=function(){return o.now()-s}}var c=[],l=[],u=1,d=null,f=3,p=!1,m=!1,h=!1,g=!1,_=typeof setTimeout==`function`?setTimeout:null,v=typeof clearTimeout==`function`?clearTimeout:null,y=typeof setImmediate<`u`?setImmediate:null;function b(e){for(var i=n(l);i!==null;){if(i.callback===null)r(l);else if(i.startTime<=e)r(l),i.sortIndex=i.expirationTime,t(c,i);else break;i=n(l)}}function x(e){if(h=!1,b(e),!m)if(n(c)!==null)m=!0,S||(S=!0,O());else{var t=n(l);t!==null&&j(x,t.startTime-e)}}var S=!1,C=-1,w=5,T=-1;function E(){return g?!0:!(e.unstable_now()-T<w)}function D(){if(g=!1,S){var t=e.unstable_now();T=t;var i=!0;try{a:{m=!1,h&&(h=!1,v(C),C=-1),p=!0;var a=f;try{b:{for(b(t),d=n(c);d!==null&&!(d.expirationTime>t&&E());){var o=d.callback;if(typeof o==`function`){d.callback=null,f=d.priorityLevel;var s=o(d.expirationTime<=t);if(t=e.unstable_now(),typeof s==`function`){d.callback=s,b(t),i=!0;break b}d===n(c)&&r(c),b(t)}else r(c);d=n(c)}if(d!==null)i=!0;else{var u=n(l);u!==null&&j(x,u.startTime-t),i=!1}}break a}finally{d=null,f=a,p=!1}i=void 0}}finally{i?O():S=!1}}}var O;if(typeof y==`function`)O=function(){y(D)};else if(typeof MessageChannel<`u`){var k=new MessageChannel,A=k.port2;k.port1.onmessage=D,O=function(){A.postMessage(null)}}else O=function(){_(D,0)};function j(t,n){C=_(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_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`):w=0<e?Math.floor(1e3/e):5},e.unstable_getCurrentPriorityLevel=function(){return f},e.unstable_next=function(e){switch(f){case 1:case 2:case 3:var t=3;break;default:t=f}var n=f;f=t;try{return e()}finally{f=n}},e.unstable_requestPaint=function(){g=!0},e.unstable_runWithPriority=function(e,t){switch(e){case 1:case 2:case 3:case 4:case 5:break;default:e=3}var n=f;f=e;try{return t()}finally{f=n}},e.unstable_scheduleCallback=function(r,i,a){var o=e.unstable_now();switch(typeof a==`object`&&a?(a=a.delay,a=typeof a==`number`&&0<a?o+a:o):a=o,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 s=a+s,r={id:u++,callback:i,priorityLevel:r,startTime:a,expirationTime:s,sortIndex:-1},a>o?(r.sortIndex=a,t(l,r),n(c)===null&&r===n(l)&&(h?(v(C),C=-1):h=!0,j(x,a-o))):(r.sortIndex=s,t(c,r),m||p||(m=!0,S||(S=!0,O()))),r},e.unstable_shouldYield=E,e.unstable_wrapCallback=function(e){var t=f;return function(){var n=f;f=t;try{return e.apply(this,arguments)}finally{f=n}}}})),m=s(((e,t)=>{t.exports=p()})),h=s((e=>{var t=f();function n(e){var t=`https://react.dev/errors/`+e;if(1<arguments.length){t+=`?args[]=`+encodeURIComponent(arguments[1]);for(var n=2;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.`}function r(){}var i={d:{f:r,r:function(){throw Error(n(522))},D:r,C:r,L:r,m:r,X:r,S:r,M:r},p:0,findDOMNode:null},a=Symbol.for(`react.portal`);function o(e,t,n){var r=3<arguments.length&&arguments[3]!==void 0?arguments[3]:null;return{$$typeof:a,key:r==null?null:``+r,children:e,containerInfo:t,implementation:n}}var s=t.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE;function c(e,t){if(e===`font`)return``;if(typeof t==`string`)return t===`use-credentials`?t:``}e.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=i,e.createPortal=function(e,t){var r=2<arguments.length&&arguments[2]!==void 0?arguments[2]:null;if(!t||t.nodeType!==1&&t.nodeType!==9&&t.nodeType!==11)throw Error(n(299));return o(e,t,null,r)},e.flushSync=function(e){var t=s.T,n=i.p;try{if(s.T=null,i.p=2,e)return e()}finally{s.T=t,i.p=n,i.d.f()}},e.preconnect=function(e,t){typeof e==`string`&&(t?(t=t.crossOrigin,t=typeof t==`string`?t===`use-credentials`?t:``:void 0):t=null,i.d.C(e,t))},e.prefetchDNS=function(e){typeof e==`string`&&i.d.D(e)},e.preinit=function(e,t){if(typeof e==`string`&&t&&typeof t.as==`string`){var n=t.as,r=c(n,t.crossOrigin),a=typeof t.integrity==`string`?t.integrity:void 0,o=typeof t.fetchPriority==`string`?t.fetchPriority:void 0;n===`style`?i.d.S(e,typeof t.precedence==`string`?t.precedence:void 0,{crossOrigin:r,integrity:a,fetchPriority:o}):n===`script`&&i.d.X(e,{crossOrigin:r,integrity:a,fetchPriority:o,nonce:typeof t.nonce==`string`?t.nonce:void 0})}},e.preinitModule=function(e,t){if(typeof e==`string`)if(typeof t==`object`&&t){if(t.as==null||t.as===`script`){var n=c(t.as,t.crossOrigin);i.d.M(e,{crossOrigin:n,integrity:typeof t.integrity==`string`?t.integrity:void 0,nonce:typeof t.nonce==`string`?t.nonce:void 0})}}else t??i.d.M(e)},e.preload=function(e,t){if(typeof e==`string`&&typeof t==`object`&&t&&typeof t.as==`string`){var n=t.as,r=c(n,t.crossOrigin);i.d.L(e,n,{crossOrigin:r,integrity:typeof t.integrity==`string`?t.integrity:void 0,nonce:typeof t.nonce==`string`?t.nonce:void 0,type:typeof t.type==`string`?t.type:void 0,fetchPriority:typeof t.fetchPriority==`string`?t.fetchPriority:void 0,referrerPolicy:typeof t.referrerPolicy==`string`?t.referrerPolicy:void 0,imageSrcSet:typeof t.imageSrcSet==`string`?t.imageSrcSet:void 0,imageSizes:typeof t.imageSizes==`string`?t.imageSizes:void 0,media:typeof t.media==`string`?t.media:void 0})}},e.preloadModule=function(e,t){if(typeof e==`string`)if(t){var n=c(t.as,t.crossOrigin);i.d.m(e,{as:typeof t.as==`string`&&t.as!==`script`?t.as:void 0,crossOrigin:n,integrity:typeof t.integrity==`string`?t.integrity:void 0})}else i.d.m(e)},e.requestFormReset=function(e){i.d.r(e)},e.unstable_batchedUpdates=function(e,t){return e(t)},e.useFormState=function(e,t,n){return s.H.useFormState(e,t,n)},e.useFormStatus=function(){return s.H.useHostTransitionStatus()},e.version=`19.2.7`})),g=s(((e,t)=>{function n(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>`u`||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!=`function`))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(n)}catch(e){console.error(e)}}n(),t.exports=h()})),_=s((e=>{var t=m(),n=f(),r=g();function i(e){var t=`https://react.dev/errors/`+e;if(1<arguments.length){t+=`?args[]=`+encodeURIComponent(arguments[1]);for(var n=2;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.`}function a(e){return!(!e||e.nodeType!==1&&e.nodeType!==9&&e.nodeType!==11)}function o(e){var t=e,n=e;if(e.alternate)for(;t.return;)t=t.return;else{e=t;do t=e,t.flags&4098&&(n=t.return),e=t.return;while(e)}return t.tag===3?n:null}function s(e){if(e.tag===13){var t=e.memoizedState;if(t===null&&(e=e.alternate,e!==null&&(t=e.memoizedState)),t!==null)return t.dehydrated}return null}function c(e){if(e.tag===31){var t=e.memoizedState;if(t===null&&(e=e.alternate,e!==null&&(t=e.memoizedState)),t!==null)return t.dehydrated}return null}function l(e){if(o(e)!==e)throw Error(i(188))}function u(e){var t=e.alternate;if(!t){if(t=o(e),t===null)throw Error(i(188));return t===e?e:null}for(var n=e,r=t;;){var a=n.return;if(a===null)break;var s=a.alternate;if(s===null){if(r=a.return,r!==null){n=r;continue}break}if(a.child===s.child){for(s=a.child;s;){if(s===n)return l(a),e;if(s===r)return l(a),t;s=s.sibling}throw Error(i(188))}if(n.return!==r.return)n=a,r=s;else{for(var c=!1,u=a.child;u;){if(u===n){c=!0,n=a,r=s;break}if(u===r){c=!0,r=a,n=s;break}u=u.sibling}if(!c){for(u=s.child;u;){if(u===n){c=!0,n=s,r=a;break}if(u===r){c=!0,r=s,n=a;break}u=u.sibling}if(!c)throw Error(i(189))}}if(n.alternate!==r)throw Error(i(190))}if(n.tag!==3)throw Error(i(188));return n.stateNode.current===n?e:t}function d(e){var t=e.tag;if(t===5||t===26||t===27||t===6)return e;for(e=e.child;e!==null;){if(t=d(e),t!==null)return t;e=e.sibling}return null}var p=Object.assign,h=Symbol.for(`react.element`),_=Symbol.for(`react.transitional.element`),v=Symbol.for(`react.portal`),y=Symbol.for(`react.fragment`),b=Symbol.for(`react.strict_mode`),x=Symbol.for(`react.profiler`),S=Symbol.for(`react.consumer`),C=Symbol.for(`react.context`),w=Symbol.for(`react.forward_ref`),T=Symbol.for(`react.suspense`),E=Symbol.for(`react.suspense_list`),D=Symbol.for(`react.memo`),O=Symbol.for(`react.lazy`),k=Symbol.for(`react.activity`),A=Symbol.for(`react.memo_cache_sentinel`),j=Symbol.iterator;function M(e){return typeof e!=`object`||!e?null:(e=j&&e[j]||e[`@@iterator`],typeof e==`function`?e:null)}var N=Symbol.for(`react.client.reference`);function ee(e){if(e==null)return null;if(typeof e==`function`)return e.$$typeof===N?null:e.displayName||e.name||null;if(typeof e==`string`)return e;switch(e){case y:return`Fragment`;case x:return`Profiler`;case b:return`StrictMode`;case T:return`Suspense`;case E:return`SuspenseList`;case k:return`Activity`}if(typeof e==`object`)switch(e.$$typeof){case v:return`Portal`;case C:return e.displayName||`Context`;case S:return(e._context.displayName||`Context`)+`.Consumer`;case w:var t=e.render;return e=e.displayName,e||(e=t.displayName||t.name||``,e=e===``?`ForwardRef`:`ForwardRef(`+e+`)`),e;case D:return t=e.displayName||null,t===null?ee(e.type)||`Memo`:t;case O:t=e._payload,e=e._init;try{return ee(e(t))}catch{}}return null}var P=Array.isArray,F=n.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,I=r.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,L={pending:!1,data:null,method:null,action:null},R=[],te=-1;function ne(e){return{current:e}}function re(e){0>te||(e.current=R[te],R[te]=null,te--)}function z(e,t){te++,R[te]=e.current,e.current=t}var ie=ne(null),ae=ne(null),oe=ne(null),se=ne(null);function ce(e,t){switch(z(oe,t),z(ae,e),z(ie,null),t.nodeType){case 9:case 11:e=(e=t.documentElement)&&(e=e.namespaceURI)?Zd(e):0;break;default:if(e=t.tagName,t=t.namespaceURI)t=Zd(t),e=Qd(t,e);else switch(e){case`svg`:e=1;break;case`math`:e=2;break;default:e=0}}re(ie),z(ie,e)}function le(){re(ie),re(ae),re(oe)}function ue(e){e.memoizedState!==null&&z(se,e);var t=ie.current,n=Qd(t,e.type);t!==n&&(z(ae,e),z(ie,n))}function de(e){ae.current===e&&(re(ie),re(ae)),se.current===e&&(re(se),cp._currentValue=L)}var fe,pe;function me(e){if(fe===void 0)try{throw Error()}catch(e){var t=e.stack.trim().match(/\n( *(at )?)/);fe=t&&t[1]||``,pe=-1<e.stack.indexOf(`
at`)?` (<anonymous>)`:-1<e.stack.indexOf(`@`)?`@unknown:0:0`:``}return`
`+fe+e+pe}var he=!1;function ge(e,t){if(!e||he)return``;he=!0;var n=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{var r={DetermineComponentFrameRoot:function(){try{if(t){var n=function(){throw Error()};if(Object.defineProperty(n.prototype,"props",{set:function(){throw Error()}}),typeof Reflect==`object`&&Reflect.construct){try{Reflect.construct(n,[])}catch(e){var r=e}Reflect.construct(e,[],n)}else{try{n.call()}catch(e){r=e}e.call(n.prototype)}}else{try{throw Error()}catch(e){r=e}(n=e())&&typeof n.catch==`function`&&n.catch(function(){})}}catch(e){if(e&&r&&typeof e.stack==`string`)return[e.stack,r.stack]}return[null,null]}};r.DetermineComponentFrameRoot.displayName=`DetermineComponentFrameRoot`;var i=Object.getOwnPropertyDescriptor(r.DetermineComponentFrameRoot,`name`);i&&i.configurable&&Object.defineProperty(r.DetermineComponentFrameRoot,"name",{value:`DetermineComponentFrameRoot`});var a=r.DetermineComponentFrameRoot(),o=a[0],s=a[1];if(o&&s){var c=o.split(`
`),l=s.split(`
`);for(i=r=0;r<c.length&&!c[r].includes(`DetermineComponentFrameRoot`);)r++;for(;i<l.length&&!l[i].includes(`DetermineComponentFrameRoot`);)i++;if(r===c.length||i===l.length)for(r=c.length-1,i=l.length-1;1<=r&&0<=i&&c[r]!==l[i];)i--;for(;1<=r&&0<=i;r--,i--)if(c[r]!==l[i]){if(r!==1||i!==1)do if(r--,i--,0>i||c[r]!==l[i]){var u=`
`+c[r].replace(` at new `,` at `);return e.displayName&&u.includes(`<anonymous>`)&&(u=u.replace(`<anonymous>`,e.displayName)),u}while(1<=r&&0<=i);break}}}finally{he=!1,Error.prepareStackTrace=n}return(n=e?e.displayName||e.name:``)?me(n):``}function _e(e,t){switch(e.tag){case 26:case 27:case 5:return me(e.type);case 16:return me(`Lazy`);case 13:return e.child!==t&&t!==null?me(`Suspense Fallback`):me(`Suspense`);case 19:return me(`SuspenseList`);case 0:case 15:return ge(e.type,!1);case 11:return ge(e.type.render,!1);case 1:return ge(e.type,!0);case 31:return me(`Activity`);default:return``}}function ve(e){try{var t=``,n=null;do t+=_e(e,n),n=e,e=e.return;while(e);return t}catch(e){return`
Error generating stack: `+e.message+`
`+e.stack}}var ye=Object.prototype.hasOwnProperty,be=t.unstable_scheduleCallback,xe=t.unstable_cancelCallback,Se=t.unstable_shouldYield,Ce=t.unstable_requestPaint,we=t.unstable_now,Te=t.unstable_getCurrentPriorityLevel,Ee=t.unstable_ImmediatePriority,De=t.unstable_UserBlockingPriority,Oe=t.unstable_NormalPriority,ke=t.unstable_LowPriority,Ae=t.unstable_IdlePriority,je=t.log,Me=t.unstable_setDisableYieldValue,Ne=null,Pe=null;function Fe(e){if(typeof je==`function`&&Me(e),Pe&&typeof Pe.setStrictMode==`function`)try{Pe.setStrictMode(Ne,e)}catch{}}var Ie=Math.clz32?Math.clz32:ze,Le=Math.log,Re=Math.LN2;function ze(e){return e>>>=0,e===0?32:31-(Le(e)/Re|0)|0}var Be=256,Ve=262144,He=4194304;function Ue(e){var t=e&42;if(t!==0)return t;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:return 64;case 128:return 128;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:return e&261888;case 262144:case 524288:case 1048576:case 2097152:return e&3932160;case 4194304:case 8388608:case 16777216:case 33554432:return e&62914560;case 67108864:return 67108864;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 0;default:return e}}function We(e,t,n){var r=e.pendingLanes;if(r===0)return 0;var i=0,a=e.suspendedLanes,o=e.pingedLanes;e=e.warmLanes;var s=r&134217727;return s===0?(s=r&~a,s===0?o===0?n||(n=r&~e,n!==0&&(i=Ue(n))):i=Ue(o):i=Ue(s)):(r=s&~a,r===0?(o&=s,o===0?n||(n=s&~e,n!==0&&(i=Ue(n))):i=Ue(o)):i=Ue(r)),i===0?0:t!==0&&t!==i&&(t&a)===0&&(a=i&-i,n=t&-t,a>=n||a===32&&n&4194048)?t:i}function Ge(e,t){return(e.pendingLanes&~(e.suspendedLanes&~e.pingedLanes)&t)===0}function Ke(e,t){switch(e){case 1:case 2:case 4:case 8:case 64:return t+250;case 16:case 32: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;case 4194304:case 8388608:case 16777216:case 33554432:return-1;case 67108864:case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}function qe(){var e=He;return He<<=1,!(He&62914560)&&(He=4194304),e}function Je(e){for(var t=[],n=0;31>n;n++)t.push(e);return t}function Ye(e,t){e.pendingLanes|=t,t!==268435456&&(e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0)}function Xe(e,t,n,r,i,a){var o=e.pendingLanes;e.pendingLanes=n,e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0,e.expiredLanes&=n,e.entangledLanes&=n,e.errorRecoveryDisabledLanes&=n,e.shellSuspendCounter=0;var s=e.entanglements,c=e.expirationTimes,l=e.hiddenUpdates;for(n=o&~n;0<n;){var u=31-Ie(n),d=1<<u;s[u]=0,c[u]=-1;var f=l[u];if(f!==null)for(l[u]=null,u=0;u<f.length;u++){var p=f[u];p!==null&&(p.lane&=-536870913)}n&=~d}r!==0&&Ze(e,r,0),a!==0&&i===0&&e.tag!==0&&(e.suspendedLanes|=a&~(o&~t))}function Ze(e,t,n){e.pendingLanes|=t,e.suspendedLanes&=~t;var r=31-Ie(t);e.entangledLanes|=t,e.entanglements[r]=e.entanglements[r]|1073741824|n&261930}function Qe(e,t){var n=e.entangledLanes|=t;for(e=e.entanglements;n;){var r=31-Ie(n),i=1<<r;i&t|e[r]&t&&(e[r]|=t),n&=~i}}function $e(e,t){var n=t&-t;return n=n&42?1:et(n),(n&(e.suspendedLanes|t))===0?n:0}function et(e){switch(e){case 2:e=1;break;case 8:e=4;break;case 32:e=16;break;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:e=128;break;case 268435456:e=134217728;break;default:e=0}return e}function tt(e){return e&=-e,2<e?8<e?e&134217727?32:268435456:8:2}function nt(){var e=I.p;return e===0?(e=window.event,e===void 0?32:Cp(e.type)):e}function rt(e,t){var n=I.p;try{return I.p=e,t()}finally{I.p=n}}var it=Math.random().toString(36).slice(2),at=`__reactFiber$`+it,ot=`__reactProps$`+it,st=`__reactContainer$`+it,ct=`__reactEvents$`+it,lt=`__reactListeners$`+it,ut=`__reactHandles$`+it,dt=`__reactResources$`+it,ft=`__reactMarker$`+it;function pt(e){delete e[at],delete e[ot],delete e[ct],delete e[lt],delete e[ut]}function mt(e){var t=e[at];if(t)return t;for(var n=e.parentNode;n;){if(t=n[st]||n[at]){if(n=t.alternate,t.child!==null||n!==null&&n.child!==null)for(e=xf(e);e!==null;){if(n=e[at])return n;e=xf(e)}return t}e=n,n=e.parentNode}return null}function ht(e){if(e=e[at]||e[st]){var t=e.tag;if(t===5||t===6||t===13||t===31||t===26||t===27||t===3)return e}return null}function gt(e){var t=e.tag;if(t===5||t===26||t===27||t===6)return e.stateNode;throw Error(i(33))}function _t(e){var t=e[dt];return t||(t=e[dt]={hoistableStyles:new Map,hoistableScripts:new Map}),t}function vt(e){e[ft]=!0}var yt=new Set,bt={};function xt(e,t){St(e,t),St(e+`Capture`,t)}function St(e,t){for(bt[e]=t,e=0;e<t.length;e++)yt.add(t[e])}var Ct=RegExp(`^[: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]*$`),wt={},Tt={};function Et(e){return ye.call(Tt,e)?!0:ye.call(wt,e)?!1:Ct.test(e)?Tt[e]=!0:(wt[e]=!0,!1)}function Dt(e,t,n){if(Et(t))if(n===null)e.removeAttribute(t);else{switch(typeof n){case`undefined`:case`function`:case`symbol`:e.removeAttribute(t);return;case`boolean`:var r=t.toLowerCase().slice(0,5);if(r!==`data-`&&r!==`aria-`){e.removeAttribute(t);return}}e.setAttribute(t,``+n)}}function Ot(e,t,n){if(n===null)e.removeAttribute(t);else{switch(typeof n){case`undefined`:case`function`:case`symbol`:case`boolean`:e.removeAttribute(t);return}e.setAttribute(t,``+n)}}function kt(e,t,n,r){if(r===null)e.removeAttribute(n);else{switch(typeof r){case`undefined`:case`function`:case`symbol`:case`boolean`:e.removeAttribute(n);return}e.setAttributeNS(t,n,``+r)}}function At(e){switch(typeof e){case`bigint`:case`boolean`:case`number`:case`string`:case`undefined`:return e;case`object`:return e;default:return``}}function jt(e){var t=e.type;return(e=e.nodeName)&&e.toLowerCase()===`input`&&(t===`checkbox`||t===`radio`)}function Mt(e,t,n){var r=Object.getOwnPropertyDescriptor(e.constructor.prototype,t);if(!e.hasOwnProperty(t)&&r!==void 0&&typeof r.get==`function`&&typeof r.set==`function`){var i=r.get,a=r.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return i.call(this)},set:function(e){n=``+e,a.call(this,e)}}),Object.defineProperty(e,t,{enumerable:r.enumerable}),{getValue:function(){return n},setValue:function(e){n=``+e},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}function Nt(e){if(!e._valueTracker){var t=jt(e)?`checked`:`value`;e._valueTracker=Mt(e,t,``+e[t])}}function Pt(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),r=``;return e&&(r=jt(e)?e.checked?`true`:`false`:e.value),e=r,e===n?!1:(t.setValue(e),!0)}function Ft(e){if(e=e||(typeof document<`u`?document:void 0),e===void 0)return null;try{return e.activeElement||e.body}catch{return e.body}}var It=/[\n"\\]/g;function Lt(e){return e.replace(It,function(e){return`\\`+e.charCodeAt(0).toString(16)+` `})}function Rt(e,t,n,r,i,a,o,s){e.name=``,o!=null&&typeof o!=`function`&&typeof o!=`symbol`&&typeof o!=`boolean`?e.type=o:e.removeAttribute(`type`),t==null?o!==`submit`&&o!==`reset`||e.removeAttribute(`value`):o===`number`?(t===0&&e.value===``||e.value!=t)&&(e.value=``+At(t)):e.value!==``+At(t)&&(e.value=``+At(t)),t==null?n==null?r!=null&&e.removeAttribute(`value`):Bt(e,o,At(n)):Bt(e,o,At(t)),i==null&&a!=null&&(e.defaultChecked=!!a),i!=null&&(e.checked=i&&typeof i!=`function`&&typeof i!=`symbol`),s!=null&&typeof s!=`function`&&typeof s!=`symbol`&&typeof s!=`boolean`?e.name=``+At(s):e.removeAttribute(`name`)}function zt(e,t,n,r,i,a,o,s){if(a!=null&&typeof a!=`function`&&typeof a!=`symbol`&&typeof a!=`boolean`&&(e.type=a),t!=null||n!=null){if(!(a!==`submit`&&a!==`reset`||t!=null)){Nt(e);return}n=n==null?``:``+At(n),t=t==null?n:``+At(t),s||t===e.value||(e.value=t),e.defaultValue=t}r=r??i,r=typeof r!=`function`&&typeof r!=`symbol`&&!!r,e.checked=s?e.checked:!!r,e.defaultChecked=!!r,o!=null&&typeof o!=`function`&&typeof o!=`symbol`&&typeof o!=`boolean`&&(e.name=o),Nt(e)}function Bt(e,t,n){t===`number`&&Ft(e.ownerDocument)===e||e.defaultValue===``+n||(e.defaultValue=``+n)}function Vt(e,t,n,r){if(e=e.options,t){t={};for(var i=0;i<n.length;i++)t[`$`+n[i]]=!0;for(n=0;n<e.length;n++)i=t.hasOwnProperty(`$`+e[n].value),e[n].selected!==i&&(e[n].selected=i),i&&r&&(e[n].defaultSelected=!0)}else{for(n=``+At(n),t=null,i=0;i<e.length;i++){if(e[i].value===n){e[i].selected=!0,r&&(e[i].defaultSelected=!0);return}t!==null||e[i].disabled||(t=e[i])}t!==null&&(t.selected=!0)}}function Ht(e,t,n){if(t!=null&&(t=``+At(t),t!==e.value&&(e.value=t),n==null)){e.defaultValue!==t&&(e.defaultValue=t);return}e.defaultValue=n==null?``:``+At(n)}function Ut(e,t,n,r){if(t==null){if(r!=null){if(n!=null)throw Error(i(92));if(P(r)){if(1<r.length)throw Error(i(93));r=r[0]}n=r}n??(n=``),t=n}n=At(t),e.defaultValue=n,r=e.textContent,r===n&&r!==``&&r!==null&&(e.value=r),Nt(e)}function Wt(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&n.nodeType===3){n.nodeValue=t;return}}e.textContent=t}var Gt=new Set(`animationIterationCount aspectRatio borderImageOutset borderImageSlice borderImageWidth boxFlex boxFlexGroup boxOrdinalGroup columnCount columns flex flexGrow flexPositive flexShrink flexNegative flexOrder gridArea gridRow gridRowEnd gridRowSpan gridRowStart gridColumn gridColumnEnd gridColumnSpan gridColumnStart fontWeight lineClamp lineHeight opacity order orphans scale tabSize widows zIndex zoom fillOpacity floodOpacity stopOpacity strokeDasharray strokeDashoffset strokeMiterlimit strokeOpacity strokeWidth MozAnimationIterationCount MozBoxFlex MozBoxFlexGroup MozLineClamp msAnimationIterationCount msFlex msZoom msFlexGrow msFlexNegative msFlexOrder msFlexPositive msFlexShrink msGridColumn msGridColumnSpan msGridRow msGridRowSpan WebkitAnimationIterationCount WebkitBoxFlex WebKitBoxFlexGroup WebkitBoxOrdinalGroup WebkitColumnCount WebkitColumns WebkitFlex WebkitFlexGrow WebkitFlexPositive WebkitFlexShrink WebkitLineClamp`.split(` `));function Kt(e,t,n){var r=t.indexOf(`--`)===0;n==null||typeof n==`boolean`||n===``?r?e.setProperty(t,``):t===`float`?e.cssFloat=``:e[t]=``:r?e.setProperty(t,n):typeof n!=`number`||n===0||Gt.has(t)?t===`float`?e.cssFloat=n:e[t]=(``+n).trim():e[t]=n+`px`}function qt(e,t,n){if(t!=null&&typeof t!=`object`)throw Error(i(62));if(e=e.style,n!=null){for(var r in n)!n.hasOwnProperty(r)||t!=null&&t.hasOwnProperty(r)||(r.indexOf(`--`)===0?e.setProperty(r,``):r===`float`?e.cssFloat=``:e[r]=``);for(var a in t)r=t[a],t.hasOwnProperty(a)&&n[a]!==r&&Kt(e,a,r)}else for(var o in t)t.hasOwnProperty(o)&&Kt(e,o,t[o])}function Jt(e){if(e.indexOf(`-`)===-1)return!1;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!1;default:return!0}}var Yt=new Map([[`acceptCharset`,`accept-charset`],[`htmlFor`,`for`],[`httpEquiv`,`http-equiv`],[`crossOrigin`,`crossorigin`],[`accentHeight`,`accent-height`],[`alignmentBaseline`,`alignment-baseline`],[`arabicForm`,`arabic-form`],[`baselineShift`,`baseline-shift`],[`capHeight`,`cap-height`],[`clipPath`,`clip-path`],[`clipRule`,`clip-rule`],[`colorInterpolation`,`color-interpolation`],[`colorInterpolationFilters`,`color-interpolation-filters`],[`colorProfile`,`color-profile`],[`colorRendering`,`color-rendering`],[`dominantBaseline`,`dominant-baseline`],[`enableBackground`,`enable-background`],[`fillOpacity`,`fill-opacity`],[`fillRule`,`fill-rule`],[`floodColor`,`flood-color`],[`floodOpacity`,`flood-opacity`],[`fontFamily`,`font-family`],[`fontSize`,`font-size`],[`fontSizeAdjust`,`font-size-adjust`],[`fontStretch`,`font-stretch`],[`fontStyle`,`font-style`],[`fontVariant`,`font-variant`],[`fontWeight`,`font-weight`],[`glyphName`,`glyph-name`],[`glyphOrientationHorizontal`,`glyph-orientation-horizontal`],[`glyphOrientationVertical`,`glyph-orientation-vertical`],[`horizAdvX`,`horiz-adv-x`],[`horizOriginX`,`horiz-origin-x`],[`imageRendering`,`image-rendering`],[`letterSpacing`,`letter-spacing`],[`lightingColor`,`lighting-color`],[`markerEnd`,`marker-end`],[`markerMid`,`marker-mid`],[`markerStart`,`marker-start`],[`overlinePosition`,`overline-position`],[`overlineThickness`,`overline-thickness`],[`paintOrder`,`paint-order`],[`panose-1`,`panose-1`],[`pointerEvents`,`pointer-events`],[`renderingIntent`,`rendering-intent`],[`shapeRendering`,`shape-rendering`],[`stopColor`,`stop-color`],[`stopOpacity`,`stop-opacity`],[`strikethroughPosition`,`strikethrough-position`],[`strikethroughThickness`,`strikethrough-thickness`],[`strokeDasharray`,`stroke-dasharray`],[`strokeDashoffset`,`stroke-dashoffset`],[`strokeLinecap`,`stroke-linecap`],[`strokeLinejoin`,`stroke-linejoin`],[`strokeMiterlimit`,`stroke-miterlimit`],[`strokeOpacity`,`stroke-opacity`],[`strokeWidth`,`stroke-width`],[`textAnchor`,`text-anchor`],[`textDecoration`,`text-decoration`],[`textRendering`,`text-rendering`],[`transformOrigin`,`transform-origin`],[`underlinePosition`,`underline-position`],[`underlineThickness`,`underline-thickness`],[`unicodeBidi`,`unicode-bidi`],[`unicodeRange`,`unicode-range`],[`unitsPerEm`,`units-per-em`],[`vAlphabetic`,`v-alphabetic`],[`vHanging`,`v-hanging`],[`vIdeographic`,`v-ideographic`],[`vMathematical`,`v-mathematical`],[`vectorEffect`,`vector-effect`],[`vertAdvY`,`vert-adv-y`],[`vertOriginX`,`vert-origin-x`],[`vertOriginY`,`vert-origin-y`],[`wordSpacing`,`word-spacing`],[`writingMode`,`writing-mode`],[`xmlnsXlink`,`xmlns:xlink`],[`xHeight`,`x-height`]]),Xt=/^[\u0000-\u001F ]*j[\r\n\t]*a[\r\n\t]*v[\r\n\t]*a[\r\n\t]*s[\r\n\t]*c[\r\n\t]*r[\r\n\t]*i[\r\n\t]*p[\r\n\t]*t[\r\n\t]*:/i;function Zt(e){return Xt.test(``+e)?`javascript:throw new Error('React has blocked a javascript: URL as a security precaution.')`:e}function Qt(){}var $t=null;function en(e){return e=e.target||e.srcElement||window,e.correspondingUseElement&&(e=e.correspondingUseElement),e.nodeType===3?e.parentNode:e}var tn=null,nn=null;function rn(e){var t=ht(e);if(t&&(e=t.stateNode)){var n=e[ot]||null;a:switch(e=t.stateNode,t.type){case`input`:if(Rt(e,n.value,n.defaultValue,n.defaultValue,n.checked,n.defaultChecked,n.type,n.name),t=n.name,n.type===`radio`&&t!=null){for(n=e;n.parentNode;)n=n.parentNode;for(n=n.querySelectorAll(`input[name="`+Lt(``+t)+`"][type="radio"]`),t=0;t<n.length;t++){var r=n[t];if(r!==e&&r.form===e.form){var a=r[ot]||null;if(!a)throw Error(i(90));Rt(r,a.value,a.defaultValue,a.defaultValue,a.checked,a.defaultChecked,a.type,a.name)}}for(t=0;t<n.length;t++)r=n[t],r.form===e.form&&Pt(r)}break a;case`textarea`:Ht(e,n.value,n.defaultValue);break a;case`select`:t=n.value,t!=null&&Vt(e,!!n.multiple,t,!1)}}}var an=!1;function on(e,t,n){if(an)return e(t,n);an=!0;try{return e(t)}finally{if(an=!1,(tn!==null||nn!==null)&&(Ou(),tn&&(t=tn,e=nn,nn=tn=null,rn(t),e)))for(t=0;t<e.length;t++)rn(e[t])}}function sn(e,t){var n=e.stateNode;if(n===null)return null;var r=n[ot]||null;if(r===null)return null;n=r[t];a:switch(t){case`onClick`:case`onClickCapture`:case`onDoubleClick`:case`onDoubleClickCapture`:case`onMouseDown`:case`onMouseDownCapture`:case`onMouseMove`:case`onMouseMoveCapture`:case`onMouseUp`:case`onMouseUpCapture`:case`onMouseEnter`:(r=!r.disabled)||(e=e.type,r=!(e===`button`||e===`input`||e===`select`||e===`textarea`)),e=!r;break a;default:e=!1}if(e)return null;if(n&&typeof n!=`function`)throw Error(i(231,t,typeof n));return n}var cn=!(typeof window>`u`||window.document===void 0||window.document.createElement===void 0),ln=!1;if(cn)try{var un={};Object.defineProperty(un,"passive",{get:function(){ln=!0}}),window.addEventListener(`test`,un,un),window.removeEventListener(`test`,un,un)}catch{ln=!1}var dn=null,fn=null,pn=null;function mn(){if(pn)return pn;var e,t=fn,n=t.length,r,i=`value`in dn?dn.value:dn.textContent,a=i.length;for(e=0;e<n&&t[e]===i[e];e++);var o=n-e;for(r=1;r<=o&&t[n-r]===i[a-r];r++);return pn=i.slice(e,1<r?1-r:void 0)}function hn(e){var t=e.keyCode;return`charCode`in e?(e=e.charCode,e===0&&t===13&&(e=13)):e=t,e===10&&(e=13),32<=e||e===13?e:0}function gn(){return!0}function _n(){return!1}function vn(e){function t(t,n,r,i,a){for(var o in this._reactName=t,this._targetInst=r,this.type=n,this.nativeEvent=i,this.target=a,this.currentTarget=null,e)e.hasOwnProperty(o)&&(t=e[o],this[o]=t?t(i):i[o]);return this.isDefaultPrevented=(i.defaultPrevented==null?!1===i.returnValue:i.defaultPrevented)?gn:_n,this.isPropagationStopped=_n,this}return p(t.prototype,{preventDefault:function(){this.defaultPrevented=!0;var e=this.nativeEvent;e&&(e.preventDefault?e.preventDefault():typeof e.returnValue!=`unknown`&&(e.returnValue=!1),this.isDefaultPrevented=gn)},stopPropagation:function(){var e=this.nativeEvent;e&&(e.stopPropagation?e.stopPropagation():typeof e.cancelBubble!=`unknown`&&(e.cancelBubble=!0),this.isPropagationStopped=gn)},persist:function(){},isPersistent:gn}),t}var yn={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(e){return e.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},bn=vn(yn),xn=p({},yn,{view:0,detail:0}),Sn=vn(xn),Cn,wn,Tn,En=p({},xn,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:Ln,button:0,buttons:0,relatedTarget:function(e){return e.relatedTarget===void 0?e.fromElement===e.srcElement?e.toElement:e.fromElement:e.relatedTarget},movementX:function(e){return`movementX`in e?e.movementX:(e!==Tn&&(Tn&&e.type===`mousemove`?(Cn=e.screenX-Tn.screenX,wn=e.screenY-Tn.screenY):wn=Cn=0,Tn=e),Cn)},movementY:function(e){return`movementY`in e?e.movementY:wn}}),Dn=vn(En),On=vn(p({},En,{dataTransfer:0})),kn=vn(p({},xn,{relatedTarget:0})),An=vn(p({},yn,{animationName:0,elapsedTime:0,pseudoElement:0})),jn=vn(p({},yn,{clipboardData:function(e){return`clipboardData`in e?e.clipboardData:window.clipboardData}})),Mn=vn(p({},yn,{data:0})),Nn={Esc:`Escape`,Spacebar:` `,Left:`ArrowLeft`,Up:`ArrowUp`,Right:`ArrowRight`,Down:`ArrowDown`,Del:`Delete`,Win:`OS`,Menu:`ContextMenu`,Apps:`ContextMenu`,Scroll:`ScrollLock`,MozPrintableKey:`Unidentified`},Pn={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`},Fn={Alt:`altKey`,Control:`ctrlKey`,Meta:`metaKey`,Shift:`shiftKey`};function In(e){var t=this.nativeEvent;return t.getModifierState?t.getModifierState(e):(e=Fn[e])?!!t[e]:!1}function Ln(){return In}var Rn=vn(p({},xn,{key:function(e){if(e.key){var t=Nn[e.key]||e.key;if(t!==`Unidentified`)return t}return e.type===`keypress`?(e=hn(e),e===13?`Enter`:String.fromCharCode(e)):e.type===`keydown`||e.type===`keyup`?Pn[e.keyCode]||`Unidentified`:``},code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:Ln,charCode:function(e){return e.type===`keypress`?hn(e):0},keyCode:function(e){return e.type===`keydown`||e.type===`keyup`?e.keyCode:0},which:function(e){return e.type===`keypress`?hn(e):e.type===`keydown`||e.type===`keyup`?e.keyCode:0}})),zn=vn(p({},En,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0})),Bn=vn(p({},xn,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:Ln})),Vn=vn(p({},yn,{propertyName:0,elapsedTime:0,pseudoElement:0})),Hn=vn(p({},En,{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})),Un=vn(p({},yn,{newState:0,oldState:0})),Wn=[9,13,27,32],Gn=cn&&`CompositionEvent`in window,Kn=null;cn&&`documentMode`in document&&(Kn=document.documentMode);var qn=cn&&`TextEvent`in window&&!Kn,Jn=cn&&(!Gn||Kn&&8<Kn&&11>=Kn),Yn=` `,Xn=!1;function Zn(e,t){switch(e){case`keyup`:return Wn.indexOf(t.keyCode)!==-1;case`keydown`:return t.keyCode!==229;case`keypress`:case`mousedown`:case`focusout`:return!0;default:return!1}}function Qn(e){return e=e.detail,typeof e==`object`&&`data`in e?e.data:null}var $n=!1;function er(e,t){switch(e){case`compositionend`:return Qn(t);case`keypress`:return t.which===32?(Xn=!0,Yn):null;case`textInput`:return e=t.data,e===Yn&&Xn?null:e;default:return null}}function tr(e,t){if($n)return e===`compositionend`||!Gn&&Zn(e,t)?(e=mn(),pn=fn=dn=null,$n=!1,e):null;switch(e){case`paste`: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 Jn&&t.locale!==`ko`?null:t.data;default:return null}}var nr={color:!0,date:!0,datetime:!0,"datetime-local":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};function rr(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t===`input`?!!nr[e.type]:t===`textarea`}function ir(e,t,n,r){tn?nn?nn.push(r):nn=[r]:tn=r,t=Fd(t,`onChange`),0<t.length&&(n=new bn(`onChange`,`change`,null,n,r),e.push({event:n,listeners:t}))}var ar=null,or=null;function sr(e){Dd(e,0)}function cr(e){if(Pt(gt(e)))return e}function lr(e,t){if(e===`change`)return t}var ur=!1;if(cn){var dr;if(cn){var fr=`oninput`in document;if(!fr){var pr=document.createElement(`div`);pr.setAttribute(`oninput`,`return;`),fr=typeof pr.oninput==`function`}dr=fr}else dr=!1;ur=dr&&(!document.documentMode||9<document.documentMode)}function mr(){ar&&(ar.detachEvent(`onpropertychange`,hr),or=ar=null)}function hr(e){if(e.propertyName===`value`&&cr(or)){var t=[];ir(t,or,e,en(e)),on(sr,t)}}function gr(e,t,n){e===`focusin`?(mr(),ar=t,or=n,ar.attachEvent(`onpropertychange`,hr)):e===`focusout`&&mr()}function _r(e){if(e===`selectionchange`||e===`keyup`||e===`keydown`)return cr(or)}function vr(e,t){if(e===`click`)return cr(t)}function yr(e,t){if(e===`input`||e===`change`)return cr(t)}function br(e,t){return e===t&&(e!==0||1/e==1/t)||e!==e&&t!==t}var xr=typeof Object.is==`function`?Object.is:br;function Sr(e,t){if(xr(e,t))return!0;if(typeof e!=`object`||!e||typeof t!=`object`||!t)return!1;var n=Object.keys(e),r=Object.keys(t);if(n.length!==r.length)return!1;for(r=0;r<n.length;r++){var i=n[r];if(!ye.call(t,i)||!xr(e[i],t[i]))return!1}return!0}function Cr(e){for(;e&&e.firstChild;)e=e.firstChild;return e}function wr(e,t){var n=Cr(e);e=0;for(var r;n;){if(n.nodeType===3){if(r=e+n.textContent.length,e<=t&&r>=t)return{node:n,offset:t-e};e=r}a:{for(;n;){if(n.nextSibling){n=n.nextSibling;break a}n=n.parentNode}n=void 0}n=Cr(n)}}function Tr(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?Tr(e,t.parentNode):`contains`in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function Er(e){e=e!=null&&e.ownerDocument!=null&&e.ownerDocument.defaultView!=null?e.ownerDocument.defaultView:window;for(var t=Ft(e.document);t instanceof e.HTMLIFrameElement;){try{var n=typeof t.contentWindow.location.href==`string`}catch{n=!1}if(n)e=t.contentWindow;else break;t=Ft(e.document)}return t}function Dr(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&(t===`input`&&(e.type===`text`||e.type===`search`||e.type===`tel`||e.type===`url`||e.type===`password`)||t===`textarea`||e.contentEditable===`true`)}var Or=cn&&`documentMode`in document&&11>=document.documentMode,kr=null,Ar=null,jr=null,Mr=!1;function Nr(e,t,n){var r=n.window===n?n.document:n.nodeType===9?n:n.ownerDocument;Mr||kr==null||kr!==Ft(r)||(r=kr,`selectionStart`in r&&Dr(r)?r={start:r.selectionStart,end:r.selectionEnd}:(r=(r.ownerDocument&&r.ownerDocument.defaultView||window).getSelection(),r={anchorNode:r.anchorNode,anchorOffset:r.anchorOffset,focusNode:r.focusNode,focusOffset:r.focusOffset}),jr&&Sr(jr,r)||(jr=r,r=Fd(Ar,`onSelect`),0<r.length&&(t=new bn(`onSelect`,`select`,null,t,n),e.push({event:t,listeners:r}),t.target=kr)))}function Pr(e,t){var n={};return n[e.toLowerCase()]=t.toLowerCase(),n[`Webkit`+e]=`webkit`+t,n[`Moz`+e]=`moz`+t,n}var Fr={animationend:Pr(`Animation`,`AnimationEnd`),animationiteration:Pr(`Animation`,`AnimationIteration`),animationstart:Pr(`Animation`,`AnimationStart`),transitionrun:Pr(`Transition`,`TransitionRun`),transitionstart:Pr(`Transition`,`TransitionStart`),transitioncancel:Pr(`Transition`,`TransitionCancel`),transitionend:Pr(`Transition`,`TransitionEnd`)},Ir={},Lr={};cn&&(Lr=document.createElement(`div`).style,`AnimationEvent`in window||(delete Fr.animationend.animation,delete Fr.animationiteration.animation,delete Fr.animationstart.animation),`TransitionEvent`in window||delete Fr.transitionend.transition);function Rr(e){if(Ir[e])return Ir[e];if(!Fr[e])return e;var t=Fr[e],n;for(n in t)if(t.hasOwnProperty(n)&&n in Lr)return Ir[e]=t[n];return e}var zr=Rr(`animationend`),Br=Rr(`animationiteration`),Vr=Rr(`animationstart`),Hr=Rr(`transitionrun`),Ur=Rr(`transitionstart`),Wr=Rr(`transitioncancel`),Gr=Rr(`transitionend`),Kr=new Map,qr=`abort auxClick beforeToggle 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(` `);qr.push(`scrollEnd`);function Jr(e,t){Kr.set(e,t),xt(t,[e])}var Yr=typeof reportError==`function`?reportError:function(e){if(typeof window==`object`&&typeof window.ErrorEvent==`function`){var t=new window.ErrorEvent(`error`,{bubbles:!0,cancelable:!0,message:typeof e==`object`&&e&&typeof e.message==`string`?String(e.message):String(e),error:e});if(!window.dispatchEvent(t))return}else if(typeof process==`object`&&typeof process.emit==`function`){process.emit(`uncaughtException`,e);return}console.error(e)},Xr=[],Zr=0,Qr=0;function $r(){for(var e=Zr,t=Qr=Zr=0;t<e;){var n=Xr[t];Xr[t++]=null;var r=Xr[t];Xr[t++]=null;var i=Xr[t];Xr[t++]=null;var a=Xr[t];if(Xr[t++]=null,r!==null&&i!==null){var o=r.pending;o===null?i.next=i:(i.next=o.next,o.next=i),r.pending=i}a!==0&&ri(n,i,a)}}function ei(e,t,n,r){Xr[Zr++]=e,Xr[Zr++]=t,Xr[Zr++]=n,Xr[Zr++]=r,Qr|=r,e.lanes|=r,e=e.alternate,e!==null&&(e.lanes|=r)}function ti(e,t,n,r){return ei(e,t,n,r),ii(e)}function ni(e,t){return ei(e,null,null,t),ii(e)}function ri(e,t,n){e.lanes|=n;var r=e.alternate;r!==null&&(r.lanes|=n);for(var i=!1,a=e.return;a!==null;)a.childLanes|=n,r=a.alternate,r!==null&&(r.childLanes|=n),a.tag===22&&(e=a.stateNode,e===null||e._visibility&1||(i=!0)),e=a,a=a.return;return e.tag===3?(a=e.stateNode,i&&t!==null&&(i=31-Ie(n),e=a.hiddenUpdates,r=e[i],r===null?e[i]=[t]:r.push(t),t.lane=n|536870912),a):null}function ii(e){if(50<yu)throw yu=0,bu=null,Error(i(185));for(var t=e.return;t!==null;)e=t,t=e.return;return e.tag===3?e.stateNode:null}var ai={};function oi(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.refCleanup=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 si(e,t,n,r){return new oi(e,t,n,r)}function ci(e){return e=e.prototype,!(!e||!e.isReactComponent)}function li(e,t){var n=e.alternate;return n===null?(n=si(e.tag,t,e.key,e.mode),n.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=e.flags&65011712,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=t===null?null:{lanes:t.lanes,firstContext:t.firstContext},n.sibling=e.sibling,n.index=e.index,n.ref=e.ref,n.refCleanup=e.refCleanup,n}function ui(e,t){e.flags&=65011714;var n=e.alternate;return n===null?(e.childLanes=0,e.lanes=t,e.child=null,e.subtreeFlags=0,e.memoizedProps=null,e.memoizedState=null,e.updateQueue=null,e.dependencies=null,e.stateNode=null):(e.childLanes=n.childLanes,e.lanes=n.lanes,e.child=n.child,e.subtreeFlags=0,e.deletions=null,e.memoizedProps=n.memoizedProps,e.memoizedState=n.memoizedState,e.updateQueue=n.updateQueue,e.type=n.type,t=n.dependencies,e.dependencies=t===null?null:{lanes:t.lanes,firstContext:t.firstContext}),e}function di(e,t,n,r,a,o){var s=0;if(r=e,typeof e==`function`)ci(e)&&(s=1);else if(typeof e==`string`)s=$f(e,n,ie.current)?26:e===`html`||e===`head`||e===`body`?27:5;else a:switch(e){case k:return e=si(31,n,t,a),e.elementType=k,e.lanes=o,e;case y:return fi(n.children,a,o,t);case b:s=8,a|=24;break;case x:return e=si(12,n,t,a|2),e.elementType=x,e.lanes=o,e;case T:return e=si(13,n,t,a),e.elementType=T,e.lanes=o,e;case E:return e=si(19,n,t,a),e.elementType=E,e.lanes=o,e;default:if(typeof e==`object`&&e)switch(e.$$typeof){case C:s=10;break a;case S:s=9;break a;case w:s=11;break a;case D:s=14;break a;case O:s=16,r=null;break a}s=29,n=Error(i(130,e===null?`null`:typeof e,``)),r=null}return t=si(s,n,t,a),t.elementType=e,t.type=r,t.lanes=o,t}function fi(e,t,n,r){return e=si(7,e,r,t),e.lanes=n,e}function pi(e,t,n){return e=si(6,e,null,t),e.lanes=n,e}function mi(e){var t=si(18,null,null,0);return t.stateNode=e,t}function hi(e,t,n){return t=si(4,e.children===null?[]:e.children,e.key,t),t.lanes=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}var gi=new WeakMap;function _i(e,t){if(typeof e==`object`&&e){var n=gi.get(e);return n===void 0?(t={value:e,source:t,stack:ve(t)},gi.set(e,t),t):n}return{value:e,source:t,stack:ve(t)}}var vi=[],yi=0,bi=null,xi=0,Si=[],Ci=0,wi=null,Ti=1,Ei=``;function Di(e,t){vi[yi++]=xi,vi[yi++]=bi,bi=e,xi=t}function Oi(e,t,n){Si[Ci++]=Ti,Si[Ci++]=Ei,Si[Ci++]=wi,wi=e;var r=Ti;e=Ei;var i=32-Ie(r)-1;r&=~(1<<i),n+=1;var a=32-Ie(t)+i;if(30<a){var o=i-i%5;a=(r&(1<<o)-1).toString(32),r>>=o,i-=o,Ti=1<<32-Ie(t)+i|n<<i|r,Ei=a+e}else Ti=1<<a|n<<i|r,Ei=e}function ki(e){e.return!==null&&(Di(e,1),Oi(e,1,0))}function Ai(e){for(;e===bi;)bi=vi[--yi],vi[yi]=null,xi=vi[--yi],vi[yi]=null;for(;e===wi;)wi=Si[--Ci],Si[Ci]=null,Ei=Si[--Ci],Si[Ci]=null,Ti=Si[--Ci],Si[Ci]=null}function ji(e,t){Si[Ci++]=Ti,Si[Ci++]=Ei,Si[Ci++]=wi,Ti=t.id,Ei=t.overflow,wi=e}var Mi=null,Ni=null,Pi=!1,Fi=null,Ii=!1,Li=Error(i(519));function Ri(e){throw Wi(_i(Error(i(418,1<arguments.length&&arguments[1]!==void 0&&arguments[1]?`text`:`HTML`,``)),e)),Li}function zi(e){var t=e.stateNode,n=e.type,r=e.memoizedProps;switch(t[at]=e,t[ot]=r,n){case`dialog`:Od(`cancel`,t),Od(`close`,t);break;case`iframe`:case`object`:case`embed`:Od(`load`,t);break;case`video`:case`audio`:for(n=0;n<Td.length;n++)Od(Td[n],t);break;case`source`:Od(`error`,t);break;case`img`:case`image`:case`link`:Od(`error`,t),Od(`load`,t);break;case`details`:Od(`toggle`,t);break;case`input`:Od(`invalid`,t),zt(t,r.value,r.defaultValue,r.checked,r.defaultChecked,r.type,r.name,!0);break;case`select`:Od(`invalid`,t);break;case`textarea`:Od(`invalid`,t),Ut(t,r.value,r.defaultValue,r.children)}n=r.children,typeof n!=`string`&&typeof n!=`number`&&typeof n!=`bigint`||t.textContent===``+n||!0===r.suppressHydrationWarning||Vd(t.textContent,n)?(r.popover!=null&&(Od(`beforetoggle`,t),Od(`toggle`,t)),r.onScroll!=null&&Od(`scroll`,t),r.onScrollEnd!=null&&Od(`scrollend`,t),r.onClick!=null&&(t.onclick=Qt),t=!0):t=!1,t||Ri(e,!0)}function Bi(e){for(Mi=e.return;Mi;)switch(Mi.tag){case 5:case 31:case 13:Ii=!1;return;case 27:case 3:Ii=!0;return;default:Mi=Mi.return}}function Vi(e){if(e!==Mi)return!1;if(!Pi)return Bi(e),Pi=!0,!1;var t=e.tag,n;if((n=t!==3&&t!==27)&&((n=t===5)&&(n=e.type,n=!(n!==`form`&&n!==`button`)||$d(e.type,e.memoizedProps)),n=!n),n&&Ni&&Ri(e),Bi(e),t===13){if(e=e.memoizedState,e=e===null?null:e.dehydrated,!e)throw Error(i(317));Ni=bf(e)}else if(t===31){if(e=e.memoizedState,e=e===null?null:e.dehydrated,!e)throw Error(i(317));Ni=bf(e)}else t===27?(t=Ni,cf(e.type)?(e=yf,yf=null,Ni=e):Ni=t):Ni=Mi?vf(e.stateNode.nextSibling):null;return!0}function Hi(){Ni=Mi=null,Pi=!1}function Ui(){var e=Fi;return e!==null&&(au===null?au=e:au.push.apply(au,e),Fi=null),e}function Wi(e){Fi===null?Fi=[e]:Fi.push(e)}var Gi=ne(null),Ki=null,qi=null;function Ji(e,t,n){z(Gi,t._currentValue),t._currentValue=n}function Yi(e){e._currentValue=Gi.current,re(Gi)}function Xi(e,t,n){for(;e!==null;){var r=e.alternate;if((e.childLanes&t)===t?r!==null&&(r.childLanes&t)!==t&&(r.childLanes|=t):(e.childLanes|=t,r!==null&&(r.childLanes|=t)),e===n)break;e=e.return}}function Zi(e,t,n,r){var a=e.child;for(a!==null&&(a.return=e);a!==null;){var o=a.dependencies;if(o!==null){var s=a.child;o=o.firstContext;a:for(;o!==null;){var c=o;o=a;for(var l=0;l<t.length;l++)if(c.context===t[l]){o.lanes|=n,c=o.alternate,c!==null&&(c.lanes|=n),Xi(o.return,n,e),r||(s=null);break a}o=c.next}}else if(a.tag===18){if(s=a.return,s===null)throw Error(i(341));s.lanes|=n,o=s.alternate,o!==null&&(o.lanes|=n),Xi(s,n,e),s=null}else s=a.child;if(s!==null)s.return=a;else for(s=a;s!==null;){if(s===e){s=null;break}if(a=s.sibling,a!==null){a.return=s.return,s=a;break}s=s.return}a=s}}function Qi(e,t,n,r){e=null;for(var a=t,o=!1;a!==null;){if(!o){if(a.flags&524288)o=!0;else if(a.flags&262144)break}if(a.tag===10){var s=a.alternate;if(s===null)throw Error(i(387));if(s=s.memoizedProps,s!==null){var c=a.type;xr(a.pendingProps.value,s.value)||(e===null?e=[c]:e.push(c))}}else if(a===se.current){if(s=a.alternate,s===null)throw Error(i(387));s.memoizedState.memoizedState!==a.memoizedState.memoizedState&&(e===null?e=[cp]:e.push(cp))}a=a.return}e!==null&&Zi(t,e,n,r),t.flags|=262144}function $i(e){for(e=e.firstContext;e!==null;){if(!xr(e.context._currentValue,e.memoizedValue))return!0;e=e.next}return!1}function ea(e){Ki=e,qi=null,e=e.dependencies,e!==null&&(e.firstContext=null)}function ta(e){return ra(Ki,e)}function na(e,t){return Ki===null&&ea(e),ra(e,t)}function ra(e,t){var n=t._currentValue;if(t={context:t,memoizedValue:n,next:null},qi===null){if(e===null)throw Error(i(308));qi=t,e.dependencies={lanes:0,firstContext:t},e.flags|=524288}else qi=qi.next=t;return n}var ia=typeof AbortController<`u`?AbortController:function(){var e=[],t=this.signal={aborted:!1,addEventListener:function(t,n){e.push(n)}};this.abort=function(){t.aborted=!0,e.forEach(function(e){return e()})}},aa=t.unstable_scheduleCallback,oa=t.unstable_NormalPriority,sa={$$typeof:C,Consumer:null,Provider:null,_currentValue:null,_currentValue2:null,_threadCount:0};function ca(){return{controller:new ia,data:new Map,refCount:0}}function la(e){e.refCount--,e.refCount===0&&aa(oa,function(){e.controller.abort()})}var ua=null,da=0,fa=0,pa=null;function ma(e,t){if(ua===null){var n=ua=[];da=0,fa=yd(),pa={status:`pending`,value:void 0,then:function(e){n.push(e)}}}return da++,t.then(ha,ha),t}function ha(){if(--da===0&&ua!==null){pa!==null&&(pa.status=`fulfilled`);var e=ua;ua=null,fa=0,pa=null;for(var t=0;t<e.length;t++)(0,e[t])()}}function ga(e,t){var n=[],r={status:`pending`,value:null,reason:null,then:function(e){n.push(e)}};return e.then(function(){r.status=`fulfilled`,r.value=t;for(var e=0;e<n.length;e++)(0,n[e])(t)},function(e){for(r.status=`rejected`,r.reason=e,e=0;e<n.length;e++)(0,n[e])(void 0)}),r}var _a=F.S;F.S=function(e,t){cu=we(),typeof t==`object`&&t&&typeof t.then==`function`&&ma(e,t),_a!==null&&_a(e,t)};var va=ne(null);function ya(){var e=va.current;return e===null?Ul.pooledCache:e}function ba(e,t){t===null?z(va,va.current):z(va,t.pool)}function xa(){var e=ya();return e===null?null:{parent:sa._currentValue,pool:e}}var Sa=Error(i(460)),Ca=Error(i(474)),wa=Error(i(542)),Ta={then:function(){}};function Ea(e){return e=e.status,e===`fulfilled`||e===`rejected`}function Da(e,t,n){switch(n=e[n],n===void 0?e.push(t):n!==t&&(t.then(Qt,Qt),t=n),t.status){case`fulfilled`:return t.value;case`rejected`:throw e=t.reason,ja(e),e;default:if(typeof t.status==`string`)t.then(Qt,Qt);else{if(e=Ul,e!==null&&100<e.shellSuspendCounter)throw Error(i(482));e=t,e.status=`pending`,e.then(function(e){if(t.status===`pending`){var n=t;n.status=`fulfilled`,n.value=e}},function(e){if(t.status===`pending`){var n=t;n.status=`rejected`,n.reason=e}})}switch(t.status){case`fulfilled`:return t.value;case`rejected`:throw e=t.reason,ja(e),e}throw ka=t,Sa}}function Oa(e){try{var t=e._init;return t(e._payload)}catch(e){throw typeof e==`object`&&e&&typeof e.then==`function`?(ka=e,Sa):e}}var ka=null;function Aa(){if(ka===null)throw Error(i(459));var e=ka;return ka=null,e}function ja(e){if(e===Sa||e===wa)throw Error(i(483))}var Ma=null,Na=0;function Pa(e){var t=Na;return Na+=1,Ma===null&&(Ma=[]),Da(Ma,e,t)}function Fa(e,t){t=t.props.ref,e.ref=t===void 0?null:t}function Ia(e,t){throw t.$$typeof===h?Error(i(525)):(e=Object.prototype.toString.call(t),Error(i(31,e===`[object Object]`?`object with keys {`+Object.keys(t).join(`, `)+`}`:e)))}function La(e){function t(t,n){if(e){var r=t.deletions;r===null?(t.deletions=[n],t.flags|=16):r.push(n)}}function n(n,r){if(!e)return null;for(;r!==null;)t(n,r),r=r.sibling;return null}function r(e){for(var t=new Map;e!==null;)e.key===null?t.set(e.index,e):t.set(e.key,e),e=e.sibling;return t}function a(e,t){return e=li(e,t),e.index=0,e.sibling=null,e}function o(t,n,r){return t.index=r,e?(r=t.alternate,r===null?(t.flags|=67108866,n):(r=r.index,r<n?(t.flags|=67108866,n):r)):(t.flags|=1048576,n)}function s(t){return e&&t.alternate===null&&(t.flags|=67108866),t}function c(e,t,n,r){return t===null||t.tag!==6?(t=pi(n,e.mode,r),t.return=e,t):(t=a(t,n),t.return=e,t)}function l(e,t,n,r){var i=n.type;return i===y?d(e,t,n.props.children,r,n.key):t!==null&&(t.elementType===i||typeof i==`object`&&i&&i.$$typeof===O&&Oa(i)===t.type)?(t=a(t,n.props),Fa(t,n),t.return=e,t):(t=di(n.type,n.key,n.props,null,e.mode,r),Fa(t,n),t.return=e,t)}function u(e,t,n,r){return t===null||t.tag!==4||t.stateNode.containerInfo!==n.containerInfo||t.stateNode.implementation!==n.implementation?(t=hi(n,e.mode,r),t.return=e,t):(t=a(t,n.children||[]),t.return=e,t)}function d(e,t,n,r,i){return t===null||t.tag!==7?(t=fi(n,e.mode,r,i),t.return=e,t):(t=a(t,n),t.return=e,t)}function f(e,t,n){if(typeof t==`string`&&t!==``||typeof t==`number`||typeof t==`bigint`)return t=pi(``+t,e.mode,n),t.return=e,t;if(typeof t==`object`&&t){switch(t.$$typeof){case _:return n=di(t.type,t.key,t.props,null,e.mode,n),Fa(n,t),n.return=e,n;case v:return t=hi(t,e.mode,n),t.return=e,t;case O:return t=Oa(t),f(e,t,n)}if(P(t)||M(t))return t=fi(t,e.mode,n,null),t.return=e,t;if(typeof t.then==`function`)return f(e,Pa(t),n);if(t.$$typeof===C)return f(e,na(e,t),n);Ia(e,t)}return null}function p(e,t,n,r){var i=t===null?null:t.key;if(typeof n==`string`&&n!==``||typeof n==`number`||typeof n==`bigint`)return i===null?c(e,t,``+n,r):null;if(typeof n==`object`&&n){switch(n.$$typeof){case _:return n.key===i?l(e,t,n,r):null;case v:return n.key===i?u(e,t,n,r):null;case O:return n=Oa(n),p(e,t,n,r)}if(P(n)||M(n))return i===null?d(e,t,n,r,null):null;if(typeof n.then==`function`)return p(e,t,Pa(n),r);if(n.$$typeof===C)return p(e,t,na(e,n),r);Ia(e,n)}return null}function m(e,t,n,r,i){if(typeof r==`string`&&r!==``||typeof r==`number`||typeof r==`bigint`)return e=e.get(n)||null,c(t,e,``+r,i);if(typeof r==`object`&&r){switch(r.$$typeof){case _:return e=e.get(r.key===null?n:r.key)||null,l(t,e,r,i);case v:return e=e.get(r.key===null?n:r.key)||null,u(t,e,r,i);case O:return r=Oa(r),m(e,t,n,r,i)}if(P(r)||M(r))return e=e.get(n)||null,d(t,e,r,i,null);if(typeof r.then==`function`)return m(e,t,n,Pa(r),i);if(r.$$typeof===C)return m(e,t,n,na(t,r),i);Ia(t,r)}return null}function h(i,a,s,c){for(var l=null,u=null,d=a,h=a=0,g=null;d!==null&&h<s.length;h++){d.index>h?(g=d,d=null):g=d.sibling;var _=p(i,d,s[h],c);if(_===null){d===null&&(d=g);break}e&&d&&_.alternate===null&&t(i,d),a=o(_,a,h),u===null?l=_:u.sibling=_,u=_,d=g}if(h===s.length)return n(i,d),Pi&&Di(i,h),l;if(d===null){for(;h<s.length;h++)d=f(i,s[h],c),d!==null&&(a=o(d,a,h),u===null?l=d:u.sibling=d,u=d);return Pi&&Di(i,h),l}for(d=r(d);h<s.length;h++)g=m(d,i,h,s[h],c),g!==null&&(e&&g.alternate!==null&&d.delete(g.key===null?h:g.key),a=o(g,a,h),u===null?l=g:u.sibling=g,u=g);return e&&d.forEach(function(e){return t(i,e)}),Pi&&Di(i,h),l}function g(a,s,c,l){if(c==null)throw Error(i(151));for(var u=null,d=null,h=s,g=s=0,_=null,v=c.next();h!==null&&!v.done;g++,v=c.next()){h.index>g?(_=h,h=null):_=h.sibling;var y=p(a,h,v.value,l);if(y===null){h===null&&(h=_);break}e&&h&&y.alternate===null&&t(a,h),s=o(y,s,g),d===null?u=y:d.sibling=y,d=y,h=_}if(v.done)return n(a,h),Pi&&Di(a,g),u;if(h===null){for(;!v.done;g++,v=c.next())v=f(a,v.value,l),v!==null&&(s=o(v,s,g),d===null?u=v:d.sibling=v,d=v);return Pi&&Di(a,g),u}for(h=r(h);!v.done;g++,v=c.next())v=m(h,a,g,v.value,l),v!==null&&(e&&v.alternate!==null&&h.delete(v.key===null?g:v.key),s=o(v,s,g),d===null?u=v:d.sibling=v,d=v);return e&&h.forEach(function(e){return t(a,e)}),Pi&&Di(a,g),u}function b(e,r,o,c){if(typeof o==`object`&&o&&o.type===y&&o.key===null&&(o=o.props.children),typeof o==`object`&&o){switch(o.$$typeof){case _:a:{for(var l=o.key;r!==null;){if(r.key===l){if(l=o.type,l===y){if(r.tag===7){n(e,r.sibling),c=a(r,o.props.children),c.return=e,e=c;break a}}else if(r.elementType===l||typeof l==`object`&&l&&l.$$typeof===O&&Oa(l)===r.type){n(e,r.sibling),c=a(r,o.props),Fa(c,o),c.return=e,e=c;break a}n(e,r);break}else t(e,r);r=r.sibling}o.type===y?(c=fi(o.props.children,e.mode,c,o.key),c.return=e,e=c):(c=di(o.type,o.key,o.props,null,e.mode,c),Fa(c,o),c.return=e,e=c)}return s(e);case v:a:{for(l=o.key;r!==null;){if(r.key===l)if(r.tag===4&&r.stateNode.containerInfo===o.containerInfo&&r.stateNode.implementation===o.implementation){n(e,r.sibling),c=a(r,o.children||[]),c.return=e,e=c;break a}else{n(e,r);break}else t(e,r);r=r.sibling}c=hi(o,e.mode,c),c.return=e,e=c}return s(e);case O:return o=Oa(o),b(e,r,o,c)}if(P(o))return h(e,r,o,c);if(M(o)){if(l=M(o),typeof l!=`function`)throw Error(i(150));return o=l.call(o),g(e,r,o,c)}if(typeof o.then==`function`)return b(e,r,Pa(o),c);if(o.$$typeof===C)return b(e,r,na(e,o),c);Ia(e,o)}return typeof o==`string`&&o!==``||typeof o==`number`||typeof o==`bigint`?(o=``+o,r!==null&&r.tag===6?(n(e,r.sibling),c=a(r,o),c.return=e,e=c):(n(e,r),c=pi(o,e.mode,c),c.return=e,e=c),s(e)):n(e,r)}return function(e,t,n,r){try{Na=0;var i=b(e,t,n,r);return Ma=null,i}catch(t){if(t===Sa||t===wa)throw t;var a=si(29,t,null,e.mode);return a.lanes=r,a.return=e,a}}}var Ra=La(!0),za=La(!1),Ba=!1;function Va(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,lanes:0,hiddenCallbacks:null},callbacks:null}}function Ha(e,t){e=e.updateQueue,t.updateQueue===e&&(t.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,callbacks:null})}function Ua(e){return{lane:e,tag:0,payload:null,callback:null,next:null}}function Wa(e,t,n){var r=e.updateQueue;if(r===null)return null;if(r=r.shared,Hl&2){var i=r.pending;return i===null?t.next=t:(t.next=i.next,i.next=t),r.pending=t,t=ii(e),ri(e,null,n),t}return ei(e,r,t,n),ii(e)}function Ga(e,t,n){if(t=t.updateQueue,t!==null&&(t=t.shared,n&4194048)){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,Qe(e,n)}}function Ka(e,t){var n=e.updateQueue,r=e.alternate;if(r!==null&&(r=r.updateQueue,n===r)){var i=null,a=null;if(n=n.firstBaseUpdate,n!==null){do{var o={lane:n.lane,tag:n.tag,payload:n.payload,callback:null,next:null};a===null?i=a=o:a=a.next=o,n=n.next}while(n!==null);a===null?i=a=t:a=a.next=t}else i=a=t;n={baseState:r.baseState,firstBaseUpdate:i,lastBaseUpdate:a,shared:r.shared,callbacks:r.callbacks},e.updateQueue=n;return}e=n.lastBaseUpdate,e===null?n.firstBaseUpdate=t:e.next=t,n.lastBaseUpdate=t}var qa=!1;function Ja(){if(qa){var e=pa;if(e!==null)throw e}}function Ya(e,t,n,r){qa=!1;var i=e.updateQueue;Ba=!1;var a=i.firstBaseUpdate,o=i.lastBaseUpdate,s=i.shared.pending;if(s!==null){i.shared.pending=null;var c=s,l=c.next;c.next=null,o===null?a=l:o.next=l,o=c;var u=e.alternate;u!==null&&(u=u.updateQueue,s=u.lastBaseUpdate,s!==o&&(s===null?u.firstBaseUpdate=l:s.next=l,u.lastBaseUpdate=c))}if(a!==null){var d=i.baseState;o=0,u=l=c=null,s=a;do{var f=s.lane&-536870913,m=f!==s.lane;if(m?(Gl&f)===f:(r&f)===f){f!==0&&f===fa&&(qa=!0),u!==null&&(u=u.next={lane:0,tag:s.tag,payload:s.payload,callback:null,next:null});a:{var h=e,g=s;f=t;var _=n;switch(g.tag){case 1:if(h=g.payload,typeof h==`function`){d=h.call(_,d,f);break a}d=h;break a;case 3:h.flags=h.flags&-65537|128;case 0:if(h=g.payload,f=typeof h==`function`?h.call(_,d,f):h,f==null)break a;d=p({},d,f);break a;case 2:Ba=!0}}f=s.callback,f!==null&&(e.flags|=64,m&&(e.flags|=8192),m=i.callbacks,m===null?i.callbacks=[f]:m.push(f))}else m={lane:f,tag:s.tag,payload:s.payload,callback:s.callback,next:null},u===null?(l=u=m,c=d):u=u.next=m,o|=f;if(s=s.next,s===null){if(s=i.shared.pending,s===null)break;m=s,s=m.next,m.next=null,i.lastBaseUpdate=m,i.shared.pending=null}}while(1);u===null&&(c=d),i.baseState=c,i.firstBaseUpdate=l,i.lastBaseUpdate=u,a===null&&(i.shared.lanes=0),$l|=o,e.lanes=o,e.memoizedState=d}}function Xa(e,t){if(typeof e!=`function`)throw Error(i(191,e));e.call(t)}function Za(e,t){var n=e.callbacks;if(n!==null)for(e.callbacks=null,e=0;e<n.length;e++)Xa(n[e],t)}var Qa=ne(null),$a=ne(0);function eo(e,t){e=Zl,z($a,e),z(Qa,t),Zl=e|t.baseLanes}function to(){z($a,Zl),z(Qa,Qa.current)}function no(){Zl=$a.current,re(Qa),re($a)}var ro=ne(null),io=null;function ao(e){var t=e.alternate;z(uo,uo.current&1),z(ro,e),io===null&&(t===null||Qa.current!==null||t.memoizedState!==null)&&(io=e)}function oo(e){z(uo,uo.current),z(ro,e),io===null&&(io=e)}function so(e){e.tag===22?(z(uo,uo.current),z(ro,e),io===null&&(io=e)):co(e)}function co(){z(uo,uo.current),z(ro,ro.current)}function lo(e){re(ro),io===e&&(io=null),re(uo)}var uo=ne(0);function fo(e){for(var t=e;t!==null;){if(t.tag===13){var n=t.memoizedState;if(n!==null&&(n=n.dehydrated,n===null||hf(n)||gf(n)))return t}else if(t.tag===19&&(t.memoizedProps.revealOrder===`forwards`||t.memoizedProps.revealOrder===`backwards`||t.memoizedProps.revealOrder===`unstable_legacy-backwards`||t.memoizedProps.revealOrder===`together`)){if(t.flags&128)return t}else if(t.child!==null){t.child.return=t,t=t.child;continue}if(t===e)break;for(;t.sibling===null;){if(t.return===null||t.return===e)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}return null}var po=0,mo=null,ho=null,go=null,_o=!1,vo=!1,yo=!1,bo=0,xo=0,So=null,Co=0;function wo(){throw Error(i(321))}function To(e,t){if(t===null)return!1;for(var n=0;n<t.length&&n<e.length;n++)if(!xr(e[n],t[n]))return!1;return!0}function Eo(e,t,n,r,i,a){return po=a,mo=t,t.memoizedState=null,t.updateQueue=null,t.lanes=0,F.H=e===null||e.memoizedState===null?Bs:Vs,yo=!1,a=n(r,i),yo=!1,vo&&(a=Oo(t,n,r,i)),Do(e),a}function Do(e){F.H=zs;var t=ho!==null&&ho.next!==null;if(po=0,go=ho=mo=null,_o=!1,xo=0,So=null,t)throw Error(i(300));e===null||ic||(e=e.dependencies,e!==null&&$i(e)&&(ic=!0))}function Oo(e,t,n,r){mo=e;var a=0;do{if(vo&&(So=null),xo=0,vo=!1,25<=a)throw Error(i(301));if(a+=1,go=ho=null,e.updateQueue!=null){var o=e.updateQueue;o.lastEffect=null,o.events=null,o.stores=null,o.memoCache!=null&&(o.memoCache.index=0)}F.H=Hs,o=t(n,r)}while(vo);return o}function ko(){var e=F.H,t=e.useState()[0];return t=typeof t.then==`function`?Io(t):t,e=e.useState()[0],(ho===null?null:ho.memoizedState)!==e&&(mo.flags|=1024),t}function Ao(){var e=bo!==0;return bo=0,e}function jo(e,t,n){t.updateQueue=e.updateQueue,t.flags&=-2053,e.lanes&=~n}function Mo(e){if(_o){for(e=e.memoizedState;e!==null;){var t=e.queue;t!==null&&(t.pending=null),e=e.next}_o=!1}po=0,go=ho=mo=null,vo=!1,xo=bo=0,So=null}function No(){var e={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return go===null?mo.memoizedState=go=e:go=go.next=e,go}function Po(){if(ho===null){var e=mo.alternate;e=e===null?null:e.memoizedState}else e=ho.next;var t=go===null?mo.memoizedState:go.next;if(t!==null)go=t,ho=e;else{if(e===null)throw mo.alternate===null?Error(i(467)):Error(i(310));ho=e,e={memoizedState:ho.memoizedState,baseState:ho.baseState,baseQueue:ho.baseQueue,queue:ho.queue,next:null},go===null?mo.memoizedState=go=e:go=go.next=e}return go}function Fo(){return{lastEffect:null,events:null,stores:null,memoCache:null}}function Io(e){var t=xo;return xo+=1,So===null&&(So=[]),e=Da(So,e,t),t=mo,(go===null?t.memoizedState:go.next)===null&&(t=t.alternate,F.H=t===null||t.memoizedState===null?Bs:Vs),e}function Lo(e){if(typeof e==`object`&&e){if(typeof e.then==`function`)return Io(e);if(e.$$typeof===C)return ta(e)}throw Error(i(438,String(e)))}function Ro(e){var t=null,n=mo.updateQueue;if(n!==null&&(t=n.memoCache),t==null){var r=mo.alternate;r!==null&&(r=r.updateQueue,r!==null&&(r=r.memoCache,r!=null&&(t={data:r.data.map(function(e){return e.slice()}),index:0})))}if(t??(t={data:[],index:0}),n===null&&(n=Fo(),mo.updateQueue=n),n.memoCache=t,n=t.data[t.index],n===void 0)for(n=t.data[t.index]=Array(e),r=0;r<e;r++)n[r]=A;return t.index++,n}function zo(e,t){return typeof t==`function`?t(e):t}function Bo(e){return Vo(Po(),ho,e)}function Vo(e,t,n){var r=e.queue;if(r===null)throw Error(i(311));r.lastRenderedReducer=n;var a=e.baseQueue,o=r.pending;if(o!==null){if(a!==null){var s=a.next;a.next=o.next,o.next=s}t.baseQueue=a=o,r.pending=null}if(o=e.baseState,a===null)e.memoizedState=o;else{t=a.next;var c=s=null,l=null,u=t,d=!1;do{var f=u.lane&-536870913;if(f===u.lane?(po&f)===f:(Gl&f)===f){var p=u.revertLane;if(p===0)l!==null&&(l=l.next={lane:0,revertLane:0,gesture:null,action:u.action,hasEagerState:u.hasEagerState,eagerState:u.eagerState,next:null}),f===fa&&(d=!0);else if((po&p)===p){u=u.next,p===fa&&(d=!0);continue}else f={lane:0,revertLane:u.revertLane,gesture:null,action:u.action,hasEagerState:u.hasEagerState,eagerState:u.eagerState,next:null},l===null?(c=l=f,s=o):l=l.next=f,mo.lanes|=p,$l|=p;f=u.action,yo&&n(o,f),o=u.hasEagerState?u.eagerState:n(o,f)}else p={lane:f,revertLane:u.revertLane,gesture:u.gesture,action:u.action,hasEagerState:u.hasEagerState,eagerState:u.eagerState,next:null},l===null?(c=l=p,s=o):l=l.next=p,mo.lanes|=f,$l|=f;u=u.next}while(u!==null&&u!==t);if(l===null?s=o:l.next=c,!xr(o,e.memoizedState)&&(ic=!0,d&&(n=pa,n!==null)))throw n;e.memoizedState=o,e.baseState=s,e.baseQueue=l,r.lastRenderedState=o}return a===null&&(r.lanes=0),[e.memoizedState,r.dispatch]}function Ho(e){var t=Po(),n=t.queue;if(n===null)throw Error(i(311));n.lastRenderedReducer=e;var r=n.dispatch,a=n.pending,o=t.memoizedState;if(a!==null){n.pending=null;var s=a=a.next;do o=e(o,s.action),s=s.next;while(s!==a);xr(o,t.memoizedState)||(ic=!0),t.memoizedState=o,t.baseQueue===null&&(t.baseState=o),n.lastRenderedState=o}return[o,r]}function Uo(e,t,n){var r=mo,a=Po(),o=Pi;if(o){if(n===void 0)throw Error(i(407));n=n()}else n=t();var s=!xr((ho||a).memoizedState,n);if(s&&(a.memoizedState=n,ic=!0),a=a.queue,ds(Ko.bind(null,r,a,e),[e]),a.getSnapshot!==t||s||go!==null&&go.memoizedState.tag&1){if(r.flags|=2048,B(9,{destroy:void 0},Go.bind(null,r,a,n,t),null),Ul===null)throw Error(i(349));o||po&127||Wo(r,t,n)}return n}function Wo(e,t,n){e.flags|=16384,e={getSnapshot:t,value:n},t=mo.updateQueue,t===null?(t=Fo(),mo.updateQueue=t,t.stores=[e]):(n=t.stores,n===null?t.stores=[e]:n.push(e))}function Go(e,t,n,r){t.value=n,t.getSnapshot=r,qo(t)&&Jo(e)}function Ko(e,t,n){return n(function(){qo(t)&&Jo(e)})}function qo(e){var t=e.getSnapshot;e=e.value;try{var n=t();return!xr(e,n)}catch{return!0}}function Jo(e){var t=ni(e,2);t!==null&&Cu(t,e,2)}function Yo(e){var t=No();if(typeof e==`function`){var n=e;if(e=n(),yo){Fe(!0);try{n()}finally{Fe(!1)}}}return t.memoizedState=t.baseState=e,t.queue={pending:null,lanes:0,dispatch:null,lastRenderedReducer:zo,lastRenderedState:e},t}function Xo(e,t,n,r){return e.baseState=n,Vo(e,ho,typeof r==`function`?r:zo)}function Zo(e,t,n,r,a){if(Is(e))throw Error(i(485));if(e=t.action,e!==null){var o={payload:a,action:e,next:null,isTransition:!0,status:`pending`,value:null,reason:null,listeners:[],then:function(e){o.listeners.push(e)}};F.T===null?o.isTransition=!1:n(!0),r(o),n=t.pending,n===null?(o.next=t.pending=o,Qo(t,o)):(o.next=n.next,t.pending=n.next=o)}}function Qo(e,t){var n=t.action,r=t.payload,i=e.state;if(t.isTransition){var a=F.T,o={};F.T=o;try{var s=n(i,r),c=F.S;c!==null&&c(o,s),$o(e,t,s)}catch(n){ts(e,t,n)}finally{a!==null&&o.types!==null&&(a.types=o.types),F.T=a}}else try{a=n(i,r),$o(e,t,a)}catch(n){ts(e,t,n)}}function $o(e,t,n){typeof n==`object`&&n&&typeof n.then==`function`?n.then(function(n){es(e,t,n)},function(n){return ts(e,t,n)}):es(e,t,n)}function es(e,t,n){t.status=`fulfilled`,t.value=n,ns(t),e.state=n,t=e.pending,t!==null&&(n=t.next,n===t?e.pending=null:(n=n.next,t.next=n,Qo(e,n)))}function ts(e,t,n){var r=e.pending;if(e.pending=null,r!==null){r=r.next;do t.status=`rejected`,t.reason=n,ns(t),t=t.next;while(t!==r)}e.action=null}function ns(e){e=e.listeners;for(var t=0;t<e.length;t++)(0,e[t])()}function rs(e,t){return t}function is(e,t){if(Pi){var n=Ul.formState;if(n!==null){a:{var r=mo;if(Pi){if(Ni){b:{for(var i=Ni,a=Ii;i.nodeType!==8;){if(!a){i=null;break b}if(i=vf(i.nextSibling),i===null){i=null;break b}}a=i.data,i=a===`F!`||a===`F`?i:null}if(i){Ni=vf(i.nextSibling),r=i.data===`F!`;break a}}Ri(r)}r=!1}r&&(t=n[0])}}return n=No(),n.memoizedState=n.baseState=t,r={pending:null,lanes:0,dispatch:null,lastRenderedReducer:rs,lastRenderedState:t},n.queue=r,n=Ns.bind(null,mo,r),r.dispatch=n,r=Yo(!1),a=Fs.bind(null,mo,!1,r.queue),r=No(),i={state:t,dispatch:null,action:e,pending:null},r.queue=i,n=Zo.bind(null,mo,i,a,n),i.dispatch=n,r.memoizedState=e,[t,n,!1]}function as(e){return os(Po(),ho,e)}function os(e,t,n){if(t=Vo(e,t,rs)[0],e=Bo(zo)[0],typeof t==`object`&&t&&typeof t.then==`function`)try{var r=Io(t)}catch(e){throw e===Sa?wa:e}else r=t;t=Po();var i=t.queue,a=i.dispatch;return n!==t.memoizedState&&(mo.flags|=2048,B(9,{destroy:void 0},ss.bind(null,i,n),null)),[r,a,e]}function ss(e,t){e.action=t}function cs(e){var t=Po(),n=ho;if(n!==null)return os(t,n,e);Po(),t=t.memoizedState,n=Po();var r=n.queue.dispatch;return n.memoizedState=e,[t,r,!1]}function B(e,t,n,r){return e={tag:e,create:n,deps:r,inst:t,next:null},t=mo.updateQueue,t===null&&(t=Fo(),mo.updateQueue=t),n=t.lastEffect,n===null?t.lastEffect=e.next=e:(r=n.next,n.next=e,e.next=r,t.lastEffect=e),e}function ls(){return Po().memoizedState}function us(e,t,n,r){var i=No();mo.flags|=e,i.memoizedState=B(1|t,{destroy:void 0},n,r===void 0?null:r)}function V(e,t,n,r){var i=Po();r=r===void 0?null:r;var a=i.memoizedState.inst;ho!==null&&r!==null&&To(r,ho.memoizedState.deps)?i.memoizedState=B(t,a,n,r):(mo.flags|=e,i.memoizedState=B(1|t,a,n,r))}function H(e,t){us(8390656,8,e,t)}function ds(e,t){V(2048,8,e,t)}function fs(e){mo.flags|=4;var t=mo.updateQueue;if(t===null)t=Fo(),mo.updateQueue=t,t.events=[e];else{var n=t.events;n===null?t.events=[e]:n.push(e)}}function ps(e){var t=Po().memoizedState;return fs({ref:t,nextImpl:e}),function(){if(Hl&2)throw Error(i(440));return t.impl.apply(void 0,arguments)}}function ms(e,t){return V(4,2,e,t)}function hs(e,t){return V(4,4,e,t)}function gs(e,t){if(typeof t==`function`){e=e();var n=t(e);return function(){typeof n==`function`?n():t(null)}}if(t!=null)return e=e(),t.current=e,function(){t.current=null}}function _s(e,t,n){n=n==null?null:n.concat([e]),V(4,4,gs.bind(null,t,e),n)}function vs(){}function ys(e,t){var n=Po();t=t===void 0?null:t;var r=n.memoizedState;return t!==null&&To(t,r[1])?r[0]:(n.memoizedState=[e,t],e)}function bs(e,t){var n=Po();t=t===void 0?null:t;var r=n.memoizedState;if(t!==null&&To(t,r[1]))return r[0];if(r=e(),yo){Fe(!0);try{e()}finally{Fe(!1)}}return n.memoizedState=[r,t],r}function xs(e,t,n){return n===void 0||po&1073741824&&!(Gl&261930)?e.memoizedState=t:(e.memoizedState=n,e=Su(),mo.lanes|=e,$l|=e,n)}function Ss(e,t,n,r){return xr(n,t)?n:Qa.current===null?!(po&42)||po&1073741824&&!(Gl&261930)?(ic=!0,e.memoizedState=n):(e=Su(),mo.lanes|=e,$l|=e,t):(e=xs(e,n,r),xr(e,t)||(ic=!0),e)}function Cs(e,t,n,r,i){var a=I.p;I.p=a!==0&&8>a?a:8;var o=F.T,s={};F.T=s,Fs(e,!1,t,n);try{var c=i(),l=F.S;l!==null&&l(s,c),typeof c==`object`&&c&&typeof c.then==`function`?Ps(e,t,ga(c,r),xu(e)):Ps(e,t,r,xu(e))}catch(n){Ps(e,t,{then:function(){},status:`rejected`,reason:n},xu())}finally{I.p=a,o!==null&&s.types!==null&&(o.types=s.types),F.T=o}}function ws(){}function Ts(e,t,n,r){if(e.tag!==5)throw Error(i(476));var a=Es(e).queue;Cs(e,a,t,L,n===null?ws:function(){return Ds(e),n(r)})}function Es(e){var t=e.memoizedState;if(t!==null)return t;t={memoizedState:L,baseState:L,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:zo,lastRenderedState:L},next:null};var n={};return t.next={memoizedState:n,baseState:n,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:zo,lastRenderedState:n},next:null},e.memoizedState=t,e=e.alternate,e!==null&&(e.memoizedState=t),t}function Ds(e){var t=Es(e);t.next===null&&(t=e.alternate.memoizedState),Ps(e,t.next.queue,{},xu())}function Os(){return ta(cp)}function ks(){return Po().memoizedState}function As(){return Po().memoizedState}function js(e){for(var t=e.return;t!==null;){switch(t.tag){case 24:case 3:var n=xu();e=Ua(n);var r=Wa(t,e,n);r!==null&&(Cu(r,t,n),Ga(r,t,n)),t={cache:ca()},e.payload=t;return}t=t.return}}function Ms(e,t,n){var r=xu();n={lane:r,revertLane:0,gesture:null,action:n,hasEagerState:!1,eagerState:null,next:null},Is(e)?Ls(t,n):(n=ti(e,t,n,r),n!==null&&(Cu(n,e,r),Rs(n,t,r)))}function Ns(e,t,n){Ps(e,t,n,xu())}function Ps(e,t,n,r){var i={lane:r,revertLane:0,gesture:null,action:n,hasEagerState:!1,eagerState:null,next:null};if(Is(e))Ls(t,i);else{var a=e.alternate;if(e.lanes===0&&(a===null||a.lanes===0)&&(a=t.lastRenderedReducer,a!==null))try{var o=t.lastRenderedState,s=a(o,n);if(i.hasEagerState=!0,i.eagerState=s,xr(s,o))return ei(e,t,i,0),Ul===null&&$r(),!1}catch{}if(n=ti(e,t,i,r),n!==null)return Cu(n,e,r),Rs(n,t,r),!0}return!1}function Fs(e,t,n,r){if(r={lane:2,revertLane:yd(),gesture:null,action:r,hasEagerState:!1,eagerState:null,next:null},Is(e)){if(t)throw Error(i(479))}else t=ti(e,n,r,2),t!==null&&Cu(t,e,2)}function Is(e){var t=e.alternate;return e===mo||t!==null&&t===mo}function Ls(e,t){vo=_o=!0;var n=e.pending;n===null?t.next=t:(t.next=n.next,n.next=t),e.pending=t}function Rs(e,t,n){if(n&4194048){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,Qe(e,n)}}var zs={readContext:ta,use:Lo,useCallback:wo,useContext:wo,useEffect:wo,useImperativeHandle:wo,useLayoutEffect:wo,useInsertionEffect:wo,useMemo:wo,useReducer:wo,useRef:wo,useState:wo,useDebugValue:wo,useDeferredValue:wo,useTransition:wo,useSyncExternalStore:wo,useId:wo,useHostTransitionStatus:wo,useFormState:wo,useActionState:wo,useOptimistic:wo,useMemoCache:wo,useCacheRefresh:wo};zs.useEffectEvent=wo;var Bs={readContext:ta,use:Lo,useCallback:function(e,t){return No().memoizedState=[e,t===void 0?null:t],e},useContext:ta,useEffect:H,useImperativeHandle:function(e,t,n){n=n==null?null:n.concat([e]),us(4194308,4,gs.bind(null,t,e),n)},useLayoutEffect:function(e,t){return us(4194308,4,e,t)},useInsertionEffect:function(e,t){us(4,2,e,t)},useMemo:function(e,t){var n=No();t=t===void 0?null:t;var r=e();if(yo){Fe(!0);try{e()}finally{Fe(!1)}}return n.memoizedState=[r,t],r},useReducer:function(e,t,n){var r=No();if(n!==void 0){var i=n(t);if(yo){Fe(!0);try{n(t)}finally{Fe(!1)}}}else i=t;return r.memoizedState=r.baseState=i,e={pending:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:i},r.queue=e,e=e.dispatch=Ms.bind(null,mo,e),[r.memoizedState,e]},useRef:function(e){var t=No();return e={current:e},t.memoizedState=e},useState:function(e){e=Yo(e);var t=e.queue,n=Ns.bind(null,mo,t);return t.dispatch=n,[e.memoizedState,n]},useDebugValue:vs,useDeferredValue:function(e,t){return xs(No(),e,t)},useTransition:function(){var e=Yo(!1);return e=Cs.bind(null,mo,e.queue,!0,!1),No().memoizedState=e,[!1,e]},useSyncExternalStore:function(e,t,n){var r=mo,a=No();if(Pi){if(n===void 0)throw Error(i(407));n=n()}else{if(n=t(),Ul===null)throw Error(i(349));Gl&127||Wo(r,t,n)}a.memoizedState=n;var o={value:n,getSnapshot:t};return a.queue=o,H(Ko.bind(null,r,o,e),[e]),r.flags|=2048,B(9,{destroy:void 0},Go.bind(null,r,o,n,t),null),n},useId:function(){var e=No(),t=Ul.identifierPrefix;if(Pi){var n=Ei,r=Ti;n=(r&~(1<<32-Ie(r)-1)).toString(32)+n,t=`_`+t+`R_`+n,n=bo++,0<n&&(t+=`H`+n.toString(32)),t+=`_`}else n=Co++,t=`_`+t+`r_`+n.toString(32)+`_`;return e.memoizedState=t},useHostTransitionStatus:Os,useFormState:is,useActionState:is,useOptimistic:function(e){var t=No();t.memoizedState=t.baseState=e;var n={pending:null,lanes:0,dispatch:null,lastRenderedReducer:null,lastRenderedState:null};return t.queue=n,t=Fs.bind(null,mo,!0,n),n.dispatch=t,[e,t]},useMemoCache:Ro,useCacheRefresh:function(){return No().memoizedState=js.bind(null,mo)},useEffectEvent:function(e){var t=No(),n={impl:e};return t.memoizedState=n,function(){if(Hl&2)throw Error(i(440));return n.impl.apply(void 0,arguments)}}},Vs={readContext:ta,use:Lo,useCallback:ys,useContext:ta,useEffect:ds,useImperativeHandle:_s,useInsertionEffect:ms,useLayoutEffect:hs,useMemo:bs,useReducer:Bo,useRef:ls,useState:function(){return Bo(zo)},useDebugValue:vs,useDeferredValue:function(e,t){return Ss(Po(),ho.memoizedState,e,t)},useTransition:function(){var e=Bo(zo)[0],t=Po().memoizedState;return[typeof e==`boolean`?e:Io(e),t]},useSyncExternalStore:Uo,useId:ks,useHostTransitionStatus:Os,useFormState:as,useActionState:as,useOptimistic:function(e,t){return Xo(Po(),ho,e,t)},useMemoCache:Ro,useCacheRefresh:As};Vs.useEffectEvent=ps;var Hs={readContext:ta,use:Lo,useCallback:ys,useContext:ta,useEffect:ds,useImperativeHandle:_s,useInsertionEffect:ms,useLayoutEffect:hs,useMemo:bs,useReducer:Ho,useRef:ls,useState:function(){return Ho(zo)},useDebugValue:vs,useDeferredValue:function(e,t){var n=Po();return ho===null?xs(n,e,t):Ss(n,ho.memoizedState,e,t)},useTransition:function(){var e=Ho(zo)[0],t=Po().memoizedState;return[typeof e==`boolean`?e:Io(e),t]},useSyncExternalStore:Uo,useId:ks,useHostTransitionStatus:Os,useFormState:cs,useActionState:cs,useOptimistic:function(e,t){var n=Po();return ho===null?(n.baseState=e,[e,n.queue.dispatch]):Xo(n,ho,e,t)},useMemoCache:Ro,useCacheRefresh:As};Hs.useEffectEvent=ps;function Us(e,t,n,r){t=e.memoizedState,n=n(r,t),n=n==null?t:p({},t,n),e.memoizedState=n,e.lanes===0&&(e.updateQueue.baseState=n)}var Ws={enqueueSetState:function(e,t,n){e=e._reactInternals;var r=xu(),i=Ua(r);i.payload=t,n!=null&&(i.callback=n),t=Wa(e,i,r),t!==null&&(Cu(t,e,r),Ga(t,e,r))},enqueueReplaceState:function(e,t,n){e=e._reactInternals;var r=xu(),i=Ua(r);i.tag=1,i.payload=t,n!=null&&(i.callback=n),t=Wa(e,i,r),t!==null&&(Cu(t,e,r),Ga(t,e,r))},enqueueForceUpdate:function(e,t){e=e._reactInternals;var n=xu(),r=Ua(n);r.tag=2,t!=null&&(r.callback=t),t=Wa(e,r,n),t!==null&&(Cu(t,e,n),Ga(t,e,n))}};function Gs(e,t,n,r,i,a,o){return e=e.stateNode,typeof e.shouldComponentUpdate==`function`?e.shouldComponentUpdate(r,a,o):t.prototype&&t.prototype.isPureReactComponent?!Sr(n,r)||!Sr(i,a):!0}function Ks(e,t,n,r){e=t.state,typeof t.componentWillReceiveProps==`function`&&t.componentWillReceiveProps(n,r),typeof t.UNSAFE_componentWillReceiveProps==`function`&&t.UNSAFE_componentWillReceiveProps(n,r),t.state!==e&&Ws.enqueueReplaceState(t,t.state,null)}function qs(e,t){var n=t;if(`ref`in t)for(var r in n={},t)r!==`ref`&&(n[r]=t[r]);if(e=e.defaultProps)for(var i in n===t&&(n=p({},n)),e)n[i]===void 0&&(n[i]=e[i]);return n}function Js(e){Yr(e)}function Ys(e){console.error(e)}function Xs(e){Yr(e)}function Zs(e,t){try{var n=e.onUncaughtError;n(t.value,{componentStack:t.stack})}catch(e){setTimeout(function(){throw e})}}function Qs(e,t,n){try{var r=e.onCaughtError;r(n.value,{componentStack:n.stack,errorBoundary:t.tag===1?t.stateNode:null})}catch(e){setTimeout(function(){throw e})}}function $s(e,t,n){return n=Ua(n),n.tag=3,n.payload={element:null},n.callback=function(){Zs(e,t)},n}function ec(e){return e=Ua(e),e.tag=3,e}function tc(e,t,n,r){var i=n.type.getDerivedStateFromError;if(typeof i==`function`){var a=r.value;e.payload=function(){return i(a)},e.callback=function(){Qs(t,n,r)}}var o=n.stateNode;o!==null&&typeof o.componentDidCatch==`function`&&(e.callback=function(){Qs(t,n,r),typeof i!=`function`&&(du===null?du=new Set([this]):du.add(this));var e=r.stack;this.componentDidCatch(r.value,{componentStack:e===null?``:e})})}function nc(e,t,n,r,a){if(n.flags|=32768,typeof r==`object`&&r&&typeof r.then==`function`){if(t=n.alternate,t!==null&&Qi(t,n,a,!0),n=ro.current,n!==null){switch(n.tag){case 31:case 13:return io===null?Fu():n.alternate===null&&Ql===0&&(Ql=3),n.flags&=-257,n.flags|=65536,n.lanes=a,r===Ta?n.flags|=16384:(t=n.updateQueue,t===null?n.updateQueue=new Set([r]):t.add(r),$u(e,r,a)),!1;case 22:return n.flags|=65536,r===Ta?n.flags|=16384:(t=n.updateQueue,t===null?(t={transitions:null,markerInstances:null,retryQueue:new Set([r])},n.updateQueue=t):(n=t.retryQueue,n===null?t.retryQueue=new Set([r]):n.add(r)),$u(e,r,a)),!1}throw Error(i(435,n.tag))}return $u(e,r,a),Fu(),!1}if(Pi)return t=ro.current,t===null?(r!==Li&&(t=Error(i(423),{cause:r}),Wi(_i(t,n))),e=e.current.alternate,e.flags|=65536,a&=-a,e.lanes|=a,r=_i(r,n),a=$s(e.stateNode,r,a),Ka(e,a),Ql!==4&&(Ql=2)):(!(t.flags&65536)&&(t.flags|=256),t.flags|=65536,t.lanes=a,r!==Li&&(e=Error(i(422),{cause:r}),Wi(_i(e,n)))),!1;var o=Error(i(520),{cause:r});if(o=_i(o,n),iu===null?iu=[o]:iu.push(o),Ql!==4&&(Ql=2),t===null)return!0;r=_i(r,n),n=t;do{switch(n.tag){case 3:return n.flags|=65536,e=a&-a,n.lanes|=e,e=$s(n.stateNode,r,e),Ka(n,e),!1;case 1:if(t=n.type,o=n.stateNode,!(n.flags&128)&&(typeof t.getDerivedStateFromError==`function`||o!==null&&typeof o.componentDidCatch==`function`&&(du===null||!du.has(o))))return n.flags|=65536,a&=-a,n.lanes|=a,a=ec(a),tc(a,e,n,r),Ka(n,a),!1}n=n.return}while(n!==null);return!1}var rc=Error(i(461)),ic=!1;function ac(e,t,n,r){t.child=e===null?za(t,null,n,r):Ra(t,e.child,n,r)}function oc(e,t,n,r,i){n=n.render;var a=t.ref;if(`ref`in r){var o={};for(var s in r)s!==`ref`&&(o[s]=r[s])}else o=r;return ea(t),r=Eo(e,t,n,o,a,i),s=Ao(),e!==null&&!ic?(jo(e,t,i),Ac(e,t,i)):(Pi&&s&&ki(t),t.flags|=1,ac(e,t,r,i),t.child)}function sc(e,t,n,r,i){if(e===null){var a=n.type;return typeof a==`function`&&!ci(a)&&a.defaultProps===void 0&&n.compare===null?(t.tag=15,t.type=a,cc(e,t,a,r,i)):(e=di(n.type,null,r,t,t.mode,i),e.ref=t.ref,e.return=t,t.child=e)}if(a=e.child,!jc(e,i)){var o=a.memoizedProps;if(n=n.compare,n=n===null?Sr:n,n(o,r)&&e.ref===t.ref)return Ac(e,t,i)}return t.flags|=1,e=li(a,r),e.ref=t.ref,e.return=t,t.child=e}function cc(e,t,n,r,i){if(e!==null){var a=e.memoizedProps;if(Sr(a,r)&&e.ref===t.ref)if(ic=!1,t.pendingProps=r=a,jc(e,i))e.flags&131072&&(ic=!0);else return t.lanes=e.lanes,Ac(e,t,i)}return gc(e,t,n,r,i)}function lc(e,t,n,r){var i=r.children,a=e===null?null:e.memoizedState;if(e===null&&t.stateNode===null&&(t.stateNode={_visibility:1,_pendingMarkers:null,_retryCache:null,_transitions:null}),r.mode===`hidden`){if(t.flags&128){if(a=a===null?n:a.baseLanes|n,e!==null){for(r=t.child=e.child,i=0;r!==null;)i=i|r.lanes|r.childLanes,r=r.sibling;r=i&~a}else r=0,t.child=null;return dc(e,t,a,n,r)}if(n&536870912)t.memoizedState={baseLanes:0,cachePool:null},e!==null&&ba(t,a===null?null:a.cachePool),a===null?to():eo(t,a),so(t);else return r=t.lanes=536870912,dc(e,t,a===null?n:a.baseLanes|n,n,r)}else a===null?(e!==null&&ba(t,null),to(),co(t)):(ba(t,a.cachePool),eo(t,a),co(t),t.memoizedState=null);return ac(e,t,i,n),t.child}function uc(e,t){return e!==null&&e.tag===22||t.stateNode!==null||(t.stateNode={_visibility:1,_pendingMarkers:null,_retryCache:null,_transitions:null}),t.sibling}function dc(e,t,n,r,i){var a=ya();return a=a===null?null:{parent:sa._currentValue,pool:a},t.memoizedState={baseLanes:n,cachePool:a},e!==null&&ba(t,null),to(),so(t),e!==null&&Qi(e,t,r,!0),t.childLanes=i,null}function fc(e,t){return t=Tc({mode:t.mode,children:t.children},e.mode),t.ref=e.ref,e.child=t,t.return=e,t}function pc(e,t,n){return Ra(t,e.child,null,n),e=fc(t,t.pendingProps),e.flags|=2,lo(t),t.memoizedState=null,e}function mc(e,t,n){var r=t.pendingProps,a=(t.flags&128)!=0;if(t.flags&=-129,e===null){if(Pi){if(r.mode===`hidden`)return e=fc(t,r),t.lanes=536870912,uc(null,e);if(oo(t),(e=Ni)?(e=mf(e,Ii),e=e!==null&&e.data===`&`?e:null,e!==null&&(t.memoizedState={dehydrated:e,treeContext:wi===null?null:{id:Ti,overflow:Ei},retryLane:536870912,hydrationErrors:null},n=mi(e),n.return=t,t.child=n,Mi=t,Ni=null)):e=null,e===null)throw Ri(t);return t.lanes=536870912,null}return fc(t,r)}var o=e.memoizedState;if(o!==null){var s=o.dehydrated;if(oo(t),a)if(t.flags&256)t.flags&=-257,t=pc(e,t,n);else if(t.memoizedState!==null)t.child=e.child,t.flags|=128,t=null;else throw Error(i(558));else if(ic||Qi(e,t,n,!1),a=(n&e.childLanes)!==0,ic||a){if(r=Ul,r!==null&&(s=$e(r,n),s!==0&&s!==o.retryLane))throw o.retryLane=s,ni(e,s),Cu(r,e,s),rc;Fu(),t=pc(e,t,n)}else e=o.treeContext,Ni=vf(s.nextSibling),Mi=t,Pi=!0,Fi=null,Ii=!1,e!==null&&ji(t,e),t=fc(t,r),t.flags|=4096;return t}return e=li(e.child,{mode:r.mode,children:r.children}),e.ref=t.ref,t.child=e,e.return=t,e}function hc(e,t){var n=t.ref;if(n===null)e!==null&&e.ref!==null&&(t.flags|=4194816);else{if(typeof n!=`function`&&typeof n!=`object`)throw Error(i(284));(e===null||e.ref!==n)&&(t.flags|=4194816)}}function gc(e,t,n,r,i){return ea(t),n=Eo(e,t,n,r,void 0,i),r=Ao(),e!==null&&!ic?(jo(e,t,i),Ac(e,t,i)):(Pi&&r&&ki(t),t.flags|=1,ac(e,t,n,i),t.child)}function _c(e,t,n,r,i,a){return ea(t),t.updateQueue=null,n=Oo(t,r,n,i),Do(e),r=Ao(),e!==null&&!ic?(jo(e,t,a),Ac(e,t,a)):(Pi&&r&&ki(t),t.flags|=1,ac(e,t,n,a),t.child)}function vc(e,t,n,r,i){if(ea(t),t.stateNode===null){var a=ai,o=n.contextType;typeof o==`object`&&o&&(a=ta(o)),a=new n(r,a),t.memoizedState=a.state!==null&&a.state!==void 0?a.state:null,a.updater=Ws,t.stateNode=a,a._reactInternals=t,a=t.stateNode,a.props=r,a.state=t.memoizedState,a.refs={},Va(t),o=n.contextType,a.context=typeof o==`object`&&o?ta(o):ai,a.state=t.memoizedState,o=n.getDerivedStateFromProps,typeof o==`function`&&(Us(t,n,o,r),a.state=t.memoizedState),typeof n.getDerivedStateFromProps==`function`||typeof a.getSnapshotBeforeUpdate==`function`||typeof a.UNSAFE_componentWillMount!=`function`&&typeof a.componentWillMount!=`function`||(o=a.state,typeof a.componentWillMount==`function`&&a.componentWillMount(),typeof a.UNSAFE_componentWillMount==`function`&&a.UNSAFE_componentWillMount(),o!==a.state&&Ws.enqueueReplaceState(a,a.state,null),Ya(t,r,a,i),Ja(),a.state=t.memoizedState),typeof a.componentDidMount==`function`&&(t.flags|=4194308),r=!0}else if(e===null){a=t.stateNode;var s=t.memoizedProps,c=qs(n,s);a.props=c;var l=a.context,u=n.contextType;o=ai,typeof u==`object`&&u&&(o=ta(u));var d=n.getDerivedStateFromProps;u=typeof d==`function`||typeof a.getSnapshotBeforeUpdate==`function`,s=t.pendingProps!==s,u||typeof a.UNSAFE_componentWillReceiveProps!=`function`&&typeof a.componentWillReceiveProps!=`function`||(s||l!==o)&&Ks(t,a,r,o),Ba=!1;var f=t.memoizedState;a.state=f,Ya(t,r,a,i),Ja(),l=t.memoizedState,s||f!==l||Ba?(typeof d==`function`&&(Us(t,n,d,r),l=t.memoizedState),(c=Ba||Gs(t,n,c,r,f,l,o))?(u||typeof a.UNSAFE_componentWillMount!=`function`&&typeof a.componentWillMount!=`function`||(typeof a.componentWillMount==`function`&&a.componentWillMount(),typeof a.UNSAFE_componentWillMount==`function`&&a.UNSAFE_componentWillMount()),typeof a.componentDidMount==`function`&&(t.flags|=4194308)):(typeof a.componentDidMount==`function`&&(t.flags|=4194308),t.memoizedProps=r,t.memoizedState=l),a.props=r,a.state=l,a.context=o,r=c):(typeof a.componentDidMount==`function`&&(t.flags|=4194308),r=!1)}else{a=t.stateNode,Ha(e,t),o=t.memoizedProps,u=qs(n,o),a.props=u,d=t.pendingProps,f=a.context,l=n.contextType,c=ai,typeof l==`object`&&l&&(c=ta(l)),s=n.getDerivedStateFromProps,(l=typeof s==`function`||typeof a.getSnapshotBeforeUpdate==`function`)||typeof a.UNSAFE_componentWillReceiveProps!=`function`&&typeof a.componentWillReceiveProps!=`function`||(o!==d||f!==c)&&Ks(t,a,r,c),Ba=!1,f=t.memoizedState,a.state=f,Ya(t,r,a,i),Ja();var p=t.memoizedState;o!==d||f!==p||Ba||e!==null&&e.dependencies!==null&&$i(e.dependencies)?(typeof s==`function`&&(Us(t,n,s,r),p=t.memoizedState),(u=Ba||Gs(t,n,u,r,f,p,c)||e!==null&&e.dependencies!==null&&$i(e.dependencies))?(l||typeof a.UNSAFE_componentWillUpdate!=`function`&&typeof a.componentWillUpdate!=`function`||(typeof a.componentWillUpdate==`function`&&a.componentWillUpdate(r,p,c),typeof a.UNSAFE_componentWillUpdate==`function`&&a.UNSAFE_componentWillUpdate(r,p,c)),typeof a.componentDidUpdate==`function`&&(t.flags|=4),typeof a.getSnapshotBeforeUpdate==`function`&&(t.flags|=1024)):(typeof a.componentDidUpdate!=`function`||o===e.memoizedProps&&f===e.memoizedState||(t.flags|=4),typeof a.getSnapshotBeforeUpdate!=`function`||o===e.memoizedProps&&f===e.memoizedState||(t.flags|=1024),t.memoizedProps=r,t.memoizedState=p),a.props=r,a.state=p,a.context=c,r=u):(typeof a.componentDidUpdate!=`function`||o===e.memoizedProps&&f===e.memoizedState||(t.flags|=4),typeof a.getSnapshotBeforeUpdate!=`function`||o===e.memoizedProps&&f===e.memoizedState||(t.flags|=1024),r=!1)}return a=r,hc(e,t),r=(t.flags&128)!=0,a||r?(a=t.stateNode,n=r&&typeof n.getDerivedStateFromError!=`function`?null:a.render(),t.flags|=1,e!==null&&r?(t.child=Ra(t,e.child,null,i),t.child=Ra(t,null,n,i)):ac(e,t,n,i),t.memoizedState=a.state,e=t.child):e=Ac(e,t,i),e}function yc(e,t,n,r){return Hi(),t.flags|=256,ac(e,t,n,r),t.child}var bc={dehydrated:null,treeContext:null,retryLane:0,hydrationErrors:null};function xc(e){return{baseLanes:e,cachePool:xa()}}function Sc(e,t,n){return e=e===null?0:e.childLanes&~n,t&&(e|=nu),e}function Cc(e,t,n){var r=t.pendingProps,a=!1,o=(t.flags&128)!=0,s;if((s=o)||(s=e!==null&&e.memoizedState===null?!1:(uo.current&2)!=0),s&&(a=!0,t.flags&=-129),s=(t.flags&32)!=0,t.flags&=-33,e===null){if(Pi){if(a?ao(t):co(t),(e=Ni)?(e=mf(e,Ii),e=e!==null&&e.data!==`&`?e:null,e!==null&&(t.memoizedState={dehydrated:e,treeContext:wi===null?null:{id:Ti,overflow:Ei},retryLane:536870912,hydrationErrors:null},n=mi(e),n.return=t,t.child=n,Mi=t,Ni=null)):e=null,e===null)throw Ri(t);return gf(e)?t.lanes=32:t.lanes=536870912,null}var c=r.children;return r=r.fallback,a?(co(t),a=t.mode,c=Tc({mode:`hidden`,children:c},a),r=fi(r,a,n,null),c.return=t,r.return=t,c.sibling=r,t.child=c,r=t.child,r.memoizedState=xc(n),r.childLanes=Sc(e,s,n),t.memoizedState=bc,uc(null,r)):(ao(t),wc(t,c))}var l=e.memoizedState;if(l!==null&&(c=l.dehydrated,c!==null)){if(o)t.flags&256?(ao(t),t.flags&=-257,t=Ec(e,t,n)):t.memoizedState===null?(co(t),c=r.fallback,a=t.mode,r=Tc({mode:`visible`,children:r.children},a),c=fi(c,a,n,null),c.flags|=2,r.return=t,c.return=t,r.sibling=c,t.child=r,Ra(t,e.child,null,n),r=t.child,r.memoizedState=xc(n),r.childLanes=Sc(e,s,n),t.memoizedState=bc,t=uc(null,r)):(co(t),t.child=e.child,t.flags|=128,t=null);else if(ao(t),gf(c)){if(s=c.nextSibling&&c.nextSibling.dataset,s)var u=s.dgst;s=u,r=Error(i(419)),r.stack=``,r.digest=s,Wi({value:r,source:null,stack:null}),t=Ec(e,t,n)}else if(ic||Qi(e,t,n,!1),s=(n&e.childLanes)!==0,ic||s){if(s=Ul,s!==null&&(r=$e(s,n),r!==0&&r!==l.retryLane))throw l.retryLane=r,ni(e,r),Cu(s,e,r),rc;hf(c)||Fu(),t=Ec(e,t,n)}else hf(c)?(t.flags|=192,t.child=e.child,t=null):(e=l.treeContext,Ni=vf(c.nextSibling),Mi=t,Pi=!0,Fi=null,Ii=!1,e!==null&&ji(t,e),t=wc(t,r.children),t.flags|=4096);return t}return a?(co(t),c=r.fallback,a=t.mode,l=e.child,u=l.sibling,r=li(l,{mode:`hidden`,children:r.children}),r.subtreeFlags=l.subtreeFlags&65011712,u===null?(c=fi(c,a,n,null),c.flags|=2):c=li(u,c),c.return=t,r.return=t,r.sibling=c,t.child=r,uc(null,r),r=t.child,c=e.child.memoizedState,c===null?c=xc(n):(a=c.cachePool,a===null?a=xa():(l=sa._currentValue,a=a.parent===l?a:{parent:l,pool:l}),c={baseLanes:c.baseLanes|n,cachePool:a}),r.memoizedState=c,r.childLanes=Sc(e,s,n),t.memoizedState=bc,uc(e.child,r)):(ao(t),n=e.child,e=n.sibling,n=li(n,{mode:`visible`,children:r.children}),n.return=t,n.sibling=null,e!==null&&(s=t.deletions,s===null?(t.deletions=[e],t.flags|=16):s.push(e)),t.child=n,t.memoizedState=null,n)}function wc(e,t){return t=Tc({mode:`visible`,children:t},e.mode),t.return=e,e.child=t}function Tc(e,t){return e=si(22,e,null,t),e.lanes=0,e}function Ec(e,t,n){return Ra(t,e.child,null,n),e=wc(t,t.pendingProps.children),e.flags|=2,t.memoizedState=null,e}function Dc(e,t,n){e.lanes|=t;var r=e.alternate;r!==null&&(r.lanes|=t),Xi(e.return,t,n)}function Oc(e,t,n,r,i,a){var o=e.memoizedState;o===null?e.memoizedState={isBackwards:t,rendering:null,renderingStartTime:0,last:r,tail:n,tailMode:i,treeForkCount:a}:(o.isBackwards=t,o.rendering=null,o.renderingStartTime=0,o.last=r,o.tail=n,o.tailMode=i,o.treeForkCount=a)}function kc(e,t,n){var r=t.pendingProps,i=r.revealOrder,a=r.tail;r=r.children;var o=uo.current,s=(o&2)!=0;if(s?(o=o&1|2,t.flags|=128):o&=1,z(uo,o),ac(e,t,r,n),r=Pi?xi:0,!s&&e!==null&&e.flags&128)a:for(e=t.child;e!==null;){if(e.tag===13)e.memoizedState!==null&&Dc(e,n,t);else if(e.tag===19)Dc(e,n,t);else if(e.child!==null){e.child.return=e,e=e.child;continue}if(e===t)break a;for(;e.sibling===null;){if(e.return===null||e.return===t)break a;e=e.return}e.sibling.return=e.return,e=e.sibling}switch(i){case`forwards`:for(n=t.child,i=null;n!==null;)e=n.alternate,e!==null&&fo(e)===null&&(i=n),n=n.sibling;n=i,n===null?(i=t.child,t.child=null):(i=n.sibling,n.sibling=null),Oc(t,!1,i,n,a,r);break;case`backwards`:case`unstable_legacy-backwards`:for(n=null,i=t.child,t.child=null;i!==null;){if(e=i.alternate,e!==null&&fo(e)===null){t.child=i;break}e=i.sibling,i.sibling=n,n=i,i=e}Oc(t,!0,n,null,a,r);break;case`together`:Oc(t,!1,null,null,void 0,r);break;default:t.memoizedState=null}return t.child}function Ac(e,t,n){if(e!==null&&(t.dependencies=e.dependencies),$l|=t.lanes,(n&t.childLanes)===0)if(e!==null){if(Qi(e,t,n,!1),(n&t.childLanes)===0)return null}else return null;if(e!==null&&t.child!==e.child)throw Error(i(153));if(t.child!==null){for(e=t.child,n=li(e,e.pendingProps),t.child=n,n.return=t;e.sibling!==null;)e=e.sibling,n=n.sibling=li(e,e.pendingProps),n.return=t;n.sibling=null}return t.child}function jc(e,t){return(e.lanes&t)===0?(e=e.dependencies,!!(e!==null&&$i(e))):!0}function Mc(e,t,n){switch(t.tag){case 3:ce(t,t.stateNode.containerInfo),Ji(t,sa,e.memoizedState.cache),Hi();break;case 27:case 5:ue(t);break;case 4:ce(t,t.stateNode.containerInfo);break;case 10:Ji(t,t.type,t.memoizedProps.value);break;case 31:if(t.memoizedState!==null)return t.flags|=128,oo(t),null;break;case 13:var r=t.memoizedState;if(r!==null)return r.dehydrated===null?(n&t.child.childLanes)===0?(ao(t),e=Ac(e,t,n),e===null?null:e.sibling):Cc(e,t,n):(ao(t),t.flags|=128,null);ao(t);break;case 19:var i=(e.flags&128)!=0;if(r=(n&t.childLanes)!==0,r||(Qi(e,t,n,!1),r=(n&t.childLanes)!==0),i){if(r)return kc(e,t,n);t.flags|=128}if(i=t.memoizedState,i!==null&&(i.rendering=null,i.tail=null,i.lastEffect=null),z(uo,uo.current),r)break;return null;case 22:return t.lanes=0,lc(e,t,n,t.pendingProps);case 24:Ji(t,sa,e.memoizedState.cache)}return Ac(e,t,n)}function Nc(e,t,n){if(e!==null)if(e.memoizedProps!==t.pendingProps)ic=!0;else{if(!jc(e,n)&&!(t.flags&128))return ic=!1,Mc(e,t,n);ic=!!(e.flags&131072)}else ic=!1,Pi&&t.flags&1048576&&Oi(t,xi,t.index);switch(t.lanes=0,t.tag){case 16:a:{var r=t.pendingProps;if(e=Oa(t.elementType),t.type=e,typeof e==`function`)ci(e)?(r=qs(e,r),t.tag=1,t=vc(null,t,e,r,n)):(t.tag=0,t=gc(null,t,e,r,n));else{if(e!=null){var a=e.$$typeof;if(a===w){t.tag=11,t=oc(null,t,e,r,n);break a}else if(a===D){t.tag=14,t=sc(null,t,e,r,n);break a}}throw t=ee(e)||e,Error(i(306,t,``))}}return t;case 0:return gc(e,t,t.type,t.pendingProps,n);case 1:return r=t.type,a=qs(r,t.pendingProps),vc(e,t,r,a,n);case 3:a:{if(ce(t,t.stateNode.containerInfo),e===null)throw Error(i(387));r=t.pendingProps;var o=t.memoizedState;a=o.element,Ha(e,t),Ya(t,r,null,n);var s=t.memoizedState;if(r=s.cache,Ji(t,sa,r),r!==o.cache&&Zi(t,[sa],n,!0),Ja(),r=s.element,o.isDehydrated)if(o={element:r,isDehydrated:!1,cache:s.cache},t.updateQueue.baseState=o,t.memoizedState=o,t.flags&256){t=yc(e,t,r,n);break a}else if(r!==a){a=_i(Error(i(424)),t),Wi(a),t=yc(e,t,r,n);break a}else{switch(e=t.stateNode.containerInfo,e.nodeType){case 9:e=e.body;break;default:e=e.nodeName===`HTML`?e.ownerDocument.body:e}for(Ni=vf(e.firstChild),Mi=t,Pi=!0,Fi=null,Ii=!0,n=za(t,null,r,n),t.child=n;n;)n.flags=n.flags&-3|4096,n=n.sibling}else{if(Hi(),r===a){t=Ac(e,t,n);break a}ac(e,t,r,n)}t=t.child}return t;case 26:return hc(e,t),e===null?(n=zf(t.type,null,t.pendingProps,null))?t.memoizedState=n:Pi||(n=t.type,e=t.pendingProps,r=Xd(oe.current).createElement(n),r[at]=t,r[ot]=e,Wd(r,n,e),vt(r),t.stateNode=r):t.memoizedState=zf(t.type,e.memoizedProps,t.pendingProps,e.memoizedState),null;case 27:return ue(t),e===null&&Pi&&(r=t.stateNode=Sf(t.type,t.pendingProps,oe.current),Mi=t,Ii=!0,a=Ni,cf(t.type)?(yf=a,Ni=vf(r.firstChild)):Ni=a),ac(e,t,t.pendingProps.children,n),hc(e,t),e===null&&(t.flags|=4194304),t.child;case 5:return e===null&&Pi&&((a=r=Ni)&&(r=ff(r,t.type,t.pendingProps,Ii),r===null?a=!1:(t.stateNode=r,Mi=t,Ni=vf(r.firstChild),Ii=!1,a=!0)),a||Ri(t)),ue(t),a=t.type,o=t.pendingProps,s=e===null?null:e.memoizedProps,r=o.children,$d(a,o)?r=null:s!==null&&$d(a,s)&&(t.flags|=32),t.memoizedState!==null&&(a=Eo(e,t,ko,null,null,n),cp._currentValue=a),hc(e,t),ac(e,t,r,n),t.child;case 6:return e===null&&Pi&&((e=n=Ni)&&(n=pf(n,t.pendingProps,Ii),n===null?e=!1:(t.stateNode=n,Mi=t,Ni=null,e=!0)),e||Ri(t)),null;case 13:return Cc(e,t,n);case 4:return ce(t,t.stateNode.containerInfo),r=t.pendingProps,e===null?t.child=Ra(t,null,r,n):ac(e,t,r,n),t.child;case 11:return oc(e,t,t.type,t.pendingProps,n);case 7:return ac(e,t,t.pendingProps,n),t.child;case 8:return ac(e,t,t.pendingProps.children,n),t.child;case 12:return ac(e,t,t.pendingProps.children,n),t.child;case 10:return r=t.pendingProps,Ji(t,t.type,r.value),ac(e,t,r.children,n),t.child;case 9:return a=t.type._context,r=t.pendingProps.children,ea(t),a=ta(a),r=r(a),t.flags|=1,ac(e,t,r,n),t.child;case 14:return sc(e,t,t.type,t.pendingProps,n);case 15:return cc(e,t,t.type,t.pendingProps,n);case 19:return kc(e,t,n);case 31:return mc(e,t,n);case 22:return lc(e,t,n,t.pendingProps);case 24:return ea(t),r=ta(sa),e===null?(a=ya(),a===null&&(a=Ul,o=ca(),a.pooledCache=o,o.refCount++,o!==null&&(a.pooledCacheLanes|=n),a=o),t.memoizedState={parent:r,cache:a},Va(t),Ji(t,sa,a)):((e.lanes&n)!==0&&(Ha(e,t),Ya(t,null,null,n),Ja()),a=e.memoizedState,o=t.memoizedState,a.parent===r?(r=o.cache,Ji(t,sa,r),r!==a.cache&&Zi(t,[sa],n,!0)):(a={parent:r,cache:r},t.memoizedState=a,t.lanes===0&&(t.memoizedState=t.updateQueue.baseState=a),Ji(t,sa,r))),ac(e,t,t.pendingProps.children,n),t.child;case 29:throw t.pendingProps}throw Error(i(156,t.tag))}function Pc(e){e.flags|=4}function Fc(e,t,n,r,i){if((t=(e.mode&32)!=0)&&(t=!1),t){if(e.flags|=16777216,(i&335544128)===i)if(e.stateNode.complete)e.flags|=8192;else if(Mu())e.flags|=8192;else throw ka=Ta,Ca}else e.flags&=-16777217}function Ic(e,t){if(t.type!==`stylesheet`||t.state.loading&4)e.flags&=-16777217;else if(e.flags|=16777216,!ep(t))if(Mu())e.flags|=8192;else throw ka=Ta,Ca}function Lc(e,t){t!==null&&(e.flags|=4),e.flags&16384&&(t=e.tag===22?536870912:qe(),e.lanes|=t,ru|=t)}function Rc(e,t){if(!Pi)switch(e.tailMode){case`hidden`:t=e.tail;for(var n=null;t!==null;)t.alternate!==null&&(n=t),t=t.sibling;n===null?e.tail=null:n.sibling=null;break;case`collapsed`:n=e.tail;for(var r=null;n!==null;)n.alternate!==null&&(r=n),n=n.sibling;r===null?t||e.tail===null?e.tail=null:e.tail.sibling=null:r.sibling=null}}function zc(e){var t=e.alternate!==null&&e.alternate.child===e.child,n=0,r=0;if(t)for(var i=e.child;i!==null;)n|=i.lanes|i.childLanes,r|=i.subtreeFlags&65011712,r|=i.flags&65011712,i.return=e,i=i.sibling;else for(i=e.child;i!==null;)n|=i.lanes|i.childLanes,r|=i.subtreeFlags,r|=i.flags,i.return=e,i=i.sibling;return e.subtreeFlags|=r,e.childLanes=n,t}function Bc(e,t,n){var r=t.pendingProps;switch(Ai(t),t.tag){case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return zc(t),null;case 1:return zc(t),null;case 3:return n=t.stateNode,r=null,e!==null&&(r=e.memoizedState.cache),t.memoizedState.cache!==r&&(t.flags|=2048),Yi(sa),le(),n.pendingContext&&(n.context=n.pendingContext,n.pendingContext=null),(e===null||e.child===null)&&(Vi(t)?Pc(t):e===null||e.memoizedState.isDehydrated&&!(t.flags&256)||(t.flags|=1024,Ui())),zc(t),null;case 26:var a=t.type,o=t.memoizedState;return e===null?(Pc(t),o===null?(zc(t),Fc(t,a,null,r,n)):(zc(t),Ic(t,o))):o?o===e.memoizedState?(zc(t),t.flags&=-16777217):(Pc(t),zc(t),Ic(t,o)):(e=e.memoizedProps,e!==r&&Pc(t),zc(t),Fc(t,a,e,r,n)),null;case 27:if(de(t),n=oe.current,a=t.type,e!==null&&t.stateNode!=null)e.memoizedProps!==r&&Pc(t);else{if(!r){if(t.stateNode===null)throw Error(i(166));return zc(t),null}e=ie.current,Vi(t)?zi(t,e):(e=Sf(a,r,n),t.stateNode=e,Pc(t))}return zc(t),null;case 5:if(de(t),a=t.type,e!==null&&t.stateNode!=null)e.memoizedProps!==r&&Pc(t);else{if(!r){if(t.stateNode===null)throw Error(i(166));return zc(t),null}if(o=ie.current,Vi(t))zi(t,o);else{var s=Xd(oe.current);switch(o){case 1:o=s.createElementNS(`http://www.w3.org/2000/svg`,a);break;case 2:o=s.createElementNS(`http://www.w3.org/1998/Math/MathML`,a);break;default:switch(a){case`svg`:o=s.createElementNS(`http://www.w3.org/2000/svg`,a);break;case`math`:o=s.createElementNS(`http://www.w3.org/1998/Math/MathML`,a);break;case`script`:o=s.createElement(`div`),o.innerHTML=`<script><\/script>`,o=o.removeChild(o.firstChild);break;case`select`:o=typeof r.is==`string`?s.createElement(`select`,{is:r.is}):s.createElement(`select`),r.multiple?o.multiple=!0:r.size&&(o.size=r.size);break;default:o=typeof r.is==`string`?s.createElement(a,{is:r.is}):s.createElement(a)}}o[at]=t,o[ot]=r;a:for(s=t.child;s!==null;){if(s.tag===5||s.tag===6)o.appendChild(s.stateNode);else if(s.tag!==4&&s.tag!==27&&s.child!==null){s.child.return=s,s=s.child;continue}if(s===t)break a;for(;s.sibling===null;){if(s.return===null||s.return===t)break a;s=s.return}s.sibling.return=s.return,s=s.sibling}t.stateNode=o;a:switch(Wd(o,a,r),a){case`button`:case`input`:case`select`:case`textarea`:r=!!r.autoFocus;break a;case`img`:r=!0;break a;default:r=!1}r&&Pc(t)}}return zc(t),Fc(t,t.type,e===null?null:e.memoizedProps,t.pendingProps,n),null;case 6:if(e&&t.stateNode!=null)e.memoizedProps!==r&&Pc(t);else{if(typeof r!=`string`&&t.stateNode===null)throw Error(i(166));if(e=oe.current,Vi(t)){if(e=t.stateNode,n=t.memoizedProps,r=null,a=Mi,a!==null)switch(a.tag){case 27:case 5:r=a.memoizedProps}e[at]=t,e=!!(e.nodeValue===n||r!==null&&!0===r.suppressHydrationWarning||Vd(e.nodeValue,n)),e||Ri(t,!0)}else e=Xd(e).createTextNode(r),e[at]=t,t.stateNode=e}return zc(t),null;case 31:if(n=t.memoizedState,e===null||e.memoizedState!==null){if(r=Vi(t),n!==null){if(e===null){if(!r)throw Error(i(318));if(e=t.memoizedState,e=e===null?null:e.dehydrated,!e)throw Error(i(557));e[at]=t}else Hi(),!(t.flags&128)&&(t.memoizedState=null),t.flags|=4;zc(t),e=!1}else n=Ui(),e!==null&&e.memoizedState!==null&&(e.memoizedState.hydrationErrors=n),e=!0;if(!e)return t.flags&256?(lo(t),t):(lo(t),null);if(t.flags&128)throw Error(i(558))}return zc(t),null;case 13:if(r=t.memoizedState,e===null||e.memoizedState!==null&&e.memoizedState.dehydrated!==null){if(a=Vi(t),r!==null&&r.dehydrated!==null){if(e===null){if(!a)throw Error(i(318));if(a=t.memoizedState,a=a===null?null:a.dehydrated,!a)throw Error(i(317));a[at]=t}else Hi(),!(t.flags&128)&&(t.memoizedState=null),t.flags|=4;zc(t),a=!1}else a=Ui(),e!==null&&e.memoizedState!==null&&(e.memoizedState.hydrationErrors=a),a=!0;if(!a)return t.flags&256?(lo(t),t):(lo(t),null)}return lo(t),t.flags&128?(t.lanes=n,t):(n=r!==null,e=e!==null&&e.memoizedState!==null,n&&(r=t.child,a=null,r.alternate!==null&&r.alternate.memoizedState!==null&&r.alternate.memoizedState.cachePool!==null&&(a=r.alternate.memoizedState.cachePool.pool),o=null,r.memoizedState!==null&&r.memoizedState.cachePool!==null&&(o=r.memoizedState.cachePool.pool),o!==a&&(r.flags|=2048)),n!==e&&n&&(t.child.flags|=8192),Lc(t,t.updateQueue),zc(t),null);case 4:return le(),e===null&&jd(t.stateNode.containerInfo),zc(t),null;case 10:return Yi(t.type),zc(t),null;case 19:if(re(uo),r=t.memoizedState,r===null)return zc(t),null;if(a=(t.flags&128)!=0,o=r.rendering,o===null)if(a)Rc(r,!1);else{if(Ql!==0||e!==null&&e.flags&128)for(e=t.child;e!==null;){if(o=fo(e),o!==null){for(t.flags|=128,Rc(r,!1),e=o.updateQueue,t.updateQueue=e,Lc(t,e),t.subtreeFlags=0,e=n,n=t.child;n!==null;)ui(n,e),n=n.sibling;return z(uo,uo.current&1|2),Pi&&Di(t,r.treeForkCount),t.child}e=e.sibling}r.tail!==null&&we()>lu&&(t.flags|=128,a=!0,Rc(r,!1),t.lanes=4194304)}else{if(!a)if(e=fo(o),e!==null){if(t.flags|=128,a=!0,e=e.updateQueue,t.updateQueue=e,Lc(t,e),Rc(r,!0),r.tail===null&&r.tailMode===`hidden`&&!o.alternate&&!Pi)return zc(t),null}else 2*we()-r.renderingStartTime>lu&&n!==536870912&&(t.flags|=128,a=!0,Rc(r,!1),t.lanes=4194304);r.isBackwards?(o.sibling=t.child,t.child=o):(e=r.last,e===null?t.child=o:e.sibling=o,r.last=o)}return r.tail===null?(zc(t),null):(e=r.tail,r.rendering=e,r.tail=e.sibling,r.renderingStartTime=we(),e.sibling=null,n=uo.current,z(uo,a?n&1|2:n&1),Pi&&Di(t,r.treeForkCount),e);case 22:case 23:return lo(t),no(),r=t.memoizedState!==null,e===null?r&&(t.flags|=8192):e.memoizedState!==null!==r&&(t.flags|=8192),r?n&536870912&&!(t.flags&128)&&(zc(t),t.subtreeFlags&6&&(t.flags|=8192)):zc(t),n=t.updateQueue,n!==null&&Lc(t,n.retryQueue),n=null,e!==null&&e.memoizedState!==null&&e.memoizedState.cachePool!==null&&(n=e.memoizedState.cachePool.pool),r=null,t.memoizedState!==null&&t.memoizedState.cachePool!==null&&(r=t.memoizedState.cachePool.pool),r!==n&&(t.flags|=2048),e!==null&&re(va),null;case 24:return n=null,e!==null&&(n=e.memoizedState.cache),t.memoizedState.cache!==n&&(t.flags|=2048),Yi(sa),zc(t),null;case 25:return null;case 30:return null}throw Error(i(156,t.tag))}function Vc(e,t){switch(Ai(t),t.tag){case 1:return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return Yi(sa),le(),e=t.flags,e&65536&&!(e&128)?(t.flags=e&-65537|128,t):null;case 26:case 27:case 5:return de(t),null;case 31:if(t.memoizedState!==null){if(lo(t),t.alternate===null)throw Error(i(340));Hi()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 13:if(lo(t),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(i(340));Hi()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return re(uo),null;case 4:return le(),null;case 10:return Yi(t.type),null;case 22:case 23:return lo(t),no(),e!==null&&re(va),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 24:return Yi(sa),null;case 25:return null;default:return null}}function Hc(e,t){switch(Ai(t),t.tag){case 3:Yi(sa),le();break;case 26:case 27:case 5:de(t);break;case 4:le();break;case 31:t.memoizedState!==null&&lo(t);break;case 13:lo(t);break;case 19:re(uo);break;case 10:Yi(t.type);break;case 22:case 23:lo(t),no(),e!==null&&re(va);break;case 24:Yi(sa)}}function Uc(e,t){try{var n=t.updateQueue,r=n===null?null:n.lastEffect;if(r!==null){var i=r.next;n=i;do{if((n.tag&e)===e){r=void 0;var a=n.create,o=n.inst;r=a(),o.destroy=r}n=n.next}while(n!==i)}}catch(e){Qu(t,t.return,e)}}function Wc(e,t,n){try{var r=t.updateQueue,i=r===null?null:r.lastEffect;if(i!==null){var a=i.next;r=a;do{if((r.tag&e)===e){var o=r.inst,s=o.destroy;if(s!==void 0){o.destroy=void 0,i=t;var c=n,l=s;try{l()}catch(e){Qu(i,c,e)}}}r=r.next}while(r!==a)}}catch(e){Qu(t,t.return,e)}}function Gc(e){var t=e.updateQueue;if(t!==null){var n=e.stateNode;try{Za(t,n)}catch(t){Qu(e,e.return,t)}}}function Kc(e,t,n){n.props=qs(e.type,e.memoizedProps),n.state=e.memoizedState;try{n.componentWillUnmount()}catch(n){Qu(e,t,n)}}function qc(e,t){try{var n=e.ref;if(n!==null){switch(e.tag){case 26:case 27:case 5:var r=e.stateNode;break;case 30:r=e.stateNode;break;default:r=e.stateNode}typeof n==`function`?e.refCleanup=n(r):n.current=r}}catch(n){Qu(e,t,n)}}function Jc(e,t){var n=e.ref,r=e.refCleanup;if(n!==null)if(typeof r==`function`)try{r()}catch(n){Qu(e,t,n)}finally{e.refCleanup=null,e=e.alternate,e!=null&&(e.refCleanup=null)}else if(typeof n==`function`)try{n(null)}catch(n){Qu(e,t,n)}else n.current=null}function Yc(e){var t=e.type,n=e.memoizedProps,r=e.stateNode;try{a:switch(t){case`button`:case`input`:case`select`:case`textarea`:n.autoFocus&&r.focus();break a;case`img`:n.src?r.src=n.src:n.srcSet&&(r.srcset=n.srcSet)}}catch(t){Qu(e,e.return,t)}}function Xc(e,t,n){try{var r=e.stateNode;Gd(r,e.type,n,t),r[ot]=t}catch(t){Qu(e,e.return,t)}}function Zc(e){return e.tag===5||e.tag===3||e.tag===26||e.tag===27&&cf(e.type)||e.tag===4}function Qc(e){a:for(;;){for(;e.sibling===null;){if(e.return===null||Zc(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;e.tag!==5&&e.tag!==6&&e.tag!==18;){if(e.tag===27&&cf(e.type)||e.flags&2||e.child===null||e.tag===4)continue a;e.child.return=e,e=e.child}if(!(e.flags&2))return e.stateNode}}function $c(e,t,n){var r=e.tag;if(r===5||r===6)e=e.stateNode,t?(n.nodeType===9?n.body:n.nodeName===`HTML`?n.ownerDocument.body:n).insertBefore(e,t):(t=n.nodeType===9?n.body:n.nodeName===`HTML`?n.ownerDocument.body:n,t.appendChild(e),n=n._reactRootContainer,n!=null||t.onclick!==null||(t.onclick=Qt));else if(r!==4&&(r===27&&cf(e.type)&&(n=e.stateNode,t=null),e=e.child,e!==null))for($c(e,t,n),e=e.sibling;e!==null;)$c(e,t,n),e=e.sibling}function el(e,t,n){var r=e.tag;if(r===5||r===6)e=e.stateNode,t?n.insertBefore(e,t):n.appendChild(e);else if(r!==4&&(r===27&&cf(e.type)&&(n=e.stateNode),e=e.child,e!==null))for(el(e,t,n),e=e.sibling;e!==null;)el(e,t,n),e=e.sibling}function tl(e){var t=e.stateNode,n=e.memoizedProps;try{for(var r=e.type,i=t.attributes;i.length;)t.removeAttributeNode(i[0]);Wd(t,r,n),t[at]=e,t[ot]=n}catch(t){Qu(e,e.return,t)}}var nl=!1,rl=!1,il=!1,al=typeof WeakSet==`function`?WeakSet:Set,ol=null;function sl(e,t){if(e=e.containerInfo,Jd=gp,e=Er(e),Dr(e)){if(`selectionStart`in e)var n={start:e.selectionStart,end:e.selectionEnd};else a:{n=(n=e.ownerDocument)&&n.defaultView||window;var r=n.getSelection&&n.getSelection();if(r&&r.rangeCount!==0){n=r.anchorNode;var a=r.anchorOffset,o=r.focusNode;r=r.focusOffset;try{n.nodeType,o.nodeType}catch{n=null;break a}var s=0,c=-1,l=-1,u=0,d=0,f=e,p=null;b:for(;;){for(var m;f!==n||a!==0&&f.nodeType!==3||(c=s+a),f!==o||r!==0&&f.nodeType!==3||(l=s+r),f.nodeType===3&&(s+=f.nodeValue.length),(m=f.firstChild)!==null;)p=f,f=m;for(;;){if(f===e)break b;if(p===n&&++u===a&&(c=s),p===o&&++d===r&&(l=s),(m=f.nextSibling)!==null)break;f=p,p=f.parentNode}f=m}n=c===-1||l===-1?null:{start:c,end:l}}else n=null}n=n||{start:0,end:0}}else n=null;for(Yd={focusedElem:e,selectionRange:n},gp=!1,ol=t;ol!==null;)if(t=ol,e=t.child,t.subtreeFlags&1028&&e!==null)e.return=t,ol=e;else for(;ol!==null;){switch(t=ol,o=t.alternate,e=t.flags,t.tag){case 0:if(e&4&&(e=t.updateQueue,e=e===null?null:e.events,e!==null))for(n=0;n<e.length;n++)a=e[n],a.ref.impl=a.nextImpl;break;case 11:case 15:break;case 1:if(e&1024&&o!==null){e=void 0,n=t,a=o.memoizedProps,o=o.memoizedState,r=n.stateNode;try{var h=qs(n.type,a);e=r.getSnapshotBeforeUpdate(h,o),r.__reactInternalSnapshotBeforeUpdate=e}catch(e){Qu(n,n.return,e)}}break;case 3:if(e&1024){if(e=t.stateNode.containerInfo,n=e.nodeType,n===9)df(e);else if(n===1)switch(e.nodeName){case`HEAD`:case`HTML`:case`BODY`:df(e);break;default:e.textContent=``}}break;case 5:case 26:case 27:case 6:case 4:case 17:break;default:if(e&1024)throw Error(i(163))}if(e=t.sibling,e!==null){e.return=t.return,ol=e;break}ol=t.return}}function cl(e,t,n){var r=n.flags;switch(n.tag){case 0:case 11:case 15:Cl(e,n),r&4&&Uc(5,n);break;case 1:if(Cl(e,n),r&4)if(e=n.stateNode,t===null)try{e.componentDidMount()}catch(e){Qu(n,n.return,e)}else{var i=qs(n.type,t.memoizedProps);t=t.memoizedState;try{e.componentDidUpdate(i,t,e.__reactInternalSnapshotBeforeUpdate)}catch(e){Qu(n,n.return,e)}}r&64&&Gc(n),r&512&&qc(n,n.return);break;case 3:if(Cl(e,n),r&64&&(e=n.updateQueue,e!==null)){if(t=null,n.child!==null)switch(n.child.tag){case 27:case 5:t=n.child.stateNode;break;case 1:t=n.child.stateNode}try{Za(e,t)}catch(e){Qu(n,n.return,e)}}break;case 27:t===null&&r&4&&tl(n);case 26:case 5:Cl(e,n),t===null&&r&4&&Yc(n),r&512&&qc(n,n.return);break;case 12:Cl(e,n);break;case 31:Cl(e,n),r&4&&ml(e,n);break;case 13:Cl(e,n),r&4&&hl(e,n),r&64&&(e=n.memoizedState,e!==null&&(e=e.dehydrated,e!==null&&(n=nd.bind(null,n),_f(e,n))));break;case 22:if(r=n.memoizedState!==null||nl,!r){t=t!==null&&t.memoizedState!==null||rl,i=nl;var a=rl;nl=r,(rl=t)&&!a?Tl(e,n,(n.subtreeFlags&8772)!=0):Cl(e,n),nl=i,rl=a}break;case 30:break;default:Cl(e,n)}}function ll(e){var t=e.alternate;t!==null&&(e.alternate=null,ll(t)),e.child=null,e.deletions=null,e.sibling=null,e.tag===5&&(t=e.stateNode,t!==null&&pt(t)),e.stateNode=null,e.return=null,e.dependencies=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.stateNode=null,e.updateQueue=null}var ul=null,dl=!1;function fl(e,t,n){for(n=n.child;n!==null;)pl(e,t,n),n=n.sibling}function pl(e,t,n){if(Pe&&typeof Pe.onCommitFiberUnmount==`function`)try{Pe.onCommitFiberUnmount(Ne,n)}catch{}switch(n.tag){case 26:rl||Jc(n,t),fl(e,t,n),n.memoizedState?n.memoizedState.count--:n.stateNode&&(n=n.stateNode,n.parentNode.removeChild(n));break;case 27:rl||Jc(n,t);var r=ul,i=dl;cf(n.type)&&(ul=n.stateNode,dl=!1),fl(e,t,n),Cf(n.stateNode),ul=r,dl=i;break;case 5:rl||Jc(n,t);case 6:if(r=ul,i=dl,ul=null,fl(e,t,n),ul=r,dl=i,ul!==null)if(dl)try{(ul.nodeType===9?ul.body:ul.nodeName===`HTML`?ul.ownerDocument.body:ul).removeChild(n.stateNode)}catch(e){Qu(n,t,e)}else try{ul.removeChild(n.stateNode)}catch(e){Qu(n,t,e)}break;case 18:ul!==null&&(dl?(e=ul,lf(e.nodeType===9?e.body:e.nodeName===`HTML`?e.ownerDocument.body:e,n.stateNode),Hp(e)):lf(ul,n.stateNode));break;case 4:r=ul,i=dl,ul=n.stateNode.containerInfo,dl=!0,fl(e,t,n),ul=r,dl=i;break;case 0:case 11:case 14:case 15:Wc(2,n,t),rl||Wc(4,n,t),fl(e,t,n);break;case 1:rl||(Jc(n,t),r=n.stateNode,typeof r.componentWillUnmount==`function`&&Kc(n,t,r)),fl(e,t,n);break;case 21:fl(e,t,n);break;case 22:rl=(r=rl)||n.memoizedState!==null,fl(e,t,n),rl=r;break;default:fl(e,t,n)}}function ml(e,t){if(t.memoizedState===null&&(e=t.alternate,e!==null&&(e=e.memoizedState,e!==null))){e=e.dehydrated;try{Hp(e)}catch(e){Qu(t,t.return,e)}}}function hl(e,t){if(t.memoizedState===null&&(e=t.alternate,e!==null&&(e=e.memoizedState,e!==null&&(e=e.dehydrated,e!==null))))try{Hp(e)}catch(e){Qu(t,t.return,e)}}function gl(e){switch(e.tag){case 31:case 13:case 19:var t=e.stateNode;return t===null&&(t=e.stateNode=new al),t;case 22:return e=e.stateNode,t=e._retryCache,t===null&&(t=e._retryCache=new al),t;default:throw Error(i(435,e.tag))}}function _l(e,t){var n=gl(e);t.forEach(function(t){if(!n.has(t)){n.add(t);var r=rd.bind(null,e,t);t.then(r,r)}})}function vl(e,t){var n=t.deletions;if(n!==null)for(var r=0;r<n.length;r++){var a=n[r],o=e,s=t,c=s;a:for(;c!==null;){switch(c.tag){case 27:if(cf(c.type)){ul=c.stateNode,dl=!1;break a}break;case 5:ul=c.stateNode,dl=!1;break a;case 3:case 4:ul=c.stateNode.containerInfo,dl=!0;break a}c=c.return}if(ul===null)throw Error(i(160));pl(o,s,a),ul=null,dl=!1,o=a.alternate,o!==null&&(o.return=null),a.return=null}if(t.subtreeFlags&13886)for(t=t.child;t!==null;)bl(t,e),t=t.sibling}var yl=null;function bl(e,t){var n=e.alternate,r=e.flags;switch(e.tag){case 0:case 11:case 14:case 15:vl(t,e),xl(e),r&4&&(Wc(3,e,e.return),Uc(3,e),Wc(5,e,e.return));break;case 1:vl(t,e),xl(e),r&512&&(rl||n===null||Jc(n,n.return)),r&64&&nl&&(e=e.updateQueue,e!==null&&(r=e.callbacks,r!==null&&(n=e.shared.hiddenCallbacks,e.shared.hiddenCallbacks=n===null?r:n.concat(r))));break;case 26:var a=yl;if(vl(t,e),xl(e),r&512&&(rl||n===null||Jc(n,n.return)),r&4){var o=n===null?null:n.memoizedState;if(r=e.memoizedState,n===null)if(r===null)if(e.stateNode===null){a:{r=e.type,n=e.memoizedProps,a=a.ownerDocument||a;b:switch(r){case`title`:o=a.getElementsByTagName(`title`)[0],(!o||o[ft]||o[at]||o.namespaceURI===`http://www.w3.org/2000/svg`||o.hasAttribute(`itemprop`))&&(o=a.createElement(r),a.head.insertBefore(o,a.querySelector(`head > title`))),Wd(o,r,n),o[at]=e,vt(o),r=o;break a;case`link`:var s=Zf(`link`,`href`,a).get(r+(n.href||``));if(s){for(var c=0;c<s.length;c++)if(o=s[c],o.getAttribute(`href`)===(n.href==null||n.href===``?null:n.href)&&o.getAttribute(`rel`)===(n.rel==null?null:n.rel)&&o.getAttribute(`title`)===(n.title==null?null:n.title)&&o.getAttribute(`crossorigin`)===(n.crossOrigin==null?null:n.crossOrigin)){s.splice(c,1);break b}}o=a.createElement(r),Wd(o,r,n),a.head.appendChild(o);break;case`meta`:if(s=Zf(`meta`,`content`,a).get(r+(n.content||``))){for(c=0;c<s.length;c++)if(o=s[c],o.getAttribute(`content`)===(n.content==null?null:``+n.content)&&o.getAttribute(`name`)===(n.name==null?null:n.name)&&o.getAttribute(`property`)===(n.property==null?null:n.property)&&o.getAttribute(`http-equiv`)===(n.httpEquiv==null?null:n.httpEquiv)&&o.getAttribute(`charset`)===(n.charSet==null?null:n.charSet)){s.splice(c,1);break b}}o=a.createElement(r),Wd(o,r,n),a.head.appendChild(o);break;default:throw Error(i(468,r))}o[at]=e,vt(o),r=o}e.stateNode=r}else Qf(a,e.type,e.stateNode);else e.stateNode=Kf(a,r,e.memoizedProps);else o===r?r===null&&e.stateNode!==null&&Xc(e,e.memoizedProps,n.memoizedProps):(o===null?n.stateNode!==null&&(n=n.stateNode,n.parentNode.removeChild(n)):o.count--,r===null?Qf(a,e.type,e.stateNode):Kf(a,r,e.memoizedProps))}break;case 27:vl(t,e),xl(e),r&512&&(rl||n===null||Jc(n,n.return)),n!==null&&r&4&&Xc(e,e.memoizedProps,n.memoizedProps);break;case 5:if(vl(t,e),xl(e),r&512&&(rl||n===null||Jc(n,n.return)),e.flags&32){a=e.stateNode;try{Wt(a,``)}catch(t){Qu(e,e.return,t)}}r&4&&e.stateNode!=null&&(a=e.memoizedProps,Xc(e,a,n===null?a:n.memoizedProps)),r&1024&&(il=!0);break;case 6:if(vl(t,e),xl(e),r&4){if(e.stateNode===null)throw Error(i(162));r=e.memoizedProps,n=e.stateNode;try{n.nodeValue=r}catch(t){Qu(e,e.return,t)}}break;case 3:if(Xf=null,a=yl,yl=Ef(t.containerInfo),vl(t,e),yl=a,xl(e),r&4&&n!==null&&n.memoizedState.isDehydrated)try{Hp(t.containerInfo)}catch(t){Qu(e,e.return,t)}il&&(il=!1,Sl(e));break;case 4:r=yl,yl=Ef(e.stateNode.containerInfo),vl(t,e),xl(e),yl=r;break;case 12:vl(t,e),xl(e);break;case 31:vl(t,e),xl(e),r&4&&(r=e.updateQueue,r!==null&&(e.updateQueue=null,_l(e,r)));break;case 13:vl(t,e),xl(e),e.child.flags&8192&&e.memoizedState!==null!=(n!==null&&n.memoizedState!==null)&&(su=we()),r&4&&(r=e.updateQueue,r!==null&&(e.updateQueue=null,_l(e,r)));break;case 22:a=e.memoizedState!==null;var l=n!==null&&n.memoizedState!==null,u=nl,d=rl;if(nl=u||a,rl=d||l,vl(t,e),rl=d,nl=u,xl(e),r&8192)a:for(t=e.stateNode,t._visibility=a?t._visibility&-2:t._visibility|1,a&&(n===null||l||nl||rl||wl(e)),n=null,t=e;;){if(t.tag===5||t.tag===26){if(n===null){l=n=t;try{if(o=l.stateNode,a)s=o.style,typeof s.setProperty==`function`?s.setProperty(`display`,`none`,`important`):s.display=`none`;else{c=l.stateNode;var f=l.memoizedProps.style,p=f!=null&&f.hasOwnProperty(`display`)?f.display:null;c.style.display=p==null||typeof p==`boolean`?``:(``+p).trim()}}catch(e){Qu(l,l.return,e)}}}else if(t.tag===6){if(n===null){l=t;try{l.stateNode.nodeValue=a?``:l.memoizedProps}catch(e){Qu(l,l.return,e)}}}else if(t.tag===18){if(n===null){l=t;try{var m=l.stateNode;a?uf(m,!0):uf(l.stateNode,!1)}catch(e){Qu(l,l.return,e)}}}else if((t.tag!==22&&t.tag!==23||t.memoizedState===null||t===e)&&t.child!==null){t.child.return=t,t=t.child;continue}if(t===e)break a;for(;t.sibling===null;){if(t.return===null||t.return===e)break a;n===t&&(n=null),t=t.return}n===t&&(n=null),t.sibling.return=t.return,t=t.sibling}r&4&&(r=e.updateQueue,r!==null&&(n=r.retryQueue,n!==null&&(r.retryQueue=null,_l(e,n))));break;case 19:vl(t,e),xl(e),r&4&&(r=e.updateQueue,r!==null&&(e.updateQueue=null,_l(e,r)));break;case 30:break;case 21:break;default:vl(t,e),xl(e)}}function xl(e){var t=e.flags;if(t&2){try{for(var n,r=e.return;r!==null;){if(Zc(r)){n=r;break}r=r.return}if(n==null)throw Error(i(160));switch(n.tag){case 27:var a=n.stateNode;el(e,Qc(e),a);break;case 5:var o=n.stateNode;n.flags&32&&(Wt(o,``),n.flags&=-33),el(e,Qc(e),o);break;case 3:case 4:var s=n.stateNode.containerInfo;$c(e,Qc(e),s);break;default:throw Error(i(161))}}catch(t){Qu(e,e.return,t)}e.flags&=-3}t&4096&&(e.flags&=-4097)}function Sl(e){if(e.subtreeFlags&1024)for(e=e.child;e!==null;){var t=e;Sl(t),t.tag===5&&t.flags&1024&&t.stateNode.reset(),e=e.sibling}}function Cl(e,t){if(t.subtreeFlags&8772)for(t=t.child;t!==null;)cl(e,t.alternate,t),t=t.sibling}function wl(e){for(e=e.child;e!==null;){var t=e;switch(t.tag){case 0:case 11:case 14:case 15:Wc(4,t,t.return),wl(t);break;case 1:Jc(t,t.return);var n=t.stateNode;typeof n.componentWillUnmount==`function`&&Kc(t,t.return,n),wl(t);break;case 27:Cf(t.stateNode);case 26:case 5:Jc(t,t.return),wl(t);break;case 22:t.memoizedState===null&&wl(t);break;case 30:wl(t);break;default:wl(t)}e=e.sibling}}function Tl(e,t,n){for(n=n&&(t.subtreeFlags&8772)!=0,t=t.child;t!==null;){var r=t.alternate,i=e,a=t,o=a.flags;switch(a.tag){case 0:case 11:case 15:Tl(i,a,n),Uc(4,a);break;case 1:if(Tl(i,a,n),r=a,i=r.stateNode,typeof i.componentDidMount==`function`)try{i.componentDidMount()}catch(e){Qu(r,r.return,e)}if(r=a,i=r.updateQueue,i!==null){var s=r.stateNode;try{var c=i.shared.hiddenCallbacks;if(c!==null)for(i.shared.hiddenCallbacks=null,i=0;i<c.length;i++)Xa(c[i],s)}catch(e){Qu(r,r.return,e)}}n&&o&64&&Gc(a),qc(a,a.return);break;case 27:tl(a);case 26:case 5:Tl(i,a,n),n&&r===null&&o&4&&Yc(a),qc(a,a.return);break;case 12:Tl(i,a,n);break;case 31:Tl(i,a,n),n&&o&4&&ml(i,a);break;case 13:Tl(i,a,n),n&&o&4&&hl(i,a);break;case 22:a.memoizedState===null&&Tl(i,a,n),qc(a,a.return);break;case 30:break;default:Tl(i,a,n)}t=t.sibling}}function El(e,t){var n=null;e!==null&&e.memoizedState!==null&&e.memoizedState.cachePool!==null&&(n=e.memoizedState.cachePool.pool),e=null,t.memoizedState!==null&&t.memoizedState.cachePool!==null&&(e=t.memoizedState.cachePool.pool),e!==n&&(e!=null&&e.refCount++,n!=null&&la(n))}function Dl(e,t){e=null,t.alternate!==null&&(e=t.alternate.memoizedState.cache),t=t.memoizedState.cache,t!==e&&(t.refCount++,e!=null&&la(e))}function Ol(e,t,n,r){if(t.subtreeFlags&10256)for(t=t.child;t!==null;)kl(e,t,n,r),t=t.sibling}function kl(e,t,n,r){var i=t.flags;switch(t.tag){case 0:case 11:case 15:Ol(e,t,n,r),i&2048&&Uc(9,t);break;case 1:Ol(e,t,n,r);break;case 3:Ol(e,t,n,r),i&2048&&(e=null,t.alternate!==null&&(e=t.alternate.memoizedState.cache),t=t.memoizedState.cache,t!==e&&(t.refCount++,e!=null&&la(e)));break;case 12:if(i&2048){Ol(e,t,n,r),e=t.stateNode;try{var a=t.memoizedProps,o=a.id,s=a.onPostCommit;typeof s==`function`&&s(o,t.alternate===null?`mount`:`update`,e.passiveEffectDuration,-0)}catch(e){Qu(t,t.return,e)}}else Ol(e,t,n,r);break;case 31:Ol(e,t,n,r);break;case 13:Ol(e,t,n,r);break;case 23:break;case 22:a=t.stateNode,o=t.alternate,t.memoizedState===null?a._visibility&2?Ol(e,t,n,r):(a._visibility|=2,Al(e,t,n,r,(t.subtreeFlags&10256)!=0||!1)):a._visibility&2?Ol(e,t,n,r):jl(e,t),i&2048&&El(o,t);break;case 24:Ol(e,t,n,r),i&2048&&Dl(t.alternate,t);break;default:Ol(e,t,n,r)}}function Al(e,t,n,r,i){for(i=i&&((t.subtreeFlags&10256)!=0||!1),t=t.child;t!==null;){var a=e,o=t,s=n,c=r,l=o.flags;switch(o.tag){case 0:case 11:case 15:Al(a,o,s,c,i),Uc(8,o);break;case 23:break;case 22:var u=o.stateNode;o.memoizedState===null?(u._visibility|=2,Al(a,o,s,c,i)):u._visibility&2?Al(a,o,s,c,i):jl(a,o),i&&l&2048&&El(o.alternate,o);break;case 24:Al(a,o,s,c,i),i&&l&2048&&Dl(o.alternate,o);break;default:Al(a,o,s,c,i)}t=t.sibling}}function jl(e,t){if(t.subtreeFlags&10256)for(t=t.child;t!==null;){var n=e,r=t,i=r.flags;switch(r.tag){case 22:jl(n,r),i&2048&&El(r.alternate,r);break;case 24:jl(n,r),i&2048&&Dl(r.alternate,r);break;default:jl(n,r)}t=t.sibling}}var Ml=8192;function Nl(e,t,n){if(e.subtreeFlags&Ml)for(e=e.child;e!==null;)Pl(e,t,n),e=e.sibling}function Pl(e,t,n){switch(e.tag){case 26:Nl(e,t,n),e.flags&Ml&&e.memoizedState!==null&&tp(n,yl,e.memoizedState,e.memoizedProps);break;case 5:Nl(e,t,n);break;case 3:case 4:var r=yl;yl=Ef(e.stateNode.containerInfo),Nl(e,t,n),yl=r;break;case 22:e.memoizedState===null&&(r=e.alternate,r!==null&&r.memoizedState!==null?(r=Ml,Ml=16777216,Nl(e,t,n),Ml=r):Nl(e,t,n));break;default:Nl(e,t,n)}}function Fl(e){var t=e.alternate;if(t!==null&&(e=t.child,e!==null)){t.child=null;do t=e.sibling,e.sibling=null,e=t;while(e!==null)}}function Il(e){var t=e.deletions;if(e.flags&16){if(t!==null)for(var n=0;n<t.length;n++){var r=t[n];ol=r,zl(r,e)}Fl(e)}if(e.subtreeFlags&10256)for(e=e.child;e!==null;)Ll(e),e=e.sibling}function Ll(e){switch(e.tag){case 0:case 11:case 15:Il(e),e.flags&2048&&Wc(9,e,e.return);break;case 3:Il(e);break;case 12:Il(e);break;case 22:var t=e.stateNode;e.memoizedState!==null&&t._visibility&2&&(e.return===null||e.return.tag!==13)?(t._visibility&=-3,Rl(e)):Il(e);break;default:Il(e)}}function Rl(e){var t=e.deletions;if(e.flags&16){if(t!==null)for(var n=0;n<t.length;n++){var r=t[n];ol=r,zl(r,e)}Fl(e)}for(e=e.child;e!==null;){switch(t=e,t.tag){case 0:case 11:case 15:Wc(8,t,t.return),Rl(t);break;case 22:n=t.stateNode,n._visibility&2&&(n._visibility&=-3,Rl(t));break;default:Rl(t)}e=e.sibling}}function zl(e,t){for(;ol!==null;){var n=ol;switch(n.tag){case 0:case 11:case 15:Wc(8,n,t);break;case 23:case 22:if(n.memoizedState!==null&&n.memoizedState.cachePool!==null){var r=n.memoizedState.cachePool.pool;r!=null&&r.refCount++}break;case 24:la(n.memoizedState.cache)}if(r=n.child,r!==null)r.return=n,ol=r;else a:for(n=e;ol!==null;){r=ol;var i=r.sibling,a=r.return;if(ll(r),r===n){ol=null;break a}if(i!==null){i.return=a,ol=i;break a}ol=a}}}var Bl={getCacheForType:function(e){var t=ta(sa),n=t.data.get(e);return n===void 0&&(n=e(),t.data.set(e,n)),n},cacheSignal:function(){return ta(sa).controller.signal}},Vl=typeof WeakMap==`function`?WeakMap:Map,Hl=0,Ul=null,Wl=null,Gl=0,Kl=0,ql=null,Jl=!1,Yl=!1,Xl=!1,Zl=0,Ql=0,$l=0,eu=0,tu=0,nu=0,ru=0,iu=null,au=null,ou=!1,su=0,cu=0,lu=1/0,uu=null,du=null,fu=0,pu=null,mu=null,hu=0,gu=0,_u=null,vu=null,yu=0,bu=null;function xu(){return Hl&2&&Gl!==0?Gl&-Gl:F.T===null?nt():yd()}function Su(){if(nu===0)if(!(Gl&536870912)||Pi){var e=Ve;Ve<<=1,!(Ve&3932160)&&(Ve=262144),nu=e}else nu=536870912;return e=ro.current,e!==null&&(e.flags|=32),nu}function Cu(e,t,n){(e===Ul&&(Kl===2||Kl===9)||e.cancelPendingCommit!==null)&&(Au(e,0),Du(e,Gl,nu,!1)),Ye(e,n),(!(Hl&2)||e!==Ul)&&(e===Ul&&(!(Hl&2)&&(eu|=n),Ql===4&&Du(e,Gl,nu,!1)),dd(e))}function wu(e,t,n){if(Hl&6)throw Error(i(327));var r=!n&&(t&127)==0&&(t&e.expiredLanes)===0||Ge(e,t),a=r?Ru(e,t):Iu(e,t,!0),o=r;do{if(a===0){Yl&&!r&&Du(e,t,0,!1);break}else{if(n=e.current.alternate,o&&!Eu(n)){a=Iu(e,t,!1),o=!1;continue}if(a===2){if(o=t,e.errorRecoveryDisabledLanes&o)var s=0;else s=e.pendingLanes&-536870913,s=s===0?s&536870912?536870912:0:s;if(s!==0){t=s;a:{var c=e;a=iu;var l=c.current.memoizedState.isDehydrated;if(l&&(Au(c,s).flags|=256),s=Iu(c,s,!1),s!==2){if(Xl&&!l){c.errorRecoveryDisabledLanes|=o,eu|=o,a=4;break a}o=au,au=a,o!==null&&(au===null?au=o:au.push.apply(au,o))}a=s}if(o=!1,a!==2)continue}}if(a===1){Au(e,0),Du(e,t,0,!0);break}a:{switch(r=e,o=a,o){case 0:case 1:throw Error(i(345));case 4:if((t&4194048)!==t)break;case 6:Du(r,t,nu,!Jl);break a;case 2:au=null;break;case 3:case 5:break;default:throw Error(i(329))}if((t&62914560)===t&&(a=su+300-we(),10<a)){if(Du(r,t,nu,!Jl),We(r,0,!0)!==0)break a;hu=t,r.timeoutHandle=nf(Tu.bind(null,r,n,au,uu,ou,t,nu,eu,ru,Jl,o,`Throttled`,-0,0),a);break a}Tu(r,n,au,uu,ou,t,nu,eu,ru,Jl,o,null,-0,0)}}break}while(1);dd(e)}function Tu(e,t,n,r,i,a,o,s,c,l,u,d,f,p){if(e.timeoutHandle=-1,d=t.subtreeFlags,d&8192||(d&16785408)==16785408){d={stylesheets:null,count:0,imgCount:0,imgBytes:0,suspenseyImages:[],waitingForImages:!0,waitingForViewTransition:!1,unsuspend:Qt},Pl(t,a,d);var m=(a&62914560)===a?su-we():(a&4194048)===a?cu-we():0;if(m=rp(d,m),m!==null){hu=a,e.cancelPendingCommit=m(U.bind(null,e,t,a,n,r,i,o,s,c,u,d,null,f,p)),Du(e,a,o,!l);return}}U(e,t,a,n,r,i,o,s,c)}function Eu(e){for(var t=e;;){var n=t.tag;if((n===0||n===11||n===15)&&t.flags&16384&&(n=t.updateQueue,n!==null&&(n=n.stores,n!==null)))for(var r=0;r<n.length;r++){var i=n[r],a=i.getSnapshot;i=i.value;try{if(!xr(a(),i))return!1}catch{return!1}}if(n=t.child,t.subtreeFlags&16384&&n!==null)n.return=t,t=n;else{if(t===e)break;for(;t.sibling===null;){if(t.return===null||t.return===e)return!0;t=t.return}t.sibling.return=t.return,t=t.sibling}}return!0}function Du(e,t,n,r){t&=~tu,t&=~eu,e.suspendedLanes|=t,e.pingedLanes&=~t,r&&(e.warmLanes|=t),r=e.expirationTimes;for(var i=t;0<i;){var a=31-Ie(i),o=1<<a;r[a]=-1,i&=~o}n!==0&&Ze(e,n,t)}function Ou(){return Hl&6?!0:(fd(0,!1),!1)}function ku(){if(Wl!==null){if(Kl===0)var e=Wl.return;else e=Wl,qi=Ki=null,Mo(e),Ma=null,Na=0,e=Wl;for(;e!==null;)Hc(e.alternate,e),e=e.return;Wl=null}}function Au(e,t){var n=e.timeoutHandle;n!==-1&&(e.timeoutHandle=-1,rf(n)),n=e.cancelPendingCommit,n!==null&&(e.cancelPendingCommit=null,n()),hu=0,ku(),Ul=e,Wl=n=li(e.current,null),Gl=t,Kl=0,ql=null,Jl=!1,Yl=Ge(e,t),Xl=!1,ru=nu=tu=eu=$l=Ql=0,au=iu=null,ou=!1,t&8&&(t|=t&32);var r=e.entangledLanes;if(r!==0)for(e=e.entanglements,r&=t;0<r;){var i=31-Ie(r),a=1<<i;t|=e[i],r&=~a}return Zl=t,$r(),n}function ju(e,t){mo=null,F.H=zs,t===Sa||t===wa?(t=Aa(),Kl=3):t===Ca?(t=Aa(),Kl=4):Kl=t===rc?8:typeof t==`object`&&t&&typeof t.then==`function`?6:1,ql=t,Wl===null&&(Ql=1,Zs(e,_i(t,e.current)))}function Mu(){var e=ro.current;return e===null?!0:(Gl&4194048)===Gl?io===null:(Gl&62914560)===Gl||Gl&536870912?e===io:!1}function Nu(){var e=F.H;return F.H=zs,e===null?zs:e}function Pu(){var e=F.A;return F.A=Bl,e}function Fu(){Ql=4,Jl||(Gl&4194048)!==Gl&&ro.current!==null||(Yl=!0),!($l&134217727)&&!(eu&134217727)||Ul===null||Du(Ul,Gl,nu,!1)}function Iu(e,t,n){var r=Hl;Hl|=2;var i=Nu(),a=Pu();(Ul!==e||Gl!==t)&&(uu=null,Au(e,t)),t=!1;var o=Ql;a:do try{if(Kl!==0&&Wl!==null){var s=Wl,c=ql;switch(Kl){case 8:ku(),o=6;break a;case 3:case 2:case 9:case 6:ro.current===null&&(t=!0);var l=Kl;if(Kl=0,ql=null,Hu(e,s,c,l),n&&Yl){o=0;break a}break;default:l=Kl,Kl=0,ql=null,Hu(e,s,c,l)}}Lu(),o=Ql;break}catch(t){ju(e,t)}while(1);return t&&e.shellSuspendCounter++,qi=Ki=null,Hl=r,F.H=i,F.A=a,Wl===null&&(Ul=null,Gl=0,$r()),o}function Lu(){for(;Wl!==null;)Bu(Wl)}function Ru(e,t){var n=Hl;Hl|=2;var r=Nu(),a=Pu();Ul!==e||Gl!==t?(uu=null,lu=we()+500,Au(e,t)):Yl=Ge(e,t);a:do try{if(Kl!==0&&Wl!==null){t=Wl;var o=ql;b:switch(Kl){case 1:Kl=0,ql=null,Hu(e,t,o,1);break;case 2:case 9:if(Ea(o)){Kl=0,ql=null,Vu(t);break}t=function(){Kl!==2&&Kl!==9||Ul!==e||(Kl=7),dd(e)},o.then(t,t);break a;case 3:Kl=7;break a;case 4:Kl=5;break a;case 7:Ea(o)?(Kl=0,ql=null,Vu(t)):(Kl=0,ql=null,Hu(e,t,o,7));break;case 5:var s=null;switch(Wl.tag){case 26:s=Wl.memoizedState;case 5:case 27:var c=Wl;if(s?ep(s):c.stateNode.complete){Kl=0,ql=null;var l=c.sibling;if(l!==null)Wl=l;else{var u=c.return;u===null?Wl=null:(Wl=u,Uu(u))}break b}}Kl=0,ql=null,Hu(e,t,o,5);break;case 6:Kl=0,ql=null,Hu(e,t,o,6);break;case 8:ku(),Ql=6;break a;default:throw Error(i(462))}}zu();break}catch(t){ju(e,t)}while(1);return qi=Ki=null,F.H=r,F.A=a,Hl=n,Wl===null?(Ul=null,Gl=0,$r(),Ql):0}function zu(){for(;Wl!==null&&!Se();)Bu(Wl)}function Bu(e){var t=Nc(e.alternate,e,Zl);e.memoizedProps=e.pendingProps,t===null?Uu(e):Wl=t}function Vu(e){var t=e,n=t.alternate;switch(t.tag){case 15:case 0:t=_c(n,t,t.pendingProps,t.type,void 0,Gl);break;case 11:t=_c(n,t,t.pendingProps,t.type.render,t.ref,Gl);break;case 5:Mo(t);default:Hc(n,t),t=Wl=ui(t,Zl),t=Nc(n,t,Zl)}e.memoizedProps=e.pendingProps,t===null?Uu(e):Wl=t}function Hu(e,t,n,r){qi=Ki=null,Mo(t),Ma=null,Na=0;var i=t.return;try{if(nc(e,i,t,n,Gl)){Ql=1,Zs(e,_i(n,e.current)),Wl=null;return}}catch(t){if(i!==null)throw Wl=i,t;Ql=1,Zs(e,_i(n,e.current)),Wl=null;return}t.flags&32768?(Pi||r===1?e=!0:Yl||Gl&536870912?e=!1:(Jl=e=!0,(r===2||r===9||r===3||r===6)&&(r=ro.current,r!==null&&r.tag===13&&(r.flags|=16384))),Wu(t,e)):Uu(t)}function Uu(e){var t=e;do{if(t.flags&32768){Wu(t,Jl);return}e=t.return;var n=Bc(t.alternate,t,Zl);if(n!==null){Wl=n;return}if(t=t.sibling,t!==null){Wl=t;return}Wl=t=e}while(t!==null);Ql===0&&(Ql=5)}function Wu(e,t){do{var n=Vc(e.alternate,e);if(n!==null){n.flags&=32767,Wl=n;return}if(n=e.return,n!==null&&(n.flags|=32768,n.subtreeFlags=0,n.deletions=null),!t&&(e=e.sibling,e!==null)){Wl=e;return}Wl=e=n}while(e!==null);Ql=6,Wl=null}function U(e,t,n,r,a,o,s,c,l){e.cancelPendingCommit=null;do Yu();while(fu!==0);if(Hl&6)throw Error(i(327));if(t!==null){if(t===e.current)throw Error(i(177));if(o=t.lanes|t.childLanes,o|=Qr,Xe(e,n,o,s,c,l),e===Ul&&(Wl=Ul=null,Gl=0),mu=t,pu=e,hu=n,gu=o,_u=a,vu=r,t.subtreeFlags&10256||t.flags&10256?(e.callbackNode=null,e.callbackPriority=0,id(Oe,function(){return Xu(),null})):(e.callbackNode=null,e.callbackPriority=0),r=(t.flags&13878)!=0,t.subtreeFlags&13878||r){r=F.T,F.T=null,a=I.p,I.p=2,s=Hl,Hl|=4;try{sl(e,t,n)}finally{Hl=s,I.p=a,F.T=r}}fu=1,Gu(),Ku(),qu()}}function Gu(){if(fu===1){fu=0;var e=pu,t=mu,n=(t.flags&13878)!=0;if(t.subtreeFlags&13878||n){n=F.T,F.T=null;var r=I.p;I.p=2;var i=Hl;Hl|=4;try{bl(t,e);var a=Yd,o=Er(e.containerInfo),s=a.focusedElem,c=a.selectionRange;if(o!==s&&s&&s.ownerDocument&&Tr(s.ownerDocument.documentElement,s)){if(c!==null&&Dr(s)){var l=c.start,u=c.end;if(u===void 0&&(u=l),`selectionStart`in s)s.selectionStart=l,s.selectionEnd=Math.min(u,s.value.length);else{var d=s.ownerDocument||document,f=d&&d.defaultView||window;if(f.getSelection){var p=f.getSelection(),m=s.textContent.length,h=Math.min(c.start,m),g=c.end===void 0?h:Math.min(c.end,m);!p.extend&&h>g&&(o=g,g=h,h=o);var _=wr(s,h),v=wr(s,g);if(_&&v&&(p.rangeCount!==1||p.anchorNode!==_.node||p.anchorOffset!==_.offset||p.focusNode!==v.node||p.focusOffset!==v.offset)){var y=d.createRange();y.setStart(_.node,_.offset),p.removeAllRanges(),h>g?(p.addRange(y),p.extend(v.node,v.offset)):(y.setEnd(v.node,v.offset),p.addRange(y))}}}}for(d=[],p=s;p=p.parentNode;)p.nodeType===1&&d.push({element:p,left:p.scrollLeft,top:p.scrollTop});for(typeof s.focus==`function`&&s.focus(),s=0;s<d.length;s++){var b=d[s];b.element.scrollLeft=b.left,b.element.scrollTop=b.top}}gp=!!Jd,Yd=Jd=null}finally{Hl=i,I.p=r,F.T=n}}e.current=t,fu=2}}function Ku(){if(fu===2){fu=0;var e=pu,t=mu,n=(t.flags&8772)!=0;if(t.subtreeFlags&8772||n){n=F.T,F.T=null;var r=I.p;I.p=2;var i=Hl;Hl|=4;try{cl(e,t.alternate,t)}finally{Hl=i,I.p=r,F.T=n}}fu=3}}function qu(){if(fu===4||fu===3){fu=0,Ce();var e=pu,t=mu,n=hu,r=vu;t.subtreeFlags&10256||t.flags&10256?fu=5:(fu=0,mu=pu=null,Ju(e,e.pendingLanes));var i=e.pendingLanes;if(i===0&&(du=null),tt(n),t=t.stateNode,Pe&&typeof Pe.onCommitFiberRoot==`function`)try{Pe.onCommitFiberRoot(Ne,t,void 0,(t.current.flags&128)==128)}catch{}if(r!==null){t=F.T,i=I.p,I.p=2,F.T=null;try{for(var a=e.onRecoverableError,o=0;o<r.length;o++){var s=r[o];a(s.value,{componentStack:s.stack})}}finally{F.T=t,I.p=i}}hu&3&&Yu(),dd(e),i=e.pendingLanes,n&261930&&i&42?e===bu?yu++:(yu=0,bu=e):yu=0,fd(0,!1)}}function Ju(e,t){(e.pooledCacheLanes&=t)===0&&(t=e.pooledCache,t!=null&&(e.pooledCache=null,la(t)))}function Yu(){return Gu(),Ku(),qu(),Xu()}function Xu(){if(fu!==5)return!1;var e=pu,t=gu;gu=0;var n=tt(hu),r=F.T,a=I.p;try{I.p=32>n?32:n,F.T=null,n=_u,_u=null;var o=pu,s=hu;if(fu=0,mu=pu=null,hu=0,Hl&6)throw Error(i(331));var c=Hl;if(Hl|=4,Ll(o.current),kl(o,o.current,s,n),Hl=c,fd(0,!1),Pe&&typeof Pe.onPostCommitFiberRoot==`function`)try{Pe.onPostCommitFiberRoot(Ne,o)}catch{}return!0}finally{I.p=a,F.T=r,Ju(e,t)}}function Zu(e,t,n){t=_i(n,t),t=$s(e.stateNode,t,2),e=Wa(e,t,2),e!==null&&(Ye(e,2),dd(e))}function Qu(e,t,n){if(e.tag===3)Zu(e,e,n);else for(;t!==null;){if(t.tag===3){Zu(t,e,n);break}else if(t.tag===1){var r=t.stateNode;if(typeof t.type.getDerivedStateFromError==`function`||typeof r.componentDidCatch==`function`&&(du===null||!du.has(r))){e=_i(n,e),n=ec(2),r=Wa(t,n,2),r!==null&&(tc(n,r,t,e),Ye(r,2),dd(r));break}}t=t.return}}function $u(e,t,n){var r=e.pingCache;if(r===null){r=e.pingCache=new Vl;var i=new Set;r.set(t,i)}else i=r.get(t),i===void 0&&(i=new Set,r.set(t,i));i.has(n)||(Xl=!0,i.add(n),e=ed.bind(null,e,t,n),t.then(e,e))}function ed(e,t,n){var r=e.pingCache;r!==null&&r.delete(t),e.pingedLanes|=e.suspendedLanes&n,e.warmLanes&=~n,Ul===e&&(Gl&n)===n&&(Ql===4||Ql===3&&(Gl&62914560)===Gl&&300>we()-su?!(Hl&2)&&Au(e,0):tu|=n,ru===Gl&&(ru=0)),dd(e)}function td(e,t){t===0&&(t=qe()),e=ni(e,t),e!==null&&(Ye(e,t),dd(e))}function nd(e){var t=e.memoizedState,n=0;t!==null&&(n=t.retryLane),td(e,n)}function rd(e,t){var n=0;switch(e.tag){case 31:case 13:var r=e.stateNode,a=e.memoizedState;a!==null&&(n=a.retryLane);break;case 19:r=e.stateNode;break;case 22:r=e.stateNode._retryCache;break;default:throw Error(i(314))}r!==null&&r.delete(t),td(e,n)}function id(e,t){return be(e,t)}var ad=null,od=null,sd=!1,cd=!1,ld=!1,ud=0;function dd(e){e!==od&&e.next===null&&(od===null?ad=od=e:od=od.next=e),cd=!0,sd||(sd=!0,vd())}function fd(e,t){if(!ld&&cd){ld=!0;do for(var n=!1,r=ad;r!==null;){if(!t)if(e!==0){var i=r.pendingLanes;if(i===0)var a=0;else{var o=r.suspendedLanes,s=r.pingedLanes;a=(1<<31-Ie(42|e)+1)-1,a&=i&~(o&~s),a=a&201326741?a&201326741|1:a?a|2:0}a!==0&&(n=!0,_d(r,a))}else a=Gl,a=We(r,r===Ul?a:0,r.cancelPendingCommit!==null||r.timeoutHandle!==-1),!(a&3)||Ge(r,a)||(n=!0,_d(r,a));r=r.next}while(n);ld=!1}}function pd(){md()}function md(){cd=sd=!1;var e=0;ud!==0&&tf()&&(e=ud);for(var t=we(),n=null,r=ad;r!==null;){var i=r.next,a=hd(r,t);a===0?(r.next=null,n===null?ad=i:n.next=i,i===null&&(od=n)):(n=r,(e!==0||a&3)&&(cd=!0)),r=i}fu!==0&&fu!==5||fd(e,!1),ud!==0&&(ud=0)}function hd(e,t){for(var n=e.suspendedLanes,r=e.pingedLanes,i=e.expirationTimes,a=e.pendingLanes&-62914561;0<a;){var o=31-Ie(a),s=1<<o,c=i[o];c===-1?((s&n)===0||(s&r)!==0)&&(i[o]=Ke(s,t)):c<=t&&(e.expiredLanes|=s),a&=~s}if(t=Ul,n=Gl,n=We(e,e===t?n:0,e.cancelPendingCommit!==null||e.timeoutHandle!==-1),r=e.callbackNode,n===0||e===t&&(Kl===2||Kl===9)||e.cancelPendingCommit!==null)return r!==null&&r!==null&&xe(r),e.callbackNode=null,e.callbackPriority=0;if(!(n&3)||Ge(e,n)){if(t=n&-n,t===e.callbackPriority)return t;switch(r!==null&&xe(r),tt(n)){case 2:case 8:n=De;break;case 32:n=Oe;break;case 268435456:n=Ae;break;default:n=Oe}return r=gd.bind(null,e),n=be(n,r),e.callbackPriority=t,e.callbackNode=n,t}return r!==null&&r!==null&&xe(r),e.callbackPriority=2,e.callbackNode=null,2}function gd(e,t){if(fu!==0&&fu!==5)return e.callbackNode=null,e.callbackPriority=0,null;var n=e.callbackNode;if(Yu()&&e.callbackNode!==n)return null;var r=Gl;return r=We(e,e===Ul?r:0,e.cancelPendingCommit!==null||e.timeoutHandle!==-1),r===0?null:(wu(e,r,t),hd(e,we()),e.callbackNode!=null&&e.callbackNode===n?gd.bind(null,e):null)}function _d(e,t){if(Yu())return null;wu(e,t,!0)}function vd(){of(function(){Hl&6?be(Ee,pd):md()})}function yd(){if(ud===0){var e=fa;e===0&&(e=Be,Be<<=1,!(Be&261888)&&(Be=256)),ud=e}return ud}function bd(e){return e==null||typeof e==`symbol`||typeof e==`boolean`?null:typeof e==`function`?e:Zt(``+e)}function xd(e,t){var n=t.ownerDocument.createElement(`input`);return n.name=t.name,n.value=t.value,e.id&&n.setAttribute(`form`,e.id),t.parentNode.insertBefore(n,t),e=new FormData(e),n.parentNode.removeChild(n),e}function Sd(e,t,n,r,i){if(t===`submit`&&n&&n.stateNode===i){var a=bd((i[ot]||null).action),o=r.submitter;o&&(t=(t=o[ot]||null)?bd(t.formAction):o.getAttribute(`formAction`),t!==null&&(a=t,o=null));var s=new bn(`action`,`action`,null,r,i);e.push({event:s,listeners:[{instance:null,listener:function(){if(r.defaultPrevented){if(ud!==0){var e=o?xd(i,o):new FormData(i);Ts(n,{pending:!0,data:e,method:i.method,action:a},null,e)}}else typeof a==`function`&&(s.preventDefault(),e=o?xd(i,o):new FormData(i),Ts(n,{pending:!0,data:e,method:i.method,action:a},a,e))},currentTarget:i}]})}}for(var Cd=0;Cd<qr.length;Cd++){var wd=qr[Cd];Jr(wd.toLowerCase(),`on`+(wd[0].toUpperCase()+wd.slice(1)))}Jr(zr,`onAnimationEnd`),Jr(Br,`onAnimationIteration`),Jr(Vr,`onAnimationStart`),Jr(`dblclick`,`onDoubleClick`),Jr(`focusin`,`onFocus`),Jr(`focusout`,`onBlur`),Jr(Hr,`onTransitionRun`),Jr(Ur,`onTransitionStart`),Jr(Wr,`onTransitionCancel`),Jr(Gr,`onTransitionEnd`),St(`onMouseEnter`,[`mouseout`,`mouseover`]),St(`onMouseLeave`,[`mouseout`,`mouseover`]),St(`onPointerEnter`,[`pointerout`,`pointerover`]),St(`onPointerLeave`,[`pointerout`,`pointerover`]),xt(`onChange`,`change click focusin focusout input keydown keyup selectionchange`.split(` `)),xt(`onSelect`,`focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange`.split(` `)),xt(`onBeforeInput`,[`compositionend`,`keypress`,`textInput`,`paste`]),xt(`onCompositionEnd`,`compositionend focusout keydown keypress keyup mousedown`.split(` `)),xt(`onCompositionStart`,`compositionstart focusout keydown keypress keyup mousedown`.split(` `)),xt(`onCompositionUpdate`,`compositionupdate focusout keydown keypress keyup mousedown`.split(` `));var Td=`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(` `),Ed=new Set(`beforetoggle cancel close invalid load scroll scrollend toggle`.split(` `).concat(Td));function Dd(e,t){t=(t&4)!=0;for(var n=0;n<e.length;n++){var r=e[n],i=r.event;r=r.listeners;a:{var a=void 0;if(t)for(var o=r.length-1;0<=o;o--){var s=r[o],c=s.instance,l=s.currentTarget;if(s=s.listener,c!==a&&i.isPropagationStopped())break a;a=s,i.currentTarget=l;try{a(i)}catch(e){Yr(e)}i.currentTarget=null,a=c}else for(o=0;o<r.length;o++){if(s=r[o],c=s.instance,l=s.currentTarget,s=s.listener,c!==a&&i.isPropagationStopped())break a;a=s,i.currentTarget=l;try{a(i)}catch(e){Yr(e)}i.currentTarget=null,a=c}}}}function Od(e,t){var n=t[ct];n===void 0&&(n=t[ct]=new Set);var r=e+`__bubble`;n.has(r)||(Md(t,e,2,!1),n.add(r))}function kd(e,t,n){var r=0;t&&(r|=4),Md(n,e,r,t)}var Ad=`_reactListening`+Math.random().toString(36).slice(2);function jd(e){if(!e[Ad]){e[Ad]=!0,yt.forEach(function(t){t!==`selectionchange`&&(Ed.has(t)||kd(t,!1,e),kd(t,!0,e))});var t=e.nodeType===9?e:e.ownerDocument;t===null||t[Ad]||(t[Ad]=!0,kd(`selectionchange`,!1,t))}}function Md(e,t,n,r){switch(Cp(t)){case 2:var i=_p;break;case 8:i=vp;break;default:i=yp}n=i.bind(null,t,n,e),i=void 0,!ln||t!==`touchstart`&&t!==`touchmove`&&t!==`wheel`||(i=!0),r?i===void 0?e.addEventListener(t,n,!0):e.addEventListener(t,n,{capture:!0,passive:i}):i===void 0?e.addEventListener(t,n,!1):e.addEventListener(t,n,{passive:i})}function Nd(e,t,n,r,i){var a=r;if(!(t&1)&&!(t&2)&&r!==null)a:for(;;){if(r===null)return;var s=r.tag;if(s===3||s===4){var c=r.stateNode.containerInfo;if(c===i)break;if(s===4)for(s=r.return;s!==null;){var l=s.tag;if((l===3||l===4)&&s.stateNode.containerInfo===i)return;s=s.return}for(;c!==null;){if(s=mt(c),s===null)return;if(l=s.tag,l===5||l===6||l===26||l===27){r=a=s;continue a}c=c.parentNode}}r=r.return}on(function(){var r=a,i=en(n),s=[];a:{var c=Kr.get(e);if(c!==void 0){var l=bn,u=e;switch(e){case`keypress`:if(hn(n)===0)break a;case`keydown`:case`keyup`:l=Rn;break;case`focusin`:u=`focus`,l=kn;break;case`focusout`:u=`blur`,l=kn;break;case`beforeblur`:case`afterblur`:l=kn;break;case`click`:if(n.button===2)break a;case`auxclick`:case`dblclick`:case`mousedown`:case`mousemove`:case`mouseup`:case`mouseout`:case`mouseover`:case`contextmenu`:l=Dn;break;case`drag`:case`dragend`:case`dragenter`:case`dragexit`:case`dragleave`:case`dragover`:case`dragstart`:case`drop`:l=On;break;case`touchcancel`:case`touchend`:case`touchmove`:case`touchstart`:l=Bn;break;case zr:case Br:case Vr:l=An;break;case Gr:l=Vn;break;case`scroll`:case`scrollend`:l=Sn;break;case`wheel`:l=Hn;break;case`copy`:case`cut`:case`paste`:l=jn;break;case`gotpointercapture`:case`lostpointercapture`:case`pointercancel`:case`pointerdown`:case`pointermove`:case`pointerout`:case`pointerover`:case`pointerup`:l=zn;break;case`toggle`:case`beforetoggle`:l=Un}var d=(t&4)!=0,f=!d&&(e===`scroll`||e===`scrollend`),p=d?c===null?null:c+`Capture`:c;d=[];for(var m=r,h;m!==null;){var g=m;if(h=g.stateNode,g=g.tag,g!==5&&g!==26&&g!==27||h===null||p===null||(g=sn(m,p),g!=null&&d.push(Pd(m,g,h))),f)break;m=m.return}0<d.length&&(c=new l(c,u,null,n,i),s.push({event:c,listeners:d}))}}if(!(t&7)){a:{if(c=e===`mouseover`||e===`pointerover`,l=e===`mouseout`||e===`pointerout`,c&&n!==$t&&(u=n.relatedTarget||n.fromElement)&&(mt(u)||u[st]))break a;if((l||c)&&(c=i.window===i?i:(c=i.ownerDocument)?c.defaultView||c.parentWindow:window,l?(u=n.relatedTarget||n.toElement,l=r,u=u?mt(u):null,u!==null&&(f=o(u),d=u.tag,u!==f||d!==5&&d!==27&&d!==6)&&(u=null)):(l=null,u=r),l!==u)){if(d=Dn,g=`onMouseLeave`,p=`onMouseEnter`,m=`mouse`,(e===`pointerout`||e===`pointerover`)&&(d=zn,g=`onPointerLeave`,p=`onPointerEnter`,m=`pointer`),f=l==null?c:gt(l),h=u==null?c:gt(u),c=new d(g,m+`leave`,l,n,i),c.target=f,c.relatedTarget=h,g=null,mt(i)===r&&(d=new d(p,m+`enter`,u,n,i),d.target=h,d.relatedTarget=f,g=d),f=g,l&&u)b:{for(d=Id,p=l,m=u,h=0,g=p;g;g=d(g))h++;g=0;for(var _=m;_;_=d(_))g++;for(;0<h-g;)p=d(p),h--;for(;0<g-h;)m=d(m),g--;for(;h--;){if(p===m||m!==null&&p===m.alternate){d=p;break b}p=d(p),m=d(m)}d=null}else d=null;l!==null&&Ld(s,c,l,d,!1),u!==null&&f!==null&&Ld(s,f,u,d,!0)}}a:{if(c=r?gt(r):window,l=c.nodeName&&c.nodeName.toLowerCase(),l===`select`||l===`input`&&c.type===`file`)var v=lr;else if(rr(c))if(ur)v=yr;else{v=_r;var y=gr}else l=c.nodeName,!l||l.toLowerCase()!==`input`||c.type!==`checkbox`&&c.type!==`radio`?r&&Jt(r.elementType)&&(v=lr):v=vr;if(v&&(v=v(e,r))){ir(s,v,n,i);break a}y&&y(e,c,r),e===`focusout`&&r&&c.type===`number`&&r.memoizedProps.value!=null&&Bt(c,`number`,c.value)}switch(y=r?gt(r):window,e){case`focusin`:(rr(y)||y.contentEditable===`true`)&&(kr=y,Ar=r,jr=null);break;case`focusout`:jr=Ar=kr=null;break;case`mousedown`:Mr=!0;break;case`contextmenu`:case`mouseup`:case`dragend`:Mr=!1,Nr(s,n,i);break;case`selectionchange`:if(Or)break;case`keydown`:case`keyup`:Nr(s,n,i)}var b;if(Gn)b:{switch(e){case`compositionstart`:var x=`onCompositionStart`;break b;case`compositionend`:x=`onCompositionEnd`;break b;case`compositionupdate`:x=`onCompositionUpdate`;break b}x=void 0}else $n?Zn(e,n)&&(x=`onCompositionEnd`):e===`keydown`&&n.keyCode===229&&(x=`onCompositionStart`);x&&(Jn&&n.locale!==`ko`&&($n||x!==`onCompositionStart`?x===`onCompositionEnd`&&$n&&(b=mn()):(dn=i,fn=`value`in dn?dn.value:dn.textContent,$n=!0)),y=Fd(r,x),0<y.length&&(x=new Mn(x,e,null,n,i),s.push({event:x,listeners:y}),b?x.data=b:(b=Qn(n),b!==null&&(x.data=b)))),(b=qn?er(e,n):tr(e,n))&&(x=Fd(r,`onBeforeInput`),0<x.length&&(y=new Mn(`onBeforeInput`,`beforeinput`,null,n,i),s.push({event:y,listeners:x}),y.data=b)),Sd(s,e,r,n,i)}Dd(s,t)})}function Pd(e,t,n){return{instance:e,listener:t,currentTarget:n}}function Fd(e,t){for(var n=t+`Capture`,r=[];e!==null;){var i=e,a=i.stateNode;if(i=i.tag,i!==5&&i!==26&&i!==27||a===null||(i=sn(e,n),i!=null&&r.unshift(Pd(e,i,a)),i=sn(e,t),i!=null&&r.push(Pd(e,i,a))),e.tag===3)return r;e=e.return}return[]}function Id(e){if(e===null)return null;do e=e.return;while(e&&e.tag!==5&&e.tag!==27);return e||null}function Ld(e,t,n,r,i){for(var a=t._reactName,o=[];n!==null&&n!==r;){var s=n,c=s.alternate,l=s.stateNode;if(s=s.tag,c!==null&&c===r)break;s!==5&&s!==26&&s!==27||l===null||(c=l,i?(l=sn(n,a),l!=null&&o.unshift(Pd(n,l,c))):i||(l=sn(n,a),l!=null&&o.push(Pd(n,l,c)))),n=n.return}o.length!==0&&e.push({event:t,listeners:o})}var Rd=/\r\n?/g,zd=/\u0000|\uFFFD/g;function Bd(e){return(typeof e==`string`?e:``+e).replace(Rd,`
`).replace(zd,``)}function Vd(e,t){return t=Bd(t),Bd(e)===t}function Hd(e,t,n,r,a,o){switch(n){case`children`:typeof r==`string`?t===`body`||t===`textarea`&&r===``||Wt(e,r):(typeof r==`number`||typeof r==`bigint`)&&t!==`body`&&Wt(e,``+r);break;case`className`:Ot(e,`class`,r);break;case`tabIndex`:Ot(e,`tabindex`,r);break;case`dir`:case`role`:case`viewBox`:case`width`:case`height`:Ot(e,n,r);break;case`style`:qt(e,r,o);break;case`data`:if(t!==`object`){Ot(e,`data`,r);break}case`src`:case`href`:if(r===``&&(t!==`a`||n!==`href`)){e.removeAttribute(n);break}if(r==null||typeof r==`function`||typeof r==`symbol`||typeof r==`boolean`){e.removeAttribute(n);break}r=Zt(``+r),e.setAttribute(n,r);break;case`action`:case`formAction`:if(typeof r==`function`){e.setAttribute(n,`javascript:throw new Error('A React form was unexpectedly submitted. If you called form.submit() manually, consider using form.requestSubmit() instead. If you\\'re trying to use event.stopPropagation() in a submit event handler, consider also calling event.preventDefault().')`);break}else typeof o==`function`&&(n===`formAction`?(t!==`input`&&Hd(e,t,`name`,a.name,a,null),Hd(e,t,`formEncType`,a.formEncType,a,null),Hd(e,t,`formMethod`,a.formMethod,a,null),Hd(e,t,`formTarget`,a.formTarget,a,null)):(Hd(e,t,`encType`,a.encType,a,null),Hd(e,t,`method`,a.method,a,null),Hd(e,t,`target`,a.target,a,null)));if(r==null||typeof r==`symbol`||typeof r==`boolean`){e.removeAttribute(n);break}r=Zt(``+r),e.setAttribute(n,r);break;case`onClick`:r!=null&&(e.onclick=Qt);break;case`onScroll`:r!=null&&Od(`scroll`,e);break;case`onScrollEnd`:r!=null&&Od(`scrollend`,e);break;case`dangerouslySetInnerHTML`:if(r!=null){if(typeof r!=`object`||!(`__html`in r))throw Error(i(61));if(n=r.__html,n!=null){if(a.children!=null)throw Error(i(60));e.innerHTML=n}}break;case`multiple`:e.multiple=r&&typeof r!=`function`&&typeof r!=`symbol`;break;case`muted`:e.muted=r&&typeof r!=`function`&&typeof r!=`symbol`;break;case`suppressContentEditableWarning`:case`suppressHydrationWarning`:case`defaultValue`:case`defaultChecked`:case`innerHTML`:case`ref`:break;case`autoFocus`:break;case`xlinkHref`:if(r==null||typeof r==`function`||typeof r==`boolean`||typeof r==`symbol`){e.removeAttribute(`xlink:href`);break}n=Zt(``+r),e.setAttributeNS(`http://www.w3.org/1999/xlink`,`xlink:href`,n);break;case`contentEditable`:case`spellCheck`:case`draggable`:case`value`:case`autoReverse`:case`externalResourcesRequired`:case`focusable`:case`preserveAlpha`:r!=null&&typeof r!=`function`&&typeof r!=`symbol`?e.setAttribute(n,``+r):e.removeAttribute(n);break;case`inert`:case`allowFullScreen`:case`async`:case`autoPlay`:case`controls`:case`default`:case`defer`:case`disabled`:case`disablePictureInPicture`:case`disableRemotePlayback`:case`formNoValidate`:case`hidden`:case`loop`:case`noModule`:case`noValidate`:case`open`:case`playsInline`:case`readOnly`:case`required`:case`reversed`:case`scoped`:case`seamless`:case`itemScope`:r&&typeof r!=`function`&&typeof r!=`symbol`?e.setAttribute(n,``):e.removeAttribute(n);break;case`capture`:case`download`:!0===r?e.setAttribute(n,``):!1!==r&&r!=null&&typeof r!=`function`&&typeof r!=`symbol`?e.setAttribute(n,r):e.removeAttribute(n);break;case`cols`:case`rows`:case`size`:case`span`:r!=null&&typeof r!=`function`&&typeof r!=`symbol`&&!isNaN(r)&&1<=r?e.setAttribute(n,r):e.removeAttribute(n);break;case`rowSpan`:case`start`:r==null||typeof r==`function`||typeof r==`symbol`||isNaN(r)?e.removeAttribute(n):e.setAttribute(n,r);break;case`popover`:Od(`beforetoggle`,e),Od(`toggle`,e),Dt(e,`popover`,r);break;case`xlinkActuate`:kt(e,`http://www.w3.org/1999/xlink`,`xlink:actuate`,r);break;case`xlinkArcrole`:kt(e,`http://www.w3.org/1999/xlink`,`xlink:arcrole`,r);break;case`xlinkRole`:kt(e,`http://www.w3.org/1999/xlink`,`xlink:role`,r);break;case`xlinkShow`:kt(e,`http://www.w3.org/1999/xlink`,`xlink:show`,r);break;case`xlinkTitle`:kt(e,`http://www.w3.org/1999/xlink`,`xlink:title`,r);break;case`xlinkType`:kt(e,`http://www.w3.org/1999/xlink`,`xlink:type`,r);break;case`xmlBase`:kt(e,`http://www.w3.org/XML/1998/namespace`,`xml:base`,r);break;case`xmlLang`:kt(e,`http://www.w3.org/XML/1998/namespace`,`xml:lang`,r);break;case`xmlSpace`:kt(e,`http://www.w3.org/XML/1998/namespace`,`xml:space`,r);break;case`is`:Dt(e,`is`,r);break;case`innerText`:case`textContent`:break;default:(!(2<n.length)||n[0]!==`o`&&n[0]!==`O`||n[1]!==`n`&&n[1]!==`N`)&&(n=Yt.get(n)||n,Dt(e,n,r))}}function Ud(e,t,n,r,a,o){switch(n){case`style`:qt(e,r,o);break;case`dangerouslySetInnerHTML`:if(r!=null){if(typeof r!=`object`||!(`__html`in r))throw Error(i(61));if(n=r.__html,n!=null){if(a.children!=null)throw Error(i(60));e.innerHTML=n}}break;case`children`:typeof r==`string`?Wt(e,r):(typeof r==`number`||typeof r==`bigint`)&&Wt(e,``+r);break;case`onScroll`:r!=null&&Od(`scroll`,e);break;case`onScrollEnd`:r!=null&&Od(`scrollend`,e);break;case`onClick`:r!=null&&(e.onclick=Qt);break;case`suppressContentEditableWarning`:case`suppressHydrationWarning`:case`innerHTML`:case`ref`:break;case`innerText`:case`textContent`:break;default:if(!bt.hasOwnProperty(n))a:{if(n[0]===`o`&&n[1]===`n`&&(a=n.endsWith(`Capture`),t=n.slice(2,a?n.length-7:void 0),o=e[ot]||null,o=o==null?null:o[n],typeof o==`function`&&e.removeEventListener(t,o,a),typeof r==`function`)){typeof o!=`function`&&o!==null&&(n in e?e[n]=null:e.hasAttribute(n)&&e.removeAttribute(n)),e.addEventListener(t,r,a);break a}n in e?e[n]=r:!0===r?e.setAttribute(n,``):Dt(e,n,r)}}}function Wd(e,t,n){switch(t){case`div`:case`span`:case`svg`:case`path`:case`a`:case`g`:case`p`:case`li`:break;case`img`:Od(`error`,e),Od(`load`,e);var r=!1,a=!1,o;for(o in n)if(n.hasOwnProperty(o)){var s=n[o];if(s!=null)switch(o){case`src`:r=!0;break;case`srcSet`:a=!0;break;case`children`:case`dangerouslySetInnerHTML`:throw Error(i(137,t));default:Hd(e,t,o,s,n,null)}}a&&Hd(e,t,`srcSet`,n.srcSet,n,null),r&&Hd(e,t,`src`,n.src,n,null);return;case`input`:Od(`invalid`,e);var c=o=s=a=null,l=null,u=null;for(r in n)if(n.hasOwnProperty(r)){var d=n[r];if(d!=null)switch(r){case`name`:a=d;break;case`type`:s=d;break;case`checked`:l=d;break;case`defaultChecked`:u=d;break;case`value`:o=d;break;case`defaultValue`:c=d;break;case`children`:case`dangerouslySetInnerHTML`:if(d!=null)throw Error(i(137,t));break;default:Hd(e,t,r,d,n,null)}}zt(e,o,c,l,u,s,a,!1);return;case`select`:for(a in Od(`invalid`,e),r=s=o=null,n)if(n.hasOwnProperty(a)&&(c=n[a],c!=null))switch(a){case`value`:o=c;break;case`defaultValue`:s=c;break;case`multiple`:r=c;default:Hd(e,t,a,c,n,null)}t=o,n=s,e.multiple=!!r,t==null?n!=null&&Vt(e,!!r,n,!0):Vt(e,!!r,t,!1);return;case`textarea`:for(s in Od(`invalid`,e),o=a=r=null,n)if(n.hasOwnProperty(s)&&(c=n[s],c!=null))switch(s){case`value`:r=c;break;case`defaultValue`:a=c;break;case`children`:o=c;break;case`dangerouslySetInnerHTML`:if(c!=null)throw Error(i(91));break;default:Hd(e,t,s,c,n,null)}Ut(e,r,a,o);return;case`option`:for(l in n)if(n.hasOwnProperty(l)&&(r=n[l],r!=null))switch(l){case`selected`:e.selected=r&&typeof r!=`function`&&typeof r!=`symbol`;break;default:Hd(e,t,l,r,n,null)}return;case`dialog`:Od(`beforetoggle`,e),Od(`toggle`,e),Od(`cancel`,e),Od(`close`,e);break;case`iframe`:case`object`:Od(`load`,e);break;case`video`:case`audio`:for(r=0;r<Td.length;r++)Od(Td[r],e);break;case`image`:Od(`error`,e),Od(`load`,e);break;case`details`:Od(`toggle`,e);break;case`embed`:case`source`:case`link`:Od(`error`,e),Od(`load`,e);case`area`:case`base`:case`br`:case`col`:case`hr`:case`keygen`:case`meta`:case`param`:case`track`:case`wbr`:case`menuitem`:for(u in n)if(n.hasOwnProperty(u)&&(r=n[u],r!=null))switch(u){case`children`:case`dangerouslySetInnerHTML`:throw Error(i(137,t));default:Hd(e,t,u,r,n,null)}return;default:if(Jt(t)){for(d in n)n.hasOwnProperty(d)&&(r=n[d],r!==void 0&&Ud(e,t,d,r,n,void 0));return}}for(c in n)n.hasOwnProperty(c)&&(r=n[c],r!=null&&Hd(e,t,c,r,n,null))}function Gd(e,t,n,r){switch(t){case`div`:case`span`:case`svg`:case`path`:case`a`:case`g`:case`p`:case`li`:break;case`input`:var a=null,o=null,s=null,c=null,l=null,u=null,d=null;for(m in n){var f=n[m];if(n.hasOwnProperty(m)&&f!=null)switch(m){case`checked`:break;case`value`:break;case`defaultValue`:l=f;default:r.hasOwnProperty(m)||Hd(e,t,m,null,r,f)}}for(var p in r){var m=r[p];if(f=n[p],r.hasOwnProperty(p)&&(m!=null||f!=null))switch(p){case`type`:o=m;break;case`name`:a=m;break;case`checked`:u=m;break;case`defaultChecked`:d=m;break;case`value`:s=m;break;case`defaultValue`:c=m;break;case`children`:case`dangerouslySetInnerHTML`:if(m!=null)throw Error(i(137,t));break;default:m!==f&&Hd(e,t,p,m,r,f)}}Rt(e,s,c,l,u,d,o,a);return;case`select`:for(o in m=s=c=p=null,n)if(l=n[o],n.hasOwnProperty(o)&&l!=null)switch(o){case`value`:break;case`multiple`:m=l;default:r.hasOwnProperty(o)||Hd(e,t,o,null,r,l)}for(a in r)if(o=r[a],l=n[a],r.hasOwnProperty(a)&&(o!=null||l!=null))switch(a){case`value`:p=o;break;case`defaultValue`:c=o;break;case`multiple`:s=o;default:o!==l&&Hd(e,t,a,o,r,l)}t=c,n=s,r=m,p==null?!!r!=!!n&&(t==null?Vt(e,!!n,n?[]:``,!1):Vt(e,!!n,t,!0)):Vt(e,!!n,p,!1);return;case`textarea`:for(c in m=p=null,n)if(a=n[c],n.hasOwnProperty(c)&&a!=null&&!r.hasOwnProperty(c))switch(c){case`value`:break;case`children`:break;default:Hd(e,t,c,null,r,a)}for(s in r)if(a=r[s],o=n[s],r.hasOwnProperty(s)&&(a!=null||o!=null))switch(s){case`value`:p=a;break;case`defaultValue`:m=a;break;case`children`:break;case`dangerouslySetInnerHTML`:if(a!=null)throw Error(i(91));break;default:a!==o&&Hd(e,t,s,a,r,o)}Ht(e,p,m);return;case`option`:for(var h in n)if(p=n[h],n.hasOwnProperty(h)&&p!=null&&!r.hasOwnProperty(h))switch(h){case`selected`:e.selected=!1;break;default:Hd(e,t,h,null,r,p)}for(l in r)if(p=r[l],m=n[l],r.hasOwnProperty(l)&&p!==m&&(p!=null||m!=null))switch(l){case`selected`:e.selected=p&&typeof p!=`function`&&typeof p!=`symbol`;break;default:Hd(e,t,l,p,r,m)}return;case`img`:case`link`:case`area`:case`base`:case`br`:case`col`:case`embed`:case`hr`:case`keygen`:case`meta`:case`param`:case`source`:case`track`:case`wbr`:case`menuitem`:for(var g in n)p=n[g],n.hasOwnProperty(g)&&p!=null&&!r.hasOwnProperty(g)&&Hd(e,t,g,null,r,p);for(u in r)if(p=r[u],m=n[u],r.hasOwnProperty(u)&&p!==m&&(p!=null||m!=null))switch(u){case`children`:case`dangerouslySetInnerHTML`:if(p!=null)throw Error(i(137,t));break;default:Hd(e,t,u,p,r,m)}return;default:if(Jt(t)){for(var _ in n)p=n[_],n.hasOwnProperty(_)&&p!==void 0&&!r.hasOwnProperty(_)&&Ud(e,t,_,void 0,r,p);for(d in r)p=r[d],m=n[d],!r.hasOwnProperty(d)||p===m||p===void 0&&m===void 0||Ud(e,t,d,p,r,m);return}}for(var v in n)p=n[v],n.hasOwnProperty(v)&&p!=null&&!r.hasOwnProperty(v)&&Hd(e,t,v,null,r,p);for(f in r)p=r[f],m=n[f],!r.hasOwnProperty(f)||p===m||p==null&&m==null||Hd(e,t,f,p,r,m)}function Kd(e){switch(e){case`css`:case`script`:case`font`:case`img`:case`image`:case`input`:case`link`:return!0;default:return!1}}function qd(){if(typeof performance.getEntriesByType==`function`){for(var e=0,t=0,n=performance.getEntriesByType(`resource`),r=0;r<n.length;r++){var i=n[r],a=i.transferSize,o=i.initiatorType,s=i.duration;if(a&&s&&Kd(o)){for(o=0,s=i.responseEnd,r+=1;r<n.length;r++){var c=n[r],l=c.startTime;if(l>s)break;var u=c.transferSize,d=c.initiatorType;u&&Kd(d)&&(c=c.responseEnd,o+=u*(c<s?1:(s-l)/(c-l)))}if(--r,t+=8*(a+o)/(i.duration/1e3),e++,10<e)break}}if(0<e)return t/e/1e6}return navigator.connection&&(e=navigator.connection.downlink,typeof e==`number`)?e:5}var Jd=null,Yd=null;function Xd(e){return e.nodeType===9?e:e.ownerDocument}function Zd(e){switch(e){case`http://www.w3.org/2000/svg`:return 1;case`http://www.w3.org/1998/Math/MathML`:return 2;default:return 0}}function Qd(e,t){if(e===0)switch(t){case`svg`:return 1;case`math`:return 2;default:return 0}return e===1&&t===`foreignObject`?0:e}function $d(e,t){return e===`textarea`||e===`noscript`||typeof t.children==`string`||typeof t.children==`number`||typeof t.children==`bigint`||typeof t.dangerouslySetInnerHTML==`object`&&t.dangerouslySetInnerHTML!==null&&t.dangerouslySetInnerHTML.__html!=null}var ef=null;function tf(){var e=window.event;return e&&e.type===`popstate`?e===ef?!1:(ef=e,!0):(ef=null,!1)}var nf=typeof setTimeout==`function`?setTimeout:void 0,rf=typeof clearTimeout==`function`?clearTimeout:void 0,af=typeof Promise==`function`?Promise:void 0,of=typeof queueMicrotask==`function`?queueMicrotask:af===void 0?nf:function(e){return af.resolve(null).then(e).catch(sf)};function sf(e){setTimeout(function(){throw e})}function cf(e){return e===`head`}function lf(e,t){var n=t,r=0;do{var i=n.nextSibling;if(e.removeChild(n),i&&i.nodeType===8)if(n=i.data,n===`/$`||n===`/&`){if(r===0){e.removeChild(i),Hp(t);return}r--}else if(n===`$`||n===`$?`||n===`$~`||n===`$!`||n===`&`)r++;else if(n===`html`)Cf(e.ownerDocument.documentElement);else if(n===`head`){n=e.ownerDocument.head,Cf(n);for(var a=n.firstChild;a;){var o=a.nextSibling,s=a.nodeName;a[ft]||s===`SCRIPT`||s===`STYLE`||s===`LINK`&&a.rel.toLowerCase()===`stylesheet`||n.removeChild(a),a=o}}else n===`body`&&Cf(e.ownerDocument.body);n=i}while(n);Hp(t)}function uf(e,t){var n=e;e=0;do{var r=n.nextSibling;if(n.nodeType===1?t?(n._stashedDisplay=n.style.display,n.style.display=`none`):(n.style.display=n._stashedDisplay||``,n.getAttribute(`style`)===``&&n.removeAttribute(`style`)):n.nodeType===3&&(t?(n._stashedText=n.nodeValue,n.nodeValue=``):n.nodeValue=n._stashedText||``),r&&r.nodeType===8)if(n=r.data,n===`/$`){if(e===0)break;e--}else n!==`$`&&n!==`$?`&&n!==`$~`&&n!==`$!`||e++;n=r}while(n)}function df(e){var t=e.firstChild;for(t&&t.nodeType===10&&(t=t.nextSibling);t;){var n=t;switch(t=t.nextSibling,n.nodeName){case`HTML`:case`HEAD`:case`BODY`:df(n),pt(n);continue;case`SCRIPT`:case`STYLE`:continue;case`LINK`:if(n.rel.toLowerCase()===`stylesheet`)continue}e.removeChild(n)}}function ff(e,t,n,r){for(;e.nodeType===1;){var i=n;if(e.nodeName.toLowerCase()!==t.toLowerCase()){if(!r&&(e.nodeName!==`INPUT`||e.type!==`hidden`))break}else if(!r)if(t===`input`&&e.type===`hidden`){var a=i.name==null?null:``+i.name;if(i.type===`hidden`&&e.getAttribute(`name`)===a)return e}else return e;else if(!e[ft])switch(t){case`meta`:if(!e.hasAttribute(`itemprop`))break;return e;case`link`:if(a=e.getAttribute(`rel`),a===`stylesheet`&&e.hasAttribute(`data-precedence`)||a!==i.rel||e.getAttribute(`href`)!==(i.href==null||i.href===``?null:i.href)||e.getAttribute(`crossorigin`)!==(i.crossOrigin==null?null:i.crossOrigin)||e.getAttribute(`title`)!==(i.title==null?null:i.title))break;return e;case`style`:if(e.hasAttribute(`data-precedence`))break;return e;case`script`:if(a=e.getAttribute(`src`),(a!==(i.src==null?null:i.src)||e.getAttribute(`type`)!==(i.type==null?null:i.type)||e.getAttribute(`crossorigin`)!==(i.crossOrigin==null?null:i.crossOrigin))&&a&&e.hasAttribute(`async`)&&!e.hasAttribute(`itemprop`))break;return e;default:return e}if(e=vf(e.nextSibling),e===null)break}return null}function pf(e,t,n){if(t===``)return null;for(;e.nodeType!==3;)if((e.nodeType!==1||e.nodeName!==`INPUT`||e.type!==`hidden`)&&!n||(e=vf(e.nextSibling),e===null))return null;return e}function mf(e,t){for(;e.nodeType!==8;)if((e.nodeType!==1||e.nodeName!==`INPUT`||e.type!==`hidden`)&&!t||(e=vf(e.nextSibling),e===null))return null;return e}function hf(e){return e.data===`$?`||e.data===`$~`}function gf(e){return e.data===`$!`||e.data===`$?`&&e.ownerDocument.readyState!==`loading`}function _f(e,t){var n=e.ownerDocument;if(e.data===`$~`)e._reactRetry=t;else if(e.data!==`$?`||n.readyState!==`loading`)t();else{var r=function(){t(),n.removeEventListener(`DOMContentLoaded`,r)};n.addEventListener(`DOMContentLoaded`,r),e._reactRetry=r}}function vf(e){for(;e!=null;e=e.nextSibling){var t=e.nodeType;if(t===1||t===3)break;if(t===8){if(t=e.data,t===`$`||t===`$!`||t===`$?`||t===`$~`||t===`&`||t===`F!`||t===`F`)break;if(t===`/$`||t===`/&`)return null}}return e}var yf=null;function bf(e){e=e.nextSibling;for(var t=0;e;){if(e.nodeType===8){var n=e.data;if(n===`/$`||n===`/&`){if(t===0)return vf(e.nextSibling);t--}else n!==`$`&&n!==`$!`&&n!==`$?`&&n!==`$~`&&n!==`&`||t++}e=e.nextSibling}return null}function xf(e){e=e.previousSibling;for(var t=0;e;){if(e.nodeType===8){var n=e.data;if(n===`$`||n===`$!`||n===`$?`||n===`$~`||n===`&`){if(t===0)return e;t--}else n!==`/$`&&n!==`/&`||t++}e=e.previousSibling}return null}function Sf(e,t,n){switch(t=Xd(n),e){case`html`:if(e=t.documentElement,!e)throw Error(i(452));return e;case`head`:if(e=t.head,!e)throw Error(i(453));return e;case`body`:if(e=t.body,!e)throw Error(i(454));return e;default:throw Error(i(451))}}function Cf(e){for(var t=e.attributes;t.length;)e.removeAttributeNode(t[0]);pt(e)}var wf=new Map,Tf=new Set;function Ef(e){return typeof e.getRootNode==`function`?e.getRootNode():e.nodeType===9?e:e.ownerDocument}var Df=I.d;I.d={f:Of,r:kf,D:Mf,C:Nf,L:Pf,m:Ff,X:Lf,S:If,M:Rf};function Of(){var e=Df.f(),t=Ou();return e||t}function kf(e){var t=ht(e);t!==null&&t.tag===5&&t.type===`form`?Ds(t):Df.r(e)}var Af=typeof document>`u`?null:document;function jf(e,t,n){var r=Af;if(r&&typeof t==`string`&&t){var i=Lt(t);i=`link[rel="`+e+`"][href="`+i+`"]`,typeof n==`string`&&(i+=`[crossorigin="`+n+`"]`),Tf.has(i)||(Tf.add(i),e={rel:e,crossOrigin:n,href:t},r.querySelector(i)===null&&(t=r.createElement(`link`),Wd(t,`link`,e),vt(t),r.head.appendChild(t)))}}function Mf(e){Df.D(e),jf(`dns-prefetch`,e,null)}function Nf(e,t){Df.C(e,t),jf(`preconnect`,e,t)}function Pf(e,t,n){Df.L(e,t,n);var r=Af;if(r&&e&&t){var i=`link[rel="preload"][as="`+Lt(t)+`"]`;t===`image`&&n&&n.imageSrcSet?(i+=`[imagesrcset="`+Lt(n.imageSrcSet)+`"]`,typeof n.imageSizes==`string`&&(i+=`[imagesizes="`+Lt(n.imageSizes)+`"]`)):i+=`[href="`+Lt(e)+`"]`;var a=i;switch(t){case`style`:a=Bf(e);break;case`script`:a=Wf(e)}wf.has(a)||(e=p({rel:`preload`,href:t===`image`&&n&&n.imageSrcSet?void 0:e,as:t},n),wf.set(a,e),r.querySelector(i)!==null||t===`style`&&r.querySelector(Vf(a))||t===`script`&&r.querySelector(Gf(a))||(t=r.createElement(`link`),Wd(t,`link`,e),vt(t),r.head.appendChild(t)))}}function Ff(e,t){Df.m(e,t);var n=Af;if(n&&e){var r=t&&typeof t.as==`string`?t.as:`script`,i=`link[rel="modulepreload"][as="`+Lt(r)+`"][href="`+Lt(e)+`"]`,a=i;switch(r){case`audioworklet`:case`paintworklet`:case`serviceworker`:case`sharedworker`:case`worker`:case`script`:a=Wf(e)}if(!wf.has(a)&&(e=p({rel:`modulepreload`,href:e},t),wf.set(a,e),n.querySelector(i)===null)){switch(r){case`audioworklet`:case`paintworklet`:case`serviceworker`:case`sharedworker`:case`worker`:case`script`:if(n.querySelector(Gf(a)))return}r=n.createElement(`link`),Wd(r,`link`,e),vt(r),n.head.appendChild(r)}}}function If(e,t,n){Df.S(e,t,n);var r=Af;if(r&&e){var i=_t(r).hoistableStyles,a=Bf(e);t=t||`default`;var o=i.get(a);if(!o){var s={loading:0,preload:null};if(o=r.querySelector(Vf(a)))s.loading=5;else{e=p({rel:`stylesheet`,href:e,"data-precedence":t},n),(n=wf.get(a))&&Jf(e,n);var c=o=r.createElement(`link`);vt(c),Wd(c,`link`,e),c._p=new Promise(function(e,t){c.onload=e,c.onerror=t}),c.addEventListener(`load`,function(){s.loading|=1}),c.addEventListener(`error`,function(){s.loading|=2}),s.loading|=4,qf(o,t,r)}o={type:`stylesheet`,instance:o,count:1,state:s},i.set(a,o)}}}function Lf(e,t){Df.X(e,t);var n=Af;if(n&&e){var r=_t(n).hoistableScripts,i=Wf(e),a=r.get(i);a||(a=n.querySelector(Gf(i)),a||(e=p({src:e,async:!0},t),(t=wf.get(i))&&Yf(e,t),a=n.createElement(`script`),vt(a),Wd(a,`link`,e),n.head.appendChild(a)),a={type:`script`,instance:a,count:1,state:null},r.set(i,a))}}function Rf(e,t){Df.M(e,t);var n=Af;if(n&&e){var r=_t(n).hoistableScripts,i=Wf(e),a=r.get(i);a||(a=n.querySelector(Gf(i)),a||(e=p({src:e,async:!0,type:`module`},t),(t=wf.get(i))&&Yf(e,t),a=n.createElement(`script`),vt(a),Wd(a,`link`,e),n.head.appendChild(a)),a={type:`script`,instance:a,count:1,state:null},r.set(i,a))}}function zf(e,t,n,r){var a=(a=oe.current)?Ef(a):null;if(!a)throw Error(i(446));switch(e){case`meta`:case`title`:return null;case`style`:return typeof n.precedence==`string`&&typeof n.href==`string`?(t=Bf(n.href),n=_t(a).hoistableStyles,r=n.get(t),r||(r={type:`style`,instance:null,count:0,state:null},n.set(t,r)),r):{type:`void`,instance:null,count:0,state:null};case`link`:if(n.rel===`stylesheet`&&typeof n.href==`string`&&typeof n.precedence==`string`){e=Bf(n.href);var o=_t(a).hoistableStyles,s=o.get(e);if(s||(a=a.ownerDocument||a,s={type:`stylesheet`,instance:null,count:0,state:{loading:0,preload:null}},o.set(e,s),(o=a.querySelector(Vf(e)))&&!o._p&&(s.instance=o,s.state.loading=5),wf.has(e)||(n={rel:`preload`,as:`style`,href:n.href,crossOrigin:n.crossOrigin,integrity:n.integrity,media:n.media,hrefLang:n.hrefLang,referrerPolicy:n.referrerPolicy},wf.set(e,n),o||Uf(a,e,n,s.state))),t&&r===null)throw Error(i(528,``));return s}if(t&&r!==null)throw Error(i(529,``));return null;case`script`:return t=n.async,n=n.src,typeof n==`string`&&t&&typeof t!=`function`&&typeof t!=`symbol`?(t=Wf(n),n=_t(a).hoistableScripts,r=n.get(t),r||(r={type:`script`,instance:null,count:0,state:null},n.set(t,r)),r):{type:`void`,instance:null,count:0,state:null};default:throw Error(i(444,e))}}function Bf(e){return`href="`+Lt(e)+`"`}function Vf(e){return`link[rel="stylesheet"][`+e+`]`}function Hf(e){return p({},e,{"data-precedence":e.precedence,precedence:null})}function Uf(e,t,n,r){e.querySelector(`link[rel="preload"][as="style"][`+t+`]`)?r.loading=1:(t=e.createElement(`link`),r.preload=t,t.addEventListener(`load`,function(){return r.loading|=1}),t.addEventListener(`error`,function(){return r.loading|=2}),Wd(t,`link`,n),vt(t),e.head.appendChild(t))}function Wf(e){return`[src="`+Lt(e)+`"]`}function Gf(e){return`script[async]`+e}function Kf(e,t,n){if(t.count++,t.instance===null)switch(t.type){case`style`:var r=e.querySelector(`style[data-href~="`+Lt(n.href)+`"]`);if(r)return t.instance=r,vt(r),r;var a=p({},n,{"data-href":n.href,"data-precedence":n.precedence,href:null,precedence:null});return r=(e.ownerDocument||e).createElement(`style`),vt(r),Wd(r,`style`,a),qf(r,n.precedence,e),t.instance=r;case`stylesheet`:a=Bf(n.href);var o=e.querySelector(Vf(a));if(o)return t.state.loading|=4,t.instance=o,vt(o),o;r=Hf(n),(a=wf.get(a))&&Jf(r,a),o=(e.ownerDocument||e).createElement(`link`),vt(o);var s=o;return s._p=new Promise(function(e,t){s.onload=e,s.onerror=t}),Wd(o,`link`,r),t.state.loading|=4,qf(o,n.precedence,e),t.instance=o;case`script`:return o=Wf(n.src),(a=e.querySelector(Gf(o)))?(t.instance=a,vt(a),a):(r=n,(a=wf.get(o))&&(r=p({},n),Yf(r,a)),e=e.ownerDocument||e,a=e.createElement(`script`),vt(a),Wd(a,`link`,r),e.head.appendChild(a),t.instance=a);case`void`:return null;default:throw Error(i(443,t.type))}else t.type===`stylesheet`&&!(t.state.loading&4)&&(r=t.instance,t.state.loading|=4,qf(r,n.precedence,e));return t.instance}function qf(e,t,n){for(var r=n.querySelectorAll(`link[rel="stylesheet"][data-precedence],style[data-precedence]`),i=r.length?r[r.length-1]:null,a=i,o=0;o<r.length;o++){var s=r[o];if(s.dataset.precedence===t)a=s;else if(a!==i)break}a?a.parentNode.insertBefore(e,a.nextSibling):(t=n.nodeType===9?n.head:n,t.insertBefore(e,t.firstChild))}function Jf(e,t){e.crossOrigin??(e.crossOrigin=t.crossOrigin),e.referrerPolicy??(e.referrerPolicy=t.referrerPolicy),e.title??(e.title=t.title)}function Yf(e,t){e.crossOrigin??(e.crossOrigin=t.crossOrigin),e.referrerPolicy??(e.referrerPolicy=t.referrerPolicy),e.integrity??(e.integrity=t.integrity)}var Xf=null;function Zf(e,t,n){if(Xf===null){var r=new Map,i=Xf=new Map;i.set(n,r)}else i=Xf,r=i.get(n),r||(r=new Map,i.set(n,r));if(r.has(e))return r;for(r.set(e,null),n=n.getElementsByTagName(e),i=0;i<n.length;i++){var a=n[i];if(!(a[ft]||a[at]||e===`link`&&a.getAttribute(`rel`)===`stylesheet`)&&a.namespaceURI!==`http://www.w3.org/2000/svg`){var o=a.getAttribute(t)||``;o=e+o;var s=r.get(o);s?s.push(a):r.set(o,[a])}}return r}function Qf(e,t,n){e=e.ownerDocument||e,e.head.insertBefore(n,t===`title`?e.querySelector(`head > title`):null)}function $f(e,t,n){if(n===1||t.itemProp!=null)return!1;switch(e){case`meta`:case`title`:return!0;case`style`:if(typeof t.precedence!=`string`||typeof t.href!=`string`||t.href===``)break;return!0;case`link`:if(typeof t.rel!=`string`||typeof t.href!=`string`||t.href===``||t.onLoad||t.onError)break;switch(t.rel){case`stylesheet`:return e=t.disabled,typeof t.precedence==`string`&&e==null;default:return!0}case`script`:if(t.async&&typeof t.async!=`function`&&typeof t.async!=`symbol`&&!t.onLoad&&!t.onError&&t.src&&typeof t.src==`string`)return!0}return!1}function ep(e){return!(e.type===`stylesheet`&&!(e.state.loading&3))}function tp(e,t,n,r){if(n.type===`stylesheet`&&(typeof r.media!=`string`||!1!==matchMedia(r.media).matches)&&!(n.state.loading&4)){if(n.instance===null){var i=Bf(r.href),a=t.querySelector(Vf(i));if(a){t=a._p,typeof t==`object`&&t&&typeof t.then==`function`&&(e.count++,e=ip.bind(e),t.then(e,e)),n.state.loading|=4,n.instance=a,vt(a);return}a=t.ownerDocument||t,r=Hf(r),(i=wf.get(i))&&Jf(r,i),a=a.createElement(`link`),vt(a);var o=a;o._p=new Promise(function(e,t){o.onload=e,o.onerror=t}),Wd(a,`link`,r),n.instance=a}e.stylesheets===null&&(e.stylesheets=new Map),e.stylesheets.set(n,t),(t=n.state.preload)&&!(n.state.loading&3)&&(e.count++,n=ip.bind(e),t.addEventListener(`load`,n),t.addEventListener(`error`,n))}}var np=0;function rp(e,t){return e.stylesheets&&e.count===0&&op(e,e.stylesheets),0<e.count||0<e.imgCount?function(n){var r=setTimeout(function(){if(e.stylesheets&&op(e,e.stylesheets),e.unsuspend){var t=e.unsuspend;e.unsuspend=null,t()}},6e4+t);0<e.imgBytes&&np===0&&(np=62500*qd());var i=setTimeout(function(){if(e.waitingForImages=!1,e.count===0&&(e.stylesheets&&op(e,e.stylesheets),e.unsuspend)){var t=e.unsuspend;e.unsuspend=null,t()}},(e.imgBytes>np?50:800)+t);return e.unsuspend=n,function(){e.unsuspend=null,clearTimeout(r),clearTimeout(i)}}:null}function ip(){if(this.count--,this.count===0&&(this.imgCount===0||!this.waitingForImages)){if(this.stylesheets)op(this,this.stylesheets);else if(this.unsuspend){var e=this.unsuspend;this.unsuspend=null,e()}}}var ap=null;function op(e,t){e.stylesheets=null,e.unsuspend!==null&&(e.count++,ap=new Map,t.forEach(sp,e),ap=null,ip.call(e))}function sp(e,t){if(!(t.state.loading&4)){var n=ap.get(e);if(n)var r=n.get(null);else{n=new Map,ap.set(e,n);for(var i=e.querySelectorAll(`link[data-precedence],style[data-precedence]`),a=0;a<i.length;a++){var o=i[a];(o.nodeName===`LINK`||o.getAttribute(`media`)!==`not all`)&&(n.set(o.dataset.precedence,o),r=o)}r&&n.set(null,r)}i=t.instance,o=i.getAttribute(`data-precedence`),a=n.get(o)||r,a===r&&n.set(null,i),n.set(o,i),this.count++,r=ip.bind(this),i.addEventListener(`load`,r),i.addEventListener(`error`,r),a?a.parentNode.insertBefore(i,a.nextSibling):(e=e.nodeType===9?e.head:e,e.insertBefore(i,e.firstChild)),t.state.loading|=4}}var cp={$$typeof:C,Provider:null,Consumer:null,_currentValue:L,_currentValue2:L,_threadCount:0};function W(e,t,n,r,i,a,o,s,c){this.tag=1,this.containerInfo=e,this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.next=this.pendingContext=this.context=this.cancelPendingCommit=null,this.callbackPriority=0,this.expirationTimes=Je(-1),this.entangledLanes=this.shellSuspendCounter=this.errorRecoveryDisabledLanes=this.expiredLanes=this.warmLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=Je(0),this.hiddenUpdates=Je(null),this.identifierPrefix=r,this.onUncaughtError=i,this.onCaughtError=a,this.onRecoverableError=o,this.pooledCache=null,this.pooledCacheLanes=0,this.formState=c,this.incompleteTransitions=new Map}function lp(e,t,n,r,i,a,o,s,c,l,u,d){return e=new W(e,t,n,o,c,l,u,d,s),t=1,!0===a&&(t|=24),a=si(3,null,null,t),e.current=a,a.stateNode=e,t=ca(),t.refCount++,e.pooledCache=t,t.refCount++,a.memoizedState={element:r,isDehydrated:n,cache:t},Va(a),e}function up(e){return e?(e=ai,e):ai}function dp(e,t,n,r,i,a){i=up(i),r.context===null?r.context=i:r.pendingContext=i,r=Ua(t),r.payload={element:n},a=a===void 0?null:a,a!==null&&(r.callback=a),n=Wa(e,r,t),n!==null&&(Cu(n,e,t),Ga(n,e,t))}function fp(e,t){if(e=e.memoizedState,e!==null&&e.dehydrated!==null){var n=e.retryLane;e.retryLane=n!==0&&n<t?n:t}}function pp(e,t){fp(e,t),(e=e.alternate)&&fp(e,t)}function mp(e){if(e.tag===13||e.tag===31){var t=ni(e,67108864);t!==null&&Cu(t,e,67108864),pp(e,67108864)}}function hp(e){if(e.tag===13||e.tag===31){var t=xu();t=et(t);var n=ni(e,t);n!==null&&Cu(n,e,t),pp(e,t)}}var gp=!0;function _p(e,t,n,r){var i=F.T;F.T=null;var a=I.p;try{I.p=2,yp(e,t,n,r)}finally{I.p=a,F.T=i}}function vp(e,t,n,r){var i=F.T;F.T=null;var a=I.p;try{I.p=8,yp(e,t,n,r)}finally{I.p=a,F.T=i}}function yp(e,t,n,r){if(gp){var i=bp(r);if(i===null)Nd(e,t,r,xp,n),Mp(e,r);else if(Pp(i,e,t,n,r))r.stopPropagation();else if(Mp(e,r),t&4&&-1<jp.indexOf(e)){for(;i!==null;){var a=ht(i);if(a!==null)switch(a.tag){case 3:if(a=a.stateNode,a.current.memoizedState.isDehydrated){var o=Ue(a.pendingLanes);if(o!==0){var s=a;for(s.pendingLanes|=2,s.entangledLanes|=2;o;){var c=1<<31-Ie(o);s.entanglements[1]|=c,o&=~c}dd(a),!(Hl&6)&&(lu=we()+500,fd(0,!1))}}break;case 31:case 13:s=ni(a,2),s!==null&&Cu(s,a,2),Ou(),pp(a,2)}if(a=bp(r),a===null&&Nd(e,t,r,xp,n),a===i)break;i=a}i!==null&&r.stopPropagation()}else Nd(e,t,r,null,n)}}function bp(e){return e=en(e),Sp(e)}var xp=null;function Sp(e){if(xp=null,e=mt(e),e!==null){var t=o(e);if(t===null)e=null;else{var n=t.tag;if(n===13){if(e=s(t),e!==null)return e;e=null}else if(n===31){if(e=c(t),e!==null)return e;e=null}else if(n===3){if(t.stateNode.current.memoizedState.isDehydrated)return t.tag===3?t.stateNode.containerInfo:null;e=null}else t!==e&&(e=null)}}return xp=e,null}function Cp(e){switch(e){case`beforetoggle`: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`toggle`: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 2;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`touchmove`:case`wheel`:case`mouseenter`:case`mouseleave`:case`pointerenter`:case`pointerleave`:return 8;case`message`:switch(Te()){case Ee:return 2;case De:return 8;case Oe:case ke:return 32;case Ae:return 268435456;default:return 32}default:return 32}}var wp=!1,Tp=null,Ep=null,Dp=null,Op=new Map,kp=new Map,Ap=[],jp=`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`.split(` `);function Mp(e,t){switch(e){case`focusin`:case`focusout`:Tp=null;break;case`dragenter`:case`dragleave`:Ep=null;break;case`mouseover`:case`mouseout`:Dp=null;break;case`pointerover`:case`pointerout`:Op.delete(t.pointerId);break;case`gotpointercapture`:case`lostpointercapture`:kp.delete(t.pointerId)}}function Np(e,t,n,r,i,a){return e===null||e.nativeEvent!==a?(e={blockedOn:t,domEventName:n,eventSystemFlags:r,nativeEvent:a,targetContainers:[i]},t!==null&&(t=ht(t),t!==null&&mp(t)),e):(e.eventSystemFlags|=r,t=e.targetContainers,i!==null&&t.indexOf(i)===-1&&t.push(i),e)}function Pp(e,t,n,r,i){switch(t){case`focusin`:return Tp=Np(Tp,e,t,n,r,i),!0;case`dragenter`:return Ep=Np(Ep,e,t,n,r,i),!0;case`mouseover`:return Dp=Np(Dp,e,t,n,r,i),!0;case`pointerover`:var a=i.pointerId;return Op.set(a,Np(Op.get(a)||null,e,t,n,r,i)),!0;case`gotpointercapture`:return a=i.pointerId,kp.set(a,Np(kp.get(a)||null,e,t,n,r,i)),!0}return!1}function Fp(e){var t=mt(e.target);if(t!==null){var n=o(t);if(n!==null){if(t=n.tag,t===13){if(t=s(n),t!==null){e.blockedOn=t,rt(e.priority,function(){hp(n)});return}}else if(t===31){if(t=c(n),t!==null){e.blockedOn=t,rt(e.priority,function(){hp(n)});return}}else if(t===3&&n.stateNode.current.memoizedState.isDehydrated){e.blockedOn=n.tag===3?n.stateNode.containerInfo:null;return}}}e.blockedOn=null}function Ip(e){if(e.blockedOn!==null)return!1;for(var t=e.targetContainers;0<t.length;){var n=bp(e.nativeEvent);if(n===null){n=e.nativeEvent;var r=new n.constructor(n.type,n);$t=r,n.target.dispatchEvent(r),$t=null}else return t=ht(n),t!==null&&mp(t),e.blockedOn=n,!1;t.shift()}return!0}function Lp(e,t,n){Ip(e)&&n.delete(t)}function Rp(){wp=!1,Tp!==null&&Ip(Tp)&&(Tp=null),Ep!==null&&Ip(Ep)&&(Ep=null),Dp!==null&&Ip(Dp)&&(Dp=null),Op.forEach(Lp),kp.forEach(Lp)}function zp(e,n){e.blockedOn===n&&(e.blockedOn=null,wp||(wp=!0,t.unstable_scheduleCallback(t.unstable_NormalPriority,Rp)))}var Bp=null;function Vp(e){Bp!==e&&(Bp=e,t.unstable_scheduleCallback(t.unstable_NormalPriority,function(){Bp===e&&(Bp=null);for(var t=0;t<e.length;t+=3){var n=e[t],r=e[t+1],i=e[t+2];if(typeof r!=`function`){if(Sp(r||n)===null)continue;break}var a=ht(n);a!==null&&(e.splice(t,3),t-=3,Ts(a,{pending:!0,data:i,method:n.method,action:r},r,i))}}))}function Hp(e){function t(t){return zp(t,e)}Tp!==null&&zp(Tp,e),Ep!==null&&zp(Ep,e),Dp!==null&&zp(Dp,e),Op.forEach(t),kp.forEach(t);for(var n=0;n<Ap.length;n++){var r=Ap[n];r.blockedOn===e&&(r.blockedOn=null)}for(;0<Ap.length&&(n=Ap[0],n.blockedOn===null);)Fp(n),n.blockedOn===null&&Ap.shift();if(n=(e.ownerDocument||e).$$reactFormReplay,n!=null)for(r=0;r<n.length;r+=3){var i=n[r],a=n[r+1],o=i[ot]||null;if(typeof a==`function`)o||Vp(n);else if(o){var s=null;if(a&&a.hasAttribute(`formAction`)){if(i=a,o=a[ot]||null)s=o.formAction;else if(Sp(i)!==null)continue}else s=o.action;typeof s==`function`?n[r+1]=s:(n.splice(r,3),r-=3),Vp(n)}}}function Up(){function e(e){e.canIntercept&&e.info===`react-transition`&&e.intercept({handler:function(){return new Promise(function(e){return i=e})},focusReset:`manual`,scroll:`manual`})}function t(){i!==null&&(i(),i=null),r||setTimeout(n,20)}function n(){if(!r&&!navigation.transition){var e=navigation.currentEntry;e&&e.url!=null&&navigation.navigate(e.url,{state:e.getState(),info:`react-transition`,history:`replace`})}}if(typeof navigation==`object`){var r=!1,i=null;return navigation.addEventListener(`navigate`,e),navigation.addEventListener(`navigatesuccess`,t),navigation.addEventListener(`navigateerror`,t),setTimeout(n,100),function(){r=!0,navigation.removeEventListener(`navigate`,e),navigation.removeEventListener(`navigatesuccess`,t),navigation.removeEventListener(`navigateerror`,t),i!==null&&(i(),i=null)}}}function Wp(e){this._internalRoot=e}Gp.prototype.render=Wp.prototype.render=function(e){var t=this._internalRoot;if(t===null)throw Error(i(409));var n=t.current;dp(n,xu(),e,t,null,null)},Gp.prototype.unmount=Wp.prototype.unmount=function(){var e=this._internalRoot;if(e!==null){this._internalRoot=null;var t=e.containerInfo;dp(e.current,2,null,e,null,null),Ou(),t[st]=null}};function Gp(e){this._internalRoot=e}Gp.prototype.unstable_scheduleHydration=function(e){if(e){var t=nt();e={blockedOn:null,target:e,priority:t};for(var n=0;n<Ap.length&&t!==0&&t<Ap[n].priority;n++);Ap.splice(n,0,e),n===0&&Fp(e)}};var Kp=n.version;if(Kp!==`19.2.7`)throw Error(i(527,Kp,`19.2.7`));I.findDOMNode=function(e){var t=e._reactInternals;if(t===void 0)throw typeof e.render==`function`?Error(i(188)):(e=Object.keys(e).join(`,`),Error(i(268,e)));return e=u(t),e=e===null?null:d(e),e=e===null?null:e.stateNode,e};var qp={bundleType:0,version:`19.2.7`,rendererPackageName:`react-dom`,currentDispatcherRef:F,reconcilerVersion:`19.2.7`};if(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<`u`){var Jp=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!Jp.isDisabled&&Jp.supportsFiber)try{Ne=Jp.inject(qp),Pe=Jp}catch{}}e.createRoot=function(e,t){if(!a(e))throw Error(i(299));var n=!1,r=``,o=Js,s=Ys,c=Xs;return t!=null&&(!0===t.unstable_strictMode&&(n=!0),t.identifierPrefix!==void 0&&(r=t.identifierPrefix),t.onUncaughtError!==void 0&&(o=t.onUncaughtError),t.onCaughtError!==void 0&&(s=t.onCaughtError),t.onRecoverableError!==void 0&&(c=t.onRecoverableError)),t=lp(e,1,!1,null,null,n,r,null,o,s,c,Up),e[st]=t.current,jd(e),new Wp(t)}})),v=s(((e,t)=>{function n(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>`u`||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!=`function`))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(n)}catch(e){console.error(e)}}n(),t.exports=_()})),y=u(f(),1),b=v(),x=`data:image/jpeg;base64,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`,S=u(g(),1),C=`modulepreload`,w=function(e,t){return new URL(e,t).href},T={},E=function(e,t,n){let r=Promise.resolve();if(t&&t.length>0){let e=document.getElementsByTagName(`link`),i=document.querySelector(`meta[property=csp-nonce]`),a=i?.nonce||i?.getAttribute(`nonce`);function o(e){return Promise.all(e.map(e=>Promise.resolve(e).then(e=>({status:`fulfilled`,value:e}),e=>({status:`rejected`,reason:e}))))}function s(e){return import.meta.resolve?import.meta.resolve(e):new URL(e,import.meta.url).href}r=o(t.map(t=>{if(t=w(t,n),t=s(t),t in T)return;T[t]=!0;let r=t.endsWith(`.css`);for(let n=e.length-1;n>=0;n--){let i=e[n];if(i.href===t&&(!r||i.rel===`stylesheet`))return}let i=document.createElement(`link`);if(i.rel=r?`stylesheet`:C,r||(i.as=`script`),i.crossOrigin=``,i.href=t,a&&i.setAttribute(`nonce`,a),document.head.appendChild(i),r)return new Promise((e,n)=>{i.addEventListener(`load`,e),i.addEventListener(`error`,()=>n(Error(`Unable to preload CSS for ${t}`)))})}))}function i(e){let t=new Event(`vite:preloadError`,{cancelable:!0});if(t.payload=e,window.dispatchEvent(t),!t.defaultPrevented)throw e}return r.then(t=>{for(let e of t||[])e.status===`rejected`&&i(e.reason);return e().catch(i)})},D=e=>{throw TypeError(e)},O=(e,t,n)=>t.has(e)||D(`Cannot `+n),k=(e,t,n)=>(O(e,t,`read from private field`),n?n.call(e):t.get(e)),A=(e,t,n)=>t.has(e)?D(`Cannot add the same private member more than once`):t instanceof WeakSet?t.add(e):t.set(e,n),j=(e,t,n,r)=>(O(e,t,`write to private field`),r?r.call(e,n):t.set(e,n),n),M=/^(?:[a-z][a-z0-9+.-]*:|[\\/]{2})/i,N=/^[\\/]{2}/;function ee(e,t){return t+e.replace(/\\/g,`/`)}var P=`popstate`;function F(e){return typeof e==`object`&&!!e&&`pathname`in e&&`search`in e&&`hash`in e&&`state`in e&&`key`in e}function I(e={}){function t(e,t){let{pathname:n=`/`,search:r=``,hash:i=``}=ie(e.location.hash.substring(1));return!n.startsWith(`/`)&&!n.startsWith(`.`)&&(n=`/`+n),re(``,{pathname:n,search:r,hash:i},t.state&&t.state.usr||null,t.state&&t.state.key||`default`)}function n(e,t){let n=e.document.querySelector(`base`),r=``;if(n&&n.getAttribute(`href`)){let t=e.location.href,n=t.indexOf(`#`);r=n===-1?t:t.slice(0,n)}return r+`#`+(typeof t==`string`?t:z(t))}function r(e,t){R(e.pathname.charAt(0)===`/`,`relative pathnames are not supported in hash history.push(${JSON.stringify(t)})`)}return ae(t,n,r,e)}function L(e,t){if(e===!1||e==null)throw Error(t)}function R(e,t){if(!e){typeof console<`u`&&console.warn(t);try{throw Error(t)}catch{}}}function te(){return Math.random().toString(36).substring(2,10)}function ne(e,t){return{usr:e.state,key:e.key,idx:t,masked:e.mask?{pathname:e.pathname,search:e.search,hash:e.hash}:void 0}}function re(e,t,n=null,r,i){return{pathname:typeof e==`string`?e:e.pathname,search:``,hash:``,...typeof t==`string`?ie(t):t,state:n,key:t&&t.key||r||te(),mask:i}}function z({pathname:e=`/`,search:t=``,hash:n=``}){return t&&t!==`?`&&(e+=t.charAt(0)===`?`?t:`?`+t),n&&n!==`#`&&(e+=n.charAt(0)===`#`?n:`#`+n),e}function ie(e){let t={};if(e){let n=e.indexOf(`#`);n>=0&&(t.hash=e.substring(n),e=e.substring(0,n));let r=e.indexOf(`?`);r>=0&&(t.search=e.substring(r),e=e.substring(0,r)),e&&(t.pathname=e)}return t}function ae(e,t,n,r={}){let{window:i=document.defaultView,v5Compat:a=!1}=r,o=i.history,s=`POP`,c=null,l=u();l??(l=0,o.replaceState({...o.state,idx:l},``));function u(){return(o.state||{idx:null}).idx}function d(){s=`POP`;let e=u(),t=e==null?null:e-l;l=e,c&&c({action:s,location:h.location,delta:t})}function f(e,t){s=`PUSH`;let r=F(e)?e:re(h.location,e,t);n&&n(r,e),l=u()+1;let d=ne(r,l),f=h.createHref(r.mask||r);try{o.pushState(d,``,f)}catch(e){if(e instanceof DOMException&&e.name===`DataCloneError`)throw e;i.location.assign(f)}a&&c&&c({action:s,location:h.location,delta:1})}function p(e,t){s=`REPLACE`;let r=F(e)?e:re(h.location,e,t);n&&n(r,e),l=u();let i=ne(r,l),d=h.createHref(r.mask||r);o.replaceState(i,``,d),a&&c&&c({action:s,location:h.location,delta:0})}function m(e){return oe(i,e)}let h={get action(){return s},get location(){return e(i,o)},listen(e){if(c)throw Error(`A history only accepts one active listener`);return i.addEventListener(P,d),c=e,()=>{i.removeEventListener(P,d),c=null}},createHref(e){return t(i,e)},createURL:m,encodeLocation(e){let t=m(e);return{pathname:t.pathname,search:t.search,hash:t.hash}},push:f,replace:p,go(e){return o.go(e)}};return h}function oe(e,t,n=!1){let r=`http://localhost`;e&&(r=e.location.origin===`null`?e.location.href:e.location.origin),L(r,`No window.location.(origin|href) available to create URL`);let i=typeof t==`string`?t:z(t);return i=i.replace(/ $/,`%20`),!n&&N.test(i)&&(i=r+i),new URL(i,r)}var se,ce=class{constructor(e){if(A(this,se,new Map),e)for(let[t,n]of e)this.set(t,n)}get(e){if(k(this,se).has(e))return k(this,se).get(e);if(e.defaultValue!==void 0)return e.defaultValue;throw Error(`No value found for context`)}set(e,t){k(this,se).set(e,t)}};se=new WeakMap;var le=new Set([`lazy`,`caseSensitive`,`path`,`id`,`index`,`children`]);function ue(e){return le.has(e)}var de=new Set([`lazy`,`caseSensitive`,`path`,`id`,`index`,`middleware`,`children`]);function fe(e){return de.has(e)}function pe(e){return e.index===!0}function me(e,t,n=[],r={},i=!1){return e.map((e,a)=>{let o=[...n,String(a)],s=typeof e.id==`string`?e.id:o.join(`-`);if(L(e.index!==!0||!e.children,`Cannot specify children on an index route`),L(i||!r[s],`Found a route id collision on id "${s}". Route id's must be globally unique within Data Router usages`),pe(e)){let n={...e,id:s};return r[s]=he(n,t(n)),n}else{let n={...e,id:s,children:void 0};return r[s]=he(n,t(n)),e.children&&(n.children=me(e.children,t,o,r,i)),n}})}function he(e,t){return Object.assign(e,{...t,...typeof t.lazy==`object`&&t.lazy!=null?{lazy:{...e.lazy,...t.lazy}}:{}})}function ge(e,t,n=`/`){return _e(e,t,n,!1)}function _e(e,t,n,r,i){let a=Le((typeof t==`string`?ie(t):t).pathname||`/`,n);if(a==null)return null;let o=i??ye(e),s=null,c=Ie(a);for(let e=0;s==null&&e<o.length;++e)s=Me(o[e],c,r);return s}function ve(e,t){let{route:n,pathname:r,params:i}=e;return{id:n.id,pathname:r,params:i,data:t[n.id],loaderData:t[n.id],handle:n.handle}}function ye(e){let t=be(e);return Se(t),t}function be(e,t=[],n=[],r=``,i=!1){let a=(e,a,o=i,s)=>{let c={relativePath:s===void 0?e.path||``:s,caseSensitive:e.caseSensitive===!0,childrenIndex:a,route:e};if(c.relativePath.startsWith(`/`)){if(!c.relativePath.startsWith(r)&&o)return;L(c.relativePath.startsWith(r),`Absolute route path "${c.relativePath}" nested under path "${r}" is not valid. An absolute child route path must start with the combined path of all its parent routes.`),c.relativePath=c.relativePath.slice(r.length)}let l=qe([r,c.relativePath]),u=n.concat(c);e.children&&e.children.length>0&&(L(e.index!==!0,`Index routes must not have child routes. Please remove all child routes from route path "${l}".`),be(e.children,t,u,l,o)),!(e.path==null&&!e.index)&&t.push({path:l,score:Ae(l,e.index),routesMeta:u.map((e,t)=>{let[n,r]=Fe(e.relativePath,e.caseSensitive,t===u.length-1);return{...e,matcher:n,compiledParams:r}})})};return e.forEach((e,t)=>{if(e.path===``||!e.path?.includes(`?`))a(e,t);else for(let n of xe(e.path))a(e,t,!0,n)}),t}function xe(e){let t=e.split(`/`);if(t.length===0)return[];let[n,...r]=t,i=n.endsWith(`?`),a=n.replace(/\?$/,``);if(r.length===0)return i?[a,``]:[a];let o=xe(r.join(`/`)),s=[];return s.push(...o.map(e=>e===``?a:[a,e].join(`/`))),i&&s.push(...o),s.map(t=>e.startsWith(`/`)&&t===``?`/`:t)}function Se(e){e.sort((e,t)=>e.score===t.score?je(e.routesMeta.map(e=>e.childrenIndex),t.routesMeta.map(e=>e.childrenIndex)):t.score-e.score)}var Ce=/^:[\w-]+$/,we=3,Te=2,Ee=1,De=10,Oe=-2,ke=e=>e===`*`;function Ae(e,t){let n=e.split(`/`),r=n.length;return n.some(ke)&&(r+=Oe),t&&(r+=Te),n.filter(e=>!ke(e)).reduce((e,t)=>e+(Ce.test(t)?we:t===``?Ee:De),r)}function je(e,t){return e.length===t.length&&e.slice(0,-1).every((e,n)=>e===t[n])?e[e.length-1]-t[t.length-1]:0}function Me(e,t,n=!1){let{routesMeta:r}=e,i={},a=`/`,o=[];for(let e=0;e<r.length;++e){let s=r[e],c=e===r.length-1,l=a===`/`?t:t.slice(a.length)||`/`,u={path:s.relativePath,caseSensitive:s.caseSensitive,end:c},d=s.matcher&&s.compiledParams?Pe(u,l,s.matcher,s.compiledParams):Ne(u,l),f=s.route;if(!d&&c&&n&&!r[r.length-1].route.index&&(d=Ne({path:s.relativePath,caseSensitive:s.caseSensitive,end:!1},l)),!d)return null;Object.assign(i,d.params),o.push({params:i,pathname:qe([a,d.pathname]),pathnameBase:Ye(qe([a,d.pathnameBase])),route:f}),d.pathnameBase!==`/`&&(a=qe([a,d.pathnameBase]))}return o}function Ne(e,t){typeof e==`string`&&(e={path:e,caseSensitive:!1,end:!0});let[n,r]=Fe(e.path,e.caseSensitive,e.end);return Pe(e,t,n,r)}function Pe(e,t,n,r){let i=t.match(n);if(!i)return null;let a=i[0],o=a.replace(/(.)\/+$/,`$1`),s=i.slice(1);return{params:r.reduce((e,{paramName:t,isOptional:n},r)=>{if(t===`*`){let e=s[r]||``;o=a.slice(0,a.length-e.length).replace(/(.)\/+$/,`$1`)}let i=s[r];return n&&!i?e[t]=void 0:e[t]=(i||``).replace(/%2F/g,`/`),e},{}),pathname:a,pathnameBase:o,pattern:e}}function Fe(e,t=!1,n=!0){R(e===`*`||!e.endsWith(`*`)||e.endsWith(`/*`),`Route path "${e}" will be treated as if it were "${e.replace(/\*$/,`/*`)}" because the \`*\` character must always follow a \`/\` in the pattern. To get rid of this warning, please change the route path to "${e.replace(/\*$/,`/*`)}".`);let r=[],i=`^`+e.replace(/\/*\*?$/,``).replace(/^\/*/,`/`).replace(/[\\.*+^${}|()[\]]/g,`\\$&`).replace(/\/:([\w-]+)(\?)?/g,(e,t,n,i,a)=>{if(r.push({paramName:t,isOptional:n!=null}),n){let t=a.charAt(i+e.length);return t&&t!==`/`?`/([^\\/]*)`:`(?:/([^\\/]*))?`}return`/([^\\/]+)`}).replace(/\/([\w-]+)\?(\/|$)/g,`(/$1)?$2`);return e.endsWith(`*`)?(r.push({paramName:`*`}),i+=e===`*`||e===`/*`?`(.*)$`:`(?:\\/(.+)|\\/*)$`):n?i+=`\\/*$`:e!==``&&e!==`/`&&(i+=`(?:(?=\\/|$))`),[new RegExp(i,t?void 0:`i`),r]}function Ie(e){try{return e.split(`/`).map(e=>decodeURIComponent(e).replace(/\//g,`%2F`)).join(`/`)}catch(t){return R(!1,`The URL path "${e}" could not be decoded because it is a malformed URL segment. This is probably due to a bad percent encoding (${t}).`),e}}function Le(e,t){if(t===`/`)return e;if(!e.toLowerCase().startsWith(t.toLowerCase()))return null;let n=t.endsWith(`/`)?t.length-1:t.length,r=e.charAt(n);return r&&r!==`/`?null:e.slice(n)||`/`}function Re({basename:e,pathname:t}){return t===`/`?e:qe([e,t])}var ze=e=>M.test(e);function Be(e,t=`/`){let{pathname:n,search:r=``,hash:i=``}=typeof e==`string`?ie(e):e,a;return n?(n=Ke(n),a=n.startsWith(`/`)?Ve(n.substring(1),`/`):Ve(n,t)):a=t,{pathname:a,search:Xe(r),hash:Ze(i)}}function Ve(e,t){let n=Je(t).split(`/`);return e.split(`/`).forEach(e=>{e===`..`?n.length>1&&n.pop():e!==`.`&&n.push(e)}),n.length>1?n.join(`/`):`/`}function He(e,t,n,r){return`Cannot include a '${e}' character in a manually specified \`to.${t}\` field [${JSON.stringify(r)}]. Please separate it out to the \`to.${n}\` field. Alternatively you may provide the full path as a string in <Link to="..."> and the router will parse it for you.`}function Ue(e){return e.filter((e,t)=>t===0||e.route.path&&e.route.path.length>0)}function We(e){let t=Ue(e);return t.map((e,n)=>n===t.length-1?e.pathname:e.pathnameBase)}function Ge(e,t,n,r=!1){let i;typeof e==`string`?i=ie(e):(i={...e},L(!i.pathname||!i.pathname.includes(`?`),He(`?`,`pathname`,`search`,i)),L(!i.pathname||!i.pathname.includes(`#`),He(`#`,`pathname`,`hash`,i)),L(!i.search||!i.search.includes(`#`),He(`#`,`search`,`hash`,i)));let a=e===``||i.pathname===``,o=a?`/`:i.pathname,s;if(o==null)s=n;else{let e=t.length-1;if(!r&&o.startsWith(`..`)){let t=o.split(`/`);for(;t[0]===`..`;)t.shift(),--e;i.pathname=t.join(`/`)}s=e>=0?t[e]:`/`}let c=Be(i,s),l=o&&o!==`/`&&o.endsWith(`/`),u=(a||o===`.`)&&n.endsWith(`/`);return!c.pathname.endsWith(`/`)&&(l||u)&&(c.pathname+=`/`),c}var Ke=e=>e.replace(/[\\/]{2,}/g,`/`),qe=e=>Ke(e.join(`/`)),Je=e=>e.replace(/\/+$/,``),Ye=e=>Je(e).replace(/^\/*/,`/`),Xe=e=>!e||e===`?`?``:e.startsWith(`?`)?e:`?`+e,Ze=e=>!e||e===`#`?``:e.startsWith(`#`)?e:`#`+e,Qe=[`EvalError`,`RangeError`,`ReferenceError`,`SyntaxError`,`TypeError`,`URIError`],$e=class{constructor(e,t,n,r=!1){this.status=e,this.statusText=t||``,this.internal=r,n instanceof Error?(this.data=n.toString(),this.error=n):this.data=n}};function et(e){return e!=null&&typeof e.status==`number`&&typeof e.statusText==`string`&&typeof e.internal==`boolean`&&`data`in e}function tt(e){return qe(e.map(e=>e.route.path).filter(Boolean))||`/`}var nt=typeof window<`u`&&window.document!==void 0&&window.document.createElement!==void 0;function rt(e,t){let n=e;if(typeof n!=`string`||!M.test(n))return{absoluteURL:void 0,isExternal:!1,to:n};let r=n,i=!1;if(nt)try{let e=new URL(window.location.href),r=N.test(n)?new URL(ee(n,e.protocol)):new URL(n),a=Le(r.pathname,t);r.origin===e.origin&&a!=null?n=a+r.search+r.hash:i=!0}catch{R(!1,`<Link to="${n}"> contains an invalid URL which will probably break when clicked - please update to a valid URL path.`)}return{absoluteURL:r,isExternal:i,to:n}}var it=Symbol(`Uninstrumented`);function at(e,t){let n={lazy:[],"lazy.loader":[],"lazy.action":[],"lazy.middleware":[],middleware:[],loader:[],action:[]};e.forEach(e=>e({id:t.id,index:t.index,path:t.path,instrument(e){let t=Object.keys(n);for(let r of t)e[r]&&n[r].push(e[r])}}));let r={};if(typeof t.lazy==`function`&&n.lazy.length>0){let e=st(n.lazy,t.lazy,()=>void 0);e&&(r.lazy=e)}if(typeof t.lazy==`object`){let e=t.lazy;[`middleware`,`loader`,`action`].forEach(t=>{let i=e[t],a=n[`lazy.${t}`];if(typeof i==`function`&&a.length>0){let e=st(a,i,()=>void 0);e&&(r.lazy=Object.assign(r.lazy||{},{[t]:e}))}})}return[`loader`,`action`].forEach(e=>{let i=t[e];if(typeof i==`function`&&n[e].length>0){let t=i[it]??i,a=st(n[e],t,(...e)=>lt(e[0]));a&&(e===`loader`&&t.hydrate===!0&&(a.hydrate=!0),a[it]=t,r[e]=a)}}),t.middleware&&t.middleware.length>0&&n.middleware.length>0&&(r.middleware=t.middleware.map(e=>{let t=e[it]??e,r=st(n.middleware,t,(...e)=>lt(e[0]));return r?(r[it]=t,r):e})),r}function ot(e,t){let n={navigate:[],fetch:[]};if(t.forEach(e=>e({instrument(e){let t=Object.keys(e);for(let r of t)e[r]&&n[r].push(e[r])}})),n.navigate.length>0){let t=e.navigate[it]??e.navigate,r=st(n.navigate,t,(...t)=>{let[n,r]=t;return{to:typeof n==`number`||typeof n==`string`?n:n?z(n):`.`,...ut(e,r??{})}});r&&(r[it]=t,e.navigate=r)}if(n.fetch.length>0){let t=e.fetch[it]??e.fetch,r=st(n.fetch,t,(...t)=>{let[n,,r,i]=t;return{href:r??`.`,fetcherKey:n,...ut(e,i??{})}});r&&(r[it]=t,e.fetch=r)}return e}function st(e,t,n){return e.length===0?null:async(...r)=>{let i=await ct(e,n(...r),()=>t(...r),e.length-1);if(i.type===`error`)throw i.value;return i.value}}async function ct(e,t,n,r){let i=e[r],a;if(i){let o,s=async()=>(o?console.error(`You cannot call instrumented handlers more than once`):o=ct(e,t,n,r-1),a=await o,L(a,`Expected a result`),a.type===`error`&&a.value instanceof Error?{status:`error`,error:a.value}:{status:`success`,error:void 0});try{await i(s,t)}catch(e){console.error(`An instrumentation function threw an error:`,e)}o||await s(),await o}else try{a={type:`success`,value:await n()}}catch(e){a={type:`error`,value:e}}return a||{type:`error`,value:Error(`No result assigned in instrumentation chain.`)}}function lt(e){let{request:t,context:n,params:r,pattern:i}=e;return{request:dt(t),params:{...r},pattern:i,context:ft(n)}}function ut(e,t){return{currentUrl:z(e.state.location),...`formMethod`in t?{formMethod:t.formMethod}:{},...`formEncType`in t?{formEncType:t.formEncType}:{},...`formData`in t?{formData:t.formData}:{},...`body`in t?{body:t.body}:{}}}function dt(e){return{method:e.method,url:e.url,headers:{get:(...t)=>e.headers.get(...t)}}}function ft(e){if(mt(e)){let t={...e};return Object.freeze(t),t}else return{get:t=>e.get(t)}}var pt=Object.getOwnPropertyNames(Object.prototype).sort().join(`\0`);function mt(e){if(typeof e!=`object`||!e)return!1;let t=Object.getPrototypeOf(e);return t===Object.prototype||t===null||Object.getOwnPropertyNames(t).sort().join(`\0`)===pt}var ht=[`POST`,`PUT`,`PATCH`,`DELETE`],gt=new Set(ht),_t=[`GET`,...ht],vt=new Set(_t),yt=new Set([301,302,303,307,308]),bt=new Set([307,308]),xt={state:`idle`,location:void 0,matches:void 0,historyAction:void 0,formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0},St={state:`idle`,data:void 0,formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0},Ct={state:`unblocked`,proceed:void 0,reset:void 0,location:void 0},wt=e=>({hasErrorBoundary:!!e.hasErrorBoundary}),Tt=`remix-router-transitions`,Et=Symbol(`ResetLoaderData`),Dt,Ot,kt,At,jt=class{constructor(e){A(this,Dt),A(this,Ot),A(this,kt),A(this,At),j(this,Dt,e),j(this,Ot,ye(e))}get stableRoutes(){return k(this,Dt)}get activeRoutes(){return k(this,kt)??k(this,Dt)}get branches(){return k(this,At)??k(this,Ot)}get hasHMRRoutes(){return k(this,kt)!=null}setRoutes(e){j(this,Dt,e),j(this,Ot,ye(e))}setHmrRoutes(e){j(this,kt,e),j(this,At,ye(e))}commitHmrRoutes(){k(this,kt)&&(j(this,Dt,k(this,kt)),j(this,Ot,k(this,At)),j(this,kt,void 0),j(this,At,void 0))}};Dt=new WeakMap,Ot=new WeakMap,kt=new WeakMap,At=new WeakMap;function Mt(e){let t=e.window?e.window:typeof window<`u`?window:void 0,n=t!==void 0&&t.document!==void 0&&t.document.createElement!==void 0;L(e.routes.length>0,`You must provide a non-empty routes array to createRouter`);let r=e.hydrationRouteProperties||[],i=e.mapRouteProperties||wt,a=i;if(e.instrumentations){let t=e.instrumentations;a=e=>({...i(e),...at(t.map(e=>e.route).filter(Boolean),e)})}let o={},s=new jt(me(e.routes,a,void 0,o)),c=e.basename||`/`;c.startsWith(`/`)||(c=`/${c}`);let l=e.dataStrategy||Yt,u={...e.future},d=null,f=new Set,p=null,m=null,h=null,g=null,_=e.hydrationData!=null,v=_e(s.activeRoutes,e.history.location,c,!1,s.branches),y=!1,b=null,x,S;if(v==null&&!e.patchRoutesOnNavigation){let t=xn(404,{pathname:e.history.location.pathname}),{matches:n,route:r}=bn(s.activeRoutes);x=!0,S=!x,v=n,b={[r.id]:t}}else if(v&&!e.hydrationData&&nt(v,s.activeRoutes,e.history.location.pathname).active&&(v=null),!v){x=!1,S=!x,v=[];let t=nt(null,s.activeRoutes,e.history.location.pathname);t.active&&t.matches&&(y=!0,v=t.matches)}else if(v.some(e=>e.route.lazy))x=!1,S=!x;else if(!v.some(e=>Lt(e.route)))x=!0,S=!x;else{let t=e.hydrationData?e.hydrationData.loaderData:null,n=e.hydrationData?e.hydrationData.errors:null,r=v;if(n){let e=v.findIndex(e=>n[e.route.id]!==void 0);r=r.slice(0,e+1)}S=!1,x=!0,r.forEach(e=>{let r=Rt(e.route,t,n);S=S||r.renderFallback,x=x&&!r.shouldLoad})}let C,w={historyAction:e.history.action,location:e.history.location,matches:v,initialized:x,renderFallback:S,navigation:xt,restoreScrollPosition:e.hydrationData==null&&null,preventScrollReset:!1,revalidation:`idle`,loaderData:e.hydrationData&&e.hydrationData.loaderData||{},actionData:e.hydrationData&&e.hydrationData.actionData||null,errors:e.hydrationData&&e.hydrationData.errors||b,fetchers:new Map,blockers:new Map},T=`POP`,E=null,D=!1,O,k=!1,A=new Map,j=null,M=!1,N=!1,ee=new Set,P=new Map,F=0,I=-1,te=new Map,ne=new Set,z=new Map,ae=new Map,se=new Set,le=new Map,ue,de=null;function fe(){if(d=e.history.listen(({action:t,location:n,delta:r})=>{if(ue){ue(),ue=void 0;return}R(le.size===0||r!=null,"You are trying to use a blocker on a POP navigation to a location that was not created by @remix-run/router. This will fail silently in production. This can happen if you are navigating outside the router via `window.history.pushState`/`window.location.hash` instead of using router navigation APIs. This can also happen if you are using createHashRouter and the user manually changes the URL.");let i=Ye({currentLocation:w.location,nextLocation:n,historyAction:t});if(i&&r!=null){let t=new Promise(e=>{ue=e});e.history.go(r*-1),Je(i,{state:`blocked`,location:n,proceed(){Je(i,{state:`proceeding`,proceed:void 0,reset:void 0,location:n}),t.then(()=>e.history.go(r))},reset(){let e=new Map(w.blockers);e.set(i,Ct),ge({blockers:e})}}),E?.resolve(),E=null;return}return Se(t,n)}),n){Gn(t,A);let e=()=>Kn(t,A);t.addEventListener(`pagehide`,e),j=()=>t.removeEventListener(`pagehide`,e)}return w.initialized||Se(`POP`,w.location,{initialHydration:!0}),C}function pe(){d&&d(),j&&j(),f.clear(),O&&O.abort(),w.fetchers.forEach((e,t)=>Be(w.fetchers,t)),w.blockers.forEach((e,t)=>qe(t))}function he(e){if(f.add(e),p){let{newErrors:t}=p;p=null,e(w,{deletedFetchers:[],newErrors:t,viewTransitionOpts:void 0,flushSync:!1})}return()=>f.delete(e)}function ge(e,t={}){e.matches&&(e.matches=e.matches.map(e=>{let t=o[e.route.id],n=e.route;return n.element!==t.element||n.errorElement!==t.errorElement||n.hydrateFallbackElement!==t.hydrateFallbackElement?{...e,route:t}:e})),w={...w,...e};let n=[],r=[];w.fetchers.forEach((e,t)=>{e.state===`idle`&&(se.has(t)?n.push(t):r.push(t))}),se.forEach(e=>{!w.fetchers.has(e)&&!P.has(e)&&n.push(e)}),f.size===0&&(p={newErrors:e.errors??null}),[...f].forEach(r=>r(w,{deletedFetchers:n,newErrors:e.errors??null,viewTransitionOpts:t.viewTransitionOpts,flushSync:t.flushSync===!0})),n.forEach(e=>Be(w.fetchers,e)),r.forEach(e=>w.fetchers.delete(e))}function ye(t,n,{flushSync:r}={}){let i=w.actionData!=null&&w.navigation.formMethod!=null&&In(w.navigation.formMethod)&&w.navigation.state===`loading`&&t.state?._isRedirect!==!0,a;a=n.actionData?Object.keys(n.actionData).length>0?n.actionData:null:i?w.actionData:null;let o=n.loaderData?_n(w.loaderData,n.loaderData,n.matches||[],n.errors):w.loaderData,c=w.blockers;c.size>0&&(c=new Map(c),c.forEach((e,t)=>c.set(t,Ct)));let l=!M&&tt(t,n.matches||w.matches),u=D===!0||w.navigation.formMethod!=null&&In(w.navigation.formMethod)&&t.state?._isRedirect!==!0;s.commitHmrRoutes(),M||T===`POP`||(T===`PUSH`?e.history.push(t,t.state):T===`REPLACE`&&e.history.replace(t,t.state));let d;if(T===`POP`){let e=A.get(w.location.pathname);e&&e.has(t.pathname)?d={currentLocation:w.location,nextLocation:t}:A.has(t.pathname)&&(d={currentLocation:t,nextLocation:w.location})}else if(k){let e=A.get(w.location.pathname);e?e.add(t.pathname):(e=new Set([t.pathname]),A.set(w.location.pathname,e)),d={currentLocation:w.location,nextLocation:t}}ge({...n,actionData:a,loaderData:o,historyAction:T,location:t,initialized:!0,renderFallback:!1,navigation:xt,revalidation:`idle`,restoreScrollPosition:l,preventScrollReset:u,blockers:c},{viewTransitionOpts:d,flushSync:r===!0}),T=`POP`,D=!1,k=!1,M=!1,N=!1,E?.resolve(),E=null,de?.resolve(),de=null}async function be(t,n){if(E?.resolve(),E=null,typeof t==`number`){E||(E=qn());let n=E.promise;return e.history.go(t),n}let{path:r,submission:i,error:a}=Ft(!1,Pt(w.location,w.matches,c,t,n?.fromRouteId,n?.relative),n),o;n?.mask&&(o={pathname:``,search:``,hash:``,...typeof n.mask==`string`?ie(n.mask):{...w.location.mask,...n.mask}});let s=w.location,l=re(s,r,n&&n.state,void 0,o);l={...l,...e.history.encodeLocation(l)};let u=n&&n.replace!=null?n.replace:void 0,d=`PUSH`;u===!0?d=`REPLACE`:u===!1||i!=null&&In(i.formMethod)&&i.formAction===w.location.pathname+w.location.search&&(d=`REPLACE`);let f=n&&`preventScrollReset`in n?n.preventScrollReset===!0:void 0,p=(n&&n.flushSync)===!0,m=Ye({currentLocation:s,nextLocation:l,historyAction:d});if(m){Je(m,{state:`blocked`,location:l,proceed(){Je(m,{state:`proceeding`,proceed:void 0,reset:void 0,location:l}),be(t,n)},reset(){let e=new Map(w.blockers);e.set(m,Ct),ge({blockers:e})}});return}await Se(d,l,{submission:i,pendingError:a,preventScrollReset:f,replace:n&&n.replace,enableViewTransition:n&&n.viewTransition,flushSync:p,callSiteDefaultShouldRevalidate:n&&n.defaultShouldRevalidate})}function xe(){de||(de=qn()),Ne(),ge({revalidation:`loading`});let e=de.promise;return w.navigation.state===`submitting`?e:w.navigation.state===`idle`?(Se(w.historyAction,w.location,{startUninterruptedRevalidation:!0}),e):(Se(T||w.historyAction,w.navigation.location,{overrideNavigation:w.navigation,enableViewTransition:k===!0}),e)}async function Se(t,n,r){O&&O.abort(),O=null,T=t,M=(r&&r.startUninterruptedRevalidation)===!0,$e(w.location,w.matches),D=(r&&r.preventScrollReset)===!0,k=(r&&r.enableViewTransition)===!0;let i=s.activeRoutes,a=r?.initialHydration&&w.matches&&w.matches.length>0&&!y?w.matches:_e(i,n,c,!1,s.branches),o=(r&&r.flushSync)===!0;if(a&&w.initialized&&!N&&wn(w.location,n)&&!(r&&r.submission&&In(r.submission.formMethod))){ye(n,{matches:a},{flushSync:o});return}let l=nt(a,i,n.pathname);if(l.active&&l.matches&&(a=l.matches),!a){let{error:e,notFoundMatches:t,route:r}=Xe(n.pathname);ye(n,{matches:t,loaderData:{},errors:{[r.id]:e}},{flushSync:o});return}let u=r&&r.overrideNavigation?{...r.overrideNavigation,matches:a,historyAction:t}:void 0;O=new AbortController;let d=dn(e.history,n,O.signal,r&&r.submission),f=e.getContext?await e.getContext():new ce,p;if(r&&r.pendingError)p=[yn(a).route.id,{type:`error`,error:r.pendingError}];else if(r&&r.submission&&In(r.submission.formMethod)){let i=await Ce(d,n,r.submission,a,t,f,l.active,r&&r.initialHydration===!0,{replace:r.replace,flushSync:o});if(i.shortCircuited)return;if(i.pendingActionResult){let[e,t]=i.pendingActionResult;if(kn(t)&&et(t.error)&&t.error.status===404){O=null,ye(n,{matches:i.matches,loaderData:{},errors:{[e]:t.error}});return}}a=i.matches||a,p=i.pendingActionResult,u=Bn(n,a,t,r.submission),o=!1,l.active=!1,d=dn(e.history,d.url,d.signal)}let{shortCircuited:m,matches:h,loaderData:g,errors:_,workingFetchers:v}=await we(d,n,a,t,f,l.active,u,r&&r.submission,r&&r.fetcherSubmission,r&&r.replace,r&&r.initialHydration===!0,o,p,r&&r.callSiteDefaultShouldRevalidate);m||(O=null,ye(n,{matches:h||a,...vn(p),loaderData:g,errors:_,...v?{fetchers:v}:{}}))}async function Ce(t,n,i,l,u,d,f,p,m={}){if(Ne(),ge({navigation:Vn(n,l,u,i)},{flushSync:m.flushSync===!0}),f){let e=await rt(l,n.pathname,t.signal);if(e.type===`aborted`)return{shortCircuited:!0};if(e.type===`error`){if(e.partialMatches.length===0){let{matches:t,route:n}=bn(s.activeRoutes);return{matches:t,pendingActionResult:[n.id,{type:`error`,error:e.error}]}}let t=yn(e.partialMatches).route.id;return{matches:e.partialMatches,pendingActionResult:[t,{type:`error`,error:e.error}]}}else if(e.matches)l=e.matches;else{let{notFoundMatches:e,error:t,route:r}=Xe(n.pathname);return{matches:e,pendingActionResult:[r.id,{type:`error`,error:t}]}}}let h,g=Rn(l,n);if(!g.route.action&&!g.route.lazy)h={type:`error`,error:xn(405,{method:t.method,pathname:n.pathname,routeId:g.route.id})};else{let e=await je(t,n,tn(a,o,t,n,l,g,p?[]:r,d),d,null);if(h=e[g.route.id],!h){for(let t of l)if(e[t.route.id]){h=e[t.route.id];break}}if(t.signal.aborted)return{shortCircuited:!0}}if(An(h)){let n;return n=m&&m.replace!=null?m.replace:un(h.response.headers.get(`Location`),new URL(t.url),c,e.history)===w.location.pathname+w.location.search,await Ae(t,h,!0,{submission:i,replace:n}),{shortCircuited:!0}}if(kn(h)){let e=yn(l,g.route.id);return(m&&m.replace)!==!0&&(T=`PUSH`),{matches:l,pendingActionResult:[e.route.id,h,g.route.id]}}return{matches:l,pendingActionResult:[g.route.id,h]}}async function we(t,n,i,l,u,d,f,p,m,h,g,_,v,y){let b=f||Bn(n,i,l,p),x=p||m||zn(b),S=!M&&!g;if(d){if(S){let e=Te(v);ge({navigation:b,...e===void 0?{}:{actionData:e}},{flushSync:_})}let e=await rt(i,n.pathname,t.signal);if(e.type===`aborted`)return{shortCircuited:!0};if(e.type===`error`){if(e.partialMatches.length===0){let{matches:t,route:n}=bn(s.activeRoutes);return{matches:t,loaderData:{},errors:{[n.id]:e.error}}}let t=yn(e.partialMatches).route.id;return{matches:e.partialMatches,loaderData:{},errors:{[t]:e.error}}}else if(e.matches)i=e.matches;else{let{error:e,notFoundMatches:t,route:r}=Xe(n.pathname);return{matches:t,loaderData:{},errors:{[r.id]:e}}}}let C=s.activeRoutes,{dsMatches:T,revalidatingFetchers:E}=It(t,u,a,o,e.history,w,i,x,n,g?[]:r,g===!0,N,ee,se,z,ne,C,c,e.patchRoutesOnNavigation!=null,s.branches,v,y);if(I=++F,!e.dataStrategy&&!T.some(e=>e.shouldLoad)&&!T.some(e=>e.route.middleware&&e.route.middleware.length>0)&&E.length===0){let e=new Map(w.fetchers),t=We(e);return ye(n,{matches:i,loaderData:{},errors:v&&kn(v[1])?{[v[0]]:v[1].error}:null,...vn(v),...t?{fetchers:e}:{}},{flushSync:_}),{shortCircuited:!0}}if(S){let e={};if(!d){e.navigation=b;let t=Te(v);t!==void 0&&(e.actionData=t)}E.length>0&&(e.fetchers=Ee(E)),ge(e,{flushSync:_})}E.forEach(e=>{He(e.key),e.controller&&P.set(e.key,e.controller)});let D=()=>E.forEach(e=>He(e.key));O&&O.signal.addEventListener(`abort`,D);let{loaderResults:k,fetcherResults:A}=await Me(T,E,t,n,u);if(t.signal.aborted)return{shortCircuited:!0};O&&O.signal.removeEventListener(`abort`,D),E.forEach(e=>P.delete(e.key));let j=Sn(k);if(j)return await Ae(t,j.result,!0,{replace:h}),{shortCircuited:!0};if(j=Sn(A),j)return ne.add(j.key),await Ae(t,j.result,!0,{replace:h}),{shortCircuited:!0};let L=new Map(w.fetchers),{loaderData:R,errors:te}=gn(w,i,k,v,E,A,L);g&&w.errors&&(te={...w.errors,...te});let re=We(L),ie=Ge(I,L),ae=re||ie||E.length>0;return{matches:i,loaderData:R,errors:te,...ae?{workingFetchers:L}:{}}}function Te(e){if(e&&!kn(e[1]))return{[e[0]]:e[1].data};if(w.actionData)return Object.keys(w.actionData).length===0?null:w.actionData}function Ee(e){let t=new Map(w.fetchers);return e.forEach(e=>{let n=t.get(e.key),r=Hn(void 0,n?n.data:void 0);t.set(e.key,r)}),t}async function De(t,n,r,i){He(t);let a=(i&&i.flushSync)===!0,o=s.activeRoutes,l=Pt(w.location,w.matches,c,r,n,i?.relative),u=_e(o,l,c,!1,s.branches),d=nt(u,o,l);if(d.active&&d.matches&&(u=d.matches),!u){Fe(t,n,xn(404,{pathname:l}),{flushSync:a});return}let{path:f,submission:p,error:m}=Ft(!0,l,i);if(m){Fe(t,n,m,{flushSync:a});return}let h=e.getContext?await e.getContext():new ce,g=(i&&i.preventScrollReset)===!0;if(p&&In(p.formMethod)){await Oe(t,n,f,u,h,d.active,a,g,p,i&&i.defaultShouldRevalidate);return}z.set(t,{routeId:n,path:f}),await ke(t,n,f,u,h,d.active,a,g,p)}async function Oe(t,n,i,l,u,d,f,p,m,h){Ne(),z.delete(t),Pe(t,Un(m,w.fetchers.get(t)),{flushSync:f});let g=new AbortController,_=dn(e.history,i,g.signal,m);if(d){let e=await rt(l,new URL(_.url).pathname,_.signal,t);if(e.type===`aborted`)return;if(e.type===`error`){Fe(t,n,e.error,{flushSync:f});return}else if(e.matches)l=e.matches;else{Fe(t,n,xn(404,{pathname:i}),{flushSync:f});return}}let v=Rn(l,i);if(!v.route.action&&!v.route.lazy){Fe(t,n,xn(405,{method:m.formMethod,pathname:i,routeId:n}),{flushSync:f});return}P.set(t,g);let y=F,b=tn(a,o,_,i,l,v,r,u),x=await je(_,i,b,u,t),S=x[v.route.id];if(!S){for(let e of b)if(x[e.route.id]){S=x[e.route.id];break}}if(_.signal.aborted){P.get(t)===g&&P.delete(t);return}if(se.has(t)){if(An(S)||kn(S)){Pe(t,Wn(void 0));return}}else{if(An(S))if(P.delete(t),I>y){Pe(t,Wn(void 0));return}else return ne.add(t),Pe(t,Hn(m)),Ae(_,S,!1,{fetcherSubmission:m,preventScrollReset:p});if(kn(S)){Fe(t,n,S.error);return}}let C=w.navigation.location||w.location,E=dn(e.history,C,g.signal),D=s.activeRoutes,k=w.navigation.state===`idle`?w.matches:_e(D,w.navigation.location,c,!1,s.branches);L(k,`Didn't find any matches after fetcher action`);let A=++F;te.set(t,A);let{dsMatches:j,revalidatingFetchers:M}=It(E,u,a,o,e.history,w,k,m,C,r,!1,N,ee,se,z,ne,D,c,e.patchRoutesOnNavigation!=null,s.branches,[v.route.id,S],h),R=Hn(m,S.data),re=new Map(w.fetchers);re.set(t,R),M.filter(e=>e.key!==t).forEach(e=>{let t=e.key,n=re.get(t),r=Hn(void 0,n?n.data:void 0);re.set(t,r),He(t),e.controller&&P.set(t,e.controller)}),ge({fetchers:re});let ie=()=>M.forEach(e=>He(e.key));g.signal.addEventListener(`abort`,ie);let{loaderResults:ae,fetcherResults:oe}=await Me(j,M,E,C,u);if(g.signal.aborted)return;g.signal.removeEventListener(`abort`,ie),te.delete(t),P.delete(t),M.forEach(e=>P.delete(e.key));let ce=w.fetchers.has(t),le=e=>{if(!ce)return e;let n=new Map(e.fetchers);return n.set(t,Wn(S.data)),{...e,fetchers:n}},ue=Sn(ae);if(ue)return w=le(w),Ae(E,ue.result,!1,{preventScrollReset:p});if(ue=Sn(oe),ue)return ne.add(ue.key),w=le(w),Ae(E,ue.result,!1,{preventScrollReset:p});let de=new Map(w.fetchers);ce&&de.set(t,Wn(S.data));let{loaderData:fe,errors:pe}=gn(w,k,ae,void 0,M,oe,de);Ge(A,de),w.navigation.state===`loading`&&A>I?(L(T,`Expected pending action`),O&&O.abort(),ye(w.navigation.location,{matches:k,loaderData:fe,errors:pe,fetchers:de})):(ge({errors:pe,loaderData:_n(w.loaderData,fe,k,pe),fetchers:de}),N=!1)}async function ke(t,n,i,s,c,l,u,d,f){let p=w.fetchers.get(t);Pe(t,Hn(f,p?p.data:void 0),{flushSync:u});let m=new AbortController,h=dn(e.history,i,m.signal);if(l){let e=await rt(s,new URL(h.url).pathname,h.signal,t);if(e.type===`aborted`)return;if(e.type===`error`){Fe(t,n,e.error,{flushSync:u});return}else if(e.matches)s=e.matches;else{Fe(t,n,xn(404,{pathname:i}),{flushSync:u});return}}let g=Rn(s,i);P.set(t,m);let _=F,v=await je(h,i,tn(a,o,h,i,s,g,r,c),c,t),y=v[g.route.id];if(!y){for(let e of s)if(v[e.route.id]){y=v[e.route.id];break}}if(P.get(t)===m&&P.delete(t),!h.signal.aborted){if(se.has(t)){Pe(t,Wn(void 0));return}if(An(y))if(I>_){Pe(t,Wn(void 0));return}else{ne.add(t),await Ae(h,y,!1,{preventScrollReset:d});return}if(kn(y)){Fe(t,n,y.error);return}Pe(t,Wn(y.data))}}async function Ae(r,i,a,{submission:o,fetcherSubmission:s,preventScrollReset:l,replace:u}={}){a||(E?.resolve(),E=null),i.response.headers.has(`X-Remix-Revalidate`)&&(N=!0);let d=i.response.headers.get(`Location`);L(d,`Expected a Location header on the redirect Response`),d=un(d,new URL(r.url),c,e.history);let f=re(w.location,d,{_isRedirect:!0});if(n){let e=!1;if(i.response.headers.has(`X-Remix-Reload-Document`))e=!0;else if(ze(d)){let n=oe(t,d,!0);e=n.origin!==t.location.origin||Le(n.pathname,c)==null}if(e){u?t.location.replace(d):t.location.assign(d);return}}O=null;let p=u===!0||i.response.headers.has(`X-Remix-Replace`)?`REPLACE`:`PUSH`,{formMethod:m,formAction:h,formEncType:g}=w.navigation;!o&&!s&&m&&h&&g&&(o=zn(w.navigation));let _=o||s;bt.has(i.response.status)&&_&&In(_.formMethod)?await Se(p,f,{submission:{..._,formAction:d},preventScrollReset:l||D,enableViewTransition:a?k:void 0}):await Se(p,f,{overrideNavigation:Bn(f,[],p,o),fetcherSubmission:s,preventScrollReset:l||D,enableViewTransition:a?k:void 0})}async function je(e,t,n,r,i){let a,o={};try{a=await nn(l,e,t,n,i,r,!1)}catch(e){return n.filter(e=>e.shouldLoad).forEach(t=>{o[t.route.id]={type:`error`,error:e}}),o}if(e.signal.aborted)return o;if(!In(e.method))for(let e of n){if(a[e.route.id]?.type===`error`)break;!a.hasOwnProperty(e.route.id)&&!w.loaderData.hasOwnProperty(e.route.id)&&(!w.errors||!w.errors.hasOwnProperty(e.route.id))&&e.shouldCallHandler()&&(a[e.route.id]={type:`error`,result:Error(`No result returned from dataStrategy for route ${e.route.id}`)})}for(let[t,r]of Object.entries(a))if(On(r)){let i=r.result;o[t]={type:`redirect`,response:sn(i,e,t,n,c)}}else o[t]=await on(r);return o}async function Me(e,t,n,r,i){let a=je(n,r,e,i,null),o=Promise.all(t.map(async e=>{if(e.matches&&e.match&&e.request&&e.controller){let t=(await je(e.request,e.path,e.matches,i,e.key))[e.match.route.id];return{[e.key]:t}}else return Promise.resolve({[e.key]:{type:`error`,error:xn(404,{pathname:e.path})}})}));return{loaderResults:await a,fetcherResults:(await o).reduce((e,t)=>Object.assign(e,t),{})}}function Ne(){N=!0,z.forEach((e,t)=>{P.has(t)&&ee.add(t),He(t)})}function Pe(e,t,n={}){let r=new Map(w.fetchers);r.set(e,t),ge({fetchers:r},{flushSync:(n&&n.flushSync)===!0})}function Fe(e,t,n,r={}){let i=yn(w.matches,t),a=new Map(w.fetchers);Be(a,e),ge({errors:{[i.route.id]:n},fetchers:a},{flushSync:(r&&r.flushSync)===!0})}function Ie(e){return ae.set(e,(ae.get(e)||0)+1),se.has(e)&&se.delete(e),w.fetchers.get(e)||St}function Re(e,t){He(e,t?.reason),Pe(e,Wn(null))}function Be(e,t){let n=w.fetchers.get(t);P.has(t)&&!(n&&n.state===`loading`&&te.has(t))&&He(t),z.delete(t),te.delete(t),ne.delete(t),se.delete(t),ee.delete(t),e.delete(t)}function Ve(e){let t=(ae.get(e)||0)-1;t<=0?(ae.delete(e),se.add(e)):ae.set(e,t),ge({fetchers:new Map(w.fetchers)})}function He(e,t){let n=P.get(e);n&&(n.abort(t),P.delete(e))}function Ue(e,t){for(let n of e){let e=t.get(n);L(e,`Expected fetcher: ${n}`);let r=Wn(e.data);t.set(n,r)}}function We(e){let t=[],n=!1;for(let r of ne){let i=e.get(r);L(i,`Expected fetcher: ${r}`),i.state===`loading`&&(ne.delete(r),t.push(r),n=!0)}return Ue(t,e),n}function Ge(e,t){let n=[];for(let[r,i]of te)if(i<e){let e=t.get(r);L(e,`Expected fetcher: ${r}`),e.state===`loading`&&(He(r),te.delete(r),n.push(r))}return Ue(n,t),n.length>0}function Ke(e,t){let n=w.blockers.get(e)||Ct;return le.get(e)!==t&&le.set(e,t),n}function qe(e){w.blockers.delete(e),le.delete(e)}function Je(e,t){let n=w.blockers.get(e)||Ct;L(n.state===`unblocked`&&t.state===`blocked`||n.state===`blocked`&&t.state===`blocked`||n.state===`blocked`&&t.state===`proceeding`||n.state===`blocked`&&t.state===`unblocked`||n.state===`proceeding`&&t.state===`unblocked`,`Invalid blocker state transition: ${n.state} -> ${t.state}`);let r=new Map(w.blockers);r.set(e,t),ge({blockers:r})}function Ye({currentLocation:e,nextLocation:t,historyAction:n}){if(le.size===0)return;le.size>1&&R(!1,`A router only supports one blocker at a time`);let r=Array.from(le.entries()),[i,a]=r[r.length-1],o=w.blockers.get(i);if(!(o&&o.state===`proceeding`)&&a({currentLocation:e,nextLocation:t,historyAction:n}))return i}function Xe(e){let t=xn(404,{pathname:e}),n=s.activeRoutes,{matches:r,route:i}=bn(n);return{notFoundMatches:r,route:i,error:t}}function Ze(e,t,n){if(m=e,g=t,h=n||null,!_&&w.navigation===xt){_=!0;let e=tt(w.location,w.matches);e!=null&&ge({restoreScrollPosition:e})}return()=>{m=null,g=null,h=null}}function Qe(e,t){return h&&h(e,t.map(e=>ve(e,w.loaderData)))||e.key}function $e(e,t){if(m&&g){let n=Qe(e,t);m[n]=g()}}function tt(e,t){if(m){let n=Qe(e,t),r=m[n];if(typeof r==`number`)return r}return null}function nt(t,n,r){if(e.patchRoutesOnNavigation){let e=s.branches;if(!t)return{active:!0,matches:_e(n,r,c,!0,e)||[]};if(Object.keys(t[0].params).length>0)return{active:!0,matches:_e(n,r,c,!0,e)}}return{active:!1,matches:null}}async function rt(t,n,r,i){if(!e.patchRoutesOnNavigation)return{type:`success`,matches:t};let l=t;for(;;){let t=o;try{await e.patchRoutesOnNavigation({signal:r,path:n,matches:l,fetcherKey:i,patch:(e,n)=>{r.aborted||Ht(e,n,s,t,a,!1)}})}catch(e){return{type:`error`,error:e,partialMatches:l}}if(r.aborted)return{type:`aborted`};let u=s.branches,d=_e(s.activeRoutes,n,c,!1,u),f=null;if(d&&(Object.keys(d[0].params).length===0||(f=_e(s.activeRoutes,n,c,!0,u),!(f&&l.length<f.length&&it(l,f.slice(0,l.length))))))return{type:`success`,matches:d};if(f||(f=_e(s.activeRoutes,n,c,!0,u)),!f||it(l,f))return{type:`success`,matches:null};l=f}}function it(e,t){return e.length===t.length&&e.every((e,n)=>e.route.id===t[n].route.id)}function st(e){o={},s.setHmrRoutes(me(e,a,void 0,o))}function ct(e,t,n=!1){Ht(e,t,s,o,a,n),s.hasHMRRoutes||ge({})}return C={get basename(){return c},get future(){return u},get state(){return w},get routes(){return s.stableRoutes},get branches(){return s.branches},get manifest(){return o},get window(){return t},initialize:fe,subscribe:he,enableScrollRestoration:Ze,navigate:be,fetch:De,revalidate:xe,createHref:t=>e.history.createHref(t),encodeLocation:t=>e.history.encodeLocation(t),getFetcher:Ie,resetFetcher:Re,deleteFetcher:Ve,dispose:pe,getBlocker:Ke,deleteBlocker:qe,patchRoutes:ct,_internalFetchControllers:P,_internalSetRoutes:st,_internalSetStateDoNotUseOrYouWillBreakYourApp(e){ge(e)}},e.instrumentations&&(C=ot(C,e.instrumentations.map(e=>e.router).filter(Boolean))),C}function Nt(e){return e!=null&&(`formData`in e&&e.formData!=null||`body`in e&&e.body!==void 0)}function Pt(e,t,n,r,i,a){let o,s;if(i){o=[];for(let e of t)if(o.push(e),e.route.id===i){s=e;break}}else o=t,s=t[t.length-1];let c=Ge(r||`.`,We(o),Le(e.pathname,n)||e.pathname,a===`path`);if(r??(c.search=e.search,c.hash=e.hash),(r==null||r===``||r===`.`)&&s){let e=Ln(c.search);if(s.route.index&&!e)c.search=c.search?c.search.replace(/^\?/,`?index&`):`?index`;else if(!s.route.index&&e){let e=new URLSearchParams(c.search),t=e.getAll(`index`);e.delete(`index`),t.filter(e=>e).forEach(t=>e.append(`index`,t));let n=e.toString();c.search=n?`?${n}`:``}}return n!==`/`&&(c.pathname=Re({basename:n,pathname:c.pathname})),z(c)}function Ft(e,t,n){if(!n||!Nt(n))return{path:t};if(n.formMethod&&!Fn(n.formMethod))return{path:t,error:xn(405,{method:n.formMethod})};let r=()=>({path:t,error:xn(400,{type:`invalid-body`})}),i=(n.formMethod||`get`).toUpperCase(),a=Cn(t);if(n.body!==void 0){if(n.formEncType===`text/plain`){if(!In(i))return r();let e=typeof n.body==`string`?n.body:n.body instanceof FormData||n.body instanceof URLSearchParams?Array.from(n.body.entries()).reduce((e,[t,n])=>`${e}${t}=${n}
`,``):String(n.body);return{path:t,submission:{formMethod:i,formAction:a,formEncType:n.formEncType,formData:void 0,json:void 0,text:e}}}else if(n.formEncType===`application/json`){if(!In(i))return r();try{let e=typeof n.body==`string`?JSON.parse(n.body):n.body;return{path:t,submission:{formMethod:i,formAction:a,formEncType:n.formEncType,formData:void 0,json:e,text:void 0}}}catch{return r()}}}L(typeof FormData==`function`,`FormData is not available in this environment`);let o,s;if(n.formData)o=pn(n.formData),s=n.formData;else if(n.body instanceof FormData)o=pn(n.body),s=n.body;else if(n.body instanceof URLSearchParams)o=n.body,s=mn(o);else if(n.body==null)o=new URLSearchParams,s=new FormData;else try{o=new URLSearchParams(n.body),s=mn(o)}catch{return r()}let c={formMethod:i,formAction:a,formEncType:n&&n.formEncType||`application/x-www-form-urlencoded`,formData:s,json:void 0,text:void 0};if(In(c.formMethod))return{path:t,submission:c};let l=ie(t);return e&&l.search&&Ln(l.search)&&o.append(`index`,``),l.search=`?${o}`,{path:z(l),submission:c}}function It(e,t,n,r,i,a,o,s,c,l,u,d,f,p,m,h,g,_,v,y,b,x){let S=b?kn(b[1])?b[1].error:b[1].data:void 0,C=i.createURL(a.location),w=i.createURL(c),T;if(u&&a.errors){let e=Object.keys(a.errors)[0];T=o.findIndex(t=>t.route.id===e)}else if(b&&kn(b[1])){let e=b[0];T=o.findIndex(t=>t.route.id===e)-1}let E=b?b[1].statusCode:void 0,D=E&&E>=400,O={currentUrl:C,currentParams:a.matches[0]?.params||{},nextUrl:w,nextParams:o[0].params,...s,actionResult:S,actionStatus:E},k=tt(o),A=o.map((i,o)=>{let{route:s}=i,f=null;if(T!=null&&o>T)f=!1;else if(s.lazy)f=!0;else if(!Lt(s))f=!1;else if(u){let{shouldLoad:e}=Rt(s,a.loaderData,a.errors);f=e}else zt(a.loaderData,a.matches[o],i)&&(f=!0);if(f!==null)return en(n,r,e,c,k,i,l,t,f);let p=!1;typeof x==`boolean`?p=x:D?p=!1:d||C.pathname+C.search===w.pathname+w.search?p=!0:C.search===w.search?Bt(a.matches[o],i)&&(p=!0):p=!0;let m={...O,defaultShouldRevalidate:p},h=Vt(i,m);return en(n,r,e,c,k,i,l,t,h,m,x)}),j=[];return m.forEach((e,s)=>{if(u||!o.some(t=>t.route.id===e.routeId)||p.has(s))return;let c=a.fetchers.get(s),m=c&&c.state!==`idle`&&c.data===void 0,b=_e(g,e.path,_??`/`,!1,y);if(!b){if(v&&m)return;j.push({key:s,routeId:e.routeId,path:e.path,matches:null,match:null,request:null,controller:null});return}if(h.has(s))return;let S=Rn(b,e.path),C=new AbortController,w=dn(i,e.path,C.signal),T=null;if(f.has(s))f.delete(s),T=tn(n,r,w,e.path,b,S,l,t);else if(m)d&&(T=tn(n,r,w,e.path,b,S,l,t));else{let i;i=typeof x==`boolean`?x:!D&&d;let a={...O,defaultShouldRevalidate:i};Vt(S,a)&&(T=tn(n,r,w,e.path,b,S,l,t,a))}T&&j.push({key:s,routeId:e.routeId,path:e.path,matches:T,match:S,request:w,controller:C})}),{dsMatches:A,revalidatingFetchers:j}}function Lt(e){return e.loader!=null||e.middleware!=null&&e.middleware.length>0}function Rt(e,t,n){if(e.lazy)return{shouldLoad:!0,renderFallback:!0};if(!Lt(e))return{shouldLoad:!1,renderFallback:!1};let r=t!=null&&e.id in t,i=n!=null&&n[e.id]!==void 0;if(!r&&i)return{shouldLoad:!1,renderFallback:!1};if(typeof e.loader==`function`&&e.loader.hydrate===!0)return{shouldLoad:!0,renderFallback:!r};let a=!r&&!i;return{shouldLoad:a,renderFallback:a}}function zt(e,t,n){let r=!t||n.route.id!==t.route.id,i=!e.hasOwnProperty(n.route.id);return r||i}function Bt(e,t){let n=e.route.path;return e.pathname!==t.pathname||n!=null&&n.endsWith(`*`)&&e.params[`*`]!==t.params[`*`]}function Vt(e,t){if(e.route.shouldRevalidate){let n=e.route.shouldRevalidate(t);if(typeof n==`boolean`)return n}return t.defaultShouldRevalidate}function Ht(e,t,n,r,i,a){let o;if(e){let t=r[e];L(t,`No route found to patch children into: routeId = ${e}`),t.children||(t.children=[]),o=t.children}else o=n.activeRoutes;let s=[],c=[];if(t.forEach(e=>{let t=o.find(t=>Ut(e,t));t?c.push({existingRoute:t,newRoute:e}):s.push(e)}),s.length>0){let t=me(s,i,[e||`_`,`patch`,String(o?.length||`0`)],r);o.push(...t)}if(a&&c.length>0)for(let e=0;e<c.length;e++){let{existingRoute:t,newRoute:n}=c[e],r=t,[a]=me([n],i,[],{},!0);Object.assign(r,{element:a.element?a.element:r.element,errorElement:a.errorElement?a.errorElement:r.errorElement,hydrateFallbackElement:a.hydrateFallbackElement?a.hydrateFallbackElement:r.hydrateFallbackElement})}n.hasHMRRoutes||n.setRoutes([...n.activeRoutes])}function Ut(e,t){return`id`in e&&`id`in t&&e.id===t.id?!0:e.index===t.index&&e.path===t.path&&e.caseSensitive===t.caseSensitive?(!e.children||e.children.length===0)&&(!t.children||t.children.length===0)?!0:e.children?.every((e,n)=>t.children?.some(t=>Ut(e,t)))??!1:!1}var Wt=new WeakMap,Gt=({key:e,route:t,manifest:n,mapRouteProperties:r})=>{let i=n[t.id];if(L(i,`No route found in manifest`),!i.lazy||typeof i.lazy!=`object`)return;let a=i.lazy[e];if(!a)return;let o=Wt.get(i);o||(o={},Wt.set(i,o));let s=o[e];if(s)return s;let c=(async()=>{let t=ue(e),n=i[e]!==void 0&&e!==`hasErrorBoundary`;if(t)R(!t,`Route property `+e+` is not a supported lazy route property. This property will be ignored.`),o[e]=Promise.resolve();else if(n)R(!1,`Route "${i.id}" has a static property "${e}" defined. The lazy property will be ignored.`);else{let t=await a();t!=null&&(Object.assign(i,{[e]:t}),Object.assign(i,r(i)))}typeof i.lazy==`object`&&(i.lazy[e]=void 0,Object.values(i.lazy).every(e=>e===void 0)&&(i.lazy=void 0))})();return o[e]=c,c},Kt=new WeakMap;function qt(e,t,n,r,i){let a=n[e.id];if(L(a,`No route found in manifest`),!e.lazy)return{lazyRoutePromise:void 0,lazyHandlerPromise:void 0};if(typeof e.lazy==`function`){let t=Kt.get(a);if(t)return{lazyRoutePromise:t,lazyHandlerPromise:t};let n=(async()=>{L(typeof e.lazy==`function`,`No lazy route function found`);let t=await e.lazy(),n={};for(let e in t){let r=t[e];if(r===void 0)continue;let i=fe(e),o=a[e]!==void 0&&e!==`hasErrorBoundary`;i?R(!i,`Route property `+e+` is not a supported property to be returned from a lazy route function. This property will be ignored.`):o?R(!o,`Route "${a.id}" has a static property "${e}" defined but its lazy function is also returning a value for this property. The lazy route property "${e}" will be ignored.`):n[e]=r}Object.assign(a,n),Object.assign(a,{...r(a),lazy:void 0})})();return Kt.set(a,n),n.catch(()=>{}),{lazyRoutePromise:n,lazyHandlerPromise:n}}let o=Object.keys(e.lazy),s=[],c;for(let a of o){if(i&&i.includes(a))continue;let o=Gt({key:a,route:e,manifest:n,mapRouteProperties:r});o&&(s.push(o),a===t&&(c=o))}let l=s.length>0?Promise.all(s).then(()=>{}):void 0;return l?.catch(()=>{}),c?.catch(()=>{}),{lazyRoutePromise:l,lazyHandlerPromise:c}}async function Jt(e){let t=e.matches.filter(e=>e.shouldLoad),n={};return(await Promise.all(t.map(e=>e.resolve()))).forEach((e,r)=>{n[t[r].route.id]=e}),n}async function Yt(e){return e.matches.some(e=>e.route.middleware)?Xt(e,()=>Jt(e)):Jt(e)}function Xt(e,t){return Zt(e,t,e=>{if(Pn(e))throw e;return e},En,n);function n(t,n,r){if(r)return Promise.resolve(Object.assign(r.value,{[n]:{type:`error`,result:t}}));{let{matches:r}=e,i=yn(r,r[Math.min(Math.max(r.findIndex(e=>e.route.id===n),0),Math.max(r.findIndex(e=>e.shouldCallHandler()),0))].route.id).route.id;return Promise.resolve({[i]:{type:`error`,result:t}})}}}async function Zt(e,t,n,r,i){let{matches:a,...o}=e;return await Qt(o,a.flatMap(e=>e.route.middleware?e.route.middleware.map(t=>[e.route.id,t]):[]),t,n,r,i)}async function Qt(e,t,n,r,i,a,o=0){let{request:s}=e;if(s.signal.aborted)throw s.signal.reason??Error(`Request aborted: ${s.method} ${s.url}`);let c=t[o];if(!c)return await n();let[l,u]=c,d,f=async()=>{if(d)throw Error("You may only call `next()` once per middleware");try{return d={value:await Qt(e,t,n,r,i,a,o+1)},d.value}catch(e){return d={value:await a(e,l,d)},d.value}};try{let t=await u(e,f),n=t==null?void 0:r(t);return i(n)?n:d?n??d.value:(d={value:await f()},d.value)}catch(e){return await a(e,l,d)}}function $t(e,t,n,r,i){let a=Gt({key:`middleware`,route:r.route,manifest:t,mapRouteProperties:e}),o=qt(r.route,In(n.method)?`action`:`loader`,t,e,i);return{middleware:a,route:o.lazyRoutePromise,handler:o.lazyHandlerPromise}}function en(e,t,n,r,i,a,o,s,c,l=null,u){let d=!1,f=$t(e,t,n,a,o);return{...a,_lazyPromises:f,shouldLoad:c,shouldRevalidateArgs:l,shouldCallHandler(e){return d=!0,l?typeof u==`boolean`?Vt(a,{...l,defaultShouldRevalidate:u}):typeof e==`boolean`?Vt(a,{...l,defaultShouldRevalidate:e}):Vt(a,l):c},resolve(e){let{lazy:t,loader:o,middleware:l}=a.route,u=d||c||e&&!In(n.method)&&(t||o),p=l&&l.length>0&&!o&&!t;return u&&(In(n.method)||!p)?rn({request:n,path:r,pattern:i,match:a,lazyHandlerPromise:f?.handler,lazyRoutePromise:f?.route,handlerOverride:e,scopedContext:s}):Promise.resolve({type:`data`,result:void 0})}}}function tn(e,t,n,r,i,a,o,s,c=null){return i.map(l=>l.route.id===a.route.id?en(e,t,n,r,tt(i),l,o,s,!0,c):{...l,shouldLoad:!1,shouldRevalidateArgs:c,shouldCallHandler:()=>!1,_lazyPromises:$t(e,t,n,l,o),resolve:()=>Promise.resolve({type:`data`,result:void 0})})}async function nn(e,t,n,r,i,a,o){r.some(e=>e._lazyPromises?.middleware)&&await Promise.all(r.map(e=>e._lazyPromises?.middleware));let s={request:t,url:fn(t,n),pattern:tt(r),params:r[0].params,context:a,matches:r},c=o?()=>{throw Error("You cannot call `runClientMiddleware()` from a static handler `dataStrategy`. Middleware is run outside of `dataStrategy` during SSR in order to bubble up the Response. You can enable middleware via the `respond` API in `query`/`queryRoute`")}:e=>{let t=s;return Xt(t,()=>e({...t,fetcherKey:i,runClientMiddleware:()=>{throw Error("Cannot call `runClientMiddleware()` from within an `runClientMiddleware` handler")}}))},l=await e({...s,fetcherKey:i,runClientMiddleware:c});try{await Promise.all(r.flatMap(e=>[e._lazyPromises?.handler,e._lazyPromises?.route]))}catch{}return l}async function rn({request:e,path:t,pattern:n,match:r,lazyHandlerPromise:i,lazyRoutePromise:a,handlerOverride:o,scopedContext:s}){let c,l,u=In(e.method),d=u?`action`:`loader`,f=i=>{let a,c=new Promise((e,t)=>a=t);l=()=>a(),e.signal.addEventListener(`abort`,l);let u=a=>typeof i==`function`?i({request:e,url:fn(e,t),pattern:n,params:r.params,context:s},...a===void 0?[]:[a]):Promise.reject(Error(`You cannot call the handler for a route which defines a boolean "${d}" [routeId: ${r.route.id}]`)),f=(async()=>{try{return{type:`data`,result:await(o?o(e=>u(e)):u())}}catch(e){return{type:`error`,result:e}}})();return Promise.race([f,c])};try{let t=u?r.route.action:r.route.loader;if(i||a)if(t){let e,[n]=await Promise.all([f(t).catch(t=>{e=t}),i,a]);if(e!==void 0)throw e;c=n}else{await i;let t=u?r.route.action:r.route.loader;if(t)[c]=await Promise.all([f(t),a]);else if(d===`action`){let t=new URL(e.url),n=t.pathname+t.search;throw xn(405,{method:e.method,pathname:n,routeId:r.route.id})}else return{type:`data`,result:void 0}}else if(t)c=await f(t);else{let t=new URL(e.url);throw xn(404,{pathname:t.pathname+t.search})}}catch(e){return{type:`error`,result:e}}finally{l&&e.signal.removeEventListener(`abort`,l)}return c}async function an(e){let t=e.headers.get(`Content-Type`);return t&&/\bapplication\/json\b/.test(t)?e.body==null?null:e.json():e.text()}async function on(e){let{result:t,type:n}=e;if(Mn(t)){let e;try{e=await an(t)}catch(e){return{type:`error`,error:e}}return n===`error`?{type:`error`,error:new $e(t.status,t.statusText,e),statusCode:t.status,headers:t.headers}:{type:`data`,data:e,statusCode:t.status,headers:t.headers}}return n===`error`?jn(t)?t.data instanceof Error?{type:`error`,error:t.data,statusCode:t.init?.status,headers:t.init?.headers?new Headers(t.init.headers):void 0}:{type:`error`,error:Tn(t),statusCode:et(t)?t.status:void 0,headers:t.init?.headers?new Headers(t.init.headers):void 0}:{type:`error`,error:t,statusCode:et(t)?t.status:void 0}:jn(t)?{type:`data`,data:t.data,statusCode:t.init?.status,headers:t.init?.headers?new Headers(t.init.headers):void 0}:{type:`data`,data:t}}function sn(e,t,n,r,i){let a=e.headers.get(`Location`);if(L(a,`Redirects returned/thrown from loaders/actions must have a Location header`),!ze(a)){let o=r.slice(0,r.findIndex(e=>e.route.id===n)+1);a=Pt(new URL(t.url),o,i,a),e.headers.set(`Location`,a)}return e}var cn=[`about:`,`blob:`,`chrome:`,`chrome-untrusted:`,`content:`,`data:`,`devtools:`,`file:`,`filesystem:`,`javascript:`];function ln(e){try{return cn.includes(new URL(e).protocol)}catch{return!1}}function un(e,t,n,r){if(ze(e)){let r=e,i=N.test(r)?new URL(ee(r,t.protocol)):new URL(r);if(ln(i.toString()))throw Error(`Invalid redirect location`);let a=Le(i.pathname,n)!=null;if(i.origin===t.origin&&a)return Ke(i.pathname)+i.search+i.hash}try{if(ln(r.createURL(e).toString()))throw Error(`Invalid redirect location`)}catch{}return e}function dn(e,t,n,r){let i=e.createURL(Cn(t)).toString(),a={signal:n};if(r&&In(r.formMethod)){let{formMethod:e,formEncType:t}=r;a.method=e.toUpperCase(),t===`application/json`?(a.headers=new Headers({"Content-Type":t}),a.body=JSON.stringify(r.json)):t===`text/plain`?a.body=r.text:t===`application/x-www-form-urlencoded`&&r.formData?a.body=pn(r.formData):a.body=r.formData}return new Request(i,a)}function fn(e,t){let n=new URL(e.url),r=typeof t==`string`?ie(t):t;if(n.pathname=r.pathname||`/`,r.search){let e=new URLSearchParams(r.search),t=e.getAll(`index`);e.delete(`index`);for(let n of t.filter(Boolean))e.append(`index`,n);n.search=e.size?`?${e.toString()}`:``}else n.search=``;return n.hash=r.hash||``,n}function pn(e){let t=new URLSearchParams;for(let[n,r]of e.entries())t.append(n,typeof r==`string`?r:r.name);return t}function mn(e){let t=new FormData;for(let[n,r]of e.entries())t.append(n,r);return t}function hn(e,t,n,r=!1,i=!1){let a={},o=null,s,c=!1,l={},u=n&&kn(n[1])?n[1].error:void 0;return e.forEach(n=>{if(!(n.route.id in t))return;let d=n.route.id,f=t[d];if(L(!An(f),`Cannot handle redirect results in processLoaderData`),kn(f)){let t=f.error;if(u!==void 0&&(t=u,u=void 0),o=o||{},i)o[d]=t;else{let n=yn(e,d);o[n.route.id]??(o[n.route.id]=t)}r||(a[d]=Et),c||(c=!0,s=et(f.error)?f.error.status:500),f.headers&&(l[d]=f.headers)}else a[d]=f.data,f.statusCode&&f.statusCode!==200&&!c&&(s=f.statusCode),f.headers&&(l[d]=f.headers)}),u!==void 0&&n&&(o={[n[0]]:u},n[2]&&(a[n[2]]=void 0)),{loaderData:a,errors:o,statusCode:s||200,loaderHeaders:l}}function gn(e,t,n,r,i,a,o){let{loaderData:s,errors:c}=hn(t,n,r);return i.filter(e=>!e.matches||e.matches.some(e=>e.shouldLoad)).forEach(t=>{let{key:n,match:r,controller:i}=t;if(i&&i.signal.aborted)return;let s=a[n];if(L(s,`Did not find corresponding fetcher result`),kn(s)){let t=yn(e.matches,r?.route.id);c&&c[t.route.id]||(c={...c,[t.route.id]:s.error}),o.delete(n)}else if(An(s))L(!1,`Unhandled fetcher revalidation redirect`);else{let e=Wn(s.data);o.set(n,e)}}),{loaderData:s,errors:c}}function _n(e,t,n,r){let i=Object.entries(t).filter(([,e])=>e!==Et).reduce((e,[t,n])=>(e[t]=n,e),{});for(let a of n){let n=a.route.id;if(!t.hasOwnProperty(n)&&e.hasOwnProperty(n)&&a.route.loader&&(i[n]=e[n]),r&&r.hasOwnProperty(n))break}return i}function vn(e){return e?kn(e[1])?{actionData:{}}:{actionData:{[e[0]]:e[1].data}}:{}}function yn(e,t){return(t?e.slice(0,e.findIndex(e=>e.route.id===t)+1):[...e]).reverse().find(e=>e.route.hasErrorBoundary===!0)||e[0]}function bn(e){let t=e.length===1?e[0]:e.find(e=>e.index||!e.path||e.path===`/`)||{id:`__shim-error-route__`};return{matches:[{params:{},pathname:``,pathnameBase:``,route:t}],route:t}}function xn(e,{pathname:t,routeId:n,method:r,type:i,message:a}={}){let o=`Unknown Server Error`,s=`Unknown @remix-run/router error`;return e===400?(o=`Bad Request`,r&&t&&n?s=`You made a ${r} request to "${t}" but did not provide a \`loader\` for route "${n}", so there is no way to handle the request.`:i===`invalid-body`&&(s=`Unable to encode submission body`)):e===403?(o=`Forbidden`,s=`Route "${n}" does not match URL "${t}"`):e===404?(o=`Not Found`,s=`No route matches URL "${t}"`):e===405&&(o=`Method Not Allowed`,r&&t&&n?s=`You made a ${r.toUpperCase()} request to "${t}" but did not provide an \`action\` for route "${n}", so there is no way to handle the request.`:r&&(s=`Invalid request method "${r.toUpperCase()}"`)),new $e(e||500,o,Error(s),!0)}function Sn(e){let t=Object.entries(e);for(let e=t.length-1;e>=0;e--){let[n,r]=t[e];if(An(r))return{key:n,result:r}}}function Cn(e){return z({...typeof e==`string`?ie(e):e,hash:``})}function wn(e,t){return e.pathname!==t.pathname||e.search!==t.search?!1:e.hash===``?t.hash!==``:e.hash===t.hash||t.hash!==``}function Tn(e){return new $e(e.init?.status??500,e.init?.statusText??`Internal Server Error`,e.data)}function En(e){return typeof e==`object`&&!!e&&Object.entries(e).every(([e,t])=>typeof e==`string`&&Dn(t))}function Dn(e){return typeof e==`object`&&!!e&&`type`in e&&`result`in e&&(e.type===`data`||e.type===`error`)}function On(e){return Mn(e.result)&&yt.has(e.result.status)}function kn(e){return e.type===`error`}function An(e){return(e&&e.type)===`redirect`}function jn(e){return typeof e==`object`&&!!e&&`type`in e&&`data`in e&&`init`in e&&e.type===`DataWithResponseInit`}function Mn(e){return e!=null&&typeof e.status==`number`&&typeof e.statusText==`string`&&typeof e.headers==`object`&&e.body!==void 0}function Nn(e){return yt.has(e)}function Pn(e){return Mn(e)&&Nn(e.status)&&e.headers.has(`Location`)}function Fn(e){return vt.has(e.toUpperCase())}function In(e){return gt.has(e.toUpperCase())}function Ln(e){return new URLSearchParams(e).getAll(`index`).some(e=>e===``)}function Rn(e,t){let n=typeof t==`string`?ie(t).search:t.search;if(e[e.length-1].route.index&&Ln(n||``))return e[e.length-1];let r=Ue(e);return r[r.length-1]}function zn(e){let{formMethod:t,formAction:n,formEncType:r,text:i,formData:a,json:o}=e;if(!(!t||!n||!r)){if(i!=null)return{formMethod:t,formAction:n,formEncType:r,formData:void 0,json:void 0,text:i};if(a!=null)return{formMethod:t,formAction:n,formEncType:r,formData:a,json:void 0,text:void 0};if(o!==void 0)return{formMethod:t,formAction:n,formEncType:r,formData:void 0,json:o,text:void 0}}}function Bn(e,t,n,r){return r?{state:`loading`,location:e,matches:t,historyAction:n,formMethod:r.formMethod,formAction:r.formAction,formEncType:r.formEncType,formData:r.formData,json:r.json,text:r.text}:{state:`loading`,location:e,matches:t,historyAction:n,formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0}}function Vn(e,t,n,r){return{state:`submitting`,location:e,matches:t,historyAction:n,formMethod:r.formMethod,formAction:r.formAction,formEncType:r.formEncType,formData:r.formData,json:r.json,text:r.text}}function Hn(e,t){return e?{state:`loading`,formMethod:e.formMethod,formAction:e.formAction,formEncType:e.formEncType,formData:e.formData,json:e.json,text:e.text,data:t}:{state:`loading`,formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0,data:t}}function Un(e,t){return{state:`submitting`,formMethod:e.formMethod,formAction:e.formAction,formEncType:e.formEncType,formData:e.formData,json:e.json,text:e.text,data:t?t.data:void 0}}function Wn(e){return{state:`idle`,formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0,data:e}}function Gn(e,t){try{let n=e.sessionStorage.getItem(Tt);if(n){let e=JSON.parse(n);for(let[n,r]of Object.entries(e||{}))r&&Array.isArray(r)&&t.set(n,new Set(r||[]))}}catch{}}function Kn(e,t){if(t.size>0){let n={};for(let[e,r]of t)n[e]=[...r];try{e.sessionStorage.setItem(Tt,JSON.stringify(n))}catch(e){R(!1,`Failed to save applied view transitions in sessionStorage (${e}).`)}}}function qn(){let e,t,n=new Promise((r,i)=>{e=async e=>{r(e);try{await n}catch{}},t=async e=>{i(e);try{await n}catch{}}});return{promise:n,resolve:e,reject:t}}var Jn=y.createContext(null);Jn.displayName=`DataRouter`;var Yn=y.createContext(null);Yn.displayName=`DataRouterState`;var Xn=y.createContext(!1);function Zn(){return y.useContext(Xn)}var Qn=y.createContext({isTransitioning:!1});Qn.displayName=`ViewTransition`;var $n=y.createContext(new Map);$n.displayName=`Fetchers`;var er=y.createContext(null);er.displayName=`Await`;var tr=y.createContext(null);tr.displayName=`Navigation`;var nr=y.createContext(null);nr.displayName=`Location`;var rr=y.createContext({outlet:null,matches:[],isDataRoute:!1});rr.displayName=`Route`;var ir=y.createContext(null);ir.displayName=`RouteError`;var ar=`REACT_ROUTER_ERROR`,or=`REDIRECT`,sr=`ROUTE_ERROR_RESPONSE`;function cr(e){if(e.startsWith(`${ar}:${or}:{`))try{let t=JSON.parse(e.slice(28));if(typeof t==`object`&&t&&typeof t.status==`number`&&typeof t.statusText==`string`&&typeof t.location==`string`&&typeof t.reloadDocument==`boolean`&&typeof t.replace==`boolean`)return t}catch{}}function lr(e){if(e.startsWith(`${ar}:${sr}:{`))try{let t=JSON.parse(e.slice(40));if(typeof t==`object`&&t&&typeof t.status==`number`&&typeof t.statusText==`string`)return new $e(t.status,t.statusText,t.data)}catch{}}function ur(e,{relative:t}={}){L(dr(),`useHref() may be used only in the context of a <Router> component.`);let{basename:n,navigator:r}=y.useContext(tr),{hash:i,pathname:a,search:o}=br(e,{relative:t}),s=a;return n!==`/`&&(s=a===`/`?n:qe([n,a])),r.createHref({pathname:s,search:o,hash:i})}function dr(){return y.useContext(nr)!=null}function fr(){return L(dr(),`useLocation() may be used only in the context of a <Router> component.`),y.useContext(nr).location}var pr=`You should call navigate() in a React.useEffect(), not when your component is first rendered.`;function mr(e){y.useContext(tr).static||y.useLayoutEffect(e)}function hr(){let{isDataRoute:e}=y.useContext(rr);return e?Vr():gr()}function gr(){L(dr(),`useNavigate() may be used only in the context of a <Router> component.`);let e=y.useContext(Jn),{basename:t,navigator:n}=y.useContext(tr),{matches:r}=y.useContext(rr),{pathname:i}=fr(),a=JSON.stringify(We(r)),o=y.useRef(!1);return mr(()=>{o.current=!0}),y.useCallback((r,s={})=>{if(R(o.current,pr),!o.current)return;if(typeof r==`number`){n.go(r);return}let c=Ge(r,JSON.parse(a),i,s.relative===`path`);e==null&&t!==`/`&&(c.pathname=c.pathname===`/`?t:qe([t,c.pathname])),(s.replace?n.replace:n.push)(c,s.state,s)},[t,n,a,i,e])}var _r=y.createContext(null);function vr(e){let t=y.useContext(rr).outlet;return y.useMemo(()=>t&&y.createElement(_r.Provider,{value:e},t),[t,e])}function yr(){let{matches:e}=y.useContext(rr);return e[e.length-1]?.params??{}}function br(e,{relative:t}={}){let{matches:n}=y.useContext(rr),{pathname:r}=fr(),i=JSON.stringify(We(n));return y.useMemo(()=>Ge(e,JSON.parse(i),r,t===`path`),[e,i,r,t])}function xr(e,t){return Sr(e,t)}function Sr(e,t,n){L(dr(),`useRoutes() may be used only in the context of a <Router> component.`);let{navigator:r}=y.useContext(tr),{matches:i}=y.useContext(rr),a=i[i.length-1],o=a?a.params:{},s=a?a.pathname:`/`,c=a?a.pathnameBase:`/`,l=a&&a.route;{let e=l&&l.path||``;Ur(s,!l||e.endsWith(`*`)||e.endsWith(`*?`),`You rendered descendant <Routes> (or called \`useRoutes()\`) at "${s}" (under <Route path="${e}">) but the parent route path has no trailing "*". This means if you navigate deeper, the parent won't match anymore and therefore the child routes will never render.
Please change the parent <Route path="${e}"> to <Route path="${e===`/`?`*`:`${e}/*`}">.`)}let u=fr(),d;if(t){let e=typeof t==`string`?ie(t):t;L(c===`/`||e.pathname?.startsWith(c),`When overriding the location using \`<Routes location>\` or \`useRoutes(routes, location)\`, the location pathname must begin with the portion of the URL pathname that was matched by all parent routes. The current pathname base is "${c}" but pathname "${e.pathname}" was given in the \`location\` prop.`),d=e}else d=u;let f=d.pathname||`/`,p=f;if(c!==`/`){let e=c.replace(/^\//,``).split(`/`);p=`/`+f.replace(/^\//,``).split(`/`).slice(e.length).join(`/`)}let m=n&&n.state.matches.length?n.state.matches.map(e=>Object.assign(e,{route:n.manifest[e.route.id]||e.route})):ge(e,{pathname:p});R(l||m!=null,`No routes matched location "${d.pathname}${d.search}${d.hash}" `),R(m==null||m[m.length-1].route.element!==void 0||m[m.length-1].route.Component!==void 0||m[m.length-1].route.lazy!==void 0,`Matched leaf route at location "${d.pathname}${d.search}${d.hash}" does not have an element or Component. This means it will render an <Outlet /> with a null value by default resulting in an "empty" page.`);let h=kr(m&&m.map(e=>Object.assign({},e,{params:Object.assign({},o,e.params),pathname:qe([c,r.encodeLocation?r.encodeLocation(e.pathname.replace(/%/g,`%25`).replace(/\?/g,`%3F`).replace(/#/g,`%23`)).pathname:e.pathname]),pathnameBase:e.pathnameBase===`/`?c:qe([c,r.encodeLocation?r.encodeLocation(e.pathnameBase.replace(/%/g,`%25`).replace(/\?/g,`%3F`).replace(/#/g,`%23`)).pathname:e.pathnameBase])})),i,n);return t&&h?y.createElement(nr.Provider,{value:{location:{pathname:`/`,search:``,hash:``,state:null,key:`default`,mask:void 0,...d},navigationType:`POP`}},h):h}function Cr(){let e=Rr(),t=et(e)?`${e.status} ${e.statusText}`:e instanceof Error?e.message:JSON.stringify(e),n=e instanceof Error?e.stack:null,r=`rgba(200,200,200, 0.5)`,i={padding:`0.5rem`,backgroundColor:r},a={padding:`2px 4px`,backgroundColor:r},o=null;return console.error(`Error handled by React Router default ErrorBoundary:`,e),o=y.createElement(y.Fragment,null,y.createElement(`p`,null,`💿 Hey developer 👋`),y.createElement(`p`,null,`You can provide a way better UX than this when your app throws errors by providing your own `,y.createElement(`code`,{style:a},`ErrorBoundary`),` or`,` `,y.createElement(`code`,{style:a},`errorElement`),` prop on your route.`)),y.createElement(y.Fragment,null,y.createElement(`h2`,null,`Unexpected Application Error!`),y.createElement(`h3`,{style:{fontStyle:`italic`}},t),n?y.createElement(`pre`,{style:i},n):null,o)}var wr=y.createElement(Cr,null),Tr=class extends y.Component{constructor(e){super(e),this.state={location:e.location,revalidation:e.revalidation,error:e.error}}static getDerivedStateFromError(e){return{error:e}}static getDerivedStateFromProps(e,t){return t.location!==e.location||t.revalidation!==`idle`&&e.revalidation===`idle`?{error:e.error,location:e.location,revalidation:e.revalidation}:{error:e.error===void 0?t.error:e.error,location:t.location,revalidation:e.revalidation||t.revalidation}}componentDidCatch(e,t){this.props.onError?this.props.onError(e,t):console.error(`React Router caught the following error during render`,e)}render(){let e=this.state.error;if(this.context&&typeof e==`object`&&e&&`digest`in e&&typeof e.digest==`string`){let t=lr(e.digest);t&&(e=t)}let t=e===void 0?this.props.children:y.createElement(rr.Provider,{value:this.props.routeContext},y.createElement(ir.Provider,{value:e,children:this.props.component}));return this.context?y.createElement(Dr,{error:e},t):t}};Tr.contextType=Xn;var Er=new WeakMap;function Dr({children:e,error:t}){let{basename:n}=y.useContext(tr);if(typeof t==`object`&&t&&`digest`in t&&typeof t.digest==`string`){let e=cr(t.digest);if(e){let r=Er.get(t);if(r)throw r;let i=rt(e.location,n),a=i.absoluteURL||i.to;if(ln(a))throw Error(`Invalid redirect location`);if(nt&&!Er.get(t))if(i.isExternal||e.reloadDocument)window.location.href=a;else{let n=Promise.resolve().then(()=>window.__reactRouterDataRouter.navigate(i.to,{replace:e.replace}));throw Er.set(t,n),n}return y.createElement(`meta`,{httpEquiv:`refresh`,content:`0;url=${a}`})}}return e}function Or({routeContext:e,match:t,children:n}){let r=y.useContext(Jn);return r&&r.static&&r.staticContext&&(t.route.errorElement||t.route.ErrorBoundary)&&(r.staticContext._deepestRenderedBoundaryId=t.route.id),y.createElement(rr.Provider,{value:e},n)}function kr(e,t=[],n){let r=n?.state;if(e==null){if(!r)return null;if(r.errors)e=r.matches;else if(t.length===0&&!r.initialized&&r.matches.length>0)e=r.matches;else return null}let i=e,a=r?.errors;if(a!=null){let e=i.findIndex(e=>e.route.id&&a?.[e.route.id]!==void 0);L(e>=0,`Could not find a matching route for errors on route IDs: ${Object.keys(a).join(`,`)}`),i=i.slice(0,Math.min(i.length,e+1))}let o=!1,s=-1;if(n&&r){o=r.renderFallback;for(let e=0;e<i.length;e++){let t=i[e];if((t.route.HydrateFallback||t.route.hydrateFallbackElement)&&(s=e),t.route.id){let{loaderData:e,errors:a}=r,c=t.route.loader&&!e.hasOwnProperty(t.route.id)&&(!a||a[t.route.id]===void 0);if(t.route.lazy||c){n.isStatic&&(o=!0),i=s>=0?i.slice(0,s+1):[i[0]];break}}}}let c=n?.onError,l=r&&c?(e,t)=>{c(e,{location:r.location,params:r.matches?.[0]?.params??{},pattern:tt(r.matches),errorInfo:t})}:void 0;return i.reduceRight((e,n,c)=>{let u,d=!1,f=null,p=null;r&&(u=a&&n.route.id?a[n.route.id]:void 0,f=n.route.errorElement||wr,o&&(s<0&&c===0?(Ur(`route-fallback`,!1,"No `HydrateFallback` element provided to render during initial hydration"),d=!0,p=null):s===c&&(d=!0,p=n.route.hydrateFallbackElement||null)));let m=t.concat(i.slice(0,c+1)),h=()=>{let t;return t=u?f:d?p:n.route.Component?y.createElement(n.route.Component,null):n.route.element?n.route.element:e,y.createElement(Or,{match:n,routeContext:{outlet:e,matches:m,isDataRoute:r!=null},children:t})};return r&&(n.route.ErrorBoundary||n.route.errorElement||c===0)?y.createElement(Tr,{location:r.location,revalidation:r.revalidation,component:f,error:u,children:h(),routeContext:{outlet:null,matches:m,isDataRoute:!0},onError:l}):h()},null)}function Ar(e){return`${e} must be used within a data router. See https://reactrouter.com/en/main/routers/picking-a-router.`}function jr(e){let t=y.useContext(Jn);return L(t,Ar(e)),t}function Mr(e){let t=y.useContext(Yn);return L(t,Ar(e)),t}function Nr(e){let t=y.useContext(rr);return L(t,Ar(e)),t}function Pr(e){let t=Nr(e),n=t.matches[t.matches.length-1];return L(n.route.id,`${e} can only be used on routes that contain a unique "id"`),n.route.id}function Fr(){return Pr(`useRouteId`)}function Ir(){let e=Mr(`useNavigation`);return y.useMemo(()=>{let{matches:t,historyAction:n,...r}=e.navigation;return r},[e.navigation])}function Lr(){let{matches:e,loaderData:t}=Mr(`useMatches`);return y.useMemo(()=>e.map(e=>ve(e,t)),[e,t])}function Rr(){let e=y.useContext(ir),t=Mr(`useRouteError`),n=Pr(`useRouteError`);return e===void 0?t.errors?.[n]:e}var zr=0;function Br(e){let{router:t,basename:n}=jr(`useBlocker`),r=Mr(`useBlocker`),[i,a]=y.useState(``),o=y.useCallback(t=>{if(typeof e!=`function`)return!!e;if(n===`/`)return e(t);let{currentLocation:r,nextLocation:i,historyAction:a}=t;return e({currentLocation:{...r,pathname:Le(r.pathname,n)||r.pathname},nextLocation:{...i,pathname:Le(i.pathname,n)||i.pathname},historyAction:a})},[n,e]);return y.useEffect(()=>{let e=String(++zr);return a(e),()=>t.deleteBlocker(e)},[t]),y.useEffect(()=>{i!==``&&t.getBlocker(i,o)},[t,i,o]),i&&r.blockers.has(i)?r.blockers.get(i):Ct}function Vr(){let{router:e}=jr(`useNavigate`),t=Pr(`useNavigate`),n=y.useRef(!1);return mr(()=>{n.current=!0}),y.useCallback(async(r,i={})=>{R(n.current,pr),n.current&&(typeof r==`number`?await e.navigate(r):await e.navigate(r,{fromRouteId:t,...i}))},[e,t])}var Hr={};function Ur(e,t,n){!t&&!Hr[e]&&(Hr[e]=!0,R(!1,n))}var Wr={};function Gr(e,t){!e&&!Wr[t]&&(Wr[t]=!0,console.warn(t))}var Kr=y.useOptimistic,qr=()=>void 0;function Jr(e){return Kr?Kr(e):[e,qr]}function Yr(e){let t={hasErrorBoundary:e.hasErrorBoundary||e.ErrorBoundary!=null||e.errorElement!=null};return e.Component&&(e.element&&R(!1,"You should not include both `Component` and `element` on your route - `Component` will be used."),Object.assign(t,{element:y.createElement(e.Component),Component:void 0})),e.HydrateFallback&&(e.hydrateFallbackElement&&R(!1,"You should not include both `HydrateFallback` and `hydrateFallbackElement` on your route - `HydrateFallback` will be used."),Object.assign(t,{hydrateFallbackElement:y.createElement(e.HydrateFallback),HydrateFallback:void 0})),e.ErrorBoundary&&(e.errorElement&&R(!1,"You should not include both `ErrorBoundary` and `errorElement` on your route - `ErrorBoundary` will be used."),Object.assign(t,{errorElement:y.createElement(e.ErrorBoundary),ErrorBoundary:void 0})),t}var Xr=[`HydrateFallback`,`hydrateFallbackElement`],Zr=class{constructor(){this.status=`pending`,this.promise=new Promise((e,t)=>{this.resolve=t=>{this.status===`pending`&&(this.status=`resolved`,e(t))},this.reject=e=>{this.status===`pending`&&(this.status=`rejected`,t(e))}})}};function Qr({router:e,flushSync:t,onError:n,useTransitions:r}){r=Zn()||r;let[i,a]=y.useState(e.state),[o,s]=Jr(i),[c,l]=y.useState(),[u,d]=y.useState({isTransitioning:!1}),[f,p]=y.useState(),[m,h]=y.useState(),[g,_]=y.useState(),v=y.useRef(new Map),b=y.useCallback((i,{deletedFetchers:o,newErrors:c,flushSync:u,viewTransitionOpts:g})=>{c&&n&&Object.values(c).forEach(e=>n(e,{location:i.location,params:i.matches[0]?.params??{},pattern:tt(i.matches)})),i.fetchers.forEach((e,t)=>{e.data!==void 0&&v.current.set(t,e.data)}),o.forEach(e=>v.current.delete(e)),Gr(u===!1||t!=null,'You provided the `flushSync` option to a router update, but you are not using the `<RouterProvider>` from `react-router/dom` so `ReactDOM.flushSync()` is unavailable. Please update your app to `import { RouterProvider } from "react-router/dom"` and ensure you have `react-dom` installed as a dependency to use the `flushSync` option.');let b=e.window!=null&&e.window.document!=null&&typeof e.window.document.startViewTransition==`function`;if(Gr(g==null||b,"You provided the `viewTransition` option to a router update, but you do not appear to be running in a DOM environment as `window.startViewTransition` is not available."),!g||!b){t&&u?t(()=>a(i)):r===!1?a(i):y.startTransition(()=>{r===!0&&s(e=>$r(e,i)),a(i)});return}if(t&&u){t(()=>{m&&(f?.resolve(),m.skipTransition()),d({isTransitioning:!0,flushSync:!0,currentLocation:g.currentLocation,nextLocation:g.nextLocation})});let n=e.window.document.startViewTransition(()=>{t(()=>a(i))});n.finished.finally(()=>{t(()=>{p(void 0),h(void 0),l(void 0),d({isTransitioning:!1})})}),t(()=>h(n));return}m?(f?.resolve(),m.skipTransition(),_({state:i,currentLocation:g.currentLocation,nextLocation:g.nextLocation})):(l(i),d({isTransitioning:!0,flushSync:!1,currentLocation:g.currentLocation,nextLocation:g.nextLocation}))},[e.window,t,m,f,r,s,n]);y.useLayoutEffect(()=>e.subscribe(b),[e,b]),y.useEffect(()=>{u.isTransitioning&&!u.flushSync&&p(new Zr)},[u]),y.useEffect(()=>{if(f&&c&&e.window){let t=c,n=f.promise,i=e.window.document.startViewTransition(async()=>{r===!1?a(t):y.startTransition(()=>{r===!0&&s(e=>$r(e,t)),a(t)}),await n});i.finished.finally(()=>{p(void 0),h(void 0),l(void 0),d({isTransitioning:!1})}),h(i)}},[c,f,e.window,r,s]),y.useEffect(()=>{f&&c&&o.location.key===c.location.key&&f.resolve()},[f,m,o.location,c]),y.useEffect(()=>{!u.isTransitioning&&g&&(l(g.state),d({isTransitioning:!0,flushSync:!1,currentLocation:g.currentLocation,nextLocation:g.nextLocation}),_(void 0))},[u.isTransitioning,g]);let x=y.useMemo(()=>({createHref:e.createHref,encodeLocation:e.encodeLocation,go:t=>e.navigate(t),push:(t,n,r)=>e.navigate(t,{state:n,preventScrollReset:r?.preventScrollReset}),replace:(t,n,r)=>e.navigate(t,{replace:!0,state:n,preventScrollReset:r?.preventScrollReset})}),[e]),S=e.basename||`/`,C=y.useMemo(()=>({router:e,navigator:x,static:!1,basename:S,onError:n}),[e,x,S,n]);return y.createElement(y.Fragment,null,y.createElement(Jn.Provider,{value:C},y.createElement(Yn.Provider,{value:o},y.createElement($n.Provider,{value:v.current},y.createElement(Qn.Provider,{value:u},y.createElement(ii,{basename:S,location:o.location,navigationType:o.historyAction,navigator:x,useTransitions:r},y.createElement(ei,{routes:e.routes,manifest:e.manifest,future:e.future,state:o,isStatic:!1,onError:n})))))),null)}function $r(e,t){return{...e,navigation:t.navigation.state===`idle`?e.navigation:t.navigation,revalidation:t.revalidation===`idle`?e.revalidation:t.revalidation,actionData:t.navigation.state===`submitting`?e.actionData:t.actionData,fetchers:t.fetchers}}var ei=y.memo(ti);function ti({routes:e,manifest:t,future:n,state:r,isStatic:i,onError:a}){return Sr(e,void 0,{manifest:t,state:r,isStatic:i,onError:a,future:n})}function ni({to:e,replace:t,state:n,relative:r}){L(dr(),`<Navigate> may be used only in the context of a <Router> component.`);let{static:i}=y.useContext(tr);R(!i,`<Navigate> must not be used on the initial render in a <StaticRouter>. This is a no-op, but you should modify your code so the <Navigate> is only ever rendered in response to some user interaction or state change.`);let{matches:a}=y.useContext(rr),{pathname:o}=fr(),s=hr(),c=Ge(e,We(a),o,r===`path`),l=JSON.stringify(c);return y.useEffect(()=>{s(JSON.parse(l),{replace:t,state:n,relative:r})},[s,l,r,t,n]),null}function ri(e){return vr(e.context)}function ii({basename:e=`/`,children:t=null,location:n,navigationType:r=`POP`,navigator:i,static:a=!1,useTransitions:o}){L(!dr(),`You cannot render a <Router> inside another <Router>. You should never have more than one in your app.`);let s=e.replace(/^\/*/,`/`),c=y.useMemo(()=>({basename:s,navigator:i,static:a,useTransitions:o,future:{}}),[s,i,a,o]);typeof n==`string`&&(n=ie(n));let{pathname:l=`/`,search:u=``,hash:d=``,state:f=null,key:p=`default`,mask:m}=n,h=y.useMemo(()=>{let e=Le(l,s);return e==null?null:{location:{pathname:e,search:u,hash:d,state:f,key:p,mask:m},navigationType:r}},[s,l,u,d,f,p,r,m]);return R(h!=null,`<Router basename="${s}"> is not able to match the URL "${l}${u}${d}" because it does not start with the basename, so the <Router> won't render anything.`),h==null?null:y.createElement(tr.Provider,{value:c},y.createElement(nr.Provider,{children:t,value:h}))}y.Component;var ai=`get`,oi=`application/x-www-form-urlencoded`;function si(e){return typeof HTMLElement<`u`&&e instanceof HTMLElement}function ci(e){return si(e)&&e.tagName.toLowerCase()===`button`}function li(e){return si(e)&&e.tagName.toLowerCase()===`form`}function ui(e){return si(e)&&e.tagName.toLowerCase()===`input`}function di(e){return!!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)}function fi(e,t){return e.button===0&&(!t||t===`_self`)&&!di(e)}function pi(e=``){return new URLSearchParams(typeof e==`string`||Array.isArray(e)||e instanceof URLSearchParams?e:Object.keys(e).reduce((t,n)=>{let r=e[n];return t.concat(Array.isArray(r)?r.map(e=>[n,e]):[[n,r]])},[]))}function mi(e,t){let n=pi(e);return t&&t.forEach((e,r)=>{n.has(r)||t.getAll(r).forEach(e=>{n.append(r,e)})}),n}var hi=null;function gi(){if(hi===null)try{new FormData(document.createElement(`form`),0),hi=!1}catch{hi=!0}return hi}var _i=new Set([`application/x-www-form-urlencoded`,`multipart/form-data`,`text/plain`]);function vi(e){return e!=null&&!_i.has(e)?(R(!1,`"${e}" is not a valid \`encType\` for \`<Form>\`/\`<fetcher.Form>\` and will default to "${oi}"`),null):e}function yi(e,t){let n,r,i,a,o;if(li(e)){let o=e.getAttribute(`action`);r=o?Le(o,t):null,n=e.getAttribute(`method`)||ai,i=vi(e.getAttribute(`enctype`))||oi,a=new FormData(e)}else if(ci(e)||ui(e)&&(e.type===`submit`||e.type===`image`)){let o=e.form;if(o==null)throw Error(`Cannot submit a <button> or <input type="submit"> without a <form>`);let s=e.getAttribute(`formaction`)||o.getAttribute(`action`);if(r=s?Le(s,t):null,n=e.getAttribute(`formmethod`)||o.getAttribute(`method`)||ai,i=vi(e.getAttribute(`formenctype`))||vi(o.getAttribute(`enctype`))||oi,a=new FormData(o,e),!gi()){let{name:t,type:n,value:r}=e;if(n===`image`){let e=t?`${t}.`:``;a.append(`${e}x`,`0`),a.append(`${e}y`,`0`)}else t&&a.append(t,r)}}else if(si(e))throw Error(`Cannot submit element that is not <form>, <button>, or <input type="submit|image">`);else n=ai,r=null,i=oi,o=e;return a&&i===`text/plain`&&(o=a,a=void 0),{action:r,method:n.toLowerCase(),encType:i,formData:a,body:o}}Object.getOwnPropertyNames(Object.prototype).sort().join(`\0`);var bi={"&":`\\u0026`,">":`\\u003e`,"<":`\\u003c`,"\u2028":`\\u2028`,"\u2029":`\\u2029`},xi=/[&><\u2028\u2029]/g;function Si(e){return e.replace(xi,e=>bi[e])}function Ci(e,t){if(e===!1||e==null)throw Error(t)}function wi(e,t,n,r){let i=typeof e==`string`?new URL(e,typeof window>`u`?`server://singlefetch/`:window.location.origin):e;return n?i.pathname.endsWith(`/`)?i.pathname=`${i.pathname}_.${r}`:i.pathname=`${i.pathname}.${r}`:i.pathname===`/`?i.pathname=`_root.${r}`:t&&Le(i.pathname,t)===`/`?i.pathname=`${Je(t)}/_root.${r}`:i.pathname=`${Je(i.pathname)}.${r}`,i}async function Ti(e,t){if(e.id in t)return t[e.id];try{let n=await E(()=>import(e.module),void 0,import.meta.url);return t[e.id]=n,n}catch(t){return console.error(`Error loading route module \`${e.module}\`, reloading page...`),console.error(t),window.__reactRouterContext&&window.__reactRouterContext.isSpaMode,window.location.reload(),new Promise(()=>{})}}function Ei(e){return e!=null&&typeof e.page==`string`}function Di(e){return e==null?!1:e.href==null?e.rel===`preload`&&typeof e.imageSrcSet==`string`&&typeof e.imageSizes==`string`:typeof e.rel==`string`&&typeof e.href==`string`}async function Oi(e,t,n){return Ni((await Promise.all(e.map(async e=>{let r=t.routes[e.route.id];if(r){let e=await Ti(r,n);return e.links?e.links():[]}return[]}))).flat(1).filter(Di).filter(e=>e.rel===`stylesheet`||e.rel===`preload`).map(e=>e.rel===`stylesheet`?{...e,rel:`prefetch`,as:`style`}:{...e,rel:`prefetch`}))}function ki(e,t,n,r,i,a){let o=(e,t)=>!n[t]||e.route.id!==n[t].route.id,s=(e,t)=>n[t].pathname!==e.pathname||n[t].route.path?.endsWith(`*`)&&n[t].params[`*`]!==e.params[`*`];return a===`assets`?t.filter((e,t)=>o(e,t)||s(e,t)):a===`data`?t.filter((t,a)=>{let c=r.routes[t.route.id];if(!c||!c.hasLoader)return!1;if(o(t,a)||s(t,a))return!0;if(t.route.shouldRevalidate){let r=t.route.shouldRevalidate({currentUrl:new URL(i.pathname+i.search+i.hash,window.origin),currentParams:n[0]?.params||{},nextUrl:new URL(e,window.origin),nextParams:t.params,defaultShouldRevalidate:!0});if(typeof r==`boolean`)return r}return!0}):[]}function Ai(e,t,{includeHydrateFallback:n}={}){return ji(e.map(e=>{let r=t.routes[e.route.id];if(!r)return[];let i=[r.module];return r.clientActionModule&&(i=i.concat(r.clientActionModule)),r.clientLoaderModule&&(i=i.concat(r.clientLoaderModule)),n&&r.hydrateFallbackModule&&(i=i.concat(r.hydrateFallbackModule)),r.imports&&(i=i.concat(r.imports)),i}).flat(1))}function ji(e){return[...new Set(e)]}function Mi(e){let t={},n=Object.keys(e).sort();for(let r of n)t[r]=e[r];return t}function Ni(e,t){let n=new Set,r=new Set(t);return e.reduce((e,i)=>{if(t&&!Ei(i)&&i.as===`script`&&i.href&&r.has(i.href))return e;let a=JSON.stringify(Mi(i));return n.has(a)||(n.add(a),e.push({key:a,link:i})),e},[])}function Pi(){let e=y.useContext(Jn);return Ci(e,`You must render this element inside a <DataRouterContext.Provider> element`),e}function Fi(){let e=y.useContext(Yn);return Ci(e,`You must render this element inside a <DataRouterStateContext.Provider> element`),e}var Ii=y.createContext(void 0);Ii.displayName=`FrameworkContext`;function Li(){let e=y.useContext(Ii);return Ci(e,`You must render this element inside a <HydratedRouter> element`),e}function Ri(e,t){let n=y.useContext(Ii),[r,i]=y.useState(!1),[a,o]=y.useState(!1),{onFocus:s,onBlur:c,onMouseEnter:l,onMouseLeave:u,onTouchStart:d}=t,f=y.useRef(null);y.useEffect(()=>{if(e===`render`&&o(!0),e===`viewport`){let e=new IntersectionObserver(e=>{e.forEach(e=>{o(e.isIntersecting)})},{threshold:.5});return f.current&&e.observe(f.current),()=>{e.disconnect()}}},[e]),y.useEffect(()=>{if(r){let e=setTimeout(()=>{o(!0)},100);return()=>{clearTimeout(e)}}},[r]);let p=()=>{i(!0)},m=()=>{i(!1),o(!1)};return n?e===`intent`?[a,f,{onFocus:zi(s,p),onBlur:zi(c,m),onMouseEnter:zi(l,p),onMouseLeave:zi(u,m),onTouchStart:zi(d,p)}]:[a,f,{}]:[!1,f,{}]}function zi(e,t){return n=>{e&&e(n),n.defaultPrevented||t(n)}}function Bi({page:e,...t}){let n=Zn(),{nonce:r}=Li(),{router:i}=Pi(),a=y.useMemo(()=>ge(i.routes,e,i.basename),[i.routes,e,i.basename]);return a?(t.nonce==null&&r&&(t={...t,nonce:r}),n?y.createElement(Hi,{page:e,matches:a,...t}):y.createElement(Ui,{page:e,matches:a,...t})):null}function Vi(e){let{manifest:t,routeModules:n}=Li(),[r,i]=y.useState([]);return y.useEffect(()=>{let r=!1;return Oi(e,t,n).then(e=>{r||i(e)}),()=>{r=!0}},[e,t,n]),r}function Hi({page:e,matches:t,...n}){let r=fr(),{future:i}=Li(),{basename:a}=Pi(),o=y.useMemo(()=>{if(e===r.pathname+r.search+r.hash)return[];let n=wi(e,a,i.v8_trailingSlashAwareDataRequests,`rsc`),o=!1,s=[];for(let e of t)typeof e.route.shouldRevalidate==`function`?o=!0:s.push(e.route.id);return o&&s.length>0&&n.searchParams.set(`_routes`,s.join(`,`)),[n.pathname+n.search]},[a,i.v8_trailingSlashAwareDataRequests,e,r,t]);return y.createElement(y.Fragment,null,o.map(e=>y.createElement(`link`,{key:e,rel:`prefetch`,as:`fetch`,href:e,...n})))}function Ui({page:e,matches:t,...n}){let r=fr(),{future:i,manifest:a,routeModules:o}=Li(),{basename:s}=Pi(),{loaderData:c,matches:l}=Fi(),u=y.useMemo(()=>ki(e,t,l,a,r,`data`),[e,t,l,a,r]),d=y.useMemo(()=>ki(e,t,l,a,r,`assets`),[e,t,l,a,r]),f=y.useMemo(()=>{if(e===r.pathname+r.search+r.hash)return[];let n=new Set,l=!1;if(t.forEach(e=>{let t=a.routes[e.route.id];!t||!t.hasLoader||(!u.some(t=>t.route.id===e.route.id)&&e.route.id in c&&o[e.route.id]?.shouldRevalidate||t.hasClientLoader?l=!0:n.add(e.route.id))}),n.size===0)return[];let d=wi(e,s,i.v8_trailingSlashAwareDataRequests,`data`);return l&&n.size>0&&d.searchParams.set(`_routes`,t.filter(e=>n.has(e.route.id)).map(e=>e.route.id).join(`,`)),[d.pathname+d.search]},[s,i.v8_trailingSlashAwareDataRequests,c,r,a,u,t,e,o]),p=y.useMemo(()=>Ai(d,a),[d,a]),m=Vi(d);return y.createElement(y.Fragment,null,f.map(e=>y.createElement(`link`,{key:e,rel:`prefetch`,as:`fetch`,href:e,...n})),p.map(e=>y.createElement(`link`,{key:e,rel:`modulepreload`,href:e,...n})),m.map(({key:e,link:t})=>y.createElement(`link`,{key:e,nonce:n.nonce,...t,crossOrigin:t.crossOrigin??n.crossOrigin})))}function Wi(...e){return t=>{e.forEach(e=>{typeof e==`function`?e(t):e!=null&&(e.current=t)})}}y.Component;var Gi=typeof window<`u`&&window.document!==void 0&&window.document.createElement!==void 0;try{Gi&&(window.__reactRouterVersion=`7.18.1`)}catch{}function Ki(e,t){return Mt({basename:t?.basename,getContext:t?.getContext,future:t?.future,history:I({window:t?.window}),hydrationData:t?.hydrationData||qi(),routes:e,mapRouteProperties:Yr,hydrationRouteProperties:Xr,dataStrategy:t?.dataStrategy,patchRoutesOnNavigation:t?.patchRoutesOnNavigation,window:t?.window,instrumentations:t?.instrumentations}).initialize()}function qi(){let e=window?.__staticRouterHydrationData;return e&&e.errors&&(e={...e,errors:Ji(e.errors)}),e}function Ji(e){if(!e)return null;let t=Object.entries(e),n={};for(let[e,r]of t)if(r&&r.__type===`RouteErrorResponse`)n[e]=new $e(r.status,r.statusText,r.data,r.internal===!0);else if(r&&r.__type===`Error`){if(typeof r.__subType==`string`&&Qe.includes(r.__subType)){let t=window[r.__subType];if(typeof t==`function`)try{let i=new t(r.message);i.stack=``,n[e]=i}catch{}}if(n[e]==null){let t=Error(r.message);t.stack=``,n[e]=t}}else n[e]=r;return n}function Yi({basename:e,children:t,history:n,useTransitions:r}){let[i,a]=y.useState({action:n.action,location:n.location}),o=y.useCallback(e=>{r===!1?a(e):y.startTransition(()=>a(e))},[r]);return y.useLayoutEffect(()=>n.listen(o),[n,o]),y.createElement(ii,{basename:e,children:t,location:i.location,navigationType:i.action,navigator:n,useTransitions:r})}Yi.displayName=`unstable_HistoryRouter`;var Xi=y.forwardRef(function({onClick:e,discover:t=`render`,prefetch:n=`none`,relative:r,reloadDocument:i,replace:a,mask:o,state:s,target:c,to:l,preventScrollReset:u,viewTransition:d,defaultShouldRevalidate:f,...p},m){let{basename:h,navigator:g,useTransitions:_}=y.useContext(tr),v=typeof l==`string`&&M.test(l),b=rt(l,h);l=b.to;let x=ur(l,{relative:r}),S=fr(),C=null;if(o){let e=Ge(o,[],S.mask?S.mask.pathname:`/`,!0);h!==`/`&&(e.pathname=e.pathname===`/`?h:qe([h,e.pathname])),C=g.createHref(e)}let[w,T,E]=Ri(n,p),D=ra(l,{replace:a,mask:o,state:s,target:c,preventScrollReset:u,relative:r,viewTransition:d,defaultShouldRevalidate:f,useTransitions:_});function O(t){e&&e(t),t.defaultPrevented||D(t)}let k=!(b.isExternal||i),A=y.createElement(`a`,{...p,...E,href:(k?C:void 0)||b.absoluteURL||x,onClick:k?O:e,ref:Wi(m,T),target:c,"data-discover":!v&&t===`render`?`true`:void 0});return w&&!v?y.createElement(y.Fragment,null,A,y.createElement(Bi,{page:x})):A});Xi.displayName=`Link`;var Zi=y.forwardRef(function({"aria-current":e=`page`,caseSensitive:t=!1,className:n=``,end:r=!1,style:i,to:a,viewTransition:o,children:s,...c},l){let u=br(a,{relative:c.relative}),d=fr(),f=y.useContext(Yn),{navigator:p,basename:m}=y.useContext(tr),h=f!=null&&ma(u)&&o===!0,g=p.encodeLocation?p.encodeLocation(u).pathname:u.pathname,_=d.pathname,v=f&&f.navigation&&f.navigation.location?f.navigation.location.pathname:null;t||(_=_.toLowerCase(),v=v?v.toLowerCase():null,g=g.toLowerCase()),v&&m&&(v=Le(v,m)||v);let b=g!==`/`&&g.endsWith(`/`)?g.length-1:g.length,x=_===g||!r&&_.startsWith(g)&&_.charAt(b)===`/`,S=v!=null&&(v===g||!r&&v.startsWith(g)&&v.charAt(g.length)===`/`),C={isActive:x,isPending:S,isTransitioning:h},w=x?e:void 0,T;T=typeof n==`function`?n(C):[n,x?`active`:null,S?`pending`:null,h?`transitioning`:null].filter(Boolean).join(` `);let E=typeof i==`function`?i(C):i;return y.createElement(Xi,{...c,"aria-current":w,className:T,ref:l,style:E,to:a,viewTransition:o},typeof s==`function`?s(C):s)});Zi.displayName=`NavLink`;var Qi=y.forwardRef(({discover:e=`render`,fetcherKey:t,navigate:n,reloadDocument:r,replace:i,state:a,method:o=ai,action:s,onSubmit:c,relative:l,preventScrollReset:u,viewTransition:d,defaultShouldRevalidate:f,...p},m)=>{let{useTransitions:h}=y.useContext(tr),g=sa(),_=ca(s,{relative:l}),v=o.toLowerCase()===`get`?`get`:`post`,b=typeof s==`string`&&M.test(s);return y.createElement(`form`,{ref:m,method:v,action:_,onSubmit:r?c:e=>{if(c&&c(e),e.defaultPrevented)return;e.preventDefault();let r=e.nativeEvent.submitter,s=r?.getAttribute(`formmethod`)||o,p=()=>g(r||e.currentTarget,{fetcherKey:t,method:s,navigate:n,replace:i,state:a,relative:l,preventScrollReset:u,viewTransition:d,defaultShouldRevalidate:f});h&&n!==!1?y.startTransition(()=>p()):p()},...p,"data-discover":!b&&e===`render`?`true`:void 0})});Qi.displayName=`Form`;function $i({getKey:e,storageKey:t,...n}){let r=y.useContext(Ii),{basename:i}=y.useContext(tr),a=fr(),o=Lr();fa({getKey:e,storageKey:t});let s=y.useMemo(()=>{if(!r||!e)return null;let t=da(a,o,i,e);return t===a.key?null:t},[]);if(!r||r.isSpaMode)return null;let c=((e,t)=>{if(!window.history.state||!window.history.state.key){let e=Math.random().toString(32).slice(2);window.history.replaceState({key:e},``)}try{let n=JSON.parse(sessionStorage.getItem(e)||`{}`)[t||window.history.state.key];typeof n==`number`&&window.scrollTo(0,n)}catch(t){console.error(t),sessionStorage.removeItem(e)}}).toString();return n.nonce==null&&r?.nonce&&(n.nonce=r.nonce),y.createElement(`script`,{...n,suppressHydrationWarning:!0,dangerouslySetInnerHTML:{__html:`(${c})(${Si(JSON.stringify(t||la))}, ${Si(JSON.stringify(s))})`}})}$i.displayName=`ScrollRestoration`;function ea(e){return`${e} must be used within a data router. See https://reactrouter.com/en/main/routers/picking-a-router.`}function ta(e){let t=y.useContext(Jn);return L(t,ea(e)),t}function na(e){let t=y.useContext(Yn);return L(t,ea(e)),t}function ra(e,{target:t,replace:n,mask:r,state:i,preventScrollReset:a,relative:o,viewTransition:s,defaultShouldRevalidate:c,useTransitions:l}={}){let u=hr(),d=fr(),f=br(e,{relative:o});return y.useCallback(p=>{if(fi(p,t)){p.preventDefault();let t=n===void 0?z(d)===z(f):n,m=()=>u(e,{replace:t,mask:r,state:i,preventScrollReset:a,relative:o,viewTransition:s,defaultShouldRevalidate:c});l?y.startTransition(()=>m()):m()}},[d,u,f,n,r,i,t,e,a,o,s,c,l])}function ia(e){R(typeof URLSearchParams<`u`,"You cannot use the `useSearchParams` hook in a browser that does not support the URLSearchParams API. If you need to support Internet Explorer 11, we recommend you load a polyfill such as https://github.com/ungap/url-search-params.");let t=y.useRef(pi(e)),n=y.useRef(!1),r=fr(),i=y.useMemo(()=>mi(r.search,n.current?null:t.current),[r.search]),a=hr();return[i,y.useCallback((e,t)=>{let r=pi(typeof e==`function`?e(new URLSearchParams(i)):e);n.current=!0,a(`?`+r,t)},[a,i])]}var aa=0,oa=()=>`__${String(++aa)}__`;function sa(){let{router:e}=ta(`useSubmit`),{basename:t}=y.useContext(tr),n=Fr(),r=e.fetch,i=e.navigate;return y.useCallback(async(e,a={})=>{let{action:o,method:s,encType:c,formData:l,body:u}=yi(e,t);if(a.navigate===!1){let e=a.fetcherKey||oa();await r(e,n,a.action||o,{defaultShouldRevalidate:a.defaultShouldRevalidate,preventScrollReset:a.preventScrollReset,formData:l,body:u,formMethod:a.method||s,formEncType:a.encType||c,flushSync:a.flushSync})}else await i(a.action||o,{defaultShouldRevalidate:a.defaultShouldRevalidate,preventScrollReset:a.preventScrollReset,formData:l,body:u,formMethod:a.method||s,formEncType:a.encType||c,replace:a.replace,state:a.state,fromRouteId:n,flushSync:a.flushSync,viewTransition:a.viewTransition})},[r,i,t,n])}function ca(e,{relative:t}={}){let{basename:n}=y.useContext(tr),r=y.useContext(rr);L(r,`useFormAction must be used inside a RouteContext`);let[i]=r.matches.slice(-1),a={...br(e||`.`,{relative:t})},o=fr();if(e==null){a.search=o.search;let e=new URLSearchParams(a.search),t=e.getAll(`index`);if(t.some(e=>e===``)){e.delete(`index`),t.filter(e=>e).forEach(t=>e.append(`index`,t));let n=e.toString();a.search=n?`?${n}`:``}}return(!e||e===`.`)&&i.route.index&&(a.search=a.search?a.search.replace(/^\?/,`?index&`):`?index`),n!==`/`&&(a.pathname=a.pathname===`/`?n:qe([n,a.pathname])),z(a)}var la=`react-router-scroll-positions`,ua={};function da(e,t,n,r){let i=null;return r&&(i=r(n===`/`?e:{...e,pathname:Le(e.pathname,n)||e.pathname},t)),i??(i=e.key),i}function fa({getKey:e,storageKey:t}={}){let{router:n}=ta(`useScrollRestoration`),{restoreScrollPosition:r,preventScrollReset:i}=na(`useScrollRestoration`),{basename:a}=y.useContext(tr),o=fr(),s=Lr(),c=Ir();y.useEffect(()=>(window.history.scrollRestoration=`manual`,()=>{window.history.scrollRestoration=`auto`}),[]),pa(y.useCallback(()=>{if(c.state===`idle`){let t=da(o,s,a,e);ua[t]=window.scrollY}try{sessionStorage.setItem(t||la,JSON.stringify(ua))}catch(e){R(!1,`Failed to save scroll positions in sessionStorage, <ScrollRestoration /> will not work properly (${e}).`)}window.history.scrollRestoration=`auto`},[c.state,e,a,o,s,t])),typeof document<`u`&&(y.useLayoutEffect(()=>{try{let e=sessionStorage.getItem(t||la);e&&(ua=JSON.parse(e))}catch{}},[t]),y.useLayoutEffect(()=>{let t=n?.enableScrollRestoration(ua,()=>window.scrollY,e?(t,n)=>da(t,n,a,e):void 0);return()=>t&&t()},[n,a,e]),y.useLayoutEffect(()=>{if(r!==!1){if(typeof r==`number`){window.scrollTo(0,r);return}try{if(o.hash){let e=document.getElementById(decodeURIComponent(o.hash.slice(1)));if(e){e.scrollIntoView();return}}}catch{R(!1,`"${o.hash.slice(1)}" is not a decodable element ID. The view will not scroll to it.`)}i!==!0&&window.scrollTo(0,0)}},[o,r,i]))}function pa(e,t){let{capture:n}=t||{};y.useEffect(()=>{let t=n==null?void 0:{capture:n};return window.addEventListener(`pagehide`,e,t),()=>{window.removeEventListener(`pagehide`,e,t)}},[e,n])}function ma(e,{relative:t}={}){let n=y.useContext(Qn);L(n!=null,"`useViewTransitionState` must be used within `react-router-dom`'s `RouterProvider`. Did you accidentally import `RouterProvider` from `react-router`?");let{basename:r}=ta(`useViewTransitionState`),i=br(e,{relative:t});if(!n.isTransitioning)return!1;let a=Le(n.currentLocation.pathname,r)||n.currentLocation.pathname,o=Le(n.nextLocation.pathname,r)||n.nextLocation.pathname;return Ne(i.pathname,o)!=null||Ne(i.pathname,a)!=null}function ha(e){return y.createElement(Qr,{flushSync:S.flushSync,...e})}var ga=e=>typeof e==`string`,_a=()=>{let e,t,n=new Promise((n,r)=>{e=n,t=r});return n.resolve=e,n.reject=t,n},va=e=>e==null?``:String(e),ya=(e,t,n)=>{e.forEach(e=>{t[e]&&(n[e]=t[e])})},ba=/###/g,xa=e=>e&&e.includes(`###`)?e.replace(ba,`.`):e,Sa=e=>!e||ga(e),Ca=(e,t,n)=>{let r=ga(t)?t.split(`.`):t,i=0;for(;i<r.length-1;){if(Sa(e))return{};let t=xa(r[i]);!e[t]&&n&&(e[t]=new n),e=Object.prototype.hasOwnProperty.call(e,t)?e[t]:{},++i}return Sa(e)?{}:{obj:e,k:xa(r[i])}},wa=(e,t,n)=>{let{obj:r,k:i}=Ca(e,t,Object);if(r!==void 0||t.length===1){r[i]=n;return}let a=t[t.length-1],o=t.slice(0,t.length-1),s=Ca(e,o,Object);for(;s.obj===void 0&&o.length;)a=`${o[o.length-1]}.${a}`,o=o.slice(0,o.length-1),s=Ca(e,o,Object),s?.obj&&s.obj[`${s.k}.${a}`]!==void 0&&(s.obj=void 0);s.obj[`${s.k}.${a}`]=n},Ta=(e,t,n,r)=>{let{obj:i,k:a}=Ca(e,t,Object);i[a]=i[a]||[],i[a].push(n)},Ea=(e,t)=>{let{obj:n,k:r}=Ca(e,t);if(n&&Object.prototype.hasOwnProperty.call(n,r))return n[r]},Da=(e,t,n)=>{let r=Ea(e,n);return r===void 0?Ea(t,n):r},Oa=(e,t,n)=>{for(let r in t)r!==`__proto__`&&r!==`constructor`&&(Object.prototype.hasOwnProperty.call(e,r)?ga(e[r])||e[r]instanceof String||ga(t[r])||t[r]instanceof String?n&&(e[r]=t[r]):Oa(e[r],t[r],n):e[r]=t[r]);return e},ka=e=>e.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,`\\$&`),Aa={"&":`&amp;`,"<":`&lt;`,">":`&gt;`,'"':`&quot;`,"'":`&#39;`,"/":`&#x2F;`},ja=e=>ga(e)?e.replace(/[&<>"'\/]/g,e=>Aa[e]):e,Ma=class{constructor(e){this.capacity=e,this.regExpMap=new Map,this.regExpQueue=[]}getRegExp(e){let t=this.regExpMap.get(e);if(t!==void 0)return t;let n=new RegExp(e);return this.regExpQueue.length===this.capacity&&this.regExpMap.delete(this.regExpQueue.shift()),this.regExpMap.set(e,n),this.regExpQueue.push(e),n}},Na=[` `,`,`,`?`,`!`,`;`],Pa=new Ma(20),Fa=(e,t,n)=>{t=t||``,n=n||``;let r=Na.filter(e=>!t.includes(e)&&!n.includes(e));if(r.length===0)return!0;let i=Pa.getRegExp(`(${r.map(e=>e===`?`?`\\?`:e).join(`|`)})`),a=!i.test(e);if(!a){let t=e.indexOf(n);t>0&&!i.test(e.substring(0,t))&&(a=!0)}return a},Ia=(e,t,n=`.`)=>{if(!e)return;if(e[t])return Object.prototype.hasOwnProperty.call(e,t)?e[t]:void 0;let r=t.split(n),i=e;for(let e=0;e<r.length;){if(!i||typeof i!=`object`)return;let t,a=``;for(let o=e;o<r.length;++o)if(o!==e&&(a+=n),a+=r[o],t=i[a],t!==void 0){if([`string`,`number`,`boolean`].includes(typeof t)&&o<r.length-1)continue;e+=o-e+1;break}i=t}return i},La=e=>e?.replace(/_/g,`-`),Ra={type:`logger`,log(e){this.output(`log`,e)},warn(e){this.output(`warn`,e)},error(e){this.output(`error`,e)},output(e,t){console?.[e]?.apply?.(console,t)}},za=new class e{constructor(e,t={}){this.init(e,t)}init(e,t={}){this.prefix=t.prefix||`i18next:`,this.logger=e||Ra,this.options=t,this.debug=t.debug}log(...e){return this.forward(e,`log`,``,!0)}warn(...e){return this.forward(e,`warn`,``,!0)}error(...e){return this.forward(e,`error`,``)}deprecate(...e){return this.forward(e,`warn`,`WARNING DEPRECATED: `,!0)}forward(e,t,n,r){return r&&!this.debug?null:(e=e.map(e=>ga(e)?e.replace(/[\r\n\x00-\x1F\x7F]/g,` `):e),ga(e[0])&&(e[0]=`${n}${this.prefix} ${e[0]}`),this.logger[t](e))}create(t){return new e(this.logger,{prefix:`${this.prefix}:${t}:`,...this.options})}clone(t){return t=t||this.options,t.prefix=t.prefix||this.prefix,new e(this.logger,t)}},Ba=class{constructor(){this.observers={}}on(e,t){return e.split(` `).forEach(e=>{this.observers[e]||(this.observers[e]=new Map);let n=this.observers[e].get(t)||0;this.observers[e].set(t,n+1)}),this}off(e,t){if(this.observers[e]){if(!t){delete this.observers[e];return}this.observers[e].delete(t)}}once(e,t){let n=(...r)=>{t(...r),this.off(e,n)};return this.on(e,n),this}emit(e,...t){this.observers[e]&&Array.from(this.observers[e].entries()).forEach(([e,n])=>{for(let r=0;r<n;r++)e(...t)}),this.observers[`*`]&&Array.from(this.observers[`*`].entries()).forEach(([n,r])=>{for(let i=0;i<r;i++)n(e,...t)})}},Va=class extends Ba{constructor(e,t={ns:[`translation`],defaultNS:`translation`}){super(),this.data=e||{},this.options=t,this.options.keySeparator===void 0&&(this.options.keySeparator=`.`),this.options.ignoreJSONStructure===void 0&&(this.options.ignoreJSONStructure=!0)}addNamespaces(e){this.options.ns.includes(e)||this.options.ns.push(e)}removeNamespaces(e){let t=this.options.ns.indexOf(e);t>-1&&this.options.ns.splice(t,1)}getResource(e,t,n,r={}){let i=r.keySeparator===void 0?this.options.keySeparator:r.keySeparator,a=r.ignoreJSONStructure===void 0?this.options.ignoreJSONStructure:r.ignoreJSONStructure,o;e.includes(`.`)?o=e.split(`.`):(o=[e,t],n&&(Array.isArray(n)?o.push(...n):ga(n)&&i?o.push(...n.split(i)):o.push(n)));let s=Ea(this.data,o);return!s&&!t&&!n&&e.includes(`.`)&&(e=o[0],t=o[1],n=o.slice(2).join(`.`)),s||!a||!ga(n)?s:Ia(this.data?.[e]?.[t],n,i)}addResource(e,t,n,r,i={silent:!1}){let a=i.keySeparator===void 0?this.options.keySeparator:i.keySeparator,o=[e,t];n&&(o=o.concat(a?n.split(a):n)),e.includes(`.`)&&(o=e.split(`.`),r=t,t=o[1]),this.addNamespaces(t),wa(this.data,o,r),i.silent||this.emit(`added`,e,t,n,r)}addResources(e,t,n,r={silent:!1}){for(let r in n)(ga(n[r])||Array.isArray(n[r]))&&this.addResource(e,t,r,n[r],{silent:!0});r.silent||this.emit(`added`,e,t,n)}addResourceBundle(e,t,n,r,i,a={silent:!1,skipCopy:!1}){let o=[e,t];e.includes(`.`)&&(o=e.split(`.`),r=n,n=t,t=o[1]),this.addNamespaces(t);let s=Ea(this.data,o)||{};a.skipCopy||(n=JSON.parse(JSON.stringify(n))),r?Oa(s,n,i):s={...s,...n},wa(this.data,o,s),a.silent||this.emit(`added`,e,t,n)}removeResourceBundle(e,t){this.hasResourceBundle(e,t)&&delete this.data[e][t],this.removeNamespaces(t),this.emit(`removed`,e,t)}hasResourceBundle(e,t){return this.getResource(e,t)!==void 0}getResourceBundle(e,t){return t||(t=this.options.defaultNS),this.getResource(e,t)}getDataByLanguage(e){return this.data[e]}hasLanguageSomeTranslations(e){let t=this.getDataByLanguage(e);return!!(t&&Object.keys(t)||[]).find(e=>t[e]&&Object.keys(t[e]).length>0)}toJSON(){return this.data}},Ha={processors:{},addPostProcessor(e){this.processors[e.name]=e},handle(e,t,n,r,i){return e.forEach(e=>{t=this.processors[e]?.process(t,n,r,i)??t}),t}},Ua=Symbol(`i18next/PATH_KEY`);function Wa(){let e=[],t=Object.create(null),n;return t.get=(r,i)=>(n?.revoke?.(),i===Ua?e:(e.push(i),n=Proxy.revocable(r,t),n.proxy)),Proxy.revocable(Object.create(null),t).proxy}function Ga(e,t){let{[Ua]:n}=e(Wa()),r=t?.keySeparator??`.`,i=t?.nsSeparator??`:`,a=t?.enableSelector===`strict`;if(n.length>1&&i){let e=t?.ns,o=a?Array.isArray(e)?e:e?[e]:null:Array.isArray(e)?e:null;if(o&&(a?o:o.length>1?o.slice(1):[]).includes(n[0]))return`${n[0]}${i}${n.slice(1).join(r)}`}return n.join(r)}var Ka=e=>!ga(e)&&typeof e!=`boolean`&&typeof e!=`number`,qa=class e extends Ba{constructor(e,t={}){super(),ya([`resourceStore`,`languageUtils`,`pluralResolver`,`interpolator`,`backendConnector`,`i18nFormat`,`utils`],e,this),this.options=t,this.options.keySeparator===void 0&&(this.options.keySeparator=`.`),this.logger=za.create(`translator`),this.checkedLoadedFor={}}changeLanguage(e){e&&(this.language=e)}exists(e,t={interpolation:{}}){let n={...t};if(e==null)return!1;let r=this.resolve(e,n);if(r?.res===void 0)return!1;let i=Ka(r.res);return!(n.returnObjects===!1&&i)}extractFromKey(e,t){let n=t.nsSeparator===void 0?this.options.nsSeparator:t.nsSeparator;n===void 0&&(n=`:`);let r=t.keySeparator===void 0?this.options.keySeparator:t.keySeparator,i=t.ns||this.options.defaultNS||[],a=n&&e.includes(n),o=!this.options.userDefinedKeySeparator&&!t.keySeparator&&!this.options.userDefinedNsSeparator&&!t.nsSeparator&&!Fa(e,n,r);if(a&&!o){let t=e.match(this.interpolator.nestingRegexp);if(t&&t.length>0)return{key:e,namespaces:ga(i)?[i]:i};let a=e.split(n);(n!==r||n===r&&this.options.ns.includes(a[0]))&&(i=a.shift()),e=a.join(r)}return{key:e,namespaces:ga(i)?[i]:i}}translate(t,n,r){let i=typeof n==`object`?{...n}:n;if(typeof i!=`object`&&this.options.overloadTranslationOptionHandler&&(i=this.options.overloadTranslationOptionHandler(arguments)),typeof i==`object`&&(i={...i}),i||(i={}),t==null)return``;typeof t==`function`&&(t=Ga(t,{...this.options,...i})),Array.isArray(t)||(t=[String(t)]),t=t.map(e=>typeof e==`function`?Ga(e,{...this.options,...i}):String(e));let a=i.returnDetails===void 0?this.options.returnDetails:i.returnDetails,o=i.keySeparator===void 0?this.options.keySeparator:i.keySeparator,{key:s,namespaces:c}=this.extractFromKey(t[t.length-1],i),l=c[c.length-1],u=i.nsSeparator===void 0?this.options.nsSeparator:i.nsSeparator;u===void 0&&(u=`:`);let d=i.lng||this.language,f=i.appendNamespaceToCIMode||this.options.appendNamespaceToCIMode;if(d?.toLowerCase()===`cimode`)return f?a?{res:`${l}${u}${s}`,usedKey:s,exactUsedKey:s,usedLng:d,usedNS:l,usedParams:this.getUsedParamsDetails(i)}:`${l}${u}${s}`:a?{res:s,usedKey:s,exactUsedKey:s,usedLng:d,usedNS:l,usedParams:this.getUsedParamsDetails(i)}:s;let p=this.resolve(t,i),m=p?.res,h=p?.usedKey||s,g=p?.exactUsedKey||s,_=[`[object Number]`,`[object Function]`,`[object RegExp]`],v=i.joinArrays===void 0?this.options.joinArrays:i.joinArrays,y=!this.i18nFormat||this.i18nFormat.handleAsObject,b=i.count!==void 0&&!ga(i.count),x=e.hasDefaultValue(i),S=b?this.pluralResolver.getSuffix(d,i.count,i):``,C=i.ordinal&&b?this.pluralResolver.getSuffix(d,i.count,{ordinal:!1}):``,w=b&&!i.ordinal&&i.count===0,T=w&&i[`defaultValue${this.options.pluralSeparator}zero`]||i[`defaultValue${S}`]||i[`defaultValue${C}`]||i.defaultValue,E=m;y&&!m&&x&&(E=T);let D=Ka(E),O=Object.prototype.toString.apply(E);if(y&&E&&D&&!_.includes(O)&&!(ga(v)&&Array.isArray(E))){if(!i.returnObjects&&!this.options.returnObjects){this.options.returnedObjectHandler||this.logger.warn(`accessing an object - but returnObjects options is not enabled!`);let e=this.options.returnedObjectHandler?this.options.returnedObjectHandler(h,E,{...i,ns:c}):`key '${s} (${this.language})' returned an object instead of string.`;return a?(p.res=e,p.usedParams=this.getUsedParamsDetails(i),p):e}if(o){let e=Array.isArray(E),t=e?[]:{},n=e?g:h;for(let e in E)if(Object.prototype.hasOwnProperty.call(E,e)){let r=`${n}${o}${e}`;x&&!m?t[e]=this.translate(r,{...i,defaultValue:Ka(T)?T[e]:void 0,joinArrays:!1,ns:c}):t[e]=this.translate(r,{...i,joinArrays:!1,ns:c}),t[e]===r&&(t[e]=E[e])}m=t}}else if(y&&ga(v)&&Array.isArray(m))m=m.join(v),m&&(m=this.extendTranslation(m,t,i,r));else{let e=!1,n=!1;!this.isValidLookup(m)&&x&&(e=!0,m=T),this.isValidLookup(m)||(n=!0,m=s);let a=(i.missingKeyNoValueFallbackToKey||this.options.missingKeyNoValueFallbackToKey)&&n?void 0:m,c=x&&T!==m&&this.options.updateMissing;if(n||e||c){if(this.logger.log(c?`updateKey`:`missingKey`,d,l,b&&!c?`${s}${this.pluralResolver.getSuffix(d,i.count,i)}`:s,c?T:m),o){let e=this.resolve(s,{...i,keySeparator:!1});e&&e.res&&this.logger.warn(`Seems the loaded translations were in flat JSON format instead of nested. Either set keySeparator: false on init or make sure your translations are published in nested format.`)}let e=[],t=this.languageUtils.getFallbackCodes(this.options.fallbackLng,i.lng||this.language);if(this.options.saveMissingTo===`fallback`&&t&&t[0])for(let n=0;n<t.length;n++)e.push(t[n]);else this.options.saveMissingTo===`all`?e=this.languageUtils.toResolveHierarchy(i.lng||this.language):e.push(i.lng||this.language);let n=(e,t,n)=>{let r=x&&n!==m?n:a;this.options.missingKeyHandler?this.options.missingKeyHandler(e,l,t,r,c,i):this.backendConnector?.saveMissing&&this.backendConnector.saveMissing(e,l,t,r,c,i),this.emit(`missingKey`,e,l,t,m)};this.options.saveMissing&&(this.options.saveMissingPlurals&&b?e.forEach(e=>{let t=this.pluralResolver.getSuffixes(e,i);w&&i[`defaultValue${this.options.pluralSeparator}zero`]&&!t.includes(`${this.options.pluralSeparator}zero`)&&t.push(`${this.options.pluralSeparator}zero`),t.forEach(t=>{n([e],s+t,i[`defaultValue${t}`]||T)})}):n(e,s,T))}m=this.extendTranslation(m,t,i,p,r),n&&m===s&&this.options.appendNamespaceToMissingKey&&(m=`${l}${u}${s}`),(n||e)&&this.options.parseMissingKeyHandler&&(m=this.options.parseMissingKeyHandler(this.options.appendNamespaceToMissingKey?`${l}${u}${s}`:s,e?m:void 0,i))}return a?(p.res=m,p.usedParams=this.getUsedParamsDetails(i),p):m}extendTranslation(e,t,n,r,i){if(this.i18nFormat?.parse)e=this.i18nFormat.parse(e,{...this.options.interpolation.defaultVariables,...n},n.lng||this.language||r.usedLng,r.usedNS,r.usedKey,{resolved:r});else if(!n.skipInterpolation){n.interpolation&&this.interpolator.init({...n,interpolation:{...this.options.interpolation,...n.interpolation}});let a=ga(e)&&(n?.interpolation?.skipOnVariables===void 0?this.options.interpolation.skipOnVariables:n.interpolation.skipOnVariables),o;if(a){let t=e.match(this.interpolator.nestingRegexp);o=t&&t.length}let s=n.replace&&!ga(n.replace)?n.replace:n;if(this.options.interpolation.defaultVariables&&(s={...this.options.interpolation.defaultVariables,...s}),e=this.interpolator.interpolate(e,s,n.lng||this.language||r.usedLng,n),a){let t=e.match(this.interpolator.nestingRegexp),r=t&&t.length;o<r&&(n.nest=!1)}!n.lng&&r&&r.res&&(n.lng=this.language||r.usedLng),n.nest!==!1&&(e=this.interpolator.nest(e,(...e)=>i?.[0]===e[0]&&!n.context?(this.logger.warn(`It seems you are nesting recursively key: ${e[0]} in key: ${t[0]}`),null):this.translate(...e,t),n)),n.interpolation&&this.interpolator.reset()}let a=n.postProcess||this.options.postProcess,o=ga(a)?[a]:a;return e!=null&&o?.length&&n.applyPostProcessor!==!1&&(e=Ha.handle(o,e,t,this.options&&this.options.postProcessPassResolved?{i18nResolved:{...r,usedParams:this.getUsedParamsDetails(n)},...n}:n,this)),e}resolve(e,t={}){let n,r,i,a,o;return ga(e)&&(e=[e]),Array.isArray(e)&&(e=e.map(e=>typeof e==`function`?Ga(e,{...this.options,...t}):e)),e.forEach(e=>{if(this.isValidLookup(n))return;let s=this.extractFromKey(e,t),c=s.key;r=c;let l=s.namespaces;this.options.fallbackNS&&(l=l.concat(this.options.fallbackNS));let u=t.count!==void 0&&!ga(t.count),d=u&&!t.ordinal&&t.count===0,f=t.context!==void 0&&(ga(t.context)||typeof t.context==`number`)&&t.context!==``,p=t.lngs?t.lngs:this.languageUtils.toResolveHierarchy(t.lng||this.language,t.fallbackLng);l.forEach(e=>{this.isValidLookup(n)||(o=e,!this.checkedLoadedFor[`${p[0]}-${e}`]&&this.utils?.hasLoadedNamespace&&!this.utils?.hasLoadedNamespace(o)&&(this.checkedLoadedFor[`${p[0]}-${e}`]=!0,this.logger.warn(`key "${r}" for languages "${p.join(`, `)}" won't get resolved as namespace "${o}" was not yet loaded`,`This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!`)),p.forEach(r=>{if(this.isValidLookup(n))return;a=r;let o=[c];if(this.i18nFormat?.addLookupKeys)this.i18nFormat.addLookupKeys(o,c,r,e,t);else{let e;u&&(e=this.pluralResolver.getSuffix(r,t.count,t));let n=`${this.options.pluralSeparator}zero`,i=`${this.options.pluralSeparator}ordinal${this.options.pluralSeparator}`;if(u&&(t.ordinal&&e.startsWith(i)&&o.push(c+e.replace(i,this.options.pluralSeparator)),o.push(c+e),d&&o.push(c+n)),f){let r=`${c}${this.options.contextSeparator||`_`}${t.context}`;o.push(r),u&&(t.ordinal&&e.startsWith(i)&&o.push(r+e.replace(i,this.options.pluralSeparator)),o.push(r+e),d&&o.push(r+n))}}let s;for(;s=o.pop();)this.isValidLookup(n)||(i=s,n=this.getResource(r,e,s,t))}))})}),{res:n,usedKey:r,exactUsedKey:i,usedLng:a,usedNS:o}}isValidLookup(e){return e!==void 0&&!(!this.options.returnNull&&e===null)&&!(!this.options.returnEmptyString&&e===``)}getResource(e,t,n,r={}){return this.i18nFormat?.getResource?this.i18nFormat.getResource(e,t,n,r):this.resourceStore.getResource(e,t,n,r)}getUsedParamsDetails(e={}){let t=[`defaultValue`,`ordinal`,`context`,`replace`,`lng`,`lngs`,`fallbackLng`,`ns`,`keySeparator`,`nsSeparator`,`returnObjects`,`returnDetails`,`joinArrays`,`postProcess`,`interpolation`],n=e.replace&&!ga(e.replace),r=n?e.replace:e;if(n&&e.count!==void 0&&(r={...r,count:e.count}),this.options.interpolation.defaultVariables&&(r={...this.options.interpolation.defaultVariables,...r}),!n){r={...r};for(let e of t)delete r[e]}return r}static hasDefaultValue(e){for(let t in e)if(Object.prototype.hasOwnProperty.call(e,t)&&t.startsWith(`defaultValue`)&&e[t]!==void 0)return!0;return!1}},Ja=class{constructor(e){this.options=e,this.supportedLngs=this.options.supportedLngs||!1,this.logger=za.create(`languageUtils`)}getScriptPartFromCode(e){if(e=La(e),!e||!e.includes(`-`))return null;let t=e.split(`-`);return t.length===2||(t.pop(),t[t.length-1].toLowerCase()===`x`)?null:this.formatLanguageCode(t.join(`-`))}getLanguagePartFromCode(e){if(e=La(e),!e||!e.includes(`-`))return e;let t=e.split(`-`);return this.formatLanguageCode(t[0])}formatLanguageCode(e){if(ga(e)&&e.includes(`-`)){let t;try{t=Intl.getCanonicalLocales(e)[0]}catch{}return t&&this.options.lowerCaseLng&&(t=t.toLowerCase()),t||(this.options.lowerCaseLng?e.toLowerCase():e)}return this.options.cleanCode||this.options.lowerCaseLng?e.toLowerCase():e}isSupportedCode(e){return(this.options.load===`languageOnly`||this.options.nonExplicitSupportedLngs)&&(e=this.getLanguagePartFromCode(e)),!this.supportedLngs||!this.supportedLngs.length||this.supportedLngs.includes(e)}getBestMatchFromCodes(e){if(!e)return null;let t;return e.forEach(e=>{if(t)return;let n=this.formatLanguageCode(e);(!this.options.supportedLngs||this.isSupportedCode(n))&&(t=n)}),!t&&this.options.supportedLngs&&e.forEach(e=>{if(t)return;let n=this.getScriptPartFromCode(e);if(this.isSupportedCode(n))return t=n;let r=this.getLanguagePartFromCode(e);if(this.isSupportedCode(r))return t=r;t=this.options.supportedLngs.find(e=>e===r?!0:!e.includes(`-`)&&!r.includes(`-`)?!1:!!(e.includes(`-`)&&!r.includes(`-`)&&e.slice(0,e.indexOf(`-`))===r||e.startsWith(r)&&r.length>1))}),t||(t=this.getFallbackCodes(this.options.fallbackLng)[0]),t}getFallbackCodes(e,t){if(!e)return[];if(typeof e==`function`&&(e=e(t)),ga(e)&&(e=[e]),Array.isArray(e))return e;if(!t)return e.default||[];let n=e[t];return n||(n=e[this.getScriptPartFromCode(t)]),n||(n=e[this.formatLanguageCode(t)]),n||(n=e[this.getLanguagePartFromCode(t)]),n||(n=e.default),n||[]}toResolveHierarchy(e,t){let n=this.getFallbackCodes((t===!1?[]:t)||this.options.fallbackLng||[],e),r=[],i=e=>{e&&(this.isSupportedCode(e)?r.push(e):this.logger.warn(`rejecting language code not found in supportedLngs: ${e}`))};return ga(e)&&(e.includes(`-`)||e.includes(`_`))?(this.options.load!==`languageOnly`&&i(this.formatLanguageCode(e)),this.options.load!==`languageOnly`&&this.options.load!==`currentOnly`&&i(this.getScriptPartFromCode(e)),this.options.load!==`currentOnly`&&i(this.getLanguagePartFromCode(e))):ga(e)&&i(this.formatLanguageCode(e)),n.forEach(e=>{r.includes(e)||i(this.formatLanguageCode(e))}),r}},Ya={zero:0,one:1,two:2,few:3,many:4,other:5},Xa={select:e=>e===1?`one`:`other`,resolvedOptions:()=>({pluralCategories:[`one`,`other`]})},Za=class{constructor(e,t={}){this.languageUtils=e,this.options=t,this.logger=za.create(`pluralResolver`),this.pluralRulesCache={}}clearCache(){this.pluralRulesCache={}}getRule(e,t={}){let n=La(e===`dev`?`en`:e),r=t.ordinal?`ordinal`:`cardinal`,i=JSON.stringify({cleanedCode:n,type:r});if(i in this.pluralRulesCache)return this.pluralRulesCache[i];let a;try{a=new Intl.PluralRules(n,{type:r})}catch{if(typeof Intl>`u`)return this.logger.error(`No Intl support, please use an Intl polyfill!`),Xa;if(!e.match(/-|_/))return Xa;let n=this.languageUtils.getLanguagePartFromCode(e);a=this.getRule(n,t)}return this.pluralRulesCache[i]=a,a}needsPlural(e,t={}){let n=this.getRule(e,t);return n||(n=this.getRule(`dev`,t)),n?.resolvedOptions().pluralCategories.length>1}getPluralFormsOfKey(e,t,n={}){return this.getSuffixes(e,n).map(e=>`${t}${e}`)}getSuffixes(e,t={}){let n=this.getRule(e,t);return n||(n=this.getRule(`dev`,t)),n?n.resolvedOptions().pluralCategories.sort((e,t)=>Ya[e]-Ya[t]).map(e=>`${this.options.prepend}${t.ordinal?`ordinal${this.options.prepend}`:``}${e}`):[]}getSuffix(e,t,n={}){let r=this.getRule(e,n);return r?`${this.options.prepend}${n.ordinal?`ordinal${this.options.prepend}`:``}${r.select(t)}`:(this.logger.warn(`no plural rule found for: ${e}`),this.getSuffix(`dev`,t,n))}},Qa=(e,t,n,r=`.`,i=!0)=>{let a=Da(e,t,n);return!a&&i&&ga(n)&&(a=Ia(e,n,r),a===void 0&&(a=Ia(t,n,r))),a},$a=e=>e.replace(/\$/g,`$$$$`),eo=class{constructor(e={}){this.logger=za.create(`interpolator`),this.options=e,this.format=e?.interpolation?.format||(e=>e),this.init(e)}init(e={}){e.interpolation||(e.interpolation={escapeValue:!0});let{escape:t,escapeValue:n,useRawValueToEscape:r,prefix:i,prefixEscaped:a,suffix:o,suffixEscaped:s,formatSeparator:c,unescapeSuffix:l,unescapePrefix:u,nestingPrefix:d,nestingPrefixEscaped:f,nestingSuffix:p,nestingSuffixEscaped:m,nestingOptionsSeparator:h,maxReplaces:g,alwaysFormat:_}=e.interpolation;this.escape=t===void 0?ja:t,this.escapeValue=n===void 0||n,this.useRawValueToEscape=r!==void 0&&r,this.prefix=i?ka(i):a||`{{`,this.suffix=o?ka(o):s||`}}`,this.formatSeparator=c||`,`,this.unescapePrefix=l?``:u?ka(u):`-`,this.unescapeSuffix=this.unescapePrefix?``:l?ka(l):``,this.nestingPrefix=d?ka(d):f||ka(`$t(`),this.nestingSuffix=p?ka(p):m||ka(`)`),this.nestingOptionsSeparator=h||`,`,this.maxReplaces=g||1e3,this.alwaysFormat=_!==void 0&&_,this.resetRegExp()}reset(){this.options&&this.init(this.options)}resetRegExp(){let e=(e,t)=>e?.source===t?(e.lastIndex=0,e):new RegExp(t,`g`);this.regexp=e(this.regexp,`${this.prefix}(.+?)${this.suffix}`),this.regexpUnescape=e(this.regexpUnescape,`${this.prefix}${this.unescapePrefix}(.+?)${this.unescapeSuffix}${this.suffix}`),this.nestingRegexp=e(this.nestingRegexp,`${this.nestingPrefix}((?:[^()"']+|"[^"]*"|'[^']*'|\\((?:[^()]|"[^"]*"|'[^']*')*\\))*?)${this.nestingSuffix}`)}interpolate(e,t,n,r){let i,a,o,s=this.options&&this.options.interpolation&&this.options.interpolation.defaultVariables||{},c=e=>{if(!e.includes(this.formatSeparator)){let i=Qa(t,s,e,this.options.keySeparator,this.options.ignoreJSONStructure);return this.alwaysFormat?this.format(i,void 0,n,{...r,...t,interpolationkey:e}):i}let i=e.split(this.formatSeparator),a=i.shift().trim(),o=i.join(this.formatSeparator).trim();return this.format(Qa(t,s,a,this.options.keySeparator,this.options.ignoreJSONStructure),o,n,{...r,...t,interpolationkey:a})};this.resetRegExp(),!this.escapeValue&&typeof e==`string`&&/\$t\([^)]*\{[^}]*\{\{/.test(e)&&this.logger.warn(`nesting options string contains interpolated variables with escapeValue: false — if any of those values are attacker-controlled they can inject additional nesting options (e.g. redirect lng/ns). Sanitise untrusted input before passing it to t(), or keep escapeValue: true.`);let l=r?.missingInterpolationHandler||this.options.missingInterpolationHandler,u=r?.interpolation?.skipOnVariables===void 0?this.options.interpolation.skipOnVariables:r.interpolation.skipOnVariables;return[{regex:this.regexpUnescape,safeValue:e=>e},{regex:this.regexp,safeValue:e=>this.escapeValue?this.escape(e):e}].forEach(t=>{for(o=0;i=t.regex.exec(e);){let n=i[1].trim();if(a=c(n),a===void 0)if(typeof l==`function`){let t=l(e,i,r);a=ga(t)?t:``}else if(r&&Object.prototype.hasOwnProperty.call(r,n))a=``;else if(u){a=i[0];continue}else this.logger.warn(`missed to pass in variable ${n} for interpolating ${e}`),a=``;else!ga(a)&&!this.useRawValueToEscape&&(a=va(a));let s=t.safeValue(a);if(e=e.replace(i[0],$a(s)),u?(t.regex.lastIndex+=s.length,t.regex.lastIndex-=i[0].length):t.regex.lastIndex=0,o++,o>=this.maxReplaces)break}}),e}nest(e,t,n={}){let r,i,a,o=(e,t)=>{let n=this.nestingOptionsSeparator;if(!e.includes(n))return e;let r=e.split(RegExp(`${ka(n)}[ ]*{`)),i=`{${r[1]}`;e=r[0],i=this.interpolate(i,a);let o=i.match(/'/g),s=i.match(/"/g);((o?.length??0)%2==0&&!s||(s?.length??0)%2!=0)&&(i=i.replace(/'/g,`"`));try{a=JSON.parse(i),t&&(a={...t,...a})}catch(t){return this.logger.warn(`failed parsing options string in nesting for key ${e}`,t),`${e}${n}${i}`}return a.defaultValue&&a.defaultValue.includes(this.prefix)&&delete a.defaultValue,e};for(;r=this.nestingRegexp.exec(e);){let s=[];a={...n},a=a.replace&&!ga(a.replace)?a.replace:a,a.applyPostProcessor=!1,delete a.defaultValue;let c=/{.*}/s.test(r[1])?r[1].lastIndexOf(`}`)+1:r[1].indexOf(this.formatSeparator);if(c!==-1&&(s=r[1].slice(c).split(this.formatSeparator).map(e=>e.trim()).filter(Boolean),r[1]=r[1].slice(0,c)),i=t(o.call(this,r[1].trim(),a),a),i&&r[0]===e&&!ga(i))return i;ga(i)||(i=va(i)),i||(this.logger.warn(`missed to resolve ${r[1]} for nesting ${e}`),i=``),s.length&&(i=s.reduce((e,t)=>this.format(e,t,n.lng,{...n,interpolationkey:r[1].trim()}),i.trim())),e=e.replace(r[0],i),this.regexp.lastIndex=0}return e}},to=e=>{let t=e.toLowerCase().trim(),n={};if(e.includes(`(`)){let r=e.split(`(`);t=r[0].toLowerCase().trim();let i=r[1].slice(0,-1);t===`currency`&&!i.includes(`:`)?n.currency||(n.currency=i.trim()):t===`relativetime`&&!i.includes(`:`)?n.range||(n.range=i.trim()):i.split(`;`).forEach(e=>{if(e){let[t,...r]=e.split(`:`),i=r.join(`:`).trim().replace(/^'+|'+$/g,``),a=t.trim();n[a]||(n[a]=i),i===`false`&&(n[a]=!1),i===`true`&&(n[a]=!0),isNaN(i)||(n[a]=parseInt(i,10))}})}return{formatName:t,formatOptions:n}},no=e=>{let t={};return(n,r,i)=>{let a=i;i&&i.interpolationkey&&i.formatParams&&i.formatParams[i.interpolationkey]&&i[i.interpolationkey]&&(a={...a,[i.interpolationkey]:void 0});let o=r+JSON.stringify(a),s=t[o];return s||(s=e(La(r),i),t[o]=s),s(n)}},ro=e=>(t,n,r)=>e(La(n),r)(t),io=class{constructor(e={}){this.logger=za.create(`formatter`),this.options=e,this.init(e)}init(e,t={interpolation:{}}){this.formatSeparator=t.interpolation.formatSeparator||`,`;let n=t.cacheInBuiltFormats?no:ro;this.formats={number:n((e,t)=>{let n=new Intl.NumberFormat(e,{...t});return e=>n.format(e)}),currency:n((e,t)=>{let n=new Intl.NumberFormat(e,{...t,style:`currency`});return e=>n.format(e)}),datetime:n((e,t)=>{let n=new Intl.DateTimeFormat(e,{...t});return e=>n.format(e)}),relativetime:n((e,t)=>{let n=new Intl.RelativeTimeFormat(e,{...t});return e=>n.format(e,t.range||`day`)}),list:n((e,t)=>{let n=new Intl.ListFormat(e,{...t});return e=>n.format(e)})}}add(e,t){this.formats[e.toLowerCase().trim()]=t}addCached(e,t){this.formats[e.toLowerCase().trim()]=no(t)}format(e,t,n,r={}){if(!t||e==null)return e;let i=t.split(this.formatSeparator),a=[];for(let e=0;e<i.length;e++){let t=i[e];for(;t.indexOf(`(`)>-1&&!t.includes(`)`)&&e+1<i.length;)t=`${t}${this.formatSeparator}${i[++e]}`;a.push(t)}return a.reduce((e,t)=>{let{formatName:i,formatOptions:a}=to(t);if(this.formats[i]){let t=e;try{let o=r?.formatParams?.[r.interpolationkey]||{},s=o.locale||o.lng||r.locale||r.lng||n;t=this.formats[i](e,s,{...a,...r,...o})}catch(e){this.logger.warn(e)}return t}else this.logger.warn(`there was no format function for ${i}`);return e},e)}},ao=(e,t)=>{e.pending[t]!==void 0&&(delete e.pending[t],e.pendingCount--)},oo=class extends Ba{constructor(e,t,n,r={}){super(),this.backend=e,this.store=t,this.services=n,this.languageUtils=n.languageUtils,this.options=r,this.logger=za.create(`backendConnector`),this.waitingReads=[],this.maxParallelReads=r.maxParallelReads||10,this.readingCalls=0,this.maxRetries=r.maxRetries>=0?r.maxRetries:5,this.retryTimeout=r.retryTimeout>=1?r.retryTimeout:350,this.state={},this.queue=[],this.backend?.init?.(n,r.backend,r)}queueLoad(e,t,n,r){let i={},a={},o={},s={};return e.forEach(e=>{let r=!0;t.forEach(t=>{let o=`${e}|${t}`;!n.reload&&this.store.hasResourceBundle(e,t)?this.state[o]=2:this.state[o]<0||(this.state[o]===1?a[o]===void 0&&(a[o]=!0):(this.state[o]=1,r=!1,a[o]===void 0&&(a[o]=!0),i[o]===void 0&&(i[o]=!0),s[t]===void 0&&(s[t]=!0)))}),r||(o[e]=!0)}),(Object.keys(i).length||Object.keys(a).length)&&this.queue.push({pending:a,pendingCount:Object.keys(a).length,loaded:{},errors:[],callback:r}),{toLoad:Object.keys(i),pending:Object.keys(a),toLoadLanguages:Object.keys(o),toLoadNamespaces:Object.keys(s)}}loaded(e,t,n){let r=e.split(`|`),i=r[0],a=r[1];t&&this.emit(`failedLoading`,i,a,t),!t&&n&&this.store.addResourceBundle(i,a,n,void 0,void 0,{skipCopy:!0}),this.state[e]=t?-1:2,t&&n&&(this.state[e]=0);let o={};this.queue.forEach(n=>{Ta(n.loaded,[i],a),ao(n,e),t&&n.errors.push(t),n.pendingCount===0&&!n.done&&(Object.keys(n.loaded).forEach(e=>{o[e]||(o[e]={});let t=n.loaded[e];t.length&&t.forEach(t=>{o[e][t]===void 0&&(o[e][t]=!0)})}),n.done=!0,n.errors.length?n.callback(n.errors):n.callback())}),this.emit(`loaded`,o),this.queue=this.queue.filter(e=>!e.done)}read(e,t,n,r=0,i=this.retryTimeout,a){if(!e.length)return a(null,{});if(this.readingCalls>=this.maxParallelReads){this.waitingReads.push({lng:e,ns:t,fcName:n,tried:r,wait:i,callback:a});return}this.readingCalls++;let o=(o,s)=>{if(this.readingCalls--,this.waitingReads.length>0){let e=this.waitingReads.shift();this.read(e.lng,e.ns,e.fcName,e.tried,e.wait,e.callback)}if(o&&s&&r<this.maxRetries){setTimeout(()=>{this.read(e,t,n,r+1,i*2,a)},i);return}a(o,s)},s=this.backend[n].bind(this.backend);if(s.length===2){try{let n=s(e,t);n&&typeof n.then==`function`?n.then(e=>o(null,e)).catch(o):o(null,n)}catch(e){o(e)}return}return s(e,t,o)}prepareLoading(e,t,n={},r){if(!this.backend)return this.logger.warn(`No backend was added via i18next.use. Will not load resources.`),r&&r();ga(e)&&(e=this.languageUtils.toResolveHierarchy(e)),ga(t)&&(t=[t]);let i=this.queueLoad(e,t,n,r);if(!i.toLoad.length)return i.pending.length||r(),null;i.toLoad.forEach(e=>{this.loadOne(e)})}load(e,t,n){this.prepareLoading(e,t,{},n)}reload(e,t,n){this.prepareLoading(e,t,{reload:!0},n)}loadOne(e,t=``){let n=e.split(`|`),r=n[0],i=n[1];this.read(r,i,`read`,void 0,void 0,(n,a)=>{n&&this.logger.warn(`${t}loading namespace ${i} for language ${r} failed`,n),!n&&a&&this.logger.log(`${t}loaded namespace ${i} for language ${r}`,a),this.loaded(e,n,a)})}saveMissing(e,t,n,r,i,a={},o=()=>{}){if(this.services?.utils?.hasLoadedNamespace&&!this.services?.utils?.hasLoadedNamespace(t)){this.logger.warn(`did not save key "${n}" as the namespace "${t}" was not yet loaded`,`This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!`);return}if(!(n==null||n===``)){if(this.backend?.create){let s={...a,isUpdate:i},c=this.backend.create.bind(this.backend);if(c.length<6)try{let i;i=c.length===5?c(e,t,n,r,s):c(e,t,n,r),i&&typeof i.then==`function`?i.then(e=>o(null,e)).catch(o):o(null,i)}catch(e){o(e)}else c(e,t,n,r,o,s)}!e||!e[0]||this.store.addResource(e[0],t,n,r)}}},so=()=>({debug:!1,initAsync:!0,ns:[`translation`],defaultNS:[`translation`],fallbackLng:[`dev`],fallbackNS:!1,supportedLngs:!1,nonExplicitSupportedLngs:!1,load:`all`,preload:!1,keySeparator:`.`,nsSeparator:`:`,pluralSeparator:`_`,contextSeparator:`_`,enableSelector:!1,partialBundledLanguages:!1,saveMissing:!1,updateMissing:!1,saveMissingTo:`fallback`,saveMissingPlurals:!0,missingKeyHandler:!1,missingInterpolationHandler:!1,postProcess:!1,postProcessPassResolved:!1,returnNull:!1,returnEmptyString:!0,returnObjects:!1,joinArrays:!1,returnedObjectHandler:!1,parseMissingKeyHandler:!1,appendNamespaceToMissingKey:!1,appendNamespaceToCIMode:!1,overloadTranslationOptionHandler:e=>{let t={};if(typeof e[1]==`object`&&(t=e[1]),ga(e[1])&&(t.defaultValue=e[1]),ga(e[2])&&(t.tDescription=e[2]),typeof e[2]==`object`||typeof e[3]==`object`){let n=e[3]||e[2];Object.keys(n).forEach(e=>{t[e]=n[e]})}return t},interpolation:{escapeValue:!0,prefix:`{{`,suffix:`}}`,formatSeparator:`,`,unescapePrefix:`-`,nestingPrefix:`$t(`,nestingSuffix:`)`,nestingOptionsSeparator:`,`,maxReplaces:1e3,skipOnVariables:!0},cacheInBuiltFormats:!0}),co=e=>(ga(e.ns)&&(e.ns=[e.ns]),ga(e.fallbackLng)&&(e.fallbackLng=[e.fallbackLng]),ga(e.fallbackNS)&&(e.fallbackNS=[e.fallbackNS]),e.supportedLngs&&!e.supportedLngs.includes(`cimode`)&&(e.supportedLngs=e.supportedLngs.concat([`cimode`])),e),lo=()=>{},uo=e=>{Object.getOwnPropertyNames(Object.getPrototypeOf(e)).forEach(t=>{typeof e[t]==`function`&&(e[t]=e[t].bind(e))})},fo=class e extends Ba{constructor(e={},t){if(super(),this.options=co(e),this.services={},this.logger=za,this.modules={external:[]},uo(this),t&&!this.isInitialized&&!e.isClone){if(!this.options.initAsync)return this.init(e,t),this;setTimeout(()=>{this.init(e,t)},0)}}init(e={},t){this.isInitializing=!0,typeof e==`function`&&(t=e,e={}),e.defaultNS==null&&e.ns&&(ga(e.ns)?e.defaultNS=e.ns:e.ns.includes(`translation`)||(e.defaultNS=e.ns[0]));let n=so();this.options={...n,...this.options,...co(e)},this.options.interpolation={...n.interpolation,...this.options.interpolation},e.keySeparator!==void 0&&(this.options.userDefinedKeySeparator=e.keySeparator),e.nsSeparator!==void 0&&(this.options.userDefinedNsSeparator=e.nsSeparator),typeof this.options.overloadTranslationOptionHandler!=`function`&&(this.options.overloadTranslationOptionHandler=n.overloadTranslationOptionHandler);let r=e=>e?typeof e==`function`?new e:e:null;if(!this.options.isClone){this.modules.logger?za.init(r(this.modules.logger),this.options):za.init(null,this.options);let e;e=this.modules.formatter?this.modules.formatter:io;let t=new Ja(this.options);this.store=new Va(this.options.resources,this.options);let n=this.services;n.logger=za,n.resourceStore=this.store,n.languageUtils=t,n.pluralResolver=new Za(t,{prepend:this.options.pluralSeparator}),e&&(n.formatter=r(e),n.formatter.init&&n.formatter.init(n,this.options),this.options.interpolation.format=n.formatter.format.bind(n.formatter)),n.interpolator=new eo(this.options),n.utils={hasLoadedNamespace:this.hasLoadedNamespace.bind(this)},n.backendConnector=new oo(r(this.modules.backend),n.resourceStore,n,this.options),n.backendConnector.on(`*`,(e,...t)=>{this.emit(e,...t)}),this.modules.languageDetector&&(n.languageDetector=r(this.modules.languageDetector),n.languageDetector.init&&n.languageDetector.init(n,this.options.detection,this.options)),this.modules.i18nFormat&&(n.i18nFormat=r(this.modules.i18nFormat),n.i18nFormat.init&&n.i18nFormat.init(this)),this.translator=new qa(this.services,this.options),this.translator.on(`*`,(e,...t)=>{this.emit(e,...t)}),this.modules.external.forEach(e=>{e.init&&e.init(this)})}if(this.format=this.options.interpolation.format,t||(t=lo),this.options.fallbackLng&&!this.services.languageDetector&&!this.options.lng){let e=this.services.languageUtils.getFallbackCodes(this.options.fallbackLng);e.length>0&&e[0]!==`dev`&&(this.options.lng=e[0])}!this.services.languageDetector&&!this.options.lng&&this.logger.warn(`init: no languageDetector is used and no lng is defined`),[`getResource`,`hasResourceBundle`,`getResourceBundle`,`getDataByLanguage`].forEach(e=>{this[e]=(...t)=>this.store[e](...t)}),[`addResource`,`addResources`,`addResourceBundle`,`removeResourceBundle`].forEach(e=>{this[e]=(...t)=>(this.store[e](...t),this)});let i=_a(),a=()=>{let e=(e,n)=>{this.isInitializing=!1,this.isInitialized&&!this.initializedStoreOnce&&this.logger.warn(`init: i18next is already initialized. You should call init just once!`),this.isInitialized=!0,this.options.isClone||this.logger.log(`initialized`,this.options),this.emit(`initialized`,this.options),i.resolve(n),t(e,n)};if((this.languages||this.isLanguageChangingTo)&&!this.isInitialized)return e(null,this.t.bind(this));this.changeLanguage(this.options.lng,e)};return this.options.resources||!this.options.initAsync?a():setTimeout(a,0),i}loadResources(e,t=lo){let n=t,r=ga(e)?e:this.language;if(typeof e==`function`&&(n=e),!this.options.resources||this.options.partialBundledLanguages){if(r?.toLowerCase()===`cimode`&&(!this.options.preload||this.options.preload.length===0))return n();let e=[],t=t=>{t&&t!==`cimode`&&this.services.languageUtils.toResolveHierarchy(t).forEach(t=>{t!==`cimode`&&(e.includes(t)||e.push(t))})};r?t(r):this.services.languageUtils.getFallbackCodes(this.options.fallbackLng).forEach(e=>t(e)),this.options.preload?.forEach?.(e=>t(e)),this.services.backendConnector.load(e,this.options.ns,e=>{!e&&!this.resolvedLanguage&&this.language&&this.setResolvedLanguage(this.language),n(e)})}else n(null)}reloadResources(e,t,n){let r=_a();return typeof e==`function`&&(n=e,e=void 0),typeof t==`function`&&(n=t,t=void 0),e||(e=this.languages),t||(t=this.options.ns),n||(n=lo),this.services.backendConnector.reload(e,t,e=>{r.resolve(),n(e)}),r}use(e){if(!e)throw Error(`You are passing an undefined module! Please check the object you are passing to i18next.use()`);if(!e.type)throw Error(`You are passing a wrong module! Please check the object you are passing to i18next.use()`);return e.type===`backend`&&(this.modules.backend=e),(e.type===`logger`||e.log&&e.warn&&e.error)&&(this.modules.logger=e),e.type===`languageDetector`&&(this.modules.languageDetector=e),e.type===`i18nFormat`&&(this.modules.i18nFormat=e),e.type===`postProcessor`&&Ha.addPostProcessor(e),e.type===`formatter`&&(this.modules.formatter=e),e.type===`3rdParty`&&this.modules.external.push(e),this}setResolvedLanguage(e){if(!(!e||!this.languages)&&![`cimode`,`dev`].includes(e)){for(let e=0;e<this.languages.length;e++){let t=this.languages[e];if(![`cimode`,`dev`].includes(t)&&this.store.hasLanguageSomeTranslations(t)){this.resolvedLanguage=t;break}}!this.resolvedLanguage&&!this.languages.includes(e)&&this.store.hasLanguageSomeTranslations(e)&&(this.resolvedLanguage=e,this.languages.unshift(e))}}changeLanguage(e,t){this.isLanguageChangingTo=e;let n=_a();this.emit(`languageChanging`,e);let r=e=>{this.language=e,this.languages=this.services.languageUtils.toResolveHierarchy(e),this.resolvedLanguage=void 0,this.setResolvedLanguage(e)},i=(i,a)=>{a?this.isLanguageChangingTo===e&&(r(a),this.translator.changeLanguage(a),this.isLanguageChangingTo=void 0,this.emit(`languageChanged`,a),this.logger.log(`languageChanged`,a)):this.isLanguageChangingTo=void 0,n.resolve((...e)=>this.t(...e)),t&&t(i,(...e)=>this.t(...e))},a=t=>{!e&&!t&&this.services.languageDetector&&(t=[]);let n=ga(t)?t:t&&t[0],a=this.store.hasLanguageSomeTranslations(n)?n:this.services.languageUtils.getBestMatchFromCodes(ga(t)?[t]:t);a&&(this.language||r(a),this.translator.language||this.translator.changeLanguage(a),this.services.languageDetector?.cacheUserLanguage?.(a)),this.loadResources(a,e=>{i(e,a)})};return!e&&this.services.languageDetector&&!this.services.languageDetector.async?a(this.services.languageDetector.detect()):!e&&this.services.languageDetector&&this.services.languageDetector.async?this.services.languageDetector.detect.length===0?this.services.languageDetector.detect().then(a):this.services.languageDetector.detect(a):a(e),n}getFixedT(e,t,n,r){let i=r?.scopeNs,a=(e,t,...r)=>{let o;o=typeof t==`object`?{...t}:this.options.overloadTranslationOptionHandler([e,t].concat(r)),o.lng=o.lng||a.lng,o.lngs=o.lngs||a.lngs;let s=o.ns!==void 0&&o.ns!==null;o.ns=o.ns||a.ns,o.keyPrefix!==``&&(o.keyPrefix=o.keyPrefix||n||a.keyPrefix);let c={...this.options,...o};Array.isArray(i)&&!s&&(c.ns=i),typeof o.keyPrefix==`function`&&(o.keyPrefix=Ga(o.keyPrefix,c));let l=this.options.keySeparator||`.`,u;return o.keyPrefix&&Array.isArray(e)?u=e.map(e=>(typeof e==`function`&&(e=Ga(e,c)),`${o.keyPrefix}${l}${e}`)):(typeof e==`function`&&(e=Ga(e,c)),u=o.keyPrefix?`${o.keyPrefix}${l}${e}`:e),this.t(u,o)};return ga(e)?a.lng=e:a.lngs=e,a.ns=t,a.keyPrefix=n,a}t(...e){return this.translator?.translate(...e)}exists(...e){return this.translator?.exists(...e)}setDefaultNamespace(e){this.options.defaultNS=e}hasLoadedNamespace(e,t={}){if(!this.isInitialized)return this.logger.warn(`hasLoadedNamespace: i18next was not initialized`,this.languages),!1;if(!this.languages||!this.languages.length)return this.logger.warn(`hasLoadedNamespace: i18n.languages were undefined or empty`,this.languages),!1;let n=t.lng||this.resolvedLanguage||this.languages[0],r=this.options?this.options.fallbackLng:!1,i=this.languages[this.languages.length-1];if(n.toLowerCase()===`cimode`)return!0;let a=(e,t)=>{let n=this.services.backendConnector.state[`${e}|${t}`];return n===-1||n===0||n===2};if(t.precheck){let e=t.precheck(this,a);if(e!==void 0)return e}return!!(this.hasResourceBundle(n,e)||!this.services.backendConnector.backend||this.options.resources&&!this.options.partialBundledLanguages||a(n,e)&&(!r||a(i,e)))}loadNamespaces(e,t){let n=_a();return this.options.ns?(ga(e)&&(e=[e]),e.forEach(e=>{this.options.ns.includes(e)||this.options.ns.push(e)}),this.loadResources(e=>{n.resolve(),t&&t(e)}),n):(t&&t(),Promise.resolve())}loadLanguages(e,t){let n=_a();ga(e)&&(e=[e]);let r=this.options.preload||[],i=e.filter(e=>!r.includes(e)&&this.services.languageUtils.isSupportedCode(e));return i.length?(this.options.preload=r.concat(i),this.loadResources(e=>{n.resolve(),t&&t(e)}),n):(t&&t(),Promise.resolve())}dir(e){if(e||(e=this.resolvedLanguage||(this.languages?.length>0?this.languages[0]:this.language)),!e)return`rtl`;try{let t=new Intl.Locale(e);if(t&&t.getTextInfo){let e=t.getTextInfo();if(e&&e.direction)return e.direction}}catch{}let t=`ar.shu.sqr.ssh.xaa.yhd.yud.aao.abh.abv.acm.acq.acw.acx.acy.adf.ads.aeb.aec.afb.ajp.apc.apd.arb.arq.ars.ary.arz.auz.avl.ayh.ayl.ayn.ayp.bbz.pga.he.iw.ps.pbt.pbu.pst.prp.prd.ug.ur.ydd.yds.yih.ji.yi.hbo.men.xmn.fa.jpr.peo.pes.prs.dv.sam.ckb`.split(`.`),n=this.services?.languageUtils||new Ja(so());return e.toLowerCase().indexOf(`-latn`)>1?`ltr`:t.includes(n.getLanguagePartFromCode(e))||e.toLowerCase().indexOf(`-arab`)>1?`rtl`:`ltr`}static createInstance(t={},n){let r=new e(t,n);return r.createInstance=e.createInstance,r}cloneInstance(t={},n=lo){let r=t.forkResourceStore;r&&delete t.forkResourceStore;let i={...this.options,...t,isClone:!0},a=new e(i);if((t.debug!==void 0||t.prefix!==void 0)&&(a.logger=a.logger.clone(t)),[`store`,`services`,`language`].forEach(e=>{a[e]=this[e]}),a.services={...this.services},a.services.utils={hasLoadedNamespace:a.hasLoadedNamespace.bind(a)},r&&(a.store=new Va(Object.keys(this.store.data).reduce((e,t)=>(e[t]={...this.store.data[t]},e[t]=Object.keys(e[t]).reduce((n,r)=>(n[r]={...e[t][r]},n),e[t]),e),{}),i),a.services.resourceStore=a.store),t.interpolation){let e={...so().interpolation,...this.options.interpolation,...t.interpolation},n={...i,interpolation:e};a.services.interpolator=new eo(n)}return a.translator=new qa(a.services,i),a.translator.on(`*`,(e,...t)=>{a.emit(e,...t)}),a.init(i,n),a.translator.options=i,a.translator.backendConnector.services.utils={hasLoadedNamespace:a.hasLoadedNamespace.bind(a)},a}toJSON(){return{options:this.options,store:this.store,language:this.language,languages:this.languages,resolvedLanguage:this.resolvedLanguage}}}.createInstance();fo.createInstance,fo.dir,fo.init,fo.loadResources,fo.reloadResources,fo.use,fo.changeLanguage,fo.getFixedT,fo.t,fo.exists,fo.setDefaultNamespace,fo.hasLoadedNamespace,fo.loadNamespaces,fo.loadLanguages;var po=u(s(((e,t)=>{t.exports={area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0}}))()),mo=/\s([^'"/\s><]+?)[\s/>]|([^\s=]+)=\s?(".*?"|'.*?')/g;function ho(e){var t={type:`tag`,name:``,voidElement:!1,attrs:{},children:[]},n=e.match(/<\/?([^\s]+?)[/\s>]/);if(n&&(t.name=n[1],(po.default[n[1]]||e.charAt(e.length-2)===`/`)&&(t.voidElement=!0),t.name.startsWith(`!--`))){var r=e.indexOf(`-->`);return{type:`comment`,comment:r===-1?``:e.slice(4,r)}}for(var i=new RegExp(mo),a=null;(a=i.exec(e))!==null;)if(a[0].trim())if(a[1]){var o=a[1].trim(),s=[o,``];o.indexOf(`=`)>-1&&(s=o.split(`=`)),t.attrs[s[0]]=s[1],i.lastIndex--}else a[2]&&(t.attrs[a[2]]=a[3].trim().substring(1,a[3].length-1));return t}var go=/<[a-zA-Z0-9\-\!\/](?:"[^"]*"|'[^']*'|[^'">])*>/g,_o=/^\s*$/,vo=Object.create(null);function yo(e,t){switch(t.type){case`text`:return e+t.content;case`tag`:return e+=`<`+t.name+(t.attrs?function(e){var t=[];for(var n in e)t.push(n+`="`+e[n]+`"`);return t.length?` `+t.join(` `):``}(t.attrs):``)+(t.voidElement?`/>`:`>`),t.voidElement?e:e+t.children.reduce(yo,``)+`</`+t.name+`>`;case`comment`:return e+`\x3C!--`+t.comment+`-->`}}var bo={parse:function(e,t){t||(t={}),t.components||(t.components=vo);var n,r=[],i=[],a=-1,o=!1;if(e.indexOf(`<`)!==0){var s=e.indexOf(`<`);r.push({type:`text`,content:s===-1?e:e.substring(0,s)})}return e.replace(go,function(s,c){if(o){if(s!==`</`+n.name+`>`)return;o=!1}var l,u=s.charAt(1)!==`/`,d=s.startsWith(`\x3C!--`),f=c+s.length,p=e.charAt(f);if(d){var m=ho(s);return a<0?(r.push(m),r):((l=i[a]).children.push(m),r)}if(u&&(a++,(n=ho(s)).type===`tag`&&t.components[n.name]&&(n.type=`component`,o=!0),n.voidElement||o||!p||p===`<`||n.children.push({type:`text`,content:e.slice(f,e.indexOf(`<`,f))}),a===0&&r.push(n),(l=i[a-1])&&l.children.push(n),i[a]=n),(!u||n.voidElement)&&(a>-1&&(n.voidElement||n.name===s.slice(2,-1))&&(a--,n=a===-1?r:i[a]),!o&&p!==`<`&&p)){l=a===-1?r:i[a].children;var h=e.indexOf(`<`,f),g=e.slice(f,h===-1?void 0:h);_o.test(g)&&(g=` `),(h>-1&&a+l.length>=0||g!==` `)&&l.push({type:`text`,content:g})}}),r},stringify:function(e){return e.reduce(function(e,t){return e+yo(``,t)},``)}},xo=(e,t,n,r)=>{let i=[n,{code:t,...r||{}}];if(e?.services?.logger?.forward)return e.services.logger.forward(i,`warn`,`react-i18next::`,!0);Oo(i[0])&&(i[0]=`react-i18next:: ${i[0]}`),e?.services?.logger?.warn?e.services.logger.warn(...i):console?.warn&&console.warn(...i)},So={},Co=(e,t,n,r)=>{Oo(n)&&So[n]||(Oo(n)&&(So[n]=new Date),xo(e,t,n,r))},wo=(e,t)=>()=>{if(e.isInitialized)t();else{let n=()=>{setTimeout(()=>{e.off(`initialized`,n)},0),t()};e.on(`initialized`,n)}},To=(e,t,n)=>{e.loadNamespaces(t,wo(e,n))},Eo=(e,t,n,r)=>{if(Oo(n)&&(n=[n]),e.options.preload&&e.options.preload.indexOf(t)>-1)return To(e,n,r);n.forEach(t=>{e.options.ns.indexOf(t)<0&&e.options.ns.push(t)}),e.loadLanguages(t,wo(e,r))},Do=(e,t,n={})=>!t.languages||!t.languages.length?(Co(t,`NO_LANGUAGES`,`i18n.languages were undefined or empty`,{languages:t.languages}),!0):t.hasLoadedNamespace(e,{lng:n.lng,precheck:(t,r)=>{if(n.bindI18n&&n.bindI18n.indexOf(`languageChanging`)>-1&&t.services.backendConnector.backend&&t.isLanguageChangingTo&&!r(t.isLanguageChangingTo,e))return!1}}),Oo=e=>typeof e==`string`,ko=e=>typeof e==`object`&&!!e,Ao=/&(?:amp|#38|lt|#60|gt|#62|apos|#39|quot|#34|nbsp|#160|copy|#169|reg|#174|hellip|#8230|#x2F|#47);/g,jo={"&amp;":`&`,"&#38;":`&`,"&lt;":`<`,"&#60;":`<`,"&gt;":`>`,"&#62;":`>`,"&apos;":`'`,"&#39;":`'`,"&quot;":`"`,"&#34;":`"`,"&nbsp;":` `,"&#160;":` `,"&copy;":`©`,"&#169;":`©`,"&reg;":`®`,"&#174;":`®`,"&hellip;":`…`,"&#8230;":`…`,"&#x2F;":`/`,"&#47;":`/`},Mo=e=>jo[e],No=e=>e.replace(Ao,Mo),Po={bindI18n:`languageChanged`,bindI18nStore:``,transEmptyNodeValue:``,transSupportBasicHtmlNodes:!0,transWrapTextNodes:``,transKeepBasicHtmlNodesFor:[`br`,`strong`,`i`,`p`],useSuspense:!0,unescape:No,transDefaultProps:void 0},Fo=(e={})=>{Po={...Po,...e}},Io=()=>Po,Lo,Ro=e=>{Lo=e},zo=()=>Lo,Bo=(e,t)=>{if(!e)return!1;let n=e.props?.children??e.children;return t?n.length>0:!!n},Vo=e=>{if(!e)return[];let t=e.props?.children??e.children;return e.props?.i18nIsDynamicList?Uo(t):t},Ho=e=>Array.isArray(e)&&e.every(y.isValidElement),Uo=e=>Array.isArray(e)?e:[e],Wo=(e,t)=>{let n={...t};return n.props={...t.props,...e.props},n},Go=e=>{let t={};if(!e)return t;let n=e=>{Uo(e).forEach(e=>{Oo(e)||(Bo(e)?n(Vo(e)):ko(e)&&!(0,y.isValidElement)(e)&&Object.assign(t,e))})};return n(e),t},Ko=(e,t,n,r)=>{if(!e)return``;let i=``,a=Uo(e),o=t?.transSupportBasicHtmlNodes?t.transKeepBasicHtmlNodesFor??[]:[];return a.forEach((e,a)=>{if(Oo(e)){i+=`${e}`;return}if((0,y.isValidElement)(e)){let{props:s,type:c}=e,l=Object.keys(s).length,u=o.indexOf(c)>-1,d=s.children;if(!d&&u&&!l){i+=`<${c}/>`;return}if(!d&&(!u||l)||s.i18nIsDynamicList){i+=`<${a}></${a}>`;return}if(u&&l<=1){let e=Oo(d)?d:Ko(d,t,n,r);i+=`<${c}>${e}</${c}>`;return}let f=Ko(d,t,n,r);i+=`<${a}>${f}</${a}>`;return}if(e===null){xo(n,`TRANS_NULL_VALUE`,`Passed in a null value as child`,{i18nKey:r});return}if(ko(e)){let{format:t,...a}=e,o=Object.keys(a);if(o.length===1){let e=t?`${o[0]}, ${t}`:o[0];i+=`{{${e}}}`;return}xo(n,`TRANS_INVALID_OBJ`,`Invalid child - Object should only have keys {{ value, format }} (format is optional).`,{i18nKey:r,child:e});return}xo(n,`TRANS_INVALID_VAR`,`Passed in a variable like {number} - pass variables for interpolation as full objects like {{number}}.`,{i18nKey:r,child:e})}),i},qo=(e,t=[],n={})=>{if(!e)return e;let r=Object.keys(n),i=[...t,...r],a=``,o=0;for(;o<e.length;)if(e[o]===`<`){let t=!1,n=e.slice(o).match(/^<\/(\d+|[a-zA-Z][a-zA-Z0-9_-]*)>/);if(n){let e=n[1];(/^\d+$/.test(e)||i.includes(e))&&(t=!0,a+=n[0],o+=n[0].length)}if(!t){let n=e.slice(o).match(/^<(\d+|[a-zA-Z][a-zA-Z0-9_-]*)(\s+[\w-]+(?:=(?:"[^"]*"|'[^']*'|[^\s>]+))?)*\s*(\/)?>/);if(n){let e=n[1];(/^\d+$/.test(e)||i.includes(e))&&(t=!0,a+=n[0],o+=n[0].length)}}t||(a+=`&lt;`,o+=1)}else a+=e[o],o+=1;return a},Jo=(e,t,n,r,i,a,o)=>{if(n===``)return[];let s=i.transKeepBasicHtmlNodesFor||[],c=n&&new RegExp(s.map(e=>`<${e}`).join(`|`)).test(n);if(!e&&!t&&!c&&!o)return[n];let l=t??{},u=e=>{Uo(e).forEach(e=>{Oo(e)||(Bo(e)?u(Vo(e)):ko(e)&&!(0,y.isValidElement)(e)&&Object.assign(l,e))})};u(e);let d=qo(n,s,l),f=bo.parse(`<0>${d}</0>`),p={...l,...a},m=(e,t,n)=>{let r=Vo(e),i=g(r,t.children,n);return Ho(r)&&i.length===0||e.props?.i18nIsDynamicList?r:i},h=(e,t,n,r,i)=>{e.dummy?(e.children=t,n.push((0,y.cloneElement)(e,{key:r},i?void 0:t))):n.push(...y.Children.map([e],e=>{if(e.type===y.Fragment||e.props?.i18nIsDynamicList!==void 0){let n={key:r};return e&&e.props&&Object.keys(e.props).forEach(t=>{t===`children`||t===`i18nIsDynamicList`||(n[t]=e.props[t])}),(0,y.createElement)(e.type,n,i?null:t)}let n={key:r};return e&&e.props&&Object.keys(e.props).forEach(t=>{t===`ref`||t===`children`||(n[t]=e.props[t])}),(0,y.cloneElement)(e,n,i?null:t)}))},g=(e,n,a)=>{let l=Uo(e),u=Uo(n),d={};return u.reduce((e,n,u)=>{let f=n.children?.[0]?.content&&r.services.interpolator.interpolate(n.children[0].content,p,r.language);if(n.type===`tag`){let _=l[parseInt(n.name,10)];!_&&t&&(_=t[n.name]),a.length===1&&!_&&(_=a[0][n.name]),_||(_={});let v={...n.attrs};o&&Object.keys(v).forEach(e=>{let t=v[e];Oo(t)&&(v[e]=No(t))});let b=Object.keys(v).length===0?_:Wo({props:v},_),x=(0,y.isValidElement)(b),S=x&&Bo(n,!0)&&!n.voidElement,C=c&&ko(b)&&b.dummy&&!x,w=ko(t)&&Object.hasOwnProperty.call(t,n.name);if(Oo(b)){let t=r.services.interpolator.interpolate(b,p,r.language);e.push(t)}else if(Bo(b)||S){let t=m(b,n,a);h(b,t,e,u)}else if(C){let t=g(l,n.children,a);h(b,t,e,u)}else if(Number.isNaN(parseFloat(n.name)))if(w){let t=m(b,n,a);h(b,t,e,u,n.voidElement)}else if(i.transSupportBasicHtmlNodes&&s.indexOf(n.name)>-1)if(n.voidElement)e.push((0,y.createElement)(n.name,{key:`${n.name}-${u}`}));else{let t=d[n.name]||0;d[n.name]=t+1;let r,i=0;for(let e=0;e<l.length;e+=1){let a=l[e];if((0,y.isValidElement)(a)&&a.type===n.name){if(i===t){r=a;break}i+=1}}let o=r?Uo(Vo(r)):l,s=g(o,n.children,a);e.push((0,y.createElement)(n.name,{key:`${n.name}-${u}`},s))}else if(n.voidElement)e.push(`<${n.name} />`);else{let t=g(l,n.children,a);e.push(`<${n.name}>${t}</${n.name}>`)}else if(ko(b)&&!x){let t=n.children[0]?f:null;t&&e.push(t)}else h(b,f,e,u,n.children.length!==1||!f)}else if(n.type===`text`){let t=i.transWrapTextNodes,a=typeof i.unescape==`function`?i.unescape:Io().unescape,s=o?a(r.services.interpolator.interpolate(n.content,p,r.language)):r.services.interpolator.interpolate(n.content,p,r.language);t?e.push((0,y.createElement)(t,{key:`${n.name}-${u}`},s)):e.push(s)}return e},[])};return Vo(g([{dummy:!0,children:e||[]}],f,Uo(e||[]))[0])},Yo=(e,t,n)=>{let r=e.key||t,i=(0,y.cloneElement)(e,{key:r});if(!i.props||!i.props.children||n.indexOf(`${t}/>`)<0&&n.indexOf(`${t} />`)<0)return i;function a(){return(0,y.createElement)(y.Fragment,null,i)}return(0,y.createElement)(a,{key:r})},Xo=(e,t)=>e.map((e,n)=>Yo(e,n,t)),Zo=(e,t)=>{let n={};return Object.keys(e).forEach(r=>{Object.assign(n,{[r]:Yo(e[r],r,t)})}),n},Qo=(e,t,n,r)=>e?Array.isArray(e)?Xo(e,t):ko(e)?Zo(e,t):(Co(n,`TRANS_INVALID_COMPONENTS`,`<Trans /> "components" prop expects an object or array`,{i18nKey:r}),null):null,$o=e=>!ko(e)||Array.isArray(e)?!1:Object.keys(e).reduce((e,t)=>e&&Number.isNaN(Number.parseFloat(t)),!0);function es({children:e,count:t,parent:n,i18nKey:r,context:i,tOptions:a={},values:o,defaults:s,components:c,ns:l,i18n:u,t:d,shouldUnescape:f,...p}){let m=u||zo();if(!m)return Co(m,`NO_I18NEXT_INSTANCE`,`Trans: You need to pass in an i18next instance using i18nextReactModule`,{i18nKey:r}),e;let h=d||m.t.bind(m)||(e=>e),g={...Io(),...m.options?.react},_=l||h.ns||m.options?.defaultNS;_=Oo(_)?[_]:_||[`translation`];let{transDefaultProps:v}=g,b=v?.tOptions?{...v.tOptions,...a}:a,x=f??v?.shouldUnescape,S=v?.values?{...v.values,...o}:o,C=v?.components?{...v.components,...c}:c,w=Ko(e,g,m,r),T=s||b?.defaultValue||w||g.transEmptyNodeValue||(typeof r==`function`?Ga(r):r),{hashTransKey:E}=g,D=r||(E?E(w||T):w||T);o=m.options?.interpolation?.defaultVariables?S&&Object.keys(S).length>0?{...S,...m.options.interpolation.defaultVariables}:{...m.options.interpolation.defaultVariables}:S;let O=Go(e);O&&typeof O.count==`number`&&t===void 0&&(t=O.count);let k=o||t!==void 0&&!m.options?.interpolation?.alwaysFormat||!e?b.interpolation:{interpolation:{...b.interpolation,prefix:`#$?`,suffix:`?$#`}},A={...b,context:i||b.context,count:t,...o,...k,defaultValue:T,ns:_},j=D?h(D,A):T;j===D&&T&&(j=T);let M=Qo(C,j,m,r),N=M||e,ee=null;$o(M)&&(ee=M,N=e);let P=Jo(N,ee,j,m,g,A,x),F=n??g.defaultTransParent;return F?(0,y.createElement)(F,p,P):P}var ts={type:`3rdParty`,init(e){Fo(e.options.react),Ro(e)}},ns=(0,y.createContext)(),rs=class{constructor(){this.usedNamespaces={}}addUsedNamespaces(e){e.forEach(e=>{this.usedNamespaces[e]||(this.usedNamespaces[e]=!0)})}getUsedNamespaces(){return Object.keys(this.usedNamespaces)}};function is({children:e,count:t,parent:n,i18nKey:r,context:i,tOptions:a={},values:o,defaults:s,components:c,ns:l,i18n:u,t:d,shouldUnescape:f,...p}){let{i18n:m,defaultNS:h}=(0,y.useContext)(ns)||{},g=u||m||zo(),_=d||g?.t.bind(g);return es({children:e,count:t,parent:n,i18nKey:r,context:i,tOptions:a,values:o,defaults:s,components:c,ns:l||_?.ns||h||g?.options?.defaultNS,i18n:g,t:d,shouldUnescape:f,...p})}var as=s((e=>{var t=f();function n(e,t){return e===t&&(e!==0||1/e==1/t)||e!==e&&t!==t}var r=typeof Object.is==`function`?Object.is:n,i=t.useState,a=t.useEffect,o=t.useLayoutEffect,s=t.useDebugValue;function c(e,t){var n=t(),r=i({inst:{value:n,getSnapshot:t}}),c=r[0].inst,u=r[1];return o(function(){c.value=n,c.getSnapshot=t,l(c)&&u({inst:c})},[e,n,t]),a(function(){return l(c)&&u({inst:c}),e(function(){l(c)&&u({inst:c})})},[e]),s(n),n}function l(e){var t=e.getSnapshot;e=e.value;try{var n=t();return!r(e,n)}catch{return!0}}function u(e,t){return t()}var d=typeof window>`u`||window.document===void 0||window.document.createElement===void 0?u:c;e.useSyncExternalStore=t.useSyncExternalStore===void 0?d:t.useSyncExternalStore})),os=s(((e,t)=>{t.exports=as()}))(),ss={t:(e,t)=>{if(Oo(t))return t;if(ko(t)&&Oo(t.defaultValue))return t.defaultValue;if(typeof e==`function`)return``;if(Array.isArray(e)){let t=e[e.length-1];return typeof t==`function`?``:t}return e},ready:!1},cs=()=>()=>{},B=(e,t={})=>{let{i18n:n}=t,{i18n:r,defaultNS:i}=(0,y.useContext)(ns)||{},a=n||r||zo();a&&!a.reportNamespaces&&(a.reportNamespaces=new rs),a||Co(a,`NO_I18NEXT_INSTANCE`,`useTranslation: You will need to pass in an i18next instance by using initReactI18next`);let o=(0,y.useMemo)(()=>({...Io(),...a?.options?.react,...t}),[a,t]),{useSuspense:s,keyPrefix:c}=o,l=e||i||a?.options?.defaultNS,u=Oo(l)?[l]:l||[`translation`],d=(0,y.useMemo)(()=>u,u);a?.reportNamespaces?.addUsedNamespaces?.(d);let f=(0,y.useRef)(0),p=(0,y.useCallback)(e=>{if(!a)return cs;let{bindI18n:t,bindI18nStore:n}=o,r=()=>{f.current+=1,e()};return t&&a.on(t,r),n&&a.store.on(n,r),()=>{t&&t.split(` `).forEach(e=>a.off(e,r)),n&&n.split(` `).forEach(e=>a.store.off(e,r))}},[a,o]),m=(0,y.useRef)(),h=(0,y.useCallback)(()=>{if(!a)return ss;let e=!!(a.isInitialized||a.initializedStoreOnce)&&d.every(e=>Do(e,a,o)),n=t.lng||a.language,r=f.current,i=m.current;if(i&&i.ready===e&&i.lng===n&&i.keyPrefix===c&&i.revision===r)return i;let s={t:a.getFixedT(n,o.nsMode===`fallback`?d:d[0],c,{scopeNs:d}),ready:e,lng:n,keyPrefix:c,revision:r};return m.current=s,s},[a,d,c,o,t.lng]),[g,_]=(0,y.useState)(0),{t:v,ready:b}=(0,os.useSyncExternalStore)(p,h,h);(0,y.useEffect)(()=>{if(a&&!b&&!s){let e=()=>_(e=>e+1);t.lng?Eo(a,t.lng,d,e):To(a,d,e)}},[a,t.lng,d,b,s,g]);let x=a||{},S=(0,y.useRef)(null),C=(0,y.useRef)(),w=e=>{let t=Object.getOwnPropertyDescriptors(e);t.__original&&delete t.__original;let n=Object.create(Object.getPrototypeOf(e),t);if(!Object.prototype.hasOwnProperty.call(n,`__original`))try{Object.defineProperty(n,"__original",{value:e,writable:!1,enumerable:!1,configurable:!1})}catch{}return n},T=(0,y.useMemo)(()=>{let e=x,t=e?.language,n=e;e&&(S.current&&S.current.__original===e&&C.current===t?n=S.current:(n=w(e),S.current=n,C.current=t));let r=!b&&!s?(...e)=>(Co(a,`USE_T_BEFORE_READY`,`useTranslation: t was called before ready. When using useSuspense: false, make sure to check the ready flag before using t.`),v(...e)):v,i=[r,n,b];return i.t=r,i.i18n=n,i.ready=b,i},[v,x,b,x.resolvedLanguage,x.language,x.languages]);if(a&&s&&!b)throw new Promise(e=>{let n=()=>e();t.lng?Eo(a,t.lng,d,n):To(a,d,n)});return T},ls=s((e=>{var t=Symbol.for(`react.transitional.element`),n=Symbol.for(`react.fragment`);function r(e,n,r){var i=null;if(r!==void 0&&(i=``+r),n.key!==void 0&&(i=``+n.key),`key`in n)for(var a in r={},n)a!==`key`&&(r[a]=n[a]);else r=n;return n=r.ref,{$$typeof:t,type:e,key:i,ref:n===void 0?null:n,props:r}}e.Fragment=n,e.jsx=r,e.jsxs=r})),us=s(((e,t)=>{t.exports=ls()})),V=us();function H({children:e,variant:t=`primary`,size:n=`md`,fullWidth:r=!1,loading:i=!1,className:a=``,disabled:o,...s}){let c=e!=null&&e!==!1;return(0,V.jsxs)(`button`,{className:[`btn`,`btn-${t}`,n===`sm`?`btn-sm`:``,r?`btn-full`:``,a].filter(Boolean).join(` `),disabled:o||i,...s,children:[i&&(0,V.jsx)(`span`,{className:`loading-spinner`,"aria-hidden":`true`}),c&&(0,V.jsx)(`span`,{children:e})]})}function ds({label:e,labelExtra:t,topExtra:n,hint:r,error:i,rightElement:a,className:o=``,id:s,...c}){let l=(0,y.useId)(),u=s??l,d=r?`${u}-hint`:void 0,f=i?`${u}-error`:void 0,p=[c[`aria-describedby`],f,d].filter(Boolean).join(` `)||void 0;return(0,V.jsxs)(`div`,{className:`form-group`,children:[n,e&&(0,V.jsx)(`label`,{htmlFor:u,children:e}),t,(0,V.jsxs)(`div`,{style:{position:`relative`},children:[(0,V.jsx)(`input`,{id:u,className:`input ${o}`.trim(),"aria-invalid":!!i||c[`aria-invalid`],"aria-describedby":p,...c}),a&&(0,V.jsx)(`div`,{style:{position:`absolute`,right:8,top:`50%`,transform:`translateY(-50%)`},children:a})]}),r&&(0,V.jsx)(`div`,{id:d,className:`hint`,children:r}),i&&(0,V.jsx)(`div`,{id:f,className:`error-box`,children:i})]})}var fs={xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:2,strokeLinecap:`round`,strokeLinejoin:`round`,"aria-hidden":`true`,focusable:`false`};function ps({size:e=20,...t}){return(0,V.jsxs)(`svg`,{...fs,width:e,height:e,...t,children:[(0,V.jsx)(`rect`,{x:`9`,y:`9`,width:`13`,height:`13`,rx:`2`}),(0,V.jsx)(`path`,{d:`M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1`})]})}function ms({size:e=20,...t}){return(0,V.jsxs)(`svg`,{...fs,width:e,height:e,...t,children:[(0,V.jsx)(`line`,{x1:`21`,x2:`14`,y1:`4`,y2:`4`}),(0,V.jsx)(`line`,{x1:`10`,x2:`3`,y1:`4`,y2:`4`}),(0,V.jsx)(`line`,{x1:`21`,x2:`12`,y1:`12`,y2:`12`}),(0,V.jsx)(`line`,{x1:`8`,x2:`3`,y1:`12`,y2:`12`}),(0,V.jsx)(`line`,{x1:`21`,x2:`16`,y1:`20`,y2:`20`}),(0,V.jsx)(`line`,{x1:`12`,x2:`3`,y1:`20`,y2:`20`}),(0,V.jsx)(`line`,{x1:`14`,x2:`14`,y1:`2`,y2:`6`}),(0,V.jsx)(`line`,{x1:`8`,x2:`8`,y1:`10`,y2:`14`}),(0,V.jsx)(`line`,{x1:`16`,x2:`16`,y1:`18`,y2:`22`})]})}function hs({size:e=20,...t}){return(0,V.jsxs)(`svg`,{...fs,width:e,height:e,...t,children:[(0,V.jsx)(`path`,{d:`m15.5 7.5 2.3 2.3a1 1 0 0 0 1.4 0l2.1-2.1a1 1 0 0 0 0-1.4L19 4`}),(0,V.jsx)(`path`,{d:`m21 2-9.6 9.6`}),(0,V.jsx)(`circle`,{cx:`7.5`,cy:`15.5`,r:`5.5`})]})}function gs({size:e=20,...t}){return(0,V.jsxs)(`svg`,{...fs,width:e,height:e,...t,children:[(0,V.jsx)(`path`,{d:`M12 8V4H8`}),(0,V.jsx)(`rect`,{width:`16`,height:`12`,x:`4`,y:`8`,rx:`2`}),(0,V.jsx)(`path`,{d:`M2 14h2`}),(0,V.jsx)(`path`,{d:`M20 14h2`}),(0,V.jsx)(`path`,{d:`M15 13v2`}),(0,V.jsx)(`path`,{d:`M9 13v2`})]})}function _s({size:e=20,...t}){return(0,V.jsxs)(`svg`,{...fs,width:e,height:e,...t,children:[(0,V.jsx)(`rect`,{x:`3`,y:`5`,width:`6`,height:`6`,rx:`1.5`}),(0,V.jsx)(`rect`,{x:`15`,y:`5`,width:`6`,height:`6`,rx:`1.5`}),(0,V.jsx)(`rect`,{x:`9`,y:`13`,width:`6`,height:`6`,rx:`1.5`}),(0,V.jsx)(`path`,{d:`M9 8h6`}),(0,V.jsx)(`path`,{d:`M12 11v2`}),(0,V.jsx)(`path`,{d:`M7.5 11v2`}),(0,V.jsx)(`path`,{d:`M16.5 11v2`})]})}function vs({size:e=20,...t}){return(0,V.jsxs)(`svg`,{...fs,width:e,height:e,...t,children:[(0,V.jsx)(`rect`,{x:`3.5`,y:`3.5`,width:`5`,height:`5`,rx:`1.4`}),(0,V.jsx)(`rect`,{x:`15.5`,y:`3.5`,width:`5`,height:`5`,rx:`1.4`}),(0,V.jsx)(`rect`,{x:`3.5`,y:`15.5`,width:`5`,height:`5`,rx:`1.4`}),(0,V.jsx)(`rect`,{x:`15.5`,y:`15.5`,width:`5`,height:`5`,rx:`1.4`}),(0,V.jsx)(`path`,{d:`M8.5 8.5 10.75 10.75`}),(0,V.jsx)(`path`,{d:`M15.5 8.5 13.25 10.75`}),(0,V.jsx)(`path`,{d:`M8.5 15.5 10.75 13.25`}),(0,V.jsx)(`path`,{d:`M15.5 15.5 13.25 13.25`}),(0,V.jsx)(`circle`,{cx:`12`,cy:`12`,r:`1.6`,fill:`currentColor`,stroke:`none`})]})}function ys({size:e=20,...t}){return(0,V.jsxs)(`svg`,{...fs,width:e,height:e,...t,children:[(0,V.jsx)(`path`,{d:`M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z`}),(0,V.jsx)(`path`,{d:`M14 2v4a2 2 0 0 0 2 2h4`}),(0,V.jsx)(`path`,{d:`M10 9H8`}),(0,V.jsx)(`path`,{d:`M16 13H8`}),(0,V.jsx)(`path`,{d:`M16 17H8`})]})}function bs({size:e=20,...t}){return(0,V.jsx)(`svg`,{...fs,width:e,height:e,...t,children:(0,V.jsx)(`path`,{d:`M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z`})})}function xs({size:e=20,...t}){return(0,V.jsxs)(`svg`,{...fs,width:e,height:e,...t,children:[(0,V.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.73V20a2 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-.39a2 2 0 0 0-.73-2.73l-.15-.08a2 2 0 0 1-1-1.74v-.5a2 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`}),(0,V.jsx)(`circle`,{cx:`12`,cy:`12`,r:`3`})]})}function Ss({size:e=20,...t}){return(0,V.jsxs)(`svg`,{...fs,width:e,height:e,...t,children:[(0,V.jsx)(`path`,{d:`M12 22v-5`}),(0,V.jsx)(`path`,{d:`M9 8V2`}),(0,V.jsx)(`path`,{d:`M15 8V2`}),(0,V.jsx)(`path`,{d:`M6 8h12v4a6 6 0 0 1-12 0Z`})]})}function Cs({size:e=20,...t}){return(0,V.jsxs)(`svg`,{...fs,width:e,height:e,...t,children:[(0,V.jsx)(`path`,{d:`M15 12h-5`}),(0,V.jsx)(`path`,{d:`M15 8h-5`}),(0,V.jsx)(`path`,{d:`M19 17V5a2 2 0 0 0-2-2H4`}),(0,V.jsx)(`path`,{d:`M8 21h12a2 2 0 0 0 2-2v-1a1 1 0 0 0-1-1H11a1 1 0 0 0-1 1v1a2 2 0 1 1-4 0V5a2 2 0 1 0-4 0v2a1 1 0 0 0 1 1h3`})]})}function ws({size:e=20,...t}){return(0,V.jsxs)(`svg`,{...fs,width:e,height:e,...t,children:[(0,V.jsx)(`circle`,{cx:`12`,cy:`12`,r:`10`}),(0,V.jsx)(`path`,{d:`M12 16v-4`}),(0,V.jsx)(`path`,{d:`M12 8h.01`})]})}function Ts({size:e=20,...t}){return(0,V.jsxs)(`svg`,{...fs,width:e,height:e,...t,children:[(0,V.jsx)(`path`,{d:`M21 12a9 9 0 1 1-9-9c2.52 0 4.93 1 6.74 2.74L21 8`}),(0,V.jsx)(`path`,{d:`M21 3v5h-5`})]})}function Es({size:e=20,...t}){return(0,V.jsxs)(`svg`,{...fs,width:e,height:e,...t,children:[(0,V.jsx)(`path`,{d:`M12 15V3`}),(0,V.jsx)(`path`,{d:`M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4`}),(0,V.jsx)(`path`,{d:`m7 10 5 5 5-5`})]})}function Ds({size:e=20,...t}){return(0,V.jsxs)(`svg`,{...fs,width:e,height:e,...t,children:[(0,V.jsx)(`path`,{d:`M12 3v12`}),(0,V.jsx)(`path`,{d:`M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4`}),(0,V.jsx)(`path`,{d:`m17 8-5-5-5 5`})]})}function Os({size:e=20,...t}){return(0,V.jsxs)(`svg`,{...fs,width:e,height:e,...t,children:[(0,V.jsx)(`path`,{d:`M3 6h18`}),(0,V.jsx)(`path`,{d:`M19 6v14c0 1-1 2-2 2H7c-1 0-2-1-2-2V6`}),(0,V.jsx)(`path`,{d:`M8 6V4c0-1 1-2 2-2h4c1 0 2 1 2 2v2`}),(0,V.jsx)(`line`,{x1:`10`,x2:`10`,y1:`11`,y2:`17`}),(0,V.jsx)(`line`,{x1:`14`,x2:`14`,y1:`11`,y2:`17`})]})}function ks({size:e=20,...t}){return(0,V.jsxs)(`svg`,{...fs,width:e,height:e,...t,children:[(0,V.jsx)(`path`,{d:`M15 3h6v6`}),(0,V.jsx)(`path`,{d:`m21 3-7 7`}),(0,V.jsx)(`path`,{d:`M9 21H3v-6`}),(0,V.jsx)(`path`,{d:`m3 21 7-7`})]})}function As({size:e=20,...t}){return(0,V.jsxs)(`svg`,{...fs,width:e,height:e,...t,children:[(0,V.jsx)(`path`,{d:`M4 14h6v6`}),(0,V.jsx)(`path`,{d:`m10 14-7 7`}),(0,V.jsx)(`path`,{d:`M20 10h-6V4`}),(0,V.jsx)(`path`,{d:`m14 10 7-7`})]})}function js({size:e=20,...t}){return(0,V.jsxs)(`svg`,{...fs,width:e,height:e,...t,children:[(0,V.jsx)(`path`,{d:`M5 12h14`}),(0,V.jsx)(`path`,{d:`M12 5v14`})]})}function Ms({size:e=20,...t}){return(0,V.jsxs)(`svg`,{...fs,width:e,height:e,...t,children:[(0,V.jsx)(`path`,{d:`M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z`}),(0,V.jsx)(`path`,{d:`m15 5 4 4`})]})}function Ns({size:e=20,...t}){return(0,V.jsxs)(`svg`,{...fs,width:e,height:e,...t,children:[(0,V.jsx)(`path`,{d:`m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3Z`}),(0,V.jsx)(`path`,{d:`M12 9v4`}),(0,V.jsx)(`path`,{d:`M12 17h.01`})]})}function Ps({size:e=20,...t}){return(0,V.jsxs)(`svg`,{...fs,width:e,height:e,...t,children:[(0,V.jsx)(`circle`,{cx:`12`,cy:`12`,r:`10`}),(0,V.jsx)(`path`,{d:`m9 12 2 2 4-4`})]})}function Fs({size:e=20,...t}){return(0,V.jsxs)(`svg`,{...fs,width:e,height:e,...t,children:[(0,V.jsx)(`rect`,{x:`16`,y:`16`,width:`6`,height:`6`,rx:`1`}),(0,V.jsx)(`rect`,{x:`2`,y:`16`,width:`6`,height:`6`,rx:`1`}),(0,V.jsx)(`rect`,{x:`9`,y:`2`,width:`6`,height:`6`,rx:`1`}),(0,V.jsx)(`path`,{d:`M5 16v-3a1 1 0 0 1 1-1h12a1 1 0 0 1 1 1v3`}),(0,V.jsx)(`path`,{d:`M12 12V8`})]})}function Is({size:e=20,...t}){return(0,V.jsx)(`svg`,{...fs,width:e,height:e,...t,children:(0,V.jsx)(`path`,{d:`M21 12a9 9 0 1 1-6.219-8.56`})})}function Ls({size:e=20,...t}){return(0,V.jsx)(`svg`,{...fs,width:e,height:e,...t,children:(0,V.jsx)(`path`,{d:`m18 15-6-6-6 6`})})}function Rs({size:e=20,...t}){return(0,V.jsx)(`svg`,{...fs,width:e,height:e,...t,children:(0,V.jsx)(`path`,{d:`m6 9 6 6 6-6`})})}function zs({size:e=20,...t}){return(0,V.jsx)(`svg`,{...fs,width:e,height:e,...t,children:(0,V.jsx)(`path`,{d:`m15 18-6-6 6-6`})})}function Bs({size:e=20,...t}){return(0,V.jsxs)(`svg`,{...fs,width:e,height:e,...t,children:[(0,V.jsx)(`path`,{d:`m21 21-4.34-4.34`}),(0,V.jsx)(`circle`,{cx:`11`,cy:`11`,r:`8`})]})}function Vs({size:e=20,...t}){return(0,V.jsxs)(`svg`,{...fs,width:e,height:e,...t,children:[(0,V.jsx)(`path`,{d:`M18 6 6 18`}),(0,V.jsx)(`path`,{d:`m6 6 12 12`})]})}function Hs({size:e=20,...t}){return(0,V.jsx)(`svg`,{...fs,width:e,height:e,...t,children:(0,V.jsx)(`path`,{d:`M20 6 9 17l-5-5`})})}function Us({size:e=20,...t}){return(0,V.jsxs)(`svg`,{...fs,width:e,height:e,...t,children:[(0,V.jsx)(`path`,{d:`M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0`}),(0,V.jsx)(`circle`,{cx:`12`,cy:`12`,r:`3`})]})}function Ws({size:e=20,...t}){return(0,V.jsxs)(`svg`,{...fs,width:e,height:e,...t,children:[(0,V.jsx)(`path`,{d:`M10.733 5.076a10.744 10.744 0 0 1 11.205 6.575 1 1 0 0 1 0 .696 10.747 10.747 0 0 1-1.444 2.49`}),(0,V.jsx)(`path`,{d:`M14.084 14.158a3 3 0 0 1-4.242-4.242`}),(0,V.jsx)(`path`,{d:`M17.479 17.499a10.75 10.75 0 0 1-15.417-5.151 1 1 0 0 1 0-.696 10.75 10.75 0 0 1 4.446-5.143`}),(0,V.jsx)(`path`,{d:`m2 2 20 20`})]})}function Gs({size:e=20,...t}){return(0,V.jsxs)(`svg`,{...fs,width:e,height:e,...t,children:[(0,V.jsx)(`polyline`,{points:`22 12 16 12 14 15 10 15 8 12 2 12`}),(0,V.jsx)(`path`,{d:`M5.45 5.11 2 12v6a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-6l-3.45-6.89A2 2 0 0 0 16.76 4H7.24a2 2 0 0 0-1.79 1.11z`})]})}function Ks({size:e=20,...t}){return(0,V.jsxs)(`svg`,{...fs,width:e,height:e,...t,children:[(0,V.jsx)(`path`,{d:`m13.5 6.5-3.148-3.148a1.205 1.205 0 0 0-1.704 0L6.352 5.648a1.205 1.205 0 0 0 0 1.704L9.5 10.5`}),(0,V.jsx)(`path`,{d:`M16.5 7.5 19 5`}),(0,V.jsx)(`path`,{d:`m17.5 10.5 3.148 3.148a1.205 1.205 0 0 1 0 1.704l-2.296 2.296a1.205 1.205 0 0 1-1.704 0L13.5 14.5`}),(0,V.jsx)(`path`,{d:`M9 21a6 6 0 0 0-6-6`}),(0,V.jsx)(`path`,{d:`M9.352 10.648a1.205 1.205 0 0 0 0 1.704l2.296 2.296a1.205 1.205 0 0 0 1.704 0l4.296-4.296a1.205 1.205 0 0 0 0-1.704l-2.296-2.296a1.205 1.205 0 0 0-1.704 0z`})]})}function qs({size:e=20,...t}){return(0,V.jsxs)(`svg`,{...fs,width:e,height:e,...t,children:[(0,V.jsx)(`line`,{x1:`10`,x2:`14`,y1:`2`,y2:`2`}),(0,V.jsx)(`line`,{x1:`12`,x2:`15`,y1:`14`,y2:`11`}),(0,V.jsx)(`circle`,{cx:`12`,cy:`14`,r:`8`})]})}function Js({size:e=20,...t}){return(0,V.jsxs)(`svg`,{...fs,width:e,height:e,...t,children:[(0,V.jsx)(`line`,{x1:`12`,x2:`12`,y1:`2`,y2:`22`}),(0,V.jsx)(`path`,{d:`M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6`})]})}function Ys({size:e=20,...t}){return(0,V.jsxs)(`svg`,{...fs,width:e,height:e,...t,children:[(0,V.jsx)(`path`,{d:`M15 22v-4a4.8 4.8 0 0 0-1-3.5c3 0 6-2 6-5.5.08-1.25-.27-2.48-1-3.5.28-1.15.28-2.35 0-3.5 0 0-1 0-3 1.5-2.64-.5-5.36-.5-8 0C6 2 5 2 5 2c-.3 1.15-.3 2.35 0 3.5A5.403 5.403 0 0 0 4 9c0 3.5 3 5.5 6 5.5-.39.49-.68 1.05-.85 1.65-.17.6-.22 1.23-.15 1.85v4`}),(0,V.jsx)(`path`,{d:`M9 18c-4.51 2-5-2-7-2`})]})}function Xs({size:e=20,...t}){return(0,V.jsxs)(`svg`,{...fs,width:e,height:e,...t,children:[(0,V.jsx)(`path`,{d:`M15 3h6v6`}),(0,V.jsx)(`path`,{d:`M10 14 21 3`}),(0,V.jsx)(`path`,{d:`M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6`})]})}function Zs({size:e=20,...t}){return(0,V.jsxs)(`svg`,{...fs,width:e,height:e,...t,children:[(0,V.jsx)(`path`,{d:`M12 7v14`}),(0,V.jsx)(`path`,{d:`M3 18a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h5a4 4 0 0 1 4 4 4 4 0 0 1 4-4h5a1 1 0 0 1 1 1v13a1 1 0 0 1-1 1h-6a3 3 0 0 0-3 3 3 3 0 0 0-3-3z`})]})}function Qs({size:e=20,...t}){return(0,V.jsxs)(`svg`,{...fs,width:e,height:e,...t,children:[(0,V.jsx)(`polyline`,{points:`16 18 22 12 16 6`}),(0,V.jsx)(`polyline`,{points:`8 6 2 12 8 18`})]})}function $s({size:e=20,...t}){return(0,V.jsxs)(`svg`,{...fs,width:e,height:e,...t,children:[(0,V.jsx)(`rect`,{width:`7`,height:`9`,x:`3`,y:`3`,rx:`1`}),(0,V.jsx)(`rect`,{width:`7`,height:`5`,x:`14`,y:`3`,rx:`1`}),(0,V.jsx)(`rect`,{width:`7`,height:`9`,x:`14`,y:`12`,rx:`1`}),(0,V.jsx)(`rect`,{width:`7`,height:`5`,x:`3`,y:`16`,rx:`1`})]})}function ec({size:e=20,...t}){return(0,V.jsx)(`svg`,{...fs,width:e,height:e,...t,children:(0,V.jsx)(`path`,{d:`M4 14a1 1 0 0 1-.78-1.63l9.9-10.2a.5.5 0 0 1 .86.46l-1.92 6.02A1 1 0 0 0 13 10h7a1 1 0 0 1 .78 1.63l-9.9 10.2a.5.5 0 0 1-.86-.46l1.92-6.02A1 1 0 0 0 11 14z`})})}var tc=ms,nc=Ss;function rc({size:e=20,...t}){return(0,V.jsxs)(`svg`,{...fs,width:e,height:e,...t,children:[(0,V.jsx)(`path`,{d:`m2 7 4.41-4.41A2 2 0 0 1 7.83 2h8.34a2 2 0 0 1 1.42.59L22 7`}),(0,V.jsx)(`path`,{d:`M4 12v8a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-8`}),(0,V.jsx)(`path`,{d:`M15 22v-4a2 2 0 0 0-2-2h-2a2 2 0 0 0-2 2v4`}),(0,V.jsx)(`path`,{d:`M2 7h20`}),(0,V.jsx)(`path`,{d:`M22 7v3a2 2 0 0 1-2 2a2.7 2.7 0 0 1-1.59-.63.7.7 0 0 0-.82 0A2.7 2.7 0 0 1 16 12a2.7 2.7 0 0 1-1.59-.63.7.7 0 0 0-.82 0A2.7 2.7 0 0 1 12 12a2.7 2.7 0 0 1-1.59-.63.7.7 0 0 0-.82 0A2.7 2.7 0 0 1 8 12a2.7 2.7 0 0 1-1.59-.63.7.7 0 0 0-.82 0A2.7 2.7 0 0 1 4 12a2 2 0 0 1-2-2V7`})]})}var ic=Fs;function ac({size:e=20,...t}){return(0,V.jsxs)(`svg`,{...fs,width:e,height:e,...t,children:[(0,V.jsx)(`path`,{d:`M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z`}),(0,V.jsx)(`path`,{d:`m9 12 2 2 4-4`})]})}function oc({size:e=20,...t}){return(0,V.jsxs)(`svg`,{...fs,width:e,height:e,...t,children:[(0,V.jsx)(`path`,{d:`M2 21a8 8 0 0 1 13.292-6`}),(0,V.jsx)(`circle`,{cx:`10`,cy:`8`,r:`5`}),(0,V.jsx)(`path`,{d:`m16 19 2 2 4-4`})]})}function sc({size:e=20,...t}){return(0,V.jsxs)(`svg`,{...fs,width:e,height:e,...t,children:[(0,V.jsx)(`path`,{d:`m12 14 4-4`}),(0,V.jsx)(`path`,{d:`M3.34 19a10 10 0 1 1 17.32 0`})]})}var cc=Cs;function lc({size:e=20,...t}){return(0,V.jsxs)(`svg`,{...fs,width:e,height:e,...t,children:[(0,V.jsx)(`rect`,{width:`20`,height:`8`,x:`2`,y:`2`,rx:`2`}),(0,V.jsx)(`rect`,{width:`20`,height:`8`,x:`2`,y:`14`,rx:`2`}),(0,V.jsx)(`line`,{x1:`6`,x2:`6.01`,y1:`6`,y2:`6`}),(0,V.jsx)(`line`,{x1:`6`,x2:`6.01`,y1:`18`,y2:`18`})]})}var uc={wrap:`Select-module__wrap___8GKsa`,wrapFullWidth:`Select-module__wrapFullWidth___uQ1gt`,trigger:`Select-module__trigger___nKY0l`,triggerSm:`Select-module__triggerSm___0Ozlc`,triggerText:`Select-module__triggerText___zQEIp`,placeholder:`Select-module__placeholder___N04iW`,triggerIcon:`Select-module__triggerIcon___ipYKn`,dropdown:`Select-module__dropdown___6YdcD`,option:`Select-module__option___EKsSG`,optionActive:`Select-module__optionActive___y280o`,optionHighlighted:`Select-module__optionHighlighted___CPa3K`},dc=8,fc=6,pc=240,mc=2010,hc=(e,t,n)=>Math.min(Math.max(e,t),n),gc=e=>{let t=e.getBoundingClientRect(),n=window.innerWidth,r=window.innerHeight,i=Math.min(t.width,Math.max(0,n-dc*2)),a=hc(t.left,dc,Math.max(dc,n-i-dc)),o=r-t.bottom-dc-fc,s=t.top-dc-fc,c=o>=pc||o>=s?`down`:`up`,l=Math.max(0,Math.min(pc,c===`down`?o:s));return c===`down`?{position:`fixed`,top:t.bottom+fc,left:a,width:i,maxHeight:l,zIndex:mc}:{position:`fixed`,bottom:r-t.top+fc,left:a,width:i,maxHeight:l,zIndex:mc}};function _c({value:e,options:t,onChange:n,placeholder:r,className:i,disabled:a=!1,ariaLabel:o,ariaLabelledBy:s,ariaDescribedBy:c,ariaInvalid:l,fullWidth:u=!0,size:d=`md`,id:f}){let p=(0,y.useId)(),m=f??p,h=`${m}-listbox`,[g,_]=(0,y.useState)(!1),[v,b]=(0,y.useState)(-1),x=(0,y.useRef)(null),C=(0,y.useRef)(null),w=(0,y.useRef)(null),T=(0,y.useRef)(null),[E,D]=(0,y.useState)(null),O=g&&!a;(0,y.useEffect)(()=>{if(!g||a)return;let e=e=>{let t=e.target;x.current?.contains(t)||w.current?.contains(t)||_(!1)};return document.addEventListener(`mousedown`,e),()=>document.removeEventListener(`mousedown`,e)},[a,g]);let k=(0,y.useCallback)(()=>{x.current&&D(gc(x.current))},[]),A=(0,y.useCallback)(()=>{typeof window>`u`||(T.current!==null&&window.cancelAnimationFrame(T.current),T.current=window.requestAnimationFrame(()=>{T.current=null,k()}))},[k]);(0,y.useLayoutEffect)(()=>{if(!O){T.current!==null&&typeof window<`u`&&(window.cancelAnimationFrame(T.current),T.current=null);return}k();let e=()=>{A()},t=typeof ResizeObserver<`u`&&x.current?new ResizeObserver(()=>{A()}):null;return t&&x.current&&t.observe(x.current),window.addEventListener(`resize`,e),window.addEventListener(`scroll`,e,!0),()=>{window.removeEventListener(`resize`,e),window.removeEventListener(`scroll`,e,!0),t?.disconnect(),T.current!==null&&(window.cancelAnimationFrame(T.current),T.current=null)}},[O,A,k]);let j=(0,y.useMemo)(()=>t.findIndex(t=>t.value===e),[t,e]),M=v>=0?v:j>=0?j:t.length>0?0:-1,N=j>=0?t[j]:void 0,ee=N?.label??r??``,P=!N&&r,F=(0,y.useCallback)(e=>{let r=t[e];r&&(n(r.value),_(!1),b(e),C.current?.focus({preventScroll:!0}))},[n,t]),I=(0,y.useCallback)(e=>{if(t.length===0)return;let n=(M+e+t.length)%t.length;b(n)},[t.length,M]),L=(0,y.useCallback)(e=>{if(!a)switch(e.key){case`ArrowDown`:if(e.preventDefault(),!O){_(!0);return}I(1);return;case`ArrowUp`:if(e.preventDefault(),!O){_(!0);return}I(-1);return;case`Home`:if(!O||t.length===0)return;e.preventDefault(),b(0);return;case`End`:if(!O||t.length===0)return;e.preventDefault(),b(t.length-1);return;case`Enter`:case` `:if(e.preventDefault(),!O){_(!0);return}M>=0&&F(M);return;case`Escape`:if(!O)return;e.preventDefault(),e.stopPropagation(),_(!1),C.current?.focus({preventScroll:!0});return;case`Tab`:O&&_(!1);return;default:return}},[F,a,O,I,t.length,M]);(0,y.useEffect)(()=>{!O||M<0||document.getElementById(`${m}-option-${M}`)?.scrollIntoView({block:`nearest`})},[O,M,m]);let R=O&&E?(0,V.jsx)(`div`,{ref:w,className:uc.dropdown,id:h,role:`listbox`,"aria-label":o,style:E,children:t.map((t,n)=>{let r=t.value===e,i=n===M;return(0,V.jsx)(`button`,{id:`${m}-option-${n}`,type:`button`,role:`option`,"aria-selected":r,className:`${uc.option} ${r?uc.optionActive:``} ${i?uc.optionHighlighted:``}`.trim(),onMouseEnter:()=>b(n),onKeyDown:L,onClick:()=>F(n),children:t.label},t.value)})}):null;return(0,V.jsxs)(V.Fragment,{children:[(0,V.jsx)(`div`,{className:`${uc.wrap} ${u?uc.wrapFullWidth:``} ${i??``}`,ref:x,children:(0,V.jsxs)(`button`,{id:m,ref:C,type:`button`,className:`${uc.trigger} ${d===`sm`?uc.triggerSm:``}`.trim(),onClick:a?void 0:()=>_(e=>!e),onKeyDown:L,"aria-haspopup":`listbox`,"aria-expanded":O,"aria-controls":O?h:void 0,"aria-activedescendant":O&&M>=0?`${m}-option-${M}`:void 0,"aria-label":o,"aria-labelledby":s,"aria-describedby":c,"aria-invalid":l,disabled:a,children:[(0,V.jsx)(`span`,{className:`${uc.triggerText} ${P?uc.placeholder:``}`,children:ee}),(0,V.jsx)(`span`,{className:uc.triggerIcon,"aria-hidden":`true`,children:(0,V.jsx)(Rs,{size:14})})]})}),R&&(typeof document>`u`?R:(0,S.createPortal)(R,document.body))]})}var vc={root:`SelectionCheckbox-module__root___LiMQt`,disabled:`SelectionCheckbox-module__disabled___-T-uP`,input:`SelectionCheckbox-module__input___b-Hpm`,box:`SelectionCheckbox-module__box___FRD4m`,boxChecked:`SelectionCheckbox-module__boxChecked___4lydu`,label:`SelectionCheckbox-module__label___twhQj`};function yc({checked:e,onChange:t,label:n,ariaLabel:r,title:i,disabled:a=!1,className:o,labelClassName:s}){let c=[vc.root,a?vc.disabled:``,o].filter(Boolean).join(` `),l=[vc.box,e?vc.boxChecked:``].filter(Boolean).join(` `),u=[vc.label,s].filter(Boolean).join(` `);return(0,V.jsxs)(`label`,{className:c,title:i,children:[(0,V.jsx)(`input`,{className:vc.input,type:`checkbox`,checked:e,onChange:e=>{t(e.target.checked)},"aria-label":r,disabled:a}),(0,V.jsx)(`span`,{className:l,children:e?(0,V.jsx)(Hs,{size:12}):null}),n?(0,V.jsx)(`div`,{className:u,children:n}):null]})}var bc=e=>{let t,n=new Set,r=(e,r)=>{let i=typeof e==`function`?e(t):e;if(!Object.is(i,t)){let e=t;t=r??(typeof i!=`object`||!i)?i:Object.assign({},t,i),n.forEach(n=>n(t,e))}},i=()=>t,a={setState:r,getState:i,getInitialState:()=>o,subscribe:e=>(n.add(e),()=>n.delete(e))},o=t=e(r,i,a);return a},xc=(e=>e?bc(e):bc),Sc=e=>e;function Cc(e,t=Sc){let n=y.useSyncExternalStore(e.subscribe,y.useCallback(()=>t(e.getState()),[e,t]),y.useCallback(()=>t(e.getInitialState()),[e,t]));return y.useDebugValue(n),n}var wc=e=>{let t=xc(e),n=e=>Cc(t,e);return Object.assign(n,t),n},Tc=(e=>e?wc(e):wc);function Ec(){return`${Date.now()}-${Math.random().toString(36).substr(2,9)}`}var Dc=e=>typeof e==`object`&&!!e&&!Array.isArray(e),Oc=(e,t=``)=>e instanceof Error?e.message||t:typeof e==`string`?e||t:Dc(e)&&typeof e.message==`string`&&e.message||t,kc=e=>e,Ac=30*1e3,jc=8317,Mc=`/v8/management`,Nc=30*1e3,Pc=[`x-cpa-version`],Fc=[`x-cpa-build-date`],Ic=[`x-cpa-support-plugin`],Lc=[...Pc,`x-server-version`],Rc=[...Fc,`x-server-build-date`],zc=60*1e3,Bc=10*1024*1024,Vc=`cli-proxy-auth`,Hc=`cli-proxy-theme`,Uc=`cli-proxy-language`,Wc=kc([`zh-CN`,`zh-TW`,`en`,`ru`]),Gc={"zh-CN":`language.chinese`,"zh-TW":`language.chinese_tw`,en:`language.english`,ru:`language.russian`},Kc=Wc,qc=3e3,Jc=Tc(e=>({notifications:[],confirmation:{isOpen:!1,isLoading:!1,options:null},showNotification:(t,n=`info`,r=qc)=>{let i={id:Ec(),message:t,type:n,duration:r};e(e=>({notifications:[...e.notifications,i]}))},removeNotification:t=>{e(e=>({notifications:e.notifications.filter(e=>e.id!==t)}))},showConfirmation:t=>{e({confirmation:{isOpen:!0,isLoading:!1,options:t}})},hideConfirmation:()=>{e(e=>({confirmation:{...e.confirmation,isOpen:!1,options:null}}))},setConfirmationLoading:t=>{e(e=>({confirmation:{...e.confirmation,isLoading:t}}))}}));function Yc(e,t){let n;try{n=e()}catch{return}return{getItem:e=>{let r=e=>e===null?null:JSON.parse(e,t?.reviver),i=n.getItem(e)??null;return i instanceof Promise?i.then(r):r(i)},setItem:(e,r)=>n.setItem(e,JSON.stringify(r,t?.replacer)),removeItem:e=>n.removeItem(e)}}var Xc=e=>t=>{try{let n=e(t);return n instanceof Promise?n:{then(e){return Xc(e)(n)},catch(e){return this}}}catch(e){return{then(e){return this},catch(t){return Xc(t)(e)}}}},Zc=(e,t)=>(n,r,i)=>{let a={storage:Yc(()=>window.localStorage),partialize:e=>e,version:0,merge:(e,t)=>({...t,...e}),...t},o=!1,s=0,c=new Set,l=new Set,u=a.storage;if(!u)return e((...e)=>{console.warn(`[zustand persist middleware] Unable to update item '${a.name}', the given storage is currently unavailable.`),n(...e)},r,i);let d=()=>{let e=a.partialize({...r()});return u.setItem(a.name,{state:e,version:a.version})},f=i.setState;i.setState=(e,t)=>(f(e,t),d());let p=e((...e)=>(n(...e),d()),r,i);i.getInitialState=()=>p;let m,h=()=>{if(!u)return;let e=++s;o=!1,c.forEach(e=>e(r()??p));let t=a.onRehydrateStorage?.call(a,r()??p)||void 0;return Xc(u.getItem.bind(u))(a.name).then(e=>{if(e)if(typeof e.version==`number`&&e.version!==a.version){if(a.migrate){let t=a.migrate(e.state,e.version);return t instanceof Promise?t.then(e=>[!0,e]):[!0,t]}console.error(`State loaded from storage couldn't be migrated since no migrate function was provided`)}else return[!1,e.state];return[!1,void 0]}).then(t=>{if(e!==s)return;let[i,o]=t;if(m=a.merge(o,r()??p),n(m,!0),i)return d()}).then(()=>{e===s&&(t?.(r(),void 0),m=r(),o=!0,l.forEach(e=>e(m)))}).catch(n=>{e===s&&t?.(void 0,n)})};return i.persist={setOptions:e=>{a={...a,...e},e.storage&&(u=e.storage)},clearStorage:()=>{u?.removeItem(a.name)},getOptions:()=>a,rehydrate:()=>h(),hasHydrated:()=>o,onHydrate:e=>(c.add(e),()=>{c.delete(e)}),onFinishHydration:e=>(l.add(e),()=>{l.delete(e)})},a.skipHydration||h(),m||p},Qc=()=>window.matchMedia&&window.matchMedia(`(prefers-color-scheme: dark)`).matches?`dark`:`light`,$c=()=>Qc()===`dark`?`dark`:`white`,el=e=>e===`dark`?`dark`:`light`,tl=e=>e===`auto`?$c():e===`white`?`white`:e,nl=e=>{if(e===`dark`){document.documentElement.setAttribute(`data-theme`,`dark`);return}if(e===`white`){document.documentElement.setAttribute(`data-theme`,`white`);return}document.documentElement.removeAttribute(`data-theme`)},rl=Tc()(Zc((e,t)=>({theme:`auto`,resolvedTheme:`light`,setTheme:t=>{let n=tl(t);nl(n),e({theme:t,resolvedTheme:el(n)})},initializeTheme:()=>{let{theme:n,setTheme:r}=t();if(r(n),!window.matchMedia)return()=>{};let i=window.matchMedia(`(prefers-color-scheme: dark)`),a=()=>{let{theme:n}=t();if(n===`auto`){let t=$c();nl(t),e({resolvedTheme:el(t)})}};return i.addEventListener(`change`,a),()=>i.removeEventListener(`change`,a)}}),{name:Hc})),il={common:{login:`登录`,logout:`登出`,back:`返回`,cancel:`取消`,confirm:`确认`,leave:`离开`,stay:`继续编辑`,save:`保存`,delete:`删除`,edit:`编辑`,add:`添加`,update:`更新`,refresh:`刷新`,close:`关闭`,success:`成功`,error:`错误`,info:`信息`,warning:`警告`,loading:`加载中...`,connecting:`连接中...`,connected:`已连接`,disconnected:`未连接`,connecting_status:`连接中`,connected_status:`已连接`,disconnected_status:`未连接`,yes:`是`,no:`否`,not_set:`未设置`,optional:`可选`,required:`必填`,api_key:`密钥`,base_url:`地址`,prefix:`前缀`,proxy_url:`代理`,priority:`优先级`,alias:`别名`,failure:`失败`,unknown_error:`未知错误`,quota_update_required:`请更新 CPA 版本或检查更新`,quota_check_credential:`请检查凭证状态`,copy:`复制`,expand:`展开`,collapse:`收起`,status:`状态`,action:`操作`,custom_headers_label:`自定义请求头`,custom_headers_hint:`可选,设置需要附带到请求中的 HTTP 头,名称和值均不能为空。`,custom_headers_add:`添加请求头`,custom_headers_key_placeholder:`Header 名称,例如 X-Custom-Header`,custom_headers_value_placeholder:`Header 值`,model_name_placeholder:`模型名称,例如 claude-3-5-sonnet-20241022`,model_alias_placeholder:`模型别名 (可选)`,invalid_provider_index:`无效的提供商索引。`,unsaved_changes_title:`未保存的更改`,unsaved_changes_message:`你有未保存的更改,离开后将丢失这些更改。确定要离开吗?`},title:{login:`CLI Proxy API Management Center`,abbr:`CPAMC`},splash:{title:`CLI Proxy API`,subtitle:`管理中心`},login:{subtitle:`连接 CLI Proxy API v8 或更高版本`,connection_current:`当前地址`,connection_auto_hint:`系统将自动使用当前访问地址进行连接`,custom_connection_label:`自定义连接地址:`,custom_connection_placeholder:`例如: https://example.com:8317`,custom_connection_hint:`默认使用当前访问地址,若需要可手动输入其他地址。`,remember_password_label:`记住密码`,management_key_label:`管理密钥:`,management_key_placeholder:`请输入管理密钥`,submit_button:`登录`,submitting:`连接中...`,error_backend_detail:`后端返回`,error_required:`请填写完整的连接信息`,error_invalid:`连接失败,请检查服务地址、管理接口和管理密钥`,error_network:`网络连接失败,请检查网络或服务器地址`,error_timeout:`连接超时,服务器无响应`,error_unauthorized:`认证失败,管理密钥缺失或无效`,error_forbidden:`访问被拒绝,远程管理未启用、管理密钥未配置或 IP 被临时封禁`,error_not_found:`未找到 v8 Management API,请检查服务地址并将 CLIProxyAPI 升级至 v8 或更高版本;不再支持 v0 接口。`,error_legacy_backend:`当前后端可使用 v0 管理接口,但不支持 v8。请将 CLIProxyAPI 升级至 v8 或更高版本后再使用此管理页面。`,error_server:`后端处理管理接口时发生错误,请查看服务日志`,error_cors:`跨域请求被阻止,请检查服务器配置`,error_ssl:`SSL/TLS 证书验证失败`},header:{refresh_all:`刷新全部`,logout:`登出`},connection:{status:`连接状态:`},nav:{dashboard:`仪表盘`,quick_start:`快速开始`,ai_providers:`AI 提供商`,auth_files:`认证文件`,oauth:`OAuth 登录`,quota_management:`配额管理`,plugins:`插件管理`,plugin_store:`插件商店`,config_management:`配置面板`,logs:`日志查看`,system_info:`中心信息`},nav_groups:{operate:`运行`,gateway:`网关`,observe:`观测`,plugin_pages:`插件`,control:`控制`},nav_meta:{dashboard:`运行总览`,quick_start:`快速配置`,ai_providers:`上游模型路由`,auth_files:`Auth 文件与凭证`,oauth:`OAuth 授权登录`,quota_management:`API Key 与限额`,plugins:`插件启停与配置`,plugin_store:`发现并安装插件`,logs:`请求追踪与排查`,config_management:`网关基础配置`,system_info:`运行与诊断信息`},dashboard:{hero_verdict_good:`运行平稳`,hero_verdict_warning:`略有波动`,hero_verdict_critical:`需要留意`,hero_verdict_idle:`静候流量`,hero_verdict_offline:`等待连接`,hero_verdict_connecting:`正在连接`,hero_period:`。`,hero_requests_label:`已处理请求`,hero_live:`实时`,hero_window_meta:`滚动窗口 {{window}} · 每桶 10 分钟`,hero_spark_label:`最近 {{window}} 的请求量`,cta_manage_providers:`管理供应商`,cta_inspect_logs:`查看日志`,stats_aria:`核心指标`,success_rate:`成功率`,stat_success_hint:`窗口内共 {{total}} 次请求`,stat_credentials:`凭证`,stat_credentials_hint:`{{active}} 个可用 · {{disabled}} 个未参与调度`,stat_credentials_empty:`未找到凭证文件`,stat_provider_keys:`供应商密钥`,stat_provider_keys_hint:`所有品牌已配置的 API Key 总数`,stat_models:`模型`,stat_models_hint:`通过代理端点暴露的模型`,traffic_eyebrow:`实时流量`,traffic_title:`以 10 分钟为粒度的吞吐`,traffic_description:`最近 {{window}} 的成功与失败次数,每 10 分钟一桶。悬停任一柱可查看精确构成。`,traffic_table:`数据表`,traffic_table_window:`时间段`,traffic_chart_summary:`最近 {{minutes}} 分钟共 {{total}} 次请求:成功 {{success}} 次,失败 {{failed}} 次。`,traffic_unavailable:`暂无流量数据`,traffic_unavailable_hint:`代理处理首个请求后即会出现计数。`,fleet_eyebrow:`供应商`,fleet_title:`所有供应商横向对比`,fleet_description:`同一窗口内各供应商的请求量与成功率。`,fleet_empty:`暂未记录到供应商流量。`,fleet_credentials:`凭证 {{value}} 个`,fleet_spark_label:`{{provider}} 请求量`,fleet_requests:`次请求`,provider_unknown:`未归类`,health_eyebrow:`健康度`,health_title:`凭证状态`,health_active:`可用`,health_unavailable:`不可用`,health_disabled:`已禁用`,health_by_type:`按供应商`,health_empty:`未找到凭证文件。`,health_link:`打开认证文件`,runtime_eyebrow:`运行时`,runtime_title:`运行配置一览`,runtime_routing:`路由策略`,runtime_retry:`请求重试`,runtime_management_keys:`管理密钥`,runtime_version:`服务端版本`,runtime_build:`构建日期`,runtime_proxy:`上游代理`,runtime_debug:`调试模式`,runtime_file_logging:`文件日志`,runtime_request_log:`请求日志`,runtime_ws_auth:`WebSocket 鉴权`,runtime_model_prefix:`模型前缀`,runtime_link:`编辑配置`,cta_eyebrow:`下一步`,cta_title:`接下来去哪里`,cta_providers_desc:`添加 API Key、设置优先级并测试品牌。`,cta_auth_files_desc:`上传、刷新与禁用 OAuth 凭证。`,cta_config_desc:`调整路由、重试、日志与访问控制。`,cta_quota_desc:`查看各凭证的剩余额度。`,cta_logs_desc:`实时跟踪请求并下载错误报告。`,cta_system_desc:`版本详情与管理中心信息。`,window_m:`{{minutes}} 分钟`,window_h:`{{hours}} 小时`,window_hm:`{{hours}} 小时 {{minutes}} 分`},basic_settings:{debug_enable:`启用调试模式`,proxy_url_label:`代理 URL:`,retry_count_label:`重试次数:`,logging_to_file_enable:`启用日志记录到文件`,request_log_title:`请求日志`,request_log_enable:`启用请求日志`,request_log_warning:`仅在需要排查问题时开启,日常请保持关闭。`,ws_auth_enable:`启用 /ws/* 鉴权`,routing_strategy_round_robin:`round-robin (轮询)`,routing_strategy_weighted_round_robin:`weighted-round-robin (加权轮询)`,routing_strategy_fill_first:`fill-first (优先填充)`},auth_files:JSON.parse(`{"title":"认证文件管理","meta_total":"{{count}} 个凭证","meta_active":"{{count}} 个启用","meta_problem":"{{count}} 个异常","empty_title":"还没有凭证","empty_desc":"上传认证文件,或通过 OAuth 连接一个提供商开始使用。","empty_oauth_link":"去 OAuth 登录","no_results_clear":"清除筛选","title_section":"认证文件","upload_button":"上传文件","delete_all_button":"删除全部","search_empty_title":"没有匹配的配置文件","search_empty_desc":"请调整筛选条件或清空搜索关键字再试一次。","file_size":"大小","file_modified":"修改时间","card_select":"选择认证文件 {{name}}","card_toggle":"启用认证文件 {{name}}","card_requests":"请求记录","cooldown_unknown":"冷却状态未知","cooldown_models":"{{count}} 个模型冷却","cooldown_credential":"凭证级冷却","cooldown_credential_and_models":"凭证及 {{count}} 个模型冷却","cooldown_scope_credential":"整个凭证","cooldown_earliest":"最早结束约 {{time}}","cooldown_elapsed":"冷却计时已到期","cooldown_timer_elapsed":"计时已到期","cooldown_refresh_hint":"刷新列表确认","cooldown_seconds":"{{count}} 秒","cooldown_minutes":"{{count}} 分钟","cooldown_hours":"{{count}} 小时","cooldown_http_status":"上游 HTTP {{status}}","cooldown_backoff":"退避等级 {{level}}","cooldown_deadline":"计时截止","cooldown_observed":"快照时间","cooldown_note":"本地调度快照,剩余时间为估算;到期不代表凭证可用、额度恢复或自动重试。模型名称为内部状态键,退避等级不是失败次数。","cooldown_reset_button":"清除冷却","cooldown_reset_hint":"清除此凭证的本地路由冷却状态","cooldown_reset_title":"清除凭证冷却?","cooldown_reset_confirm":"确定清除“{{name}}”的本地路由冷却状态吗?清除后此凭证可能立即再次参与请求,但不会恢复上游额度。","cooldown_reset_success":"已清除 {{name}} 的冷却状态。","cooldown_reset_failed":"无法清除 {{name}} 的冷却状态:{{message}}","cooldown_reason_quota":"额度限制","cooldown_reason_credential_quota":"凭证额度限制","cooldown_reason_cloudflare_challenge":"Cloudflare 验证","cooldown_reason_invalid_grant":"授权无效","cooldown_reason_unauthorized":"未获授权","cooldown_reason_payment_required":"访问受限(402/403,非账单结论)","cooldown_reason_not_found":"资源未找到","cooldown_reason_model_not_supported":"模型不受支持","cooldown_reason_transient_error":"上游暂时出错","cooldown_reason_unknown":"其他或未知原因","health_status_label":"健康状态","health_status_healthy":"健康","health_status_warning":"警告","health_status_disabled":"已停用","download_button":"下载","refresh_all_button":"刷新全部凭证","refresh_all_confirm":"刷新服务器上所有符合条件的凭证(不限于当前筛选结果)。后端会跳过已禁用或不满足刷新条件的凭证;此操作不是刷新列表或重置配额,可能需要几分钟。是否继续?","refresh_all_results":"凭证刷新结果","refresh_all_summary":"刷新成功 {{success}} 项,失败 {{failed}} 项。","refresh_all_empty":"没有符合刷新条件的凭证。","refresh_all_failed":"未能获取完整刷新结果:{{message}}。部分凭证可能已刷新,请检查列表后再重试。","refresh_result_success":"刷新成功","refresh_result_failed":"刷新失败","manual_refresh_button":"刷新 OAuth 凭证","manual_refresh_requested":"已提交 \\"{{name}}\\" 的凭证刷新请求","manual_refresh_failed":"提交 \\"{{name}}\\" 的凭证刷新请求失败:{{message}}","delete_button":"删除","delete_confirm":"确定要删除文件","delete_all_confirm":"确定要删除所有认证文件吗?此操作不可恢复!","delete_filtered_confirm":"确定要删除筛选出的 {{type}} 认证文件吗?此操作不可恢复!","delete_problem_button":"删除问题凭证","delete_problem_button_with_type":"删除 {{type}} 问题凭证","delete_problem_confirm":"确定要删除所有有问题的认证文件吗?此操作不可恢复!","delete_problem_filtered_confirm":"确定要删除筛选出的有问题的 {{type}} 认证文件吗?此操作不可恢复!","delete_filtered_result_button":"删除筛选结果","delete_filtered_result_confirm":"确定要删除当前筛选结果中的认证文件吗?此操作不可恢复!","upload_error_json":"只能上传JSON文件","upload_error_size":"文件大小不能超过 {{maxSize}}","upload_success":"文件上传成功","download_success":"文件下载成功","delete_success":"文件删除成功","delete_all_success":"成功删除","delete_filtered_success":"成功删除 {{count}} 个 {{type}} 认证文件","delete_filtered_partial":"{{type}} 认证文件删除完成,成功 {{success}} 个,失败 {{failed}} 个","delete_filtered_none":"当前筛选类型 ({{type}}) 下没有可删除的认证文件","delete_problem_success":"成功删除 {{count}} 个有问题的认证文件","delete_problem_filtered_success":"成功删除 {{count}} 个有问题的 {{type}} 认证文件","delete_problem_partial":"有问题认证文件删除完成,成功 {{success}} 个,失败 {{failed}} 个","delete_problem_filtered_partial":"有问题的 {{type}} 认证文件删除完成,成功 {{success}} 个,失败 {{failed}} 个","delete_problem_none":"当前没有可删除的有问题认证文件","delete_problem_filtered_none":"当前筛选类型 ({{type}}) 下没有可删除的有问题认证文件","delete_filtered_result_success":"成功删除 {{count}} 个筛选结果中的认证文件","delete_filtered_result_partial":"筛选结果删除完成,成功 {{success}} 个,失败 {{failed}} 个","delete_filtered_result_none":"当前筛选结果中没有可删除的认证文件","pagination_prev":"上一页","pagination_next":"下一页","pagination_info":"第 {{current}} / {{total}} 页 · 共 {{count}} 个文件","search_label":"按名称、账号、类型、提供方或错误信息搜索凭证","search_placeholder":"搜索名称、账号、类型、提供方或错误信息(403、429、invalid),支持 * 通配","problem_filter_label":"状态筛选","problem_filter_all":"全部","problem_filter_enabled":"启用","problem_filter_problem":"问题","problem_filter_disabled":"停用","display_options_label":"显示选项","compact_mode_label":"简略模式","sort_label":"排序","sort_default":"默认","sort_az":"A-Z 名称","sort_priority":"优先级","priority_display":"优先级","weight_display":"WRR 权重","page_size_label":"单页数量","filter_all":"全部","filter_qwen":"Qwen","filter_gemini":"Gemini","filter_kimi":"Kimi","filter_aistudio":"AIStudio","filter_claude":"Claude","filter_codex":"Codex","filter_meta":"Muse (Meta)","filter_devin":"Devin","filter_antigravity":"Antigravity","filter_xai":"xAI","filter_iflow":"iFlow","filter_vertex":"Vertex","filter_empty":"空文件","filter_unknown":"其他","type_virtual":"虚拟认证文件","models_button":"模型","models_title":"支持的模型","models_loading":"正在加载模型列表...","models_empty":"该凭证暂无可用模型","models_empty_desc":"该认证凭证可能尚未被服务器加载或没有绑定任何模型","models_unsupported":"当前版本不支持此功能","models_unsupported_desc":"请更新 CLI Proxy API 到最新版本后重试","models_excluded_badge":"已禁用","models_excluded_hint":"此 OAuth 模型已被禁用","status_toggle_label":"启用","status_enabled_success":"已启用 \\"{{name}}\\"","status_disabled_success":"已停用 \\"{{name}}\\"","batch_status_success":"已成功更新 {{count}} 个文件","batch_status_partial":"成功 {{success}} 个,失败 {{failed}} 个","batch_delete_title":"删除选中文件","batch_delete_confirm":"确定要删除 {{count}} 个文件吗?","batch_selected":"已选 {{count}} 项","batch_toolbar_label":"批量操作","batch_select_all":"全选","batch_select_page":"全选当前页","batch_select_filtered":"全选筛选结果","batch_invert_page":"反选当前页","batch_deselect":"取消选择","batch_download":"下载选中","batch_download_success":"已开始下载 {{count}} 个文件","batch_download_partial":"下载完成:成功 {{success}} 个,失败 {{failed}} 个","batch_enable":"启用","batch_disable":"禁用","prefix_proxy_button":"认证文件详情 / 编辑","prefix_proxy_loading":"正在加载认证文件...","prefix_proxy_info_label":"认证文件信息(info)","prefix_proxy_source_label":"认证文件 JSON(预览)","prefix_proxy_invalid_content_label":"下载内容(已截断)","prefix_label":"前缀(prefix)","proxy_url_label":"代理 URL(proxy_url)","proxy_url_placeholder":"socks5://username:password@proxy_ip:port/","priority_label":"优先级(priority)","priority_placeholder":"例如: 10 或 -1","priority_hint":"仅支持整数;非法值会被忽略。数值越大优先级越高。","weight_label":"调度权重(weight)","weight_tooltip":"默认值为 1;小于或等于 0 时不参与加权调度;最大值为 1,000,000。填入后打开加权轮询设置即可生效。","weight_hint":"默认值为 1;小于或等于 0 时不参与加权调度;最大值为 1,000,000。填入后打开<settingsLink>加权轮询设置</settingsLink>即可生效。","weight_invalid_integer":"权重必须是整数。","weight_invalid_max":"权重不能超过 1,000,000。","disable_cooling_label":"禁用指数冷却(disable_cooling)","disable_cooling_hint":"开启后,仅当前凭证跳过失败后的冷却与指数退避;其他凭证不受影响。","websockets_label":"WebSockets(websockets)","websockets_hint":"为该凭证开启 Responses API 的 websocket 传输。","using_api_label":"使用官方 API(using_api)","using_api_hint":"开启后使用 xAI 官方 API;关闭时使用 Grok CLI chat-proxy。","policy_alias_name":"模型别名","policy_alias_display_name":"显示名称","policy_alias_fork":"在模型列表中保留原始模型","policy_alias_force_mapping":"将响应模型名称改写为别名","policy_unsupported":"现有数据无法通过此表单编辑,将保持原样。选择继承可清除数据,也可替换后重新填写列表。","policy_replace":"替换现有数据","policy_retry_label":"单凭据请求重试","policy_inherit":"继承","policy_custom":"自定义","policy_retry_count":"重试次数","policy_retry_hint":"继承使用全局 request-retry 设置。自定义为 0 表示此凭据明确不重试请求。","policy_aliases_label":"单凭据模型别名","policy_aliases_hint":"优先匹配单凭据别名,未匹配时回退到渠道别名。选择继承或清空列表只会清除单凭据别名。","policy_rules_label":"单凭据错误规则","policy_rules_hint":"自定义规则按列表顺序优先生效。选择继承或清空列表将使用继承的规则,不会禁用它们。正则表达式使用 Go 语法。","policy_retry_invalid":"请输入非负安全整数,或选择继承。","policy_aliases_invalid":"请为每个新增或修改的行填写非空模型名称和别名。","policy_rules_invalid":"请为每条修改的规则填写正整数状态码、动作和至少一个非空匹配条件。","note_label":"备注(note)","note_placeholder":"输入备注信息,例如:张三的账号","note_hint":"可选,用于标记凭证用途或归属;留空则不写入。","excluded_models_label":"排除模型(excluded_models)","headers_label":"自定义请求头(headers)","headers_placeholder":"{\\n \\"Header-Name\\": \\"value\\"\\n}","headers_hint":"以 JSON 对象格式输入自定义 HTTP 请求头,例如:{\\"X-My-Header\\": \\"value\\"}","headers_invalid_json":"自定义请求头必须是有效的 JSON。","headers_invalid_object":"自定义请求头必须是 JSON 对象。","headers_invalid_value":"每个自定义请求头的值都必须是字符串。","prefix_proxy_invalid_json":"该认证文件不是 JSON 对象,无法编辑字段。","prefix_proxy_html_challenge":"下载到的是 HTML 验证页面,不是认证 JSON 对象。请重新认证或替换该认证文件后再编辑字段。","prefix_proxy_saved_success":"已更新认证文件 \\"{{name}}\\"","quota_refresh_single":"刷新额度","quota_refresh_hint":"仅刷新该认证文件的额度","quota_refresh_success":"已刷新 \\"{{name}}\\" 的额度","quota_refresh_failed":"刷新 \\"{{name}}\\" 的额度失败:{{message}}"}`),antigravity_subscription:{plan_unknown:`未知`,plan_free:`免费版`,plan_pro:`Pro`,plan_ultra:`Ultra`,plan_ultra_lite:`Ultra Lite`},antigravity_quota:{title:`Antigravity 额度`,empty_title:`暂无 Antigravity 认证`,empty_desc:`上传 Antigravity 认证文件后即可查看额度。`,idle:`点击此处刷新额度`,loading:`正在加载额度...`,load_failed:`额度获取失败:{{message}}`,missing_auth_index:`认证文件缺少 auth_index`,missing_project_id:`Antigravity 凭证缺少 project_id。请重新登录或刷新凭证以发现项目。`,empty_models:`暂无额度数据`,plan_label:`套餐`,group_gemini_models:`Gemini 模型`,group_claude_gpt_models:`Claude 和 GPT 模型`,group_models_description:`此分组包含:{{models}}`,weekly_limit:`周限额`,daily_limit:`日限额`,five_hour_limit:`5 小时限额`,monthly_limit:`月限额`,quota_available:`额度可用`,remaining_percent:`剩余 {{percent}}%`,refreshes_in:`{{duration}} 后刷新`,refresh_available:`可刷新`,duration_day_hour:`{{days}} 天 {{hours}} 小时`,duration_hour_minute:`{{hours}} 小时 {{minutes}} 分钟`,duration_minute:`{{minutes}} 分钟`,duration_less_than_minute:`小于 1 分钟`,refresh_button:`刷新额度`,fetch_all:`获取全部`},claude_quota:{title:`Claude 额度`,empty_title:`暂无 Claude OAuth 认证`,empty_desc:`使用 Claude OAuth 登录后即可查看额度。`,idle:`点击此处刷新额度`,loading:`正在加载额度...`,load_failed:`额度获取失败:{{message}}`,missing_auth_index:`认证文件缺少 auth_index`,empty_windows:`暂无额度数据`,refresh_button:`刷新额度`,fetch_all:`获取全部`,five_hour:`5 小时限额`,seven_day:`7 天限额`,seven_day_oauth_apps:`7 天 OAuth 应用`,seven_day_opus:`7 天 Opus`,seven_day_sonnet:`7 天 Sonnet`,seven_day_cowork:`7 天 Cowork`,iguana_necktie:`Iguana Necktie`,seven_day_fable:`7 天 Fable 5`,extra_usage_label:`额外用量`,plan_label:`套餐`,plan_unknown:`未知`,plan_free:`免费版`,plan_pro:`专业版`,plan_max:`Max`,plan_max5:`Max 5x`,plan_max20:`Max 20x`,plan_team:`团队版`},codex_quota:{title:`Codex 额度`,empty_title:`暂无 Codex 认证`,empty_desc:`上传 Codex 认证文件后即可查看额度。`,idle:`点击此处刷新额度`,loading:`正在加载额度...`,load_failed:`额度获取失败:{{message}}`,missing_auth_index:`认证文件缺少 auth_index`,missing_account_id:`Codex 凭证缺少 ChatGPT 账号 ID`,empty_windows:`暂无额度数据`,no_access:`该凭证已无 Codex 访问权限(free)。`,refresh_button:`刷新额度`,fetch_all:`获取全部`,primary_window:`5 小时限额`,secondary_window:`周限额`,team_secondary_window:`月度限额`,code_review_primary_window:`代码审查 5 小时限额`,code_review_secondary_window:`代码审查周限额`,code_review_team_secondary_window:`代码审查月度限额`,additional_primary_window:`{{name}} 5 小时限额`,additional_secondary_window:`{{name}} 周限额`,additional_team_secondary_window:`{{name}} 月度限额`,plan_label:`套餐`,expires_label:`续期时间`,credit_balance_label:`Credit 余额`,credit_unlimited:`无限额`,reset_credits_label:`主动重置次数`,reset_credits_expiry_label:`主动重置过期时间({{timezone}})`,reset_credit_number:`第 {{index}} 次`,reset_credits_expiry_failed:`主动重置过期时间获取失败:{{message}}`,reset_credits_invalid_payload:`主动重置过期时间响应格式无效`,reset_button:`重置额度`,reset_confirm_title:`重置 Codex 额度`,reset_confirm_message:`将消耗 1 次主动重置次数来重置 "{{name}}" 的 Codex 额度。是否继续?`,reset_confirm_button:`确认重置`,reset_success:`已重置 "{{name}}" 的 Codex 额度`,reset_failed:`重置 "{{name}}" 的 Codex 额度失败:{{message}}`,plan_plus:`Plus`,plan_team:`Team`,plan_free:`Free`,plan_pro:`Pro 200`,plan_prolite:`Pro 100`,plan_business_premium:`Business Premium`},devin_quota:{daily:`每日剩余额度`,weekly:`每周剩余额度`,plan_label:`套餐`,plan_end:`订阅到期`,unavailable:`暂无数据`,reset_unknown:`暂无重置时间`,observed_at:`额度观测时间:{{time}}`,observed_unknown:`暂无额度观测时间`,missing_identity:`缺少凭据名称或认证索引,请重新加载凭据列表。`,stale_request:`连接或凭据已变更,请重试。`,empty_data:`Devin 未返回可用的额度数据。`,loading:`正在查询 Devin 额度…`,idle:`点击查询 Devin 额度`,load_failed:`额度查询失败:{{message}}`,empty_title:`暂无 Devin 凭据`,empty_desc:`上传 Devin 凭据文件或通过后端 CLI 登录后,即可查询额度。`},meta_quota:{title:`Muse (Meta) 额度`,empty_title:`暂无 Muse 凭据`,empty_desc:`使用 Muse OAuth 登录或上传 Meta 认证文件以查询额度。`,idle:`点击查询 Muse 额度`,loading:`正在查询 Muse 额度…`,load_failed:`额度查询失败:{{message}}`,missing_auth_index:`认证文件缺少 auth_index`,empty_data:`额度未知,可能尚未发起过模型请求。`,invalid_response:`Muse 返回的额度响应格式无效。`,request_failed:`Muse 额度请求失败,请检查 DCA 凭据是否有效。`,missing_file:`查询额度需要可下载的 Meta 认证文件。`,missing_dca_token:`认证文件缺少有效的 dca_token,请重新使用 Muse OAuth 登录。`,invalid_auth_file:`下载的认证文件不是有效的 JSON。`,download_failed:`无法下载用于查询额度的认证文件。`,stale_request:`连接或凭据已变更,请重试。`,plan:`套餐`,active:`订阅有效`,inactive:`订阅未激活`,window:`周期额度`,window_duration:`{{minutes}} 分钟周期`,weekly:`每周额度`,unknown:`未知`,remaining:`剩余 {{percent}}%`},kimi_quota:{title:`Kimi 额度`,empty_title:`暂无 Kimi 认证`,empty_desc:`上传 Kimi 认证文件后即可查看额度。`,domain_unavailable:`无法读取 Kimi 凭据的域名,需要可下载且有效的认证文件。`,stale_request:`连接或凭据已变更,请重试。`,idle:`点击此处刷新额度`,loading:`正在加载额度...`,load_failed:`额度获取失败:{{message}}`,missing_auth_index:`认证文件缺少 auth_index`,empty_data:`暂无额度数据`,refresh_button:`刷新额度`,fetch_all:`获取全部`,weekly_limit:`周限额`,monthly_limit:`月限额`,limit_window:`{{duration}} 限额`,limit_index:`限额 #{{index}}`,reset_hint:`{{hint}} 后重置`},xai_quota:{title:`Grok 额度`,empty_title:`暂无 xAI/Grok 认证`,empty_desc:`使用 xAI OAuth 登录后即可查看 Grok 额度。`,idle:`点击此处刷新额度`,loading:`正在加载额度...`,load_failed:`额度获取失败:{{message}}`,missing_auth_index:`认证文件缺少 auth_index`,empty_data:`暂无额度数据`,refresh_button:`刷新额度`,fetch_all:`获取全部`,weekly_limit:`周限额`,monthly_credits:`月度积分`,used_percent:`已用 {{percent}}`,usage_unavailable:`xAI 用量暂不可用`,reset_at:`重置 {{time}}`,product_usage:`{{product}} 使用`,plan_label:`套餐`,resets_label:`重置`,prepaid:`预付`,plan_supergrok:`SuperGrok`,plan_supergrok_heavy:`SuperGrok Heavy`,plan_paid:`付费`,paid_health:`付费 API 对话可用。xAI 暂不为此 OAuth 凭证提供额度总量数据。`,pay_as_you_go_label:`按量付费`,pay_as_you_go_enabled:`已启用,封顶 {{cap}}`,pay_as_you_go_disabled:`未启用`},vertex_import:{title:`Vertex JSON 登录`,description:`上传 Google 服务账号 JSON,使用 CLI vertex-import 同步规则写入 auth-dir/vertex-<project>.json。`,location_label:`目标区域 (可选)`,location_placeholder:`us-central1`,location_hint:`留空表示使用默认区域 us-central1。`,file_label:`服务账号密钥 JSON`,file_hint:`仅支持 Google Cloud service account key JSON 文件,私钥会自动规范化。`,file_placeholder:`尚未选择文件`,choose_file:`选择文件`,import_button:`导入 Vertex 凭证`,file_required:`请先选择 .json 凭证文件`,success:`Vertex 凭证导入成功`,result_title:`凭证已保存`,result_project:`项目 ID`,result_email:`服务账号`,result_location:`区域`,result_file:`存储文件`},oauth_excluded:{editor_description:`为提供商设置不对外展示的模型,支持精确选择和通配符规则。`,models_hint:`展开列表选择模型,或在下方输入通配符规则。`,title:`OAuth 模型禁用`,description:`按提供商分列展示,点击卡片编辑或删除;支持 * 通配符,范围跟随上方的配置文件过滤标签。`,add:`新增禁用`,add_title:`新增提供商模型禁用`,edit_title:`编辑 {{provider}} 的模型禁用`,provider_label:`提供商`,provider_placeholder:`例如 codex / openai`,provider_hint:`默认选中当前筛选的提供商,也可直接输入或选择其他名称。`,models_label:`禁用的模型`,save:`保存/更新`,save_success:`模型禁用已更新`,save_failed:`更新模型禁用失败`,delete:`删除提供商`,delete_confirm:`确定要删除 {{provider}} 的模型禁用吗?`,delete_success:`已删除该提供商的模型禁用`,delete_failed:`删除模型禁用失败`,no_models:`未配置禁用模型`,model_count:`禁用 {{count}} 个模型`,list_empty_all:`暂无任何提供商的模型禁用,点击“新增禁用”创建。`,provider_required:`请先填写提供商名称`,upgrade_required:`当前 CPA 版本不支持 OAuth 模型禁用,请升级 CPA 版本`,upgrade_required_title:`需要升级 CPA 版本`,upgrade_required_desc:`当前服务器版本不支持获取 OAuth 模型禁用功能,请升级到最新版本的 CPA(CLI Proxy API)后重试。`},excluded_models:{trigger_summary:`已排除 {{excluded}} · {{available}} 可用`,trigger_summary_rules:`{{n}} 条规则`,trigger_empty:`未排除任何模型`,meter_aria:`共 {{total}} 个模型,已排除 {{excluded}} 个`,search_placeholder:`搜索模型…`,search_aria:`搜索要排除的模型`,list_aria:`模型`,no_results:`没有匹配“{{query}}”的模型`,catalog_loading:`正在加载模型…`,catalog_unavailable:`无法获取模型列表,规则仍然生效。`,catalog_error:`模型加载失败。`,catalog_retry:`重试`,catalog_empty:`暂无可列出的模型。`,footer_count:`{{excluded}} / {{total}} 已排除`,select_all:`全部排除`,clear:`清空`,clear_aria:`清空已选模型(保留通配符规则)`,badge_wildcard:`由规则`,badge_unknown:`不在列表中`,wildcard_reason:`由规则 {{rule}} 匹配`,wildcard_locked:`由规则 {{rule}} 排除,请在下方修改该规则`,also_wildcard:`另由 {{rule}} 匹配`,chips_more:`还有 {{n}} 个`,chip_remove:`取消排除 {{rule}}`,rules_label:`通配符规则`,rules_placeholder:`每行一个规则,例如 gpt-5-*`,rules_hint:`* 匹配任意字符,匹配不区分大小写。`,rules_match_count:`匹配 {{n}} 个模型`,rules_match_none:`未匹配到列表中的任何模型`,rules_reserved:`“*” 会停用整个 provider,请改用「已停用」开关`},oauth_model_alias:{editor_description:`为提供商的模型设置调用别名,统一客户端使用的模型名称。`,edit_title:`编辑 {{provider}} 的模型别名`,mapping_hint:`选择原模型,并填写客户端使用的别名。`,mapping_row:`别名映射 {{number}}`,remove_mapping:`删除第 {{number}} 条别名映射`,title:`OAuth 模型别名`,add:`新增别名`,add_title:`新增提供商模型别名`,provider_label:`提供商`,provider_placeholder:`例如 codex / vertex`,provider_hint:`默认选中当前筛选的提供商,也可直接输入或选择其他名称。`,model_source_loading:`正在加载模型列表...`,model_source_unsupported:`当前 CPA 版本不支持获取模型列表(仍可手动输入)。`,model_source_loaded:`已加载 {{count}} 个模型,可在“原模型名称”中下拉选择;也可手动输入。留空保存将删除该提供商记录;开启“保留原名”会在保留原模型名的同时新增别名。`,alias_label:`模型别名`,alias_name_placeholder:`原模型名称`,alias_placeholder:`别名 (必填)`,duplicate_alias:`同一提供商下的别名不能重复。`,alias_fork_label:`保留原名`,add_alias:`添加别名`,save:`保存/更新`,save_success:`模型别名已更新`,save_failed:`更新模型别名失败`,delete:`删除提供商`,delete_confirm:`确定要删除 {{provider}} 的模型别名吗?`,delete_link_title:`取消链接`,delete_link_confirm:`确定取消 <code>{{sourceModel}}</code>({{provider}})到别名 <code>{{alias}}</code> 的映射?`,delete_alias_title:`删除别名`,delete_alias_confirm:`确定删除别名 <code>{{alias}}</code> 并取消所有关联模型的映射?`,delete_success:`已删除该提供商的模型别名`,delete_failed:`删除模型别名失败`,no_models:`未配置模型别名`,model_count:`{{count}} 条别名`,list_empty_all:`暂无任何提供商的模型别名,点击“新增别名”创建。`,chart_title:`全部映射概览`,diagram_providers:`提供商`,diagram_source_models:`源模型`,diagram_aliases:`别名`,diagram_expand:`展开`,diagram_collapse:`收起`,diagram_add_alias:`添加别名`,diagram_rename:`重命名`,diagram_rename_alias_title:`重命名别名`,diagram_rename_alias_label:`新别名名称`,diagram_rename_placeholder:`输入别名名称...`,diagram_delete_link:`取消链接 {{provider}} / {{name}}`,diagram_delete_alias:`删除别名`,diagram_please_enter_alias:`请输入别名名称。`,diagram_alias_exists:`该别名已存在。`,diagram_add_alias_title:`添加别名`,diagram_add_alias_label:`别名名称`,diagram_add_placeholder:`输入新别名名称...`,diagram_rename_btn:`重命名`,diagram_add_btn:`添加`,diagram_settings:`设置`,diagram_settings_title:`别名设置 — {{alias}}`,diagram_settings_source_title:`源模型设置`,diagram_settings_empty:`该别名暂无映射。`,diagram_tap_hint:`触摸设备上:先点选源模型,再点选别名即可建立映射。`,view_mode_diagram:`概览`,view_mode_list:`管理`,provider_required:`请先填写提供商名称`,upgrade_required:`当前 CPA 版本不支持模型别名功能,请升级 CPA 版本`,upgrade_required_title:`需要升级 CPA 版本`,upgrade_required_desc:`当前服务器版本不支持 OAuth 模型别名功能,请升级到最新版本的 CPA(CLI Proxy API)后重试。`},auth_login:{devin_oauth_cancel:`取消 Devin 登录`,devin_oauth_cancelled:`已取消 Devin 登录。`,devin_oauth_cancel_error:`取消 Devin 登录失败:`,devin_oauth_retry_hint:`服务器可能仍在等待授权。请先取消本次登录,再重新开始。`,devin_oauth_title:`Devin OAuth`,devin_oauth_button:`开始 Devin 登录`,devin_oauth_hint:`通过浏览器 OAuth 登录 Devin / Cognition,自动保存认证文件。需要 CLI Proxy API v7.3.1 或更高版本,请在五分钟内完成授权。`,devin_oauth_url_label:`授权链接:`,devin_copy_link:`复制链接`,devin_open_link:`打开链接`,devin_oauth_status_waiting:`等待 Devin 认证中...`,devin_oauth_status_success:`Devin 认证成功!`,devin_oauth_status_error:`Devin 认证失败:`,devin_oauth_start_error:`启动 Devin OAuth 失败:`,devin_callback_hint:`远程服务器:即使浏览器无法打开回环地址,也请从地址栏复制最终的完整 /devin/callback?… URL,保留原有端口、http/https、code 和 state。提交后请继续等待认证完成。`,devin_callback_placeholder:`http://127.0.0.1:<服务器端口>/devin/callback?code=...&state=...`,devin_callback_invalid:`请粘贴完整的 http/https 回调 URL,包含 state 和授权码或错误信息。`,devin_callback_state_mismatch:`此回调不属于当前 Devin 登录。请使用本次授权的最终 URL,不要复用旧回调。`,recommended_provider_section:`推荐提供商`,recommended_provider_badge:`推荐提供商`,other_oauth_providers:`其他 OAuth 提供商`,other_login_methods:`其他登录方式`,codex_oauth_title:`Codex OAuth`,codex_oauth_button:`开始 Codex 登录`,codex_oauth_hint:`通过 OAuth 流程登录 Codex 服务,自动获取并保存认证文件。`,codex_oauth_url_label:`授权链接:`,codex_open_link:`打开链接`,codex_copy_link:`复制链接`,codex_oauth_status_waiting:`等待认证中...`,codex_oauth_status_success:`认证成功!`,codex_oauth_status_error:`认证失败:`,codex_oauth_start_error:`启动 Codex OAuth 失败:`,codex_oauth_polling_error:`检查认证状态失败:`,anthropic_oauth_title:`Anthropic OAuth`,anthropic_oauth_button:`开始 Anthropic 登录`,anthropic_oauth_hint:`通过 OAuth 流程登录 Anthropic (Claude) 服务,自动获取并保存认证文件。`,anthropic_oauth_url_label:`授权链接:`,anthropic_open_link:`打开链接`,anthropic_copy_link:`复制链接`,anthropic_oauth_status_waiting:`等待认证中...`,anthropic_oauth_status_success:`认证成功!`,anthropic_oauth_status_error:`认证失败:`,anthropic_oauth_start_error:`启动 Anthropic OAuth 失败:`,anthropic_oauth_polling_error:`检查认证状态失败:`,antigravity_oauth_title:`Antigravity OAuth`,antigravity_oauth_button:`开始 Antigravity 登录`,antigravity_oauth_hint:`通过 OAuth 流程登录 Antigravity(Google 账号)服务,自动获取并保存认证文件。`,antigravity_oauth_url_label:`授权链接:`,antigravity_open_link:`打开链接`,antigravity_copy_link:`复制链接`,antigravity_oauth_status_waiting:`等待认证中...`,antigravity_oauth_status_success:`认证成功!`,antigravity_oauth_status_error:`认证失败:`,antigravity_oauth_start_error:`启动 Antigravity OAuth 失败:`,antigravity_oauth_polling_error:`检查认证状态失败:`,meta_oauth_title:`Muse (Meta) OAuth`,meta_oauth_button:`使用 Muse 登录`,meta_oauth_hint:`打开授权链接,如有提示请输入设备码。授权完成后将自动获取并保存认证文件。`,meta_oauth_url_label:`授权链接:`,meta_open_link:`打开链接`,meta_copy_link:`复制链接`,meta_oauth_status_waiting:`等待认证中...`,meta_oauth_status_success:`认证成功!`,meta_oauth_status_error:`认证失败:`,meta_oauth_start_error:`启动 Muse OAuth 失败:`,meta_oauth_polling_error:`检查认证状态失败:`,device_code_label:`设备码:`,device_code_copy:`复制设备码`,kimi_ai_oauth_title:`Kimi 国际站(kimi.ai)`,kimi_ai_oauth_button:`登录 Kimi 国际站`,kimi_ai_oauth_hint:`通过设备授权登录 kimi.ai 国际站,自动保存独立的 kimi-ai 认证文件。国内站与国际站账号不互通。`,kimi_ai_oauth_url_label:`授权链接:`,kimi_ai_open_link:`打开链接`,kimi_ai_copy_link:`复制链接`,kimi_ai_oauth_status_waiting:`等待认证中...`,kimi_ai_oauth_status_success:`认证成功!`,kimi_ai_oauth_status_error:`认证失败:`,kimi_ai_oauth_start_error:`启动 Kimi 国际站登录失败:`,kimi_ai_oauth_polling_error:`检查认证状态失败:`,kimi_oauth_title:`Kimi 国内站(kimi.com)`,kimi_oauth_button:`登录 Kimi 国内站`,kimi_sign_up_button:`立即注册`,kimi_oauth_hint:`通过设备授权登录 kimi.com 国内站,自动获取并保存认证文件。国际站账号请使用独立的 kimi.ai 登录入口。`,kimi_oauth_url_label:`授权链接:`,kimi_open_link:`打开链接`,kimi_copy_link:`复制链接`,kimi_oauth_status_waiting:`等待认证中...`,kimi_oauth_status_success:`认证成功!`,kimi_oauth_status_error:`认证失败:`,kimi_oauth_start_error:`启动 Kimi OAuth 失败:`,kimi_oauth_polling_error:`检查认证状态失败:`,xai_oauth_title:`xAI OAuth`,xai_oauth_button:`开始 xAI 登录`,xai_oauth_hint:`通过 OAuth 流程登录 xAI Grok 服务,自动获取并保存认证文件。`,xai_oauth_url_label:`授权链接:`,xai_open_link:`打开链接`,xai_copy_link:`复制链接`,xai_oauth_status_waiting:`等待认证中...`,xai_oauth_status_success:`认证成功!`,xai_oauth_status_error:`认证失败:`,xai_oauth_start_error:`启动 xAI OAuth 失败:`,xai_oauth_polling_error:`检查认证状态失败:`,plugin_oauth_title:`{{name}} OAuth`,plugin_oauth_button:`开始 {{name}} 登录`,plugin_oauth_hint:`通过插件提供的 OAuth 流程登录 {{name}},自动获取并保存认证文件。`,plugin_oauth_url_label:`授权链接:`,plugin_open_link:`打开链接`,plugin_copy_link:`复制链接`,plugin_oauth_status_waiting:`等待认证中...`,plugin_oauth_status_success:`认证成功!`,plugin_oauth_status_error:`认证失败:`,plugin_oauth_start_error:`启动插件 OAuth 失败:`,xai_callback_label:`回调 URL 或授权码`,xai_callback_placeholder:`粘贴页面显示的 code,或完整 callback URL`,xai_callback_hint:`Grok 有时只在页面显示 code。可直接粘贴 code,系统会自动拼接为 http://127.0.0.1:56121/callback?... 后提交。`,xai_callback_required:`请先粘贴 Grok 页面显示的 code 或完整回调 URL。`,xai_callback_state_missing:`缺少本次 xAI 登录的 state,请重新开始 xAI 登录后再提交 code。`,oauth_callback_label:`回调 URL`,oauth_callback_placeholder:`http://localhost:1455/auth/callback?code=...&state=...`,oauth_callback_hint:`远程浏览器模式:当授权跳转到 http://localhost:... 后,复制完整 URL 并提交到这里。`,oauth_callback_button:`提交回调 URL`,oauth_callback_required:`请先粘贴完整的回调 URL。`,oauth_callback_success:`回调 URL 已提交,请继续等待认证。`,oauth_callback_error:`提交回调 URL 失败:`,oauth_callback_upgrade_hint:`请更新CLI Proxy API或检查连接`,oauth_callback_status_success:`回调 URL 已提交,等待认证中...`,oauth_callback_status_error:`回调 URL 提交失败:`,missing_state:`无法获取认证状态参数`,login_another_account:`登录另一个账号`,view_auth_files:`查看认证文件`,iflow_oauth_title:`iFlow OAuth`,iflow_oauth_button:`开始 iFlow 登录`,iflow_oauth_hint:`通过 OAuth 流程登录 iFlow 服务,自动获取并保存认证文件。`,iflow_oauth_url_label:`授权链接:`,iflow_open_link:`打开链接`,iflow_copy_link:`复制链接`,iflow_oauth_status_waiting:`等待认证中...`,iflow_oauth_status_success:`认证成功!`,iflow_oauth_status_error:`认证失败:`,iflow_oauth_start_error:`启动 iFlow OAuth 失败:`,iflow_oauth_polling_error:`检查认证状态失败:`,remote_access_disabled:`远程访问不支持此登录方式,请从本地 (localhost) 访问`},stats:{success:`成功`,failure:`失败`},status_bar:{success_short:`✓`,failure_short:`✗`,no_requests:`无请求`},logs:{preview_too_large:`报文超过 2 MiB 预览限制,请下载查看`,read_status_live:`持续读取`,read_status_paused:`读取已暂停`,read_status_catching_up:`正在追赶积压日志`,last_updated:`最后成功更新:{{time}}`,buffer_scope:`仅搜索已加载日志:缓存 {{count}} 行,匹配 {{matched}} 行`,buffer_evicted:`较早日志已移出缓存,无法在此检索`,cursor_reset_notice:`日志已轮转或重置,已重新载入最新内容`,history_evicted:`阅读位置已移出缓存,请重新定位`,resume_following:`回到最新 · 新增 {{count}} 行`,level_filter:`日志等级`,all_levels:`全部等级`,view_request:`查看请求 {{id}} 的报文`,copy_line:`复制此行`,request_log_missing:`未找到报文:可能未记录或已被清理。关闭请求日志时通常仅保留错误报文。`,download_cached:`下载已缓存日志`,clear_application_confirm:`清空服务器上的应用日志?请求报文文件不会被删除,此操作不可撤销。`,clear_search:`清除搜索`,reading_enabled:`持续读取`,filter_load_more:`展开更多匹配日志`,title:`日志查看`,refresh_button:`刷新日志`,clear_button:`清空日志`,fullscreen_button:`全屏显示`,exit_fullscreen_button:`退出全屏`,download_button:`下载日志`,error_logs_modal_title:`错误请求日志`,error_logs_description:`请选择要打开或下载的错误请求日志文件(仅在关闭请求日志时生成)。`,error_logs_request_log_enabled:`当前已开启请求日志,按接口约定错误请求日志列表会始终为空。关闭请求日志后再刷新即可查看。`,error_logs_empty:`暂无错误请求日志文件`,error_logs_load_error:`加载错误日志列表失败`,error_logs_size:`大小`,error_logs_modified:`最后修改`,error_logs_open:`打开`,error_logs_download:`下载`,error_log_view_title:`错误请求日志详情`,error_log_open_failed:`打开错误日志失败`,error_log_empty_content:`该错误日志没有内容`,error_log_copy_success:`错误日志内容已复制`,error_log_download_success:`错误日志下载成功`,request_log_download_title:`下载报文`,request_log_download_confirm:`是否要下载id为{{id}}的报文?`,request_log_download_success:`报文下载成功`,empty_title:`暂无日志记录`,empty_desc:`当启用"日志记录到文件"功能后,日志将显示在这里`,cpa_file_logging_required:`当前连接的是 CPA,日志查看需要先开启“日志记录到文件”。`,cpa_file_logging_required_title:`需要开启文件日志`,cpa_file_logging_required_desc:`CPA 的日志接口读取本地日志文件。请在配置中开启 logging-to-file 后再刷新查看。`,file_logging_required:`当前日志接口需要先开启“日志记录到文件”后才能读取文件日志。`,file_logging_required_title:`需要开启文件日志`,file_logging_required_desc:`当前日志接口读取本地日志文件。请在配置中开启 logging-to-file 后再刷新查看。`,log_content:`日志内容`,loading:`正在加载日志...`,load_error:`加载日志失败`,clear_confirm:`确定要清空所有日志吗?此操作不可恢复!`,clear_success:`日志已清空`,download_success:`日志下载成功`,auto_refresh:`自动刷新`,load_more_hint:`向上滚动加载更多`,hidden_lines:`已隐藏 {{count}} 行`,loaded_lines:`已载入 {{count}} 行`,filtered_lines:`已过滤 {{count}} 行`,hide_management_logs:`屏蔽 {{prefix}} 日志`,show_raw_logs:`显示原始日志`,show_raw_logs_hint:`直接显示原始日志文本,方便多行复制`,search_placeholder:`搜索日志内容或关键字`,filter_panel_title:`筛选与显示`,wrap_lines:`长日志自动换行`,filter_panel_expand:`展开结构化筛选`,filter_panel_collapse:`收起结构化筛选`,filter_panel_active_count:`已选 {{count}} 项`,filter_method:`请求方法`,filter_status:`状态码`,filter_path:`路径`,filter_path_empty:`暂无可筛选路径`,filter_status_2xx:`2xx`,filter_status_3xx:`3xx`,filter_status_4xx:`4xx`,filter_status_5xx:`5xx`,clear_filters:`清空筛选`,search_empty_title:`未找到匹配的日志`,search_empty_desc:`尝试更换关键字或清空筛选条件。`,double_click_copy_hint:`双击复制日志原文`,copy_success:`已复制日志原文`,copy_failed:`复制失败`},config_management:JSON.parse(`{"title":"配置面板","meta_fields":"{{count}} 项配置","meta_dirty":"{{count}} 项待保存","meta_dirty_source":"源码有未保存修改","meta_errors":"{{count}} 项校验错误","meta_synced":"已同步","actions":{"discard":"放弃更改","save":"保存更改"},"discard_confirm_message":"确定放弃所有未保存的更改并恢复到最近的服务器版本吗?","mode":{"label":"编辑模式","visual":"可视化","source":"源码"},"reload":"重新加载","reload_confirm_message":"重新加载将丢弃你当前未保存的修改,确定继续吗?","save":"保存","status_loading":"加载配置中...","status_loading_short":"加载中","status_loaded":"配置已加载","status_loaded_short":"已加载","status_dirty":"有未保存的更改","status_dirty_short":"未保存","status_disconnected":"请先连接服务器以加载配置","status_disconnected_short":"未连接","status_load_failed":"加载失败","status_load_failed_short":"失败","status_saving":"正在保存配置...","status_saving_short":"保存中","save_success":"配置已保存","visual_mode_unavailable":"YAML 语法修复前无法使用可视化编辑","visual_mode_unavailable_short":"YAML错误","validation_blocked_short":"待修复","visual_mode_unavailable_detail":"当前配置存在无效 YAML,暂时无法使用可视化编辑:{{message}}","visual_mode_save_blocked":"请先修复 YAML 语法错误,再从可视化模式保存","source_changes_before_visual":"源码有未保存的修改,请先保存或放弃修改,再切换到可视化模式。","precise_save_incomplete":"精准保存未完成,部分修改可能已生效。草稿已保留,请再次保存以重新核对服务端差异。","concurrent_list_conflict":"服务端列表 {{path}} 已在草稿基线之后发生变更。为避免覆盖这些修改,已阻止保存。草稿仍保留;请记下本地修改,再重新加载配置并核对合并。","precise_save_recovery_required":"无法回读保存结果,已暂停编辑。请再次保存以恢复草稿基线,或重新加载配置。","visual_mode_latest_yaml_invalid":"服务端最新配置包含无效 YAML,请先切回源码模式检查后再保存可视化修改:{{message}}","editor_placeholder":"key: value","search_placeholder":"搜索配置内容...","search_button":"搜索","search_no_results":"无结果","search_prev":"上一个","search_next":"下一个","diff":{"title":"确认变更","confirm":"确认保存","no_changes":"未检测到变更"},"visual":{"serverExtras":{"trustedProxies":{"label":"可信代理","hint":"填写 IP 地址或 CIDR;留空不信任转发头。信任覆盖所有地址的网段有客户端 IP 伪造风险。重启后端后生效。"},"discoveryEnabled":{"label":"启用服务发现","hint":"通过 mDNS / DNS-SD 在局域网广播。默认关闭,支持热更新。"},"discoveryServiceName":{"label":"服务名称前缀","hint":"后端自动追加短 ID,留空使用 CPA-<ShortID>。"},"discoveryServiceType":{"label":"服务类型","hint":"留空使用 _ai-gateway._tcp。"},"discoverySubtypes":{"label":"协议子类型","hint":"留空使用默认的五种协议。缺少前导 _ 时自动补齐,非法项会被忽略。"},"discoveryInterfacesInclude":{"label":"包含网卡","hint":"留空自动选择物理局域网网卡。支持网卡名称或以 * 结尾的前缀匹配。"},"discoveryInterfacesExclude":{"label":"排除网卡","hint":"支持网卡名称或以 * 结尾的前缀匹配。排除规则优先于包含规则。"},"discoveryAuthRequired":{"label":"广播鉴权要求","hint":"默认开启。仅广播元数据,不改变实际 API 鉴权。"},"discoveryAdvertiseManagement":{"label":"广播管理服务","hint":"默认关闭。仅广播管理服务存在,不修改远程访问权限。"},"discoveryTitle":"局域网发现","discoveryHint":"需要支持组播的物理网卡及非回环监听地址。Docker 通常需使用 host 网络;不保证服务可达。"},"additions":{"oauthTitle":"OAuth 提供商行为","oauthHint":"本组提供商设置仅适用于 OAuth/认证文件凭据,不影响 API Key 凭据。","claudeTitle":"Claude","codexTitle":"Codex","antigravityTitle":"Antigravity","xaiTitle":"xAI","liveRelayTitle":"Codex Live 媒体中继","liveRelayHint":"在代理进程内中继 WebRTC 音频和 DataChannel 流量,需要入站 UDP 可达。请勿在截图或日志中暴露 ICE 凭据。","iceAdd":"添加 ICE 服务器","iceRemove":"移除 ICE 服务器 {{index}}","iceURLs":"STUN/TURN URL","iceUsername":"TURN 用户名","iceCredential":"TURN 密码","iceServer":"ICE 服务器 {{index}}","routingSessionAffinitySubagents":{"label":"子代理会话亲和性","hint":"默认开启,仅在启用会话亲和性时生效。子代理继承父会话的凭据以复用缓存;关闭后通过凭据池分散子代理请求,提高并发能力。"},"saveCooldownStatus":{"label":"持久化冷却状态","hint":"将各凭据的冷却状态保存到认证文件旁的 .cds 文件。默认关闭,关闭时仅在内存中保存状态。"},"transientErrorCooldownSeconds":{"label":"瞬时错误冷却时间(秒)","hint":"适用于上游 408/500/502/503/504/520–526 错误。0 使用默认的 60 秒冷却时间,负数禁用此类冷却。"},"videoResultAuthCacheTTL":{"label":"视频结果凭据缓存有效期","hint":"视频 ID 与创建它的凭据保持绑定的时长。使用 30m、3h 等时长格式,默认 3h。"},"claudeHeaderTimezone":{"label":"后备时区","hint":"用于伪装请求中 currentDate 的 IANA 时区,例如 Asia/Singapore;Local 表示后端主机时区。凭据 JSON 中的 timezone 优先。"},"claudeModelLevelCooling":{"label":"按模型冷却","hint":"仅对请求的模型应用 Claude 配额冷却,而非冷却该凭据下的所有模型。默认关闭。"},"claudeDisableCloakMode":{"label":"禁用请求伪装","hint":"禁用 Claude Code CLI 身份伪装和系统提示词替换,原样传递系统提示词。凭据文件可通过 cloak_mode 覆盖。默认 false,即仅对非 Claude Code 客户端自动伪装。"},"claudeCodeDisableCloakingModelList":{"label":"禁用模型 ID 伪装","hint":"在 Anthropic 模型列表响应中返回原始模型 ID,而非伪装后的 ID。默认关闭。"},"codexDisableCloaking":{"label":"禁用请求伪装","hint":"不再为 HTTP/SSE 和 WebSocket 请求强制设置官方 Codex User-Agent 与 Originator 请求头。默认关闭。"},"codexModelLevelCooling":{"label":"按模型冷却","hint":"仅对请求的模型应用 usage_limit_reached 配额冷却,而非冷却该凭据下的所有模型。默认关闭。"},"codexStreamBootstrapBuffering":{"label":"流启动缓冲","hint":"暂存初始空事件和心跳,以便在早期过载或限流拒绝时切换凭据重试。默认关闭。会延迟响应头,可能触发客户端或反向代理超时;缓冲受帧数和字节数预算限制。"},"codexStreamBootstrapTimeout":{"label":"流启动缓冲超时","hint":"可选的缓冲时间上限,例如 20s。默认 0,表示不限制时间,但仍受帧数和字节数预算限制。仅在收到上游帧时检查,并非所有网络卡死场景的硬截止时间;响应头仍可能等待转换后的输出。"},"codexOptimizeMultiAgentV2":{"label":"多代理 v2 优化","hint":"优化官方 Codex 多代理请求:更新 spawn_agent 模型信息、移除消息参数加密、规范化 agent_message 内容,并为非 Codex 协议转换为用户消息。默认关闭。"},"codexOrphanDelegationCompatibility":{"label":"孤立委派输出兼容","hint":"对带有 X-Openai-Subagent: collab_spawn 的请求,将缺少有效匹配调用的 codex_app/create_thread 和 codex_app/send_message_to_thread 孤立输出转换为用户消息。默认关闭。"},"codexResponseSteering":{"label":"响应引导","hint":"实验性全双工 Codex Responses WebSocket。每条连接始终绑定同一上游账号和模型,已接受的输入不会重放。默认关闭。"},"antigravityConnectionPoolEnabled":{"label":"启用连接池","hint":"复用上游 HTTP/1.1 连接。默认 false,使用短连接。"},"antigravityConnectionPoolIdleTimeout":{"label":"空闲连接超时","hint":"空闲连接在池中保留的时长,默认 30s,上限 210s。设为 0 或负时长时切换为短连接。"},"antigravityConnectionPoolMaxIdleConnsPerHost":{"label":"每主机最大空闲连接数","hint":"每个凭据为每个上游主机保留的最大空闲连接数,默认 2,上限 100。0 使用 Go 默认值 2,负数切换为短连接。"},"xaiInjectXSearch":{"label":"注入 x_search","hint":"请求未声明 xAI 原生 x_search 工具时自动添加,并在适用时加入 tool_choice.allowed_tools。默认关闭。"},"codexLiveMediaRelayEnabled":{"label":"启用媒体中继","hint":"在当前进程内终止并中继 Codex Live WebRTC 媒体连接,需要入站 UDP 可达。默认关闭,以保持媒体直连。"},"codexLiveMediaRelayMaxSessions":{"label":"最大并发媒体会话数","hint":"留空或设为 0 使用默认的 32 个会话。自定义 UDP 端口范围必须为每个会话提供至少两个端口。"},"codexLiveMediaRelayDisablePrivateRemoteIPs":{"label":"阻止私有远端 IP 候选","hint":"默认 false,允许私有地址候选,适合本地或可信网络客户端。开启后拒绝指向私有、回环、链路本地或未指定 IP 的下游 SDP 候选,减少内网暴露风险,但可能导致本地连接失败。"},"codexLiveMediaRelayPublicIP":{"label":"通告的公网 IP","hint":"代理位于 1:1 NAT 后时,可填写向对端通告的公网 IPv4 或 IPv6 地址。请填写 IP 地址而非主机名。"},"codexLiveMediaRelayUDPPortMin":{"label":"UDP 端口下限","hint":"上下限均为 0 时由系统分配;否则须提供包含两端的连续端口范围,端口数量至少为实际会话上限的两倍。"},"codexLiveMediaRelayUDPPortMax":{"label":"UDP 端口上限","hint":"不得小于下限。上下限须同时为 0 或同时非零;自定义范围每个会话至少需要两个端口,默认 32 个会话需要至少 64 个端口。"},"codexLiveMediaRelayICEServers":{"label":"ICE 服务器","hint":"可选的 STUN/TURN 服务器,URL 支持 stun:、stuns:、turn: 或 turns:。JSON 配置 API 不返回 TURN 凭据。请通过密码字段填写凭据,勿将秘密暴露在截图或日志中。"}},"search":{"placeholder":"搜索配置项(标签或 YAML 键名)","no_results":"没有匹配的配置项"},"sections":{"common":{"title":"常用","description":"最常调整的配置项,与完整分区共享同一份数据"},"connectivity":{"title":"接入与认证","description":"服务地址、端口、认证目录与 API 密钥"},"logging":{"title":"日志与诊断","description":"调试、日志输出与使用统计"},"advanced":{"title":"高级与实验","description":"请求头伪装、签名缓存、插件源等不常修改的设置","plugins_title":"插件","antigravity_title":"Antigravity","devin_title":"Devin","signature_title":"签名校验"},"server":{"host":"主机地址","port":"端口"},"tls":{"title":"TLS/SSL 配置","description":"HTTPS 安全连接设置","enable":"启用 TLS","enable_desc":"启用 HTTPS 安全连接","cert":"证书文件路径","key":"私钥文件路径"},"remote":{"title":"远程管理","description":"远程访问和控制面板设置","allow_remote":"允许远程访问","allow_remote_desc":"允许从其他主机访问管理接口","disable_panel":"禁用控制面板","disable_panel_desc":"禁用内置的 Web 控制面板","disable_auto_update_panel":"禁用面板自动更新","disable_auto_update_panel_desc":"首次缺失时仍可下载,但不再从 GitHub 后台自动更新","secret_key":"管理密钥","secret_key_placeholder":"设置管理密钥","panel_repo":"面板仓库"},"auth":{"auth_dir":"OAuth 认证文件目录 (oauth.auth-dir)","auth_dir_hint":"存放认证文件的目录路径(支持 ~)"},"system":{"debug":"调试模式","debug_desc":"启用详细的调试日志","commercial_mode":"商业模式","commercial_mode_desc":"禁用高开销中间件以支持高并发","logging_to_file":"写入日志文件","logging_to_file_desc":"将日志保存到文件","plugins_enabled":"启用插件系统","plugins_enabled_desc":"启用标准动态库插件加载;具体插件实例仍在插件管理页启停","plugin_store_sources":"第三方插件源","plugin_store_sources_desc":"追加插件商店 registry 源;内置官方源始终保留","plugin_store_sources_label":"插件源 registry URL (plugins.store-sources)","plugin_store_sources_placeholder":"https://example.com/cliproxy-plugins/registry.json","plugin_store_sources_hint":"每行一个 registry.json URL,保存时会过滤空行","plugin_store_auth":"插件商店认证规则","plugin_store_auth_desc":"为私有 registry、GitHub Release 元数据或下载地址配置认证头","plugin_store_auth_hint":"这里只填写环境变量名,不填写真实 token;后端会从运行环境读取值。","store_auth_empty":"暂未配置认证规则。公开插件源不需要配置。","store_auth_rule":"认证规则","store_auth_add":"添加认证规则","store_auth_match":"匹配 URL 前缀","store_auth_type":"认证类型","store_auth_apply_to":"应用到","store_auth_apply_to_hint":"不选择时应用到所有请求类型。","store_auth_apply_registry":"Registry","store_auth_apply_metadata":"Metadata","store_auth_apply_artifact":"Artifact","store_auth_type_none":"无认证","store_auth_type_bearer":"Bearer","store_auth_type_basic":"Basic","store_auth_type_header":"自定义 Header","store_auth_type_github_token":"GitHub Token","store_auth_token_env":"Token 环境变量名","store_auth_username_env":"用户名环境变量名","store_auth_password_env":"密码环境变量名","store_auth_header_name":"Header 名称","store_auth_header_value_env":"Header 值环境变量名","store_auth_allow_insecure":"允许 HTTP 非安全地址","logs_max_size":"日志文件大小限制 (MB)","error_logs_max_files":"错误日志保留文件数","usage_statistics_enabled":"启用内存用量统计","usage_statistics_enabled_desc":"启用内存中的请求用量聚合","redis_usage_retention":"Redis 用量队列保留秒数","redis_usage_retention_hint":"RESP 接口 LPOP/RPOP 用量队列的内存保留时间,最大 3600 秒","antigravity_sensitive_words":"敏感词混淆","antigravity_sensitive_words_desc":"在 Antigravity 系统提示词匹配项中插入零宽字符,降低上游精确关键词匹配","antigravity_sensitive_words_label":"OAuth 敏感词(oauth.providers.antigravity.sensitive-words)","antigravity_sensitive_words_placeholder":"proxy","antigravity_sensitive_words_hint":"每项填写一个词或短语;匹配不区分大小写,保存时移除空项,少于 2 个字符的项会被后端忽略","devin_sensitive_words":"Devin 系统提示词敏感词","devin_sensitive_words_desc":"仅处理 Devin 系统提示词:含配置词的整行会被删除,剩余系统提示词再进行混淆;普通消息和工具参数不会被修改","devin_sensitive_words_label":"OAuth 敏感词(oauth.providers.devin.sensitive-words)","devin_sensitive_words_placeholder":"敏感短语","devin_sensitive_words_hint":"每项填写一个词或短语。请谨慎配置:命中内容会导致整行系统提示词被删除;保存时移除空项","antigravity_signature_cache":"启用 Antigravity 签名缓存","antigravity_signature_cache_desc":"优先使用并校验缓存的 thinking block 签名","antigravity_signature_strict":"严格校验旁路签名","antigravity_signature_strict_desc":"仅在关闭签名缓存时生效,按完整 Claude protobuf 树校验"},"headers":{"title":"Header 默认值","description":"Claude 与 Codex OAuth 请求在客户端缺少 Header 时使用的默认值","claude_title":"Claude OAuth 默认请求头","codex_title":"Codex OAuth 默认请求头","user_agent":"User-Agent","package_version":"Package Version","runtime_version":"Runtime Version","os":"OS","arch":"Arch","timeout":"Timeout","stabilize_device":"稳定设备指纹","stabilize_device_desc":"固定 OS/Arch,并按凭据/API Key 稳定软件指纹","beta_features":"Beta Features"},"network":{"title":"网络配置","description":"代理、重试和路由设置","proxy_url":"代理 URL","proxy_url_sponsor_hint":"没有合适的代理?","request_retry":"请求重试次数","max_retry_credentials":"最大重试凭据数","max_retry_credentials_hint":"留空表示不设置;设为 0 或负整数表示尝试所有可用凭据。","max_retry_interval":"最大重试间隔 (秒)","max_retry_interval_hint":"设为 0 或负整数表示重试轮次之间不等待凭据冷却。","auth_auto_refresh_workers":"认证自动刷新 Worker 数","auth_auto_refresh_workers_hint":"正整数覆盖 Worker 数;设为 0、负整数或留空时使用默认值(16)","disable_image_generation":"禁用图像生成","disable_image_generation_hint":"false 为启用;true 为全部禁用;chat 禁用非图片端点注入;passthrough 不注入并保留客户端工具列表","disable_image_generation_false":"false(启用)","disable_image_generation_true":"true(全部禁用)","disable_image_generation_chat":"chat(仅禁用聊天注入)","disable_image_generation_passthrough":"passthrough(保留客户端工具列表)","gpt_image_2_base_model":"GPT Image 2 基础模型","gpt_image_2_base_model_hint":"代理 gpt-image-2 图片请求时使用的主线模型;留空或非法时后端使用默认值","routing_strategy":"路由策略","routing_strategy_hint":"选择凭据选择策略","strategy_round_robin":"轮询 (Round Robin)","strategy_weighted_round_robin":"加权轮询 (Weighted Round Robin)","strategy_fill_first":"填充优先 (Fill First)","session_affinity_ttl":"会话粘性 TTL","force_model_prefix":"强制模型前缀","force_model_prefix_desc":"未带前缀的模型请求只使用无前缀凭据","passthrough_headers":"透传上游响应 Header","passthrough_headers_desc":"将过滤后的上游响应 Header 转发给下游客户端","disable_cooling":"禁用冷却调度","disable_cooling_desc":"全局禁用认证/模型失败后的冷却窗口","session_affinity":"会话粘性路由","ws_auth":"WebSocket 认证","ws_auth_desc":"启用 AI Studio WebSocket 连接认证(oauth.providers.aistudio.ws-auth)"},"quota":{"title":"配额回退","description":"配额耗尽时的回退策略","switch_project":"切换项目","switch_project_desc":"配额耗尽时自动切换到其他项目","switch_preview_model":"切换预览模型","switch_preview_model_desc":"配额耗尽时切换到预览版本模型","antigravity_credits":"使用Antigravity Credits"},"streaming":{"title":"流式传输配置","description":"Keepalive 与 bootstrap 重试设置","keepalive_seconds":"Keepalive 秒数","keepalive_hint":"设置为 0、负整数或留空表示禁用 keepalive","bootstrap_retries":"Bootstrap 重试次数","bootstrap_hint":"流式传输首包前的重试次数;设为 0、负整数或留空表示禁用启动重试","nonstream_keepalive":"非流式 Keepalive 间隔 (秒)","nonstream_keepalive_hint":"非流式响应时每隔 N 秒发送空行;设置为 0、负整数或留空表示禁用保活","disabled":"已禁用"},"payload":{"title":"Payload 配置","description":"默认值、原始 JSON 规则、覆盖规则与过滤规则","default_rules":"默认规则","default_rules_desc":"当请求中未指定参数时,使用这些默认值","default_raw_rules":"默认 Raw 规则","default_raw_rules_desc":"当请求中未指定参数时,按原始 JSON 片段写入这些值,例如 true、123、\\"high\\" 或 {\\"type\\":\\"object\\"}","override_rules":"覆盖规则","override_rules_desc":"强制覆盖请求中的参数值","override_raw_rules":"覆盖 Raw 规则","override_raw_rules_desc":"始终按原始 JSON 片段覆盖参数值,适合 response_format、schema 等复杂字段","filter_rules":"过滤规则","filter_rules_desc":"通过 JSON Path 预过滤上游请求体,自动剔除不合规/冗余参数(Request Sanitization)"}},"api_keys":{"label":"客户端 API 密钥 (access.api-keys)","add":"添加 API 密钥","generate":"生成","empty":"暂无 API 密钥","hint":"每个条目代表一个 API 密钥(与 「API 密钥管理」 页面样式一致)","edit_title":"编辑 API 密钥","add_title":"添加 API 密钥","input_label":"API 密钥","input_placeholder":"粘贴你的 API 密钥","name_label":"名称 / 说明(可选)","name_placeholder":"例如:小明的笔记本","name_hint":"名称立即保存在当前浏览器中,按服务器隔离,不写入服务器配置。清空此字段可移除名称。","name_save_error":"无法将名称保存到浏览器存储,请检查浏览器存储设置。","input_hint":"保存配置后生效。上游提供商密钥独立管理,不受此处修改影响。","error_empty":"请输入 API 密钥","error_invalid":"API 密钥包含无效字符","strength":{"label":"API 密钥强度","empty":"待输入","weak":"弱","fair":"一般","good":"良好","strong":"很强"}},"payload_rules":{"rule":"规则","models":"适用模型","model_name":"模型名称","provider_type":"供应商类型","add_model":"添加模型","params":"参数设置","remove_params":"移除参数","json_path":"JSON 路径 (如 temperature)","json_path_filter":"JSON 路径 (gjson/sjson),如 generationConfig.thinkingConfig.thinkingBudget","param_type":"参数类型","param_value":"参数值","add_param":"添加参数","no_rules":"暂无规则","add_rule":"添加规则","provider_default":"默认","provider_openai":"OpenAI","provider_openai_response":"OpenAI Response","provider_responses":"Responses","provider_gemini":"Gemini","provider_claude":"Claude","provider_codex":"Codex","provider_antigravity":"Antigravity","advanced":"高级","hide_advanced":"收起高级","from_protocol":"来源协议 (from-protocol)","headers":"请求 Header 匹配","header_name":"Header 名称","header_value":"Header 值","add_header":"添加 Header","match":"必须匹配 (match)","notMatch":"不得匹配 (not-match)","exist":"必须存在 (exist)","notExist":"不得存在 (not-exist)","condition_path":"匹配路径","condition_value":"匹配值","add_condition":"添加条件","value_type_string":"字符串","value_type_number":"数字","value_type_boolean":"布尔","value_type_json":"JSON","value_string":"字符串值","value_number":"数字值 (如 0.7)","value_boolean":"true 或 false","value_json":"JSON 值","value_raw_json":"原始 JSON 片段,如 true、123、\\"high\\" 或 {\\"type\\":\\"object\\"}","value_default":"值","boolean_true":"true","boolean_false":"false"},"validation":{"invalid_trusted_proxies":"每个可信代理必须是有效的 IP 地址或 CIDR。","invalid_discovery_service_type":"请使用 _名称._tcp 格式:名称为 1–15 位英文字母、数字或连字符,首尾不能是连字符。","validation_blocked":"请先修复表单校验错误再保存","invalid_duration":"请输入有效时长,例如 30s 或 3h","positive_duration":"请输入大于零的时长","invalid_timezone":"请输入有效的 IANA 时区,例如 Asia/Singapore","invalid_ip":"请输入有效的 IPv4 或 IPv6 地址","udp_port_pair":"UDP 端口上下限须同时为 0,或同时设置且下限不大于上限","udp_port_capacity":"UDP 端口数量须至少为实际最大会话数的两倍(会话数为 0 时按 32 计算)","invalid_ice_servers":"每个 ICE 服务器须至少包含一个有效的 stun:、stuns:、turn: 或 turns: URL","integer_range_0_65535":"请输入 0 到 65535 之间的整数","port_range":"请输入 1 到 65535 之间的有效端口","integer":"请输入整数","non_negative_integer":"请输入非负整数","integer_range_1_3600":"请输入 1 到 3600 之间的整数","payload_invalid_number":"请输入有效数字","payload_invalid_boolean":"请选择 true 或 false","payload_invalid_json":"请输入有效的 JSON"},"common":{"edit":"编辑","delete":"删除","cancel":"取消","update":"更新","add":"添加"}}}`),quota_management:{search_label:`搜索账号`,search_placeholder:`按文件名或邮箱搜索`,search_empty_title:`没有匹配的账号`,search_empty_desc:`请尝试其他文件名或邮箱,或清空搜索。`,search_clear:`清空搜索`,title:`配额管理`,description:`集中查看 OAuth 额度与剩余情况`,refresh_all_credentials:`刷新全部凭证`,sort_label:`排序`,sort_default:`默认`,sort_soonest:`最快恢复优先`,meta_credentials:`{{count}} 个凭证`,meta_loaded:`{{count}} 个已加载`,meta_attention:`{{count}} 个需关注`,empty_title:`暂无可查额度的凭证`,empty_desc:`接入 Antigravity、Claude、Codex、xAI 或 Kimi 凭证后即可在此查看额度。`,windows_title:`配额窗口`,windows_span_weekly:`两周`,windows_span_session:`三天`,windows_current:`当前`,windows_today:`今天`,windows_prev:`上一页`,windows_next:`下一页`,windows_mode_weekly:`按周`,windows_mode_session:`5 小时`,windows_credential:`凭证`,windows_idle:`没有正在计时的窗口`,windows_empty_session:`当前页面没有凭证提供 5 小时配额窗口。`,windows_legend_current:`当前窗口`,windows_legend_upcoming:`即将开始`,windows_legend_elapsed:`已结束`,windows_legend_reset_credit:`主动重置过期`,soonest_row_hint:`该凭证中最先恢复`,windows_reset_credit:`主动重置`,windows_credit_granted:`获得时间`,windows_credit_expires:`过期时间`,windows_note_weekly:`每条表示一个完整的配额窗口,从开启到重置。同时结束的窗口会争用相同的日期。`,windows_note_session:`每条表示一个 5 小时窗口。仅显示有正在计时窗口的凭证,其余保持为空。`,weekday_sun:`日`,weekday_mon:`一`,weekday_tue:`二`,weekday_wed:`三`,weekday_thu:`四`,weekday_fri:`五`,weekday_sat:`六`},plugin_management:{title:`插件管理`,description:`查看已发现和已注册的插件,管理实例开关、配置字段和资源入口。`,refresh:`刷新`,load_failed:`加载插件失败`,config_load_failed:`读取插件配置失败`,config_not_found:`无法读取插件配置,后端未找到该插件。`,unsupported_backend:`当前后端未暴露插件管理 API。请使用包含插件管理接口的新后端构建,并重启服务。`,global_status:`全局状态`,global_enabled:`已启用`,global_disabled:`已停用`,global_disabled_hint:`当前 plugins.enabled 为 false,插件实例即使启用也不会生效。`,plugins_dir:`插件目录`,discovered:`发现插件`,effective:`生效插件`,search_placeholder:`搜索插件 ID、名称、作者或资源...`,search_label:`搜索插件`,no_plugins:`暂无插件`,no_plugins_desc:`未从插件目录或运行时注册表中发现插件。`,configured:`已配置`,not_configured:`未配置`,registered:`已注册`,not_registered:`未注册`,oauth:`OAuth`,status_effective:`生效中`,status_inactive:`未生效`,edit_config:`编辑配置`,open_repository:`打开仓库`,config_title:`配置 {{name}}`,base_settings:`基础设置`,enabled:`启用`,enabled_hint:`控制 plugins.configs 中该插件实例的 enabled 字段。`,priority:`优先级`,config_fields:`配置字段`,no_config_fields:`该插件没有声明可视化配置字段。`,select_placeholder:`请选择`,array_item_placeholder:`输入数组项`,add_array_item:`添加数组项`,remove_array_item:`删除数组项`,delete_plugin:`删除`,delete_confirm_title:`删除插件`,delete_confirm_message:`确定删除 {{name}}({{id}})吗?这会移除本地插件文件和已保存配置。`,delete_success:`插件已删除`,delete_failed:`插件删除失败`,delete_restart_required:`已加载的插件需要重启后端后才能移除。`,toggle_success:`插件状态已更新`,toggle_failed:`插件状态更新失败`,runtime_pending:`插件变更已保存,但运行时状态仍在更新中。请稍后刷新或检查后端日志。`,save_success:`插件配置已保存`,save_failed:`插件配置保存失败`,validation_failed:`请先修复插件配置表单错误`,invalid_priority:`请输入整数优先级`,invalid_number:`请输入有效数字`,invalid_integer:`请输入有效整数`,invalid_json:`请输入有效 JSON`,expected_array:`请输入 JSON 数组`,expected_object:`请输入 JSON 对象`,invalid_enum:`请选择声明的枚举值`},plugin_store:{title:`插件商店`,description:`浏览插件注册表,为当前后端安装或更新插件。`,description_show_more:`展开描述`,description_show_less:`收起描述`,source_name:`来源:{{source}}`,cli_proxy_api_source:`CLIProxyAPI源`,refresh:`刷新`,retry:`重试`,load_failed:`插件商店加载失败`,unsupported_backend:`当前后端未暴露插件商店 API。请使用包含插件商店接口的新后端构建,并重启服务。`,registry_failed:`插件注册表请求失败`,global_status:`全局状态`,global_enabled:`已启用`,global_disabled:`已停用`,global_disabled_hint:`当前 plugins.enabled 为 false,已安装的插件不会生效。`,plugins_dir:`插件目录`,stat_available:`可用插件`,search_placeholder:`搜索插件 ID、名称、作者或标签...`,search_label:`搜索插件商店`,filter_label:`按安装状态筛选`,filter_all:`全部`,filter_installed:`已安装`,filter_not_installed:`未安装`,filter_updates:`可更新`,badge_installed:`已安装`,badge_update:`可更新`,badge_effective:`生效中`,version_arrow:`v{{from}} → v{{to}}`,install_type:`安装方式:{{type}}`,platforms:`平台:{{platforms}}`,auth_required:`需要认证`,auth_configured:`认证已配置`,auth_required_hint:`该插件源或下载地址需要先配置 plugins.store-auth`,source_errors_title:`部分插件源加载失败`,install:`安装`,update:`更新`,manage:`管理`,install_confirm_title:`安装插件`,install_confirm_message:`将从插件注册表下载 {{target}} 并安装到本地插件目录,是否继续?`,update_confirm_title:`更新插件`,update_confirm_message:`将下载并安装 {{target}},是否继续?`,install_version_label:`版本`,install_version_latest:`最新版本`,install_version_latest_mode:`最新稳定版`,install_version_latest_hint:`安装时由后端解析;当前列表版本为 {{version}}。`,install_version_release_mode:`选择历史版本`,install_version_release_hint:`从 GitHub Releases 读取可安装标签。`,install_version_manual_mode:`手动发布标签`,install_version_manual_hint:`仅在自动读取不可用时使用。`,install_versions_loading:`正在读取 GitHub Releases...`,install_versions_load_failed:`无法自动读取发布版本`,install_version_non_github:`此插件仓库不是 GitHub 仓库`,install_versions_empty:`未读取到可选发布版本。`,install_versions_only_prerelease:`当前只剩预发布版本,请开启预发布版本后选择。`,install_version_release_select:`选择发布版本`,install_version_release_placeholder:`选择发布版本`,install_version_prerelease_badge:`预发布`,install_version_assets_count:`{{count}} 个资产`,install_version_show_prerelease:`显示预发布版本`,install_version_manual_placeholder:`例如 v0.1.4`,install_version_manual_error:`发布标签只能包含字母、数字、点、下划线、加号和连字符,且不能包含空格或斜杠。`,install_version_current_selected:`当前已安装 {{version}},请选择其他版本。`,install_version_releases_link:`查看 GitHub Releases`,install_success:`插件安装成功`,update_success:`插件更新成功`,install_failed:`插件安装失败`,update_failed:`插件更新失败`,status_pending:`插件文件已更新,但本地状态尚未刷新。请稍后刷新或检查后端日志。`,registration_pending:`插件文件已更新,但注册仍在进行中。请稍后刷新或检查后端日志。`,restart_required_notice:`需要重启服务才能加载新的插件版本`,restart_required_banner:`以下插件需重启服务后才能应用新版本:{{plugins}}`,open_repository:`打开仓库`,open_homepage:`打开主页`,no_plugins:`注册表为空`,no_plugins_desc:`插件注册表未返回任何插件。`,no_matches:`没有匹配的插件`,no_matches_desc:`当前搜索或筛选条件下没有插件。`,clear_filters:`清除筛选`,security_banner_title:`第三方插件以后端完整权限运行`,security_banner_text:`插件会在代理服务内部执行代码,可读取你的凭据与流量。请仅安装你信任的插件——尤其要警惕任何并非由官方组织 router-for-me 发布的插件。`,badge_untrusted:`第三方`,gate_title:`安装 {{name}}`,gate_title_update:`更新 {{name}}`,gate_warning:`如果你不阅读以下内容,可能会发生意料之外的危险后果。`,gate_effect_runs_code:`该插件将在您的代理后端内运行第三方未认证代码。系统无法对其行为进行隔离或审计,其具备访问您的敏感凭据、网络请求与响应数据的潜在权限。`,gate_effect_no_review:`本插件并非由官方组织 router-for-me 发布或审核。官方不对该插件的稳定性、安全性、合规性以及后续版本的任意行为变更承担任何明示或暗示的担保责任。`,gate_effect_restart:`安装会修改本地插件目录,并可能需要重启服务才能生效。`,gate_untrusted_alert:`该插件并非来自官方组织 router-for-me。请仅在你完全信任其作者与来源时继续。`,gate_repository_label:`仓库`,gate_source_label:`来源`,gate_step1_action:`我要安装此插件`,gate_step2_action:`我已阅读并理解上述风险`,gate_step3_prompt:`如需确认,请在下方输入框中键入 “{{token}}”`,gate_step3_action:`安装此插件`,gate_step3_hint:`请输入上方显示的完整标识以启用安装。`},plugin_resource:{page_count:`{{count}} 个页面`,load_failed:`加载插件页面失败`,unavailable:`插件页面不可用`,not_found:`未找到插件页面`,not_found_desc:`该插件页面未在当前后端插件列表中声明。`,empty_src:`插件页面地址为空`,empty_src_desc:`该插件菜单未提供可嵌入的页面地址。`},system_info:{title:`管理中心信息`,about_title:`CLI Proxy API Management Center`,models_title:`可用模型列表`,models_desc:`展示 /models 返回的模型,并自动使用服务器保存的 API Key 进行鉴权。`,models_loading:`正在加载可用模型...`,models_empty:`未从 /models 获取到模型数据`,models_error:`获取模型列表失败`,models_count:`可用模型 {{count}} 个`,version_check_button:`检查更新`,version_update_available:`有新版本可用:{{version}}`,version_is_latest:`当前已是最新版本`,version_check_error:`检查更新失败`,version_current_missing:`未获取到服务器版本号,暂无法比对`,version_unknown:`未知`,quick_links_title:`快捷链接`,quick_links_desc:`访问项目仓库和文档,获取帮助和更新。`,link_main_repo:`主程序仓库`,link_main_repo_desc:`CLI Proxy API 核心程序源代码`,link_webui_repo:`WebUI 仓库`,link_webui_repo_desc:`管理中心前端界面源代码`,link_docs:`使用教程`,link_docs_desc:`配置指南和使用说明`,clear_login_title:`本地登录信息`,clear_login_desc:`清理本地保存的登录信息并退出登录。`,clear_login_button:`清理登录信息`,clear_login_confirm:`确认清理本地登录信息并退出登录?`},notification:{trusted_proxies_restart_required:`可信代理配置已保存,重启后端后生效。`,region_label:`通知`,type_success:`成功`,type_info:`提示`,type_warning:`警告`,type_error:`错误`,request_log_updated:`请求日志设置已更新`,login_storage_cleared:`本地登录信息已清理`,data_refreshed:`数据刷新成功`,connection_required:`请先建立连接`,refresh_failed:`刷新失败`,update_failed:`更新失败`,add_failed:`添加失败`,delete_failed:`删除失败`,upload_failed:`上传失败`,download_failed:`下载失败`,login_failed:`登录失败`,commercial_mode_restart_required:`商业模式开关已变更,请重启服务后生效`,copy_failed:`复制失败`,link_copied:`已复制`},language:{switch:`语言`,chinese:`中文`,chinese_tw:`繁體中文(台灣)`,english:`English`,russian:`Русский`},theme:{switch:`主题`,light:`羊毛纸`,white:`纯白`,dark:`暗色`,auto:`跟随系统`},sidebar:{toggle_expand:`展开侧边栏`,toggle_collapse:`收起侧边栏`,expand:`展开`,collapse:`收起`,subtitle:`CLI Proxy API 管理控制台`,auth_files_count:`认证文件:{{count}} 个`},footer:{api_version:`CLI Proxy API 版本`,build_date:`构建时间`,version:`管理中心版本`},providersPage:JSON.parse(`{"behavior":{"title":"提供商专属行为","alphaSearch":"启用 Alpha Search","alphaSearchHint":"允许此 Codex 密钥用于 Alpha Search。上游必须支持此功能。","codexCloaking":"Codex 请求伪装","codexCloakingHint":"为此 API 密钥覆盖官方 Codex 身份请求头设置。选择默认值会移除此凭据的覆盖设置;仅适用于 OAuth 的设置在此不生效。","useDefault":"使用后端默认值","cloakingEnabled":"启用伪装","cloakingDisabled":"禁用伪装","rebuildMidSystemMessage":"重建系统消息","rebuildMidSystemMessageHint":"将 Claude 中 role 为 system 的消息移至顶层 system 字段。","supportPromptCacheKey":"注入提示词缓存键","supportPromptCacheKeyHint":"为兼容的请求派生并注入 prompt_cache_key。仅在上游支持此字段时启用。"},"modelOptions":{"displayName":"显示名称","maxContextLength":"上下文长度","contextHint":"非负安全整数;留空使用默认值。","forceMapping":"将响应模型名称改写为别名","isCompat":"兼容模式","supportConfigurationUpdate":"允许配置更新","inputModalitiesText":"输入模态","outputModalitiesText":"输出模态","modalitiesHint":"使用逗号或空白分隔;保留自定义模态名称。","useMaxCompletionTokens":"使用 max_completion_tokens","thinkingMode":"思考配置覆盖","useDefault":"使用默认","custom":"自定义","thinkingHint":"默认继承后端行为;空的自定义覆盖是显式的 {}。预算和思考档位可以同时设置。仅当最小值和最大值均为 0 或留空时,才不指定数值范围。最小值大于 0 时须设置不小于它的最大值。","thinkingMin":"最小思考预算","thinkingMax":"最大思考预算","thinkingZeroAllowed":"允许零预算","thinkingDynamicAllowed":"允许动态预算","invalidContext":"上下文长度必须是非负安全整数。","invalidThinking":"思考配置必须是有效的 JSON 对象。","invalidBudget":"思考预算必须是非负安全整数。","invalidRange":"最小思考预算不能大于最大值,留空的边界按 0 处理。","removeModel":"移除模型","modelName":"模型名称","modelAlias":"别名(可选)"},"runtimePolicy":{"title":"高级运行策略","description":"继承使用所属分组策略,再回退到后端默认值。覆盖仅作用于当前条目。","cooling":"冷却策略","inherit":"继承","coolingEnabled":"启用冷却","coolingDisabled":"禁用冷却","retry":"请求重试次数","retryHint":"留空继承分组设置。请输入整数:0 表示不重试;负数使用全局重试策略,而非分组策略。","errorsMode":"请求错误规则","override":"覆盖","errorsHint":"继承使用上级策略。覆盖会替换整个列表,可保存为空。切换模式会保留规则草稿。","invalidRetry":"重试次数必须是安全范围内的整数,或留空以继承。"},"errorRules":{"hint":"按顺序采用首个命中规则;状态码相同,任意条件命中即可。","empty":"暂无规则,可保存为空列表。","rule":"规则 {{number}}","status":"状态码","action":"动作","selectAction":"选择动作","moveUp":"上移规则","moveDown":"下移规则","removeRule":"删除规则","matchType":"匹配类型","text":"包含文本","regex":"正则表达式","matchValue":"匹配条件","regexHint":"Go 正则","removeMatch":"删除条件","addMatch":"新增条件","addRule":"新增规则","invalidStatus":"状态码必须是安全范围内的正整数。","invalidAction":"请选择有效动作。","invalidMatch":"匹配条件不可为空。","missingMatch":"至少需要一个匹配条件。","actions":{"stop":"停止","stop-and-cooldown":"停止并冷却","continue":"继续","continue-and-cooldown":"继续并冷却"}},"header":{"title":"AI 提供商","activeResources":"{{active}}/{{total}} 个活跃资源","providerFamilies":"{{count}} 个提供商家族","updatedAt":"更新于 {{time}}"},"actions":{"refresh":"刷新","syncing":"同步中","new":"新建","edit":"编辑","view":"查看","delete":"删除","cancel":"取消","save":"保存","create":"创建","enable":"启用","disable":"停用"},"categories":{"title":"提供商","quickFill":"快速接入","activeCount":"{{active}}/{{total}} 活跃"},"providerNames":{"meta":"Muse (Meta)","gemini":"Gemini","interactions":"Interactions API","codex":"Codex","xai":"xAI","claude":"Claude","vertex":"Vertex","openaiCompatibility":"OpenAI 兼容","apikeyFun":"APIKEY.FUN","fennoAI":"FennoAI","qiniuCloud":"七牛云","kimi":"Kimi"},"table":{"key":"密钥","baseUrl":"服务地址","prefix":"前缀","models":"模型/请求头","status":"状态","actions":"操作","metrics":{"models":"模型","keys":"密钥","headers":"请求头"},"websocketsTag":"WebSockets","cloakTag":"Cloak","cliProfileTag":"CLI 指纹","empty":"尚未添加配置,点击右上角新建。","filterPlaceholder":"搜索密钥、地址、前缀…","description":"在 {{route}} 下管理资源"},"sponsor":{"protocolSummary":"Anthropic / OpenAI / Gemini / Codex API (Responses)","detailHint":"{{provider}} 会按协议分别写入对应的 API Key 配置,这里只做聚合管理。","registerLink":"点此注册","registerNow":"立即注册","kimiPromo":"新用户首次成功充值,赠送充值金额 10% 的 API 额度,最高赠送 ¥1000,优惠截至 9 月 30 日","dashboardLink":"控制面板","emptyRegisterHint":"尚未添加配置","apiKeyHint":"此 Key 只会写入当前选择的分组/协议配置。","usageCheck":"查询额度","usageChecking":"查询中","usageRemaining":"剩余额度: {{amount}} {{unit}}","usageBreakdown":"已用 {{used}} / 总额 {{limit}}","usageStatus":"状态: {{status}}","usageInvalid":"Key 无效","usageEmpty":"端点未返回额度数据","usageApiKeyRequired":"API 密钥必填","aggregationConflict":"此聚合提供商包含多条后端配置或多个 OpenAI 密钥。为避免数据丢失,请在源码配置中编辑。","partialMutationWarning":"操作失败,但一个或多个协议可能已更新。已重新读取最新配置,请检查后再重试。","groupedKeysTitle":"分组 Key","groupedKeysHint":"平台创建 Key 时可能需要选择分组,这里每个分组 Key 只管理一个协议,模型也只从该协议拉取。","groupedKey":"分组 Key #{{index}}","addGroupedKey":"添加分组 Key","removeGroupedKey":"删除分组 Key","protocol":"分组/协议","protocolHint":"请选择此 Key 对应的分组/协议。","protocolEndpoint":"当前协议地址","urlMode":"{{provider}} URL","urlHint":"不同 URL 的使用规范一致,保存时只会写入当前分组协议对应地址。","urlOptions":{"standard":"普通 URL","direct":"专线直连 URL","domestic":"国内线路","overseas":"海外线路","mainlandChina":"中国大陆(推荐)","global":"全球"},"urlOptionDescriptions":{"domestic":"面向中国大陆用户和部署在中国大陆网络环境中的业务,通常可获得更低延迟。","overseas":"面向海外部署、跨境访问或需要访问境外模型的业务。","mainlandChinaRecommended":"推荐中国大陆用户和部署在中国大陆网络环境中的业务使用。","global":"适用于全球其他地区的用户和部署环境。"},"modelsTitle":"协议模型配置","modelsHint":"可分别限制或别名映射 Codex API、Anthropic、Gemini 与 OpenAI 兼容入口的模型。","protocolModels":{"codex":"Codex API 模型","anthropic":"Anthropic 模型","gemini":"Gemini 模型","openai":"OpenAI 兼容模型"},"protocolModelHints":{"codex":"写入 Codex API 配置的 models,可从 /v1/models 拉取后设置别名。","anthropic":"写入 Anthropic 配置的 models,可从 /v1/models 拉取后设置别名。","gemini":"写入 Gemini 配置的 models,可从 /v1beta/models 拉取后设置别名。","openai":"写入 OpenAI 兼容配置的 models,可从 /models 拉取后设置别名。"},"validation":{"keyRequired":"请为每个分组 Key 填写 API Key。","protocolDuplicate":"每个协议只能添加一个分组 Key。"},"openaiEntries":"OpenAI 兼容密钥数","codexEntries":"Codex API 密钥数","anthropicEntries":"Anthropic 密钥数","geminiEntries":"Gemini 密钥数","protocols":{"anthropic":"Anthropic","openai":"OpenAI 兼容","gemini":"Gemini","codexResponses":"Codex API (Responses)"}},"status":{"active":"活跃","disabled":"已停用","notSet":"未设置","none":"无","notConfigured":"未配置","defaultSuffix":"(默认)"},"detail":{"title":"详情","metadataTitle":"元数据","fields":{"identifier":"标识","baseUrl":"服务地址","proxyUrl":"代理 URL","prefix":"前缀","models":"模型数","headers":"请求头数","authIndex":"Auth Index","excludedModels":"排除模型数","apiKeyEntries":"密钥条目数"}},"form":{"createEyebrow":"新建","editEyebrow":"编辑","name":"名称","apiKey":"API 密钥","apiKeyCreatePlaceholder":"输入 API 密钥","apiKeyEditPlaceholder":"留空表示不修改","baseUrl":"服务地址","baseUrlRequiredHint":"此提供商要求填写服务地址","proxyUrl":"代理 URL","prefix":"前缀","priority":"优先级","weight":"调度权重","weightHint":"默认 1 · ≤ 0 时不参与 · 最大 1,000,000","disabled":"停用此条目","disabledHint":"停用后不会被网关使用","websockets":"启用 WebSockets","testModel":"测试模型","testModelClaudeHint":"仅用于连通性测试,不会被保存","testModelAutoWith":"自动 · {{name}}","testModelAutoEmpty":"自动(尚未添加模型)","testModelCustom":"{{name}}(自定义)","modelsSection":"自定义模型","addModel":"添加模型","headersSection":"请求头","addHeader":"添加请求头","excludedSection":"排除模型","excludedDisabledNote":"“*” 表示整个 provider 已停用,请改用上方的「已停用」开关。","cloakSection":"Cloak 配置","cloakMode":"模式","cloakStrict":"严格模式","cloakSensitiveWords":"敏感词(每行一个)","apiKeyEntriesSection":"API 密钥条目","apiKeyEntry":"密钥 #{{index}}","addApiKeyEntry":"添加密钥条目","showApiKey":"显示密钥","hideApiKey":"隐藏密钥","disableCooling":"禁用冷却调度","disableCoolingHint":"仅对当前凭据或提供商禁用失败后的冷却窗口","modelImage":"允许图片端点","modelImageHint":"允许该模型用于 /v1/images/generations 和 /v1/images/edits","showAllEntries":"显示全部({{count}})","showFewerEntries":"收起","proxyBadge":"代理","modelBadgeImage":"图片","modelBadgeThinking":"Thinking","thinkingConfig":"思考能力","thinkingExistingHint":"修改思考档位会保留预算及其他未修改的设置。","thinkingLevels":{"none":"关闭思考","minimal":"最少","low":"低","medium":"中","high":"高","xhigh":"超高","max":"最大","auto":"自动"},"cloakCacheUserId":"缓存 user_id","cloakCacheUserIdHint":"按 API key 复用 Claude cloak 生成的 user_id","fingerprintProfile":"请求指纹","fingerprintProfileDefault":"默认(由调用方控制)","fingerprintProfileClaudeCodeCli":"Claude Code CLI","fingerprintProfileHint":"默认保留调用方传入的提示词和请求头;也可选择使用 Claude Code CLI 请求指纹。","validation":{"nameRequired":"名称必填","apiKeyRequired":"至少填写一个 API 密钥","baseUrlRequired":"服务地址必填","weightInteger":"调度权重必须是整数","weightMax":"调度权重不能超过 {{max}}"}},"delete":{"title":"删除资源","confirm":"确定要删除 {{name}} 吗?此操作不可撤销。"},"toast":{"created":"创建成功","updated":"更新成功","deleted":"删除成功","enabled":"已启用","disabled":"已停用","toggleFailed":"更新状态失败"},"unsavedChanges":{"title":"确定丢弃未保存的修改吗?","message":"当前表单还有未保存的修改,关闭后会被丢弃。","discard":"丢弃修改","keepEditing":"继续编辑"},"connectivity":{"test":"测试","testAll":"全部测试","success":"连通","baseUrlRequired":"服务地址必填","endpointInvalid":"服务地址不合法","apiKeyRequired":"API 密钥必填","modelRequired":"测试模型必填","timeout":"请求超过 {{seconds}} 秒","requestFailed":"请求失败"},"discovery":{"openButton":"从端点拉取","searchPlaceholder":"搜索模型","reload":"重新加载","loading":"正在加载模型…","empty":"端点未返回任何模型","notLoaded":"点击重新加载以获取模型","selectAll":"全选","clearAll":"清空选择","selectedCount":"{{selected}} / {{total}}","alreadyAdded":"已添加","close":"关闭","apply":"应用 ({{count}})"},"toolbar":{"sortBy":"排序","sort":{"name":"名称","priority":"优先级","recentSuccess":"近期成功数","directionAsc":"升序","directionDesc":"降序"},"filter":{"allModels":"全部模型","selectedModels":"{{selected}}/{{total}} 个模型","selectAll":"全选","clear":"清空","empty":"暂无已配置模型"}},"modelCatalog":{"notLoaded":"未加载"}}`),claude_reset:{retry_confirm:`使用原请求 ID 重试“{{name}}”结果未知的重置?可能已消耗一次重置。请在 10 分钟内重试;请勿重新加载页面或在其他标签页发起新请求。`,remaining:`剩余重置次数`,title:`储备重置次数`,scope:`使用有限的重置权益清除符合条件的 Claude 用量窗口。仅在确定要消耗一次重置时确认。恢复仅限当前标签页和会话;结果未知时,请勿刷新页面或使用其他标签页。`,loading:`加载中…`,read_error:`无法读取重置权益,未提交重置。`,blocked:`未提交重置:无法验证资格、账户身份或会话。请刷新后检查。`,unknown:`结果未知,可能已消耗一次重置。请在 10 分钟内使用相同请求 ID 重试,不要在其他位置发起新的重置。`,expired:`重试窗口已过期,当前会话已阻止进一步重置。请先检查 Claude 账户状态。`,retry:`重试同一请求`,empty:`没有储备重置权益。`,count:`剩余 {{left}} / {{total}} 次重置`,ends:`到期:{{date}}`,use:`重置额度`,confirm:`确认重置`,confirm_text:`确定消耗一次重置,清除“{{name}}”符合条件的用量限制?重置次数有限。`,reset:`已重置用量限制。`,already_used:`该权益已使用。`,not_limited:`未重置:账户当前未达到限制。`,cooldown:`未重置:仍在冷却期。`,ineligible:`此账户不符合资格。`,unavailable:`重置暂不可用。`,rate_limited:`请求过于频繁。`,auth_error:`授权被拒绝。`}},al={common:{login:`登入`,logout:`登出`,back:`返回`,cancel:`取消`,confirm:`確認`,leave:`離開`,stay:`繼續編輯`,save:`儲存`,delete:`刪除`,edit:`編輯`,add:`新增`,update:`更新`,refresh:`重新整理`,close:`關閉`,success:`成功`,error:`錯誤`,info:`資訊`,warning:`警告`,loading:`載入中...`,connecting:`連線中...`,connected:`已連線`,disconnected:`未連線`,connecting_status:`連線中`,connected_status:`已連線`,disconnected_status:`未連線`,yes:`是`,no:`否`,not_set:`未設定`,optional:`選填`,required:`必填`,api_key:`金鑰`,base_url:`位址`,prefix:`前綴`,proxy_url:`代理`,priority:`優先順序`,alias:`別名`,failure:`失敗`,unknown_error:`未知錯誤`,quota_update_required:`請更新 CPA 版本或檢查更新`,quota_check_credential:`請檢查憑證狀態`,copy:`複製`,expand:`展開`,collapse:`收起`,status:`狀態`,action:`操作`,custom_headers_label:`自訂請求標頭`,custom_headers_hint:`選填,設定需要附帶到請求中的 HTTP 標頭,名稱和值均不能為空。`,custom_headers_add:`新增請求標頭`,custom_headers_key_placeholder:`Header 名稱,例如 X-Custom-Header`,custom_headers_value_placeholder:`Header 值`,model_name_placeholder:`模型名稱,例如 claude-3-5-sonnet-20241022`,model_alias_placeholder:`模型別名(選填)`,invalid_provider_index:`無效的供應商索引。`,unsaved_changes_title:`未儲存的變更`,unsaved_changes_message:`你有未儲存的變更,離開後將遺失這些變更。確定要離開嗎?`},title:{login:`CLI Proxy API Management Center`,abbr:`CPAMC`},splash:{title:`CLI Proxy API`,subtitle:`管理中心`},login:{subtitle:`連線至 CLI Proxy API v8 或更新版本`,connection_current:`目前位址`,connection_auto_hint:`系統將自動使用目前存取位址進行連線`,custom_connection_label:`自訂連線位址:`,custom_connection_placeholder:`例如: https://example.com:8317`,custom_connection_hint:`預設使用目前存取位址,若需要可手動輸入其他位址。`,remember_password_label:`記住密碼`,management_key_label:`管理金鑰:`,management_key_placeholder:`請輸入管理金鑰`,submit_button:`登入`,submitting:`連線中...`,error_backend_detail:`後端返回`,error_required:`請填寫完整的連線資訊`,error_invalid:`連線失敗,請檢查服務位址、管理介面和管理金鑰`,error_network:`網路連線失敗,請檢查網路或伺服器位址`,error_timeout:`連線逾時,伺服器無回應`,error_unauthorized:`驗證失敗,管理金鑰缺失或無效`,error_forbidden:`存取被拒絕,遠端管理未啟用、管理金鑰未設定或 IP 被暫時封鎖`,error_not_found:`找不到 v8 Management API,請檢查服務位址並將 CLIProxyAPI 升級至 v8 或更新版本;不再支援 v0 介面。`,error_legacy_backend:`目前後端可使用 v0 管理介面,但不支援 v8。請將 CLIProxyAPI 升級至 v8 或更新版本後再使用此管理頁面。`,error_server:`後端處理管理介面時發生錯誤,請查看服務日誌`,error_cors:`跨域請求被阻擋,請檢查伺服器設定`,error_ssl:`SSL/TLS 憑證驗證失敗`},header:{refresh_all:`全部重新整理`,logout:`登出`},connection:{status:`連線狀態:`},nav:{dashboard:`儀表板`,quick_start:`快速開始`,ai_providers:`AI 供應商`,auth_files:`驗證檔案`,oauth:`OAuth 登入`,quota_management:`配額管理`,plugins:`插件管理`,plugin_store:`插件商店`,config_management:`設定面板`,logs:`記錄檢視`,system_info:`中心資訊`},nav_groups:{operate:`運行`,gateway:`閘道`,observe:`觀測`,plugin_pages:`插件`,control:`控制`},nav_meta:{dashboard:`運行總覽`,quick_start:`APIKEY.FUN 快速設定`,ai_providers:`上游模型路由`,auth_files:`Auth 檔案與憑證`,oauth:`OAuth 授權登入`,quota_management:`API Key 與限額`,plugins:`插件啟停與設定`,plugin_store:`探索並安裝插件`,logs:`請求追蹤與排查`,config_management:`閘道基礎設定`,system_info:`運行與診斷資訊`},dashboard:{hero_verdict_good:`運行平穩`,hero_verdict_warning:`略有波動`,hero_verdict_critical:`需要留意`,hero_verdict_idle:`靜候流量`,hero_verdict_offline:`等待連接`,hero_verdict_connecting:`正在連接`,hero_period:`。`,hero_requests_label:`已處理請求`,hero_live:`即時`,hero_window_meta:`滾動視窗 {{window}} · 每桶 10 分鐘`,hero_spark_label:`最近 {{window}} 的請求量`,cta_manage_providers:`管理供應商`,cta_inspect_logs:`檢視日誌`,stats_aria:`核心指標`,success_rate:`成功率`,stat_success_hint:`視窗內共 {{total}} 次請求`,stat_credentials:`憑證`,stat_credentials_hint:`{{active}} 個可用 · {{disabled}} 個未參與排程`,stat_credentials_empty:`找不到憑證檔案`,stat_provider_keys:`供應商金鑰`,stat_provider_keys_hint:`所有品牌已設定的 API Key 總數`,stat_models:`模型`,stat_models_hint:`透過代理端點提供的模型`,traffic_eyebrow:`即時流量`,traffic_title:`以 10 分鐘為粒度的吞吐`,traffic_description:`最近 {{window}} 的成功與失敗次數,每 10 分鐘一桶。將游標移到任一長條可看精確組成。`,traffic_table:`資料表`,traffic_table_window:`時間區間`,traffic_chart_summary:`最近 {{minutes}} 分鐘共 {{total}} 次請求:成功 {{success}} 次,失敗 {{failed}} 次。`,traffic_unavailable:`尚無流量資料`,traffic_unavailable_hint:`代理處理第一個請求後便會出現計數。`,fleet_eyebrow:`供應商`,fleet_title:`所有供應商並列比較`,fleet_description:`同一視窗內各供應商的請求量與成功率。`,fleet_empty:`尚未記錄到供應商流量。`,fleet_credentials:`憑證 {{value}} 個`,fleet_spark_label:`{{provider}} 請求量`,fleet_requests:`次請求`,provider_unknown:`未歸類`,health_eyebrow:`健康度`,health_title:`憑證狀態`,health_active:`可用`,health_unavailable:`不可用`,health_disabled:`已停用`,health_by_type:`按供應商`,health_empty:`找不到憑證檔案。`,health_link:`開啟認證檔案`,runtime_eyebrow:`執行階段`,runtime_title:`執行設定總覽`,runtime_routing:`路由策略`,runtime_retry:`請求重試`,runtime_management_keys:`管理金鑰`,runtime_version:`伺服器版本`,runtime_build:`建置日期`,runtime_proxy:`上游代理`,runtime_debug:`除錯模式`,runtime_file_logging:`檔案日誌`,runtime_request_log:`請求日誌`,runtime_ws_auth:`WebSocket 驗證`,runtime_model_prefix:`模型前綴`,runtime_link:`編輯設定`,cta_eyebrow:`下一步`,cta_title:`接下來前往`,cta_providers_desc:`新增 API Key、設定優先順序並測試品牌。`,cta_auth_files_desc:`上傳、更新與停用 OAuth 憑證。`,cta_config_desc:`調整路由、重試、日誌與存取控制。`,cta_quota_desc:`查看各憑證的剩餘額度。`,cta_logs_desc:`即時追蹤請求並下載錯誤報告。`,cta_system_desc:`版本詳情與管理中心資訊。`,window_m:`{{minutes}} 分鐘`,window_h:`{{hours}} 小時`,window_hm:`{{hours}} 小時 {{minutes}} 分`},basic_settings:{debug_enable:`啟用除錯模式`,proxy_url_label:`代理 URL:`,retry_count_label:`重試次數:`,logging_to_file_enable:`啟用記錄到檔案`,request_log_title:`請求記錄`,request_log_enable:`啟用請求記錄`,request_log_warning:`僅在需要排查問題時開啟,日常請保持關閉。`,ws_auth_enable:`啟用 /ws/* 驗證`,routing_strategy_round_robin:`round-robin(輪詢)`,routing_strategy_weighted_round_robin:`weighted-round-robin(加權輪詢)`,routing_strategy_fill_first:`fill-first(優先填充)`},auth_files:JSON.parse(`{"title":"驗證檔案管理","meta_total":"{{count}} 個憑證","meta_active":"{{count}} 個啟用","meta_problem":"{{count}} 個異常","empty_title":"還沒有憑證","empty_desc":"上傳認證檔案,或透過 OAuth 連接一個提供商開始使用。","empty_oauth_link":"前往 OAuth 登入","no_results_clear":"清除篩選","title_section":"驗證檔案","upload_button":"上傳檔案","delete_all_button":"刪除全部","search_empty_title":"沒有符合的設定檔","search_empty_desc":"請調整篩選條件或清空搜尋關鍵字再試一次。","file_size":"大小","file_modified":"修改時間","card_select":"選取驗證檔案 {{name}}","card_toggle":"啟用驗證檔案 {{name}}","card_requests":"請求記錄","cooldown_unknown":"冷卻狀態未知","cooldown_models":"{{count}} 個模型冷卻","cooldown_credential":"憑證級冷卻","cooldown_credential_and_models":"憑證及 {{count}} 個模型冷卻","cooldown_scope_credential":"整個憑證","cooldown_earliest":"最早結束約 {{time}}","cooldown_elapsed":"冷卻計時已到期","cooldown_timer_elapsed":"計時已到期","cooldown_refresh_hint":"重新整理清單確認","cooldown_seconds":"{{count}} 秒","cooldown_minutes":"{{count}} 分鐘","cooldown_hours":"{{count}} 小時","cooldown_http_status":"上游 HTTP {{status}}","cooldown_backoff":"退避等級 {{level}}","cooldown_deadline":"計時截止","cooldown_observed":"快照時間","cooldown_note":"本機排程快照,剩餘時間為估算;到期不代表憑證可用、額度恢復或自動重試。模型名稱為內部狀態鍵,退避等級不是失敗次數。","cooldown_reset_button":"清除冷卻","cooldown_reset_hint":"清除此憑證的本機路由冷卻狀態","cooldown_reset_title":"清除憑證冷卻?","cooldown_reset_confirm":"確定清除「{{name}}」的本機路由冷卻狀態嗎?清除後此憑證可能立即再次參與請求,但不會恢復上游額度。","cooldown_reset_success":"已清除 {{name}} 的冷卻狀態。","cooldown_reset_failed":"無法清除 {{name}} 的冷卻狀態:{{message}}","cooldown_reason_quota":"額度限制","cooldown_reason_credential_quota":"憑證額度限制","cooldown_reason_cloudflare_challenge":"Cloudflare 驗證","cooldown_reason_invalid_grant":"授權無效","cooldown_reason_unauthorized":"未獲授權","cooldown_reason_payment_required":"存取受限(402/403,非帳單結論)","cooldown_reason_not_found":"找不到資源","cooldown_reason_model_not_supported":"不支援此模型","cooldown_reason_transient_error":"上游暫時出錯","cooldown_reason_unknown":"其他或未知原因","health_status_label":"健康狀態","health_status_healthy":"健康","health_status_warning":"警告","health_status_disabled":"已停用","download_button":"下載","refresh_all_button":"重新整理全部憑證","refresh_all_confirm":"重新整理伺服器上所有符合條件的憑證(不限於目前篩選結果)。後端會略過已停用或不符合重新整理條件的憑證;此操作不是重新整理清單或重設配額,可能需要幾分鐘。是否繼續?","refresh_all_results":"憑證重新整理結果","refresh_all_summary":"重新整理成功 {{success}} 項,失敗 {{failed}} 項。","refresh_all_empty":"沒有符合重新整理條件的憑證。","refresh_all_failed":"無法取得完整重新整理結果:{{message}}。部分憑證可能已重新整理,請檢查清單後再重試。","refresh_result_success":"重新整理成功","refresh_result_failed":"重新整理失敗","manual_refresh_button":"重新整理 OAuth 憑證","manual_refresh_requested":"已提交「{{name}}」的憑證重新整理請求","manual_refresh_failed":"提交「{{name}}」的憑證重新整理請求失敗:{{message}}","delete_button":"刪除","delete_confirm":"確定要刪除檔案","delete_all_confirm":"確定要刪除所有驗證檔案嗎?此操作無法還原!","delete_filtered_confirm":"確定要刪除篩選出的 {{type}} 驗證檔案嗎?此操作無法還原!","delete_problem_button":"刪除問題憑證","delete_problem_button_with_type":"刪除 {{type}} 問題憑證","delete_problem_confirm":"確定要刪除所有有問題的驗證檔案嗎?此操作無法還原!","delete_problem_filtered_confirm":"確定要刪除篩選出的有問題的 {{type}} 驗證檔案嗎?此操作無法還原!","delete_filtered_result_button":"刪除篩選結果","delete_filtered_result_confirm":"確定要刪除目前篩選結果中的驗證檔案嗎?此操作無法還原!","upload_error_json":"只能上傳 JSON 檔案","upload_error_size":"檔案大小不能超過 {{maxSize}}","upload_success":"檔案上傳成功","download_success":"檔案下載成功","delete_success":"檔案刪除成功","delete_all_success":"成功刪除","delete_filtered_success":"成功刪除 {{count}} 個 {{type}} 驗證檔案","delete_filtered_partial":"{{type}} 驗證檔案刪除完成,成功 {{success}} 個,失敗 {{failed}} 個","delete_filtered_none":"目前篩選類型({{type}})下沒有可刪除的驗證檔案","delete_problem_success":"成功刪除 {{count}} 個有問題的驗證檔案","delete_problem_filtered_success":"成功刪除 {{count}} 個有問題的 {{type}} 驗證檔案","delete_problem_partial":"有問題驗證檔案刪除完成,成功 {{success}} 個,失敗 {{failed}} 個","delete_problem_filtered_partial":"有問題的 {{type}} 驗證檔案刪除完成,成功 {{success}} 個,失敗 {{failed}} 個","delete_problem_none":"目前沒有可刪除的有問題驗證檔案","delete_problem_filtered_none":"目前篩選類型({{type}})下沒有可刪除的有問題驗證檔案","delete_filtered_result_success":"成功刪除 {{count}} 個篩選結果中的驗證檔案","delete_filtered_result_partial":"篩選結果刪除完成,成功 {{success}} 個,失敗 {{failed}} 個","delete_filtered_result_none":"目前篩選結果中沒有可刪除的驗證檔案","pagination_prev":"上一頁","pagination_next":"下一頁","pagination_info":"第 {{current}} / {{total}} 頁 · 共 {{count}} 個檔案","search_label":"依名稱、帳號、類型、供應方或錯誤訊息搜尋憑證","search_placeholder":"搜尋名稱、帳號、類型、供應方或錯誤訊息(403、429、invalid),支援 * 萬用字元","problem_filter_label":"狀態篩選","problem_filter_all":"全部","problem_filter_enabled":"啟用","problem_filter_problem":"問題","problem_filter_disabled":"停用","display_options_label":"顯示選項","compact_mode_label":"簡略模式","sort_label":"排序","sort_default":"預設","sort_az":"A-Z 名稱","sort_priority":"優先順序","priority_display":"優先順序","weight_display":"WRR 權重","page_size_label":"單頁數量","filter_all":"全部","filter_qwen":"Qwen","filter_gemini":"Gemini","filter_kimi":"Kimi","filter_aistudio":"AIStudio","filter_claude":"Claude","filter_codex":"Codex","filter_meta":"Muse (Meta)","filter_devin":"Devin","filter_antigravity":"Antigravity","filter_xai":"xAI","filter_iflow":"iFlow","filter_vertex":"Vertex","filter_empty":"空檔案","filter_unknown":"其他","type_virtual":"虛擬驗證檔案","models_button":"模型","models_title":"支援的模型","models_loading":"正在載入模型清單...","models_empty":"該憑證暫無可用模型","models_empty_desc":"該驗證憑證可能尚未被伺服器載入或沒有綁定任何模型","models_unsupported":"目前版本不支援此功能","models_unsupported_desc":"請更新 CLI Proxy API 到最新版本後重試","models_excluded_badge":"已停用","models_excluded_hint":"此 OAuth 模型已被停用","status_toggle_label":"啟用","status_enabled_success":"已啟用「{{name}}」","status_disabled_success":"已停用「{{name}}」","batch_status_success":"已成功更新 {{count}} 個檔案","batch_status_partial":"成功 {{success}} 個,失敗 {{failed}} 個","batch_delete_title":"刪除已選檔案","batch_delete_confirm":"確定要刪除 {{count}} 個檔案嗎?","batch_selected":"已選 {{count}} 項","batch_toolbar_label":"批次操作","batch_select_all":"全選","batch_select_page":"全選目前頁","batch_select_filtered":"全選篩選結果","batch_invert_page":"反選目前頁","batch_deselect":"取消選擇","batch_download":"下載已選","batch_download_success":"已開始下載 {{count}} 個檔案","batch_download_partial":"下載完成:成功 {{success}} 個,失敗 {{failed}} 個","batch_enable":"啟用","batch_disable":"停用","prefix_proxy_button":"驗證檔案詳情 / 編輯","prefix_proxy_loading":"正在載入驗證檔案...","prefix_proxy_info_label":"驗證檔案資訊(info)","prefix_proxy_source_label":"驗證檔案 JSON(預覽)","prefix_proxy_invalid_content_label":"下載內容(已截斷)","prefix_label":"前綴(prefix)","proxy_url_label":"代理 URL(proxy_url)","proxy_url_placeholder":"socks5://username:password@proxy_ip:port/","priority_label":"優先順序(priority)","priority_placeholder":"例如: 10 或 -1","priority_hint":"僅支援整數;無效值會被忽略。數值越大優先順序越高。","weight_label":"調度權重(weight)","weight_tooltip":"預設值為 1;小於或等於 0 時不參與加權調度;最大值為 1,000,000。填入後開啟加權輪詢設定即可生效。","weight_hint":"預設值為 1;小於或等於 0 時不參與加權調度;最大值為 1,000,000。填入後開啟<settingsLink>加權輪詢設定</settingsLink>即可生效。","weight_invalid_integer":"權重必須是整數。","weight_invalid_max":"權重不能超過 1,000,000。","disable_cooling_label":"停用指數冷卻(disable_cooling)","disable_cooling_hint":"開啟後,僅目前憑證會略過失敗後的冷卻與指數退避;其他憑證不受影響。","websockets_label":"WebSockets(websockets)","websockets_hint":"為該憑證開啟 Responses API 的 websocket 傳輸。","using_api_label":"使用官方 API(using_api)","using_api_hint":"開啟後使用 xAI 官方 API;關閉時使用 Grok CLI chat-proxy。","policy_alias_name":"模型別名","policy_alias_display_name":"顯示名稱","policy_alias_fork":"在模型清單中保留原始模型","policy_alias_force_mapping":"將回應模型名稱改寫為別名","policy_unsupported":"現有資料無法透過此表單編輯,將保持原樣。選擇繼承可清除資料,也可取代後重新填寫清單。","policy_replace":"取代現有資料","policy_retry_label":"單憑證請求重試","policy_inherit":"繼承","policy_custom":"自訂","policy_retry_count":"重試次數","policy_retry_hint":"繼承使用全域 request-retry 設定。自訂為 0 表示此憑證明確不重試請求。","policy_aliases_label":"單憑證模型別名","policy_aliases_hint":"優先比對單憑證別名,未符合時回退至通道別名。選擇繼承或清空清單只會清除單憑證別名。","policy_rules_label":"單憑證錯誤規則","policy_rules_hint":"自訂規則按清單順序優先生效。選擇繼承或清空清單將使用繼承的規則,不會停用它們。正規表示式使用 Go 語法。","policy_retry_invalid":"請輸入非負安全整數,或選擇繼承。","policy_aliases_invalid":"請為每個新增或修改的列填寫非空模型名稱和別名。","policy_rules_invalid":"請為每條修改的規則填寫正整數狀態碼、動作和至少一個非空比對條件。","note_label":"備註(note)","note_placeholder":"輸入備註資訊,例如:張三的帳號","note_hint":"選填,用於標記憑證用途或歸屬;留空則不寫入。","excluded_models_label":"排除模型(excluded_models)","headers_label":"自訂請求標頭(headers)","headers_placeholder":"{\\n \\"Header-Name\\": \\"value\\"\\n}","headers_hint":"以 JSON 物件格式輸入自訂 HTTP 請求標頭,例如:{\\"X-My-Header\\": \\"value\\"}","headers_invalid_json":"自訂請求標頭必須是有效的 JSON。","headers_invalid_object":"自訂請求標頭必須是 JSON 物件。","headers_invalid_value":"每個自訂請求標頭的值都必須是字串。","prefix_proxy_invalid_json":"該驗證檔案不是 JSON 物件,無法編輯欄位。","prefix_proxy_html_challenge":"下載到的是 HTML 驗證頁面,不是驗證 JSON 物件。請重新驗證或替換該驗證檔案後再編輯欄位。","prefix_proxy_saved_success":"已更新驗證檔案「{{name}}」","quota_refresh_single":"重新整理配額","quota_refresh_hint":"僅重新整理該驗證檔案的配額","quota_refresh_success":"已重新整理「{{name}}」的配額","quota_refresh_failed":"重新整理「{{name}}」的配額失敗:{{message}}"}`),antigravity_subscription:{plan_unknown:`未知`,plan_free:`免費版`,plan_pro:`Pro`,plan_ultra:`Ultra`,plan_ultra_lite:`Ultra Lite`},antigravity_quota:{title:`Antigravity 配額`,empty_title:`暫無 Antigravity 驗證`,empty_desc:`上傳 Antigravity 驗證檔案後即可查看配額。`,idle:`點擊此處重新整理配額`,loading:`正在載入配額...`,load_failed:`配額取得失敗:{{message}}`,missing_auth_index:`驗證檔案缺少 auth_index`,missing_project_id:`Antigravity 憑證缺少 project_id。請重新登入或重新整理憑證以探索專案。`,empty_models:`暫無配額資料`,plan_label:`方案`,group_gemini_models:`Gemini 模型`,group_claude_gpt_models:`Claude 與 GPT 模型`,group_models_description:`此分組包含:{{models}}`,weekly_limit:`週限額`,daily_limit:`日限額`,five_hour_limit:`5 小時限額`,monthly_limit:`月限額`,quota_available:`配額可用`,remaining_percent:`剩餘 {{percent}}%`,refreshes_in:`{{duration}} 後重新整理`,refresh_available:`可重新整理`,duration_day_hour:`{{days}} 天 {{hours}} 小時`,duration_hour_minute:`{{hours}} 小時 {{minutes}} 分鐘`,duration_minute:`{{minutes}} 分鐘`,duration_less_than_minute:`小於 1 分鐘`,refresh_button:`重新整理配額`,fetch_all:`取得全部`},claude_quota:{title:`Claude 配額`,empty_title:`暫無 Claude OAuth 驗證`,empty_desc:`使用 Claude OAuth 登入後即可查看配額。`,idle:`點擊此處重新整理配額`,loading:`正在載入配額...`,load_failed:`配額取得失敗:{{message}}`,missing_auth_index:`驗證檔案缺少 auth_index`,empty_windows:`暫無配額資料`,refresh_button:`重新整理配額`,fetch_all:`取得全部`,five_hour:`5 小時限額`,seven_day:`7 天限額`,seven_day_oauth_apps:`7 天 OAuth 應用`,seven_day_opus:`7 天 Opus`,seven_day_sonnet:`7 天 Sonnet`,seven_day_cowork:`7 天 Cowork`,iguana_necktie:`Iguana Necktie`,seven_day_fable:`7 天 Fable 5`,extra_usage_label:`額外用量`,plan_label:`方案`,plan_unknown:`未知`,plan_free:`免費版`,plan_pro:`專業版`,plan_max:`Max`,plan_max5:`Max 5x`,plan_max20:`Max 20x`,plan_team:`團隊版`},codex_quota:{title:`Codex 配額`,empty_title:`暫無 Codex 驗證`,empty_desc:`上傳 Codex 驗證檔案後即可查看配額。`,idle:`點擊此處重新整理配額`,loading:`正在載入配額...`,load_failed:`配額取得失敗:{{message}}`,missing_auth_index:`驗證檔案缺少 auth_index`,missing_account_id:`Codex 憑證缺少 ChatGPT 帳號 ID`,empty_windows:`暫無配額資料`,no_access:`該憑證已無 Codex 存取權限(free)。`,refresh_button:`重新整理配額`,fetch_all:`取得全部`,primary_window:`5 小時限額`,secondary_window:`週限額`,team_secondary_window:`月度限額`,code_review_primary_window:`程式碼審查 5 小時限額`,code_review_secondary_window:`程式碼審查週限額`,code_review_team_secondary_window:`程式碼審查月度限額`,additional_primary_window:`{{name}} 5 小時限額`,additional_secondary_window:`{{name}} 週限額`,additional_team_secondary_window:`{{name}} 月度限額`,plan_label:`方案`,expires_label:`續期時間`,credit_balance_label:`Credit 餘額`,credit_unlimited:`無限額`,reset_credits_label:`主動重置次數`,reset_credits_expiry_label:`主動重置過期時間({{timezone}})`,reset_credit_number:`第 {{index}} 次`,reset_credits_expiry_failed:`主動重置過期時間取得失敗:{{message}}`,reset_credits_invalid_payload:`主動重置過期時間回應格式無效`,reset_button:`重置配額`,reset_confirm_title:`重置 Codex 配額`,reset_confirm_message:`將消耗 1 次主動重置次數來重置「{{name}}」的 Codex 配額。是否繼續?`,reset_confirm_button:`確認重置`,reset_success:`已重置「{{name}}」的 Codex 配額`,reset_failed:`重置「{{name}}」的 Codex 配額失敗:{{message}}`,plan_plus:`Plus`,plan_team:`Team`,plan_free:`Free`,plan_pro:`Pro 200`,plan_prolite:`Pro 100`,plan_business_premium:`Business Premium`},devin_quota:{daily:`每日剩餘額度`,weekly:`每週剩餘額度`,plan_label:`方案`,plan_end:`訂閱到期`,unavailable:`暫無資料`,reset_unknown:`暫無重設時間`,observed_at:`額度觀測時間:{{time}}`,observed_unknown:`暫無額度觀測時間`,missing_identity:`缺少憑證名稱或驗證索引,請重新載入憑證清單。`,stale_request:`連線或憑證已變更,請重試。`,empty_data:`Devin 未傳回可用的額度資料。`,loading:`正在查詢 Devin 額度…`,idle:`點擊查詢 Devin 額度`,load_failed:`額度查詢失敗:{{message}}`,empty_title:`暫無 Devin 憑證`,empty_desc:`上傳 Devin 憑證檔案或透過後端 CLI 登入後,即可查詢額度。`},meta_quota:{title:`Muse (Meta) 額度`,empty_title:`暫無 Muse 憑證`,empty_desc:`使用 Muse OAuth 登入或上傳 Meta 驗證檔案以查詢額度。`,idle:`點擊查詢 Muse 額度`,loading:`正在查詢 Muse 額度…`,load_failed:`額度查詢失敗:{{message}}`,missing_auth_index:`驗證檔案缺少 auth_index`,empty_data:`額度未知,可能尚未發起過模型請求。`,invalid_response:`Muse 回傳的額度回應格式無效。`,request_failed:`Muse 額度請求失敗,請檢查 DCA 憑證是否有效。`,missing_file:`查詢額度需要可下載的 Meta 驗證檔案。`,missing_dca_token:`驗證檔案缺少有效的 dca_token,請重新使用 Muse OAuth 登入。`,invalid_auth_file:`下載的驗證檔案不是有效的 JSON。`,download_failed:`無法下載用於查詢額度的驗證檔案。`,stale_request:`連線或憑證已變更,請重試。`,plan:`方案`,active:`訂閱有效`,inactive:`訂閱未啟用`,window:`週期額度`,window_duration:`{{minutes}} 分鐘週期`,weekly:`每週額度`,unknown:`未知`,remaining:`剩餘 {{percent}}%`},kimi_quota:{title:`Kimi 配額`,empty_title:`暫無 Kimi 驗證`,empty_desc:`上傳 Kimi 驗證檔案後即可查看配額。`,domain_unavailable:`無法讀取 Kimi 憑證的網域,需要可下載且有效的驗證檔案。`,stale_request:`連線或憑證已變更,請重試。`,idle:`點擊此處重新整理配額`,loading:`正在載入配額...`,load_failed:`配額取得失敗:{{message}}`,missing_auth_index:`驗證檔案缺少 auth_index`,empty_data:`暫無配額資料`,refresh_button:`重新整理配額`,fetch_all:`取得全部`,weekly_limit:`週限額`,monthly_limit:`月限額`,limit_window:`{{duration}} 限額`,limit_index:`限額 #{{index}}`,reset_hint:`{{hint}} 後重置`},xai_quota:{title:`Grok 配額`,empty_title:`暫無 xAI/Grok 驗證`,empty_desc:`使用 xAI OAuth 登入後即可查看 Grok 配額。`,idle:`點擊此處重新整理配額`,loading:`正在載入配額...`,load_failed:`配額取得失敗:{{message}}`,missing_auth_index:`驗證檔案缺少 auth_index`,empty_data:`暫無配額資料`,refresh_button:`重新整理配額`,fetch_all:`取得全部`,weekly_limit:`週限額`,monthly_credits:`月度點數`,used_percent:`已用 {{percent}}`,usage_unavailable:`xAI 用量暫不可用`,reset_at:`重置 {{time}}`,product_usage:`{{product}} 使用`,plan_label:`方案`,resets_label:`重置`,prepaid:`預付`,plan_supergrok:`SuperGrok`,plan_supergrok_heavy:`SuperGrok Heavy`,plan_paid:`付費`,paid_health:`付費 API 對話可用。xAI 暫不為此 OAuth 憑證提供配額總量資料。`,pay_as_you_go_label:`按量付費`,pay_as_you_go_enabled:`已啟用,封頂 {{cap}}`,pay_as_you_go_disabled:`未啟用`},vertex_import:{title:`Vertex JSON 登入`,description:`上傳 Google 服務帳號 JSON,使用 CLI vertex-import 同步規則寫入 auth-dir/vertex-<project>.json。`,location_label:`目標區域(選填)`,location_placeholder:`us-central1`,location_hint:`留空表示使用預設區域 us-central1。`,file_label:`服務帳號金鑰 JSON`,file_hint:`僅支援 Google Cloud service account key JSON 檔案,私鑰會自動規範化。`,file_placeholder:`尚未選擇檔案`,choose_file:`選擇檔案`,import_button:`匯入 Vertex 憑證`,file_required:`請先選擇 .json 憑證檔案`,success:`Vertex 憑證匯入成功`,result_title:`憑證已儲存`,result_project:`專案 ID`,result_email:`服務帳號`,result_location:`區域`,result_file:`儲存檔案`},oauth_excluded:{editor_description:`為供應商設定不對外顯示的模型,支援精確選取和萬用字元規則。`,models_hint:`展開清單選取模型,或在下方輸入萬用字元規則。`,title:`OAuth 模型停用`,description:`按供應商分列展示,點擊卡片編輯或刪除;支援 * 萬用字元,範圍跟隨上方的設定檔篩選標籤。`,add:`新增停用`,add_title:`新增供應商模型停用`,edit_title:`編輯 {{provider}} 的模型停用`,provider_label:`供應商`,provider_placeholder:`例如 codex / openai`,provider_hint:`預設選取目前篩選的供應商,也可直接輸入或選擇其他名稱。`,models_label:`停用的模型`,save:`儲存/更新`,save_success:`模型停用已更新`,save_failed:`更新模型停用失敗`,delete:`刪除供應商`,delete_confirm:`確定要刪除 {{provider}} 的模型停用嗎?`,delete_success:`已刪除該供應商的模型停用`,delete_failed:`刪除模型停用失敗`,no_models:`未設定停用模型`,model_count:`停用 {{count}} 個模型`,list_empty_all:`暫無任何供應商的模型停用,點擊「新增停用」建立。`,provider_required:`請先填寫供應商名稱`,upgrade_required:`目前 CPA 版本不支援 OAuth 模型停用,請升級 CPA 版本`,upgrade_required_title:`需要升級 CPA 版本`,upgrade_required_desc:`目前伺服器版本不支援取得 OAuth 模型停用功能,請升級到最新版本的 CPA(CLI Proxy API)後重試。`},excluded_models:{trigger_summary:`已排除 {{excluded}} · {{available}} 可用`,trigger_summary_rules:`{{n}} 條規則`,trigger_empty:`未排除任何模型`,meter_aria:`共 {{total}} 個模型,已排除 {{excluded}} 個`,search_placeholder:`搜尋模型…`,search_aria:`搜尋要排除的模型`,list_aria:`模型`,no_results:`沒有符合「{{query}}」的模型`,catalog_loading:`正在載入模型…`,catalog_unavailable:`無法取得模型清單,規則仍然生效。`,catalog_error:`模型載入失敗。`,catalog_retry:`重試`,catalog_empty:`暫無可列出的模型。`,footer_count:`{{excluded}} / {{total}} 已排除`,select_all:`全部排除`,clear:`清空`,clear_aria:`清空已選模型(保留萬用字元規則)`,badge_wildcard:`由規則`,badge_unknown:`不在清單中`,wildcard_reason:`由規則 {{rule}} 比對`,wildcard_locked:`由規則 {{rule}} 排除,請在下方修改該規則`,also_wildcard:`另由 {{rule}} 比對`,chips_more:`還有 {{n}} 個`,chip_remove:`取消排除 {{rule}}`,rules_label:`萬用字元規則`,rules_placeholder:`每行一個規則,例如 gpt-5-*`,rules_hint:`* 比對任意字元,比對不區分大小寫。`,rules_match_count:`比對 {{n}} 個模型`,rules_match_none:`未比對到清單中的任何模型`,rules_reserved:`「*」會停用整個 provider,請改用「已停用」開關`},oauth_model_alias:{editor_description:`為供應商的模型設定呼叫別名,統一用戶端使用的模型名稱。`,edit_title:`編輯 {{provider}} 的模型別名`,mapping_hint:`選取原模型,並填寫用戶端使用的別名。`,mapping_row:`別名對應 {{number}}`,remove_mapping:`刪除第 {{number}} 條別名對應`,title:`OAuth 模型別名`,add:`新增別名`,add_title:`新增供應商模型別名`,provider_label:`供應商`,provider_placeholder:`例如 codex / vertex`,provider_hint:`預設選取目前篩選的供應商,也可直接輸入或選擇其他名稱。`,model_source_loading:`正在載入模型清單...`,model_source_unsupported:`目前 CPA 版本不支援取得模型清單(仍可手動輸入)。`,model_source_loaded:`已載入 {{count}} 個模型,可在「原模型名稱」中下拉選擇;也可手動輸入。留空儲存將刪除該供應商記錄;開啟「保留原名」會在保留原模型名的同時新增別名。`,alias_label:`模型別名`,alias_name_placeholder:`原模型名稱`,alias_placeholder:`別名(必填)`,duplicate_alias:`同一供應商下的別名不能重複。`,alias_fork_label:`保留原名`,add_alias:`新增別名`,save:`儲存/更新`,save_success:`模型別名已更新`,save_failed:`更新模型別名失敗`,delete:`刪除供應商`,delete_confirm:`確定要刪除 {{provider}} 的模型別名嗎?`,delete_link_title:`取消連結`,delete_link_confirm:`確定取消 <code>{{sourceModel}}</code>({{provider}})到別名 <code>{{alias}}</code> 的映射?`,delete_alias_title:`刪除別名`,delete_alias_confirm:`確定刪除別名 <code>{{alias}}</code> 並取消所有關聯模型的映射?`,delete_success:`已刪除該供應商的模型別名`,delete_failed:`刪除模型別名失敗`,no_models:`未設定模型別名`,model_count:`{{count}} 條別名`,list_empty_all:`暫無任何供應商的模型別名,點擊「新增別名」建立。`,chart_title:`全部映射概覽`,diagram_providers:`供應商`,diagram_source_models:`來源模型`,diagram_aliases:`別名`,diagram_expand:`展開`,diagram_collapse:`收起`,diagram_add_alias:`新增別名`,diagram_rename:`重新命名`,diagram_rename_alias_title:`重新命名別名`,diagram_rename_alias_label:`新別名名稱`,diagram_rename_placeholder:`輸入別名名稱...`,diagram_delete_link:`取消連結 {{provider}} / {{name}}`,diagram_delete_alias:`刪除別名`,diagram_please_enter_alias:`請輸入別名名稱。`,diagram_alias_exists:`該別名已存在。`,diagram_add_alias_title:`新增別名`,diagram_add_alias_label:`別名名稱`,diagram_add_placeholder:`輸入新別名名稱...`,diagram_rename_btn:`重新命名`,diagram_add_btn:`新增`,diagram_settings:`設定`,diagram_settings_title:`別名設定 — {{alias}}`,diagram_settings_source_title:`來源模型設定`,diagram_settings_empty:`該別名暫無映射。`,diagram_tap_hint:`觸控設備上:先點選來源模型,再點選別名即可建立映射。`,view_mode_diagram:`概覽`,view_mode_list:`管理`,provider_required:`請先填寫供應商名稱`,upgrade_required:`目前 CPA 版本不支援模型別名功能,請升級 CPA 版本`,upgrade_required_title:`需要升級 CPA 版本`,upgrade_required_desc:`目前伺服器版本不支援 OAuth 模型別名功能,請升級到最新版本的 CPA(CLI Proxy API)後重試。`},auth_login:{devin_oauth_cancel:`取消 Devin 登入`,devin_oauth_cancelled:`已取消 Devin 登入。`,devin_oauth_cancel_error:`取消 Devin 登入失敗:`,devin_oauth_retry_hint:`伺服器可能仍在等待授權。請先取消本次登入,再重新開始。`,devin_oauth_title:`Devin OAuth`,devin_oauth_button:`開始 Devin 登入`,devin_oauth_hint:`透過瀏覽器 OAuth 登入 Devin / Cognition,自動儲存認證檔案。需要 CLI Proxy API v7.3.1 或更新版本,請在五分鐘內完成授權。`,devin_oauth_url_label:`授權連結:`,devin_copy_link:`複製連結`,devin_open_link:`開啟連結`,devin_oauth_status_waiting:`等待 Devin 認證中...`,devin_oauth_status_success:`Devin 認證成功!`,devin_oauth_status_error:`Devin 認證失敗:`,devin_oauth_start_error:`啟動 Devin OAuth 失敗:`,devin_callback_hint:`遠端伺服器:即使瀏覽器無法開啟迴路位址,也請從網址列複製最終的完整 /devin/callback?… URL,保留原有連接埠、http/https、code 和 state。提交後請繼續等待認證完成。`,devin_callback_placeholder:`http://127.0.0.1:<伺服器連接埠>/devin/callback?code=...&state=...`,devin_callback_invalid:`請貼上完整的 http/https 回呼 URL,包含 state 和授權碼或錯誤資訊。`,devin_callback_state_mismatch:`此回呼不屬於目前的 Devin 登入。請使用本次授權的最終 URL,不要重複使用舊回呼。`,recommended_provider_section:`推薦提供商`,recommended_provider_badge:`推薦提供商`,other_oauth_providers:`其他 OAuth 提供商`,other_login_methods:`其他登入方式`,codex_oauth_title:`Codex OAuth`,codex_oauth_button:`開始 Codex 登入`,codex_oauth_hint:`透過 OAuth 流程登入 Codex 服務,自動取得並儲存驗證檔案。`,codex_oauth_url_label:`授權連結:`,codex_open_link:`開啟連結`,codex_copy_link:`複製連結`,codex_oauth_status_waiting:`等待驗證中...`,codex_oauth_status_success:`驗證成功!`,codex_oauth_status_error:`驗證失敗:`,codex_oauth_start_error:`啟動 Codex OAuth 失敗:`,codex_oauth_polling_error:`檢查驗證狀態失敗:`,anthropic_oauth_title:`Anthropic OAuth`,anthropic_oauth_button:`開始 Anthropic 登入`,anthropic_oauth_hint:`透過 OAuth 流程登入 Anthropic(Claude)服務,自動取得並儲存驗證檔案。`,anthropic_oauth_url_label:`授權連結:`,anthropic_open_link:`開啟連結`,anthropic_copy_link:`複製連結`,anthropic_oauth_status_waiting:`等待驗證中...`,anthropic_oauth_status_success:`驗證成功!`,anthropic_oauth_status_error:`驗證失敗:`,anthropic_oauth_start_error:`啟動 Anthropic OAuth 失敗:`,anthropic_oauth_polling_error:`檢查驗證狀態失敗:`,antigravity_oauth_title:`Antigravity OAuth`,antigravity_oauth_button:`開始 Antigravity 登入`,antigravity_oauth_hint:`透過 OAuth 流程登入 Antigravity(Google 帳號)服務,自動取得並儲存驗證檔案。`,antigravity_oauth_url_label:`授權連結:`,antigravity_open_link:`開啟連結`,antigravity_copy_link:`複製連結`,antigravity_oauth_status_waiting:`等待驗證中...`,antigravity_oauth_status_success:`驗證成功!`,antigravity_oauth_status_error:`驗證失敗:`,antigravity_oauth_start_error:`啟動 Antigravity OAuth 失敗:`,antigravity_oauth_polling_error:`檢查驗證狀態失敗:`,meta_oauth_title:`Muse (Meta) OAuth`,meta_oauth_button:`使用 Muse 登入`,meta_oauth_hint:`開啟授權連結,如有提示請輸入裝置碼。授權完成後將自動取得並儲存驗證檔案。`,meta_oauth_url_label:`授權連結:`,meta_open_link:`開啟連結`,meta_copy_link:`複製連結`,meta_oauth_status_waiting:`等待驗證中...`,meta_oauth_status_success:`驗證成功!`,meta_oauth_status_error:`驗證失敗:`,meta_oauth_start_error:`啟動 Muse OAuth 失敗:`,meta_oauth_polling_error:`檢查驗證狀態失敗:`,device_code_label:`裝置碼:`,device_code_copy:`複製裝置碼`,kimi_ai_oauth_title:`Kimi 國際站(kimi.ai)`,kimi_ai_oauth_button:`登入 Kimi 國際站`,kimi_ai_oauth_hint:`透過裝置授權登入 kimi.ai 國際站,自動儲存獨立的 kimi-ai 驗證檔案。中國站與國際站帳號不互通。`,kimi_ai_oauth_url_label:`授權連結:`,kimi_ai_open_link:`開啟連結`,kimi_ai_copy_link:`複製連結`,kimi_ai_oauth_status_waiting:`等待驗證中...`,kimi_ai_oauth_status_success:`驗證成功!`,kimi_ai_oauth_status_error:`驗證失敗:`,kimi_ai_oauth_start_error:`啟動 Kimi 國際站登入失敗:`,kimi_ai_oauth_polling_error:`檢查驗證狀態失敗:`,kimi_oauth_title:`Kimi 中國站(kimi.com)`,kimi_oauth_button:`登入 Kimi 中國站`,kimi_sign_up_button:`立即註冊`,kimi_oauth_hint:`透過裝置授權登入 kimi.com 中國站,自動取得並儲存驗證檔案。國際站帳號請使用獨立的 kimi.ai 登入入口。`,kimi_oauth_url_label:`授權連結:`,kimi_open_link:`開啟連結`,kimi_copy_link:`複製連結`,kimi_oauth_status_waiting:`等待驗證中...`,kimi_oauth_status_success:`驗證成功!`,kimi_oauth_status_error:`驗證失敗:`,kimi_oauth_start_error:`啟動 Kimi OAuth 失敗:`,kimi_oauth_polling_error:`檢查驗證狀態失敗:`,xai_oauth_title:`xAI OAuth`,xai_oauth_button:`開始 xAI 登入`,xai_oauth_hint:`透過 OAuth 流程登入 xAI Grok 服務,自動取得並儲存驗證檔案。`,xai_oauth_url_label:`授權連結:`,xai_open_link:`開啟連結`,xai_copy_link:`複製連結`,xai_oauth_status_waiting:`等待驗證中...`,xai_oauth_status_success:`驗證成功!`,xai_oauth_status_error:`驗證失敗:`,xai_oauth_start_error:`啟動 xAI OAuth 失敗:`,xai_oauth_polling_error:`檢查驗證狀態失敗:`,plugin_oauth_title:`{{name}} OAuth`,plugin_oauth_button:`開始 {{name}} 登入`,plugin_oauth_hint:`透過插件提供的 OAuth 流程登入 {{name}},自動取得並儲存驗證檔案。`,plugin_oauth_url_label:`授權連結:`,plugin_open_link:`開啟連結`,plugin_copy_link:`複製連結`,plugin_oauth_status_waiting:`等待驗證中...`,plugin_oauth_status_success:`驗證成功!`,plugin_oauth_status_error:`驗證失敗:`,plugin_oauth_start_error:`啟動插件 OAuth 失敗:`,xai_callback_label:`回調 URL 或授權碼`,xai_callback_placeholder:`貼上頁面顯示的 code,或完整 callback URL`,xai_callback_hint:`Grok 有時只在頁面顯示 code。可直接貼上 code,系統會自動拼接為 http://127.0.0.1:56121/callback?... 後提交。`,xai_callback_required:`請先貼上 Grok 頁面顯示的 code 或完整回調 URL。`,xai_callback_state_missing:`缺少本次 xAI 登入的 state,請重新開始 xAI 登入後再提交 code。`,qwen_oauth_title:`Qwen OAuth`,qwen_oauth_button:`開始 Qwen 登入`,qwen_oauth_hint:`透過裝置授權流程登入 Qwen 服務,自動取得並儲存驗證檔案。`,qwen_oauth_url_label:`授權連結:`,qwen_open_link:`開啟連結`,qwen_copy_link:`複製連結`,qwen_oauth_status_waiting:`等待驗證中...`,qwen_oauth_status_success:`驗證成功!`,qwen_oauth_status_error:`驗證失敗:`,qwen_oauth_start_error:`啟動 Qwen OAuth 失敗:`,qwen_oauth_polling_error:`檢查驗證狀態失敗:`,oauth_callback_label:`回調 URL`,oauth_callback_placeholder:`http://localhost:1455/auth/callback?code=...&state=...`,oauth_callback_hint:`遠端瀏覽器模式:當授權跳轉到 http://localhost:... 後,複製完整 URL 並提交到這裡。`,oauth_callback_button:`提交回調 URL`,oauth_callback_required:`請先貼上完整的回調 URL。`,oauth_callback_success:`回調 URL 已提交,請繼續等待驗證。`,oauth_callback_error:`提交回調 URL 失敗:`,oauth_callback_upgrade_hint:`請更新 CLI Proxy API 或檢查連線`,oauth_callback_status_success:`回調 URL 已提交,等待驗證中...`,oauth_callback_status_error:`回調 URL 提交失敗:`,missing_state:`無法取得驗證狀態參數`,iflow_oauth_title:`iFlow OAuth`,iflow_oauth_button:`開始 iFlow 登入`,iflow_oauth_hint:`透過 OAuth 流程登入 iFlow 服務,自動取得並儲存驗證檔案。`,iflow_oauth_url_label:`授權連結:`,iflow_open_link:`開啟連結`,iflow_copy_link:`複製連結`,iflow_oauth_status_waiting:`等待驗證中...`,iflow_oauth_status_success:`驗證成功!`,iflow_oauth_status_error:`驗證失敗:`,iflow_oauth_start_error:`啟動 iFlow OAuth 失敗:`,iflow_oauth_polling_error:`檢查驗證狀態失敗:`,iflow_cookie_title:`iFlow Cookie 登入`,iflow_cookie_label:`Cookie 內容:`,iflow_cookie_placeholder:`填入 BXAuth 值,以 BXAuth= 開頭`,iflow_cookie_hint:`直接提交 Cookie 以完成登入(無需開啟授權連結),伺服器端將自動儲存憑證。`,iflow_cookie_key_hint:`提示:需在平台上先建立 Key。`,iflow_cookie_button:`提交 Cookie 登入`,iflow_cookie_status_success:`Cookie 登入成功,憑證已儲存。`,iflow_cookie_status_error:`Cookie 登入失敗:`,iflow_cookie_status_duplicate:`設定檔重複:`,iflow_cookie_start_error:`提交 Cookie 登入失敗:`,iflow_cookie_config_duplicate:`偵測到設定檔已存在(重複),如需重新儲存請先刪除原檔案後重試。`,iflow_cookie_required:`請先填寫 Cookie 內容`,iflow_cookie_result_title:`Cookie 登入結果`,iflow_cookie_result_email:`帳號`,iflow_cookie_result_expired:`到期時間`,iflow_cookie_result_path:`儲存路徑`,iflow_cookie_result_type:`類型`,remote_access_disabled:`遠端存取不支援此登入方式,請從本地(localhost)存取`},stats:{success:`成功`,failure:`失敗`},status_bar:{success_short:`✓`,failure_short:`✗`,no_requests:`無請求`},logs:{preview_too_large:`封包超過 2 MiB 預覽限制,請下載查看`,read_status_live:`持續讀取`,read_status_paused:`讀取已暫停`,read_status_catching_up:`正在追趕積壓記錄`,last_updated:`最後成功更新:{{time}}`,buffer_scope:`僅搜尋已載入記錄:快取 {{count}} 行,符合 {{matched}} 行`,buffer_evicted:`較早記錄已移出快取,無法在此檢索`,cursor_reset_notice:`記錄已輪替或重設,已重新載入最新內容`,history_evicted:`閱讀位置已移出快取,請重新定位`,resume_following:`回到最新 · 新增 {{count}} 行`,level_filter:`記錄等級`,all_levels:`全部等級`,view_request:`查看請求 {{id}} 的封包`,copy_line:`複製此行`,request_log_missing:`未找到封包:可能未記錄或已被清理。關閉請求記錄時通常僅保留錯誤封包。`,download_cached:`下載已快取記錄`,clear_application_confirm:`清空伺服器上的應用程式記錄?請求封包檔案不會被刪除,此操作無法復原。`,clear_search:`清除搜尋`,reading_enabled:`持續讀取`,filter_load_more:`展開更多符合的記錄`,title:`記錄檢視`,refresh_button:`重新整理記錄`,clear_button:`清空記錄`,fullscreen_button:`全螢幕顯示`,exit_fullscreen_button:`退出全螢幕`,download_button:`下載記錄`,error_logs_modal_title:`錯誤請求記錄`,error_logs_description:`請選擇要開啟或下載的錯誤請求記錄檔案(僅在關閉請求記錄時產生)。`,error_logs_request_log_enabled:`目前已開啟請求記錄,按介面約定錯誤請求記錄清單會始終為空。關閉請求記錄後再重新整理即可查看。`,error_logs_empty:`暫無錯誤請求記錄檔案`,error_logs_load_error:`載入錯誤記錄清單失敗`,error_logs_size:`大小`,error_logs_modified:`最後修改`,error_logs_open:`開啟`,error_logs_download:`下載`,error_log_view_title:`錯誤請求記錄詳情`,error_log_open_failed:`開啟錯誤記錄失敗`,error_log_empty_content:`此錯誤記錄沒有內容`,error_log_copy_success:`錯誤記錄內容已複製`,error_log_download_success:`錯誤記錄下載成功`,request_log_download_title:`下載封包`,request_log_download_confirm:`是否要下載 id 為 {{id}} 的封包?`,request_log_download_success:`封包下載成功`,empty_title:`暫無記錄`,empty_desc:`當啟用「記錄到檔案」功能後,記錄將顯示在這裡`,cpa_file_logging_required:`目前連線的是 CPA,記錄檢視需要先開啟「記錄到檔案」。`,cpa_file_logging_required_title:`需要開啟檔案記錄`,cpa_file_logging_required_desc:`CPA 的記錄介面會讀取本機記錄檔。請在設定中開啟 logging-to-file 後再重新整理查看。`,file_logging_required:`目前記錄介面需要先開啟「記錄到檔案」後才能讀取檔案記錄。`,file_logging_required_title:`需要開啟檔案記錄`,file_logging_required_desc:`目前記錄介面會讀取本機記錄檔。請在設定中開啟 logging-to-file 後再重新整理查看。`,log_content:`記錄內容`,loading:`正在載入記錄...`,load_error:`載入記錄失敗`,clear_confirm:`確定要清空所有記錄嗎?此操作無法還原!`,clear_success:`記錄已清空`,download_success:`記錄下載成功`,auto_refresh:`自動重新整理`,load_more_hint:`向上滾動載入更多`,hidden_lines:`已隱藏 {{count}} 行`,loaded_lines:`已載入 {{count}} 行`,filtered_lines:`已篩選 {{count}} 行`,hide_management_logs:`隱藏 {{prefix}} 記錄`,show_raw_logs:`顯示原始記錄`,show_raw_logs_hint:`直接顯示原始記錄文字,方便多行複製`,search_placeholder:`搜尋記錄內容或關鍵字`,filter_panel_title:`篩選與顯示`,wrap_lines:`長日誌自動換行`,filter_panel_expand:`展開結構化篩選`,filter_panel_collapse:`收起結構化篩選`,filter_panel_active_count:`已選 {{count}} 項`,filter_method:`請求方法`,filter_status:`狀態碼`,filter_path:`路徑`,filter_path_empty:`暫無可篩選路徑`,filter_status_2xx:`2xx`,filter_status_3xx:`3xx`,filter_status_4xx:`4xx`,filter_status_5xx:`5xx`,clear_filters:`清空篩選`,search_empty_title:`未找到符合的記錄`,search_empty_desc:`嘗試更換關鍵字或清空篩選條件。`,double_click_copy_hint:`雙擊複製記錄原文`,copy_success:`已複製記錄原文`,copy_failed:`複製失敗`},config_management:JSON.parse(`{"title":"設定面板","meta_fields":"{{count}} 項設定","meta_dirty":"{{count}} 項待儲存","meta_dirty_source":"原始碼有未儲存修改","meta_errors":"{{count}} 項驗證錯誤","meta_synced":"已同步","actions":{"discard":"放棄變更","save":"儲存變更"},"discard_confirm_message":"確定放棄所有未儲存的變更並還原到最近的伺服器版本嗎?","mode":{"label":"編輯模式","visual":"視覺化","source":"原始碼"},"reload":"重新載入","reload_confirm_message":"重新載入將捨棄你目前未儲存的修改,確定繼續嗎?","save":"儲存","status_loading":"載入設定中...","status_loading_short":"載入中","status_loaded":"設定已載入","status_loaded_short":"已載入","status_dirty":"有未儲存的變更","status_dirty_short":"未儲存","status_disconnected":"請先連線伺服器以載入設定","status_disconnected_short":"未連線","status_load_failed":"載入失敗","status_load_failed_short":"失敗","status_saving":"正在儲存設定...","status_saving_short":"儲存中","save_success":"設定已儲存","visual_mode_unavailable":"YAML 語法修復前無法使用視覺化編輯","visual_mode_unavailable_short":"YAML 錯誤","validation_blocked_short":"待修復","visual_mode_unavailable_detail":"目前設定存在無效 YAML,暫時無法使用視覺化編輯:{{message}}","visual_mode_save_blocked":"請先修復 YAML 語法錯誤,再從視覺化模式儲存","source_changes_before_visual":"原始碼有未儲存的修改,請先儲存或放棄修改,再切換到視覺化模式。","precise_save_incomplete":"精準儲存未完成,部分修改可能已生效。草稿已保留,請再次儲存以重新核對伺服器差異。","concurrent_list_conflict":"伺服器清單 {{path}} 已在草稿基準之後發生變更。為避免覆蓋這些修改,已阻止儲存。草稿仍保留;請記下本機修改,再重新載入設定並核對合併。","precise_save_recovery_required":"無法回讀儲存結果,已暫停編輯。請再次儲存以恢復草稿基準,或重新載入設定。","visual_mode_latest_yaml_invalid":"伺服器最新設定包含無效 YAML,請先切回原始碼模式檢查後再儲存視覺化修改:{{message}}","editor_placeholder":"key: value","search_placeholder":"搜尋設定內容...","search_button":"搜尋","search_no_results":"無結果","search_prev":"上一個","search_next":"下一個","diff":{"title":"確認變更","confirm":"確認儲存","no_changes":"未偵測到變更"},"visual":{"serverExtras":{"trustedProxies":{"label":"可信任代理","hint":"填寫 IP 位址或 CIDR;留空不信任轉送標頭。信任涵蓋所有位址的網段有用戶端 IP 偽造風險。重新啟動後端後生效。"},"discoveryEnabled":{"label":"啟用服務探索","hint":"透過 mDNS / DNS-SD 在區域網路廣播。預設關閉,支援熱更新。"},"discoveryServiceName":{"label":"服務名稱前綴","hint":"後端自動附加短 ID,留空使用 CPA-<ShortID>。"},"discoveryServiceType":{"label":"服務類型","hint":"留空使用 _ai-gateway._tcp。"},"discoverySubtypes":{"label":"協定子類型","hint":"留空使用預設的五種協定。缺少開頭的 _ 時自動補齊,無效項目會被忽略。"},"discoveryInterfacesInclude":{"label":"包含網卡","hint":"留空自動選擇實體區域網路網卡。支援網卡名稱或以 * 結尾的前綴比對。"},"discoveryInterfacesExclude":{"label":"排除網卡","hint":"支援網卡名稱或以 * 結尾的前綴比對。排除規則優先於包含規則。"},"discoveryAuthRequired":{"label":"廣播驗證要求","hint":"預設開啟。僅廣播中繼資料,不改變實際 API 身分驗證。"},"discoveryAdvertiseManagement":{"label":"廣播管理服務","hint":"預設關閉。僅廣播管理服務存在,不修改遠端存取權限。"},"discoveryTitle":"區域網路探索","discoveryHint":"需要支援多播的實體網卡及非回環監聽位址。Docker 通常需使用 host 網路;不保證服務可連線。"},"additions":{"oauthTitle":"OAuth 供應商行為","oauthHint":"本組供應商設定僅適用於 OAuth/驗證檔案憑證,不影響 API Key 憑證。","claudeTitle":"Claude","codexTitle":"Codex","antigravityTitle":"Antigravity","xaiTitle":"xAI","liveRelayTitle":"Codex Live 媒體中繼","liveRelayHint":"在代理程序內中繼 WebRTC 音訊與 DataChannel 流量,需要可接收傳入的 UDP 流量。請勿在螢幕截圖或日誌中暴露 ICE 憑證。","iceAdd":"新增 ICE 伺服器","iceRemove":"移除 ICE 伺服器 {{index}}","iceURLs":"STUN/TURN URL","iceUsername":"TURN 使用者名稱","iceCredential":"TURN 密碼","iceServer":"ICE 伺服器 {{index}}","routingSessionAffinitySubagents":{"label":"子代理工作階段親和性","hint":"預設開啟,僅在啟用工作階段親和性時生效。子代理繼承父工作階段的憑證以重用快取;關閉後透過憑證池分散子代理請求,提高並行能力。"},"saveCooldownStatus":{"label":"持久保存冷卻狀態","hint":"將各憑證的冷卻狀態儲存至驗證檔案旁的 .cds 檔案。預設關閉,關閉時僅在記憶體中保存狀態。"},"transientErrorCooldownSeconds":{"label":"暫時性錯誤冷卻時間(秒)","hint":"適用於上游 408/500/502/503/504/520–526 錯誤。0 使用預設的 60 秒冷卻時間,負數停用此類冷卻。"},"videoResultAuthCacheTTL":{"label":"影片結果憑證快取有效期","hint":"影片 ID 與建立它的憑證保持綁定的時間。使用 30m、3h 等時間長度格式,預設 3h。"},"claudeHeaderTimezone":{"label":"備援時區","hint":"用於偽裝請求中 currentDate 的 IANA 時區,例如 Asia/Singapore;Local 表示後端主機時區。憑證 JSON 中的 timezone 優先。"},"claudeModelLevelCooling":{"label":"依模型冷卻","hint":"僅對請求的模型套用 Claude 配額冷卻,而非冷卻該憑證下的所有模型。預設關閉。"},"claudeDisableCloakMode":{"label":"停用請求偽裝","hint":"停用 Claude Code CLI 身分偽裝與系統提示詞替換,原樣傳遞系統提示詞。憑證檔案可透過 cloak_mode 覆寫。預設 false,即僅對非 Claude Code 用戶端自動偽裝。"},"claudeCodeDisableCloakingModelList":{"label":"停用模型 ID 偽裝","hint":"在 Anthropic 模型清單回應中傳回原始模型 ID,而非偽裝後的 ID。預設關閉。"},"codexDisableCloaking":{"label":"停用請求偽裝","hint":"不再為 HTTP/SSE 與 WebSocket 請求強制設定官方 Codex User-Agent 與 Originator 標頭。預設關閉。"},"codexModelLevelCooling":{"label":"依模型冷卻","hint":"僅對請求的模型套用 usage_limit_reached 配額冷卻,而非冷卻該憑證下的所有模型。預設關閉。"},"codexStreamBootstrapBuffering":{"label":"串流啟動緩衝","hint":"暫存初始空事件與心跳,以便在早期過載或限流拒絕時切換憑證重試。預設關閉。會延遲回應標頭,可能觸發用戶端或反向代理逾時;緩衝受影格數與位元組數預算限制。"},"codexStreamBootstrapTimeout":{"label":"串流啟動緩衝逾時","hint":"可選的緩衝時間上限,例如 20s。預設 0,表示不限制時間,但仍受影格數與位元組數預算限制。僅在收到上游影格時檢查,並非所有網路停滯情況的硬性截止時間;回應標頭仍可能等待轉換後的輸出。"},"codexOptimizeMultiAgentV2":{"label":"多代理 v2 最佳化","hint":"最佳化官方 Codex 多代理請求:更新 spawn_agent 模型資訊、移除訊息參數加密、正規化 agent_message 內容,並為非 Codex 協定轉換為使用者訊息。預設關閉。"},"codexOrphanDelegationCompatibility":{"label":"孤立委派輸出相容性","hint":"對帶有 X-Openai-Subagent: collab_spawn 的請求,將缺少有效對應呼叫的 codex_app/create_thread 與 codex_app/send_message_to_thread 孤立輸出轉換為使用者訊息。預設關閉。"},"codexResponseSteering":{"label":"回應引導","hint":"實驗性全雙工 Codex Responses WebSocket。每條連線始終綁定同一上游帳號與模型,已接受的輸入不會重播。預設關閉。"},"antigravityConnectionPoolEnabled":{"label":"啟用連線池","hint":"重用上游 HTTP/1.1 連線。預設 false,使用短連線。"},"antigravityConnectionPoolIdleTimeout":{"label":"閒置連線逾時","hint":"閒置連線在池中保留的時間,預設 30s,上限 210s。設為 0 或負時長時切換為短連線。"},"antigravityConnectionPoolMaxIdleConnsPerHost":{"label":"每主機最大閒置連線數","hint":"每個憑證為每個上游主機保留的最大閒置連線數,預設 2,上限 100。0 使用 Go 預設值 2,負數切換為短連線。"},"xaiInjectXSearch":{"label":"注入 x_search","hint":"請求未宣告 xAI 原生 x_search 工具時自動新增,並在適用時加入 tool_choice.allowed_tools。預設關閉。"},"codexLiveMediaRelayEnabled":{"label":"啟用媒體中繼","hint":"在目前程序內終止並中繼 Codex Live WebRTC 媒體連線,需要可接收傳入的 UDP 流量。預設關閉,以保持媒體直連。"},"codexLiveMediaRelayMaxSessions":{"label":"最大並行媒體工作階段數","hint":"留空或設為 0 使用預設的 32 個工作階段。自訂 UDP 連接埠範圍必須為每個工作階段提供至少兩個連接埠。"},"codexLiveMediaRelayDisablePrivateRemoteIPs":{"label":"封鎖私有遠端 IP 候選","hint":"預設 false,允許私有位址候選,適合本機或可信網路用戶端。開啟後拒絕指向私有、回送、鏈路本地或未指定位址的下游 SDP 候選,減少內網暴露風險,但可能導致本機連線失敗。"},"codexLiveMediaRelayPublicIP":{"label":"通告的公用 IP","hint":"代理位於 1:1 NAT 後方時,可填寫向對端通告的公用 IPv4 或 IPv6 位址。請填寫 IP 位址而非主機名稱。"},"codexLiveMediaRelayUDPPortMin":{"label":"UDP 連接埠下限","hint":"上下限皆為 0 時由系統分配;否則須提供包含兩端的連續連接埠範圍,連接埠數量至少為實際工作階段上限的兩倍。"},"codexLiveMediaRelayUDPPortMax":{"label":"UDP 連接埠上限","hint":"不得小於下限。上下限須同時為 0 或同時非零;自訂範圍每個工作階段至少需要兩個連接埠,預設 32 個工作階段需要至少 64 個連接埠。"},"codexLiveMediaRelayICEServers":{"label":"ICE 伺服器","hint":"可選的 STUN/TURN 伺服器,URL 支援 stun:、stuns:、turn: 或 turns:。JSON 設定 API 不會傳回 TURN 憑證。請透過密碼欄位填寫憑證,勿將機密暴露在螢幕截圖或日誌中。"}},"search":{"placeholder":"搜尋設定項(標籤或 YAML 鍵名)","no_results":"沒有符合的設定項"},"sections":{"common":{"title":"常用","description":"最常調整的設定項,與完整分區共享同一份資料"},"connectivity":{"title":"接入與認證","description":"服務位址、連接埠、認證目錄與 API 金鑰"},"logging":{"title":"日誌與診斷","description":"除錯、日誌輸出與使用統計"},"advanced":{"title":"進階與實驗","description":"請求標頭偽裝、簽章快取、外掛來源等不常修改的設定","plugins_title":"外掛","antigravity_title":"Antigravity","devin_title":"Devin","signature_title":"簽章驗證"},"server":{"host":"主機位址","port":"連接埠"},"tls":{"title":"TLS/SSL 設定","description":"HTTPS 安全連線設定","enable":"啟用 TLS","enable_desc":"啟用 HTTPS 安全連線","cert":"憑證檔案路徑","key":"私鑰檔案路徑"},"remote":{"title":"遠端管理","description":"遠端存取和控制面板設定","allow_remote":"允許遠端存取","allow_remote_desc":"允許從其他主機存取管理介面","disable_panel":"停用控制面板","disable_panel_desc":"停用內建的 Web 控制面板","disable_auto_update_panel":"停用面板自動更新","disable_auto_update_panel_desc":"首次缺失時仍可下載,但不再從 GitHub 背景自動更新","secret_key":"管理金鑰","secret_key_placeholder":"設定管理金鑰","panel_repo":"面板儲存庫"},"auth":{"auth_dir":"OAuth 驗證檔案目錄(oauth.auth-dir)","auth_dir_hint":"存放驗證檔案的目錄路徑(支援 ~)"},"system":{"debug":"除錯模式","debug_desc":"啟用詳細的除錯記錄","commercial_mode":"商業模式","commercial_mode_desc":"停用高開銷中介軟體以支援高並行","logging_to_file":"寫入記錄檔","logging_to_file_desc":"將記錄儲存到檔案","plugins_enabled":"啟用插件系統","plugins_enabled_desc":"啟用標準動態庫插件載入;具體插件實例仍在插件管理頁啟停","plugin_store_sources":"第三方插件源","plugin_store_sources_desc":"追加插件商店 registry 源;內建官方源始終保留","plugin_store_sources_label":"插件源 registry URL(plugins.store-sources)","plugin_store_sources_placeholder":"https://example.com/cliproxy-plugins/registry.json","plugin_store_sources_hint":"每列一個 registry.json URL,儲存時會過濾空列","plugin_store_auth":"插件商店認證規則","plugin_store_auth_desc":"為私有 registry、GitHub Release metadata 或下載位址設定認證標頭","plugin_store_auth_hint":"這裡只填寫環境變數名稱,不填寫真實 token;後端會從執行環境讀取值。","store_auth_empty":"暫未設定認證規則。公開插件源不需要設定。","store_auth_rule":"認證規則","store_auth_add":"新增認證規則","store_auth_match":"匹配 URL 前綴","store_auth_type":"認證類型","store_auth_apply_to":"套用到","store_auth_apply_to_hint":"不選擇時套用到所有請求類型。","store_auth_apply_registry":"Registry","store_auth_apply_metadata":"Metadata","store_auth_apply_artifact":"Artifact","store_auth_type_none":"無認證","store_auth_type_bearer":"Bearer","store_auth_type_basic":"Basic","store_auth_type_header":"自訂 Header","store_auth_type_github_token":"GitHub Token","store_auth_token_env":"Token 環境變數名稱","store_auth_username_env":"使用者名稱環境變數名稱","store_auth_password_env":"密碼環境變數名稱","store_auth_header_name":"Header 名稱","store_auth_header_value_env":"Header 值環境變數名稱","store_auth_allow_insecure":"允許 HTTP 非安全位址","logs_max_size":"記錄檔大小限制(MB)","error_logs_max_files":"錯誤記錄保留檔案數","usage_statistics_enabled":"啟用記憶體用量統計","usage_statistics_enabled_desc":"啟用記憶體中的請求用量聚合","redis_usage_retention":"Redis 用量佇列保留秒數","redis_usage_retention_hint":"RESP 介面 LPOP/RPOP 用量佇列的記憶體保留時間,最大 3600 秒","antigravity_sensitive_words":"敏感詞混淆","antigravity_sensitive_words_desc":"在 Antigravity 系統提示詞的匹配項中插入零寬字元,降低上游精確關鍵詞匹配","antigravity_sensitive_words_label":"OAuth 敏感詞(oauth.providers.antigravity.sensitive-words)","antigravity_sensitive_words_placeholder":"proxy","antigravity_sensitive_words_hint":"每項填寫一個詞或短語;匹配不分大小寫,儲存時移除空項,少於 2 個字元的項目會被後端忽略","devin_sensitive_words":"Devin 系統提示詞敏感詞","devin_sensitive_words_desc":"僅處理 Devin 系統提示詞:含設定詞的整行會被刪除,剩餘系統提示詞再進行混淆;一般訊息和工具參數不會被修改","devin_sensitive_words_label":"OAuth 敏感詞(oauth.providers.devin.sensitive-words)","devin_sensitive_words_placeholder":"敏感短語","devin_sensitive_words_hint":"每項填寫一個詞或短語。請謹慎設定:命中內容會導致整行系統提示詞被刪除;儲存時移除空項","antigravity_signature_cache":"啟用 Antigravity 簽名快取","antigravity_signature_cache_desc":"優先使用並校驗快取的 thinking block 簽名","antigravity_signature_strict":"嚴格校驗旁路簽名","antigravity_signature_strict_desc":"僅在關閉簽名快取時生效,按完整 Claude protobuf 樹校驗"},"headers":{"title":"Header 預設值","description":"Claude 與 Codex OAuth 請求在客戶端缺少 Header 時使用的預設值","claude_title":"Claude OAuth 預設請求標頭","codex_title":"Codex OAuth 預設請求標頭","user_agent":"User-Agent","package_version":"Package Version","runtime_version":"Runtime Version","os":"OS","arch":"Arch","timeout":"Timeout","stabilize_device":"穩定設備指紋","stabilize_device_desc":"固定 OS/Arch,並按憑證/API Key 穩定軟體指紋","beta_features":"Beta Features"},"network":{"title":"網路設定","description":"代理、重試和路由設定","proxy_url":"代理 URL","proxy_url_sponsor_hint":"沒有合適的代理?","request_retry":"請求重試次數","max_retry_credentials":"最大重試憑證數","max_retry_credentials_hint":"留空表示不設定;設為 0 或負整數表示嘗試所有可用憑證。","max_retry_interval":"最大重試間隔(秒)","max_retry_interval_hint":"設為 0 或負整數表示重試輪次之間不等待憑證冷卻。","auth_auto_refresh_workers":"驗證自動刷新 Worker 數","auth_auto_refresh_workers_hint":"正整數覆蓋 Worker 數;設為 0、負整數或留空時使用預設值(16)","disable_image_generation":"停用圖像生成","disable_image_generation_hint":"false 為啟用;true 為全部停用;chat 停用非圖片端點注入;passthrough 不注入並保留客戶端工具清單","disable_image_generation_false":"false(啟用)","disable_image_generation_true":"true(全部停用)","disable_image_generation_chat":"chat(僅停用聊天注入)","disable_image_generation_passthrough":"passthrough(保留客戶端工具清單)","gpt_image_2_base_model":"GPT Image 2 基礎模型","gpt_image_2_base_model_hint":"代理 gpt-image-2 圖片請求時使用的主線模型;留空或非法時後端使用預設值","routing_strategy":"路由策略","routing_strategy_hint":"選擇憑證選擇策略","strategy_round_robin":"輪詢(Round Robin)","strategy_weighted_round_robin":"加權輪詢(Weighted Round Robin)","strategy_fill_first":"填充優先(Fill First)","session_affinity_ttl":"會話黏性 TTL","force_model_prefix":"強制模型前綴","force_model_prefix_desc":"未帶前綴的模型請求只使用無前綴憑證","passthrough_headers":"透傳上游回應 Header","passthrough_headers_desc":"將過濾後的上游回應 Header 轉發給下游客戶端","disable_cooling":"停用冷卻調度","disable_cooling_desc":"全域停用驗證/模型失敗後的冷卻視窗","session_affinity":"會話黏性路由","ws_auth":"WebSocket 驗證","ws_auth_desc":"啟用 AI Studio WebSocket 連線驗證(oauth.providers.aistudio.ws-auth)"},"quota":{"title":"配額回退","description":"配額耗盡時的回退策略","switch_project":"切換專案","switch_project_desc":"配額耗盡時自動切換到其他專案","switch_preview_model":"切換預覽模型","switch_preview_model_desc":"配額耗盡時切換到預覽版本模型","antigravity_credits":"使用Antigravity Credits"},"streaming":{"title":"串流傳輸設定","description":"Keepalive 與 bootstrap 重試設定","keepalive_seconds":"Keepalive 秒數","keepalive_hint":"設定為 0、負整數或留空表示停用 keepalive","bootstrap_retries":"Bootstrap 重試次數","bootstrap_hint":"串流傳輸首包前的重試次數;設為 0、負整數或留空表示停用啟動重試","nonstream_keepalive":"非串流 Keepalive 間隔(秒)","nonstream_keepalive_hint":"非串流回應時每隔 N 秒發送空行;設定為 0、負整數或留空表示停用保活","disabled":"已停用"},"payload":{"title":"Payload 設定","description":"預設值、原始 JSON 規則、覆寫規則與篩選規則","default_rules":"預設規則","default_rules_desc":"當請求中未指定參數時,使用這些預設值","default_raw_rules":"預設 Raw 規則","default_raw_rules_desc":"當請求中未指定參數時,按原始 JSON 片段寫入這些值,例如 true、123、\\"high\\" 或 {\\"type\\":\\"object\\"}","override_rules":"覆寫規則","override_rules_desc":"強制覆寫請求中的參數值","override_raw_rules":"覆寫 Raw 規則","override_raw_rules_desc":"始終按原始 JSON 片段覆寫參數值,適合 response_format、schema 等複雜欄位","filter_rules":"篩選規則","filter_rules_desc":"透過 JSON Path 預篩選上游請求體,自動剔除不合規/冗餘參數(Request Sanitization)"}},"api_keys":{"label":"用戶端 API 金鑰(access.api-keys)","add":"新增 API 金鑰","generate":"產生","empty":"暫無 API 金鑰","hint":"每個條目代表一個 API 金鑰(與「API 金鑰管理」頁面樣式一致)","edit_title":"編輯 API 金鑰","add_title":"新增 API 金鑰","input_label":"API 金鑰","input_placeholder":"貼上你的 API 金鑰","name_label":"名稱 / 說明(選填)","name_placeholder":"例如:小明的筆記型電腦","name_hint":"名稱立即儲存在目前瀏覽器中,依伺服器隔離,不寫入伺服器設定。清空此欄位可移除名稱。","name_save_error":"無法將名稱儲存至瀏覽器儲存空間,請檢查瀏覽器儲存設定。","input_hint":"儲存設定後生效。上游提供商金鑰獨立管理,不受此處修改影響。","error_empty":"請輸入 API 金鑰","error_invalid":"API 金鑰包含無效字元","strength":{"label":"API 金鑰強度","empty":"待輸入","weak":"弱","fair":"一般","good":"良好","strong":"很強"}},"payload_rules":{"rule":"規則","models":"適用模型","model_name":"模型名稱","provider_type":"供應商類型","add_model":"新增模型","params":"參數設定","remove_params":"移除參數","json_path":"JSON 路徑(如 temperature)","json_path_filter":"JSON 路徑(gjson/sjson),如 generationConfig.thinkingConfig.thinkingBudget","param_type":"參數類型","param_value":"參數值","add_param":"新增參數","no_rules":"暫無規則","add_rule":"新增規則","provider_default":"預設","provider_openai":"OpenAI","provider_openai_response":"OpenAI Response","provider_responses":"Responses","provider_gemini":"Gemini","provider_claude":"Claude","provider_codex":"Codex","provider_antigravity":"Antigravity","advanced":"進階","hide_advanced":"收起進階","from_protocol":"來源協議(from-protocol)","headers":"請求 Header 匹配","header_name":"Header 名稱","header_value":"Header 值","add_header":"新增 Header","match":"必須匹配(match)","notMatch":"不得匹配(not-match)","exist":"必須存在(exist)","notExist":"不得存在(not-exist)","condition_path":"匹配路徑","condition_value":"匹配值","add_condition":"新增條件","value_type_string":"字串","value_type_number":"數字","value_type_boolean":"布林","value_type_json":"JSON","value_string":"字串值","value_number":"數字值(如 0.7)","value_boolean":"true 或 false","value_json":"JSON 值","value_raw_json":"原始 JSON 片段,如 true、123、\\"high\\" 或 {\\"type\\":\\"object\\"}","value_default":"值","boolean_true":"true","boolean_false":"false"},"validation":{"invalid_trusted_proxies":"每個可信任代理必須是有效的 IP 位址或 CIDR。","invalid_discovery_service_type":"請使用 _名稱._tcp 格式:名稱為 1–15 位英文字母、數字或連字號,首尾不能是連字號。","validation_blocked":"請先修復表單驗證錯誤再儲存","invalid_duration":"請輸入有效的時間長度,例如 30s 或 3h","positive_duration":"請輸入大於零的時間長度","invalid_timezone":"請輸入有效的 IANA 時區,例如 Asia/Singapore","invalid_ip":"請輸入有效的 IPv4 或 IPv6 位址","udp_port_pair":"UDP 連接埠上下限須同時為 0,或同時設定且下限不大於上限","udp_port_capacity":"UDP 連接埠數量須至少為實際最大工作階段數的兩倍(工作階段數為 0 時以 32 計算)","invalid_ice_servers":"每個 ICE 伺服器須至少包含一個有效的 stun:、stuns:、turn: 或 turns: URL","integer_range_0_65535":"請輸入 0 到 65535 之間的整數","port_range":"請輸入 1 到 65535 之間的有效連接埠","integer":"請輸入整數","non_negative_integer":"請輸入非負整數","integer_range_1_3600":"請輸入 1 到 3600 之間的整數","payload_invalid_number":"請輸入有效數字","payload_invalid_boolean":"請選擇 true 或 false","payload_invalid_json":"請輸入有效的 JSON"},"common":{"edit":"編輯","delete":"刪除","cancel":"取消","update":"更新","add":"新增"}}}`),quota_management:{search_label:`搜尋帳號`,search_placeholder:`依檔案名稱或電子郵件搜尋`,search_empty_title:`沒有符合的帳號`,search_empty_desc:`請嘗試其他檔案名稱或電子郵件,或清除搜尋。`,search_clear:`清除搜尋`,title:`配額管理`,description:`集中查看 OAuth 配額與剩餘情況`,refresh_all_credentials:`重新整理全部憑證`,sort_label:`排序`,sort_default:`預設`,sort_soonest:`最快恢復優先`,meta_credentials:`{{count}} 個憑證`,meta_loaded:`{{count}} 個已載入`,meta_attention:`{{count}} 個需關注`,empty_title:`暫無可查配額的憑證`,empty_desc:`接入 Antigravity、Claude、Codex、xAI 或 Kimi 憑證後即可在此查看配額。`,windows_title:`配額視窗`,windows_span_weekly:`兩週`,windows_span_session:`三天`,windows_current:`目前`,windows_today:`今天`,windows_prev:`上一頁`,windows_next:`下一頁`,windows_mode_weekly:`按週`,windows_mode_session:`5 小時`,windows_credential:`憑證`,windows_idle:`沒有正在計時的視窗`,windows_empty_session:`目前頁面沒有憑證提供 5 小時配額視窗。`,windows_legend_current:`目前視窗`,windows_legend_upcoming:`即將開始`,windows_legend_elapsed:`已結束`,windows_legend_reset_credit:`主動重設過期`,soonest_row_hint:`該憑證中最先恢復`,windows_reset_credit:`主動重設`,windows_credit_granted:`取得時間`,windows_credit_expires:`過期時間`,windows_note_weekly:`每條表示一個完整的配額視窗,從開啟到重設。同時結束的視窗會競用相同的日期。`,windows_note_session:`每條表示一個 5 小時視窗。僅顯示有正在計時視窗的憑證,其餘保持為空。`,weekday_sun:`日`,weekday_mon:`一`,weekday_tue:`二`,weekday_wed:`三`,weekday_thu:`四`,weekday_fri:`五`,weekday_sat:`六`},plugin_management:{title:`插件管理`,description:`查看已發現和已註冊的插件,管理實例開關、設定欄位和資源入口。`,refresh:`重新整理`,load_failed:`載入插件失敗`,config_load_failed:`讀取插件設定失敗`,config_not_found:`無法讀取插件設定,後端未找到該插件。`,unsupported_backend:`目前後端未暴露插件管理 API。請使用包含插件管理介面的新版後端建置,並重新啟動服務。`,global_status:`全域狀態`,global_enabled:`已啟用`,global_disabled:`已停用`,global_disabled_hint:`目前 plugins.enabled 為 false,插件實例即使啟用也不會生效。`,plugins_dir:`插件目錄`,discovered:`發現插件`,effective:`生效插件`,search_placeholder:`搜尋插件 ID、名稱、作者或資源...`,search_label:`搜尋插件`,no_plugins:`暫無插件`,no_plugins_desc:`未從插件目錄或執行時註冊表中發現插件。`,configured:`已設定`,not_configured:`未設定`,registered:`已註冊`,not_registered:`未註冊`,oauth:`OAuth`,status_effective:`生效中`,status_inactive:`未生效`,edit_config:`編輯設定`,open_repository:`開啟倉庫`,config_title:`設定 {{name}}`,base_settings:`基礎設定`,enabled:`啟用`,enabled_hint:`控制 plugins.configs 中該插件實例的 enabled 欄位。`,priority:`優先級`,config_fields:`設定欄位`,no_config_fields:`該插件沒有宣告可視化設定欄位。`,select_placeholder:`請選擇`,array_item_placeholder:`輸入陣列項目`,add_array_item:`新增陣列項目`,remove_array_item:`刪除陣列項目`,delete_plugin:`刪除`,delete_confirm_title:`刪除插件`,delete_confirm_message:`確定刪除 {{name}}({{id}})嗎?這會移除本機插件檔案和已儲存設定。`,delete_success:`插件已刪除`,delete_failed:`插件刪除失敗`,delete_restart_required:`已載入的插件需要重新啟動後端後才能移除。`,toggle_success:`插件狀態已更新`,toggle_failed:`插件狀態更新失敗`,runtime_pending:`插件變更已儲存,但執行時狀態仍在更新中。請稍後重新整理或檢查後端日誌。`,save_success:`插件設定已儲存`,save_failed:`插件設定儲存失敗`,validation_failed:`請先修復插件設定表單錯誤`,invalid_priority:`請輸入整數優先級`,invalid_number:`請輸入有效數字`,invalid_integer:`請輸入有效整數`,invalid_json:`請輸入有效 JSON`,expected_array:`請輸入 JSON 陣列`,expected_object:`請輸入 JSON 物件`,invalid_enum:`請選擇宣告的枚舉值`},plugin_store:{title:`插件商店`,description:`瀏覽插件註冊表,為目前後端安裝或更新插件。`,description_show_more:`展開描述`,description_show_less:`收起描述`,source_name:`來源:{{source}}`,cli_proxy_api_source:`CLIProxyAPI來源`,refresh:`重新整理`,retry:`重試`,load_failed:`插件商店載入失敗`,unsupported_backend:`目前後端未提供插件商店 API。請使用包含插件商店介面的新後端建置,並重新啟動服務。`,registry_failed:`插件註冊表請求失敗`,global_status:`全域狀態`,global_enabled:`已啟用`,global_disabled:`已停用`,global_disabled_hint:`目前 plugins.enabled 為 false,已安裝的插件不會生效。`,plugins_dir:`插件目錄`,stat_available:`可用插件`,search_placeholder:`搜尋插件 ID、名稱、作者或標籤...`,search_label:`搜尋插件商店`,filter_label:`依安裝狀態篩選`,filter_all:`全部`,filter_installed:`已安裝`,filter_not_installed:`未安裝`,filter_updates:`可更新`,badge_installed:`已安裝`,badge_update:`可更新`,badge_effective:`生效中`,version_arrow:`v{{from}} → v{{to}}`,install_type:`安裝方式:{{type}}`,platforms:`平台:{{platforms}}`,auth_required:`需要認證`,auth_configured:`認證已設定`,auth_required_hint:`該插件來源或下載位址需要先設定 plugins.store-auth`,source_errors_title:`部分插件來源載入失敗`,install:`安裝`,update:`更新`,manage:`管理`,install_confirm_title:`安裝插件`,install_confirm_message:`將從插件註冊表下載 {{target}} 並安裝到本機插件目錄,是否繼續?`,update_confirm_title:`更新插件`,update_confirm_message:`將下載並安裝 {{target}},是否繼續?`,install_version_label:`版本`,install_version_latest:`最新版本`,install_version_latest_mode:`最新穩定版`,install_version_latest_hint:`安裝時由後端解析;目前列表版本為 {{version}}。`,install_version_release_mode:`選擇歷史版本`,install_version_release_hint:`從 GitHub Releases 讀取可安裝標籤。`,install_version_manual_mode:`手動發布標籤`,install_version_manual_hint:`僅在自動讀取不可用時使用。`,install_versions_loading:`正在讀取 GitHub Releases...`,install_versions_load_failed:`無法自動讀取發布版本`,install_version_non_github:`此插件倉庫不是 GitHub 倉庫`,install_versions_empty:`未讀取到可選發布版本。`,install_versions_only_prerelease:`目前只剩預發布版本,請開啟預發布版本後選擇。`,install_version_release_select:`選擇發布版本`,install_version_release_placeholder:`選擇發布版本`,install_version_prerelease_badge:`預發布`,install_version_assets_count:`{{count}} 個資產`,install_version_show_prerelease:`顯示預發布版本`,install_version_manual_placeholder:`例如 v0.1.4`,install_version_manual_error:`發布標籤只能包含字母、數字、點、底線、加號和連字號,且不能包含空格或斜線。`,install_version_current_selected:`目前已安裝 {{version}},請選擇其他版本。`,install_version_releases_link:`查看 GitHub Releases`,install_success:`插件安裝成功`,update_success:`插件更新成功`,install_failed:`插件安裝失敗`,update_failed:`插件更新失敗`,status_pending:`插件檔案已更新,但本機狀態尚未重新整理。請稍後重新整理或檢查後端日誌。`,registration_pending:`插件檔案已更新,但註冊仍在進行中。請稍後重新整理或檢查後端日誌。`,restart_required_notice:`需要重新啟動服務才能載入新的插件版本`,restart_required_banner:`以下插件需重新啟動服務後才能套用新版本:{{plugins}}`,open_repository:`開啟儲存庫`,open_homepage:`開啟首頁`,no_plugins:`註冊表為空`,no_plugins_desc:`插件註冊表未回傳任何插件。`,no_matches:`沒有符合的插件`,no_matches_desc:`目前搜尋或篩選條件下沒有插件。`,clear_filters:`清除篩選`,security_banner_title:`第三方插件以後端完整權限執行`,security_banner_text:`插件會在代理服務內部執行程式碼,可讀取你的憑證與流量。請僅安裝你信任的插件——尤其要警惕任何並非由官方組織 router-for-me 發布的插件。`,badge_untrusted:`第三方`,gate_title:`安裝 {{name}}`,gate_title_update:`更新 {{name}}`,gate_warning:`如果你不閱讀以下內容,可能會發生意料之外的危險後果。`,gate_effect_runs_code:`該插件將在您的代理後端內執行第三方未認證程式碼。系統無法對其行為進行隔離或稽核,其具備存取您的敏感憑證、網路請求與回應資料的潛在權限。`,gate_effect_no_review:`本插件並非由官方組織 router-for-me 發布或審核。官方不對該插件的穩定性、安全性、合規性以及後續版本的任意行為變更承擔任何明示或暗示的擔保責任。`,gate_effect_restart:`安裝會修改本機插件目錄,並可能需要重新啟動服務才能生效。`,gate_untrusted_alert:`該插件並非來自官方組織 router-for-me。請僅在你完全信任其作者與來源時繼續。`,gate_repository_label:`儲存庫`,gate_source_label:`來源`,gate_step1_action:`我要安裝此插件`,gate_step2_action:`我已閱讀並理解上述風險`,gate_step3_prompt:`如需確認,請在下方輸入框中鍵入 “{{token}}”`,gate_step3_action:`安裝此插件`,gate_step3_hint:`請輸入上方顯示的完整識別碼以啟用安裝。`},plugin_resource:{page_count:`{{count}} 個頁面`,load_failed:`載入插件頁面失敗`,unavailable:`插件頁面不可用`,not_found:`找不到插件頁面`,not_found_desc:`目前後端插件清單未宣告此插件頁面。`,empty_src:`插件頁面位址為空`,empty_src_desc:`此插件選單未提供可嵌入的頁面位址。`},system_info:{title:`管理中心資訊`,about_title:`CLI Proxy API Management Center`,models_title:`可用模型清單`,models_desc:`展示 /models 回傳的模型,並自動使用伺服器儲存的 API Key 進行驗證。`,models_loading:`正在載入可用模型...`,models_empty:`未從 /models 取得到模型資料`,models_error:`取得模型清單失敗`,models_count:`可用模型 {{count}} 個`,version_check_button:`檢查更新`,version_update_available:`有新版本可用:{{version}}`,version_is_latest:`目前已是最新版本`,version_check_error:`檢查更新失敗`,version_current_missing:`未取得到伺服器版本號,暫無法比對`,version_unknown:`未知`,quick_links_title:`快速連結`,quick_links_desc:`存取專案儲存庫和文件,取得協助和更新。`,link_main_repo:`主程式儲存庫`,link_main_repo_desc:`CLI Proxy API 核心程式原始碼`,link_webui_repo:`WebUI 儲存庫`,link_webui_repo_desc:`管理中心前端介面原始碼`,link_docs:`使用教學`,link_docs_desc:`設定指南和使用說明`,clear_login_title:`本地登入資訊`,clear_login_desc:`清理本地儲存的登入資訊並登出。`,clear_login_button:`清理登入資訊`,clear_login_confirm:`確認清理本地登入資訊並登出?`},notification:{trusted_proxies_restart_required:`可信任代理設定已儲存,重新啟動後端後生效。`,region_label:`通知`,type_success:`成功`,type_info:`提示`,type_warning:`警告`,type_error:`錯誤`,request_log_updated:`請求記錄設定已更新`,login_storage_cleared:`本地登入資訊已清理`,data_refreshed:`資料重新整理成功`,connection_required:`請先建立連線`,refresh_failed:`重新整理失敗`,update_failed:`更新失敗`,add_failed:`新增失敗`,delete_failed:`刪除失敗`,upload_failed:`上傳失敗`,download_failed:`下載失敗`,login_failed:`登入失敗`,commercial_mode_restart_required:`商業模式開關已變更,請重啟服務後生效`,copy_failed:`複製失敗`,link_copied:`已複製`},language:{switch:`語言`,chinese:`簡體中文`,chinese_tw:`繁體中文(台灣)`,english:`英文`,russian:`俄文`},theme:{switch:`主題`,light:`羊毛紙`,white:`純白`,dark:`深色`,auto:`跟隨系統`},sidebar:{toggle_expand:`展開側邊欄`,toggle_collapse:`收起側邊欄`,expand:`展開`,collapse:`收起`,subtitle:`CLI Proxy API 管理控制台`,auth_files_count:`驗證檔案:{{count}} 個`},footer:{api_version:`CLI Proxy API 版本`,build_date:`建置時間`,version:`管理中心版本`},providersPage:JSON.parse(`{"behavior":{"title":"提供商專屬行為","alphaSearch":"啟用 Alpha Search","alphaSearchHint":"允許此 Codex 金鑰用於 Alpha Search。上游必須支援此功能。","codexCloaking":"Codex 請求偽裝","codexCloakingHint":"為此 API 金鑰覆寫官方 Codex 身分請求標頭設定。選擇預設值會移除此憑證的覆寫設定;僅適用於 OAuth 的設定在此不生效。","useDefault":"使用後端預設值","cloakingEnabled":"啟用偽裝","cloakingDisabled":"停用偽裝","rebuildMidSystemMessage":"重建系統訊息","rebuildMidSystemMessageHint":"將 Claude 中 role 為 system 的訊息移至頂層 system 欄位。","supportPromptCacheKey":"注入提示詞快取鍵","supportPromptCacheKeyHint":"為相容的請求衍生並注入 prompt_cache_key。僅在上游支援此欄位時啟用。"},"modelOptions":{"displayName":"顯示名稱","maxContextLength":"上下文長度","contextHint":"非負安全整數;留空使用預設值。","forceMapping":"將回應模型名稱改寫為別名","isCompat":"相容模式","supportConfigurationUpdate":"允許設定更新","inputModalitiesText":"輸入模態","outputModalitiesText":"輸出模態","modalitiesHint":"使用逗號或空白分隔;保留自訂模態名稱。","useMaxCompletionTokens":"使用 max_completion_tokens","thinkingMode":"思考設定覆寫","useDefault":"使用預設","custom":"自訂","thinkingHint":"預設繼承後端行為;空的自訂覆寫是明確的 {}。預算和思考等級可以同時設定。僅當最小值和最大值均為 0 或留空時,才不指定數值範圍。最小值大於 0 時須設定不小於它的最大值。","thinkingMin":"最小思考預算","thinkingMax":"最大思考預算","thinkingZeroAllowed":"允許零預算","thinkingDynamicAllowed":"允許動態預算","invalidContext":"上下文長度必須是非負安全整數。","invalidThinking":"思考設定必須是有效的 JSON 物件。","invalidBudget":"思考預算必須是非負安全整數。","invalidRange":"最小思考預算不能大於最大值,留空的邊界按 0 處理。","removeModel":"移除模型","modelName":"模型名稱","modelAlias":"別名(選填)"},"runtimePolicy":{"title":"進階執行策略","description":"繼承使用所屬群組策略,再回退至後端預設值。覆寫僅套用於目前項目。","cooling":"冷卻策略","inherit":"繼承","coolingEnabled":"啟用冷卻","coolingDisabled":"停用冷卻","retry":"請求重試次數","retryHint":"留空繼承群組設定。請輸入整數:0 表示不重試;負數使用全域重試策略,而非群組策略。","errorsMode":"請求錯誤規則","override":"覆寫","errorsHint":"繼承使用上層策略。覆寫會取代整個清單,可儲存為空。切換模式會保留規則草稿。","invalidRetry":"重試次數必須是安全範圍內的整數,或留空以繼承。"},"errorRules":{"hint":"依序採用首個命中規則;狀態碼相同,任一條件命中即可。","empty":"尚無規則,可儲存為空清單。","rule":"規則 {{number}}","status":"狀態碼","action":"動作","selectAction":"選擇動作","moveUp":"上移規則","moveDown":"下移規則","removeRule":"刪除規則","matchType":"比對類型","text":"包含文字","regex":"正規表示式","matchValue":"比對條件","regexHint":"Go 正規表示式","removeMatch":"刪除條件","addMatch":"新增條件","addRule":"新增規則","invalidStatus":"狀態碼必須是安全範圍內的正整數。","invalidAction":"請選擇有效動作。","invalidMatch":"比對條件不可為空。","missingMatch":"至少需要一個比對條件。","actions":{"stop":"停止","stop-and-cooldown":"停止並冷卻","continue":"繼續","continue-and-cooldown":"繼續並冷卻"}},"header":{"title":"AI 提供商","activeResources":"{{active}}/{{total}} 個活躍資源","providerFamilies":"{{count}} 個提供商家族","updatedAt":"更新於 {{time}}"},"actions":{"refresh":"重新整理","syncing":"同步中","new":"新增","edit":"編輯","view":"檢視","delete":"刪除","cancel":"取消","save":"儲存","create":"建立","enable":"啟用","disable":"停用"},"categories":{"title":"提供商","quickFill":"快速接入","activeCount":"{{active}}/{{total}} 活躍"},"providerNames":{"meta":"Muse (Meta)","gemini":"Gemini","interactions":"Interactions API","codex":"Codex","xai":"xAI","claude":"Claude","vertex":"Vertex","openaiCompatibility":"OpenAI 相容","apikeyFun":"APIKEY.FUN","fennoAI":"FennoAI","qiniuCloud":"七牛雲","kimi":"Kimi"},"table":{"key":"金鑰","baseUrl":"服務位址","prefix":"前綴","models":"模型/請求標頭","status":"狀態","actions":"操作","metrics":{"models":"模型","keys":"金鑰","headers":"請求標頭"},"websocketsTag":"WebSockets","cloakTag":"Cloak","cliProfileTag":"CLI 指紋","empty":"尚未新增設定,點擊右上角新增。","filterPlaceholder":"搜尋金鑰、位址、前綴…","description":"在 {{route}} 下管理資源"},"sponsor":{"protocolSummary":"Anthropic / OpenAI / Gemini / Codex API (Responses)","detailHint":"{{provider}} 會按協議分別寫入對應的 API Key 設定,此處只做聚合管理。","registerLink":"點此註冊","registerNow":"立即註冊","kimiPromo":"新用戶首次成功儲值,贈送儲值金額 10% 的 API 額度,最高贈送 ¥1000,優惠截至 9 月 30 日","dashboardLink":"控制面板","emptyRegisterHint":"尚未新增設定","apiKeyHint":"此金鑰只會寫入目前選擇的分組/協議設定。","usageCheck":"查詢額度","usageChecking":"查詢中","usageRemaining":"剩餘額度: {{amount}} {{unit}}","usageBreakdown":"已用 {{used}} / 總額 {{limit}}","usageStatus":"狀態: {{status}}","usageInvalid":"Key 無效","usageEmpty":"端點未回傳額度資料","usageApiKeyRequired":"API 金鑰必填","aggregationConflict":"此聚合提供商包含多筆後端設定或多個 OpenAI 金鑰。為避免資料遺失,請在原始碼設定中編輯。","partialMutationWarning":"操作失敗,但一個或多個協議可能已更新。已重新讀取最新設定,請檢查後再重試。","groupedKeysTitle":"分組金鑰","groupedKeysHint":"平台建立 Key 時可能需要選擇分組,這裡每個分組金鑰只管理一個協議,模型也只從該協議拉取。","groupedKey":"分組金鑰 #{{index}}","addGroupedKey":"新增分組金鑰","removeGroupedKey":"刪除分組金鑰","protocol":"分組/協議","protocolHint":"請選擇此 Key 對應的分組/協議。","protocolEndpoint":"目前協議位址","urlMode":"{{provider}} URL","urlHint":"不同 URL 的使用規範一致,儲存時只會寫入目前分組協議對應位址。","urlOptions":{"standard":"普通 URL","direct":"專線直連 URL","domestic":"中國大陸線路","overseas":"海外線路","mainlandChina":"中國大陸(推薦)","global":"全球"},"urlOptionDescriptions":{"domestic":"面向中國大陸使用者和部署在中國大陸網路環境中的業務,通常可獲得更低延遲。","overseas":"面向海外部署、跨境存取或需要存取境外模型的業務。","mainlandChinaRecommended":"推薦中國大陸使用者和部署在中國大陸網路環境中的業務使用。","global":"適用於全球其他地區的使用者和部署環境。"},"modelsTitle":"協議模型設定","modelsHint":"可分別限制或別名映射 Codex API、Anthropic、Gemini 與 OpenAI 相容入口的模型。","protocolModels":{"codex":"Codex API 模型","anthropic":"Anthropic 模型","gemini":"Gemini 模型","openai":"OpenAI 相容模型"},"protocolModelHints":{"codex":"寫入 Codex API 設定的 models,可從 /v1/models 拉取後設定別名。","anthropic":"寫入 Anthropic 設定的 models,可從 /v1/models 拉取後設定別名。","gemini":"寫入 Gemini 設定的 models,可從 /v1beta/models 拉取後設定別名。","openai":"寫入 OpenAI 相容設定的 models,可從 /models 拉取後設定別名。"},"validation":{"keyRequired":"請為每個分組金鑰填寫 API Key。","protocolDuplicate":"每個協議只能新增一個分組金鑰。"},"openaiEntries":"OpenAI 相容金鑰數","codexEntries":"Codex API 金鑰數","anthropicEntries":"Anthropic 金鑰數","geminiEntries":"Gemini 金鑰數","protocols":{"anthropic":"Anthropic","openai":"OpenAI 相容","gemini":"Gemini","codexResponses":"Codex API (Responses)"}},"status":{"active":"活躍","disabled":"已停用","notSet":"未設定","none":"無","notConfigured":"未設定","defaultSuffix":"(預設)"},"detail":{"title":"詳情","metadataTitle":"元資料","fields":{"identifier":"識別碼","baseUrl":"服務位址","proxyUrl":"代理 URL","prefix":"前綴","models":"模型數","headers":"請求標頭數","authIndex":"Auth Index","excludedModels":"排除模型數","apiKeyEntries":"金鑰條目數"}},"form":{"createEyebrow":"新增","editEyebrow":"編輯","name":"名稱","apiKey":"API 金鑰","apiKeyCreatePlaceholder":"輸入 API 金鑰","apiKeyEditPlaceholder":"留空表示不修改","baseUrl":"服務位址","baseUrlRequiredHint":"此提供商需要填寫服務位址","proxyUrl":"代理 URL","prefix":"前綴","priority":"優先級","weight":"調度權重","weightHint":"預設 1 · ≤ 0 時不參與 · 最大 1,000,000","disabled":"停用此條目","disabledHint":"停用後不會被閘道使用","websockets":"啟用 WebSockets","testModel":"測試模型","testModelClaudeHint":"僅用於連通性測試,不會被儲存","testModelAutoWith":"自動 · {{name}}","testModelAutoEmpty":"自動(尚未新增模型)","testModelCustom":"{{name}}(自訂)","modelsSection":"自訂模型","addModel":"新增模型","headersSection":"請求標頭","addHeader":"新增請求標頭","excludedSection":"排除模型","excludedDisabledNote":"「*」表示整個 provider 已停用,請改用上方的「已停用」開關。","cloakSection":"Cloak 設定","cloakMode":"模式","cloakStrict":"嚴格模式","cloakSensitiveWords":"敏感詞(每行一個)","apiKeyEntriesSection":"API 金鑰條目","apiKeyEntry":"金鑰 #{{index}}","addApiKeyEntry":"新增金鑰條目","showApiKey":"顯示金鑰","hideApiKey":"隱藏金鑰","disableCooling":"停用冷卻調度","disableCoolingHint":"僅對目前憑證或提供商停用失敗後的冷卻視窗","modelImage":"允許圖片端點","modelImageHint":"允許該模型用於 /v1/images/generations 和 /v1/images/edits","showAllEntries":"顯示全部({{count}})","showFewerEntries":"收起","proxyBadge":"代理","modelBadgeImage":"圖片","modelBadgeThinking":"Thinking","thinkingConfig":"思考能力","thinkingExistingHint":"修改思考等級會保留預算及其他未修改的設定。","thinkingLevels":{"none":"關閉思考","minimal":"最少","low":"低","medium":"中","high":"高","xhigh":"超高","max":"最大","auto":"自動"},"cloakCacheUserId":"快取 user_id","cloakCacheUserIdHint":"按 API key 複用 Claude cloak 產生的 user_id","fingerprintProfile":"請求指紋","fingerprintProfileDefault":"預設(由呼叫端控制)","fingerprintProfileClaudeCodeCli":"Claude Code CLI","fingerprintProfileHint":"預設保留呼叫端傳入的提示詞與請求標頭;也可選擇使用 Claude Code CLI 請求指紋。","validation":{"nameRequired":"名稱必填","apiKeyRequired":"至少填寫一個 API 金鑰","baseUrlRequired":"服務位址必填","weightInteger":"調度權重必須是整數","weightMax":"調度權重不能超過 {{max}}"}},"delete":{"title":"刪除資源","confirm":"確定要刪除 {{name}} 嗎?此操作不可復原。"},"toast":{"created":"建立成功","updated":"更新成功","deleted":"刪除成功","enabled":"已啟用","disabled":"已停用","toggleFailed":"更新狀態失敗"},"unsavedChanges":{"title":"確定捨棄未儲存的變更嗎?","message":"目前表單還有尚未儲存的變更,關閉後會遺失。","discard":"捨棄變更","keepEditing":"繼續編輯"},"connectivity":{"test":"測試","testAll":"全部測試","success":"連通","baseUrlRequired":"服務位址必填","endpointInvalid":"服務位址不合法","apiKeyRequired":"API 金鑰必填","modelRequired":"測試模型必填","timeout":"請求超過 {{seconds}} 秒","requestFailed":"請求失敗"},"discovery":{"openButton":"從端點拉取","searchPlaceholder":"搜尋模型","reload":"重新載入","loading":"正在載入模型…","empty":"端點未回傳任何模型","notLoaded":"點擊重新載入以取得模型","selectAll":"全選","clearAll":"清空選擇","selectedCount":"{{selected}} / {{total}}","alreadyAdded":"已新增","close":"關閉","apply":"套用 ({{count}})"},"toolbar":{"sortBy":"排序","sort":{"name":"名稱","priority":"優先級","recentSuccess":"近期成功數","directionAsc":"升序","directionDesc":"降序"},"filter":{"allModels":"全部模型","selectedModels":"{{selected}}/{{total}} 個模型","selectAll":"全選","clear":"清空","empty":"尚無已設定模型"}},"modelCatalog":{"notLoaded":"未載入"}}`),claude_reset:{retry_confirm:`使用原請求 ID 重試「{{name}}」結果未知的重置?可能已消耗一次重置。請在 10 分鐘內重試;請勿重新載入頁面或在其他分頁發起新請求。`,remaining:`剩餘重置次數`,title:`儲備重置次數`,scope:`使用有限的重置權益清除符合條件的 Claude 用量視窗。僅在確定要消耗一次重置時確認。復原僅限目前分頁和工作階段;結果未知時,請勿重新載入頁面或使用其他分頁。`,loading:`載入中…`,read_error:`無法讀取重置權益,未提交重置。`,blocked:`未提交重置:無法驗證資格、帳戶身分或工作階段。請重新整理後檢查。`,unknown:`結果未知,可能已消耗一次重置。請在 10 分鐘內使用相同請求 ID 重試,不要在其他位置發起新的重置。`,expired:`重試視窗已過期,目前工作階段已阻止進一步重置。請先檢查 Claude 帳戶狀態。`,retry:`重試同一請求`,empty:`沒有儲備重置權益。`,count:`剩餘 {{left}} / {{total}} 次重置`,ends:`到期:{{date}}`,use:`重置額度`,confirm:`確認重置`,confirm_text:`確定消耗一次重置,清除「{{name}}」符合條件的用量限制?重置次數有限。`,reset:`已重置用量限制。`,already_used:`該權益已使用。`,not_limited:`未重置:帳戶目前未達到限制。`,cooldown:`未重置:仍在冷卻期。`,ineligible:`此帳戶不符合資格。`,unavailable:`重置暫不可用。`,rate_limited:`請求過於頻繁。`,auth_error:`授權遭拒。`}},ol={common:{login:`Login`,logout:`Logout`,back:`Back`,cancel:`Cancel`,confirm:`Confirm`,leave:`Leave`,stay:`Stay`,save:`Save`,delete:`Delete`,edit:`Edit`,add:`Add`,update:`Update`,refresh:`Refresh`,close:`Close`,success:`Success`,error:`Error`,info:`Info`,warning:`Warning`,loading:`Loading...`,connecting:`Connecting...`,connected:`Connected`,disconnected:`Disconnected`,connecting_status:`Connecting`,connected_status:`Connected`,disconnected_status:`Disconnected`,yes:`Yes`,no:`No`,not_set:`Not set`,optional:`Optional`,required:`Required`,api_key:`Key`,base_url:`Address`,prefix:`Prefix`,proxy_url:`Proxy`,priority:`Priority`,alias:`Alias`,failure:`Failure`,unknown_error:`Unknown error`,quota_update_required:`Please update the CPA version or check for updates`,quota_check_credential:`Please check the credential status`,copy:`Copy`,expand:`Expand`,collapse:`Collapse`,status:`Status`,action:`Action`,custom_headers_label:`Custom Headers`,custom_headers_hint:`Optional HTTP headers to send with the request. Leave blank to remove.`,custom_headers_add:`Add Header`,custom_headers_key_placeholder:`Header name, e.g. X-Custom-Header`,custom_headers_value_placeholder:`Header value`,model_name_placeholder:`Model name, e.g. claude-3-5-sonnet-20241022`,model_alias_placeholder:`Model alias (optional)`,invalid_provider_index:`Invalid provider index.`,unsaved_changes_title:`Unsaved changes`,unsaved_changes_message:`You have unsaved changes. Leaving now will discard them. Do you want to leave?`},title:{login:`CLI Proxy API Management Center`,abbr:`CPAMC`},splash:{title:`CLI Proxy API`,subtitle:`Management Center`},login:{subtitle:`Connect to CLI Proxy API v8 or later`,connection_current:`Current URL`,connection_auto_hint:`The system will automatically use the current URL for connection`,custom_connection_label:`Custom Connection URL:`,custom_connection_placeholder:`Eg: https://example.com:8317`,custom_connection_hint:`By default the current URL is used. Override it here if needed.`,remember_password_label:`Remember password`,management_key_label:`Management Key:`,management_key_placeholder:`Enter the management key`,submit_button:`Login`,submitting:`Connecting...`,error_backend_detail:`Backend response`,error_required:`Please fill in complete connection information`,error_invalid:`Connection failed, please check the server address, Management API, and management key`,error_network:`Network connection failed, please check your network or server address`,error_timeout:`Connection timed out, server not responding`,error_unauthorized:`Authentication failed, management key is missing or invalid`,error_forbidden:`Access denied, remote management is disabled, the management key is not configured, or this IP is temporarily banned`,error_not_found:`v8 Management API not found. Check the server address and upgrade CLIProxyAPI to v8 or later; v0 is not supported.`,error_legacy_backend:`This backend accepts v0 Management API but does not provide v8. Upgrade CLIProxyAPI to v8 or later to use this management page.`,error_server:`Backend failed while handling the management request, check the server logs`,error_cors:`Cross-origin request blocked, please check server configuration`,error_ssl:`SSL/TLS certificate verification failed`},header:{refresh_all:`Refresh All`,logout:`Logout`},connection:{status:`Connection Status:`},nav:{dashboard:`Dashboard`,quick_start:`Quick Start`,ai_providers:`AI Providers`,auth_files:`Auth Files`,oauth:`OAuth Login`,quota_management:`Quota Management`,plugins:`Plugins`,plugin_store:`Plugin Store`,config_management:`Config Panel`,logs:`Logs Viewer`,system_info:`Management Center Info`},nav_groups:{operate:`Operate`,gateway:`Gateway`,observe:`Observe`,plugin_pages:`Plugins`,control:`Control`},nav_meta:{dashboard:`Operations overview`,quick_start:`APIKEY.FUN setup`,ai_providers:`Upstream model routing`,auth_files:`Auth files & credentials`,oauth:`OAuth authorization`,quota_management:`API keys & limits`,plugins:`Plugin toggles & config`,plugin_store:`Discover & install plugins`,logs:`Request tracing`,config_management:`Gateway configuration`,system_info:`Runtime & diagnostics`},dashboard:{hero_verdict_good:`All systems steady`,hero_verdict_warning:`Minor turbulence`,hero_verdict_critical:`Needs attention`,hero_verdict_idle:`Quiet for now`,hero_verdict_offline:`Waiting to connect`,hero_verdict_connecting:`Connecting`,hero_period:`.`,hero_requests_label:`Requests handled`,hero_live:`Live`,hero_window_meta:`Rolling {{window}} window · 10-minute buckets`,hero_spark_label:`Request volume over the last {{window}}`,cta_manage_providers:`Manage providers`,cta_inspect_logs:`Inspect logs`,stats_aria:`Key metrics`,success_rate:`Success rate`,stat_success_hint:`Across {{total}} requests in the window`,stat_credentials:`Credentials`,stat_credentials_hint:`{{active}} active · {{disabled}} not serving`,stat_credentials_empty:`No credential files found`,stat_provider_keys:`Provider keys`,stat_provider_keys_hint:`API keys configured across all brands`,stat_models:`Models`,stat_models_hint:`Served through the proxy endpoint`,traffic_eyebrow:`Live traffic`,traffic_title:`Throughput, ten minutes at a time`,traffic_description:`Success and failure counts per 10-minute bucket across the last {{window}}. Hover a column for its exact split.`,traffic_table:`Data table`,traffic_table_window:`Window`,traffic_chart_summary:`{{total}} requests over the last {{minutes}} minutes: {{success}} succeeded, {{failed}} failed.`,traffic_unavailable:`No traffic recorded yet`,traffic_unavailable_hint:`Counters appear once the proxy has served its first request.`,fleet_eyebrow:`Fleet`,fleet_title:`Every provider, side by side`,fleet_description:`Volume and success rate per provider over the same window.`,fleet_empty:`No provider traffic recorded yet.`,fleet_credentials:`Credentials: {{value}}`,fleet_spark_label:`{{provider}} request volume`,fleet_requests:`requests`,provider_unknown:`Unattributed`,health_eyebrow:`Health`,health_title:`Credential status`,health_active:`Active`,health_unavailable:`Unavailable`,health_disabled:`Disabled`,health_by_type:`By provider`,health_empty:`No credential files found.`,health_link:`Open auth files`,runtime_eyebrow:`Runtime`,runtime_title:`Configuration at a glance`,runtime_routing:`Routing strategy`,runtime_retry:`Request retry`,runtime_management_keys:`Management keys`,runtime_version:`Server version`,runtime_build:`Build date`,runtime_proxy:`Upstream proxy`,runtime_debug:`Debug`,runtime_file_logging:`File logging`,runtime_request_log:`Request log`,runtime_ws_auth:`WebSocket auth`,runtime_model_prefix:`Model prefix`,runtime_link:`Edit configuration`,cta_eyebrow:`Next`,cta_title:`Where to go from here`,cta_providers_desc:`Add API keys, set priorities, and test brands.`,cta_auth_files_desc:`Upload, refresh, and disable OAuth credentials.`,cta_config_desc:`Tune routing, retries, logging, and access.`,cta_quota_desc:`Check remaining quota per credential.`,cta_logs_desc:`Tail requests and download error reports.`,cta_system_desc:`Version details and management center info.`,window_m:`{{minutes}}m`,window_h:`{{hours}}h`,window_hm:`{{hours}}h {{minutes}}m`},basic_settings:{debug_enable:`Enable Debug Mode`,proxy_url_label:`Proxy URL:`,retry_count_label:`Retry Count:`,logging_to_file_enable:`Enable logging to file`,request_log_title:`Request Logging`,request_log_enable:`Enable request logging`,request_log_warning:`Keep this off unless you need detailed troubleshooting.`,ws_auth_enable:`Require auth for /ws/*`,routing_strategy_round_robin:`round-robin (cycle)`,routing_strategy_weighted_round_robin:`weighted-round-robin (weighted cycle)`,routing_strategy_fill_first:`fill-first (prioritize)`},auth_files:JSON.parse(`{"title":"Auth Files Management","meta_total":"{{count}} credentials","meta_active":"{{count}} active","meta_problem":"{{count}} problem","empty_title":"No credentials yet","empty_desc":"Upload an auth file or connect a provider with OAuth to get started.","empty_oauth_link":"Connect via OAuth","no_results_clear":"Clear filters","title_section":"Auth Files","upload_button":"Upload File","delete_all_button":"Delete All","search_empty_title":"No matching files","search_empty_desc":"Try changing the filters or clearing the search box.","file_size":"Size","file_modified":"Modified","card_select":"Select credential {{name}}","card_toggle":"Enable credential {{name}}","card_requests":"Requests","cooldown_unknown":"Cooldown state unknown","cooldown_models_one":"{{count}} model cooling down","cooldown_models_other":"{{count}} models cooling down","cooldown_credential":"Credential-wide cooldown","cooldown_credential_and_models_one":"Credential + {{count}} model cooling down","cooldown_credential_and_models_other":"Credential + {{count}} models cooling down","cooldown_scope_credential":"Entire credential","cooldown_earliest":"Earliest end in ~{{time}}","cooldown_elapsed":"Cooldown timers elapsed","cooldown_timer_elapsed":"Timer elapsed","cooldown_refresh_hint":"Refresh list to confirm","cooldown_seconds":"{{count}}s","cooldown_minutes":"{{count}}m","cooldown_hours":"{{count}}h","cooldown_http_status":"Upstream HTTP {{status}}","cooldown_backoff":"Backoff level {{level}}","cooldown_deadline":"Timer deadline","cooldown_observed":"Snapshot at","cooldown_note":"Local scheduling snapshot; remaining times are estimates. Expiry does not guarantee availability, quota recovery, or an automatic retry. Model names are internal state keys; backoff levels are not failure counts.","cooldown_reset_button":"Clear cooldown","cooldown_reset_hint":"Clear this credential's local routing cooldown","cooldown_reset_title":"Clear credential cooldown?","cooldown_reset_confirm":"Clear the local routing cooldown for “{{name}}”? This may make the credential eligible for another request immediately. It does not restore upstream quota.","cooldown_reset_success":"Cooldown cleared for {{name}}.","cooldown_reset_failed":"Could not clear cooldown for {{name}}: {{message}}","cooldown_reason_quota":"Quota restriction","cooldown_reason_credential_quota":"Credential quota restriction","cooldown_reason_cloudflare_challenge":"Cloudflare challenge","cooldown_reason_invalid_grant":"Invalid grant","cooldown_reason_unauthorized":"Unauthorized","cooldown_reason_payment_required":"Access restricted (402/403; not a billing diagnosis)","cooldown_reason_not_found":"Resource not found","cooldown_reason_model_not_supported":"Model not supported","cooldown_reason_transient_error":"Transient upstream error","cooldown_reason_unknown":"Other or unknown reason","health_status_label":"Health","health_status_healthy":"Healthy","health_status_warning":"Warning","health_status_disabled":"Disabled","download_button":"Download","refresh_all_button":"Refresh all credentials","refresh_all_confirm":"Refresh all eligible credentials on the server, not just the current filtered results. The backend skips disabled or ineligible credentials. This does not reload the list or reset quotas and may take several minutes. Continue?","refresh_all_results":"Credential refresh results","refresh_all_summary":"{{success}} refreshed, {{failed}} failed.","refresh_all_empty":"No credentials were eligible for refresh.","refresh_all_failed":"Could not obtain complete refresh results: {{message}}. Some credentials may already have refreshed. Check the list before retrying.","refresh_result_success":"Refreshed","refresh_result_failed":"Refresh failed","manual_refresh_button":"Refresh OAuth credential","manual_refresh_requested":"Credential refresh requested for \\"{{name}}\\"","manual_refresh_failed":"Failed to request credential refresh for \\"{{name}}\\": {{message}}","delete_button":"Delete","delete_confirm":"Are you sure you want to delete file","delete_all_confirm":"Are you sure you want to delete all auth files? This operation cannot be undone!","delete_filtered_confirm":"Are you sure you want to delete all {{type}} auth files? This operation cannot be undone!","delete_problem_button":"Delete Problem Files","delete_problem_button_with_type":"Delete Problematic {{type}} Files","delete_problem_confirm":"Are you sure you want to delete all problematic auth files? This operation cannot be undone!","delete_problem_filtered_confirm":"Are you sure you want to delete all problematic {{type}} auth files? This operation cannot be undone!","delete_filtered_result_button":"Delete filtered results","delete_filtered_result_confirm":"Are you sure you want to delete auth files in the current filtered results? This operation cannot be undone!","upload_error_json":"Only JSON files are allowed","upload_error_size":"File size cannot exceed {{maxSize}}","upload_success":"File uploaded successfully","download_success":"File downloaded successfully","delete_success":"File deleted successfully","delete_all_success":"Successfully deleted","delete_filtered_success":"Deleted {{count}} {{type}} auth files successfully","delete_filtered_partial":"{{type}} auth files deletion finished: {{success}} succeeded, {{failed}} failed","delete_filtered_none":"No deletable auth files under the current filter ({{type}})","delete_problem_success":"Deleted {{count}} problematic auth files successfully","delete_problem_filtered_success":"Deleted {{count}} problematic {{type}} auth files successfully","delete_problem_partial":"Problematic auth files deletion finished: {{success}} succeeded, {{failed}} failed","delete_problem_filtered_partial":"Problematic {{type}} auth files deletion finished: {{success}} succeeded, {{failed}} failed","delete_problem_none":"No deletable problematic auth files under the current filter","delete_problem_filtered_none":"No deletable problematic {{type}} auth files under the current filter","delete_filtered_result_success":"Deleted {{count}} auth files from the filtered results successfully","delete_filtered_result_partial":"Filtered result deletion finished: {{success}} succeeded, {{failed}} failed","delete_filtered_result_none":"No deletable auth files in the current filtered results","pagination_prev":"Previous","pagination_next":"Next","pagination_info":"Page {{current}} / {{total}} · {{count}} files","search_label":"Search credentials by name, account, type, provider, or error message","search_placeholder":"Search name, account, type, provider, or error (403, 429, invalid). Use * as a wildcard","problem_filter_label":"Status Filter","problem_filter_all":"All","problem_filter_enabled":"Enabled","problem_filter_problem":"Problem","problem_filter_disabled":"Disabled","display_options_label":"Display options","compact_mode_label":"Compact mode","sort_label":"Sort","sort_default":"Default","sort_az":"A-Z Name","sort_priority":"Priority","priority_display":"Priority","weight_display":"WRR weight","page_size_label":"Per page","filter_all":"All","filter_qwen":"Qwen","filter_gemini":"Gemini","filter_kimi":"Kimi","filter_aistudio":"AIStudio","filter_claude":"Claude","filter_codex":"Codex","filter_meta":"Muse (Meta)","filter_devin":"Devin","filter_antigravity":"Antigravity","filter_xai":"xAI","filter_iflow":"iFlow","filter_vertex":"Vertex","filter_empty":"Empty","filter_unknown":"Other","type_virtual":"Virtual auth file","models_button":"Models","models_title":"Supported models","models_loading":"Loading model list...","models_empty":"No available models for this credential","models_empty_desc":"This credential may not be loaded by the server yet, or no models are bound to it.","models_unsupported":"This feature is not supported in the current version","models_unsupported_desc":"Please update CLI Proxy API to the latest version and try again","models_excluded_badge":"Disabled","models_excluded_hint":"This OAuth model is disabled","status_toggle_label":"Enabled","status_enabled_success":"\\"{{name}}\\" enabled","status_disabled_success":"\\"{{name}}\\" disabled","batch_status_success":"{{count}} files updated successfully","batch_status_partial":"{{success}} updated, {{failed}} failed","batch_delete_title":"Delete Selected Files","batch_delete_confirm":"Are you sure you want to delete {{count}} files?","batch_selected":"{{count}} selected","batch_toolbar_label":"Batch actions","batch_select_all":"Select All","batch_select_page":"Select page","batch_select_filtered":"Select filtered","batch_invert_page":"Invert page","batch_deselect":"Deselect","batch_download":"Download selected","batch_download_success":"Started downloading {{count}} files","batch_download_partial":"Download finished: {{success}} succeeded, {{failed}} failed","batch_enable":"Enable","batch_disable":"Disable","prefix_proxy_button":"Auth File Details / Edit","prefix_proxy_loading":"Loading auth file...","prefix_proxy_info_label":"Auth file info (info)","prefix_proxy_source_label":"Auth file JSON (preview)","prefix_proxy_invalid_content_label":"Downloaded content (truncated)","prefix_label":"Prefix (prefix)","proxy_url_label":"Proxy URL (proxy_url)","proxy_url_placeholder":"socks5://username:password@proxy_ip:port/","priority_label":"Priority (priority)","priority_placeholder":"e.g. 10 or -1","priority_hint":"Integers only. Invalid values are ignored. Larger value means higher priority.","weight_label":"Scheduling weight (weight)","weight_tooltip":"Defaults to 1. Values at or below 0 exclude this credential from weighted scheduling; maximum 1,000,000. After entering a value, enable weighted round robin for it to take effect.","weight_hint":"Defaults to 1. Values at or below 0 exclude this credential from weighted scheduling; maximum 1,000,000. After entering a value, enable <settingsLink>weighted round robin</settingsLink> for it to take effect.","weight_invalid_integer":"Weight must be an integer.","weight_invalid_max":"Weight cannot exceed 1,000,000.","disable_cooling_label":"Disable exponential cooldown (disable_cooling)","disable_cooling_hint":"Skip failure cooldown and exponential backoff only for this credential; other credentials are unaffected.","websockets_label":"WebSockets (websockets)","websockets_hint":"Enable Responses API websocket transport for this credential.","using_api_label":"Use official API (using_api)","using_api_hint":"Use the official xAI API when enabled; use Grok CLI chat-proxy when disabled.","policy_alias_name":"Alias","policy_alias_display_name":"Display name","policy_alias_fork":"Keep the original model in listings","policy_alias_force_mapping":"Rewrite response model to the alias","policy_unsupported":"Existing data cannot be edited with this form and will be preserved. Select Inherit to clear it, or replace it to start a new list.","policy_replace":"Replace existing data","policy_retry_label":"Credential request retries","policy_inherit":"Inherit","policy_custom":"Custom","policy_retry_count":"Retry count","policy_retry_hint":"Inherit uses the global request-retry setting. Custom 0 explicitly disables request retries for this credential.","policy_aliases_label":"Account model aliases","policy_aliases_hint":"Account aliases are checked first; unmatched aliases fall back to channel aliases. Inherit or an empty list clears only account aliases.","policy_rules_label":"Account error rules","policy_rules_hint":"Custom rules take precedence in list order. Inherit or an empty list uses inherited rules; it does not disable them. Regex patterns use Go syntax.","policy_retry_invalid":"Enter a non-negative safe integer, or select Inherit.","policy_aliases_invalid":"Enter a non-empty model name and alias for each new or edited row.","policy_rules_invalid":"Complete each edited rule with a positive status, an action and at least one non-empty match condition.","note_label":"Note","note_placeholder":"Enter a note, e.g.: John's account","note_hint":"Optional. Used to describe the purpose or owner of this credential; leave empty to omit.","excluded_models_label":"Excluded models (excluded_models)","headers_label":"Custom Headers (headers)","headers_placeholder":"{\\n \\"Header-Name\\": \\"value\\"\\n}","headers_hint":"Enter custom HTTP headers as a JSON object, e.g., {\\"X-My-Header\\": \\"value\\"}","headers_invalid_json":"Custom headers must be valid JSON.","headers_invalid_object":"Custom headers must be a JSON object.","headers_invalid_value":"Each custom header value must be a string.","prefix_proxy_invalid_json":"This auth file is not a JSON object, so fields cannot be edited.","prefix_proxy_html_challenge":"Downloaded content is an HTML challenge page, not an auth JSON object. Re-authenticate or replace this auth file before editing fields.","prefix_proxy_saved_success":"Updated auth file \\"{{name}}\\" successfully","quota_refresh_single":"Refresh quota","quota_refresh_hint":"Refresh quota only for this credential","quota_refresh_success":"Quota refreshed for \\"{{name}}\\"","quota_refresh_failed":"Failed to refresh quota for \\"{{name}}\\": {{message}}"}`),antigravity_subscription:{plan_unknown:`Unknown`,plan_free:`Free`,plan_pro:`Pro`,plan_ultra:`Ultra`,plan_ultra_lite:`Ultra Lite`},antigravity_quota:{title:`Antigravity Quota`,empty_title:`No Antigravity Auth Files`,empty_desc:`Upload an Antigravity credential to view remaining quota.`,idle:`Click here to refresh quota`,loading:`Loading quota...`,load_failed:`Failed to load quota: {{message}}`,missing_auth_index:`Auth file missing auth_index`,missing_project_id:`Antigravity credential missing project_id. Re-login or refresh the credential to discover the project.`,empty_models:`No quota data available`,plan_label:`Plan`,group_gemini_models:`Gemini models`,group_claude_gpt_models:`Claude and GPT models`,group_models_description:`Models in this group: {{models}}`,weekly_limit:`Weekly limit`,daily_limit:`Daily limit`,five_hour_limit:`5-hour limit`,monthly_limit:`Monthly limit`,quota_available:`Quota available`,remaining_percent:`{{percent}}% remaining`,refreshes_in:`Refreshes in {{duration}}`,refresh_available:`Refresh available`,duration_day_hour:`{{days}}d {{hours}}h`,duration_hour_minute:`{{hours}}h {{minutes}}m`,duration_minute:`{{minutes}}m`,duration_less_than_minute:`<1m`,refresh_button:`Refresh Quota`,fetch_all:`Fetch All`},claude_quota:{title:`Claude Quota`,empty_title:`No Claude OAuth Files`,empty_desc:`Log in with Claude OAuth to view quota.`,idle:`Click here to refresh quota`,loading:`Loading quota...`,load_failed:`Failed to load quota: {{message}}`,missing_auth_index:`Auth file missing auth_index`,empty_windows:`No quota data available`,refresh_button:`Refresh Quota`,fetch_all:`Fetch All`,five_hour:`5-hour limit`,seven_day:`7-day limit`,seven_day_oauth_apps:`7-day OAuth apps`,seven_day_opus:`7-day Opus`,seven_day_sonnet:`7-day Sonnet`,seven_day_cowork:`7-day Cowork`,iguana_necktie:`Iguana Necktie`,seven_day_fable:`7-day Fable 5`,extra_usage_label:`Extra Usage`,plan_label:`Plan`,plan_unknown:`Unknown`,plan_free:`Free`,plan_pro:`Pro`,plan_max:`Max`,plan_max5:`Max 5x`,plan_max20:`Max 20x`,plan_team:`Team`},codex_quota:{title:`Codex Quota`,empty_title:`No Codex Auth Files`,empty_desc:`Upload a Codex credential to view quota.`,idle:`Click here to refresh quota`,loading:`Loading quota...`,load_failed:`Failed to load quota: {{message}}`,missing_auth_index:`Auth file missing auth_index`,missing_account_id:`Codex credential missing ChatGPT account ID`,empty_windows:`No quota data available`,no_access:`This credential has no Codex access (plan: free).`,refresh_button:`Refresh Quota`,fetch_all:`Fetch All`,primary_window:`5-hour limit`,secondary_window:`Weekly limit`,team_secondary_window:`Monthly limit`,code_review_primary_window:`Code review 5-hour limit`,code_review_secondary_window:`Code review weekly limit`,code_review_team_secondary_window:`Code review monthly limit`,additional_primary_window:`{{name}} 5-hour limit`,additional_secondary_window:`{{name}} weekly limit`,additional_team_secondary_window:`{{name}} monthly limit`,plan_label:`Plan`,expires_label:`Renewal time`,credit_balance_label:`Credit balance`,credit_unlimited:`Unlimited`,reset_credits_label:`Manual resets`,reset_credits_expiry_label:`Manual reset expiry ({{timezone}})`,reset_credit_number:`Reset {{index}}`,reset_credits_expiry_failed:`Failed to load manual reset expiry: {{message}}`,reset_credits_invalid_payload:`Invalid manual reset expiry response`,reset_button:`Reset quota`,reset_confirm_title:`Reset Codex quota`,reset_confirm_message:`This will consume 1 manual reset to reset the Codex quota for "{{name}}". Continue?`,reset_confirm_button:`Reset quota`,reset_success:`Reset Codex quota for "{{name}}"`,reset_failed:`Failed to reset Codex quota for "{{name}}": {{message}}`,plan_plus:`Plus`,plan_team:`Team`,plan_free:`Free`,plan_pro:`Pro 200`,plan_prolite:`Pro 100`,plan_business_premium:`Business Premium`},devin_quota:{daily:`Daily remaining`,weekly:`Weekly remaining`,plan_label:`Plan`,plan_end:`Subscription ends`,unavailable:`Unavailable`,reset_unknown:`Reset time unavailable`,observed_at:`Quota observed: {{time}}`,observed_unknown:`Quota observation time unavailable`,missing_identity:`The credential name or auth index is missing. Reload the credential list.`,stale_request:`The connection or credential changed. Please retry.`,empty_data:`Devin returned no usable quota data.`,loading:`Querying Devin quota…`,idle:`Click to query Devin quota`,load_failed:`Failed to query quota: {{message}}`,empty_title:`No Devin credentials`,empty_desc:`Upload a Devin credential file or sign in using the backend CLI to query quota.`},meta_quota:{title:`Muse (Meta) Quota`,empty_title:`No Muse credentials`,empty_desc:`Sign in with Muse OAuth or upload a Meta credential file to query quota.`,idle:`Click to query Muse quota`,loading:`Querying Muse quota…`,load_failed:`Failed to query quota: {{message}}`,missing_auth_index:`Auth file missing auth_index`,empty_data:`Quota unknown. You may not have made a model request yet.`,invalid_response:`Muse returned an invalid quota response.`,request_failed:`Muse quota request failed. Check that the DCA credential is valid.`,missing_file:`Quota requires a downloadable Meta authentication file.`,missing_dca_token:`The authentication file has no valid dca_token. Sign in with Muse OAuth again.`,invalid_auth_file:`The downloaded authentication file is not valid JSON.`,download_failed:`Could not download the authentication file for quota lookup.`,stale_request:`The connection or credential changed. Please retry.`,plan:`Plan`,active:`Subscription active`,inactive:`Subscription inactive`,window:`Usage window`,window_duration:`{{minutes}}-minute window`,weekly:`Weekly quota`,unknown:`Unknown`,remaining:`{{percent}}% remaining`},kimi_quota:{title:`Kimi Quota`,empty_title:`No Kimi Auth Files`,empty_desc:`Upload a Kimi credential to view remaining quota.`,domain_unavailable:`Could not read the Kimi credential's domain. A downloadable, valid authentication file is required.`,stale_request:`The connection or credential changed. Please retry.`,idle:`Click here to refresh quota`,loading:`Loading quota...`,load_failed:`Failed to load quota: {{message}}`,missing_auth_index:`Auth file missing auth_index`,empty_data:`No quota data available`,refresh_button:`Refresh Quota`,fetch_all:`Fetch All`,weekly_limit:`Weekly limit`,monthly_limit:`Monthly limit`,limit_window:`{{duration}} limit`,limit_index:`Limit #{{index}}`,reset_hint:`resets in {{hint}}`},xai_quota:{title:`Grok Quota`,empty_title:`No xAI/Grok Auth Files`,empty_desc:`Log in with xAI OAuth to view Grok quota.`,idle:`Click here to refresh quota`,loading:`Loading quota...`,load_failed:`Failed to load quota: {{message}}`,missing_auth_index:`Auth file missing auth_index`,empty_data:`No quota data available`,refresh_button:`Refresh Quota`,fetch_all:`Fetch All`,weekly_limit:`Weekly limit`,monthly_credits:`Monthly credits`,used_percent:`Used {{percent}}`,usage_unavailable:`Usage unavailable from xAI`,reset_at:`Resets {{time}}`,product_usage:`{{product}} usage`,plan_label:`Plan`,resets_label:`Resets`,prepaid:`Prepaid`,plan_supergrok:`SuperGrok`,plan_supergrok_heavy:`SuperGrok Heavy`,plan_paid:`Paid`,paid_health:`Paid API chat is available. xAI does not expose quota totals for this OAuth credential.`,pay_as_you_go_label:`Pay as you go`,pay_as_you_go_enabled:`Enabled, cap {{cap}}`,pay_as_you_go_disabled:`Disabled`},vertex_import:{title:`Vertex JSON Login`,description:`Upload a Google service account JSON to store it as auth-dir/vertex-<project>.json using the same rules as the CLI vertex-import helper.`,location_label:`Region (optional)`,location_placeholder:`us-central1`,location_hint:`Leave empty to use the default region us-central1.`,file_label:`Service account key JSON`,file_hint:`Only Google Cloud service account key JSON files are accepted.`,file_placeholder:`No file selected`,choose_file:`Choose File`,import_button:`Import Vertex Credential`,file_required:`Select a .json credential file first`,success:`Vertex credential imported successfully`,result_title:`Credential saved`,result_project:`Project ID`,result_email:`Service account`,result_location:`Region`,result_file:`Persisted file`},oauth_excluded:{editor_description:`Choose which models a provider exposes using individual selections or wildcard rules.`,models_hint:`Expand the list to select models, or enter wildcard rules below.`,title:`OAuth Model Disablement`,description:`Per-provider model disablement is shown as cards; click a card to edit or delete. Wildcards * are supported and the scope follows the auth file filter.`,add:`Add Disablement`,add_title:`Add provider model disablement`,edit_title:`Edit model disablement for {{provider}}`,provider_label:`Provider`,provider_placeholder:`e.g. codex / openai`,provider_hint:`Defaults to the current filter; pick an existing provider or type a new name.`,models_label:`Models to disable`,save:`Save/Update`,save_success:`Model disablement updated`,save_failed:`Failed to update model disablement`,delete:`Delete Provider`,delete_confirm:`Delete model disablement for {{provider}}?`,delete_success:`Provider model disablement removed`,delete_failed:`Failed to delete model disablement`,no_models:`No disabled models configured`,model_count:`{{count}} models disabled`,list_empty_all:`No provider model disablement yet; click “Add Disablement” to create one.`,provider_required:`Please enter a provider first`,upgrade_required:`Current CPA version does not support OAuth model disablement. Please upgrade.`,upgrade_required_title:`Please upgrade CLI Proxy API`,upgrade_required_desc:`The current server version does not support fetching OAuth model disablement. Please upgrade to the latest CPA (CLI Proxy API) version and try again.`},excluded_models:{trigger_summary:`{{excluded}} excluded · {{available}} available`,trigger_summary_rules:`{{n}} rules`,trigger_empty:`No models excluded`,meter_aria:`{{excluded}} of {{total}} models excluded`,search_placeholder:`Search models…`,search_aria:`Search models to exclude`,list_aria:`Models`,no_results:`No model matches “{{query}}”`,catalog_loading:`Loading models…`,catalog_unavailable:`Model list unavailable — rules still apply.`,catalog_error:`Could not load models.`,catalog_retry:`Retry`,catalog_empty:`No models to list.`,footer_count:`{{excluded}} / {{total}} excluded`,select_all:`Exclude all`,clear:`Clear`,clear_aria:`Clear selected models (wildcard rules are kept)`,badge_wildcard:`By rule`,badge_unknown:`Not in list`,wildcard_reason:`Matched by rule {{rule}}`,wildcard_locked:`Excluded by rule {{rule}} — edit the rule below`,also_wildcard:`Also matched by {{rule}}`,chips_more:`+{{n}} more`,chip_remove:`Stop excluding {{rule}}`,rules_label:`Wildcard rules`,rules_placeholder:`One rule per line, e.g. gpt-5-*`,rules_hint:`* matches any characters. Matching is case-insensitive.`,rules_match_count:`matches {{n}} models`,rules_match_none:`matches no model in the list`,rules_reserved:`“*” disables the whole provider — use the Disabled switch instead`},oauth_model_alias:{editor_description:`Give provider models consistent names for use in your clients.`,edit_title:`Edit model aliases for {{provider}}`,mapping_hint:`Choose a source model, then enter the alias your clients will use.`,mapping_row:`Alias mapping {{number}}`,remove_mapping:`Delete alias mapping {{number}}`,title:`OAuth Model Aliases`,add:`Add Alias`,add_title:`Add provider model aliases`,provider_label:`Provider`,provider_placeholder:`e.g. codex / vertex`,provider_hint:`Defaults to the current filter; pick an existing provider or type a new name.`,model_source_loading:`Loading models...`,model_source_unsupported:`The current CPA version does not support fetching model lists (manual input still works).`,model_source_loaded:`{{count}} models loaded. Use the dropdown in 'Source model name', or type custom values. Saving an empty list removes that provider. Enable 'Keep original' to keep the original name while adding the alias.`,alias_label:`Model aliases`,alias_name_placeholder:`Source model name`,alias_placeholder:`Alias (required)`,duplicate_alias:`Each alias must be unique for this provider.`,alias_fork_label:`Keep original`,add_alias:`Add alias`,save:`Save/Update`,save_success:`Model aliases updated`,save_failed:`Failed to update model aliases`,delete:`Delete Provider`,delete_confirm:`Delete model aliases for {{provider}}?`,delete_link_title:`Unlink mapping`,delete_link_confirm:`Unlink mapping from <code>{{sourceModel}}</code> ({{provider}}) to alias <code>{{alias}}</code>?`,delete_alias_title:`Delete Alias`,delete_alias_confirm:`Delete alias <code>{{alias}}</code> and unmap all associated models?`,delete_success:`Model aliases removed`,delete_failed:`Failed to delete model aliases`,no_models:`No model aliases`,model_count:`{{count}} aliases`,list_empty_all:`No model aliases yet—use “Add Alias” to create one.`,chart_title:`All mappings overview`,diagram_providers:`Providers`,diagram_source_models:`Source Models`,diagram_aliases:`Aliases`,diagram_expand:`Expand`,diagram_collapse:`Collapse`,diagram_add_alias:`Add Alias`,diagram_rename:`Rename`,diagram_rename_alias_title:`Rename alias`,diagram_rename_alias_label:`New alias name`,diagram_rename_placeholder:`Enter alias name...`,diagram_delete_link:`Unlink from {{provider}} / {{name}}`,diagram_delete_alias:`Delete alias`,diagram_please_enter_alias:`Please enter an alias name.`,diagram_alias_exists:`This alias already exists.`,diagram_add_alias_title:`Add alias`,diagram_add_alias_label:`Alias name`,diagram_add_placeholder:`Enter new alias name...`,diagram_rename_btn:`Rename`,diagram_add_btn:`Add`,diagram_settings:`Settings`,diagram_settings_title:`Alias settings — {{alias}}`,diagram_settings_source_title:`Source model settings`,diagram_settings_empty:`No mappings for this alias yet.`,diagram_tap_hint:`On touch devices: tap a source model, then tap an alias to link.`,view_mode_diagram:`Diagram`,view_mode_list:`List`,provider_required:`Please enter a provider first`,upgrade_required:`This feature requires a newer CLI Proxy API (CPA) version. Please upgrade.`,upgrade_required_title:`Please upgrade CLI Proxy API`,upgrade_required_desc:`The current server does not support the OAuth model aliases API. Please upgrade to the latest CLI Proxy API (CPA) version.`},auth_login:{devin_oauth_cancel:`Cancel Devin Login`,devin_oauth_cancelled:`Devin login cancelled.`,devin_oauth_cancel_error:`Failed to cancel Devin login:`,devin_oauth_retry_hint:`The server may still be waiting for authorization. Cancel this login before starting again.`,devin_oauth_title:`Devin OAuth`,devin_oauth_button:`Start Devin Login`,devin_oauth_hint:`Sign in to Devin / Cognition through browser OAuth to save an authentication file. Requires CLI Proxy API v7.3.1 or later; complete authorization within five minutes.`,devin_oauth_url_label:`Authorization URL:`,devin_copy_link:`Copy Link`,devin_open_link:`Open Link`,devin_oauth_status_waiting:`Waiting for Devin authentication...`,devin_oauth_status_success:`Devin authentication successful!`,devin_oauth_status_error:`Devin authentication failed:`,devin_oauth_start_error:`Failed to start Devin OAuth:`,devin_callback_hint:`Remote server: copy the complete final URL ending in /devin/callback?… from the browser address bar, even if the loopback page cannot be reached. Keep its port, http/https, code and state unchanged. Submit the URL here, then wait for authentication to finish.`,devin_callback_placeholder:`http://127.0.0.1:<server-port>/devin/callback?code=...&state=...`,devin_callback_invalid:`Paste the complete http/https callback URL containing state and an authorization code or error.`,devin_callback_state_mismatch:`This callback does not belong to the current Devin login. Use the final URL from this attempt; do not reuse an old callback.`,recommended_provider_section:`Recommended provider`,recommended_provider_badge:`Recommended provider`,other_oauth_providers:`Other OAuth providers`,other_login_methods:`Other login methods`,codex_oauth_title:`Codex OAuth`,codex_oauth_button:`Start Codex Login`,codex_oauth_hint:`Login to Codex service through OAuth flow, automatically obtain and save authentication files.`,codex_oauth_url_label:`Authorization URL:`,codex_open_link:`Open Link`,codex_copy_link:`Copy Link`,codex_oauth_status_waiting:`Waiting for authentication...`,codex_oauth_status_success:`Authentication successful!`,codex_oauth_status_error:`Authentication failed:`,codex_oauth_start_error:`Failed to start Codex OAuth:`,codex_oauth_polling_error:`Failed to check authentication status:`,anthropic_oauth_title:`Anthropic OAuth`,anthropic_oauth_button:`Start Anthropic Login`,anthropic_oauth_hint:`Login to Anthropic (Claude) service through OAuth flow, automatically obtain and save authentication files.`,anthropic_oauth_url_label:`Authorization URL:`,anthropic_open_link:`Open Link`,anthropic_copy_link:`Copy Link`,anthropic_oauth_status_waiting:`Waiting for authentication...`,anthropic_oauth_status_success:`Authentication successful!`,anthropic_oauth_status_error:`Authentication failed:`,anthropic_oauth_start_error:`Failed to start Anthropic OAuth:`,anthropic_oauth_polling_error:`Failed to check authentication status:`,antigravity_oauth_title:`Antigravity OAuth`,antigravity_oauth_button:`Start Antigravity Login`,antigravity_oauth_hint:`Login to Antigravity service (Google account) through OAuth flow, automatically obtain and save authentication files.`,antigravity_oauth_url_label:`Authorization URL:`,antigravity_open_link:`Open Link`,antigravity_copy_link:`Copy Link`,antigravity_oauth_status_waiting:`Waiting for authentication...`,antigravity_oauth_status_success:`Authentication successful!`,antigravity_oauth_status_error:`Authentication failed:`,antigravity_oauth_start_error:`Failed to start Antigravity OAuth:`,antigravity_oauth_polling_error:`Failed to check authentication status:`,meta_oauth_title:`Muse (Meta) OAuth`,meta_oauth_button:`Log in with Muse`,meta_oauth_hint:`Open the authorization link and enter the device code if requested. Authentication files are saved automatically after authorization.`,meta_oauth_url_label:`Authorization URL:`,meta_open_link:`Open Link`,meta_copy_link:`Copy Link`,meta_oauth_status_waiting:`Waiting for authentication...`,meta_oauth_status_success:`Authentication successful!`,meta_oauth_status_error:`Authentication failed:`,meta_oauth_start_error:`Failed to start Muse OAuth:`,meta_oauth_polling_error:`Failed to check authentication status:`,device_code_label:`Device code:`,device_code_copy:`Copy device code`,kimi_ai_oauth_title:`Kimi International (kimi.ai)`,kimi_ai_oauth_button:`Log in to Kimi International`,kimi_ai_oauth_hint:`Authorize your kimi.ai international account via device login. A separate kimi-ai authentication file is saved automatically. China and international accounts are not interchangeable.`,kimi_ai_oauth_url_label:`Authorization URL:`,kimi_ai_open_link:`Open link`,kimi_ai_copy_link:`Copy link`,kimi_ai_oauth_status_waiting:`Waiting for authentication...`,kimi_ai_oauth_status_success:`Authentication successful!`,kimi_ai_oauth_status_error:`Authentication failed:`,kimi_ai_oauth_start_error:`Failed to start Kimi International login:`,kimi_ai_oauth_polling_error:`Failed to check authentication status:`,kimi_oauth_title:`Kimi China (kimi.com)`,kimi_oauth_button:`Log in to Kimi China`,kimi_sign_up_button:`Sign Up Now`,kimi_oauth_hint:`Authorize your kimi.com China account via device login. Authentication files are saved automatically. International accounts must use the separate kimi.ai login.`,kimi_oauth_url_label:`Authorization URL:`,kimi_open_link:`Open Link`,kimi_copy_link:`Copy Link`,kimi_oauth_status_waiting:`Waiting for authentication...`,kimi_oauth_status_success:`Authentication successful!`,kimi_oauth_status_error:`Authentication failed:`,kimi_oauth_start_error:`Failed to start Kimi OAuth:`,kimi_oauth_polling_error:`Failed to check authentication status:`,xai_oauth_title:`xAI OAuth`,xai_oauth_button:`Start xAI Login`,xai_oauth_hint:`Login to xAI Grok through OAuth flow, automatically obtain and save authentication files.`,xai_oauth_url_label:`Authorization URL:`,xai_open_link:`Open Link`,xai_copy_link:`Copy Link`,xai_oauth_status_waiting:`Waiting for authentication...`,xai_oauth_status_success:`Authentication successful!`,xai_oauth_status_error:`Authentication failed:`,xai_oauth_start_error:`Failed to start xAI OAuth:`,xai_oauth_polling_error:`Failed to check authentication status:`,plugin_oauth_title:`{{name}} OAuth`,plugin_oauth_button:`Start {{name}} Login`,plugin_oauth_hint:`Log in to {{name}} through the plugin OAuth flow, automatically obtain and save authentication files.`,plugin_oauth_url_label:`Authorization URL:`,plugin_open_link:`Open Link`,plugin_copy_link:`Copy Link`,plugin_oauth_status_waiting:`Waiting for authentication...`,plugin_oauth_status_success:`Authentication successful!`,plugin_oauth_status_error:`Authentication failed:`,plugin_oauth_start_error:`Failed to start plugin OAuth:`,xai_callback_label:`Callback URL or code`,xai_callback_placeholder:`Paste the code shown by Grok, or the full callback URL`,xai_callback_hint:`Grok may only show a code on the page. Paste that code directly and the app will submit it as http://127.0.0.1:56121/callback?... automatically.`,xai_callback_required:`Please paste the code shown by Grok or the full callback URL first.`,xai_callback_state_missing:`Missing the state for this xAI login. Start xAI login again, then submit the code.`,oauth_callback_label:`Callback URL`,oauth_callback_placeholder:`http://localhost:1455/auth/callback?code=...&state=...`,oauth_callback_hint:`Remote browser mode: after the provider redirects to http://localhost:..., copy the full URL and submit it here.`,oauth_callback_button:`Submit Callback URL`,oauth_callback_required:`Please paste the full redirect URL first.`,oauth_callback_success:`Callback URL submitted. Continue waiting for authentication.`,oauth_callback_error:`Failed to submit callback URL:`,oauth_callback_upgrade_hint:`Please update CLI Proxy API or check the connection.`,oauth_callback_status_success:`Callback URL submitted, waiting for authentication...`,oauth_callback_status_error:`Callback URL submission failed:`,missing_state:`Unable to retrieve authentication state parameter`,login_another_account:`Log in another account`,view_auth_files:`View auth files`,iflow_oauth_title:`iFlow OAuth`,iflow_oauth_button:`Start iFlow Login`,iflow_oauth_hint:`Login to iFlow service through OAuth flow, automatically obtain and save authentication files.`,iflow_oauth_url_label:`Authorization URL:`,iflow_open_link:`Open Link`,iflow_copy_link:`Copy Link`,iflow_oauth_status_waiting:`Waiting for authentication...`,iflow_oauth_status_success:`Authentication successful!`,iflow_oauth_status_error:`Authentication failed:`,iflow_oauth_start_error:`Failed to start iFlow OAuth:`,iflow_oauth_polling_error:`Failed to check authentication status:`,remote_access_disabled:`This login method is not available for remote access. Please access from localhost.`},stats:{success:`Success`,failure:`Failure`},status_bar:{success_short:`✓`,failure_short:`✗`,no_requests:`No requests`},logs:{preview_too_large:`This request log exceeds the 2 MiB preview limit. Download it to view.`,read_status_live:`Reading continuously`,read_status_paused:`Reading paused`,read_status_catching_up:`Catching up on queued logs`,last_updated:`Last successful update: {{time}}`,buffer_scope:`Searching loaded logs only: {{count}} lines cached, {{matched}} lines matched`,buffer_evicted:`Older logs have been removed from the cache and cannot be searched here`,cursor_reset_notice:`Logs were rotated or reset. The latest content has been reloaded.`,history_evicted:`Your reading position is no longer cached. Please choose a new position.`,resume_following:`Back to latest · New lines: {{count}}`,level_filter:`Log level`,all_levels:`All levels`,view_request:`View log for request {{id}}`,copy_line:`Copy this line`,request_log_missing:`Request log not found: it may not have been recorded or may have been cleaned up. When request logging is disabled, only error request logs are usually retained.`,download_cached:`Download cached logs`,clear_application_confirm:`Clear application logs on the server? Request log files will not be deleted. This action cannot be undone.`,clear_search:`Clear search`,reading_enabled:`Continuous reading`,filter_load_more:`Show more matching logs`,title:`Logs Viewer`,refresh_button:`Refresh Logs`,clear_button:`Clear Logs`,fullscreen_button:`Full Screen`,exit_fullscreen_button:`Exit Full Screen`,download_button:`Download Logs`,error_logs_modal_title:`Error Request Logs`,error_logs_description:`Pick an error request log file to open or download (only generated when request logging is off).`,error_logs_request_log_enabled:`Request logging is enabled, so this list will always be empty. Disable request logging and refresh to view error logs.`,error_logs_empty:`No error request log files found`,error_logs_load_error:`Failed to load error log list`,error_logs_size:`Size`,error_logs_modified:`Last modified`,error_logs_open:`Open`,error_logs_download:`Download`,error_log_view_title:`Error Request Log Details`,error_log_open_failed:`Failed to open error log`,error_log_empty_content:`This error log is empty`,error_log_copy_success:`Error log content copied`,error_log_download_success:`Error log downloaded successfully`,request_log_download_title:`Download Request Log`,request_log_download_confirm:`Download request log for ID {{id}}?`,request_log_download_success:`Request log downloaded successfully`,empty_title:`No Logs Available`,empty_desc:`When "Enable logging to file" is enabled, logs will be displayed here`,cpa_file_logging_required:`The connected runtime is CPA. Log viewing requires logging to file to be enabled first.`,cpa_file_logging_required_title:`File logging is required`,cpa_file_logging_required_desc:`CPA reads this log view from local log files. Enable logging-to-file in the config, then refresh.`,file_logging_required:`This logs endpoint requires logging to file before file logs can be read.`,file_logging_required_title:`File logging is required`,file_logging_required_desc:`This logs endpoint reads local log files. Enable logging-to-file in the config, then refresh.`,log_content:`Log Content`,loading:`Loading logs...`,load_error:`Failed to load logs`,clear_confirm:`Are you sure you want to clear all logs? This action cannot be undone!`,clear_success:`Logs cleared successfully`,download_success:`Logs downloaded successfully`,auto_refresh:`Auto Refresh`,load_more_hint:`Scroll up to load more`,hidden_lines:`Hidden: {{count}} lines`,loaded_lines:`Loaded: {{count}} lines`,filtered_lines:`Filtered: {{count}} lines`,hide_management_logs:`Hide {{prefix}} logs`,show_raw_logs:`Show Raw Logs`,show_raw_logs_hint:`Show original log text for easier multi-line copy`,search_placeholder:`Search logs by content or keyword`,filter_panel_title:`Filters & display`,wrap_lines:`Wrap long lines`,filter_panel_expand:`Expand structured filters`,filter_panel_collapse:`Collapse structured filters`,filter_panel_active_count:`{{count}} active`,filter_method:`Method`,filter_status:`Status`,filter_path:`Path`,filter_path_empty:`No path candidates`,filter_status_2xx:`2xx`,filter_status_3xx:`3xx`,filter_status_4xx:`4xx`,filter_status_5xx:`5xx`,clear_filters:`Clear Filters`,search_empty_title:`No matching logs found`,search_empty_desc:`Try a different keyword or clear the filters.`,double_click_copy_hint:`Double-click to copy raw log line`,copy_success:`Log copied to clipboard`,copy_failed:`Copy failed`},config_management:JSON.parse(`{"title":"Config Panel","meta_fields":"{{count}} settings","meta_dirty":"{{count}} unsaved","meta_dirty_source":"Unsaved source edits","meta_errors":"{{count}} validation errors","meta_synced":"In sync","actions":{"discard":"Discard changes","save":"Save changes"},"discard_confirm_message":"Discard all unsaved changes and restore the last server version?","mode":{"label":"Editor mode","visual":"Visual","source":"Source"},"reload":"Reload","reload_confirm_message":"Reloading will discard your unsaved changes. Do you want to continue?","save":"Save","status_loading":"Loading configuration...","status_loading_short":"Loading","status_loaded":"Configuration loaded","status_loaded_short":"Loaded","status_dirty":"Unsaved changes","status_dirty_short":"Unsaved","status_disconnected":"Connect to the server to load the configuration","status_disconnected_short":"Disconnected","status_load_failed":"Load failed","status_load_failed_short":"Failed","status_saving":"Saving configuration...","status_saving_short":"Saving","save_success":"Configuration saved successfully","visual_mode_unavailable":"Visual editor unavailable until YAML syntax is fixed","visual_mode_unavailable_short":"YAML issue","validation_blocked_short":"Fix errors","visual_mode_unavailable_detail":"Visual editor is unavailable because the configuration contains invalid YAML: {{message}}","visual_mode_save_blocked":"Cannot save from visual mode until the YAML syntax is fixed","source_changes_before_visual":"Save or discard your unsaved source edits before switching to visual mode.","precise_save_incomplete":"The precise save did not finish; some changes may already be applied. Your draft is retained. Save again to review the remaining server differences.","concurrent_list_conflict":"The server list {{path}} changed after your draft baseline. Saving was blocked to avoid overwriting those changes. Your draft is retained; note your edits, then reload the configuration and reconcile them.","precise_save_recovery_required":"Could not read back the save result. Editing is paused. Save again to recover the draft baseline, or reload the configuration.","visual_mode_latest_yaml_invalid":"The latest server configuration contains invalid YAML. Review it in source mode before saving visual changes: {{message}}","editor_placeholder":"key: value","search_placeholder":"Search config...","search_button":"Search","search_no_results":"No results","search_prev":"Previous","search_next":"Next","diff":{"title":"Review Changes","confirm":"Confirm Save","no_changes":"No changes detected"},"visual":{"serverExtras":{"trustedProxies":{"label":"Trusted proxies","hint":"IP addresses or CIDRs; empty means forwarded headers are not trusted. Trusting all-address ranges risks client IP spoofing. Requires a backend restart."},"discoveryEnabled":{"label":"Enable discovery","hint":"Broadcast via mDNS / DNS-SD on the LAN. Off by default; changes apply without a restart."},"discoveryServiceName":{"label":"Service name prefix","hint":"The backend appends a short ID. Empty uses CPA-<ShortID>."},"discoveryServiceType":{"label":"Service type","hint":"Empty uses _ai-gateway._tcp."},"discoverySubtypes":{"label":"Protocol subtypes","hint":"Empty uses the five default protocols. Missing leading _ is added; invalid entries are ignored."},"discoveryInterfacesInclude":{"label":"Include interfaces","hint":"Empty auto-selects physical LAN interfaces. Use names or prefix patterns ending in *."},"discoveryInterfacesExclude":{"label":"Exclude interfaces","hint":"Use names or prefix patterns ending in *. Exclusions take priority over inclusions."},"discoveryAuthRequired":{"label":"Advertise authentication requirement","hint":"On by default. Broadcast metadata only; does not change actual API authentication."},"discoveryAdvertiseManagement":{"label":"Advertise management service","hint":"Off by default. Only announces the management service exists; does not change remote access permissions."},"discoveryTitle":"LAN discovery","discoveryHint":"Requires multicast-capable physical interfaces and a non-loopback listener. Docker usually needs host networking; reachability is not guaranteed."},"additions":{"oauthTitle":"OAuth provider behavior","oauthHint":"These provider settings apply only to OAuth/file-backed credentials, not API-key credentials.","claudeTitle":"Claude","codexTitle":"Codex","antigravityTitle":"Antigravity","xaiTitle":"xAI","liveRelayTitle":"Codex Live media relay","liveRelayHint":"Relay WebRTC audio and DataChannel traffic in the proxy process. Inbound UDP must be reachable. Keep ICE credentials out of screenshots and logs.","iceAdd":"Add ICE server","iceRemove":"Remove ICE server {{index}}","iceURLs":"STUN/TURN URLs","iceUsername":"TURN username","iceCredential":"TURN password","iceServer":"ICE server {{index}}","routingSessionAffinitySubagents":{"label":"Subagent session affinity","hint":"Enabled by default; only effective when session affinity is enabled. Subagents inherit their parent's credential to reuse caches. Disable to distribute subagents across the credential pool for greater concurrency."},"saveCooldownStatus":{"label":"Persist cooldown status","hint":"Save per-credential cooldown status in .cds files beside auth files. Disabled by default; otherwise status is kept only in memory."},"transientErrorCooldownSeconds":{"label":"Transient error cooldown (seconds)","hint":"Cooldown for upstream 408/500/502/503/504/520–526 errors. 0 uses the default 60 seconds; a negative value disables this cooldown."},"videoResultAuthCacheTTL":{"label":"Video result credential cache TTL","hint":"How long video IDs remain bound to the credential that created them. Use a duration such as 30m or 3h; default: 3h."},"claudeHeaderTimezone":{"label":"Fallback timezone","hint":"IANA timezone for the cloaked currentDate, e.g. Asia/Singapore, or Local for the backend host's timezone. The credential JSON's timezone takes priority."},"claudeModelLevelCooling":{"label":"Model-level cooldown","hint":"Apply Claude quota cooldowns only to the requested model, rather than all models sharing the credential. Disabled by default."},"claudeDisableCloakMode":{"label":"Disable request cloaking","hint":"Disable the Claude Code CLI disguise and system prompt replacement; pass through the original system prompt. Credential files can override this with cloak_mode. Default: false (automatic cloaking for non-Claude-Code clients)."},"claudeCodeDisableCloakingModelList":{"label":"Disable model ID cloaking","hint":"Return original model IDs in Anthropic model list responses instead of cloaked IDs. Disabled by default."},"codexDisableCloaking":{"label":"Disable request cloaking","hint":"Stop forcing official Codex User-Agent and Originator headers on HTTP/SSE and WebSocket requests. Disabled by default."},"codexModelLevelCooling":{"label":"Model-level cooldown","hint":"Apply usage_limit_reached quota cooldowns only to the requested model, rather than all models sharing the credential. Disabled by default."},"codexStreamBootstrapBuffering":{"label":"Buffer stream bootstrap","hint":"Hold initial empty events and heartbeats to allow credential failover on early overload or rate-limit rejections. Disabled by default. Delays response headers and may trigger client or reverse-proxy timeouts; buffering has frame and byte budgets."},"codexStreamBootstrapTimeout":{"label":"Stream bootstrap timeout","hint":"Optional buffering time limit, e.g. 20s. Default: 0 (unlimited time; frame and byte budgets still apply). Checked as upstream frames arrive; not a hard deadline for every network stall. Headers may still wait for translated output."},"codexOptimizeMultiAgentV2":{"label":"Optimize multi-agent v2","hint":"Optimize official Codex multi-agent requests: refresh spawn_agent model details, remove message parameter encryption, normalize agent_message content, and convert it to user messages for non-Codex protocols. Disabled by default."},"codexOrphanDelegationCompatibility":{"label":"Orphan delegation compatibility","hint":"For X-Openai-Subagent: collab_spawn requests, convert orphan codex_app/create_thread and codex_app/send_message_to_thread outputs without a valid matching call into user messages. Disabled by default."},"codexResponseSteering":{"label":"Response steering","hint":"Experimental full-duplex Codex Responses WebSockets. Each socket stays bound to one upstream account and model; accepted input is never replayed. Disabled by default."},"antigravityConnectionPoolEnabled":{"label":"Enable connection pooling","hint":"Reuse upstream HTTP/1.1 connections. Default: false (short-lived connections)."},"antigravityConnectionPoolIdleTimeout":{"label":"Idle connection timeout","hint":"How long idle connections remain in the pool. Default: 30s; capped at 210s. Zero or a negative duration switches to short-lived connections."},"antigravityConnectionPoolMaxIdleConnsPerHost":{"label":"Maximum idle connections per host","hint":"Maximum idle connections retained per upstream host per credential. Default: 2; capped at 100. Zero uses Go's default of 2; a negative value switches to short-lived connections."},"xaiInjectXSearch":{"label":"Inject x_search","hint":"Add xAI's native x_search tool when absent from the request, including tool_choice.allowed_tools when applicable. Disabled by default."},"codexLiveMediaRelayEnabled":{"label":"Enable media relay","hint":"Terminate and relay Codex Live WebRTC media in this process. Requires inbound UDP reachability. Disabled by default to preserve direct media connections."},"codexLiveMediaRelayMaxSessions":{"label":"Maximum concurrent media sessions","hint":"Blank or 0 uses the default of 32 sessions. A custom UDP range must provide at least two ports per session."},"codexLiveMediaRelayDisablePrivateRemoteIPs":{"label":"Block private remote IP candidates","hint":"Default: false, allowing private candidates for local or trusted-network clients. Enable to reject downstream SDP candidates targeting private, loopback, link-local, or unspecified IPs and reduce internal-network exposure; local connections may fail."},"codexLiveMediaRelayPublicIP":{"label":"Advertised public IP","hint":"Optional public IPv4 or IPv6 address to advertise when the proxy is behind 1:1 NAT. Enter an IP address, not a hostname."},"codexLiveMediaRelayUDPPortMin":{"label":"Minimum UDP port","hint":"Set both UDP bounds to 0 for system allocation, or specify an inclusive continuous range with at least twice the effective session limit in ports."},"codexLiveMediaRelayUDPPortMax":{"label":"Maximum UDP port","hint":"Must be at least the minimum port. Both bounds must be 0 or both nonzero; a custom range needs at least two ports per session (64 with the default 32 sessions)."},"codexLiveMediaRelayICEServers":{"label":"ICE servers","hint":"Optional STUN/TURN servers using stun:, stuns:, turn:, or turns: URLs. TURN credentials are omitted from the JSON config API. Enter the credential as a password and keep secrets out of screenshots and logs."}},"search":{"placeholder":"Search settings (label or YAML key)","no_results":"No matching settings"},"sections":{"common":{"title":"Common","description":"The most-used settings, backed by the same data as the full sections"},"connectivity":{"title":"Access & Authentication","description":"Server address, port, auth directory, and API keys"},"logging":{"title":"Logging & Diagnostics","description":"Debug, log output, and usage statistics"},"advanced":{"title":"Advanced & Experimental","description":"Header spoofing, signature cache, plugin sources, and other rarely changed settings","plugins_title":"Plugins","antigravity_title":"Antigravity","devin_title":"Devin","signature_title":"Signature Validation"},"server":{"host":"Host Address","port":"Port"},"tls":{"title":"TLS/SSL Configuration","description":"HTTPS secure connection settings","enable":"Enable TLS","enable_desc":"Enable HTTPS secure connection","cert":"Certificate File Path","key":"Private Key File Path"},"remote":{"title":"Remote Management","description":"Remote access and control panel settings","allow_remote":"Allow Remote Access","allow_remote_desc":"Allow management access from other hosts","disable_panel":"Disable Control Panel","disable_panel_desc":"Disable the built-in web control panel","disable_auto_update_panel":"Disable Panel Auto Updates","disable_auto_update_panel_desc":"Download the panel when first missing, but never auto-update it from GitHub","secret_key":"Management Key","secret_key_placeholder":"Set management key","panel_repo":"Panel Repository"},"auth":{"auth_dir":"OAuth Credential Directory (oauth.auth-dir)","auth_dir_hint":"Directory path for authentication files (supports ~)"},"system":{"debug":"Debug Mode","debug_desc":"Enable verbose debug logging","commercial_mode":"Commercial Mode","commercial_mode_desc":"Disable high-overhead middleware to support high concurrency","logging_to_file":"Log to File","logging_to_file_desc":"Save logs to files","plugins_enabled":"Enable Plugin System","plugins_enabled_desc":"Enable standard dynamic-library plugin loading; individual plugin instances are still managed on the Plugins page","plugin_store_sources":"Third-party Plugin Sources","plugin_store_sources_desc":"Append plugin-store registry sources; the built-in official source is always kept","plugin_store_sources_label":"Plugin source registry URL (plugins.store-sources)","plugin_store_sources_placeholder":"https://example.com/cliproxy-plugins/registry.json","plugin_store_sources_hint":"One registry.json URL per row. Empty rows are filtered on save","plugin_store_auth":"Plugin Store Auth Rules","plugin_store_auth_desc":"Configure auth headers for private registries, GitHub Release metadata, or artifact downloads","plugin_store_auth_hint":"Enter environment variable names only, not actual tokens. The backend reads the values from its runtime environment.","store_auth_empty":"No auth rules are configured. Public plugin sources do not need one.","store_auth_rule":"Auth rule","store_auth_add":"Add auth rule","store_auth_match":"Matching URL prefix","store_auth_type":"Auth type","store_auth_apply_to":"Apply to","store_auth_apply_to_hint":"When nothing is selected, the rule applies to all request types.","store_auth_apply_registry":"Registry","store_auth_apply_metadata":"Metadata","store_auth_apply_artifact":"Artifact","store_auth_type_none":"None","store_auth_type_bearer":"Bearer","store_auth_type_basic":"Basic","store_auth_type_header":"Custom header","store_auth_type_github_token":"GitHub token","store_auth_token_env":"Token env var","store_auth_username_env":"Username env var","store_auth_password_env":"Password env var","store_auth_header_name":"Header name","store_auth_header_value_env":"Header value env var","store_auth_allow_insecure":"Allow insecure HTTP URLs","logs_max_size":"Log File Size Limit (MB)","error_logs_max_files":"Retained Error Log Files","usage_statistics_enabled":"Enable In-memory Usage Statistics","usage_statistics_enabled_desc":"Aggregate request usage statistics in memory","redis_usage_retention":"Redis Usage Queue Retention (seconds)","redis_usage_retention_hint":"In-memory retention for RESP LPOP/RPOP usage output, max 3600 seconds","antigravity_sensitive_words":"Sensitive Word Obfuscation","antigravity_sensitive_words_desc":"Insert zero-width characters into matching words in Antigravity system instructions to reduce exact keyword matching upstream","antigravity_sensitive_words_label":"OAuth sensitive words (oauth.providers.antigravity.sensitive-words)","antigravity_sensitive_words_placeholder":"proxy","antigravity_sensitive_words_hint":"One word or phrase per row. Matching is case-insensitive; empty entries are removed and entries shorter than 2 characters are ignored by the backend","devin_sensitive_words":"Devin System Prompt Sensitive Words","devin_sensitive_words_desc":"In Devin system prompts only, a line containing a configured word is removed in full; the remaining system prompt is then obfuscated. Regular messages and tool arguments are not changed","devin_sensitive_words_label":"OAuth sensitive words (oauth.providers.devin.sensitive-words)","devin_sensitive_words_placeholder":"sensitive phrase","devin_sensitive_words_hint":"One word or phrase per row. Configure carefully: matching content causes the entire system-prompt line to be deleted; empty entries are removed when saved","antigravity_signature_cache":"Enable Antigravity Signature Cache","antigravity_signature_cache_desc":"Prefer and validate cached thinking-block signatures","antigravity_signature_strict":"Strict Bypass Signature Validation","antigravity_signature_strict_desc":"Only applies when the signature cache is disabled; validates the full Claude protobuf tree"},"headers":{"title":"Header Defaults","description":"Default headers for Claude and Codex OAuth requests when the client omits them","claude_title":"Claude OAuth Header Defaults","codex_title":"Codex OAuth Header Defaults","user_agent":"User-Agent","package_version":"Package Version","runtime_version":"Runtime Version","os":"OS","arch":"Arch","timeout":"Timeout","stabilize_device":"Stabilize Device Profile","stabilize_device_desc":"Pin OS/Arch and stabilize the software fingerprint per credential/API key","beta_features":"Beta Features"},"network":{"title":"Network Configuration","description":"Proxy, retry, and routing settings","proxy_url":"Proxy URL","proxy_url_sponsor_hint":"No suitable proxy?","request_retry":"Request Retry Count","max_retry_credentials":"Max Retry Credentials","max_retry_credentials_hint":"Leave empty to keep it unset. Set to 0 or a negative integer to try all available credentials.","max_retry_interval":"Max Retry Interval (seconds)","max_retry_interval_hint":"Set to 0 or a negative integer to skip cooldown waits between retry rounds.","auth_auto_refresh_workers":"Auth Auto-refresh Workers","auth_auto_refresh_workers_hint":"A positive integer overrides the worker count; 0, a negative integer, or an empty field uses the default (16)","disable_image_generation":"Disable Image Generation","disable_image_generation_hint":"false enables it; true disables all image generation; chat disables non-image endpoint injection; passthrough preserves the client tool list without injecting one","disable_image_generation_false":"false (enabled)","disable_image_generation_true":"true (disabled everywhere)","disable_image_generation_chat":"chat (disable chat injection only)","disable_image_generation_passthrough":"passthrough (preserve the client tool list)","gpt_image_2_base_model":"GPT Image 2 Base Model","gpt_image_2_base_model_hint":"Mainline model used when proxying gpt-image-2 image requests; backend uses its default when empty or invalid","routing_strategy":"Routing Strategy","routing_strategy_hint":"Select credential selection strategy","strategy_round_robin":"Round Robin","strategy_weighted_round_robin":"Weighted Round Robin","strategy_fill_first":"Fill First","session_affinity_ttl":"Session Affinity TTL","force_model_prefix":"Force Model Prefix","force_model_prefix_desc":"Unprefixed model requests only use credentials without prefix","passthrough_headers":"Pass Through Upstream Headers","passthrough_headers_desc":"Forward filtered upstream response headers to downstream clients","disable_cooling":"Disable Cooling","disable_cooling_desc":"Globally disable auth/model cooldown windows after failures","session_affinity":"Session Affinity Routing","ws_auth":"WebSocket Authentication","ws_auth_desc":"Require authentication for AI Studio WebSocket connections (oauth.providers.aistudio.ws-auth)"},"quota":{"title":"Quota Fallback","description":"Fallback strategy when quota is exceeded","switch_project":"Switch Project","switch_project_desc":"Automatically switch to another project when quota is exceeded","switch_preview_model":"Switch to Preview Model","switch_preview_model_desc":"Switch to preview model version when quota is exceeded","antigravity_credits":"Use Antigravity Credits"},"streaming":{"title":"Streaming Configuration","description":"Keepalive and bootstrap retry settings","keepalive_seconds":"Keepalive Seconds","keepalive_hint":"Set to 0, a negative integer, or leave empty to disable keepalive","bootstrap_retries":"Bootstrap Retries","bootstrap_hint":"Retries before the first byte; 0, a negative integer, or an empty field disables bootstrap retries","nonstream_keepalive":"Non-stream Keepalive Interval (seconds)","nonstream_keepalive_hint":"Send blank lines every N seconds for non-streaming responses; 0, a negative integer, or an empty field disables keepalive","disabled":"Disabled"},"payload":{"title":"Payload Configuration","description":"Default values, raw JSON rules, override rules, and filter rules","default_rules":"Default Rules","default_rules_desc":"Use these default values when parameters are not specified in the request","default_raw_rules":"Default Raw Rules","default_raw_rules_desc":"When parameters are missing, write these values as raw JSON fragments such as true, 123, \\"high\\", or {\\"type\\":\\"object\\"}","override_rules":"Override Rules","override_rules_desc":"Force override parameter values in the request","override_raw_rules":"Override Raw Rules","override_raw_rules_desc":"Always overwrite parameter values as raw JSON fragments, useful for response_format, schemas, and other complex fields","filter_rules":"Filter Rules","filter_rules_desc":"Pre-filter upstream request body via JSON Path, automatically remove non-compliant/redundant parameters (Request Sanitization)"}},"api_keys":{"label":"Client API Keys (access.api-keys)","add":"Add API Key","generate":"Generate","empty":"No API keys","hint":"Each entry represents an API key (consistent with 'API Key Management' page style)","edit_title":"Edit API Key","add_title":"Add API Key","input_label":"API Key","input_placeholder":"Paste your API key","name_label":"Name / description (optional)","name_placeholder":"For example: Alice's laptop","name_hint":"Saved immediately in this browser only, separately for each server. Not included in server configuration. Clear this field to remove the name.","name_save_error":"Could not save the name in browser storage. Check your browser storage settings.","input_hint":"Changes take effect after saving the configuration. Upstream provider keys are managed separately.","error_empty":"Please enter an API key","error_invalid":"API key contains invalid characters","strength":{"label":"API key strength","empty":"Not entered","weak":"Weak","fair":"Fair","good":"Good","strong":"Strong"}},"payload_rules":{"rule":"Rule","models":"Applicable Models","model_name":"Model Name","provider_type":"Provider Type","add_model":"Add Model","params":"Parameter Settings","remove_params":"Remove Parameters","json_path":"JSON Path (e.g., temperature)","json_path_filter":"JSON Path (gjson/sjson), e.g., generationConfig.thinkingConfig.thinkingBudget","param_type":"Parameter Type","param_value":"Parameter Value","add_param":"Add Parameter","no_rules":"No rules","add_rule":"Add Rule","provider_default":"Default","provider_openai":"OpenAI","provider_openai_response":"OpenAI Response","provider_responses":"Responses","provider_gemini":"Gemini","provider_claude":"Claude","provider_codex":"Codex","provider_antigravity":"Antigravity","advanced":"Advanced","hide_advanced":"Hide Advanced","from_protocol":"Source Protocol (from-protocol)","headers":"Request Header Matches","header_name":"Header Name","header_value":"Header Value","add_header":"Add Header","match":"Required Matches (match)","notMatch":"Forbidden Matches (not-match)","exist":"Required Paths (exist)","notExist":"Forbidden Paths (not-exist)","condition_path":"Match Path","condition_value":"Match Value","add_condition":"Add Condition","value_type_string":"String","value_type_number":"Number","value_type_boolean":"Boolean","value_type_json":"JSON","value_string":"String value","value_number":"Number value (e.g., 0.7)","value_boolean":"true or false","value_json":"JSON value","value_raw_json":"Raw JSON fragment, e.g. true, 123, \\"high\\", or {\\"type\\":\\"object\\"}","value_default":"Value","boolean_true":"true","boolean_false":"false"},"validation":{"invalid_trusted_proxies":"Each trusted proxy must be a valid IP address or CIDR.","invalid_discovery_service_type":"Use _name._tcp: name must be 1–15 letters, digits or hyphens, with no leading or trailing hyphen.","validation_blocked":"Fix validation errors before saving","invalid_duration":"Enter a valid duration, such as 30s or 3h","positive_duration":"Enter a duration greater than zero","invalid_timezone":"Enter a valid IANA timezone, such as Asia/Singapore","invalid_ip":"Enter a valid IPv4 or IPv6 address","udp_port_pair":"Set both UDP ports to 0, or set both with the minimum not exceeding the maximum","udp_port_capacity":"The UDP range must contain at least twice the effective maximum session count in ports (0 sessions uses 32)","invalid_ice_servers":"Each ICE server needs at least one valid stun:, stuns:, turn:, or turns: URL","integer_range_0_65535":"Enter a whole number between 0 and 65535","port_range":"Enter a valid port between 1 and 65535","integer":"Enter a whole number","non_negative_integer":"Enter a non-negative whole number","integer_range_1_3600":"Enter a whole number between 1 and 3600","payload_invalid_number":"Enter a valid number","payload_invalid_boolean":"Choose true or false","payload_invalid_json":"Enter valid JSON"},"common":{"edit":"Edit","delete":"Delete","cancel":"Cancel","update":"Update","add":"Add"}}}`),quota_management:{search_label:`Search accounts`,search_placeholder:`Search by filename or email`,search_empty_title:`No matching accounts`,search_empty_desc:`Try another filename or email, or clear the search.`,search_clear:`Clear search`,title:`Quota Management`,description:`Monitor OAuth quota status for Antigravity, Codex, Claude, Kimi, and xAI credentials.`,refresh_all_credentials:`Refresh all credentials`,sort_label:`Sort`,sort_default:`Default`,sort_soonest:`Soonest recovery`,meta_credentials:`{{count}} credentials`,meta_loaded:`{{count}} loaded`,meta_attention:`{{count}} need attention`,empty_title:`No quota-capable credentials`,empty_desc:`Connect an Antigravity, Claude, Codex, xAI, or Kimi credential to track its quota here.`,windows_title:`Quota windows`,windows_span_weekly:`two weeks`,windows_span_session:`three days`,windows_current:`current`,windows_today:`Today`,windows_prev:`Previous`,windows_next:`Next`,windows_mode_weekly:`Weekly`,windows_mode_session:`5-hour`,windows_credential:`Credential`,windows_idle:`no window counting down`,windows_empty_session:`No credentials on this page report a 5-hour quota window.`,windows_legend_current:`current window`,windows_legend_upcoming:`upcoming`,windows_legend_elapsed:`elapsed`,windows_legend_reset_credit:`manual reset expiry`,soonest_row_hint:`Recovers first on this credential`,windows_reset_credit:`Manual reset`,windows_credit_granted:`Granted`,windows_credit_expires:`Expires`,windows_note_weekly:`Each bar is one full quota window, drawn from when it opened to when it resets. Lanes ending together compete for the same days.`,windows_note_session:`Each bar is one 5-hour window. Only credentials with a window counting down can be projected; the rest stay empty rather than invented.`,weekday_sun:`Sun`,weekday_mon:`Mon`,weekday_tue:`Tue`,weekday_wed:`Wed`,weekday_thu:`Thu`,weekday_fri:`Fri`,weekday_sat:`Sat`},plugin_management:{title:`Plugin Management`,description:`Review discovered and registered plugins, then manage instance toggles, config fields, and resource links.`,refresh:`Refresh`,load_failed:`Failed to load plugins`,config_load_failed:`Failed to read plugin config`,config_not_found:`Unable to read plugin config because the backend could not find this plugin.`,unsupported_backend:`The current backend does not expose the plugin management API. Use a newer backend build that includes plugin management endpoints, then restart the service.`,global_status:`Global status`,global_enabled:`Enabled`,global_disabled:`Disabled`,global_disabled_hint:`plugins.enabled is false, so enabled plugin instances will not become effective.`,plugins_dir:`Plugin directory`,discovered:`Discovered`,effective:`Effective`,search_placeholder:`Search plugin ID, name, author, or resource...`,search_label:`Search plugins`,no_plugins:`No plugins`,no_plugins_desc:`No plugins were found in the plugin directory or runtime registry.`,configured:`Configured`,not_configured:`Not configured`,registered:`Registered`,not_registered:`Not registered`,oauth:`OAuth`,status_effective:`Effective`,status_inactive:`Inactive`,edit_config:`Edit config`,open_repository:`Open repository`,config_title:`Configure {{name}}`,base_settings:`Base settings`,enabled:`Enabled`,enabled_hint:`Controls the enabled field for this plugin instance under plugins.configs.`,priority:`Priority`,config_fields:`Config fields`,no_config_fields:`This plugin does not declare visual config fields.`,select_placeholder:`Select`,array_item_placeholder:`Enter array item`,add_array_item:`Add array item`,remove_array_item:`Remove array item`,delete_plugin:`Delete`,delete_confirm_title:`Delete plugin`,delete_confirm_message:`Delete {{name}} ({{id}})? This removes the local plugin file and saved config.`,delete_success:`Plugin deleted`,delete_failed:`Failed to delete plugin`,delete_restart_required:`The loaded plugin cannot be removed until the backend restarts.`,toggle_success:`Plugin status updated`,toggle_failed:`Failed to update plugin status`,runtime_pending:`Plugin change was saved, but the runtime state is still pending. Refresh later or check backend logs.`,save_success:`Plugin config saved`,save_failed:`Failed to save plugin config`,validation_failed:`Fix plugin config form errors first`,invalid_priority:`Enter an integer priority`,invalid_number:`Enter a valid number`,invalid_integer:`Enter a valid integer`,invalid_json:`Enter valid JSON`,expected_array:`Enter a JSON array`,expected_object:`Enter a JSON object`,invalid_enum:`Choose one of the declared enum values`},plugin_store:{title:`Plugin Store`,description:`Browse the plugin registry, then install or update plugins for the current backend.`,description_show_more:`Show more`,description_show_less:`Show less`,source_name:`Source: {{source}}`,cli_proxy_api_source:`CLIProxyAPI source`,refresh:`Refresh`,retry:`Retry`,load_failed:`Failed to load the plugin store`,unsupported_backend:`The current backend does not expose the plugin store API. Use a newer backend build that includes plugin store endpoints, then restart the service.`,registry_failed:`Failed to reach the plugin registry`,global_status:`Global status`,global_enabled:`Enabled`,global_disabled:`Disabled`,global_disabled_hint:`plugins.enabled is false, so installed plugins will not become effective.`,plugins_dir:`Plugin directory`,stat_available:`Available`,search_placeholder:`Search plugin ID, name, author, or tag...`,search_label:`Search plugin store`,filter_label:`Filter by install status`,filter_all:`All`,filter_installed:`Installed`,filter_not_installed:`Not installed`,filter_updates:`Updates`,badge_installed:`Installed`,badge_update:`Update available`,badge_effective:`Effective`,version_arrow:`v{{from}} → v{{to}}`,install_type:`Install: {{type}}`,platforms:`Platforms: {{platforms}}`,auth_required:`Auth required`,auth_configured:`Auth configured`,auth_required_hint:`Configure plugins.store-auth before installing from this source or artifact URL`,source_errors_title:`Some plugin sources failed to load`,install:`Install`,update:`Update`,manage:`Manage`,install_confirm_title:`Install plugin`,install_confirm_message:`Download {{target}} from the plugin registry and install it into the local plugin directory?`,update_confirm_title:`Update plugin`,update_confirm_message:`Download and install {{target}}?`,install_version_label:`Version`,install_version_latest:`latest`,install_version_latest_mode:`Latest stable`,install_version_latest_hint:`Resolved by the backend during install. Current listed version: {{version}}.`,install_version_release_mode:`Choose release`,install_version_release_hint:`Read installable tags from GitHub Releases.`,install_version_manual_mode:`Manual release tag`,install_version_manual_hint:`Use only when automatic release loading is unavailable.`,install_versions_loading:`Loading GitHub Releases...`,install_versions_load_failed:`Failed to load release versions`,install_version_non_github:`This plugin repository is not a GitHub repository`,install_versions_empty:`No selectable releases were found.`,install_versions_only_prerelease:`Only prerelease versions are available. Show prereleases to choose one.`,install_version_release_select:`Choose release version`,install_version_release_placeholder:`Choose release version`,install_version_prerelease_badge:`prerelease`,install_version_assets_count:`{{count}} assets`,install_version_show_prerelease:`Show prerelease versions`,install_version_manual_placeholder:`For example v0.1.4`,install_version_manual_error:`Release tags can only contain letters, numbers, dots, underscores, plus signs, and hyphens; spaces and slashes are not allowed.`,install_version_current_selected:`{{version}} is already installed. Choose another version.`,install_version_releases_link:`View GitHub Releases`,install_success:`Plugin installed`,update_success:`Plugin updated`,install_failed:`Failed to install plugin`,update_failed:`Failed to update plugin`,status_pending:`Plugin files were updated, but the local status has not refreshed yet. Refresh later or check backend logs.`,registration_pending:`Plugin files were updated, but registration is still pending. Refresh later or check backend logs.`,restart_required_notice:`Restart the service to load the new plugin version`,restart_required_banner:`Restart the service to apply the new version of: {{plugins}}`,open_repository:`Open repository`,open_homepage:`Open homepage`,no_plugins:`Registry is empty`,no_plugins_desc:`The plugin registry did not return any plugins.`,no_matches:`No matching plugins`,no_matches_desc:`No plugins match the current search or filter.`,clear_filters:`Clear filters`,security_banner_title:`Third-party plugins run with full backend access`,security_banner_text:`Plugins execute code inside the proxy service and can read your credentials and traffic. Only install plugins you trust — be especially careful with any plugin not published by the official router-for-me organization.`,badge_untrusted:`Third-party`,gate_title:`Install {{name}}`,gate_title_update:`Update {{name}}`,gate_warning:`Unexpected and harmful things can happen if you don't read this.`,gate_effect_runs_code:`This plugin will run uncertified third-party code inside your proxy backend. The system cannot isolate or audit its behavior, and it may have access to your sensitive credentials, network requests, and response data.`,gate_effect_no_review:`This plugin is not published or reviewed by the official router-for-me organization. The official organization makes no express or implied warranty for this plugin's stability, security, compliance, or any behavior changes in future versions.`,gate_effect_restart:`Installing it changes the local plugin directory and may require a service restart to take effect.`,gate_untrusted_alert:`This plugin is not from the official router-for-me organization. Only continue if you fully trust its author and source.`,gate_repository_label:`Repository`,gate_source_label:`Source`,gate_step1_action:`I want to install this plugin`,gate_step2_action:`I have read and understand these risks`,gate_step3_prompt:`To confirm, type "{{token}}" in the box below`,gate_step3_action:`Install this plugin`,gate_step3_hint:`Enter the exact identifier shown above to enable installation.`},plugin_resource:{page_count:`{{count}} pages`,load_failed:`Failed to load plugin page`,unavailable:`Plugin page unavailable`,not_found:`Plugin page not found`,not_found_desc:`This plugin page is not declared by the current backend plugin list.`,empty_src:`Plugin page URL is empty`,empty_src_desc:`This plugin menu does not provide an embeddable page URL.`},system_info:{title:`Management Center Info`,about_title:`CLI Proxy API Management Center`,models_title:`Available Models`,models_desc:`Shows the /models response and uses saved API keys for auth automatically.`,models_loading:`Loading available models...`,models_empty:`No models returned by /models`,models_error:`Failed to load model list`,models_count:`{{count}} available models`,version_check_button:`Check for updates`,version_update_available:`An update is available: {{version}}`,version_is_latest:`You are on the latest version`,version_check_error:`Update check failed`,version_current_missing:`Server version is unavailable; cannot compare`,version_unknown:`Unknown`,quick_links_title:`Quick Links`,quick_links_desc:`Access project repositories and documentation for help and updates.`,link_main_repo:`Main Repository`,link_main_repo_desc:`CLI Proxy API core program source code`,link_webui_repo:`WebUI Repository`,link_webui_repo_desc:`Management Center frontend source code`,link_docs:`Documentation`,link_docs_desc:`Configuration tutorials and guides`,clear_login_title:`Local Login Data`,clear_login_desc:`Clear locally saved login data and sign out.`,clear_login_button:`Clear login data`,clear_login_confirm:`Clear local login data and sign out now?`},notification:{trusted_proxies_restart_required:`Trusted proxy settings saved. Restart the backend to apply them.`,region_label:`Notifications`,type_success:`Success`,type_info:`Information`,type_warning:`Warning`,type_error:`Error`,request_log_updated:`Request logging setting updated`,login_storage_cleared:`Local login data cleared`,data_refreshed:`Data refreshed successfully`,connection_required:`Please establish connection first`,refresh_failed:`Refresh failed`,update_failed:`Update failed`,add_failed:`Add failed`,delete_failed:`Delete failed`,upload_failed:`Upload failed`,download_failed:`Download failed`,login_failed:`Login failed`,commercial_mode_restart_required:`Commercial mode setting changed. Please restart the service for it to take effect`,copy_failed:`Copy failed`,link_copied:`Link copied to clipboard`},language:{switch:`Language`,chinese:`中文`,chinese_tw:`Traditional Chinese (Taiwan)`,english:`English`,russian:`Русский`},theme:{switch:`Theme`,light:`Wool Paper`,white:`Pure White`,dark:`Dark`,auto:`Follow system`},sidebar:{toggle_expand:`Expand sidebar`,toggle_collapse:`Collapse sidebar`,expand:`Expand`,collapse:`Collapse`,subtitle:`CLI Proxy API Console`,auth_files_count:`Authentication files: {{count}}`},footer:{api_version:`CLI Proxy API Version`,build_date:`Build Time`,version:`Management UI Version`},providersPage:JSON.parse(`{"behavior":{"title":"Provider-specific behavior","alphaSearch":"Enable Alpha Search","alphaSearchHint":"Allow this Codex key to serve Alpha Search. The upstream must support it.","codexCloaking":"Codex request cloaking","codexCloakingHint":"Override official Codex identity headers for this API key. Default removes the credential override; OAuth-only settings do not apply here.","useDefault":"Use backend default","cloakingEnabled":"Enable cloaking","cloakingDisabled":"Disable cloaking","rebuildMidSystemMessage":"Rebuild system messages","rebuildMidSystemMessageHint":"Move Claude messages with role system into the top-level system field.","supportPromptCacheKey":"Inject prompt cache key","supportPromptCacheKeyHint":"Derive and inject prompt_cache_key for compatible requests. Enable only when the upstream supports this field."},"modelOptions":{"displayName":"Display name","maxContextLength":"Context length","contextHint":"Non-negative integer; leave empty to use the default.","forceMapping":"Rewrite response model to alias","isCompat":"Compatibility mode","supportConfigurationUpdate":"Allow configuration updates","inputModalitiesText":"Input modalities","outputModalitiesText":"Output modalities","modalitiesHint":"Separate values with commas or whitespace. Custom modality names are preserved.","useMaxCompletionTokens":"Use max_completion_tokens","thinkingMode":"Thinking override","useDefault":"Use default","custom":"Custom","thinkingHint":"Default inherits backend behavior; an empty custom override is an explicit {}. Budgets and effort levels can coexist. Only when both budgets are 0 or blank is the numeric range unspecified. Set a maximum at least as large as a positive minimum.","thinkingMin":"Minimum thinking budget","thinkingMax":"Maximum thinking budget","thinkingZeroAllowed":"Allow zero budget","thinkingDynamicAllowed":"Allow dynamic budget","invalidContext":"Context length must be a non-negative safe integer.","invalidThinking":"Thinking must be a valid JSON object.","invalidBudget":"Thinking budgets must be non-negative safe integers.","invalidRange":"Minimum thinking budget must not exceed the maximum. Blank bounds count as 0.","removeModel":"Remove model","modelName":"Model name","modelAlias":"Alias (optional)"},"runtimePolicy":{"title":"Advanced runtime policy","description":"Inherit uses the parent group policy, then backend defaults. Overrides apply only to this entry.","cooling":"Cooling","inherit":"Inherit","coolingEnabled":"Enable cooling","coolingDisabled":"Disable cooling","retry":"Request retries","retryHint":"Blank inherits the group setting. Use an integer: 0 disables retries; a negative value uses the global retry policy instead of the group policy.","errorsMode":"Request error rules","override":"Override","errorsHint":"Inherit follows the parent policy. Override replaces the entire list, which may be empty. Switching modes keeps your rule draft.","invalidRetry":"Retries must be a safe integer, or blank to inherit."},"errorRules":{"hint":"Use the first matching rule in order; for the same status code, any condition may match.","empty":"No rules. You can save an empty list.","rule":"Rule {{number}}","status":"Status code","action":"Action","selectAction":"Select an action","moveUp":"Move rule up","moveDown":"Move rule down","removeRule":"Delete rule","matchType":"Match type","text":"Contains text","regex":"Regular expression","matchValue":"Condition","regexHint":"Go regular expression","removeMatch":"Delete condition","addMatch":"Add condition","addRule":"Add rule","invalidStatus":"Status code must be a positive safe integer.","invalidAction":"Select a valid action.","invalidMatch":"Match conditions cannot be empty.","missingMatch":"Add at least one match condition.","actions":{"stop":"Stop","stop-and-cooldown":"Stop and cool down","continue":"Continue","continue-and-cooldown":"Continue and cool down"}},"header":{"title":"AI Providers","activeResources":"{{active}}/{{total}} active resources","providerFamilies":"{{count}} provider families","updatedAt":"Updated {{time}}"},"actions":{"refresh":"Refresh","syncing":"Syncing","new":"New","edit":"Edit","view":"View","delete":"Delete","cancel":"Cancel","save":"Save","create":"Create","enable":"Enable","disable":"Disable"},"categories":{"title":"Providers","quickFill":"Quick Fill","activeCount":"{{active}}/{{total}} active"},"providerNames":{"meta":"Muse (Meta)","gemini":"Gemini","interactions":"Interactions API","codex":"Codex","xai":"xAI","claude":"Claude","vertex":"Vertex","openaiCompatibility":"OpenAI Compatible","apikeyFun":"APIKEY.FUN","fennoAI":"FennoAI","qiniuCloud":"Qiniu Cloud","kimi":"Kimi"},"table":{"key":"Key","baseUrl":"Base URL","prefix":"Prefix","models":"Models/Headers","status":"Status","actions":"Actions","metrics":{"models":"Models","keys":"Keys","headers":"Headers"},"websocketsTag":"WebSockets","cloakTag":"Cloak","cliProfileTag":"CLI Profile","empty":"No resources yet, click \\"New\\" to add.","filterPlaceholder":"Search keys, URLs, prefixes…","description":"Manage resources under {{route}}"},"sponsor":{"protocolSummary":"Anthropic / OpenAI / Gemini / Codex API (Responses)","detailHint":"{{provider}} is persisted into the matching API key configs by protocol; this view manages them together.","registerLink":"Register here","registerNow":"Register now","kimiPromo":"New users get API credit worth 10% of their first successful top-up, up to ¥1000. Offer ends September 30.","dashboardLink":"Dashboard","emptyRegisterHint":"No configuration yet.","apiKeyHint":"This key is only written to the selected group/protocol config.","usageCheck":"Check usage","usageChecking":"Checking","usageRemaining":"Remaining: {{amount}} {{unit}}","usageBreakdown":"Used {{used}} / Limit {{limit}}","usageStatus":"Status: {{status}}","usageInvalid":"Invalid key","usageEmpty":"The endpoint returned no usage data.","usageApiKeyRequired":"API key is required","aggregationConflict":"This grouped provider contains multiple backend configs or OpenAI keys. Edit it in the source configuration to avoid data loss.","partialMutationWarning":"The operation failed after one or more protocols may have been updated. The latest configuration was reloaded; review it before retrying.","groupedKeysTitle":"Grouped keys","groupedKeysHint":"Platform keys may be bound to a group when created. Each grouped key here manages one protocol, and model discovery only uses that protocol.","groupedKey":"Grouped key #{{index}}","addGroupedKey":"Add grouped key","removeGroupedKey":"Remove grouped key","protocol":"Group/protocol","protocolHint":"Select the group/protocol for this key.","protocolEndpoint":"Current protocol endpoint","urlMode":"{{provider}} URL","urlHint":"All URLs use the same API conventions. Saving writes only the endpoint for the current grouped protocol.","urlOptions":{"standard":"Standard URL","direct":"Direct URL","domestic":"China mainland route","overseas":"Overseas route","mainlandChina":"Mainland China (recommended)","global":"Global"},"urlOptionDescriptions":{"domestic":"For users and workloads in mainland China; usually lower latency in mainland networks.","overseas":"For overseas deployments, cross-border access, or workloads that need overseas models.","mainlandChinaRecommended":"Recommended for users and workloads on mainland China networks.","global":"For users and workloads in all other regions."},"modelsTitle":"Protocol model settings","modelsHint":"Configure model allowlists or aliases separately for Codex API, Anthropic, Gemini, and OpenAI-compatible routes.","protocolModels":{"codex":"Codex API models","anthropic":"Anthropic models","gemini":"Gemini models","openai":"OpenAI-compatible models"},"protocolModelHints":{"codex":"Writes to the Codex API config models. Fetch from /v1/models and set aliases if needed.","anthropic":"Writes to the Anthropic config models. Fetch from /v1/models and set aliases if needed.","gemini":"Writes to the Gemini config models. Fetch from /v1beta/models and set aliases if needed.","openai":"Writes to the OpenAI-compatible config models. Fetch from /models and set aliases if needed."},"validation":{"keyRequired":"Enter an API key for every grouped key.","protocolDuplicate":"Each protocol can only have one grouped key."},"openaiEntries":"OpenAI-compatible keys","codexEntries":"Codex API keys","anthropicEntries":"Anthropic keys","geminiEntries":"Gemini keys","protocols":{"anthropic":"Anthropic","openai":"OpenAI Compatible","gemini":"Gemini","codexResponses":"Codex API (Responses)"}},"status":{"active":"Active","disabled":"Disabled","notSet":"Not set","none":"None","notConfigured":"Not configured","defaultSuffix":"(default)"},"detail":{"title":"Details","metadataTitle":"Metadata","fields":{"identifier":"Identifier","baseUrl":"Base URL","proxyUrl":"Proxy URL","prefix":"Prefix","models":"Models","headers":"Headers","authIndex":"Auth Index","excludedModels":"Excluded models","apiKeyEntries":"API key entries"}},"form":{"createEyebrow":"New","editEyebrow":"Edit","name":"Name","apiKey":"API key","apiKeyCreatePlaceholder":"Enter API key","apiKeyEditPlaceholder":"Leave empty to keep unchanged","baseUrl":"Base URL","baseUrlRequiredHint":"Required for this provider","proxyUrl":"Proxy URL","prefix":"Prefix","priority":"Priority","weight":"Scheduling weight","weightHint":"Default 1 · ≤ 0 is excluded · maximum 1,000,000","disabled":"Disable this entry","disabledHint":"Disabled entries won't be used by the gateway","websockets":"Enable WebSockets","testModel":"Test model","testModelClaudeHint":"Used for connectivity testing only; not saved","testModelAutoWith":"Auto · {{name}}","testModelAutoEmpty":"Auto (no models added yet)","testModelCustom":"{{name}} (custom)","modelsSection":"Custom models","addModel":"Add model","headersSection":"Request headers","addHeader":"Add header","excludedSection":"Excluded models","excludedDisabledNote":"“*” means the whole provider is disabled — use the Disabled switch above instead.","cloakSection":"Cloak settings","cloakMode":"Mode","cloakStrict":"Strict mode","cloakSensitiveWords":"Sensitive words (one per line)","apiKeyEntriesSection":"API key entries","apiKeyEntry":"Key #{{index}}","addApiKeyEntry":"Add key entry","showApiKey":"Show API key","hideApiKey":"Hide API key","disableCooling":"Disable cooling","disableCoolingHint":"Disable failure cooldown windows only for this credential or provider","modelImage":"Allow image endpoints","modelImageHint":"Allow this model on /v1/images/generations and /v1/images/edits","showAllEntries":"Show all ({{count}})","showFewerEntries":"Show fewer","proxyBadge":"Proxy","modelBadgeImage":"Image","modelBadgeThinking":"Thinking","thinkingConfig":"Thinking capabilities","thinkingExistingHint":"Changes to effort levels preserve budgets and other untouched settings.","thinkingLevels":{"none":"Disable thinking","minimal":"Minimal","low":"Low","medium":"Medium","high":"High","xhigh":"Extra high","max":"Maximum","auto":"Automatic"},"cloakCacheUserId":"Cache user_id","cloakCacheUserIdHint":"Reuse the Claude cloak user_id per API key","fingerprintProfile":"Request fingerprint","fingerprintProfileDefault":"Default (caller-owned)","fingerprintProfileClaudeCodeCli":"Claude Code CLI","fingerprintProfileHint":"Keep the caller's prompt and headers by default, or opt in to the Claude Code CLI request fingerprint.","validation":{"nameRequired":"Name is required","apiKeyRequired":"At least one API key is required","baseUrlRequired":"Base URL is required","weightInteger":"Scheduling weight must be an integer","weightMax":"Scheduling weight cannot exceed {{max}}"}},"delete":{"title":"Delete resource","confirm":"Delete {{name}}? This action cannot be undone."},"toast":{"created":"Created","updated":"Updated","deleted":"Deleted","enabled":"Enabled","disabled":"Disabled","toggleFailed":"Failed to update status"},"unsavedChanges":{"title":"Discard unsaved changes?","message":"You have unsaved edits in this form. Closing will discard them.","discard":"Discard changes","keepEditing":"Keep editing"},"connectivity":{"test":"Test","testAll":"Test all","success":"Reachable","baseUrlRequired":"Base URL is required","endpointInvalid":"Endpoint URL is invalid","apiKeyRequired":"API key is required","modelRequired":"Test model is required","timeout":"Timed out after {{seconds}}s","requestFailed":"Request failed"},"discovery":{"openButton":"Fetch from endpoint","searchPlaceholder":"Search models","reload":"Reload","loading":"Loading models…","empty":"No models returned by the endpoint","notLoaded":"Click Reload to fetch models","selectAll":"Select all","clearAll":"Clear selection","selectedCount":"{{selected}} / {{total}}","alreadyAdded":"Already added","close":"Close","apply":"Apply ({{count}})"},"toolbar":{"sortBy":"Sort by","sort":{"name":"Name","priority":"Priority","recentSuccess":"Recent success","directionAsc":"Ascending","directionDesc":"Descending"},"filter":{"allModels":"All models","selectedModels":"{{selected}}/{{total}} models","selectAll":"Select all","clear":"Clear","empty":"No models configured yet"}},"modelCatalog":{"notLoaded":"Not loaded"}}`),claude_reset:{retry_confirm:`Retry the unknown reset for “{{name}}” with its original request ID? A reset may already have been spent. Retry within 10 minutes; do not reload or start another claim in another tab.`,remaining:`Resets remaining`,title:`Banked resets`,scope:`Uses a limited reset grant to clear eligible Claude usage windows. Only confirm when you want to spend a reset. Recovery is limited to this tab/session; do not reload or use another tab while an outcome is unknown.`,loading:`Loading…`,read_error:`Reset grants could not be read. Nothing was submitted.`,blocked:`Reset not submitted: eligibility, account identity, or session could not be verified. Refresh and check again.`,unknown:`The outcome is unknown. A reset may have been spent. Retry within 10 minutes using the same request ID; do not start another claim elsewhere.`,expired:`The retry window has expired. Further claims are blocked in this session. Check your Claude account before taking any further action.`,retry:`Retry the same claim`,empty:`No banked reset grants.`,count:`{{left}} / {{total}} resets remaining`,ends:`Expires: {{date}}`,use:`Reset limits`,confirm:`Confirm reset`,confirm_text:`Spend one reset to clear eligible usage limits for “{{name}}”? This uses a limited reset grant.`,reset:`Usage limits reset.`,already_used:`This grant was already used.`,not_limited:`No reset: the account is not currently limited.`,cooldown:`No reset: cooldown is active.`,ineligible:`This account is not eligible.`,unavailable:`Resets are currently unavailable.`,rate_limited:`Request rate limited.`,auth_error:`Authorization was refused.`}},sl={common:{login:`Войти`,logout:`Выйти`,back:`Назад`,cancel:`Отмена`,confirm:`Подтвердить`,leave:`Уйти`,stay:`Остаться`,save:`Сохранить`,delete:`Удалить`,edit:`Редактировать`,add:`Добавить`,update:`Обновить`,refresh:`Обновить`,close:`Закрыть`,success:`Успешно`,error:`Ошибка`,info:`Информация`,warning:`Внимание`,loading:`Загрузка...`,connecting:`Подключение...`,connected:`Подключено`,disconnected:`Отключено`,connecting_status:`Подключение`,connected_status:`Подключено`,disconnected_status:`Отключено`,yes:`Да`,no:`Нет`,not_set:`Не задано`,optional:`Необязательно`,required:`Обязательно`,api_key:`Ключ`,base_url:`Адрес`,prefix:`Префикс`,proxy_url:`Прокси`,priority:`Приоритет`,alias:`Псевдоним`,failure:`Сбой`,unknown_error:`Неизвестная ошибка`,quota_update_required:`Пожалуйста, обновите CPA или проверьте наличие обновлений`,quota_check_credential:`Пожалуйста, проверьте статус учётных данных`,copy:`Копировать`,expand:`Развернуть`,collapse:`Свернуть`,status:`Статус`,action:`Действие`,custom_headers_label:`Пользовательские заголовки`,custom_headers_hint:`Необязательно — HTTP-заголовки для отправки с запросом. Оставьте пустым для удаления.`,custom_headers_add:`Добавить заголовок`,custom_headers_key_placeholder:`Имя заголовка, например X-Custom-Header`,custom_headers_value_placeholder:`Значение заголовка`,model_name_placeholder:`Имя модели, напр. claude-3-5-sonnet-20241022`,model_alias_placeholder:`Псевдоним модели (необязательно)`,invalid_provider_index:`Неверный индекс провайдера.`,unsaved_changes_title:`Несохранённые изменения`,unsaved_changes_message:`У вас есть несохранённые изменения. Если вы уйдёте, они будут потеряны. Выйти?`},title:{login:`Центр управления CLI Proxy API`,abbr:`CPAMC`},splash:{title:`CLI Proxy API`,subtitle:`Центр управления`},login:{subtitle:`Подключение к CLI Proxy API v8 или новее`,connection_current:`Текущий URL`,connection_auto_hint:`Система автоматически использует текущий URL для подключения`,custom_connection_label:`Пользовательский URL подключения:`,custom_connection_placeholder:`Напр.: https://example.com:8317`,custom_connection_hint:`По умолчанию используется текущий URL. При необходимости замените его.`,remember_password_label:`Запомнить пароль`,management_key_label:`Ключ управления:`,management_key_placeholder:`Введите ключ управления`,submit_button:`Войти`,submitting:`Подключение...`,error_backend_detail:`Ответ сервера`,error_required:`Пожалуйста, заполните все данные подключения`,error_invalid:`Подключение не удалось, проверьте адрес сервера, Management API и ключ управления`,error_network:`Сетевая ошибка, проверьте подключение или адрес сервера`,error_timeout:`Время ожидания истекло, сервер не отвечает`,error_unauthorized:`Аутентификация не удалась, ключ управления отсутствует или неверен`,error_forbidden:`Доступ запрещён: удалённое управление отключено, ключ управления не настроен или IP временно заблокирован`,error_not_found:`Management API v8 не найден. Проверьте адрес сервера и обновите CLIProxyAPI до v8 или новее; API v0 не поддерживается.`,error_legacy_backend:`Этот сервер поддерживает Management API v0, но не v8. Обновите CLIProxyAPI до v8 или новее, чтобы использовать эту страницу управления.`,error_server:`Backend не смог обработать запрос управления, проверьте журналы сервера`,error_cors:`Блокировка CORS, проверьте конфигурацию сервера`,error_ssl:`Ошибка проверки SSL/TLS сертификата`},header:{refresh_all:`Обновить всё`,logout:`Выйти`},connection:{status:`Статус подключения:`},nav:{dashboard:`Панель`,quick_start:`Быстрый старт`,ai_providers:`Поставщики AI`,auth_files:`Файлы аутентификации`,oauth:`OAuth вход`,quota_management:`Управление квотами`,plugins:`Плагины`,plugin_store:`Магазин плагинов`,config_management:`Панель конфигурации`,logs:`Просмотр логов`,system_info:`Информация системы`},nav_groups:{operate:`Работа`,gateway:`Шлюз`,observe:`Наблюдение`,control:`Управление`},nav_meta:{dashboard:`Обзор работы`,quick_start:`Настройка APIKEY.FUN`,ai_providers:`Маршрутизация моделей`,auth_files:`Файлы и учётные данные`,oauth:`Авторизация OAuth`,quota_management:`API ключи и лимиты`,plugins:`Переключатели и ресурсы плагинов`,plugin_store:`Поиск и установка плагинов`,logs:`Трассировка запросов`,config_management:`Базовая конфигурация шлюза`,system_info:`Состояние и диагностика`},dashboard:{hero_verdict_good:`Всё стабильно`,hero_verdict_warning:`Небольшие сбои`,hero_verdict_critical:`Требует внимания`,hero_verdict_idle:`Пока тихо`,hero_verdict_offline:`Ожидает подключения`,hero_verdict_connecting:`Подключение`,hero_period:`.`,hero_requests_label:`Обработано запросов`,hero_live:`Live`,hero_window_meta:`Скользящее окно {{window}} · интервалы по 10 минут`,hero_spark_label:`Объём запросов за последние {{window}}`,cta_manage_providers:`Управлять провайдерами`,cta_inspect_logs:`Смотреть логи`,stats_aria:`Ключевые метрики`,success_rate:`Доля успешных`,stat_success_hint:`Из {{total}} запросов в окне`,stat_credentials:`Учётные данные`,stat_credentials_hint:`{{active}} активны · {{disabled}} не используются`,stat_credentials_empty:`Файлы учётных данных не найдены`,stat_provider_keys:`Ключи провайдеров`,stat_provider_keys_hint:`Всего настроенных API-ключей по всем брендам`,stat_models:`Модели`,stat_models_hint:`Доступны через эндпоинт прокси`,traffic_eyebrow:`Живой трафик`,traffic_title:`Пропускная способность по 10 минут`,traffic_description:`Успешные и неудачные запросы по 10-минутным интервалам за последние {{window}}. Наведите на столбец, чтобы увидеть точное распределение.`,traffic_table:`Таблица данных`,traffic_table_window:`Интервал`,traffic_chart_summary:`{{total}} запросов за последние {{minutes}} минут: успешно {{success}}, с ошибкой {{failed}}.`,traffic_unavailable:`Данных о трафике пока нет`,traffic_unavailable_hint:`Счётчики появятся после первого обработанного запроса.`,fleet_eyebrow:`Провайдеры`,fleet_title:`Все провайдеры рядом`,fleet_description:`Объём и доля успешных запросов по каждому провайдеру за то же окно.`,fleet_empty:`Трафик провайдеров пока не зафиксирован.`,fleet_credentials:`Учётных данных: {{value}}`,fleet_spark_label:`Объём запросов {{provider}}`,fleet_requests:`запросов`,provider_unknown:`Без привязки`,health_eyebrow:`Состояние`,health_title:`Статус учётных данных`,health_active:`Активны`,health_unavailable:`Недоступны`,health_disabled:`Отключены`,health_by_type:`По провайдерам`,health_empty:`Файлы учётных данных не найдены.`,health_link:`Открыть файлы авторизации`,runtime_eyebrow:`Среда`,runtime_title:`Конфигурация целиком`,runtime_routing:`Стратегия маршрутизации`,runtime_retry:`Повторы запросов`,runtime_management_keys:`Ключи управления`,runtime_version:`Версия сервера`,runtime_build:`Дата сборки`,runtime_proxy:`Внешний прокси`,runtime_debug:`Отладка`,runtime_file_logging:`Логи в файл`,runtime_request_log:`Лог запросов`,runtime_ws_auth:`Авторизация WebSocket`,runtime_model_prefix:`Префикс модели`,runtime_link:`Изменить конфигурацию`,cta_eyebrow:`Далее`,cta_title:`Куда двигаться дальше`,cta_providers_desc:`Добавляйте API-ключи, задавайте приоритеты и проверяйте бренды.`,cta_auth_files_desc:`Загрузка, обновление и отключение OAuth-данных.`,cta_config_desc:`Настройка маршрутизации, повторов, логов и доступа.`,cta_quota_desc:`Проверка остатка квоты по каждым учётным данным.`,cta_logs_desc:`Следите за запросами и скачивайте отчёты об ошибках.`,cta_system_desc:`Информация о версии и центре управления.`,window_m:`{{minutes}} мин`,window_h:`{{hours}} ч`,window_hm:`{{hours}} ч {{minutes}} мин`},basic_settings:{debug_enable:`Включить режим отладки`,proxy_url_label:`URL прокси:`,retry_count_label:`Количество повторов:`,logging_to_file_enable:`Включить журналирование в файл`,request_log_title:`Журналирование запросов`,request_log_enable:`Включить журналирование запросов`,request_log_warning:`Оставьте выключенным, если подробная диагностика не нужна.`,ws_auth_enable:`Требовать аутентификацию для /ws/*`,routing_strategy_round_robin:`round-robin (цикл)`,routing_strategy_weighted_round_robin:`weighted-round-robin (взвешенный цикл)`,routing_strategy_fill_first:`fill-first (приоритет)`},auth_files:JSON.parse(`{"title":"Управление файлами авторизации","meta_total":"{{count}} учётных данных","meta_active":"{{count}} активно","meta_problem":"{{count}} с проблемами","empty_title":"Учётных данных пока нет","empty_desc":"Загрузите файл аутентификации или подключите провайдера через OAuth.","empty_oauth_link":"Подключить через OAuth","no_results_clear":"Сбросить фильтры","title_section":"Файлы авторизации","upload_button":"Загрузить файл","delete_all_button":"Удалить всё","search_empty_title":"Файлы не найдены","search_empty_desc":"Попробуйте изменить фильтры или очистить строку поиска.","file_size":"Размер","file_modified":"Изменён","card_select":"Выбрать файл авторизации {{name}}","card_toggle":"Включить файл авторизации {{name}}","card_requests":"Запросы","cooldown_unknown":"Состояние задержки неизвестно","cooldown_models_one":"{{count}} модель на паузе","cooldown_models_few":"{{count}} модели на паузе","cooldown_models_many":"{{count}} моделей на паузе","cooldown_models_other":"{{count}} модели на паузе","cooldown_credential":"Задержка всего файла","cooldown_credential_and_models_one":"Файл и {{count}} модель на паузе","cooldown_credential_and_models_few":"Файл и {{count}} модели на паузе","cooldown_credential_and_models_many":"Файл и {{count}} моделей на паузе","cooldown_credential_and_models_other":"Файл и {{count}} модели на паузе","cooldown_scope_credential":"Весь файл авторизации","cooldown_earliest":"Ближайшее окончание через ~{{time}}","cooldown_elapsed":"Таймеры задержки истекли","cooldown_timer_elapsed":"Таймер истёк","cooldown_refresh_hint":"Обновите список для проверки","cooldown_seconds":"{{count}} с","cooldown_minutes":"{{count}} мин","cooldown_hours":"{{count}} ч","cooldown_http_status":"HTTP сервиса {{status}}","cooldown_backoff":"Уровень задержки {{level}}","cooldown_deadline":"Окончание таймера","cooldown_observed":"Время снимка","cooldown_note":"Снимок локального планировщика; оставшееся время приблизительное. Истечение таймера не гарантирует доступность, восстановление квоты или автоматический повтор. Названия моделей — внутренние ключи; уровень задержки — не число ошибок.","cooldown_reset_button":"Сбросить задержку","cooldown_reset_hint":"Сбросить локальную задержку маршрутизации для этого файла","cooldown_reset_title":"Сбросить задержку файла?","cooldown_reset_confirm":"Сбросить локальную задержку маршрутизации для «{{name}}»? Файл может сразу снова участвовать в запросах. Квота внешнего сервиса не восстановится.","cooldown_reset_success":"Задержка для {{name}} сброшена.","cooldown_reset_failed":"Не удалось сбросить задержку для {{name}}: {{message}}","cooldown_reason_quota":"Ограничение квоты","cooldown_reason_credential_quota":"Ограничение квоты файла","cooldown_reason_cloudflare_challenge":"Проверка Cloudflare","cooldown_reason_invalid_grant":"Недействительное разрешение","cooldown_reason_unauthorized":"Нет авторизации","cooldown_reason_payment_required":"Доступ ограничен (402/403; не подтверждает проблему оплаты)","cooldown_reason_not_found":"Ресурс не найден","cooldown_reason_model_not_supported":"Модель не поддерживается","cooldown_reason_transient_error":"Временная ошибка сервиса","cooldown_reason_unknown":"Другая или неизвестная причина","health_status_label":"Состояние","health_status_healthy":"Нормально","health_status_warning":"Предупреждение","health_status_disabled":"Отключено","download_button":"Скачать","refresh_all_button":"Обновить все учётные данные","refresh_all_confirm":"Обновить все подходящие учётные данные на сервере, независимо от текущего фильтра. Отключённые и неподходящие записи будут пропущены. Это не обновление списка и не сброс квот; операция может занять несколько минут. Продолжить?","refresh_all_results":"Результаты обновления учётных данных","refresh_all_summary":"Обновлено: {{success}}, ошибок: {{failed}}.","refresh_all_empty":"Нет учётных данных, подходящих для обновления.","refresh_all_failed":"Не удалось получить полные результаты обновления: {{message}}. Некоторые учётные данные могли обновиться. Проверьте список перед повторной попыткой.","refresh_result_success":"Обновлено","refresh_result_failed":"Ошибка обновления","manual_refresh_button":"Обновить учётные данные OAuth","manual_refresh_requested":"Запрошено обновление учётных данных для \\"{{name}}\\"","manual_refresh_failed":"Не удалось запросить обновление учётных данных для \\"{{name}}\\": {{message}}","delete_button":"Удалить","delete_confirm":"Удалить файл","delete_all_confirm":"Удалить все файлы авторизации? Это действие нельзя отменить!","delete_filtered_confirm":"Удалить все файлы авторизации {{type}}? Это действие нельзя отменить!","delete_problem_button":"Удалить проблемные","delete_problem_button_with_type":"Удалить проблемные файлы {{type}}","delete_problem_confirm":"Удалить все проблемные файлы авторизации? Это действие нельзя отменить!","delete_problem_filtered_confirm":"Удалить все проблемные файлы авторизации {{type}}? Это действие нельзя отменить!","delete_filtered_result_button":"Удалить результаты фильтра","delete_filtered_result_confirm":"Удалить файлы авторизации из текущих результатов фильтра? Это действие нельзя отменить!","upload_error_json":"Допустимы только файлы JSON","upload_error_size":"Размер файла не может превышать {{maxSize}}","upload_success":"Файл успешно загружен","download_success":"Файл успешно скачан","delete_success":"Файл успешно удалён","delete_all_success":"Удаление завершено","delete_filtered_success":"Удалено файлов {{type}}: {{count}}","delete_filtered_partial":"Удаление файлов {{type}} завершено: успешных {{success}}, ошибок {{failed}}","delete_filtered_none":"Нет файлов {{type}} для удаления при текущем фильтре","delete_problem_success":"Удалено проблемных файлов авторизации: {{count}}","delete_problem_filtered_success":"Удалено проблемных файлов авторизации {{type}}: {{count}}","delete_problem_partial":"Удаление проблемных файлов авторизации завершено: успешных {{success}}, ошибок {{failed}}","delete_problem_filtered_partial":"Удаление проблемных файлов авторизации {{type}} завершено: успешных {{success}}, ошибок {{failed}}","delete_problem_none":"Нет проблемных файлов авторизации для удаления при текущем фильтре","delete_problem_filtered_none":"Нет проблемных файлов авторизации {{type}} для удаления при текущем фильтре","delete_filtered_result_success":"Удалено файлов авторизации из результатов фильтра: {{count}}","delete_filtered_result_partial":"Удаление результатов фильтра завершено: успешных {{success}}, ошибок {{failed}}","delete_filtered_result_none":"Нет файлов авторизации для удаления в текущих результатах фильтра","pagination_prev":"Предыдущая","pagination_next":"Следующая","pagination_info":"Страница {{current}} / {{total}} · {{count}} файлов","search_label":"Поиск учётных данных по имени, аккаунту, типу, провайдеру или сообщению об ошибке","search_placeholder":"Поиск по имени, аккаунту, типу, провайдеру или ошибке (403, 429, invalid). Поддерживается *","problem_filter_label":"Фильтр статуса","problem_filter_all":"Все","problem_filter_enabled":"Вкл.","problem_filter_problem":"Пробл.","problem_filter_disabled":"Откл.","display_options_label":"Параметры отображения","compact_mode_label":"Компактный режим","sort_label":"Сортировка","sort_default":"По умолчанию","sort_az":"A-Z Имя","sort_priority":"Приоритет","priority_display":"Приоритет","weight_display":"Вес WRR","page_size_label":"На странице","filter_all":"Все","filter_qwen":"Qwen","filter_gemini":"Gemini","filter_kimi":"Kimi","filter_aistudio":"AIStudio","filter_claude":"Claude","filter_codex":"Codex","filter_meta":"Muse (Meta)","filter_devin":"Devin","filter_antigravity":"Antigravity","filter_xai":"xAI","filter_iflow":"iFlow","filter_vertex":"Vertex","filter_empty":"Пусто","filter_unknown":"Другое","type_virtual":"Виртуальный файл авторизации","models_button":"Модели","models_title":"Поддерживаемые модели","models_loading":"Загрузка списка моделей...","models_empty":"Для этих учётных данных нет доступных моделей","models_empty_desc":"Возможно, учётные данные ещё не загружены сервером или к ним не привязаны модели.","models_unsupported":"Функция не поддерживается в текущей версии","models_unsupported_desc":"Обновите CLI Proxy API до последней версии и повторите попытку","models_excluded_badge":"Отключена","models_excluded_hint":"Эта OAuth-модель отключена","status_toggle_label":"Включено","status_enabled_success":"\\"{{name}}\\" включён","status_disabled_success":"\\"{{name}}\\" отключён","batch_status_success":"{{count}} файлов обновлено","batch_status_partial":"{{success}} обновлено, {{failed}} не удалось","batch_delete_title":"Удалить выбранные файлы","batch_delete_confirm":"Удалить {{count}} файлов?","batch_selected":"{{count}} выбрано","batch_toolbar_label":"Групповые действия","batch_select_all":"Выбрать все","batch_select_page":"Выбрать страницу","batch_select_filtered":"Выбрать по фильтру","batch_invert_page":"Инвертировать страницу","batch_deselect":"Отменить","batch_download":"Скачать выбранные","batch_download_success":"Запущена загрузка {{count}} файлов","batch_download_partial":"Загрузка завершена: успешно {{success}}, ошибок {{failed}}","batch_enable":"Включить","batch_disable":"Отключить","prefix_proxy_button":"Просмотр / редактирование файла авторизации","prefix_proxy_loading":"Загрузка файла авторизации...","prefix_proxy_info_label":"Информация о файле авторизации (info)","prefix_proxy_source_label":"JSON файла авторизации (предпросмотр)","prefix_proxy_invalid_content_label":"Скачанное содержимое (сокращено)","prefix_label":"Префикс (prefix)","proxy_url_label":"URL прокси (proxy_url)","proxy_url_placeholder":"socks5://username:password@proxy_ip:port/","priority_label":"Приоритет (priority)","priority_placeholder":"например: 10 или -1","priority_hint":"Только целые числа. Некорректные значения игнорируются. Чем больше число, тем выше приоритет.","weight_label":"Вес планирования (weight)","weight_tooltip":"По умолчанию 1. Значения ≤ 0 исключают эти учётные данные из взвешенного планирования; максимум 1 000 000. После ввода значения включите взвешенный круговой алгоритм, чтобы настройка вступила в силу.","weight_hint":"По умолчанию 1. Значения ≤ 0 исключают эти учётные данные из взвешенного планирования; максимум 1 000 000. После ввода значения включите <settingsLink>взвешенный круговой алгоритм</settingsLink>, чтобы настройка вступила в силу.","weight_invalid_integer":"Вес должен быть целым числом.","weight_invalid_max":"Вес не может превышать 1 000 000.","disable_cooling_label":"Отключить экспоненциальный cooldown (disable_cooling)","disable_cooling_hint":"Отключает cooldown после ошибок и экспоненциальную задержку только для этих учётных данных; остальные не затрагиваются.","websockets_label":"WebSockets (websockets)","websockets_hint":"Включает websocket-транспорт Responses API для этих учётных данных.","using_api_label":"Использовать официальный API (using_api)","using_api_hint":"Если включено, используется официальный API xAI; если выключено — Grok CLI chat-proxy.","headers_label":"Пользовательские заголовки (headers)","headers_placeholder":"{\\n \\"Header-Name\\": \\"value\\"\\n}","headers_hint":"Введите пользовательские HTTP-заголовки в виде JSON-объекта, например: {\\"X-My-Header\\": \\"value\\"}","headers_invalid_json":"Заголовки должны быть записаны в корректном формате JSON.","headers_invalid_object":"Заголовки должны быть JSON-объектом.","headers_invalid_value":"Значение каждого заголовка должно быть строкой.","policy_alias_name":"Псевдоним","policy_alias_display_name":"Отображаемое имя","policy_alias_fork":"Сохранять исходную модель в списке","policy_alias_force_mapping":"Заменять имя модели в ответе псевдонимом","policy_unsupported":"Эти данные нельзя редактировать в форме. Они будут сохранены. Выберите наследование для очистки или замените данные новым списком.","policy_replace":"Заменить существующие данные","policy_retry_label":"Повторы запросов учётных данных","policy_inherit":"Наследовать","policy_custom":"Настроить","policy_retry_count":"Число повторов","policy_retry_hint":"Наследуется глобальная настройка request-retry. Значение 0 явно отключает повторы для этих учётных данных.","policy_aliases_label":"Псевдонимы моделей учётных данных","policy_aliases_hint":"Сначала проверяются локальные псевдонимы, затем псевдонимы канала. Наследование или пустой список очищает только локальные псевдонимы.","policy_rules_label":"Правила ошибок учётных данных","policy_rules_hint":"Свои правила применяются в порядке списка. Наследование или пустой список использует унаследованные правила, а не отключает их. Регулярные выражения используют синтаксис Go.","policy_retry_invalid":"Введите неотрицательное безопасное целое число или выберите наследование.","policy_aliases_invalid":"Укажите непустые имя модели и псевдоним в каждой новой или изменённой строке.","policy_rules_invalid":"В каждом изменённом правиле укажите положительный код статуса, действие и хотя бы одно непустое условие.","note_label":"Заметка (note)","note_placeholder":"Введите заметку, например: аккаунт Ивана","note_hint":"Необязательно. Используется для описания назначения или владельца учётных данных; оставьте пустым, чтобы не записывать.","excluded_models_label":"Исключённые модели (excluded_models)","prefix_proxy_invalid_json":"Этот файл авторизации не является JSON-объектом, поэтому поля нельзя редактировать.","prefix_proxy_html_challenge":"Скачанное содержимое является HTML-страницей проверки, а не JSON-объектом авторизации. Повторно авторизуйтесь или замените файл перед редактированием полей.","prefix_proxy_saved_success":"Файл авторизации \\"{{name}}\\" успешно обновлён","quota_refresh_single":"Обновить квоту","quota_refresh_hint":"Обновить квоту только для этих учётных данных","quota_refresh_success":"Квота для \\"{{name}}\\" обновлена","quota_refresh_failed":"Не удалось обновить квоту для \\"{{name}}\\": {{message}}"}`),antigravity_subscription:{plan_unknown:`Неизвестно`,plan_free:`Free`,plan_pro:`Pro`,plan_ultra:`Ultra`,plan_ultra_lite:`Ultra Lite`},antigravity_quota:{title:`Квота Antigravity`,empty_title:`Файлы авторизации Antigravity отсутствуют`,empty_desc:`Загрузите учётные данные Antigravity, чтобы увидеть оставшуюся квоту.`,idle:`Не загружено. Нажмите "Обновить квоту".`,loading:`Загрузка квоты...`,load_failed:`Не удалось загрузить квоту: {{message}}`,missing_auth_index:`В файле авторизации отсутствует auth_index`,missing_project_id:`В учётных данных Antigravity отсутствует project_id. Войдите заново или обновите учётные данные, чтобы определить проект.`,empty_models:`Данные по квоте отсутствуют`,plan_label:`План`,group_gemini_models:`Модели Gemini`,group_claude_gpt_models:`Модели Claude и GPT`,group_models_description:`Модели в этой группе: {{models}}`,weekly_limit:`Недельный лимит`,daily_limit:`Дневной лимит`,five_hour_limit:`Лимит на 5 часов`,monthly_limit:`Месячный лимит`,quota_available:`Квота доступна`,remaining_percent:`Осталось {{percent}}%`,refreshes_in:`Обновится через {{duration}}`,refresh_available:`Можно обновить`,duration_day_hour:`{{days}} д {{hours}} ч`,duration_hour_minute:`{{hours}} ч {{minutes}} мин`,duration_minute:`{{minutes}} мин`,duration_less_than_minute:`<1 мин`,refresh_button:`Обновить квоту`,fetch_all:`Получить все`},claude_quota:{title:`Квота Claude`,empty_title:`Файлы авторизации Claude OAuth отсутствуют`,empty_desc:`Войдите через Claude OAuth, чтобы увидеть квоту.`,idle:`Не загружено. Нажмите "Обновить квоту".`,loading:`Загрузка квоты...`,load_failed:`Не удалось загрузить квоту: {{message}}`,missing_auth_index:`В файле авторизации отсутствует auth_index`,empty_windows:`Данные по квоте отсутствуют`,refresh_button:`Обновить квоту`,fetch_all:`Получить все`,five_hour:`Лимит на 5 часов`,seven_day:`Лимит на 7 дней`,seven_day_oauth_apps:`7 дней OAuth приложения`,seven_day_opus:`7 дней Opus`,seven_day_sonnet:`7 дней Sonnet`,seven_day_cowork:`7 дней Cowork`,iguana_necktie:`Iguana Necktie`,seven_day_fable:`7 дней Fable 5`,extra_usage_label:`Дополнительное использование`,plan_label:`План`,plan_unknown:`Неизвестно`,plan_free:`Free`,plan_pro:`Pro`,plan_max:`Max`,plan_max5:`Max 5x`,plan_max20:`Max 20x`,plan_team:`Team`},codex_quota:{title:`Квота Codex`,empty_title:`Файлы авторизации Codex отсутствуют`,empty_desc:`Загрузите учётные данные Codex, чтобы увидеть квоту.`,idle:`Не загружено. Нажмите "Обновить квоту".`,loading:`Загрузка квоты...`,load_failed:`Не удалось загрузить квоту: {{message}}`,missing_auth_index:`В файле авторизации отсутствует auth_index`,missing_account_id:`В учётных данных Codex отсутствует идентификатор аккаунта ChatGPT`,empty_windows:`Данные по квоте отсутствуют`,no_access:`У этих учётных данных нет доступа Codex (план: free).`,refresh_button:`Обновить квоту`,fetch_all:`Получить все`,primary_window:`Лимит на 5 часов`,secondary_window:`Недельный лимит`,team_secondary_window:`Месячный лимит`,code_review_primary_window:`Лимит code review на 5 часов`,code_review_secondary_window:`Недельный лимит code review`,code_review_team_secondary_window:`Месячный лимит code review`,additional_primary_window:`{{name}}: лимит на 5 часов`,additional_secondary_window:`{{name}}: недельный лимит`,additional_team_secondary_window:`{{name}}: месячный лимит`,plan_label:`Тариф`,expires_label:`Истекает`,credit_balance_label:`Остаток кредитов`,credit_unlimited:`Без ограничений`,reset_credits_label:`Ручные сбросы`,reset_credits_expiry_label:`Срок действия ручных сбросов ({{timezone}})`,reset_credit_number:`Сброс {{index}}`,reset_credits_expiry_failed:`Не удалось загрузить срок действия ручных сбросов: {{message}}`,reset_credits_invalid_payload:`Недопустимый ответ о сроке действия ручных сбросов`,reset_button:`Сбросить квоту`,reset_confirm_title:`Сброс квоты Codex`,reset_confirm_message:`Для сброса квоты Codex для «{{name}}» будет использован 1 ручной сброс. Продолжить?`,reset_confirm_button:`Сбросить квоту`,reset_success:`Квота Codex для «{{name}}» сброшена`,reset_failed:`Не удалось сбросить квоту Codex для «{{name}}»: {{message}}`,plan_plus:`Plus`,plan_team:`Team`,plan_free:`Free`,plan_pro:`Pro 200`,plan_prolite:`Pro 100`,plan_business_premium:`Business Premium`},devin_quota:{daily:`Остаток на день`,weekly:`Остаток на неделю`,plan_label:`Тариф`,plan_end:`Окончание подписки`,unavailable:`Нет данных`,reset_unknown:`Время сброса неизвестно`,observed_at:`Данные квоты получены: {{time}}`,observed_unknown:`Время получения квоты неизвестно`,missing_identity:`Отсутствует имя или индекс учётных данных. Обновите список файлов.`,stale_request:`Подключение или учётные данные изменились. Повторите запрос.`,empty_data:`Devin не вернул доступных данных о квоте.`,loading:`Запрос квоты Devin…`,idle:`Нажмите для запроса квоты Devin`,load_failed:`Не удалось запросить квоту: {{message}}`,empty_title:`Нет учётных данных Devin`,empty_desc:`Загрузите файл учётных данных Devin или войдите через CLI сервера для запроса квоты.`},meta_quota:{title:`Квота Muse (Meta)`,empty_title:`Нет учётных данных Muse`,empty_desc:`Войдите через Muse OAuth или загрузите файл учётных данных Meta для запроса квоты.`,idle:`Нажмите для запроса квоты Muse`,loading:`Запрос квоты Muse…`,load_failed:`Не удалось запросить квоту: {{message}}`,missing_auth_index:`В файле учётных данных отсутствует auth_index`,empty_data:`Квота неизвестна. Возможно, вы ещё не отправляли запросы к модели.`,invalid_response:`Muse вернул ответ о квоте в неверном формате.`,request_failed:`Ошибка запроса квоты Muse. Проверьте действительность токена DCA.`,missing_file:`Для запроса квоты нужен доступный для скачивания файл авторизации Meta.`,missing_dca_token:`В файле авторизации нет действительного dca_token. Войдите через Muse OAuth заново.`,invalid_auth_file:`Скачанный файл авторизации содержит некорректный JSON.`,download_failed:`Не удалось скачать файл авторизации для запроса квоты.`,stale_request:`Подключение или учётные данные изменились. Повторите запрос.`,plan:`Тариф`,active:`Подписка активна`,inactive:`Подписка неактивна`,window:`Квота за период`,window_duration:`Период: {{minutes}} мин.`,weekly:`Недельная квота`,unknown:`Неизвестно`,remaining:`Осталось {{percent}}%`},kimi_quota:{title:`Квота Kimi`,empty_title:`Файлы авторизации Kimi отсутствуют`,empty_desc:`Загрузите учётные данные Kimi, чтобы увидеть оставшуюся квоту.`,domain_unavailable:`Не удалось прочитать домен учётных данных Kimi. Требуется доступный для скачивания корректный файл авторизации.`,stale_request:`Подключение или учётные данные изменились. Повторите попытку.`,idle:`Не загружено. Нажмите "Обновить квоту".`,loading:`Загрузка квоты...`,load_failed:`Не удалось загрузить квоту: {{message}}`,missing_auth_index:`В файле авторизации отсутствует auth_index`,empty_data:`Данные по квоте отсутствуют`,refresh_button:`Обновить квоту`,fetch_all:`Получить все`,weekly_limit:`Недельный лимит`,monthly_limit:`Месячный лимит`,limit_window:`Лимит {{duration}}`,limit_index:`Лимит #{{index}}`,reset_hint:`сброс через {{hint}}`},xai_quota:{title:`Квота Grok`,empty_title:`Файлы авторизации xAI/Grok отсутствуют`,empty_desc:`Войдите через xAI OAuth, чтобы увидеть квоту Grok.`,idle:`Не загружено. Нажмите "Обновить квоту".`,loading:`Загрузка квоты...`,load_failed:`Не удалось загрузить квоту: {{message}}`,missing_auth_index:`В файле авторизации отсутствует auth_index`,empty_data:`Данные по квоте отсутствуют`,refresh_button:`Обновить квоту`,fetch_all:`Получить все`,weekly_limit:`Недельный лимит`,monthly_credits:`Месячные кредиты`,used_percent:`Использовано {{percent}}`,usage_unavailable:`Данные об использовании недоступны от xAI`,reset_at:`Сброс {{time}}`,product_usage:`Использование {{product}}`,plan_label:`План`,resets_label:`Сброс`,prepaid:`Предоплата`,plan_supergrok:`SuperGrok`,plan_supergrok_heavy:`SuperGrok Heavy`,plan_paid:`Платный`,paid_health:`Чат платного API доступен. xAI не предоставляет данные об общей квоте для этих учётных данных OAuth.`,pay_as_you_go_label:`Оплата по факту`,pay_as_you_go_enabled:`Включено, лимит {{cap}}`,pay_as_you_go_disabled:`Отключено`},vertex_import:{title:`Вход с Vertex JSON`,description:`Загрузите JSON ключа сервисного аккаунта Google, чтобы сохранить его как auth-dir/vertex-<project>.json по тем же правилам, что и помощник CLI vertex-import.`,location_label:`Регион (необязательно)`,location_placeholder:`us-central1`,location_hint:`Оставьте пустым, чтобы использовать регион us-central1 по умолчанию.`,file_label:`JSON ключ сервисного аккаунта`,file_hint:`Принимаются только JSON-файлы ключей сервисных аккаунтов Google Cloud.`,file_placeholder:`Файл не выбран`,choose_file:`Выбрать файл`,import_button:`Импортировать учётные данные Vertex`,file_required:`Сначала выберите файл учётных данных .json`,success:`Учётные данные Vertex успешно импортированы`,result_title:`Учётные данные сохранены`,result_project:`ID проекта`,result_email:`Сервисный аккаунт`,result_location:`Регион`,result_file:`Сохранённый файл`},oauth_excluded:{editor_description:`Настройте скрытые модели провайдера: выберите отдельные модели или задайте шаблоны.`,models_hint:`Разверните список для выбора моделей или введите шаблоны ниже.`,title:`Отключение OAuth-моделей`,description:`Отключения моделей по провайдерам отображаются карточками; нажмите карточку, чтобы изменить или удалить. Поддерживаются шаблоны *. Область зависит от фильтра файлов авторизации.`,add:`Добавить отключение`,add_title:`Добавление отключения моделей для провайдера`,edit_title:`Редактирование отключения моделей для {{provider}}`,provider_label:`Провайдер`,provider_placeholder:`например: codex / openai`,provider_hint:`По умолчанию используется текущий фильтр; выберите существующего провайдера или введите новое имя.`,models_label:`Отключаемые модели`,save:`Сохранить/обновить`,save_success:`Отключение моделей обновлено`,save_failed:`Не удалось обновить отключение моделей`,delete:`Удалить провайдера`,delete_confirm:`Удалить отключение моделей для {{provider}}?`,delete_success:`Отключение моделей провайдера удалено`,delete_failed:`Не удалось удалить отключение моделей`,no_models:`Отключаемые модели не настроены`,model_count:`Отключено моделей: {{count}}`,list_empty_all:`Отключений моделей пока нет — используйте "Добавить отключение".`,provider_required:`Сначала укажите провайдера`,upgrade_required:`Текущая версия CPA не поддерживает отключение OAuth-моделей. Пожалуйста, обновите систему.`,upgrade_required_title:`Пожалуйста, обновите CLI Proxy API`,upgrade_required_desc:`Текущая версия сервера не поддерживает получение отключения OAuth-моделей. Обновите CPA (CLI Proxy API) до последней версии и повторите попытку.`},excluded_models:{trigger_summary:`Исключено: {{excluded}} · доступно: {{available}}`,trigger_summary_rules:`Правил: {{n}}`,trigger_empty:`Нет исключённых моделей`,meter_aria:`Исключено {{excluded}} из {{total}} моделей`,search_placeholder:`Поиск моделей…`,search_aria:`Поиск моделей для исключения`,list_aria:`Модели`,no_results:`Нет моделей по запросу «{{query}}»`,catalog_loading:`Загрузка моделей…`,catalog_unavailable:`Список моделей недоступен — правила всё равно применяются.`,catalog_error:`Не удалось загрузить модели.`,catalog_retry:`Повторить`,catalog_empty:`Нет моделей для отображения.`,footer_count:`Исключено {{excluded}} / {{total}}`,select_all:`Исключить все`,clear:`Очистить`,clear_aria:`Очистить выбранные модели (правила с подстановкой останутся)`,badge_wildcard:`По правилу`,badge_unknown:`Нет в списке`,wildcard_reason:`Соответствует правилу {{rule}}`,wildcard_locked:`Исключено правилом {{rule}} — измените правило ниже`,also_wildcard:`Также соответствует {{rule}}`,chips_more:`+{{n}}`,chip_remove:`Не исключать {{rule}}`,rules_label:`Правила с подстановкой`,rules_placeholder:`По одному правилу в строке, например gpt-5-*`,rules_hint:`* соответствует любым символам. Регистр не учитывается.`,rules_match_count:`соответствует моделям: {{n}}`,rules_match_none:`не соответствует ни одной модели из списка`,rules_reserved:`«*» отключает провайдера целиком — используйте переключатель «Отключено»`},oauth_model_alias:{editor_description:`Задайте единые имена моделей провайдера для использования в клиентах.`,edit_title:`Редактирование псевдонимов моделей {{provider}}`,mapping_hint:`Выберите исходную модель и укажите псевдоним для клиентов.`,mapping_row:`Сопоставление {{number}}`,remove_mapping:`Удалить сопоставление {{number}}`,title:`Псевдонимы моделей OAuth`,add:`Добавить псевдоним`,add_title:`Добавление псевдонимов моделей провайдера`,provider_label:`Провайдер`,provider_placeholder:`например: codex / vertex`,provider_hint:`По умолчанию используется текущий фильтр; выберите существующего провайдера или введите новое имя.`,model_source_loading:`Загрузка моделей...`,model_source_unsupported:`Текущая версия CPA не поддерживает загрузку списка моделей (ручной ввод остаётся доступным).`,model_source_loaded:`Загружено моделей: {{count}}. Используйте выпадающий список "Исходная модель" или введите своё значение. Сохранение пустого списка удаляет провайдера. Включите "Сохранить оригинал", чтобы оставить исходное имя вместе с псевдонимом.`,alias_label:`Псевдонимы моделей`,alias_name_placeholder:`Исходное имя модели`,alias_placeholder:`Псевдоним (обязательно)`,duplicate_alias:`Каждый псевдоним этого провайдера должен быть уникальным.`,alias_fork_label:`Сохранить оригинал`,add_alias:`Добавить псевдоним`,save:`Сохранить/обновить`,save_success:`Псевдонимы моделей обновлены`,save_failed:`Не удалось обновить псевдонимы моделей`,delete:`Удалить провайдера`,delete_confirm:`Удалить псевдонимы моделей для {{provider}}?`,delete_link_title:`Убрать сопоставление`,delete_link_confirm:`Удалить сопоставление из <code>{{sourceModel}}</code> ({{provider}}) к псевдониму <code>{{alias}}</code>?`,delete_alias_title:`Удалить псевдоним`,delete_alias_confirm:`Удалить псевдоним <code>{{alias}}</code> и все связанные сопоставления?`,delete_success:`Псевдонимы моделей удалены`,delete_failed:`Не удалось удалить псевдонимы моделей`,no_models:`Псевдонимов нет`,model_count:`Количество псевдонимов: {{count}}`,list_empty_all:`Псевдонимы ещё не созданы — используйте "Добавить псевдоним".`,chart_title:`Обзор всех сопоставлений`,diagram_providers:`Провайдеры`,diagram_source_models:`Исходные модели`,diagram_aliases:`Псевдонимы`,diagram_expand:`Развернуть`,diagram_collapse:`Свернуть`,diagram_add_alias:`Добавить псевдоним`,diagram_rename:`Переименовать`,diagram_rename_alias_title:`Переименование псевдонима`,diagram_rename_alias_label:`Новое имя псевдонима`,diagram_rename_placeholder:`Введите имя псевдонима...`,diagram_delete_link:`Убрать связь {{provider}} / {{name}}`,diagram_delete_alias:`Удалить псевдоним`,diagram_please_enter_alias:`Введите имя псевдонима.`,diagram_alias_exists:`Этот псевдоним уже существует.`,diagram_add_alias_title:`Добавление псевдонима`,diagram_add_alias_label:`Имя псевдонима`,diagram_add_placeholder:`Введите новое имя псевдонима...`,diagram_rename_btn:`Переименовать`,diagram_add_btn:`Добавить`,diagram_settings:`Настройки`,diagram_settings_title:`Настройки псевдонима — {{alias}}`,diagram_settings_source_title:`Настройки исходной модели`,diagram_settings_empty:`Для этого псевдонима ещё нет сопоставлений.`,diagram_tap_hint:`На сенсорных устройствах: коснитесь исходной модели, затем псевдонима для связывания.`,view_mode_diagram:`Диаграмма`,view_mode_list:`Список`,provider_required:`Сначала укажите провайдера`,upgrade_required:`Эта функция требует более новой версии CLI Proxy API (CPA). Обновите систему.`,upgrade_required_title:`Пожалуйста, обновите CLI Proxy API`,upgrade_required_desc:`Текущая версия сервера не поддерживает API псевдонимов моделей OAuth. Обновите CLI Proxy API (CPA) до последней версии.`},auth_login:JSON.parse(`{"devin_oauth_cancel":"Отменить вход в Devin","devin_oauth_cancelled":"Вход в Devin отменён.","devin_oauth_cancel_error":"Не удалось отменить вход в Devin:","devin_oauth_retry_hint":"Сервер может всё ещё ожидать авторизацию. Отмените эту попытку входа перед новой.","devin_oauth_title":"Devin OAuth","devin_oauth_button":"Войти в Devin","devin_oauth_hint":"Войдите в Devin / Cognition через OAuth в браузере для сохранения файла аутентификации. Требуется CLI Proxy API v7.3.1 или новее; завершите авторизацию в течение пяти минут.","devin_oauth_url_label":"URL авторизации:","devin_copy_link":"Копировать ссылку","devin_open_link":"Открыть ссылку","devin_oauth_status_waiting":"Ожидание аутентификации Devin...","devin_oauth_status_success":"Аутентификация Devin успешна!","devin_oauth_status_error":"Ошибка аутентификации Devin:","devin_oauth_start_error":"Не удалось запустить Devin OAuth:","devin_callback_hint":"Удалённый сервер: скопируйте полный конечный URL /devin/callback?… из адресной строки, даже если локальный адрес недоступен. Сохраните порт, http/https, code и state без изменений. Отправьте URL здесь и дождитесь завершения аутентификации.","devin_callback_placeholder":"http://127.0.0.1:<порт-сервера>/devin/callback?code=...&state=...","devin_callback_invalid":"Вставьте полный URL обратного вызова http/https со state и кодом авторизации или ошибкой.","devin_callback_state_mismatch":"Этот обратный вызов не относится к текущему входу в Devin. Используйте конечный URL этой попытки, а не старый URL.","recommended_provider_section":"Рекомендуемый провайдер","recommended_provider_badge":"Рекомендуемый провайдер","other_oauth_providers":"Другие провайдеры OAuth","other_login_methods":"Другие способы входа","codex_oauth_title":"Codex OAuth","codex_oauth_button":"Начать вход Codex","codex_oauth_hint":"Выполните вход в сервис Codex через OAuth и автоматически получите/сохраните файлы авторизации.","codex_oauth_url_label":"URL авторизации:","codex_open_link":"Открыть ссылку","codex_copy_link":"Скопировать ссылку","codex_oauth_status_waiting":"Ожидание аутентификации...","codex_oauth_status_success":"Аутентификация успешна!","codex_oauth_status_error":"Ошибка аутентификации:","codex_oauth_start_error":"Не удалось запустить Codex OAuth:","codex_oauth_polling_error":"Не удалось проверить статус аутентификации:","anthropic_oauth_title":"Anthropic OAuth","anthropic_oauth_button":"Начать вход Anthropic","anthropic_oauth_hint":"Выполните вход в сервис Anthropic (Claude) через OAuth и автоматически получите/сохраните файлы авторизации.","anthropic_oauth_url_label":"URL авторизации:","anthropic_open_link":"Открыть ссылку","anthropic_copy_link":"Скопировать ссылку","anthropic_oauth_status_waiting":"Ожидание аутентификации...","anthropic_oauth_status_success":"Аутентификация успешна!","anthropic_oauth_status_error":"Ошибка аутентификации:","anthropic_oauth_start_error":"Не удалось запустить Anthropic OAuth:","anthropic_oauth_polling_error":"Не удалось проверить статус аутентификации:","antigravity_oauth_title":"Antigravity OAuth","antigravity_oauth_button":"Начать вход Antigravity","antigravity_oauth_hint":"Выполните вход в сервис Antigravity (Google) через OAuth и автоматически получите/сохраните файлы авторизации.","antigravity_oauth_url_label":"URL авторизации:","antigravity_open_link":"Открыть ссылку","antigravity_copy_link":"Скопировать ссылку","antigravity_oauth_status_waiting":"Ожидание аутентификации...","antigravity_oauth_status_success":"Аутентификация успешна!","antigravity_oauth_status_error":"Ошибка аутентификации:","antigravity_oauth_start_error":"Не удалось запустить Antigravity OAuth:","antigravity_oauth_polling_error":"Не удалось проверить статус аутентификации:","meta_oauth_title":"Muse (Meta) OAuth","meta_oauth_button":"Войти через Muse","meta_oauth_hint":"Откройте ссылку авторизации и введите код устройства, если потребуется. Файлы авторизации будут сохранены автоматически.","meta_oauth_url_label":"URL авторизации:","meta_open_link":"Открыть ссылку","meta_copy_link":"Скопировать ссылку","meta_oauth_status_waiting":"Ожидание аутентификации...","meta_oauth_status_success":"Аутентификация успешна!","meta_oauth_status_error":"Ошибка аутентификации:","meta_oauth_start_error":"Не удалось запустить Muse OAuth:","meta_oauth_polling_error":"Не удалось проверить статус аутентификации:","device_code_label":"Код устройства:","device_code_copy":"Скопировать код устройства","kimi_ai_oauth_title":"Kimi — международный сайт (kimi.ai)","kimi_ai_oauth_button":"Войти в Kimi International","kimi_ai_oauth_hint":"Войдите в международный аккаунт kimi.ai через авторизацию устройства. Отдельный файл kimi-ai сохраняется автоматически. Аккаунты китайского и международного сайтов не взаимозаменяемы.","kimi_ai_oauth_url_label":"Ссылка авторизации:","kimi_ai_open_link":"Открыть ссылку","kimi_ai_copy_link":"Копировать ссылку","kimi_ai_oauth_status_waiting":"Ожидание авторизации...","kimi_ai_oauth_status_success":"Авторизация успешна!","kimi_ai_oauth_status_error":"Ошибка авторизации:","kimi_ai_oauth_start_error":"Не удалось начать вход в Kimi International:","kimi_ai_oauth_polling_error":"Не удалось проверить статус авторизации:","kimi_oauth_title":"Kimi — китайский сайт (kimi.com)","kimi_oauth_button":"Войти в Kimi China","kimi_sign_up_button":"Зарегистрироваться сейчас","kimi_oauth_hint":"Войдите в китайский аккаунт kimi.com через авторизацию устройства. Файлы сохраняются автоматически. Для международных аккаунтов используйте отдельный вход kimi.ai.","kimi_oauth_url_label":"URL авторизации:","kimi_open_link":"Открыть ссылку","kimi_copy_link":"Скопировать ссылку","kimi_oauth_status_waiting":"Ожидание аутентификации...","kimi_oauth_status_success":"Аутентификация успешна!","kimi_oauth_status_error":"Ошибка аутентификации:","kimi_oauth_start_error":"Не удалось запустить Kimi OAuth:","kimi_oauth_polling_error":"Не удалось проверить статус аутентификации:","xai_oauth_title":"xAI OAuth","xai_oauth_button":"Начать вход xAI","xai_oauth_hint":"Выполните вход в xAI Grok через OAuth и автоматически получите/сохраните файлы авторизации.","xai_oauth_url_label":"URL авторизации:","xai_open_link":"Открыть ссылку","xai_copy_link":"Скопировать ссылку","xai_oauth_status_waiting":"Ожидание аутентификации...","xai_oauth_status_success":"Аутентификация успешна!","xai_oauth_status_error":"Ошибка аутентификации:","xai_oauth_start_error":"Не удалось запустить xAI OAuth:","xai_oauth_polling_error":"Не удалось проверить статус аутентификации:","plugin_oauth_title":"{{name}} OAuth","plugin_oauth_button":"Начать вход {{name}}","plugin_oauth_hint":"Выполните вход в {{name}} через OAuth-поток плагина и автоматически получите/сохраните файлы авторизации.","plugin_oauth_url_label":"URL авторизации:","plugin_open_link":"Открыть ссылку","plugin_copy_link":"Скопировать ссылку","plugin_oauth_status_waiting":"Ожидание аутентификации...","plugin_oauth_status_success":"Аутентификация успешна!","plugin_oauth_status_error":"Ошибка аутентификации:","plugin_oauth_start_error":"Не удалось запустить OAuth плагина:","xai_callback_label":"Callback URL или код","xai_callback_placeholder":"Вставьте код со страницы Grok или полный callback URL","xai_callback_hint":"Grok иногда показывает только код на странице. Вставьте этот код напрямую, приложение автоматически отправит его как http://127.0.0.1:56121/callback?...","xai_callback_required":"Сначала вставьте код со страницы Grok или полный callback URL.","xai_callback_state_missing":"Отсутствует state для этого входа xAI. Запустите вход xAI заново и затем отправьте код.","oauth_callback_label":"Callback URL","oauth_callback_placeholder":"http://localhost:1455/auth/callback?code=...&state=...","oauth_callback_hint":"Режим удалённого браузера: после перенаправления провайдера на http://localhost:... скопируйте полный URL и отправьте его здесь.","oauth_callback_button":"Отправить Callback URL","oauth_callback_required":"Сначала вставьте полный URL перенаправления.","oauth_callback_success":"Callback URL отправлен. Продолжайте ожидать аутентификацию.","oauth_callback_error":"Не удалось отправить Callback URL:","oauth_callback_upgrade_hint":"Обновите CLI Proxy API или проверьте подключение.","oauth_callback_status_success":"Callback URL отправлен, ожидаем аутентификацию...","oauth_callback_status_error":"Не удалось отправить Callback URL:","missing_state":"Не удалось получить параметр состояния аутентификации","login_another_account":"Войти в другой аккаунт","view_auth_files":"Открыть файлы авторизации","iflow_oauth_title":"iFlow OAuth","iflow_oauth_button":"Начать вход iFlow","iflow_oauth_hint":"Выполните вход в сервис iFlow через OAuth и автоматически получите/сохраните файлы авторизации.","iflow_oauth_url_label":"URL авторизации:","iflow_open_link":"Открыть ссылку","iflow_copy_link":"Скопировать ссылку","iflow_oauth_status_waiting":"Ожидание аутентификации...","iflow_oauth_status_success":"Аутентификация успешна!","iflow_oauth_status_error":"Ошибка аутентификации:","iflow_oauth_start_error":"Не удалось запустить iFlow OAuth:","iflow_oauth_polling_error":"Не удалось проверить статус аутентификации:","remote_access_disabled":"Этот способ входа недоступен при удалённом доступе. Подключитесь с localhost."}`),stats:{success:`Успех`,failure:`Сбой`},status_bar:{success_short:`✓`,failure_short:`✗`,no_requests:`Нет запросов`},logs:{preview_too_large:`Журнал запроса превышает лимит предпросмотра в 2 МиБ. Скачайте его для просмотра.`,read_status_live:`Непрерывное чтение`,read_status_paused:`Чтение приостановлено`,read_status_catching_up:`Чтение накопившихся журналов`,last_updated:`Последнее успешное обновление: {{time}}`,buffer_scope:`Поиск только по загруженным журналам: строк в кэше — {{count}}, совпадений — {{matched}}`,buffer_evicted:`Старые записи удалены из кэша и недоступны для поиска здесь`,cursor_reset_notice:`Журналы были ротированы или сброшены. Последние записи загружены заново.`,history_evicted:`Текущая позиция чтения больше не находится в кэше. Выберите новую позицию.`,resume_following:`К последним записям · Новых строк: {{count}}`,level_filter:`Уровень журнала`,all_levels:`Все уровни`,view_request:`Просмотреть журнал запроса {{id}}`,copy_line:`Скопировать эту строку`,request_log_missing:`Журнал запроса не найден: возможно, он не был записан или уже удалён. При отключённом журналировании запросов обычно сохраняются только журналы ошибок запросов.`,download_cached:`Скачать журналы из кэша`,clear_application_confirm:`Очистить журналы приложения на сервере? Файлы журналов запросов не будут удалены. Это действие нельзя отменить.`,clear_search:`Очистить поиск`,reading_enabled:`Непрерывное чтение`,filter_load_more:`Показать больше совпадающих записей`,title:`Просмотр журналов`,refresh_button:`Обновить журналы`,clear_button:`Очистить журналы`,fullscreen_button:`На весь экран`,exit_fullscreen_button:`Выйти из полноэкранного режима`,download_button:`Скачать журналы`,error_logs_modal_title:`Журналы ошибок запросов`,error_logs_description:`Выберите файл журнала ошибок запроса, чтобы открыть или скачать его (создаётся только при отключённом журналировании запросов).`,error_logs_request_log_enabled:`Журналирование запросов включено, поэтому этот список всегда будет пустым. Отключите журналирование запросов и обновите список, чтобы просмотреть журналы ошибок.`,error_logs_empty:`Файлы журнала ошибок запросов не найдены`,error_logs_load_error:`Не удалось загрузить список журналов ошибок`,error_logs_size:`Размер`,error_logs_modified:`Изменён`,error_logs_open:`Открыть`,error_logs_download:`Скачать`,error_log_view_title:`Подробности журнала ошибок запроса`,error_log_open_failed:`Не удалось открыть журнал ошибок`,error_log_empty_content:`Этот журнал ошибок пуст`,error_log_copy_success:`Содержимое журнала ошибок скопировано`,error_log_download_success:`Журнал ошибок успешно скачан`,request_log_download_title:`Скачать журнал запросов`,request_log_download_confirm:`Скачать журнал запросов с идентификатором {{id}}?`,request_log_download_success:`Журнал запросов успешно скачан`,empty_title:`Журналы недоступны`,empty_desc:`Когда включена опция "Включить журналирование в файл", журналы появятся здесь`,cpa_file_logging_required:`Подключён режим CPA. Для просмотра журналов сначала включите запись журналов в файл.`,cpa_file_logging_required_title:`Требуется файловое журналирование`,cpa_file_logging_required_desc:`CPA читает этот журнал из локальных файлов. Включите logging-to-file в конфигурации и обновите страницу.`,file_logging_required:`Этот endpoint журналов требует включить запись журналов в файл перед чтением файловых журналов.`,file_logging_required_title:`Требуется файловое журналирование`,file_logging_required_desc:`Этот endpoint журналов читает локальные файлы. Включите logging-to-file в конфигурации и обновите страницу.`,log_content:`Содержимое журнала`,loading:`Загрузка журналов...`,load_error:`Не удалось загрузить журналы`,clear_confirm:`Очистить все журналы? Действие нельзя отменить!`,clear_success:`Журналы успешно очищены`,download_success:`Журналы успешно скачаны`,auto_refresh:`Автообновление`,load_more_hint:`Прокрутите вверх, чтобы загрузить ещё`,hidden_lines:`Скрыто: {{count}} строк`,loaded_lines:`Загружено: {{count}} строк`,filtered_lines:`Отфильтровано: {{count}} строк`,hide_management_logs:`Скрыть журналы {{prefix}}`,show_raw_logs:`Показать исходные журналы`,show_raw_logs_hint:`Показать текст журнала без обработки для удобного копирования в несколько строк`,search_placeholder:`Искать по содержимому или ключевым словам`,filter_panel_title:`Фильтры и вид`,wrap_lines:`Перенос длинных строк`,filter_panel_expand:`Развернуть структурные фильтры`,filter_panel_collapse:`Свернуть структурные фильтры`,filter_panel_active_count:`Активно: {{count}}`,filter_method:`Метод`,filter_status:`Статус`,filter_path:`Путь`,filter_path_empty:`Нет доступных путей`,filter_status_2xx:`2xx`,filter_status_3xx:`3xx`,filter_status_4xx:`4xx`,filter_status_5xx:`5xx`,clear_filters:`Очистить фильтры`,search_empty_title:`Подходящих журналов не найдено`,search_empty_desc:`Попробуйте другой запрос или сбросьте фильтры.`,double_click_copy_hint:`Дважды нажмите, чтобы скопировать строку журнала`,copy_success:`Строка журнала скопирована`,copy_failed:`Не удалось скопировать`},config_management:JSON.parse(`{"title":"Панель конфигурации","meta_fields":"Настроек: {{count}}","meta_dirty":"Не сохранено: {{count}}","meta_dirty_source":"Несохранённые правки исходника","meta_errors":"Ошибок валидации: {{count}}","meta_synced":"Синхронизировано","actions":{"discard":"Отменить изменения","save":"Сохранить изменения"},"discard_confirm_message":"Отменить все несохранённые изменения и восстановить последнюю версию с сервера?","mode":{"label":"Режим редактора","visual":"Визуальный","source":"Исходный код"},"reload":"Перезагрузить","reload_confirm_message":"Перезагрузка отбросит ваши несохранённые изменения. Продолжить?","save":"Сохранить","status_loading":"Загрузка конфигурации...","status_loading_short":"Загрузка","status_loaded":"Конфигурация загружена","status_loaded_short":"Загружено","status_dirty":"Есть несохранённые изменения","status_dirty_short":"Несохранено","status_disconnected":"Подключитесь к серверу, чтобы загрузить конфигурацию","status_disconnected_short":"Нет связи","status_load_failed":"Не удалось загрузить","status_load_failed_short":"Ошибка","status_saving":"Сохранение конфигурации...","status_saving_short":"Сохранение","save_success":"Конфигурация успешно сохранена","visual_mode_unavailable":"Визуальный редактор недоступен, пока не исправлен синтаксис YAML","visual_mode_unavailable_short":"Ошибка YAML","validation_blocked_short":"Есть ошибки","visual_mode_unavailable_detail":"Визуальный редактор недоступен, потому что в конфигурации есть некорректный YAML: {{message}}","visual_mode_save_blocked":"Нельзя сохранять из визуального режима, пока не исправлен синтаксис YAML","source_changes_before_visual":"Сохраните или отмените изменения исходника перед переходом в визуальный режим.","precise_save_incomplete":"Точечное сохранение не завершено; часть изменений могла примениться. Черновик сохранён. Повторите сохранение, чтобы проверить оставшиеся отличия от серверной конфигурации.","concurrent_list_conflict":"Список {{path}} на сервере изменился после создания базы черновика. Сохранение заблокировано, чтобы не затереть эти изменения. Черновик сохранён; запишите свои правки, затем перезагрузите конфигурацию и согласуйте изменения.","precise_save_recovery_required":"Не удалось прочитать результат сохранения. Редактирование приостановлено. Повторите сохранение, чтобы обновить базу черновика, или перезагрузите конфигурацию.","visual_mode_latest_yaml_invalid":"Последняя конфигурация на сервере содержит некорректный YAML. Проверьте её в режиме исходника перед сохранением визуальных изменений: {{message}}","editor_placeholder":"key: value","search_placeholder":"Поиск по конфигурации...","search_button":"Поиск","search_no_results":"Нет результатов","search_prev":"Назад","search_next":"Вперёд","diff":{"title":"Обзор изменений","confirm":"Подтвердить","no_changes":"Изменений не обнаружено"},"visual":{"serverExtras":{"trustedProxies":{"label":"Доверенные прокси","hint":"IP-адреса или CIDR; пустой список отключает доверие к заголовкам пересылки. Доверие ко всем адресам создаёт риск подмены IP клиента. Нужен перезапуск бэкенда."},"discoveryEnabled":{"label":"Включить обнаружение","hint":"Объявлять сервис через mDNS / DNS-SD в локальной сети. По умолчанию выключено; изменения применяются без перезапуска."},"discoveryServiceName":{"label":"Префикс имени сервиса","hint":"Бэкенд добавляет короткий ID. Если пусто, используется CPA-<ShortID>."},"discoveryServiceType":{"label":"Тип сервиса","hint":"Если пусто, используется _ai-gateway._tcp."},"discoverySubtypes":{"label":"Подтипы протоколов","hint":"Если пусто, используются пять стандартных протоколов. Начальный _ добавляется автоматически; неверные записи игнорируются."},"discoveryInterfacesInclude":{"label":"Включить интерфейсы","hint":"Если пусто, физические интерфейсы локальной сети выбираются автоматически. Укажите имена или префиксы с * в конце."},"discoveryInterfacesExclude":{"label":"Исключить интерфейсы","hint":"Укажите имена или префиксы с * в конце. Исключения имеют приоритет над включениями."},"discoveryAuthRequired":{"label":"Объявлять требование аутентификации","hint":"По умолчанию включено. Только метаданные объявления; реальная аутентификация API не меняется."},"discoveryAdvertiseManagement":{"label":"Объявлять сервис управления","hint":"По умолчанию выключено. Объявляет лишь наличие сервиса управления; права удалённого доступа не меняются."},"discoveryTitle":"Обнаружение в локальной сети","discoveryHint":"Нужны физические интерфейсы с поддержкой multicast и прослушивание не на loopback. Docker обычно требует сеть host; доступность не гарантируется."},"additions":{"oauthTitle":"Поведение OAuth-провайдеров","oauthHint":"Эти настройки провайдеров применяются только к OAuth и учётным данным из файлов, но не к API-ключам.","claudeTitle":"Claude","codexTitle":"Codex","antigravityTitle":"Antigravity","xaiTitle":"xAI","liveRelayTitle":"Медиаретранслятор Codex Live","liveRelayHint":"Ретрансляция аудио WebRTC и трафика DataChannel в процессе прокси. Требуется доступность входящего UDP. Не допускайте попадания учётных данных ICE в снимки экрана и журналы.","iceAdd":"Добавить ICE-сервер","iceRemove":"Удалить ICE-сервер {{index}}","iceURLs":"URL STUN/TURN","iceUsername":"Имя пользователя TURN","iceCredential":"Пароль TURN","iceServer":"ICE-сервер {{index}}","routingSessionAffinitySubagents":{"label":"Привязка сессий субагентов","hint":"Включена по умолчанию; действует только при включённой привязке сессий. Субагенты наследуют учётные данные родительской сессии для повторного использования кеша. Отключите для распределения субагентов по пулу учётных данных и повышения параллелизма."},"saveCooldownStatus":{"label":"Сохранять состояние охлаждения","hint":"Сохранять состояние охлаждения учётных данных в файлах .cds рядом с файлами авторизации. По умолчанию отключено: состояние хранится только в памяти."},"transientErrorCooldownSeconds":{"label":"Охлаждение при временных ошибках (секунды)","hint":"Для ошибок вышестоящего сервера 408/500/502/503/504/520–526. 0 означает стандартные 60 секунд; отрицательное значение отключает такое охлаждение."},"videoResultAuthCacheTTL":{"label":"Срок кеширования привязки видео к учётным данным","hint":"Как долго ID видео остаются привязаны к учётным данным, с которыми они созданы. Укажите длительность, например 30m или 3h. По умолчанию: 3h."},"claudeHeaderTimezone":{"label":"Резервный часовой пояс","hint":"Часовой пояс IANA для currentDate при маскировке запроса, например Asia/Singapore, или Local для часового пояса сервера. Поле timezone в JSON-файле учётных данных имеет приоритет."},"claudeModelLevelCooling":{"label":"Охлаждение на уровне модели","hint":"Применять охлаждение при исчерпании квоты Claude только к запрошенной модели, а не ко всем моделям с теми же учётными данными. По умолчанию отключено."},"claudeDisableCloakMode":{"label":"Отключить маскировку запросов","hint":"Отключить имитацию Claude Code CLI и замену системного промпта, передавая исходный промпт без изменений. Поле cloak_mode в файле учётных данных может переопределить настройку. По умолчанию false: автоматическая маскировка клиентов, отличных от Claude Code."},"claudeCodeDisableCloakingModelList":{"label":"Отключить маскировку ID моделей","hint":"Возвращать исходные ID моделей в ответах списка моделей Anthropic вместо замаскированных. По умолчанию отключено."},"codexDisableCloaking":{"label":"Отключить маскировку запросов","hint":"Не устанавливать принудительно официальные заголовки Codex User-Agent и Originator в запросах HTTP/SSE и WebSocket. По умолчанию отключено."},"codexModelLevelCooling":{"label":"Охлаждение на уровне модели","hint":"Применять охлаждение при usage_limit_reached только к запрошенной модели, а не ко всем моделям с теми же учётными данными. По умолчанию отключено."},"codexStreamBootstrapBuffering":{"label":"Буферизация начала потока","hint":"Задерживать начальные пустые события и сигналы поддержания соединения, чтобы сменить учётные данные при раннем отказе из-за перегрузки или ограничения частоты. По умолчанию отключено. Задерживает заголовки ответа и может вызвать тайм-аут клиента или обратного прокси; буфер ограничен числом кадров и байтов."},"codexStreamBootstrapTimeout":{"label":"Тайм-аут буферизации начала потока","hint":"Необязательный предел времени буферизации, например 20s. По умолчанию 0: без ограничения времени, но с лимитами кадров и байтов. Проверяется при поступлении кадров; не является жёстким тайм-аутом для любого зависания сети. Заголовки могут ожидать вывода преобразованных данных."},"codexOptimizeMultiAgentV2":{"label":"Оптимизация нескольких агентов v2","hint":"Оптимизировать официальные многоагентные запросы Codex: обновлять сведения о моделях spawn_agent, убирать шифрование параметров сообщений, нормализовать agent_message и преобразовывать их в пользовательские сообщения для протоколов, отличных от Codex. По умолчанию отключено."},"codexOrphanDelegationCompatibility":{"label":"Совместимость результатов делегирования без вызова","hint":"Для запросов с X-Openai-Subagent: collab_spawn преобразовывать результаты codex_app/create_thread и codex_app/send_message_to_thread без корректного соответствующего вызова в пользовательские сообщения. По умолчанию отключено."},"codexResponseSteering":{"label":"Управление ответом","hint":"Экспериментальный полнодуплексный режим Codex Responses WebSocket. Каждое соединение закреплено за одним аккаунтом и моделью вышестоящего сервера; принятые входные данные не воспроизводятся повторно. По умолчанию отключено."},"antigravityConnectionPoolEnabled":{"label":"Включить пул соединений","hint":"Повторно использовать соединения HTTP/1.1 с вышестоящим сервером. По умолчанию false: короткоживущие соединения."},"antigravityConnectionPoolIdleTimeout":{"label":"Тайм-аут простаивающего соединения","hint":"Срок хранения простаивающих соединений в пуле. По умолчанию 30s; максимум 210s. Нулевая или отрицательная длительность включает короткоживущие соединения."},"antigravityConnectionPoolMaxIdleConnsPerHost":{"label":"Максимум простаивающих соединений на хост","hint":"Максимум простаивающих соединений на хост для каждого набора учётных данных. По умолчанию: 2; предел: 100. Ноль использует стандартное значение Go (2), отрицательное число включает короткоживущие соединения."},"xaiInjectXSearch":{"label":"Добавлять x_search","hint":"Добавлять встроенный инструмент x_search от xAI, если он не объявлен в запросе, в том числе в tool_choice.allowed_tools, когда применимо. По умолчанию отключено."},"codexLiveMediaRelayEnabled":{"label":"Включить медиаретранслятор","hint":"Принимать и ретранслировать медиа WebRTC Codex Live в этом процессе. Требуется доступность входящего UDP. По умолчанию отключено для сохранения прямых медиасоединений."},"codexLiveMediaRelayMaxSessions":{"label":"Максимум одновременных медиасессий","hint":"Пустое поле или 0 означает стандартные 32 сессии. Пользовательский диапазон UDP должен выделять не менее двух портов на сессию."},"codexLiveMediaRelayDisablePrivateRemoteIPs":{"label":"Блокировать кандидаты с частными удалёнными IP","hint":"По умолчанию false: частные кандидаты разрешены для локальных клиентов и доверенных сетей. Включите для отклонения SDP-кандидатов клиента с частными, loopback, link-local или неопределёнными IP, чтобы снизить риск доступа к внутренней сети; локальные подключения могут перестать работать."},"codexLiveMediaRelayPublicIP":{"label":"Объявляемый публичный IP","hint":"Необязательный публичный IPv4 или IPv6, объявляемый при размещении прокси за NAT 1:1. Укажите IP-адрес, а не имя хоста."},"codexLiveMediaRelayUDPPortMin":{"label":"Минимальный UDP-порт","hint":"Установите обе границы в 0 для системного выделения либо задайте непрерывный диапазон включительно, содержащий не менее двух портов на каждую разрешённую сессию."},"codexLiveMediaRelayUDPPortMax":{"label":"Максимальный UDP-порт","hint":"Не может быть меньше минимального порта. Обе границы должны быть нулевыми или обе ненулевыми; нужно не менее двух портов на сессию (64 порта для стандартных 32 сессий)."},"codexLiveMediaRelayICEServers":{"label":"ICE-серверы","hint":"Необязательные STUN/TURN-серверы с URL stun:, stuns:, turn: или turns:. JSON API конфигурации не возвращает учётные данные TURN. Вводите секрет в поле пароля; не допускайте его попадания в снимки экрана и журналы."}},"search":{"placeholder":"Поиск настроек (по названию или ключу YAML)","no_results":"Нет подходящих настроек"},"sections":{"common":{"title":"Основные","description":"Самые востребованные настройки — те же данные, что и в полных разделах"},"connectivity":{"title":"Доступ и аутентификация","description":"Адрес сервера, порт, каталог аутентификации и ключи API"},"logging":{"title":"Логи и диагностика","description":"Отладка, вывод логов и статистика использования"},"advanced":{"title":"Дополнительно и эксперименты","description":"Подмена заголовков, кэш подписей, источники плагинов и другие редко изменяемые настройки","plugins_title":"Плагины","antigravity_title":"Antigravity","devin_title":"Devin","signature_title":"Проверка подписей"},"server":{"host":"Адрес хоста","port":"Порт"},"tls":{"title":"Настройка TLS/SSL","description":"Параметры безопасного HTTPS-соединения","enable":"Включить TLS","enable_desc":"Включить безопасное HTTPS-соединение","cert":"Путь к сертификату","key":"Путь к закрытому ключу"},"remote":{"title":"Удалённое управление","description":"Настройки удалённого доступа и панели управления","allow_remote":"Разрешить удалённый доступ","allow_remote_desc":"Разрешить управление с других хостов","disable_panel":"Отключить панель","disable_panel_desc":"Отключить встроенную веб-панель управления","disable_auto_update_panel":"Отключить автообновление панели","disable_auto_update_panel_desc":"Скачивать панель при первом отсутствии, но не обновлять её автоматически с GitHub","secret_key":"Ключ управления","secret_key_placeholder":"Задайте ключ управления","panel_repo":"Репозиторий панели"},"auth":{"auth_dir":"Каталог OAuth (oauth.auth-dir)","auth_dir_hint":"Путь к каталогу с файлами аутентификации (поддерживает ~)"},"system":{"debug":"Режим отладки","debug_desc":"Включить подробные отладочные журналы","commercial_mode":"Коммерческий режим","commercial_mode_desc":"Отключить тяжёлое промежуточное ПО для поддержки высокой нагрузки","logging_to_file":"Журналировать в файл","logging_to_file_desc":"Сохранять журналы в файлы","plugins_enabled":"Включить систему плагинов","plugins_enabled_desc":"Включает загрузку стандартных dynamic-library плагинов; отдельные экземпляры управляются на странице плагинов","plugin_store_sources":"Сторонние источники плагинов","plugin_store_sources_desc":"Добавляет registry-источники магазина плагинов; встроенный официальный источник всегда сохраняется","plugin_store_sources_label":"URL registry источника плагинов (plugins.store-sources)","plugin_store_sources_placeholder":"https://example.com/cliproxy-plugins/registry.json","plugin_store_sources_hint":"Один URL registry.json в строке. Пустые строки отфильтровываются при сохранении","plugin_store_auth":"Правила авторизации магазина плагинов","plugin_store_auth_desc":"Настраивает заголовки авторизации для приватных registry, метаданных GitHub Release или скачивания артефактов","plugin_store_auth_hint":"Указывайте только имена переменных окружения, не реальные token. Backend читает значения из своей среды выполнения.","store_auth_empty":"Правила авторизации не настроены. Публичным источникам плагинов они не нужны.","store_auth_rule":"Правило авторизации","store_auth_add":"Добавить правило","store_auth_match":"Совпадающий URL-префикс","store_auth_type":"Тип авторизации","store_auth_apply_to":"Применять к","store_auth_apply_to_hint":"Если ничего не выбрано, правило применяется ко всем типам запросов.","store_auth_apply_registry":"Registry","store_auth_apply_metadata":"Metadata","store_auth_apply_artifact":"Artifact","store_auth_type_none":"Нет","store_auth_type_bearer":"Bearer","store_auth_type_basic":"Basic","store_auth_type_header":"Свой Header","store_auth_type_github_token":"GitHub token","store_auth_token_env":"Переменная token","store_auth_username_env":"Переменная username","store_auth_password_env":"Переменная password","store_auth_header_name":"Имя Header","store_auth_header_value_env":"Переменная значения Header","store_auth_allow_insecure":"Разрешить небезопасные HTTP URL","logs_max_size":"Максимальный размер файла журнала (МБ)","error_logs_max_files":"Файлов журнала ошибок","usage_statistics_enabled":"Включить статистику использования в памяти","usage_statistics_enabled_desc":"Агрегировать статистику использования запросов в памяти","redis_usage_retention":"Хранение очереди Redis usage (сек)","redis_usage_retention_hint":"Время хранения вывода RESP LPOP/RPOP в памяти, максимум 3600 секунд","antigravity_sensitive_words":"Обфускация стоп-слов","antigravity_sensitive_words_desc":"Вставляет символы нулевой ширины в совпадающие слова системных инструкций Antigravity, затрудняя точное распознавание ключевых слов на стороне сервиса","antigravity_sensitive_words_label":"Стоп-слова OAuth (oauth.providers.antigravity.sensitive-words)","antigravity_sensitive_words_placeholder":"proxy","antigravity_sensitive_words_hint":"Одно слово или фраза в строке. Регистр не учитывается; пустые значения удаляются, а значения короче 2 символов игнорируются backend","devin_sensitive_words":"Стоп-слова системного промпта Devin","devin_sensitive_words_desc":"Обрабатываются только системные промпты Devin: строка с настроенным словом удаляется целиком, затем оставшийся промпт обфусцируется. Обычные сообщения и аргументы инструментов не изменяются","devin_sensitive_words_label":"Стоп-слова OAuth (oauth.providers.devin.sensitive-words)","devin_sensitive_words_placeholder":"чувствительная фраза","devin_sensitive_words_hint":"Одно слово или фраза в строке. Настраивайте осторожно: при совпадении вся строка системного промпта удаляется; пустые значения удаляются при сохранении","antigravity_signature_cache":"Включить кэш подписей Antigravity","antigravity_signature_cache_desc":"Предпочитать и проверять кэшированные подписи thinking-блоков","antigravity_signature_strict":"Строгая проверка bypass-подписи","antigravity_signature_strict_desc":"Применяется только при отключённом кэше подписей; проверяет полное дерево Claude protobuf"},"headers":{"title":"Заголовки по умолчанию","description":"Заголовки по умолчанию для OAuth-запросов Claude и Codex, когда клиент их не отправил","claude_title":"Заголовки Claude OAuth по умолчанию","codex_title":"Заголовки Codex OAuth по умолчанию","user_agent":"User-Agent","package_version":"Package Version","runtime_version":"Runtime Version","os":"OS","arch":"Arch","timeout":"Timeout","stabilize_device":"Стабилизировать профиль устройства","stabilize_device_desc":"Фиксировать OS/Arch и стабилизировать программный отпечаток для учётных данных/API-ключа","beta_features":"Beta Features"},"network":{"title":"Сетевые настройки","description":"Параметры прокси, повторов и маршрутизации","proxy_url":"URL прокси","proxy_url_sponsor_hint":"Нет подходящего прокси?","request_retry":"Количество повторов запросов","max_retry_credentials":"Максимум учётных данных для повторов","max_retry_credentials_hint":"Оставьте пустым, чтобы не задавать поле. Значение 0 или отрицательное целое число позволяет перебрать все доступные учётные данные.","max_retry_interval":"Максимальный интервал повтора (сек)","max_retry_interval_hint":"Значение 0 или отрицательное целое число отключает ожидание завершения охлаждения между раундами повторов.","auth_auto_refresh_workers":"Workers автообновления auth","auth_auto_refresh_workers_hint":"Положительное целое число задаёт число workers; 0, отрицательное целое число или пустое поле использует значение по умолчанию (16)","disable_image_generation":"Отключить генерацию изображений","disable_image_generation_hint":"false включает; true отключает везде; chat отключает инъекцию на не-image endpoints; passthrough сохраняет список инструментов клиента без инъекции","disable_image_generation_false":"false (включено)","disable_image_generation_true":"true (отключено везде)","disable_image_generation_chat":"chat (только отключить chat-инъекцию)","disable_image_generation_passthrough":"passthrough (сохранить список инструментов клиента)","gpt_image_2_base_model":"Базовая модель GPT Image 2","gpt_image_2_base_model_hint":"Основная модель для проксирования gpt-image-2 image-запросов; если пусто или неверно, backend использует значение по умолчанию","routing_strategy":"Стратегия маршрутизации","routing_strategy_hint":"Выберите стратегию подбора учётных данных","strategy_round_robin":"По кругу","strategy_weighted_round_robin":"Взвешенный круговой алгоритм","strategy_fill_first":"Сначала заполнить","session_affinity_ttl":"TTL привязки сессии","force_model_prefix":"Принудительный префикс модели","force_model_prefix_desc":"Запросы к моделям без префикса используют только учётные данные без префикса","passthrough_headers":"Передавать upstream-заголовки","passthrough_headers_desc":"Передавать отфильтрованные upstream-заголовки ответа downstream-клиентам","disable_cooling":"Отключить cooldown","disable_cooling_desc":"Глобально отключить окна охлаждения auth/model после ошибок","session_affinity":"Маршрутизация с привязкой к сессии","ws_auth":"Аутентификация WebSocket","ws_auth_desc":"Аутентификация WebSocket AI Studio (oauth.providers.aistudio.ws-auth)"},"quota":{"title":"Резерв по квоте","description":"Стратегия при превышении квоты","switch_project":"Переключить проект","switch_project_desc":"Автоматически переходить на другой проект при превышении квоты","switch_preview_model":"Переключить на preview-модель","switch_preview_model_desc":"Переключаться на preview-версию модели при превышении квоты","antigravity_credits":"Использовать Antigravity Credits"},"streaming":{"title":"Настройки стриминга","description":"Параметры keepalive и повторов запуска","keepalive_seconds":"Период keepalive (сек)","keepalive_hint":"Установите 0, отрицательное целое число или оставьте поле пустым, чтобы отключить keepalive","bootstrap_retries":"Повторы запуска","bootstrap_hint":"Повторы до первого байта; 0, отрицательное целое число или пустое поле отключает повторы при запуске стрима","nonstream_keepalive":"Интервал keepalive для нестиминговых ответов (сек)","nonstream_keepalive_hint":"Отправлять пустые строки каждые N секунд для непотоковых ответов; 0, отрицательное целое число или пустое поле отключает keepalive","disabled":"Отключено"},"payload":{"title":"Настройки полезной нагрузки","description":"Значения по умолчанию, raw JSON-правила, правила переопределения и фильтрации","default_rules":"Правила по умолчанию","default_rules_desc":"Использовать эти значения, если параметр не указан в запросе","default_raw_rules":"Raw-правила по умолчанию","default_raw_rules_desc":"Если параметр отсутствует, записывать эти значения как raw JSON-фрагменты, например true, 123, \\"high\\" или {\\"type\\":\\"object\\"}","override_rules":"Правила переопределения","override_rules_desc":"Принудительно задавать значения параметров в запросе","override_raw_rules":"Raw-правила переопределения","override_raw_rules_desc":"Всегда перезаписывать значения как raw JSON-фрагменты; полезно для response_format, схем и других сложных полей","filter_rules":"Правила фильтрации","filter_rules_desc":"Предварительно фильтровать тело исходящего запроса через JSON Path, автоматически удалять несоответствующие или лишние параметры (санитизация запроса)"}},"api_keys":{"label":"Клиентские API-ключи (access.api-keys)","add":"Добавить API-ключ","generate":"Сгенерировать","empty":"API-ключи отсутствуют","hint":"Каждая запись — это API-ключ (в том же стиле, что и на странице управления API-ключами)","edit_title":"Редактирование API-ключа","add_title":"Добавление API-ключа","input_label":"API-ключ","input_placeholder":"Вставьте API-ключ","name_label":"Имя / описание (необязательно)","name_placeholder":"Например: ноутбук Анны","name_hint":"Имя сразу сохраняется только в этом браузере, отдельно для каждого сервера, и не включается в конфигурацию сервера. Очистите поле, чтобы удалить имя.","name_save_error":"Не удалось сохранить имя в хранилище браузера. Проверьте настройки хранилища.","input_hint":"Изменения вступают в силу после сохранения конфигурации. Ключи провайдеров управляются отдельно.","error_empty":"Введите API-ключ","error_invalid":"API-ключ содержит недопустимые символы","strength":{"label":"Надёжность API-ключа","empty":"Не введено","weak":"Слабый","fair":"Средний","good":"Хороший","strong":"Надёжный"}},"payload_rules":{"rule":"Правило","models":"Применимые модели","model_name":"Название модели","provider_type":"Тип провайдера","add_model":"Добавить модель","params":"Настройки параметров","remove_params":"Удалить параметры","json_path":"JSON Path (например, temperature)","json_path_filter":"JSON Path (gjson/sjson), например generationConfig.thinkingConfig.thinkingBudget","param_type":"Тип параметра","param_value":"Значение параметра","add_param":"Добавить параметр","no_rules":"Правил нет","add_rule":"Добавить правило","provider_default":"По умолчанию","provider_openai":"OpenAI","provider_openai_response":"OpenAI Response","provider_responses":"Responses","provider_gemini":"Gemini","provider_claude":"Claude","provider_codex":"Codex","provider_antigravity":"Antigravity","advanced":"Дополнительно","hide_advanced":"Скрыть дополнительно","from_protocol":"Исходный протокол (from-protocol)","headers":"Совпадения заголовков запроса","header_name":"Имя заголовка","header_value":"Значение заголовка","add_header":"Добавить заголовок","match":"Обязательные совпадения (match)","notMatch":"Запрещённые совпадения (not-match)","exist":"Обязательные пути (exist)","notExist":"Запрещённые пути (not-exist)","condition_path":"Путь условия","condition_value":"Значение условия","add_condition":"Добавить условие","value_type_string":"Строка","value_type_number":"Число","value_type_boolean":"Булево","value_type_json":"JSON","value_string":"Строковое значение","value_number":"Числовое значение (например, 0.7)","value_boolean":"true или false","value_json":"Значение JSON","value_raw_json":"Raw JSON-фрагмент, например true, 123, \\"high\\" или {\\"type\\":\\"object\\"}","value_default":"Значение","boolean_true":"true","boolean_false":"false"},"validation":{"invalid_trusted_proxies":"Каждый доверенный прокси должен быть корректным IP-адресом или CIDR.","invalid_discovery_service_type":"Используйте _имя._tcp: имя — 1–15 латинских букв, цифр или дефисов, без дефиса в начале и конце.","validation_blocked":"Исправьте ошибки валидации перед сохранением","invalid_duration":"Введите корректную длительность, например 30s или 3h","positive_duration":"Введите длительность больше нуля","invalid_timezone":"Введите корректный часовой пояс IANA, например Asia/Singapore","invalid_ip":"Введите корректный адрес IPv4 или IPv6","udp_port_pair":"Установите оба UDP-порта в 0 либо задайте оба так, чтобы минимум не превышал максимум","udp_port_capacity":"Число UDP-портов должно быть не меньше удвоенного эффективного лимита сессий (0 сессий означает 32)","invalid_ice_servers":"Каждый ICE-сервер должен содержать хотя бы один корректный URL stun:, stuns:, turn: или turns:","integer_range_0_65535":"Введите целое число от 0 до 65535","port_range":"Введите корректный порт от 1 до 65535","integer":"Введите целое число","non_negative_integer":"Введите неотрицательное целое число","integer_range_1_3600":"Введите целое число от 1 до 3600","payload_invalid_number":"Введите корректное число","payload_invalid_boolean":"Выберите true или false","payload_invalid_json":"Введите корректный JSON"},"common":{"edit":"Изменить","delete":"Удалить","cancel":"Отменить","update":"Обновить","add":"Добавить"}}}`),quota_management:{search_label:`Поиск аккаунтов`,search_placeholder:`Поиск по имени файла или электронной почте`,search_empty_title:`Аккаунты не найдены`,search_empty_desc:`Попробуйте другое имя файла или адрес электронной почты либо очистите поиск.`,search_clear:`Очистить поиск`,title:`Управление квотами`,description:`Следите за статусом квот OAuth для учётных данных Antigravity, Codex, Claude, Kimi и xAI.`,refresh_all_credentials:`Обновить все учётные данные`,sort_label:`Сортировка`,sort_default:`По умолчанию`,sort_soonest:`Сначала ближайшее восстановление`,meta_credentials:`{{count}} учётных данных`,meta_loaded:`{{count}} загружено`,meta_attention:`{{count}} требуют внимания`,empty_title:`Нет учётных данных с квотами`,empty_desc:`Подключите учётные данные Antigravity, Claude, Codex, xAI или Kimi, чтобы отслеживать квоту здесь.`,windows_title:`Окна квот`,windows_span_weekly:`две недели`,windows_span_session:`три дня`,windows_current:`текущий`,windows_today:`Сегодня`,windows_prev:`Назад`,windows_next:`Вперёд`,windows_mode_weekly:`Неделя`,windows_mode_session:`5 часов`,windows_credential:`Учётные данные`,windows_idle:`нет активного окна`,windows_empty_session:`Ни одни учётные данные на этой странице не предоставляют 5-часовое окно квоты.`,windows_legend_current:`текущее окно`,windows_legend_upcoming:`предстоящее`,windows_legend_elapsed:`прошедшее`,windows_legend_reset_credit:`срок ручного сброса`,soonest_row_hint:`Восстановится первым у этих учётных данных`,windows_reset_credit:`Ручной сброс`,windows_credit_granted:`Предоставлен`,windows_credit_expires:`Истекает`,windows_note_weekly:`Каждая полоса — одно окно квоты, от открытия до сброса. Окна, заканчивающиеся вместе, конкурируют за одни и те же дни.`,windows_note_session:`Каждая полоса — одно 5-часовое окно. Показаны только учётные данные с активным окном; остальные остаются пустыми.`,weekday_sun:`Вс`,weekday_mon:`Пн`,weekday_tue:`Вт`,weekday_wed:`Ср`,weekday_thu:`Чт`,weekday_fri:`Пт`,weekday_sat:`Сб`},plugin_management:{title:`Управление плагинами`,description:`Просматривайте найденные и зарегистрированные плагины, управляйте переключателями экземпляров, полями конфигурации и ссылками на ресурсы.`,refresh:`Обновить`,load_failed:`Не удалось загрузить плагины`,config_load_failed:`Не удалось прочитать конфигурацию плагина`,config_not_found:`Не удалось прочитать конфигурацию плагина: backend не нашёл этот плагин.`,unsupported_backend:`Текущий backend не предоставляет API управления плагинами. Используйте более новую сборку backend с эндпоинтами управления плагинами и перезапустите сервис.`,global_status:`Глобальный статус`,global_enabled:`Включено`,global_disabled:`Отключено`,global_disabled_hint:`plugins.enabled имеет значение false, поэтому включённые экземпляры плагинов не станут активными.`,plugins_dir:`Каталог плагинов`,discovered:`Найдено`,effective:`Активно`,search_placeholder:`Искать ID, имя, автора или ресурс плагина...`,search_label:`Поиск плагинов`,no_plugins:`Плагинов нет`,no_plugins_desc:`В каталоге плагинов и реестре времени выполнения плагины не найдены.`,configured:`Настроен`,not_configured:`Не настроен`,registered:`Зарегистрирован`,not_registered:`Не зарегистрирован`,oauth:`OAuth`,status_effective:`Активен`,status_inactive:`Неактивен`,edit_config:`Изменить конфиг`,open_repository:`Открыть репозиторий`,config_title:`Настроить {{name}}`,base_settings:`Базовые настройки`,enabled:`Включено`,enabled_hint:`Управляет полем enabled для этого экземпляра плагина в plugins.configs.`,priority:`Приоритет`,config_fields:`Поля конфигурации`,no_config_fields:`Этот плагин не объявляет визуальные поля конфигурации.`,select_placeholder:`Выберите`,array_item_placeholder:`Введите элемент массива`,add_array_item:`Добавить элемент массива`,remove_array_item:`Удалить элемент массива`,delete_plugin:`Удалить`,delete_confirm_title:`Удалить плагин`,delete_confirm_message:`Удалить {{name}} ({{id}})? Будут удалены локальный файл плагина и сохранённая конфигурация.`,delete_success:`Плагин удалён`,delete_failed:`Не удалось удалить плагин`,delete_restart_required:`Загруженный плагин можно удалить только после перезапуска backend.`,toggle_success:`Статус плагина обновлён`,toggle_failed:`Не удалось обновить статус плагина`,runtime_pending:`Изменение плагина сохранено, но состояние runtime ещё обновляется. Обновите страницу позже или проверьте логи backend.`,save_success:`Конфигурация плагина сохранена`,save_failed:`Не удалось сохранить конфигурацию плагина`,validation_failed:`Сначала исправьте ошибки формы конфигурации плагина`,invalid_priority:`Введите целочисленный приоритет`,invalid_number:`Введите корректное число`,invalid_integer:`Введите корректное целое число`,invalid_json:`Введите корректный JSON`,expected_array:`Введите JSON-массив`,expected_object:`Введите JSON-объект`,invalid_enum:`Выберите одно из объявленных значений enum`},plugin_store:{title:`Магазин плагинов`,description:`Просматривайте реестр плагинов, устанавливайте и обновляйте плагины для текущего бэкенда.`,description_show_more:`Показать больше`,description_show_less:`Свернуть`,source_name:`Источник: {{source}}`,cli_proxy_api_source:`Источник CLIProxyAPI`,refresh:`Обновить`,retry:`Повторить`,load_failed:`Не удалось загрузить магазин плагинов`,unsupported_backend:`Текущий бэкенд не предоставляет API магазина плагинов. Используйте новую сборку бэкенда с поддержкой магазина плагинов и перезапустите службу.`,registry_failed:`Не удалось обратиться к реестру плагинов`,global_status:`Глобальный статус`,global_enabled:`Включено`,global_disabled:`Отключено`,global_disabled_hint:`Параметр plugins.enabled выключен, поэтому установленные плагины не будут работать.`,plugins_dir:`Каталог плагинов`,stat_available:`Доступно`,search_placeholder:`Поиск по ID, названию, автору или тегу...`,search_label:`Поиск в магазине плагинов`,filter_label:`Фильтр по статусу установки`,filter_all:`Все`,filter_installed:`Установленные`,filter_not_installed:`Не установленные`,filter_updates:`Обновления`,badge_installed:`Установлен`,badge_update:`Доступно обновление`,badge_effective:`Активен`,version_arrow:`v{{from}} → v{{to}}`,install_type:`Установка: {{type}}`,platforms:`Платформы: {{platforms}}`,auth_required:`Нужна авторизация`,auth_configured:`Авторизация настроена`,auth_required_hint:`Перед установкой из этого источника или URL артефакта настройте plugins.store-auth`,source_errors_title:`Некоторые источники плагинов не загрузились`,install:`Установить`,update:`Обновить`,manage:`Управлять`,install_confirm_title:`Установка плагина`,install_confirm_message:`Скачать {{target}} из реестра плагинов и установить в локальный каталог плагинов?`,update_confirm_title:`Обновление плагина`,update_confirm_message:`Скачать и установить {{target}}?`,install_version_label:`Версия`,install_version_latest:`последняя`,install_version_latest_mode:`Последняя стабильная`,install_version_latest_hint:`Определяется backend во время установки. Версия в списке: {{version}}.`,install_version_release_mode:`Выбрать релиз`,install_version_release_hint:`Загрузить доступные теги из GitHub Releases.`,install_version_manual_mode:`Ручной тег релиза`,install_version_manual_hint:`Используйте только если автоматическая загрузка недоступна.`,install_versions_loading:`Загрузка GitHub Releases...`,install_versions_load_failed:`Не удалось загрузить версии релизов`,install_version_non_github:`Репозиторий этого плагина не является репозиторием GitHub`,install_versions_empty:`Доступные релизы не найдены.`,install_versions_only_prerelease:`Доступны только prerelease-версии. Включите их отображение, чтобы выбрать версию.`,install_version_release_select:`Выберите версию релиза`,install_version_release_placeholder:`Выберите версию релиза`,install_version_prerelease_badge:`prerelease`,install_version_assets_count:`{{count}} assets`,install_version_show_prerelease:`Показать prerelease-версии`,install_version_manual_placeholder:`Например v0.1.4`,install_version_manual_error:`Тег релиза может содержать только буквы, цифры, точки, подчеркивания, плюсы и дефисы; пробелы и слеши не допускаются.`,install_version_current_selected:`{{version}} уже установлена. Выберите другую версию.`,install_version_releases_link:`Открыть GitHub Releases`,install_success:`Плагин установлен`,update_success:`Плагин обновлён`,install_failed:`Не удалось установить плагин`,update_failed:`Не удалось обновить плагин`,status_pending:`Файлы плагина обновлены, но локальный статус ещё не обновился. Обновите страницу позже или проверьте логи backend.`,registration_pending:`Файлы плагина обновлены, но регистрация ещё выполняется. Обновите страницу позже или проверьте логи backend.`,restart_required_notice:`Перезапустите службу, чтобы загрузить новую версию плагина`,restart_required_banner:`Перезапустите службу, чтобы применить новую версию: {{plugins}}`,open_repository:`Открыть репозиторий`,open_homepage:`Открыть сайт`,no_plugins:`Реестр пуст`,no_plugins_desc:`Реестр плагинов не вернул ни одного плагина.`,no_matches:`Нет подходящих плагинов`,no_matches_desc:`Нет плагинов, соответствующих текущему поиску или фильтру.`,clear_filters:`Сбросить фильтры`,security_banner_title:`Сторонние плагины работают с полным доступом к бэкенду`,security_banner_text:`Плагины выполняют код внутри прокси-сервиса и могут читать ваши учётные данные и трафик. Устанавливайте только плагины, которым доверяете, — особенно осторожно относитесь к плагинам, не опубликованным официальной организацией router-for-me.`,badge_untrusted:`Сторонний`,gate_title:`Установка {{name}}`,gate_title_update:`Обновление {{name}}`,gate_warning:`Если вы не прочитаете это, могут произойти неожиданные и опасные последствия.`,gate_effect_runs_code:`Этот плагин будет выполнять несертифицированный сторонний код внутри вашего прокси-бэкенда. Система не может изолировать или аудировать его поведение, и он может получить доступ к вашим конфиденциальным учётным данным, сетевым запросам и данным ответов.`,gate_effect_no_review:`Этот плагин не опубликован и не проверен официальной организацией router-for-me. Официальная организация не предоставляет никаких явных или подразумеваемых гарантий стабильности, безопасности, соответствия требованиям или любых изменений поведения в последующих версиях этого плагина.`,gate_effect_restart:`Установка изменяет локальный каталог плагинов и может потребовать перезапуска сервиса.`,gate_untrusted_alert:`Этот плагин не от официальной организации router-for-me. Продолжайте, только если полностью доверяете его автору и источнику.`,gate_repository_label:`Репозиторий`,gate_source_label:`Источник`,gate_step1_action:`Я хочу установить этот плагин`,gate_step2_action:`Я прочитал и понимаю эти риски`,gate_step3_prompt:`Для подтверждения введите «{{token}}» в поле ниже`,gate_step3_action:`Установить этот плагин`,gate_step3_hint:`Введите точный идентификатор, показанный выше, чтобы включить установку.`},system_info:{title:`Информация о центре управления`,about_title:`CLI Proxy API Management Center`,models_title:`Доступные модели`,models_desc:`Показывает ответ /models и автоматически использует сохранённые API-ключи для авторизации.`,models_loading:`Загрузка доступных моделей...`,models_empty:`Сервис /models не вернул модели`,models_error:`Не удалось загрузить список моделей`,models_count:`Доступно моделей: {{count}}`,version_check_button:`Проверить обновления`,version_update_available:`Доступно обновление: {{version}}`,version_is_latest:`Установлена последняя версия`,version_check_error:`Не удалось проверить обновление`,version_current_missing:`Версия сервера недоступна; сравнение невозможно`,version_unknown:`Неизвестно`,quick_links_title:`Быстрые ссылки`,quick_links_desc:`Доступ к репозиториям проекта и документации для помощи и обновлений.`,link_main_repo:`Основной репозиторий`,link_main_repo_desc:`Исходный код основной программы CLI Proxy API`,link_webui_repo:`Репозиторий WebUI`,link_webui_repo_desc:`Исходный код фронтенда центра управления`,link_docs:`Документация`,link_docs_desc:`Учебные пособия и руководства по настройке`,clear_login_title:`Локальные данные входа`,clear_login_desc:`Очистите локально сохранённые данные входа и выполните выход.`,clear_login_button:`Очистить данные входа`,clear_login_confirm:`Очистить локальные данные входа и выйти?`},notification:{trusted_proxies_restart_required:`Настройки доверенных прокси сохранены. Перезапустите бэкенд для их применения.`,region_label:`Уведомления`,type_success:`Успешно`,type_info:`Информация`,type_warning:`Предупреждение`,type_error:`Ошибка`,request_log_updated:`Настройка журналирования запросов обновлена`,login_storage_cleared:`Локальные данные входа очищены`,data_refreshed:`Данные успешно обновлены`,connection_required:`Сначала установите подключение`,refresh_failed:`Не удалось обновить`,update_failed:`Не удалось обновить`,add_failed:`Не удалось добавить`,delete_failed:`Не удалось удалить`,upload_failed:`Не удалось загрузить`,download_failed:`Не удалось скачать`,login_failed:`Вход не выполнен`,commercial_mode_restart_required:`Режим коммерческого использования изменён. Перезапустите сервис, чтобы применить изменения`,copy_failed:`Не удалось скопировать`,link_copied:`Ссылка скопирована в буфер обмена`},language:{switch:`Язык`,chinese:`中文`,chinese_tw:`繁體中文(台灣)`,english:`English`,russian:`Русский`},theme:{switch:`Тема`,light:`Шерстяная бумага`,white:`Чисто-белая`,dark:`Тёмная`,auto:`Следовать системе`},sidebar:{toggle_expand:`Развернуть боковую панель`,toggle_collapse:`Свернуть боковую панель`,expand:`Развернуть`,collapse:`Свернуть`,subtitle:`Консоль управления CLI Proxy API`,auth_files_count:`Файлов аутентификации: {{count}}`},footer:{api_version:`Версия CLI Proxy API`,build_date:`Время сборки`,version:`Версия интерфейса управления`},providersPage:JSON.parse(`{"behavior":{"title":"Поведение, специфичное для провайдера","alphaSearch":"Включить Alpha Search","alphaSearchHint":"Разрешить использование этого ключа Codex для Alpha Search. Вышестоящий сервис должен поддерживать эту функцию.","codexCloaking":"Маскировка запросов Codex","codexCloakingHint":"Переопределить настройки заголовков идентификации официального Codex для этого API-ключа. Выбор значения по умолчанию удаляет переопределение для этих учётных данных; настройки, предназначенные только для OAuth, здесь не применяются.","useDefault":"Использовать настройки сервера по умолчанию","cloakingEnabled":"Включить маскировку","cloakingDisabled":"Отключить маскировку","rebuildMidSystemMessage":"Перестроить системные сообщения","rebuildMidSystemMessageHint":"Перемещать сообщения Claude с ролью system в поле system верхнего уровня.","supportPromptCacheKey":"Внедрять ключ кэша промпта","supportPromptCacheKeyHint":"Формировать и внедрять prompt_cache_key для совместимых запросов. Включайте только при поддержке этого поля вышестоящим сервисом."},"modelOptions":{"displayName":"Отображаемое имя","maxContextLength":"Размер контекста","contextHint":"Неотрицательное безопасное целое число; пустое поле — значение по умолчанию.","forceMapping":"Заменять имя модели в ответе на псевдоним","isCompat":"Режим совместимости","supportConfigurationUpdate":"Разрешить обновление конфигурации","inputModalitiesText":"Входные модальности","outputModalitiesText":"Выходные модальности","modalitiesHint":"Разделяйте запятыми или пробелами. Произвольные названия сохраняются.","useMaxCompletionTokens":"Использовать max_completion_tokens","thinkingMode":"Переопределение рассуждений","useDefault":"По умолчанию","custom":"Свои настройки","thinkingHint":"По умолчанию используются настройки сервера; пустое переопределение — явный объект {}. Бюджет и уровни можно задать одновременно. Числовой диапазон не задан, только если обе границы равны 0 или пусты. При положительном минимуме задайте максимум не меньше него.","thinkingMin":"Минимальный бюджет рассуждений","thinkingMax":"Максимальный бюджет рассуждений","thinkingZeroAllowed":"Разрешить нулевой бюджет","thinkingDynamicAllowed":"Разрешить динамический бюджет","invalidContext":"Размер контекста должен быть неотрицательным безопасным целым числом.","invalidThinking":"Настройки рассуждений должны быть корректным объектом JSON.","invalidBudget":"Бюджет рассуждений должен быть неотрицательным безопасным целым числом.","invalidRange":"Минимальный бюджет не должен превышать максимальный. Пустые границы считаются равными 0.","removeModel":"Удалить модель","modelName":"Имя модели","modelAlias":"Псевдоним (необязательно)"},"runtimePolicy":{"title":"Расширенная политика выполнения","description":"Наследование использует политику родительской группы, затем настройки сервера по умолчанию. Переопределения действуют только для этой записи.","cooling":"Охлаждение","inherit":"Наследовать","coolingEnabled":"Включить охлаждение","coolingDisabled":"Отключить охлаждение","retry":"Повторные запросы","retryHint":"Пустое поле наследует настройку группы. Введите целое число: 0 отключает повторы; отрицательное значение использует глобальную политику вместо политики группы.","errorsMode":"Правила ошибок запросов","override":"Переопределить","errorsHint":"Наследование использует родительскую политику. Переопределение заменяет весь список, который может быть пустым. При смене режима черновик правил сохраняется.","invalidRetry":"Число повторов должно быть безопасным целым числом; пустое поле означает наследование."},"errorRules":{"hint":"Применяется первое совпавшее правило по порядку; при совпадении кода статуса достаточно любого условия.","empty":"Правил нет. Можно сохранить пустой список.","rule":"Правило {{number}}","status":"Код статуса","action":"Действие","selectAction":"Выберите действие","moveUp":"Переместить правило вверх","moveDown":"Переместить правило вниз","removeRule":"Удалить правило","matchType":"Тип совпадения","text":"Содержит текст","regex":"Регулярное выражение","matchValue":"Условие","regexHint":"Регулярное выражение Go","removeMatch":"Удалить условие","addMatch":"Добавить условие","addRule":"Добавить правило","invalidStatus":"Код статуса должен быть положительным целым числом в безопасном диапазоне.","invalidAction":"Выберите допустимое действие.","invalidMatch":"Условия совпадения не могут быть пустыми.","missingMatch":"Добавьте хотя бы одно условие совпадения.","actions":{"stop":"Остановить","stop-and-cooldown":"Остановить и охладить","continue":"Продолжить","continue-and-cooldown":"Продолжить и охладить"}},"header":{"title":"AI Провайдеры","activeResources":"{{active}}/{{total}} активных","providerFamilies":"{{count}} семейств","updatedAt":"Обновлено {{time}}"},"actions":{"refresh":"Обновить","syncing":"Синхронизация","new":"Создать","edit":"Изменить","view":"Просмотр","delete":"Удалить","cancel":"Отмена","save":"Сохранить","create":"Создать","enable":"Включить","disable":"Отключить"},"categories":{"title":"Провайдеры","quickFill":"Быстрое заполнение","activeCount":"{{active}}/{{total}} активных"},"providerNames":{"meta":"Muse (Meta)","gemini":"Gemini","interactions":"Interactions API","codex":"Codex","xai":"xAI","claude":"Claude","vertex":"Vertex","openaiCompatibility":"OpenAI-совместимый","apikeyFun":"APIKEY.FUN","fennoAI":"FennoAI","qiniuCloud":"Qiniu Cloud","kimi":"Kimi"},"table":{"key":"Ключ","baseUrl":"Base URL","prefix":"Префикс","models":"Модели/Заголовки","status":"Статус","actions":"Действия","metrics":{"models":"Модели","keys":"Ключи","headers":"Заголовки"},"websocketsTag":"WebSockets","cloakTag":"Cloak","cliProfileTag":"CLI-профиль","empty":"Нет ресурсов, нажмите \\"Создать\\".","filterPlaceholder":"Поиск по ключам, URL, префиксам…","description":"Управление ресурсами {{route}}"},"sponsor":{"protocolSummary":"Anthropic / OpenAI / Gemini / Codex API (Responses)","detailHint":"{{provider}} сохраняется в соответствующие конфигурации API key по протоколам; здесь они управляются вместе.","registerLink":"Зарегистрироваться","registerNow":"Зарегистрироваться сейчас","kimiPromo":"Новые пользователи получают API-квоту в размере 10% от первого успешного пополнения, максимум ¥1000. Предложение действует до 30 сентября.","dashboardLink":"Панель управления","emptyRegisterHint":"Конфигурации пока нет.","apiKeyHint":"Этот ключ записывается только в выбранную группу/протокол.","usageCheck":"Проверить квоту","usageChecking":"Проверка","usageRemaining":"Остаток: {{amount}} {{unit}}","usageBreakdown":"Использовано {{used}} / Лимит {{limit}}","usageStatus":"Статус: {{status}}","usageInvalid":"Недействительный ключ","usageEmpty":"Endpoint не вернул данные квоты.","usageApiKeyRequired":"Требуется API key","aggregationConflict":"Этот объединённый провайдер содержит несколько серверных конфигураций или ключей OpenAI. Чтобы избежать потери данных, измените исходную конфигурацию.","partialMutationWarning":"Операция завершилась ошибкой, но один или несколько протоколов могли обновиться. Последняя конфигурация загружена повторно; проверьте её перед повторной попыткой.","groupedKeysTitle":"Групповые ключи","groupedKeysHint":"Ключи платформы могут привязываться к группе при создании. Каждый групповой ключ здесь управляет одним протоколом, а модели загружаются только из этого протокола.","groupedKey":"Групповой ключ #{{index}}","addGroupedKey":"Добавить групповой ключ","removeGroupedKey":"Удалить групповой ключ","protocol":"Группа/протокол","protocolHint":"Выберите группу/протокол для этого ключа.","protocolEndpoint":"Текущий endpoint протокола","urlMode":"{{provider}} URL","urlHint":"Все URL используют одинаковые правила API. При сохранении записывается только endpoint текущего группового протокола.","urlOptions":{"standard":"Обычный URL","direct":"Прямой URL","domestic":"Маршрут для материкового Китая","overseas":"Зарубежный маршрут","mainlandChina":"Материковый Китай (рекомендуется)","global":"Глобальный"},"urlOptionDescriptions":{"domestic":"Для пользователей и нагрузок в материковом Китае; обычно дает меньшую задержку в сетях материкового Китая.","overseas":"Для зарубежных развертываний, трансграничного доступа или задач, которым нужны зарубежные модели.","mainlandChinaRecommended":"Рекомендуется для пользователей и нагрузок в сетях материкового Китая.","global":"Для пользователей и нагрузок во всех остальных регионах."},"modelsTitle":"Настройки моделей по протоколам","modelsHint":"Настраивайте allowlist моделей и алиасы отдельно для маршрутов Codex API, Anthropic, Gemini и OpenAI-compatible.","protocolModels":{"codex":"Модели Codex API","anthropic":"Модели Anthropic","gemini":"Модели Gemini","openai":"Модели OpenAI-compatible"},"protocolModelHints":{"codex":"Записывается в models конфигурации Codex API. Можно загрузить из /v1/models и задать алиасы.","anthropic":"Записывается в models конфигурации Anthropic. Можно загрузить из /v1/models и задать алиасы.","gemini":"Записывается в models конфигурации Gemini. Можно загрузить из /v1beta/models и задать алиасы.","openai":"Записывается в models конфигурации OpenAI-compatible. Можно загрузить из /models и задать алиасы."},"validation":{"keyRequired":"Введите API key для каждого группового ключа.","protocolDuplicate":"Для каждого протокола можно добавить только один групповой ключ."},"openaiEntries":"Ключей OpenAI-compatible","codexEntries":"Ключей Codex API","anthropicEntries":"Ключей Anthropic","geminiEntries":"Ключей Gemini","protocols":{"anthropic":"Anthropic","openai":"OpenAI-compatible","gemini":"Gemini","codexResponses":"Codex API (Responses)"}},"status":{"active":"Активен","disabled":"Отключён","notSet":"Не задано","none":"Нет","notConfigured":"Не настроено","defaultSuffix":"(по умолчанию)"},"detail":{"title":"Подробности","metadataTitle":"Метаданные","fields":{"identifier":"Идентификатор","baseUrl":"Base URL","proxyUrl":"Proxy URL","prefix":"Префикс","models":"Моделей","headers":"Заголовков","authIndex":"Auth Index","excludedModels":"Исключённых моделей","apiKeyEntries":"API-ключей"}},"form":{"createEyebrow":"Создать","editEyebrow":"Изменить","name":"Название","apiKey":"API-ключ","apiKeyCreatePlaceholder":"Введите API-ключ","apiKeyEditPlaceholder":"Оставьте пустым, чтобы не менять","baseUrl":"Base URL","baseUrlRequiredHint":"Обязательно для этого провайдера","proxyUrl":"Proxy URL","prefix":"Префикс","priority":"Приоритет","weight":"Вес планирования","weightHint":"По умолчанию 1 · ≤ 0 исключает запись · максимум 1 000 000","disabled":"Отключить эту запись","disabledHint":"Отключённые записи не используются шлюзом","websockets":"Включить WebSockets","testModel":"Тестовая модель","testModelClaudeHint":"Используется только для проверки соединения; не сохраняется","testModelAutoWith":"Авто · {{name}}","testModelAutoEmpty":"Авто (модели ещё не добавлены)","testModelCustom":"{{name}} (своя)","modelsSection":"Пользовательские модели","addModel":"Добавить модель","headersSection":"Заголовки запроса","addHeader":"Добавить заголовок","excludedSection":"Исключённые модели","excludedDisabledNote":"«*» означает, что провайдер отключён целиком — используйте переключатель «Отключено» выше.","cloakSection":"Настройки Cloak","cloakMode":"Режим","cloakStrict":"Строгий режим","cloakSensitiveWords":"Стоп-слова (по одному в строке)","apiKeyEntriesSection":"API-ключи","apiKeyEntry":"Ключ #{{index}}","addApiKeyEntry":"Добавить ключ","showApiKey":"Показать ключ API","hideApiKey":"Скрыть ключ API","disableCooling":"Отключить cooldown","disableCoolingHint":"Отключает окна охлаждения после ошибок только для этой записи","modelImage":"Разрешить image endpoints","modelImageHint":"Разрешить модель для /v1/images/generations и /v1/images/edits","showAllEntries":"Показать все ({{count}})","showFewerEntries":"Показать меньше","proxyBadge":"Прокси","modelBadgeImage":"Image","modelBadgeThinking":"Thinking","thinkingConfig":"Возможности рассуждения","thinkingExistingHint":"Изменение уровней сохраняет бюджет и остальные неизменённые настройки.","thinkingLevels":{"none":"Отключить thinking","minimal":"Минимальный","low":"Низкий","medium":"Средний","high":"Высокий","xhigh":"Очень высокий","max":"Максимальный","auto":"Автоматический"},"cloakCacheUserId":"Кэшировать user_id","cloakCacheUserIdHint":"Переиспользовать Claude cloak user_id для каждого API-ключа","fingerprintProfile":"Отпечаток запроса","fingerprintProfileDefault":"По умолчанию (управляет клиент)","fingerprintProfileClaudeCodeCli":"Claude Code CLI","fingerprintProfileHint":"По умолчанию сохраняются prompt и заголовки клиента; можно включить отпечаток запросов Claude Code CLI.","validation":{"nameRequired":"Название обязательно","apiKeyRequired":"Нужен хотя бы один API-ключ","baseUrlRequired":"Base URL обязателен","weightInteger":"Вес планирования должен быть целым числом","weightMax":"Вес планирования не может превышать {{max}}"}},"delete":{"title":"Удалить ресурс","confirm":"Удалить {{name}}? Действие необратимо."},"toast":{"created":"Создано","updated":"Обновлено","deleted":"Удалено","enabled":"Включено","disabled":"Отключено","toggleFailed":"Не удалось обновить статус"},"unsavedChanges":{"title":"Отменить несохранённые изменения?","message":"В форме есть несохранённые изменения. При закрытии они будут потеряны.","discard":"Отменить изменения","keepEditing":"Продолжить"},"connectivity":{"test":"Проверить","testAll":"Проверить все","success":"Доступно","baseUrlRequired":"Base URL обязателен","endpointInvalid":"Некорректный адрес","apiKeyRequired":"API-ключ обязателен","modelRequired":"Нужна тестовая модель","timeout":"Таймаут после {{seconds}} с","requestFailed":"Запрос не выполнен"},"discovery":{"openButton":"Получить с конечной точки","searchPlaceholder":"Поиск моделей","reload":"Обновить","loading":"Загрузка моделей…","empty":"Конечная точка не вернула моделей","notLoaded":"Нажмите Обновить, чтобы загрузить модели","selectAll":"Выбрать все","clearAll":"Снять выбор","selectedCount":"{{selected}} / {{total}}","alreadyAdded":"Уже добавлено","close":"Закрыть","apply":"Применить ({{count}})"},"toolbar":{"sortBy":"Сортировка","sort":{"name":"Имя","priority":"Приоритет","recentSuccess":"Недавние успехи","directionAsc":"По возрастанию","directionDesc":"По убыванию"},"filter":{"allModels":"Все модели","selectedModels":"{{selected}}/{{total}} моделей","selectAll":"Выбрать все","clear":"Очистить","empty":"Модели ещё не настроены"}},"modelCatalog":{"notLoaded":"Не загружено"}}`),claude_reset:{retry_confirm:`Повторить сброс «{{name}}» с неизвестным результатом и исходным ID запроса? Сброс мог быть потрачен. Повторите в течение 10 минут; не перезагружайте страницу и не создавайте запрос в другой вкладке.`,remaining:`Осталось сбросов`,title:`Запас сбросов`,scope:`Использует ограниченное право на сброс лимитов Claude. Подтверждайте только если хотите потратить сброс. Восстановление доступно только в этой вкладке и сессии; при неизвестном результате не перезагружайте страницу и не используйте другую вкладку.`,loading:`Загрузка…`,read_error:`Не удалось прочитать права на сброс. Запрос сброса не отправлен.`,blocked:`Сброс не отправлен: не удалось проверить условия, учётную запись или сессию. Обновите данные.`,unknown:`Результат неизвестен. Сброс мог быть потрачен. Повторите в течение 10 минут с тем же ID запроса; не создавайте новый запрос в другом месте.`,expired:`Окно повтора истекло. Дальнейшие сбросы в этой сессии заблокированы. Сначала проверьте учётную запись Claude.`,retry:`Повторить тот же запрос`,empty:`Нет доступных запасных сбросов.`,count:`Осталось сбросов: {{left}} / {{total}}`,ends:`Истекает: {{date}}`,use:`Сбросить лимиты`,confirm:`Подтвердить сброс`,confirm_text:`Потратить один сброс для снятия доступных лимитов «{{name}}»? Число сбросов ограничено.`,reset:`Лимиты использования сброшены.`,already_used:`Это право уже использовано.`,not_limited:`Сброс не выполнен: лимит ещё не достигнут.`,cooldown:`Сброс не выполнен: действует период ожидания.`,ineligible:`Эта учётная запись не соответствует условиям.`,unavailable:`Сбросы временно недоступны.`,rate_limited:`Слишком много запросов.`,auth_error:`Авторизация отклонена.`}},cl=[`zh-tw`,`zh-hk`,`zh-mo`,`zh-hant`],ll=e=>Kc.includes(e),ul=e=>{try{let t=JSON.parse(e),n=t?.state?.language??t?.language??t;if(typeof n==`string`&&ll(n))return n}catch{if(ll(e))return e}return null},dl=()=>{if(typeof window>`u`)return null;try{let e=localStorage.getItem(Uc);return e?ul(e):null}catch{return null}},fl=()=>{if(typeof navigator>`u`)return`zh-CN`;let e=(navigator.languages?.[0]||navigator.language||`zh-CN`).toLowerCase();return cl.some(t=>e.startsWith(t))?`zh-TW`:e.startsWith(`zh`)?`zh-CN`:e.startsWith(`ru`)?`ru`:`en`},pl=()=>dl()??fl();fo.use(ts).init({resources:{"zh-CN":{translation:il},"zh-TW":{translation:al},en:{translation:ol},ru:{translation:sl}},lng:pl(),fallbackLng:`zh-CN`,interpolation:{escapeValue:!1},react:{useSuspense:!1}});var ml=fo,hl=Tc()(Zc(e=>({language:pl(),setLanguage:t=>{ll(t)&&(ml.changeLanguage(t),e({language:t}))}}),{name:Uc,merge:(e,t)=>{let n=e?.language;return typeof n==`string`&&ll(n)?{...t,...e,language:n}:t}})),gl=`enc::v1::`,_l=`cli-proxy-api-webui::secure-storage`,vl=null;function yl(e){return new TextEncoder().encode(e)}function bl(e){return new TextDecoder().decode(e)}function xl(){if(vl)return vl;try{let e=window.location.host,t=navigator.userAgent;vl=yl(`${_l}|${e}|${t}`)}catch(e){console.warn(`Obfuscation fallback to simple key:`,e),vl=yl(_l)}return vl}function Sl(e,t){let n=new Uint8Array(e.length);for(let r=0;r<e.length;r++)n[r]=e[r]^t[r%t.length];return n}function Cl(e){let t=``;for(let n=0;n<e.length;n++)t+=String.fromCharCode(e[n]);return btoa(t)}function wl(e){let t=atob(e),n=new Uint8Array(t.length);for(let e=0;e<t.length;e++)n[e]=t.charCodeAt(e);return n}function Tl(e){if(!e)return e;try{let t=xl();return`${gl}${Cl(Sl(yl(e),t))}`}catch(t){return console.warn(`Obfuscation failed, fallback to plaintext:`,t),e}}function El(e){if(!e||!e.startsWith(gl))return e;try{return bl(Sl(wl(e.slice(9)),xl()))}catch(t){return console.warn(`Deobfuscation failed, return as-is:`,t),e}}function Dl(e){return e?.startsWith(gl)||!1}var Ol=new class{setItem(e,t,n={}){let r=n.obfuscate??n.encrypt??!0;if(t==null){this.removeItem(e);return}let i=JSON.stringify(t),a=r?Tl(i):i;localStorage.setItem(e,a)}getItem(e,t={}){let n=t.obfuscate??t.encrypt??!0,r=localStorage.getItem(e);if(r===null)return null;try{let e=n?El(r):r;return JSON.parse(e)}catch{try{return n&&Dl(r)?El(r):r}catch{return null}}}removeItem(e){localStorage.removeItem(e)}migratePlaintextKeys(e){e.forEach(e=>{let t=localStorage.getItem(e);if(!t||Dl(t))return;let n;try{n=JSON.parse(t)}catch{n=t}try{this.setItem(e,n)}catch(t){console.warn(`Failed to migrate key "${e}":`,t)}})}};function kl(e,t){return function(){return e.apply(t,arguments)}}var{toString:Al}=Object.prototype,{getPrototypeOf:jl}=Object,{iterator:Ml,toStringTag:Nl}=Symbol,Pl=(({hasOwnProperty:e})=>(t,n)=>e.call(t,n))(Object.prototype),Fl=(e,t)=>{let n=e,r=[];for(;n!=null&&n!==Object.prototype;){if(r.indexOf(n)!==-1)return!1;if(r.push(n),Pl(n,t))return!0;n=jl(n)}return!1},Il=(e,t)=>e!=null&&Fl(e,t)?e[t]:void 0,Ll=(e=>t=>{let n=Al.call(t);return e[n]||(e[n]=n.slice(8,-1).toLowerCase())})(Object.create(null)),Rl=e=>(e=e.toLowerCase(),t=>Ll(t)===e),zl=e=>t=>typeof t===e,{isArray:Bl}=Array,Vl=zl(`undefined`);function Hl(e){return e!==null&&!Vl(e)&&e.constructor!==null&&!Vl(e.constructor)&&Kl(e.constructor.isBuffer)&&e.constructor.isBuffer(e)}var Ul=Rl(`ArrayBuffer`);function Wl(e){let t;return t=typeof ArrayBuffer<`u`&&ArrayBuffer.isView?ArrayBuffer.isView(e):e&&e.buffer&&Ul(e.buffer),t}var Gl=zl(`string`),Kl=zl(`function`),ql=zl(`number`),Jl=e=>typeof e==`object`&&!!e,Yl=e=>e===!0||e===!1,Xl=e=>{if(!Jl(e))return!1;let t=jl(e);return(t===null||t===Object.prototype||jl(t)===null)&&!Fl(e,Nl)&&!Fl(e,Ml)},Zl=e=>{if(!Jl(e)||Hl(e))return!1;try{return Object.keys(e).length===0&&Object.getPrototypeOf(e)===Object.prototype}catch{return!1}},Ql=Rl(`Date`),$l=Rl(`File`),eu=e=>!!(e&&e.uri!==void 0),tu=e=>e&&e.getParts!==void 0,nu=Rl(`Blob`),ru=Rl(`FileList`),iu=e=>Jl(e)&&Kl(e.pipe);function au(){return typeof globalThis<`u`?globalThis:typeof self<`u`?self:typeof window<`u`?window:typeof global<`u`?global:{}}var ou=au(),su=ou.FormData===void 0?void 0:ou.FormData,cu=e=>{if(!e)return!1;if(su&&e instanceof su)return!0;let t=jl(e);if(!t||t===Object.prototype||!Kl(e.append))return!1;let n=Ll(e);return n===`formdata`||n===`object`&&Kl(e.toString)&&e.toString()===`[object FormData]`},lu=Rl(`URLSearchParams`),[uu,du,fu,pu]=[`ReadableStream`,`Request`,`Response`,`Headers`].map(Rl),mu=e=>e.trim?e.trim():e.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,``);function hu(e,t,{allOwnKeys:n=!1}={}){if(e==null)return;let r,i;if(typeof e!=`object`&&(e=[e]),Bl(e))for(r=0,i=e.length;r<i;r++)t.call(null,e[r],r,e);else{if(Hl(e))return;let i=n?Object.getOwnPropertyNames(e):Object.keys(e),a=i.length,o;for(r=0;r<a;r++)o=i[r],t.call(null,e[o],o,e)}}function gu(e,t){if(Hl(e))return null;t=t.toLowerCase();let n=Object.keys(e),r=n.length,i;for(;r-->0;)if(i=n[r],t===i.toLowerCase())return i;return null}var _u=typeof globalThis<`u`?globalThis:typeof self<`u`?self:typeof window<`u`?window:global,vu=e=>!Vl(e)&&e!==_u;function yu(...e){let{caseless:t,skipUndefined:n}=vu(this)&&this||{},r={},i=(e,i)=>{if(i===`__proto__`||i===`constructor`||i===`prototype`)return;let a=t&&typeof i==`string`&&gu(r,i)||i,o=Pl(r,a)?r[a]:void 0;Xl(o)&&Xl(e)?r[a]=yu(o,e):Xl(e)?r[a]=yu({},e):Bl(e)?r[a]=e.slice():(!n||!Vl(e))&&(r[a]=e)};for(let t=0,n=e.length;t<n;t++){let n=e[t];if(!n||Hl(n)||(hu(n,i),typeof n!=`object`||Bl(n)))continue;let r=Object.getOwnPropertySymbols(n);for(let e=0;e<r.length;e++){let t=r[e];ju.call(n,t)&&i(n[t],t)}}return r}var bu=(e,t,n,{allOwnKeys:r}={})=>(hu(t,(t,r)=>{n&&Kl(t)?Object.defineProperty(e,r,{__proto__:null,value:kl(t,n),writable:!0,enumerable:!0,configurable:!0}):Object.defineProperty(e,r,{__proto__:null,value:t,writable:!0,enumerable:!0,configurable:!0})},{allOwnKeys:r}),e),xu=e=>(e.charCodeAt(0)===65279&&(e=e.slice(1)),e),Su=(e,t,n,r)=>{e.prototype=Object.create(t.prototype,r),Object.defineProperty(e.prototype,"constructor",{__proto__:null,value:e,writable:!0,enumerable:!1,configurable:!0}),Object.defineProperty(e,"super",{__proto__:null,value:t.prototype}),n&&Object.assign(e.prototype,n)},Cu=(e,t,n,r)=>{let i,a,o,s={};if(t=t||{},e==null)return t;do{for(i=Object.getOwnPropertyNames(e),a=i.length;a-->0;)o=i[a],(!r||r(o,e,t))&&!s[o]&&(t[o]=e[o],s[o]=!0);e=n!==!1&&jl(e)}while(e&&(!n||n(e,t))&&e!==Object.prototype);return t},wu=(e,t,n)=>{e=String(e),(n===void 0||n>e.length)&&(n=e.length),n-=t.length;let r=e.indexOf(t,n);return r!==-1&&r===n},Tu=e=>{if(!e)return null;if(Bl(e))return e;let t=e.length;if(!ql(t))return null;let n=Array(t);for(;t-->0;)n[t]=e[t];return n},Eu=(e=>t=>e&&t instanceof e)(typeof Uint8Array<`u`&&jl(Uint8Array)),Du=(e,t)=>{let n=(e&&e[Ml]).call(e),r;for(;(r=n.next())&&!r.done;){let n=r.value;t.call(e,n[0],n[1])}},Ou=(e,t)=>{let n,r=[];for(;(n=e.exec(t))!==null;)r.push(n);return r},ku=Rl(`HTMLFormElement`),Au=e=>e.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,function(e,t,n){return t.toUpperCase()+n}),{propertyIsEnumerable:ju}=Object.prototype,Mu=Rl(`RegExp`),Nu=(e,t)=>{let n=Object.getOwnPropertyDescriptors(e),r={};hu(n,(n,i)=>{let a;(a=t(n,i,e))!==!1&&(r[i]=a||n)}),Object.defineProperties(e,r)},Pu=e=>{Nu(e,(t,n)=>{if(Kl(e)&&[`arguments`,`caller`,`callee`].includes(n))return!1;let r=e[n];if(Kl(r)){if(t.enumerable=!1,`writable`in t){t.writable=!1;return}t.set||(t.set=()=>{throw Error(`Can not rewrite read-only method '`+n+`'`)})}})},Fu=(e,t)=>{let n={},r=e=>{e.forEach(e=>{n[e]=!0})};return Bl(e)?r(e):r(String(e).split(t)),n},Iu=()=>{},Lu=(e,t)=>e!=null&&Number.isFinite(e=+e)?e:t;function Ru(e){return!!(e&&Kl(e.append)&&e[Nl]===`FormData`&&e[Ml])}var zu=e=>{let t=new WeakSet,n=e=>{if(Jl(e)){if(t.has(e))return;if(Hl(e))return e;if(!(`toJSON`in e)){t.add(e);let r=Bl(e)?[]:{};return hu(e,(e,t)=>{let i=n(e);!Vl(i)&&(r[t]=i)}),t.delete(e),r}}return e};return n(e)},Bu=Rl(`AsyncFunction`),Vu=e=>e&&(Jl(e)||Kl(e))&&Kl(e.then)&&Kl(e.catch),Hu=((e,t)=>e?setImmediate:t?((e,t)=>(_u.addEventListener(`message`,({source:n,data:r})=>{n===_u&&r===e&&t.length&&t.shift()()},!1),n=>{t.push(n),_u.postMessage(e,`*`)}))(`axios@${Math.random()}`,[]):e=>setTimeout(e))(typeof setImmediate==`function`,Kl(_u.postMessage)),Uu=typeof queueMicrotask<`u`?queueMicrotask.bind(_u):typeof process<`u`&&process.nextTick||Hu,Wu=e=>e!=null&&Kl(e[Ml]),U={isArray:Bl,isArrayBuffer:Ul,isBuffer:Hl,isFormData:cu,isArrayBufferView:Wl,isString:Gl,isNumber:ql,isBoolean:Yl,isObject:Jl,isPlainObject:Xl,isEmptyObject:Zl,isReadableStream:uu,isRequest:du,isResponse:fu,isHeaders:pu,isUndefined:Vl,isDate:Ql,isFile:$l,isReactNativeBlob:eu,isReactNative:tu,isBlob:nu,isRegExp:Mu,isFunction:Kl,isStream:iu,isURLSearchParams:lu,isTypedArray:Eu,isFileList:ru,forEach:hu,merge:yu,extend:bu,trim:mu,stripBOM:xu,inherits:Su,toFlatObject:Cu,kindOf:Ll,kindOfTest:Rl,endsWith:wu,toArray:Tu,forEachEntry:Du,matchAll:Ou,isHTMLForm:ku,hasOwnProperty:Pl,hasOwnProp:Pl,hasOwnInPrototypeChain:Fl,getSafeProp:Il,reduceDescriptors:Nu,freezeMethods:Pu,toObjectSet:Fu,toCamelCase:Au,noop:Iu,toFiniteNumber:Lu,findKey:gu,global:_u,isContextDefined:vu,isSpecCompliantForm:Ru,toJSONObject:zu,isAsyncFn:Bu,isThenable:Vu,setImmediate:Hu,asap:Uu,isIterable:Wu,isSafeIterable:e=>e!=null&&Fl(e,Ml)&&Wu(e)},Gu=U.toObjectSet([`age`,`authorization`,`content-length`,`content-type`,`etag`,`expires`,`from`,`host`,`if-modified-since`,`if-unmodified-since`,`last-modified`,`location`,`max-forwards`,`proxy-authorization`,`referer`,`retry-after`,`user-agent`]),Ku=e=>{let t={},n,r,i;return e&&e.split(`
`).forEach(function(e){i=e.indexOf(`:`),n=e.substring(0,i).trim().toLowerCase(),r=e.substring(i+1).trim(),!(!n||t[n]&&Gu[n])&&(n===`set-cookie`?t[n]?t[n].push(r):t[n]=[r]:t[n]=t[n]?t[n]+`, `+r:r)}),t};function qu(e){let t=0,n=e.length;for(;t<n;){let n=e.charCodeAt(t);if(n!==9&&n!==32)break;t+=1}for(;n>t;){let t=e.charCodeAt(n-1);if(t!==9&&t!==32)break;--n}return t===0&&n===e.length?e:e.slice(t,n)}var Ju=RegExp(`[\\u0000-\\u0008\\u000a-\\u001f\\u007f]+`,`g`),Yu=RegExp(`[^\\u0009\\u0020-\\u007e\\u0080-\\u00ff]+`,`g`);function Xu(e,t){return U.isArray(e)?e.map(e=>Xu(e,t)):qu(String(e).replace(t,``))}var Zu=e=>Xu(e,Ju),Qu=e=>Xu(e,Yu);function $u(e){let t=Object.create(null);return U.forEach(e.toJSON(),(e,n)=>{t[n]=Qu(e)}),t}var ed=Symbol(`internals`);function td(e){return e&&String(e).trim().toLowerCase()}function nd(e){return e===!1||e==null?e:U.isArray(e)?e.map(nd):Zu(String(e))}function rd(e){let t=Object.create(null),n=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g,r;for(;r=n.exec(e);)t[r[1]]=r[2];return t}var id=e=>/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(e.trim());function ad(e,t,n,r,i){if(U.isFunction(r))return r.call(this,t,n);if(i&&(t=n),U.isString(t)){if(U.isString(r))return t.indexOf(r)!==-1;if(U.isRegExp(r))return r.test(t)}}function od(e){return e.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,(e,t,n)=>t.toUpperCase()+n)}function sd(e,t){let n=U.toCamelCase(` `+t);[`get`,`set`,`has`].forEach(r=>{Object.defineProperty(e,r+n,{__proto__:null,value:function(e,n,i){return this[r].call(this,t,e,n,i)},configurable:!0})})}var cd=class{constructor(e){e&&this.set(e)}set(e,t,n){let r=this;function i(e,t,n){let i=td(t);if(!i)return;let a=U.findKey(r,i);(!a||r[a]===void 0||n===!0||n===void 0&&r[a]!==!1)&&(r[a||t]=nd(e))}let a=(e,t)=>U.forEach(e,(e,n)=>i(e,n,t));if(U.isPlainObject(e)||e instanceof this.constructor)a(e,t);else if(U.isString(e)&&(e=e.trim())&&!id(e))a(Ku(e),t);else if(U.isObject(e)&&U.isSafeIterable(e)){let n=Object.create(null),r,i;for(let t of e){if(!U.isArray(t))throw TypeError(`Object iterator must return a key-value pair`);i=t[0],U.hasOwnProp(n,i)?(r=n[i],n[i]=U.isArray(r)?[...r,t[1]]:[r,t[1]]):n[i]=t[1]}a(n,t)}else e!=null&&i(t,e,n);return this}get(e,t){if(e=td(e),e){let n=U.findKey(this,e);if(n){let e=this[n];if(!t)return e;if(t===!0)return rd(e);if(U.isFunction(t))return t.call(this,e,n);if(U.isRegExp(t))return t.exec(e);throw TypeError(`parser must be boolean|regexp|function`)}}}has(e,t){if(e=td(e),e){let n=U.findKey(this,e);return!!(n&&this[n]!==void 0&&(!t||ad(this,this[n],n,t)))}return!1}delete(e,t){let n=this,r=!1;function i(e){if(e=td(e),e){let i=U.findKey(n,e);i&&(!t||ad(n,n[i],i,t))&&(delete n[i],r=!0)}}return U.isArray(e)?e.forEach(i):i(e),r}clear(e){let t=Object.keys(this),n=t.length,r=!1;for(;n--;){let i=t[n];(!e||ad(this,this[i],i,e,!0))&&(delete this[i],r=!0)}return r}normalize(e){let t=this,n={};return U.forEach(this,(r,i)=>{let a=U.findKey(n,i);if(a){t[a]=nd(r),delete t[i];return}let o=e?od(i):String(i).trim();o!==i&&delete t[i],t[o]=nd(r),n[o]=!0}),this}concat(...e){return this.constructor.concat(this,...e)}toJSON(e){let t=Object.create(null);return U.forEach(this,(n,r)=>{n!=null&&n!==!1&&(t[r]=e&&U.isArray(n)?n.join(`, `):n)}),t}[Symbol.iterator](){return Object.entries(this.toJSON())[Symbol.iterator]()}toString(){return Object.entries(this.toJSON()).map(([e,t])=>e+`: `+t).join(`
`)}getSetCookie(){return this.get(`set-cookie`)||[]}get[Symbol.toStringTag](){return`AxiosHeaders`}static from(e){return e instanceof this?e:new this(e)}static concat(e,...t){let n=new this(e);return t.forEach(e=>n.set(e)),n}static accessor(e){let t=(this[ed]=this[ed]={accessors:{}}).accessors,n=this.prototype;function r(e){let r=td(e);t[r]||(sd(n,e),t[r]=!0)}return U.isArray(e)?e.forEach(r):r(e),this}};cd.accessor([`Content-Type`,`Content-Length`,`Accept`,`Accept-Encoding`,`User-Agent`,`Authorization`]),U.reduceDescriptors(cd.prototype,({value:e},t)=>{let n=t[0].toUpperCase()+t.slice(1);return{get:()=>e,set(e){this[n]=e}}}),U.freezeMethods(cd);var ld=`[REDACTED ****]`;function ud(e){if(U.hasOwnProp(e,`toJSON`))return!0;let t=Object.getPrototypeOf(e);for(;t&&t!==Object.prototype;){if(U.hasOwnProp(t,`toJSON`))return!0;t=Object.getPrototypeOf(t)}return!1}function dd(e,t){let n=new Set(t.map(e=>String(e).toLowerCase())),r=[],i=e=>{if(typeof e!=`object`||!e||U.isBuffer(e))return e;if(r.indexOf(e)!==-1)return;e instanceof cd&&(e=e.toJSON()),r.push(e);let t;if(U.isArray(e))t=[],e.forEach((e,n)=>{let r=i(e);U.isUndefined(r)||(t[n]=r)});else{if(!U.isPlainObject(e)&&ud(e))return r.pop(),e;t=Object.create(null);for(let[r,a]of Object.entries(e)){let e=n.has(r.toLowerCase())?ld:i(a);U.isUndefined(e)||(t[r]=e)}}return r.pop(),t};return i(e)}var fd=class e extends Error{static from(t,n,r,i,a,o){let s=new e(t.message,n||t.code,r,i,a);return Object.defineProperty(s,"cause",{__proto__:null,value:t,writable:!0,enumerable:!1,configurable:!0}),s.name=t.name,t.status!=null&&s.status==null&&(s.status=t.status),o&&Object.assign(s,o),s}constructor(e,t,n,r,i){super(e),Object.defineProperty(this,"message",{__proto__:null,value:e,enumerable:!0,writable:!0,configurable:!0}),this.name=`AxiosError`,this.isAxiosError=!0,t&&(this.code=t),n&&(this.config=n),r&&(this.request=r),i&&(this.response=i,this.status=i.status)}toJSON(){let e=this.config,t=e&&U.hasOwnProp(e,`redact`)?e.redact:void 0,n=U.isArray(t)&&t.length>0?dd(e,t):U.toJSONObject(e);return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:n,code:this.code,status:this.status}}};fd.ERR_BAD_OPTION_VALUE=`ERR_BAD_OPTION_VALUE`,fd.ERR_BAD_OPTION=`ERR_BAD_OPTION`,fd.ECONNABORTED=`ECONNABORTED`,fd.ETIMEDOUT=`ETIMEDOUT`,fd.ECONNREFUSED=`ECONNREFUSED`,fd.ERR_NETWORK=`ERR_NETWORK`,fd.ERR_FR_TOO_MANY_REDIRECTS=`ERR_FR_TOO_MANY_REDIRECTS`,fd.ERR_DEPRECATED=`ERR_DEPRECATED`,fd.ERR_BAD_RESPONSE=`ERR_BAD_RESPONSE`,fd.ERR_BAD_REQUEST=`ERR_BAD_REQUEST`,fd.ERR_CANCELED=`ERR_CANCELED`,fd.ERR_NOT_SUPPORT=`ERR_NOT_SUPPORT`,fd.ERR_INVALID_URL=`ERR_INVALID_URL`,fd.ERR_FORM_DATA_DEPTH_EXCEEDED=`ERR_FORM_DATA_DEPTH_EXCEEDED`;function pd(e){return U.isPlainObject(e)||U.isArray(e)}function md(e){return U.endsWith(e,`[]`)?e.slice(0,-2):e}function hd(e,t,n){return e?e.concat(t).map(function(e,t){return e=md(e),!n&&t?`[`+e+`]`:e}).join(n?`.`:``):t}function gd(e){return U.isArray(e)&&!e.some(pd)}var _d=U.toFlatObject(U,{},null,function(e){return/^is[A-Z]/.test(e)});function vd(e,t,n){if(!U.isObject(e))throw TypeError(`target must be an object`);t=t||new FormData,n=U.toFlatObject(n,{metaTokens:!0,dots:!1,indexes:!1},!1,function(e,t){return!U.isUndefined(t[e])});let r=n.metaTokens,i=n.visitor||m,a=n.dots,o=n.indexes,s=n.Blob||typeof Blob<`u`&&Blob,c=n.maxDepth===void 0?100:n.maxDepth,l=s&&U.isSpecCompliantForm(t),u=[];if(!U.isFunction(i))throw TypeError(`visitor must be a function`);function d(e){if(e===null)return``;if(U.isDate(e))return e.toISOString();if(U.isBoolean(e))return e.toString();if(!l&&U.isBlob(e))throw new fd(`Blob is not supported. Use a Buffer instead.`);if(U.isArrayBuffer(e)||U.isTypedArray(e)){if(l&&typeof s==`function`)return new s([e]);if(typeof Buffer<`u`)return Buffer.from(e);throw new fd(`Blob is not supported. Use a Buffer instead.`,fd.ERR_NOT_SUPPORT)}return e}function f(e){if(e>c)throw new fd(`Object is too deeply nested (`+e+` levels). Max depth: `+c,fd.ERR_FORM_DATA_DEPTH_EXCEEDED)}function p(e,t){if(c===1/0)return JSON.stringify(e);let n=[];return JSON.stringify(e,function(e,r){if(!U.isObject(r))return r;for(;n.length&&n[n.length-1]!==this;)n.pop();return n.push(r),f(t+n.length-1),r})}function m(e,n,i){let s=e;if(U.isReactNative(t)&&U.isReactNativeBlob(e))return t.append(hd(i,n,a),d(e)),!1;if(e&&!i&&typeof e==`object`){if(U.endsWith(n,`{}`))n=r?n:n.slice(0,-2),e=p(e,1);else if(U.isArray(e)&&gd(e)||(U.isFileList(e)||U.endsWith(n,`[]`))&&(s=U.toArray(e)))return n=md(n),s.forEach(function(e,r){!(U.isUndefined(e)||e===null)&&t.append(o===!0?hd([n],r,a):o===null?n:n+`[]`,d(e))}),!1}return pd(e)?!0:(t.append(hd(i,n,a),d(e)),!1)}let h=Object.assign(_d,{defaultVisitor:m,convertValue:d,isVisitable:pd});function g(e,n,r=0){if(!U.isUndefined(e)){if(f(r),u.indexOf(e)!==-1)throw Error(`Circular reference detected in `+n.join(`.`));u.push(e),U.forEach(e,function(e,a){(!(U.isUndefined(e)||e===null)&&i.call(t,e,U.isString(a)?a.trim():a,n,h))===!0&&g(e,n?n.concat(a):[a],r+1)}),u.pop()}}if(!U.isObject(e))throw TypeError(`data must be an object`);return g(e),t}function yd(e){let t={"!":`%21`,"'":`%27`,"(":`%28`,")":`%29`,"~":`%7E`,"%20":`+`};return encodeURIComponent(e).replace(/[!'()~]|%20/g,function(e){return t[e]})}function bd(e,t){this._pairs=[],e&&vd(e,this,t)}var xd=bd.prototype;xd.append=function(e,t){this._pairs.push([e,t])},xd.toString=function(e){let t=e?t=>e.call(this,t,yd):yd;return this._pairs.map(function(e){return t(e[0])+`=`+t(e[1])},``).join(`&`)};function Sd(e){return encodeURIComponent(e).replace(/%3A/gi,`:`).replace(/%24/g,`$`).replace(/%2C/gi,`,`).replace(/%20/g,`+`)}function Cd(e,t,n){if(!t)return e;e=e||``;let r=U.isFunction(n)?{serialize:n}:n,i=U.getSafeProp(r,`encode`)||Sd,a=U.getSafeProp(r,`serialize`),o;if(o=a?a(t,r):U.isURLSearchParams(t)?t.toString():new bd(t,r).toString(i),o){let t=e.indexOf(`#`);t!==-1&&(e=e.slice(0,t)),e+=(e.indexOf(`?`)===-1?`?`:`&`)+o}return e}var wd=class{constructor(){this.handlers=[]}use(e,t,n){return this.handlers.push({fulfilled:e,rejected:t,synchronous:n?n.synchronous:!1,runWhen:n?n.runWhen:null}),this.handlers.length-1}eject(e){this.handlers[e]&&(this.handlers[e]=null)}clear(){this.handlers&&(this.handlers=[])}forEach(e){U.forEach(this.handlers,function(t){t!==null&&e(t)})}},Td={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1,legacyInterceptorReqResOrdering:!0,advertiseZstdAcceptEncoding:!1,validateStatusUndefinedResolves:!0},Ed={isBrowser:!0,classes:{URLSearchParams:typeof URLSearchParams<`u`?URLSearchParams:bd,FormData:typeof FormData<`u`?FormData:null,Blob:typeof Blob<`u`?Blob:null},protocols:[`http`,`https`,`file`,`blob`,`url`,`data`]},Dd=c({hasBrowserEnv:()=>Od,hasStandardBrowserEnv:()=>Ad,hasStandardBrowserWebWorkerEnv:()=>jd,navigator:()=>kd,origin:()=>Md}),Od=typeof window<`u`&&typeof document<`u`,kd=typeof navigator==`object`&&navigator||void 0,Ad=Od&&(!kd||[`ReactNative`,`NativeScript`,`NS`].indexOf(kd.product)<0),jd=typeof WorkerGlobalScope<`u`&&self instanceof WorkerGlobalScope&&typeof self.importScripts==`function`,Md=Od&&window.location.href||`http://localhost`,Nd={...Dd,...Ed};function Pd(e,t){return vd(e,new Nd.classes.URLSearchParams,{visitor:function(e,t,n,r){return Nd.isNode&&U.isBuffer(e)?(this.append(t,e.toString(`base64`)),!1):r.defaultVisitor.apply(this,arguments)},...t})}var Fd=100;function Id(e){if(e>Fd)throw new fd(`FormData field is too deeply nested (`+e+` levels). Max depth: `+Fd,fd.ERR_FORM_DATA_DEPTH_EXCEEDED)}function Ld(e){let t=[],n=/\w+|\[(\w*)]/g,r;for(;(r=n.exec(e))!==null;)Id(t.length),t.push(r[0]===`[]`?``:r[1]||r[0]);return t}function Rd(e){let t={},n=Object.keys(e),r,i=n.length,a;for(r=0;r<i;r++)a=n[r],t[a]=e[a];return t}function zd(e){function t(e,n,r,i){Id(i);let a=e[i++];if(a===`__proto__`)return!0;let o=Number.isFinite(+a),s=i>=e.length;return a=!a&&U.isArray(r)?r.length:a,s?(U.hasOwnProp(r,a)?r[a]=U.isArray(r[a])?r[a].concat(n):[r[a],n]:r[a]=n,!o):((!U.hasOwnProp(r,a)||!U.isObject(r[a]))&&(r[a]=[]),t(e,n,r[a],i)&&U.isArray(r[a])&&(r[a]=Rd(r[a])),!o)}if(U.isFormData(e)&&U.isFunction(e.entries)){let n={};return U.forEachEntry(e,(e,r)=>{t(Ld(e),r,n,0)}),n}return null}var Bd=(e,t)=>e!=null&&U.hasOwnProp(e,t)?e[t]:void 0;function Vd(e,t,n){if(U.isString(e))try{return(t||JSON.parse)(e),U.trim(e)}catch(e){if(e.name!==`SyntaxError`)throw e}return(n||JSON.stringify)(e)}var Hd={transitional:Td,adapter:[`xhr`,`http`,`fetch`],transformRequest:[function(e,t){let n=t.getContentType()||``,r=n.indexOf(`application/json`)>-1,i=U.isObject(e);if(i&&U.isHTMLForm(e)&&(e=new FormData(e)),U.isFormData(e))return r?JSON.stringify(zd(e)):e;if(U.isArrayBuffer(e)||U.isBuffer(e)||U.isStream(e)||U.isFile(e)||U.isBlob(e)||U.isReadableStream(e))return e;if(U.isArrayBufferView(e))return e.buffer;if(U.isURLSearchParams(e))return t.setContentType(`application/x-www-form-urlencoded;charset=utf-8`,!1),e.toString();let a;if(i){let t=Bd(this,`formSerializer`);if(n.indexOf(`application/x-www-form-urlencoded`)>-1)return Pd(e,t).toString();if((a=U.isFileList(e))||n.indexOf(`multipart/form-data`)>-1){let n=Bd(this,`env`),r=n&&n.FormData;return vd(a?{"files[]":e}:e,r&&new r,t)}}return i||r?(t.setContentType(`application/json`,!1),Vd(e)):e}],transformResponse:[function(e){let t=Bd(this,`transitional`)||Hd.transitional,n=t&&t.forcedJSONParsing,r=Bd(this,`responseType`),i=r===`json`;if(U.isResponse(e)||U.isReadableStream(e))return e;if(e&&U.isString(e)&&(n&&!r||i)){let n=!(t&&t.silentJSONParsing)&&i;try{return JSON.parse(e,Bd(this,`parseReviver`))}catch(e){if(n)throw e.name===`SyntaxError`?fd.from(e,fd.ERR_BAD_RESPONSE,this,null,Bd(this,`response`)):e}}return e}],timeout:0,xsrfCookieName:`XSRF-TOKEN`,xsrfHeaderName:`X-XSRF-TOKEN`,maxContentLength:-1,maxBodyLength:-1,env:{FormData:Nd.classes.FormData,Blob:Nd.classes.Blob},validateStatus:function(e){return e>=200&&e<300},headers:{common:{Accept:`application/json, text/plain, */*`,"Content-Type":void 0}}};U.forEach([`delete`,`get`,`head`,`post`,`put`,`patch`,`query`],e=>{Hd.headers[e]={}});function Ud(e,t){let n=this||Hd,r=t||n,i=cd.from(r.headers),a=r.data;return U.forEach(e,function(e){a=e.call(n,a,i.normalize(),t?t.status:void 0)}),i.normalize(),a}function Wd(e){return!!(e&&e.__CANCEL__)}var Gd=class extends fd{constructor(e,t,n){super(e??`canceled`,fd.ERR_CANCELED,t,n),this.name=`CanceledError`,this.__CANCEL__=!0}};function Kd(e,t,n){let r=n.config.validateStatus;!n.status||!r||r(n.status)?e(n):t(new fd(`Request failed with status code `+n.status,n.status>=400&&n.status<500?fd.ERR_BAD_REQUEST:fd.ERR_BAD_RESPONSE,n.config,n.request,n))}function qd(e){let t=/^([-+\w]{1,25}):(?:\/\/)?/.exec(e);return t&&t[1]||``}function Jd(e,t){e=e||10;let n=Array(e),r=Array(e),i=0,a=0,o;return t=t===void 0?1e3:t,function(s){let c=Date.now(),l=r[a];o||(o=c),n[i]=s,r[i]=c;let u=a,d=0;for(;u!==i;)d+=n[u++],u%=e;if(i=(i+1)%e,i===a&&(a=(a+1)%e),c-o<t)return;let f=l&&c-l;return f?Math.round(d*1e3/f):void 0}}function Yd(e,t){let n=0,r=1e3/t,i,a,o=(t,r=Date.now())=>{n=r,i=null,a&&(clearTimeout(a),a=null),e(...t)};return[(...e)=>{let t=Date.now(),s=t-n;s>=r?o(e,t):(i=e,a||(a=setTimeout(()=>{a=null,o(i)},r-s)))},()=>i&&o(i)]}var Xd=(e,t,n=3)=>{let r=0,i=Jd(50,250);return Yd(n=>{if(!n||typeof n.loaded!=`number`)return;let a=n.loaded,o=n.lengthComputable?n.total:void 0,s=o==null?a:Math.min(a,o),c=Math.max(0,s-r),l=i(c);r=Math.max(r,s),e({loaded:s,total:o,progress:o?s/o:void 0,bytes:c,rate:l||void 0,estimated:l&&o?(o-s)/l:void 0,event:n,lengthComputable:o!=null,[t?`download`:`upload`]:!0})},n)},Zd=(e,t)=>{let n=e!=null;return[r=>t[0]({lengthComputable:n,total:e,loaded:r}),t[1]]},Qd=e=>(...t)=>U.asap(()=>e(...t)),$d=Nd.hasStandardBrowserEnv?((e,t)=>n=>(n=new URL(n,Nd.origin),e.protocol===n.protocol&&e.host===n.host&&(t||e.port===n.port)))(new URL(Nd.origin),Nd.navigator&&/(msie|trident)/i.test(Nd.navigator.userAgent)):()=>!0,ef=Nd.hasStandardBrowserEnv?{write(e,t,n,r,i,a,o){if(typeof document>`u`)return;let s=[`${e}=${encodeURIComponent(t)}`];U.isNumber(n)&&s.push(`expires=${new Date(n).toUTCString()}`),U.isString(r)&&s.push(`path=${r}`),U.isString(i)&&s.push(`domain=${i}`),a===!0&&s.push(`secure`),U.isString(o)&&s.push(`SameSite=${o}`),document.cookie=s.join(`; `)},read(e){if(typeof document>`u`)return null;let t=document.cookie.split(`;`);for(let n=0;n<t.length;n++){let r=t[n].replace(/^\s+/,``),i=r.indexOf(`=`);if(i!==-1&&r.slice(0,i)===e)try{return decodeURIComponent(r.slice(i+1))}catch{return r.slice(i+1)}}return null},remove(e){this.write(e,``,Date.now()-864e5,`/`)}}:{write(){},read(){return null},remove(){}};function tf(e){return typeof e==`string`&&/^([a-z][a-z\d+\-.]*:)?\/\//i.test(e)}function nf(e,t){return t?e.replace(/\/?\/$/,``)+`/`+t.replace(/^\/+/,``):e}var rf=/^https?:(?!\/\/)/i,af=/[\t\n\r]/g;function of(e){let t=0;for(;t<e.length&&e.charCodeAt(t)<=32;)t++;return e.slice(t)}function sf(e){return of(e).replace(af,``)}function cf(e,t){if(typeof e==`string`&&rf.test(sf(e)))throw new fd(`Invalid URL: missing "//" after protocol`,fd.ERR_INVALID_URL,t)}function lf(e,t,n,r){cf(t,r);let i=!tf(t);return e&&(i||n===!1)?(cf(e,r),nf(e,t)):t}var uf=e=>e instanceof cd?{...e}:e;function df(e,t){e=e||{},t=t||{};let n=Object.create(null);Object.defineProperty(n,"hasOwnProperty",{__proto__:null,value:Object.prototype.hasOwnProperty,enumerable:!1,writable:!0,configurable:!0});function r(e,t,n,r){return U.isPlainObject(e)&&U.isPlainObject(t)?U.merge.call({caseless:r},e,t):U.isPlainObject(t)?U.merge({},t):U.isArray(t)?t.slice():t}function i(e,t,n,i){if(!U.isUndefined(t))return r(e,t,n,i);if(!U.isUndefined(e))return r(void 0,e,n,i)}function a(e,t){if(!U.isUndefined(t))return r(void 0,t)}function o(e,t){if(!U.isUndefined(t))return r(void 0,t);if(!U.isUndefined(e))return r(void 0,e)}function s(n){let r=U.hasOwnProp(t,`transitional`)?t.transitional:void 0;if(!U.isUndefined(r))if(U.isPlainObject(r)){if(U.hasOwnProp(r,n))return r[n]}else return;let i=U.hasOwnProp(e,`transitional`)?e.transitional:void 0;if(U.isPlainObject(i)&&U.hasOwnProp(i,n))return i[n]}function c(n,i,a){if(U.hasOwnProp(t,a))return r(n,i);if(U.hasOwnProp(e,a))return r(void 0,n)}let l={url:a,method:a,data:a,baseURL:o,transformRequest:o,transformResponse:o,paramsSerializer:o,timeout:o,timeoutMessage:o,withCredentials:o,withXSRFToken:o,adapter:o,responseType:o,xsrfCookieName:o,xsrfHeaderName:o,onUploadProgress:o,onDownloadProgress:o,decompress:o,maxContentLength:o,maxBodyLength:o,beforeRedirect:o,transport:o,httpAgent:o,httpsAgent:o,cancelToken:o,socketPath:o,allowedSocketPaths:o,responseEncoding:o,validateStatus:c,headers:(e,t,n)=>i(uf(e),uf(t),n,!0)};return U.forEach(Object.keys({...e,...t}),function(r){if(r===`__proto__`||r===`constructor`||r===`prototype`)return;let a=U.hasOwnProp(l,r)?l[r]:i,o=a(U.hasOwnProp(e,r)?e[r]:void 0,U.hasOwnProp(t,r)?t[r]:void 0,r);U.isUndefined(o)&&a!==c||(n[r]=o)}),U.hasOwnProp(t,`validateStatus`)&&U.isUndefined(t.validateStatus)&&s(`validateStatusUndefinedResolves`)===!1&&(U.hasOwnProp(e,`validateStatus`)?n.validateStatus=r(void 0,e.validateStatus):delete n.validateStatus),n}var ff=[`content-type`,`content-length`];function pf(e,t,n){if(n!==`content-only`){e.set(t);return}Object.entries(t||{}).forEach(([t,n])=>{ff.includes(t.toLowerCase())&&e.set(t,n)})}var mf=e=>encodeURIComponent(e).replace(/%([0-9A-F]{2})/gi,(e,t)=>String.fromCharCode(parseInt(t,16)));function hf(e){let t=df({},e),n=e=>U.hasOwnProp(t,e)?t[e]:void 0,r=n(`data`),i=n(`withXSRFToken`),a=n(`xsrfHeaderName`),o=n(`xsrfCookieName`),s=n(`headers`),c=n(`auth`),l=n(`baseURL`),u=n(`allowAbsoluteUrls`),d=n(`url`);if(t.headers=s=cd.from(s),t.url=Cd(lf(l,d,u,t),n(`params`),n(`paramsSerializer`)),c){let t=U.getSafeProp(c,`username`)||``,n=U.getSafeProp(c,`password`)||``;try{s.set(`Authorization`,`Basic `+btoa(t+`:`+(n?mf(n):``)))}catch(t){throw fd.from(t,fd.ERR_BAD_OPTION_VALUE,e)}}if(U.isFormData(r)&&(Nd.hasStandardBrowserEnv||Nd.hasStandardBrowserWebWorkerEnv||U.isReactNative(r)?s.setContentType(void 0):U.isFunction(r.getHeaders)&&pf(s,r.getHeaders(),n(`formDataHeaderPolicy`))),Nd.hasStandardBrowserEnv&&(U.isFunction(i)&&(i=i(t)),i===!0||i==null&&$d(t.url))){let e=a&&o&&ef.read(o);e&&s.set(a,e)}return t}var gf=typeof XMLHttpRequest<`u`&&function(e){return new Promise(function(t,n){let r=hf(e),i=r.data,a=cd.from(r.headers).normalize(),{responseType:o,onUploadProgress:s,onDownloadProgress:c}=r,l,u,d,f,p;function m(){f&&f(),p&&p(),r.cancelToken&&r.cancelToken.unsubscribe(l),r.signal&&r.signal.removeEventListener(`abort`,l)}let h=new XMLHttpRequest;h.open(r.method.toUpperCase(),r.url,!0),h.timeout=r.timeout;function g(){if(!h)return;let r=cd.from(`getAllResponseHeaders`in h&&h.getAllResponseHeaders());Kd(function(e){t(e),m()},function(e){n(e),m()},{data:!o||o===`text`||o===`json`?h.responseText:h.response,status:h.status,statusText:h.statusText,headers:r,config:e,request:h}),h=null}`onloadend`in h?h.onloadend=g:h.onreadystatechange=function(){!h||h.readyState!==4||h.status===0&&!(h.responseURL&&h.responseURL.startsWith(`file:`))||setTimeout(g)},h.onabort=function(){h&&(n(new fd(`Request aborted`,fd.ECONNABORTED,e,h)),m(),h=null)},h.onerror=function(t){let r=new fd(t&&t.message?t.message:`Network Error`,fd.ERR_NETWORK,e,h);r.event=t||null,n(r),m(),h=null},h.ontimeout=function(){let t=r.timeout?`timeout of `+r.timeout+`ms exceeded`:`timeout exceeded`,i=r.transitional||Td;r.timeoutErrorMessage&&(t=r.timeoutErrorMessage),n(new fd(t,i.clarifyTimeoutError?fd.ETIMEDOUT:fd.ECONNABORTED,e,h)),m(),h=null},i===void 0&&a.setContentType(null),`setRequestHeader`in h&&U.forEach($u(a),function(e,t){h.setRequestHeader(t,e)}),U.isUndefined(r.withCredentials)||(h.withCredentials=!!r.withCredentials),o&&o!==`json`&&(h.responseType=r.responseType),c&&([d,p]=Xd(c,!0),h.addEventListener(`progress`,d)),s&&h.upload&&([u,f]=Xd(s),h.upload.addEventListener(`progress`,u),h.upload.addEventListener(`loadend`,f)),(r.cancelToken||r.signal)&&(l=t=>{h&&(n(!t||t.type?new Gd(null,e,h):t),h.abort(),m(),h=null)},r.cancelToken&&r.cancelToken.subscribe(l),r.signal&&(r.signal.aborted?l():r.signal.addEventListener(`abort`,l)));let _=qd(r.url);if(_&&!Nd.protocols.includes(_)){n(new fd(`Unsupported protocol `+_+`:`,fd.ERR_BAD_REQUEST,e)),m();return}h.send(i||null)})},_f=(e,t)=>{if(e=e?e.filter(Boolean):[],!t&&!e.length)return;let n=new AbortController,r=!1,i=function(e){if(!r){r=!0,o();let t=e instanceof Error?e:this.reason;n.abort(t instanceof fd?t:new Gd(t instanceof Error?t.message:t))}},a=t&&setTimeout(()=>{a=null,i(new fd(`timeout of ${t}ms exceeded`,fd.ETIMEDOUT))},t),o=()=>{e&&(a&&clearTimeout(a),a=null,e.forEach(e=>{e.unsubscribe?e.unsubscribe(i):e.removeEventListener(`abort`,i)}),e=null)};e.forEach(e=>e.addEventListener(`abort`,i,{once:!0}));let{signal:s}=n;return s.unsubscribe=()=>U.asap(o),s},vf=function*(e,t){let n=e.byteLength;if(!t||n<t){yield e;return}let r=0,i;for(;r<n;)i=r+t,yield e.slice(r,i),r=i},yf=async function*(e,t){for await(let n of bf(e))yield*vf(n,t)},bf=async function*(e){if(e[Symbol.asyncIterator]){yield*e;return}let t=e.getReader();try{for(;;){let{done:e,value:n}=await t.read();if(e)break;yield n}}finally{await t.cancel()}},xf=(e,t,n,r)=>{let i=yf(e,t),a=0,o,s=e=>{o||(o=!0,r&&r(e))};return new ReadableStream({async pull(e){try{let{done:t,value:r}=await i.next();if(t){s(),e.close();return}let o=r.byteLength;n&&n(a+=o),e.enqueue(new Uint8Array(r))}catch(e){throw s(e),e}},cancel(e){return s(e),i.return()}},{highWaterMark:2})},Sf=e=>e>=48&&e<=57||e>=65&&e<=70||e>=97&&e<=102,Cf=(e,t,n)=>t+2<n&&Sf(e.charCodeAt(t+1))&&Sf(e.charCodeAt(t+2));function wf(e){if(!e||typeof e!=`string`||!e.startsWith(`data:`))return 0;let t=e.indexOf(`,`);if(t<0)return 0;let n=e.slice(5,t),r=e.slice(t+1);if(/;base64/i.test(n)){let e=r.length,t=r.length;for(let n=0;n<t;n++)if(r.charCodeAt(n)===37&&n+2<t){let t=r.charCodeAt(n+1),i=r.charCodeAt(n+2);Sf(t)&&Sf(i)&&(e-=2,n+=2)}let n=0,i=t-1,a=e=>e>=2&&r.charCodeAt(e-2)===37&&r.charCodeAt(e-1)===51&&(r.charCodeAt(e)===68||r.charCodeAt(e)===100);i>=0&&(r.charCodeAt(i)===61?(n++,i--):a(i)&&(n++,i-=3)),n===1&&i>=0&&(r.charCodeAt(i)===61||a(i))&&n++;let o=Math.floor(e/4)*3-(n||0);return o>0?o:0}let i=0;for(let e=0,t=r.length;e<t;e++){let n=r.charCodeAt(e);if(n===37&&Cf(r,e,t))i+=1,e+=2;else if(n<128)i+=1;else if(n<2048)i+=2;else if(n>=55296&&n<=56319&&e+1<t){let t=r.charCodeAt(e+1);t>=56320&&t<=57343?(i+=4,e++):i+=3}else i+=3}return i}var Tf=`1.18.1`,Ef=64*1024,{isFunction:Df}=U,Of=e=>encodeURIComponent(e).replace(/%([0-9A-F]{2})/gi,(e,t)=>String.fromCharCode(parseInt(t,16))),kf=e=>{if(!U.isString(e))return e;try{return decodeURIComponent(e)}catch{return e}},Af=(e,...t)=>{try{return!!e(...t)}catch{return!1}},jf=e=>{let t=e.indexOf(`://`),n=e;return t!==-1&&(n=n.slice(t+3)),n.includes(`@`)||n.includes(`:`)},Mf=e=>{let t=U.global!==void 0&&U.global!==null?U.global:globalThis,{ReadableStream:n,TextEncoder:r}=t;e=U.merge.call({skipUndefined:!0},{Request:t.Request,Response:t.Response},e);let{fetch:i,Request:a,Response:o}=e,s=i?Df(i):typeof fetch==`function`,c=Df(a),l=Df(o);if(!s)return!1;let u=s&&Df(n),d=s&&(typeof r==`function`?(e=>t=>e.encode(t))(new r):async e=>new Uint8Array(await new a(e).arrayBuffer())),f=c&&u&&Af(()=>{let e=!1,t=new a(Nd.origin,{body:new n,method:`POST`,get duplex(){return e=!0,`half`}}),r=t.headers.has(`Content-Type`);return t.body!=null&&t.body.cancel(),e&&!r}),p=l&&u&&Af(()=>U.isReadableStream(new o(``).body)),m={stream:p&&(e=>e.body)};s&&[`text`,`arrayBuffer`,`blob`,`formData`,`stream`].forEach(e=>{!m[e]&&(m[e]=(t,n)=>{let r=t&&t[e];if(r)return r.call(t);throw new fd(`Response type '${e}' is not supported`,fd.ERR_NOT_SUPPORT,n)})});let h=async e=>{if(e==null)return 0;if(U.isBlob(e))return e.size;if(U.isSpecCompliantForm(e))return(await new a(Nd.origin,{method:`POST`,body:e}).arrayBuffer()).byteLength;if(U.isArrayBufferView(e)||U.isArrayBuffer(e))return e.byteLength;if(U.isURLSearchParams(e)&&(e+=``),U.isString(e))return(await d(e)).byteLength},g=async(e,t)=>U.toFiniteNumber(e.getContentLength())??h(t);return async e=>{let{url:t,method:n,data:s,signal:l,cancelToken:d,timeout:_,onDownloadProgress:v,onUploadProgress:y,responseType:b,headers:x,withCredentials:S=`same-origin`,fetchOptions:C,maxContentLength:w,maxBodyLength:T}=hf(e),E=U.isNumber(w)&&w>-1,D=U.isNumber(T)&&T>-1,O=t=>U.hasOwnProp(e,t)?e[t]:void 0,k=i||fetch;b=b?(b+``).toLowerCase():`text`;let A=_f([l,d&&d.toAbortSignal()],_),j=null,M=A&&A.unsubscribe&&(()=>{A.unsubscribe()}),N,ee=null,P=()=>new fd(`Request body larger than maxBodyLength limit`,fd.ERR_BAD_REQUEST,e,j);try{let i,l=O(`auth`);if(l&&(i={username:U.getSafeProp(l,`username`)||``,password:U.getSafeProp(l,`password`)||``}),jf(t)){let e=new URL(t,Nd.origin);!i&&(e.username||e.password)&&(i={username:kf(e.username),password:kf(e.password)}),(e.username||e.password)&&(e.username=``,e.password=``,t=e.href)}if(i&&(x.delete(`authorization`),x.set(`Authorization`,`Basic `+btoa(Of((i.username||``)+`:`+(i.password||``))))),E&&typeof t==`string`&&t.startsWith(`data:`)&&wf(t)>w)throw new fd(`maxContentLength size of `+w+` exceeded`,fd.ERR_BAD_RESPONSE,e,j);if(D&&n!==`get`&&n!==`head`){let e=await h(s);if(typeof e==`number`&&isFinite(e)&&(N=e,e>T))throw P()}let d=D&&(U.isReadableStream(s)||U.isStream(s)),_=(e,t,n)=>xf(e,Ef,e=>{if(D&&e>T)throw ee=P();t&&t(e)},n);if(f&&n!==`get`&&n!==`head`&&(y||d)){if(N=N??await g(x,s),N!==0||d){let e=new a(t,{method:`POST`,body:s,duplex:`half`}),n;if(U.isFormData(s)&&(n=e.headers.get(`content-type`))&&x.setContentType(n),e.body){let[t,n]=y&&Zd(N,Xd(Qd(y)))||[];s=_(e.body,t,n)}}}else if(d&&!c&&u&&n!==`get`&&n!==`head`)s=_(s);else if(d&&c&&!f&&n!==`get`&&n!==`head`)throw new fd(`Stream request bodies are not supported by the current fetch implementation`,fd.ERR_NOT_SUPPORT,e,j);U.isString(S)||(S=S?`include`:`omit`);let F=c&&`credentials`in a.prototype;if(U.isFormData(s)){let e=x.getContentType();e&&/^multipart\/form-data/i.test(e)&&!/boundary=/i.test(e)&&x.delete(`content-type`)}x.set(`User-Agent`,`axios/`+Tf,!1);let I={...C,signal:A,method:n.toUpperCase(),headers:$u(x.normalize()),body:s,duplex:`half`,credentials:F?S:void 0};j=c&&new a(t,I);let L=await(c?k(j,C):k(t,I)),R=cd.from(L.headers);if(E){let t=U.toFiniteNumber(R.getContentLength());if(t!=null&&t>w)throw new fd(`maxContentLength size of `+w+` exceeded`,fd.ERR_BAD_RESPONSE,e,j)}let te=p&&(b===`stream`||b===`response`);if(p&&L.body&&(v||E||te&&M)){let t={};[`status`,`statusText`,`headers`].forEach(e=>{t[e]=L[e]});let n=U.toFiniteNumber(R.getContentLength()),[r,i]=v&&Zd(n,Xd(Qd(v),!0))||[],a=0;L=new o(xf(L.body,Ef,t=>{if(E&&(a=t,a>w))throw new fd(`maxContentLength size of `+w+` exceeded`,fd.ERR_BAD_RESPONSE,e,j);r&&r(t)},()=>{i&&i(),M&&M()}),t)}b=b||`text`;let ne=await m[U.findKey(m,b)||`text`](L,e);if(E&&!p&&!te){let t;if(ne!=null&&(typeof ne.byteLength==`number`?t=ne.byteLength:typeof ne.size==`number`?t=ne.size:typeof ne==`string`&&(t=typeof r==`function`?new r().encode(ne).byteLength:ne.length)),typeof t==`number`&&t>w)throw new fd(`maxContentLength size of `+w+` exceeded`,fd.ERR_BAD_RESPONSE,e,j)}return!te&&M&&M(),await new Promise((t,n)=>{Kd(t,n,{data:ne,headers:cd.from(L.headers),status:L.status,statusText:L.statusText,config:e,request:j})})}catch(t){if(M&&M(),A&&A.aborted&&A.reason instanceof fd){let n=A.reason;throw n.config=e,j&&(n.request=j),t!==n&&Object.defineProperty(n,"cause",{__proto__:null,value:t,writable:!0,enumerable:!1,configurable:!0}),n}if(ee)throw j&&!ee.request&&(ee.request=j),ee;if(t instanceof fd)throw j&&!t.request&&(t.request=j),t;if(t&&t.name===`TypeError`&&/Load failed|fetch/i.test(t.message)){let n=new fd(`Network Error`,fd.ERR_NETWORK,e,j,t&&t.response);throw Object.defineProperty(n,"cause",{__proto__:null,value:t.cause||t,writable:!0,enumerable:!1,configurable:!0}),n}throw fd.from(t,t&&t.code,e,j,t&&t.response)}}},Nf=new Map,Pf=e=>{let t=e&&e.env||{},{fetch:n,Request:r,Response:i}=t,a=[r,i,n],o=a.length,s,c,l=Nf;for(;o--;)s=a[o],c=l.get(s),c===void 0&&l.set(s,c=o?new Map:Mf(t)),l=c;return c};Pf();var Ff={http:null,xhr:gf,fetch:{get:Pf}};U.forEach(Ff,(e,t)=>{if(e){try{Object.defineProperty(e,"name",{__proto__:null,value:t})}catch{}Object.defineProperty(e,"adapterName",{__proto__:null,value:t})}});var If=e=>`- ${e}`,Lf=e=>U.isFunction(e)||e===null||e===!1;function Rf(e,t){e=U.isArray(e)?e:[e];let{length:n}=e,r,i,a={};for(let o=0;o<n;o++){r=e[o];let n;if(i=r,!Lf(r)&&(i=Ff[(n=String(r)).toLowerCase()],i===void 0))throw new fd(`Unknown adapter '${n}'`);if(i&&(U.isFunction(i)||(i=i.get(t))))break;a[n||`#`+o]=i}if(!i){let e=Object.entries(a).map(([e,t])=>`adapter ${e} `+(t===!1?`is not supported by the environment`:`is not available in the build`));throw new fd(`There is no suitable adapter to dispatch the request `+(n?e.length>1?`since :
`+e.map(If).join(`
`):` `+If(e[0]):`as no adapter specified`),fd.ERR_NOT_SUPPORT)}return i}var zf={getAdapter:Rf,adapters:Ff};function Bf(e){if(e.cancelToken&&e.cancelToken.throwIfRequested(),e.signal&&e.signal.aborted)throw new Gd(null,e)}function Vf(e){return Bf(e),e.headers=cd.from(e.headers),e.data=Ud.call(e,e.transformRequest),[`post`,`put`,`patch`].indexOf(e.method)!==-1&&e.headers.setContentType(`application/x-www-form-urlencoded`,!1),zf.getAdapter(e.adapter||Hd.adapter,e)(e).then(function(t){Bf(e),e.response=t;try{t.data=Ud.call(e,e.transformResponse,t)}finally{delete e.response}return t.headers=cd.from(t.headers),t},function(t){if(!Wd(t)&&(Bf(e),t&&t.response)){e.response=t.response;try{t.response.data=Ud.call(e,e.transformResponse,t.response)}finally{delete e.response}t.response.headers=cd.from(t.response.headers)}return Promise.reject(t)})}var Hf={};[`object`,`boolean`,`number`,`function`,`string`,`symbol`].forEach((e,t)=>{Hf[e]=function(n){return typeof n===e||`a`+(t<1?`n `:` `)+e}});var Uf={};Hf.transitional=function(e,t,n){function r(e,t){return`[Axios v`+Tf+`] Transitional option '`+e+`'`+t+(n?`. `+n:``)}return(n,i,a)=>{if(e===!1)throw new fd(r(i,` has been removed`+(t?` in `+t:``)),fd.ERR_DEPRECATED);return t&&!Uf[i]&&(Uf[i]=!0,console.warn(r(i,` has been deprecated since v`+t+` and will be removed in the near future`))),!e||e(n,i,a)}},Hf.spelling=function(e){return(t,n)=>(console.warn(`${n} is likely a misspelling of ${e}`),!0)};function Wf(e,t,n){if(typeof e!=`object`||!e)throw new fd(`options must be an object`,fd.ERR_BAD_OPTION_VALUE);let r=Object.keys(e),i=r.length;for(;i-->0;){let a=r[i],o=Object.prototype.hasOwnProperty.call(t,a)?t[a]:void 0;if(o){let t=e[a],n=t===void 0||o(t,a,e);if(n!==!0)throw new fd(`option `+a+` must be `+n,fd.ERR_BAD_OPTION_VALUE);continue}if(n!==!0)throw new fd(`Unknown option `+a,fd.ERR_BAD_OPTION)}}var Gf={assertOptions:Wf,validators:Hf},Kf=Gf.validators,qf=class{constructor(e){this.defaults=e||{},this.interceptors={request:new wd,response:new wd}}async request(e,t){try{return await this._request(e,t)}catch(e){if(e instanceof Error){let t={};Error.captureStackTrace?Error.captureStackTrace(t):t=Error();let n=(()=>{if(!t.stack)return``;let e=t.stack.indexOf(`
`);return e===-1?``:t.stack.slice(e+1)})();try{if(!e.stack)e.stack=n;else if(n){let t=n.indexOf(`
`),r=t===-1?-1:n.indexOf(`
`,t+1),i=r===-1?``:n.slice(r+1);String(e.stack).endsWith(i)||(e.stack+=`
`+n)}}catch{}}throw e}}_request(e,t){typeof e==`string`?(t=t||{},t.url=e):t=e||{},t=df(this.defaults,t);let{transitional:n,paramsSerializer:r,headers:i}=t;n!==void 0&&Gf.assertOptions(n,{silentJSONParsing:Kf.transitional(Kf.boolean),forcedJSONParsing:Kf.transitional(Kf.boolean),clarifyTimeoutError:Kf.transitional(Kf.boolean),legacyInterceptorReqResOrdering:Kf.transitional(Kf.boolean),advertiseZstdAcceptEncoding:Kf.transitional(Kf.boolean),validateStatusUndefinedResolves:Kf.transitional(Kf.boolean)},!1),r!=null&&(U.isFunction(r)?t.paramsSerializer={serialize:r}:Gf.assertOptions(r,{encode:Kf.function,serialize:Kf.function},!0)),t.allowAbsoluteUrls!==void 0||(this.defaults.allowAbsoluteUrls===void 0?t.allowAbsoluteUrls=!0:t.allowAbsoluteUrls=this.defaults.allowAbsoluteUrls),Gf.assertOptions(t,{baseUrl:Kf.spelling(`baseURL`),withXsrfToken:Kf.spelling(`withXSRFToken`)},!0),t.method=(t.method||this.defaults.method||`get`).toLowerCase();let a=i&&U.merge(i.common,i[t.method]);i&&U.forEach([`delete`,`get`,`head`,`post`,`put`,`patch`,`query`,`common`],e=>{delete i[e]}),t.headers=cd.concat(a,i);let o=[],s=!0;this.interceptors.request.forEach(function(e){if(typeof e.runWhen==`function`&&e.runWhen(t)===!1)return;s=s&&e.synchronous;let n=t.transitional||Td;n&&n.legacyInterceptorReqResOrdering?o.unshift(e.fulfilled,e.rejected):o.push(e.fulfilled,e.rejected)});let c=[];this.interceptors.response.forEach(function(e){c.push(e.fulfilled,e.rejected)});let l,u=0,d;if(!s){let e=[Vf.bind(this),void 0];for(e.unshift(...o),e.push(...c),d=e.length,l=Promise.resolve(t);u<d;)l=l.then(e[u++],e[u++]);return l}d=o.length;let f=t;for(;u<d;){let e=o[u++],t=o[u++];try{f=e(f)}catch(e){t.call(this,e);break}}try{l=Vf.call(this,f)}catch(e){return Promise.reject(e)}for(u=0,d=c.length;u<d;)l=l.then(c[u++],c[u++]);return l}getUri(e){return e=df(this.defaults,e),Cd(lf(e.baseURL,e.url,e.allowAbsoluteUrls,e),e.params,e.paramsSerializer)}};U.forEach([`delete`,`get`,`head`,`options`],function(e){qf.prototype[e]=function(t,n){return this.request(df(n||{},{method:e,url:t,data:n&&U.hasOwnProp(n,`data`)?n.data:void 0}))}}),U.forEach([`post`,`put`,`patch`,`query`],function(e){function t(t){return function(n,r,i){return this.request(df(i||{},{method:e,headers:t?{"Content-Type":`multipart/form-data`}:{},url:n,data:r}))}}qf.prototype[e]=t(),e!==`query`&&(qf.prototype[e+`Form`]=t(!0))});var Jf=class e{constructor(e){if(typeof e!=`function`)throw TypeError(`executor must be a function.`);let t;this.promise=new Promise(function(e){t=e});let n=this;this.promise.then(e=>{if(!n._listeners)return;let t=n._listeners.length;for(;t-->0;)n._listeners[t](e);n._listeners=null}),this.promise.then=e=>{let t,r=new Promise(e=>{n.subscribe(e),t=e}).then(e);return r.cancel=function(){n.unsubscribe(t)},r},e(function(e,r,i){n.reason||(n.reason=new Gd(e,r,i),t(n.reason))})}throwIfRequested(){if(this.reason)throw this.reason}subscribe(e){if(this.reason){e(this.reason);return}this._listeners?this._listeners.push(e):this._listeners=[e]}unsubscribe(e){if(!this._listeners)return;let t=this._listeners.indexOf(e);t!==-1&&this._listeners.splice(t,1)}toAbortSignal(){let e=new AbortController,t=t=>{e.abort(t)};return this.subscribe(t),e.signal.unsubscribe=()=>this.unsubscribe(t),e.signal}static source(){let t;return{token:new e(function(e){t=e}),cancel:t}}};function Yf(e){return function(t){return e.apply(null,t)}}function Xf(e){return U.isObject(e)&&e.isAxiosError===!0}var Zf={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511,WebServerIsDown:521,ConnectionTimedOut:522,OriginIsUnreachable:523,TimeoutOccurred:524,SslHandshakeFailed:525,InvalidSslCertificate:526};Object.entries(Zf).forEach(([e,t])=>{Zf[t]=e});function Qf(e){let t=new qf(e),n=kl(qf.prototype.request,t);return U.extend(n,qf.prototype,t,{allOwnKeys:!0}),U.extend(n,t,null,{allOwnKeys:!0}),n.create=function(t){return Qf(df(e,t))},n}var $f=Qf(Hd);$f.Axios=qf,$f.CanceledError=Gd,$f.CancelToken=Jf,$f.isCancel=Wd,$f.VERSION=Tf,$f.toFormData=vd,$f.AxiosError=fd,$f.Cancel=$f.CanceledError,$f.all=function(e){return Promise.all(e)},$f.spread=Yf,$f.isAxiosError=Xf,$f.mergeConfig=df,$f.AxiosHeaders=cd,$f.formToJSON=e=>zd(U.isHTMLForm(e)?new FormData(e):e),$f.getAdapter=zf.getAdapter,$f.HttpStatusCode=Zf,$f.default=$f;var ep=e=>{let t=(e||``).trim();return t?(t=t.replace(/\/+$/i,``),t=t.replace(/\/v8\/management$/i,``),/^https?:\/\//i.test(t)||(t=`http://${t}`),t):``},tp=e=>{let t=ep(e);return t?`${t}${Mc}`:``},np=()=>{try{let{protocol:e,hostname:t,port:n}=window.location;return ep(`${e}//${t}${n?`:${n}`:``}`)}catch(e){return console.warn(`Failed to detect api base from location, fallback to default`,e),ep(`http://localhost:${jc}`)}},rp=e=>typeof e==`string`?e.trim():``,ip=(e,t)=>{if(!Dc(e))return{message:rp(e)||rp(t)||`Request failed`};let n=e.error,r=Dc(n)?n:null,i=rp(n),a=i||rp(r?.code)||void 0;return{message:rp(e.message)||rp(r?.message)||i||rp(t)||`Request failed`,apiCode:a}};function ap(e){"@babel/helpers - typeof";return ap=typeof Symbol==`function`&&typeof Symbol.iterator==`symbol`?function(e){return typeof e}:function(e){return e&&typeof Symbol==`function`&&e.constructor===Symbol&&e!==Symbol.prototype?`symbol`:typeof e},ap(e)}function op(e,t){if(ap(e)!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(ap(r)!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function sp(e){var t=op(e,`string`);return ap(t)==`symbol`?t:t+``}function cp(e,t,n){return(t=sp(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var W=new class{constructor(){cp(this,`instance`,void 0),cp(this,`apiBase`,``),cp(this,`managementKey`,``),cp(this,`connectionRevision`,0),this.instance=$f.create({timeout:Nc,headers:{"Content-Type":`application/json`}}),this.setupInterceptors()}setConfig(e){let t=tp(e.apiBase);(t!==this.apiBase||e.managementKey!==this.managementKey)&&(this.connectionRevision+=1),this.apiBase=t,this.managementKey=e.managementKey,e.timeout?this.instance.defaults.timeout=e.timeout:this.instance.defaults.timeout=Nc}getConnectionRevision(){return this.connectionRevision}readHeader(e,t){if(!e)return null;let n=e=>{if(e==null)return null;if(Array.isArray(e)){let t=e.find(e=>e!=null&&String(e).trim());return t===void 0?null:String(t)}return String(e)||null},r=e.get;if(typeof r==`function`)for(let i of t){let t=n(r.call(e,i));if(t)return t}let i=typeof e.entries==`function`?Array.from(e.entries()):Object.entries(e),a=Object.fromEntries(i.map(([e,t])=>[String(e).toLowerCase(),t]));for(let e of t){let t=n(a[e.toLowerCase()]);if(t)return t}return null}readBooleanHeader(e,t){let n=this.readHeader(e,t);if(n===null)return null;let r=n.trim().toLowerCase();return[`1`,`true`,`yes`,`on`].includes(r)?!0:![`0`,`false`,`no`,`off`].includes(r)&&null}setupInterceptors(){this.instance.interceptors.request.use(e=>(e.baseURL=this.apiBase,this.managementKey&&(e.headers.Authorization=`Bearer ${this.managementKey}`),e),e=>Promise.reject(this.handleError(e))),this.instance.interceptors.response.use(e=>{let t=e.headers,n=this.readHeader(t,Pc),r=this.readHeader(t,Fc),i=n||this.readHeader(t,Lc),a=r||this.readHeader(t,Rc),o=this.readBooleanHeader(t,Ic);return(i||a)&&window.dispatchEvent(new CustomEvent(`server-version-update`,{detail:{version:i||null,buildDate:a||null}})),o!==null&&window.dispatchEvent(new CustomEvent(`server-plugin-support-update`,{detail:{supportsPlugin:o}})),e},e=>Promise.reject(this.handleError(e)))}handleError(e){if($f.isAxiosError(e)){let t=e.response?.data,n=ip(t,e.message),r=Error(n.message);return r.name=`ApiError`,r.status=e.response?.status,r.code=e.code,r.apiCode=n.apiCode,r.details=t,r.data=t,e.response?.status===401&&window.dispatchEvent(new Event(`unauthorized`)),r}let t=e instanceof Error?e.message:typeof e==`string`?e:`Unknown error occurred`,n=Error(t);return n.name=`ApiError`,n}async get(e,t){return(await this.instance.get(e,t)).data}async post(e,t,n){return(await this.instance.post(e,t,n)).data}async put(e,t,n){return(await this.instance.put(e,t,n)).data}async patch(e,t,n){return(await this.instance.patch(e,t,n)).data}async delete(e,t){return(await this.instance.delete(e,t)).data}async getRaw(e,t){return this.instance.get(e,t)}async postForm(e,t,n){return(await this.instance.post(e,t,{...n,headers:{...n?.headers||{},"Content-Type":`multipart/form-data`}})).data}},lp=class extends Error{constructor(){super(`The backend supports v0 management but not v8 management`),this.name=`LegacyBackendError`}};async function up(e,t){let n=ep(e);if(!n||!t)return!1;try{let e=await $f.get(`${n}/v0/management/config`,{headers:{Authorization:`Bearer ${t}`},timeout:3e3,maxRedirects:0});return e.data!==null&&typeof e.data==`object`&&!Array.isArray(e.data)}catch{return!1}}function dp(e){return e?Array.isArray(e)?e.reduce((e,t)=>{let n=t?.key?.trim(),r=t?.value?.trim();return n&&r!=null&&r!==``&&(e[n]=r),e},{}):Object.entries(e).reduce((e,[t,n])=>{let r=t?.trim(),i=typeof n==`string`?n.trim():n;return r&&i!=null&&i!==``&&(e[r]=String(i)),e},{}):{}}function fp(e,t){if(!e)return!1;let n=t.toLowerCase();return Object.keys(e).some(e=>e.toLowerCase()===n)}var pp=1e6,mp=e=>{let t=typeof e==`number`?e:typeof e==`string`&&/^[+-]?\d+$/.test(e.trim())?Number(e.trim()):void 0;if(!(t===void 0||!Number.isSafeInteger(t)||t>1e6))return t},hp=e=>{let t=e.trim();if(!t)return null;if(!/^[+-]?\d+$/.test(t))return`integer`;let n=Number(t);return Number.isSafeInteger(n)?n>1e6?`max`:null:`integer`},gp=e=>{if(hp(e))return;let t=e.trim();return t?Number(t):void 0},_p=[[`forceMapping`,`force-mapping`],[`isCompat`,`is-compat`],[`supportConfigurationUpdate`,`support-configuration-update`],[`useMaxCompletionTokens`,`use-max-completion-tokens`]];function vp(e){let t={};typeof e[`display-name`]==`string`&&(t.displayName=e[`display-name`]);let n=e[`max-context-length`];typeof n==`number`&&Number.isSafeInteger(n)&&(t.maxContextLength=n);for(let[n,r]of _p){let i=e[r];typeof i==`boolean`&&(t[n]=i)}for(let[n,r]of[[`inputModalities`,`input-modalities`],[`outputModalities`,`output-modalities`]]){let i=e[r];Array.isArray(i)&&(t[n]=i.filter(e=>typeof e==`string`))}return t}function yp(e){if(!Dc(e))return;let t={...e};for(let[e,n]of[[`zero_allowed`,`zero-allowed`],[`dynamic_allowed`,`dynamic-allowed`]])n in t&&(t[e]=t[n],delete t[n]);return t}function bp(e){let t={...e};for(let[e,n]of[[`zero_allowed`,`zero-allowed`],[`dynamic_allowed`,`dynamic-allowed`]])e in t&&(t[n]=t[e],delete t[e]);return t}function xp(e,t=!1,n=!1){let r={};e.displayName!==void 0&&(r[`display-name`]=e.displayName),!n&&e.maxContextLength!==void 0&&(r[`max-context-length`]=e.maxContextLength);for(let[i,a]of _p)n&&i!==`forceMapping`||!t&&i===`useMaxCompletionTokens`||e[i]!==void 0&&(r[a]=e[i]);return t&&(e.inputModalities!==void 0&&(r[`input-modalities`]=e.inputModalities),e.outputModalities!==void 0&&(r[`output-modalities`]=e.outputModalities)),e.thinking!==void 0&&(r.thinking=bp(e.thinking)),r}var Sp=e=>typeof e==`boolean`?e:void 0,Cp=e=>Array.isArray(e)?e.map((e,t)=>{if(e==null)return null;if(typeof e==`string`){let n=e.trim();return n?{name:n,sourceIndex:t}:null}if(!Dc(e))return null;let n=e.name;if(!n)return null;let r=e.alias,i=e.priority,a=e[`test-model`],o=Sp(e.image),s=yp(e.thinking),c={name:String(n),sourceIndex:t,...vp(e)};if(r&&(c.alias=String(r)),i!==void 0){let e=Number(i);Number.isFinite(e)&&(c.priority=e)}return a&&(c.testModel=String(a)),o!==void 0&&(c.image=o),s&&(c.thinking=s),c}).filter(Boolean):[],wp=e=>{if(!e||typeof e!=`object`)return;let t=dp(e);return Object.keys(t).length?t:void 0},Tp=e=>{let t=Array.isArray(e)?e:typeof e==`string`?e.split(/[\n,]/):[],n=new Set,r=[];return t.forEach(e=>{let t=String(e??``).trim();if(!t)return;let i=t.toLowerCase();n.has(i)||(n.add(i),r.push(t))}),r},Ep=e=>e==null?void 0:String(e).trim()||void 0,Dp=e=>e==null?void 0:String(e).trim()||void 0,Op=e=>{if(e==null)return null;let t=Dc(e)?e:null,n=t?.[`api-key`]??(typeof e==`string`?e:``),r=String(n||``).trim();if(!r)return null;let i=t?.[`proxy-url`],a=mp(t?.weight),o=Dp(t?.[`auth-index`]),s={apiKey:r,proxyUrl:i?String(i):void 0};return a!==void 0&&(s.weight=a),o&&(s.authIndex=o),s},kp=e=>{let t={},n=e?.[`request-retry`];typeof n==`number`&&Number.isSafeInteger(n)&&(t.requestRetry=n);let r=e?.[`request-scoped-errors`];return Array.isArray(r)&&(t.requestScopedErrors=r.filter(Dc).map(e=>({...typeof e.status==`number`?{status:e.status}:{},...Array.isArray(e.match)?{match:e.match.filter(e=>typeof e==`string`)}:{},...Array.isArray(e[`match-regexr`])?{matchRegex:e[`match-regexr`].filter(e=>typeof e==`string`)}:{},...typeof e.action==`string`?{action:e.action}:{}}))),t},Ap=e=>{if(e==null)return null;let t=Dc(e)?e:null,n=t?.[`api-key`]??(typeof e==`string`?e:``),r=String(n||``).trim();if(!r)return null;let i={apiKey:r,...kp(t)};for(let[e,n]of[[`alphaSearch`,`alpha-search`],[`disableCodexCloaking`,`disable-codex-cloaking`],[`rebuildMidSystemMessage`,`rebuild-mid-system-message`]]){let r=Sp(t?.[n]);r!==void 0&&(i[e]=r)}let a=mp(t?.weight);a!==void 0&&(i.weight=a);let o=t?.priority;if(o!=null&&String(o).trim()!==``){let e=Number(o);Number.isFinite(e)&&(i.priority=e)}let s=Ep(t?.prefix);s&&(i.prefix=s);let c=t?.[`base-url`],l=t?.[`proxy-url`];c&&(i.baseUrl=String(c));let u=Sp(t?.websockets);u!==void 0&&(i.websockets=u),l&&(i.proxyUrl=String(l));let d=Sp(t?.[`disable-cooling`]);d!==void 0&&(i.disableCooling=d);let f=wp(t?.headers);f&&(i.headers=f);let p=Cp(t?.models);p.length&&(i.models=p);let m=Tp(t?.[`excluded-models`]);m.length&&(i.excludedModels=m);let h=Dp(t?.[`auth-index`]);h&&(i.authIndex=h);let g=t?.cloak;if(Dc(g)){let e={},t=g.mode;typeof t==`string`&&t.trim()&&(e.mode=t.trim());let n=Sp(g[`strict-mode`]);n!==void 0&&(e.strictMode=n);let r=Tp(g[`sensitive-words`]);r.length&&(e.sensitiveWords=r);let a=Sp(g[`cache-user-id`]);a!==void 0&&(e.cacheUserId=a),Object.keys(e).length&&(i.cloak=e)}let _=t?.[`fingerprint-profile`];return typeof _==`string`&&_.trim()&&(i.fingerprintProfile=_.trim()),i},jp=(e,t)=>{if(!Dc(e))return null;let n=e.name,r=e[`base-url`];if(!n||!r)return null;let i=Array.isArray(e.keys)?e.keys.map((e,t)=>{let n=Op(e);return n?{...n,sourceIndex:t}:null}).filter(Boolean):[],a=wp(e.headers),o=Cp(e.models),s=e.priority,c=e[`test-model`],l={name:String(n),baseUrl:String(r),apiKeyEntries:i,...kp(e)},u=Sp(e[`support-prompt-cache-key`]);u!==void 0&&(l.supportPromptCacheKey=u);let d=Sp(e.disabled);d!==void 0&&(l.disabled=d);let f=Sp(e[`disable-cooling`]);f!==void 0&&(l.disableCooling=f);let p=Ep(e.prefix);p&&(l.prefix=p),a&&(l.headers=a),o.length&&(l.models=o),s!==void 0&&(l.priority=Number(s)),c&&(l.testModel=String(c));let m=Dp(e[`auth-index`]);return m&&(l.authIndex=m),t!==void 0&&(l.sourceIndex=t),l},Mp=e=>{if(!Dc(e))return;let t=e;if(!Dc(t))return;let n={};return Object.entries(t).forEach(([e,t])=>{let r=String(e||``).trim();if(!r)return;let i=Tp(t);n[r.toLowerCase()]=i}),n},Np=(e,t=!1)=>Array.isArray(e)?e.flatMap((n,r)=>{if(!Dc(n)||!Array.isArray(n.keys))return[];if(t){let t=jp(n,r);return t?[{...t,source:{groupIndex:r,group:n,groups:e}}]:[]}return n.keys.flatMap((t,i)=>{if(!Dc(t))return[];let a={...n};delete a.keys,delete a.name,Object.entries(t).forEach(([e,t])=>{t!==null&&(a[e]=t)});let o=Ap(a);return o?[{...o,source:{groupIndex:r,keyIndex:i,group:n,groups:e}}]:[]})}):[],Pp=e=>{let t={raw:Dc(e)?e:{}};if(!Dc(e))return t;let n=t=>t.split(`.`).reduce((e,t)=>Dc(e)?e[t]:void 0,e);t.debug=Sp(n(`observability.logs.debug`)),t.requestLog=Sp(n(`observability.logs.request-log`)),t.loggingToFile=Sp(n(`observability.logs.logging-to-file`));let r=n(`observability.logs.logs-max-total-size-mb`);typeof r==`number`&&(t.logsMaxTotalSizeMb=r);let i=n(`requests.proxy-url`);typeof i==`string`&&(t.proxyUrl=i);let a=n(`routing.retry.request-retry`);typeof a==`number`&&(t.requestRetry=a),t.wsAuth=Sp(n(`oauth.providers.aistudio.ws-auth`))??!0,t.forceModelPrefix=Sp(n(`routing.force-model-prefix`));let o=n(`routing.strategy`);typeof o==`string`&&(t.routingStrategy=o);let s=n(`access.api-keys`);t.apiKeys=Array.isArray(s)?s.filter(e=>typeof e==`string`):[];let c=n(`quota-exceeded`);return t.quotaExceeded={switchProject:Dc(c)?Sp(c[`switch-project`]):!1,switchPreviewModel:Dc(c)?Sp(c[`switch-preview-model`]):!1,antigravityCredits:Sp(n(`oauth.providers.antigravity.antigravity-credits`))??!1},t.providerGroups=Dc(e[`api-keys`])?e[`api-keys`]:{},t.geminiApiKeys=Np(n(`api-keys.gemini`)),t.interactionsApiKeys=Np(n(`api-keys.interactions`)),t.codexApiKeys=Np(n(`api-keys.codex`)),t.metaApiKeys=Np(n(`api-keys.meta`)),t.xaiApiKeys=Np(n(`api-keys.xai`)),t.claudeApiKeys=Np(n(`api-keys.claude`)),t.vertexApiKeys=Np(n(`api-keys.vertex`)),t.openaiCompatibility=Np(n(`api-keys.openai-compatibility`),!0),t.oauthExcludedModels=Mp(n(`oauth.excluded-models`)),t},Fp={async getConfig(){return Pp(await W.get(`/config`))},updateRequestLog:e=>W.put(`/config/observability/logs/request-log`,e)},Ip=0,Lp=null,Rp=null,zp=()=>Rp!==null&&Date.now()-Rp.timestamp<3e4,Bp=Tc((e,t)=>({config:null,fetchConfig:async(t=!1)=>{if(!t&&Rp&&zp())return Rp.data;if(Lp)return Lp.promise;let n=Ip+=1;try{let t=Fp.getConfig();Lp={id:n,promise:t};let r=await t;return n===Ip?(Rp={data:r,timestamp:Date.now()},e({config:r}),r):r}finally{Lp?.id===n&&(Lp=null)}},updateConfigValue:(n,r)=>{e(e=>{let t={...e.config||{}};switch(n){case`debug`:t.debug=r;break;case`proxy-url`:t.proxyUrl=r;break;case`request-retry`:t.requestRetry=r;break;case`quota-exceeded`:t.quotaExceeded=r;break;case`request-log`:t.requestLog=r;break;case`logging-to-file`:t.loggingToFile=r;break;case`logs-max-total-size-mb`:t.logsMaxTotalSizeMb=r;break;case`ws-auth`:t.wsAuth=r;break;case`force-model-prefix`:t.forceModelPrefix=r;break;case`routing/strategy`:t.routingStrategy=r;break;case`api-keys`:t.apiKeys=r;break;case`gemini-api-key`:t.geminiApiKeys=r;break;case`interactions-api-key`:t.interactionsApiKeys=r;break;case`codex-api-key`:t.codexApiKeys=r;break;case`meta-api-key`:t.metaApiKeys=r;break;case`xai-api-key`:t.xaiApiKeys=r;break;case`claude-api-key`:t.claudeApiKeys=r;break;case`vertex-api-key`:t.vertexApiKeys=r;break;case`openai-compatibility`:t.openaiCompatibility=r;break;case`oauth-excluded-models`:t.oauthExcludedModels=r;break;default:break}return{config:t}}),t().clearCache(n)},clearCache:t=>{Rp=null,Ip+=1,Lp=null,t||e({config:null})},isCacheValid:()=>zp()})),Vp=[{id:`devin`,label:`Devin`,patterns:[]},{id:`meta`,label:`Muse`,patterns:[/\bmuse(?:[-/\s]|$)/i]},{id:`gpt`,label:`GPT`,patterns:[/gpt/i,/\bo\d\b/i,/\bo\d+\.?/i,/\bchatgpt/i]},{id:`claude`,label:`Claude`,patterns:[/claude/i]},{id:`gemini`,label:`Gemini`,patterns:[/gemini/i,/\bgai\b/i]},{id:`kimi`,label:`Kimi`,patterns:[/kimi/i]},{id:`qwen`,label:`Qwen`,patterns:[/qwen/i]},{id:`glm`,label:`GLM`,patterns:[/glm/i,/chatglm/i]},{id:`grok`,label:`Grok`,patterns:[/grok/i]},{id:`deepseek`,label:`DeepSeek`,patterns:[/deepseek/i]},{id:`minimax`,label:`MiniMax`,patterns:[/minimax/i,/abab/i]}],Hp=e=>{for(let t of Vp)if(t.patterns.some(t=>t.test(e)))return t.id;return null};function Up(e,{dedupe:t=!1}={}){let n=e=>{if(typeof e==`string`)return{name:e};if(!Dc(e))return null;let t=e.id||e.name||e.model||e.value;if(!t)return null;let n=e.alias||e.display_name||e.displayName,r=e.description||e.note||e.comment,i={name:String(t)};return n&&n!==t&&(i.alias=String(n)),r&&(i.description=String(r)),i},r=[];Array.isArray(e)?r=e.map(n):Dc(e)&&(Array.isArray(e.data)?r=e.data.map(n):Array.isArray(e.models)&&(r=e.models.map(n)));let i=r.filter(Boolean);if(!t)return i;let a=new Set;return i.filter(e=>{let t=(e?.name||``).toLowerCase();return!t||a.has(t)?!1:(a.add(t),!0)})}function Wp(e=[],{otherLabel:t=`Other`}={}){let n=Vp.map(e=>({id:e.id,label:e.label,items:[]})),r={id:`other`,label:t,items:[]};e.forEach(e=>{let t=(e?.name||``).toString(),i=`${t} ${(e?.alias||``).toString()}`.toLowerCase(),a=/^devin\//i.test(t)?`devin`:Hp(i),o=a?n.find(e=>e.id===a):null;o?o.items.push(e):r.items.push(e)});let i=n.filter(e=>e.items.length>0);return r.items.length&&i.push(r),i}var Gp=e=>{if(e==null)return{bodyText:``,body:null};if(typeof e==`string`){let t=e,n=t.trim();if(!n)return{bodyText:t,body:null};try{return{bodyText:t,body:JSON.parse(n)}}catch{return{bodyText:t,body:t}}}try{return{bodyText:JSON.stringify(e),body:e}}catch{return{bodyText:String(e),body:e}}},Kp=e=>{let t=e.statusCode,n=e.body,r=e.bodyText,i=``;if(Dc(n)){let e=n.error;Dc(e)&&typeof e.message==`string`?i=e.message:typeof e==`string`&&(i=e),!i&&typeof n.message==`string`&&(i=n.message)}else typeof n==`string`&&(i=n);return!i&&r&&(i=r),t&&i?`${t} ${i}`.trim():t?`HTTP ${t}`:i||`Request failed`},qp={request:async(e,t)=>{let n=await W.post(`/requests/api-call`,e,t),r=Number(n?.status_code??0),i=n?.header??{},{bodyText:a,body:o}=Gp(n?.body);return{statusCode:r,header:i,bodyText:a,body:o}}},Jp=`https://api.anthropic.com`,Yp=`https://generativelanguage.googleapis.com`,Xp=`2023-06-01`,Zp=new Map,Qp=new Map,$p=(e,t,n,r)=>{let i=Object.entries(t).sort(([e],[t])=>e.toLowerCase().localeCompare(t.toLowerCase())).map(([e,t])=>`${e}:${t}`).join(`|`);return JSON.stringify([e,i,n??``,r??``])},em=e=>{let t=ep(e);if(!t)return``;let n=t.replace(/\/+$/g,``);return/\/models$/i.test(n)?n:`${n}/models`},tm=e=>{let t=ep(e);if(!t)return``;let n=t.replace(/\/+$/g,``);return/\/v1\/models$/i.test(n)?n:/\/v1$/i.test(n)?`${n}/models`:`${n}/v1/models`},nm=e=>{let t=(ep(e)||Jp).replace(/\/+$/g,``);return t=t.replace(/\/v1\/models$/i,``),t=t.replace(/\/v1(?:\/.*)?$/i,``),`${t}/v1/models`},rm=e=>{let t=(ep(e)||Yp).replace(/\/+$/g,``);return t=t.replace(/\/v1beta\/models$/i,``),t=t.replace(/\/v1beta(?:\/.*)?$/i,``),`${t}/v1beta/models`},im=e=>{let t=String(e??``).trim();return t?t.replace(/^\/?models\//i,``):``},am=(e,t)=>{let n=t.toLowerCase();return Object.keys(e).some(e=>e.toLowerCase()===n)},om=e=>{let t=Object.entries(e).find(([e])=>e.toLowerCase()===`authorization`);if(!t)return``;let n=String(t[1]??``).trim();return n&&n.match(/^Bearer\s+(.+)$/i)?.[1]?.trim()||``},sm={async fetchModels(e,t,n={}){let r=tm(e);if(!r)throw Error(`Invalid base url`);let i={...n};t&&!am(i,`authorization`)&&(i.Authorization=`Bearer ${t}`);let a=await $f.get(r,{headers:Object.keys(i).length?i:void 0});return Up(a.data?.data??a.data?.models??a.data,{dedupe:!0})},async fetchV1ModelsViaApiCall(e,t,n={},r,i){let a=tm(e);if(!a)throw Error(`Invalid base url`);let o=r?.trim()||void 0,s={...n};t&&!am(s,`authorization`)?s.Authorization=`Bearer ${t}`:o&&!am(s,`authorization`)&&(s.Authorization=`Bearer $TOKEN$`);let c=await qp.request({authIndex:o,proxy_url:i?.trim()||void 0,method:`GET`,url:a,header:Object.keys(s).length?s:void 0});if(c.statusCode<200||c.statusCode>=300)throw Error(Kp(c));return Up(c.body??c.bodyText,{dedupe:!0})},async fetchModelsViaApiCall(e,t,n={},r,i){let a=em(e);if(!a)throw Error(`Invalid base url`);let o=r?.trim()||void 0,s={...n};t&&!am(s,`authorization`)?s.Authorization=`Bearer ${t}`:o&&!am(s,`authorization`)&&(s.Authorization=`Bearer $TOKEN$`);let c=await qp.request({authIndex:o,proxy_url:i?.trim()||void 0,method:`GET`,url:a,header:Object.keys(s).length?s:void 0});if(c.statusCode<200||c.statusCode>=300)throw Error(Kp(c));return Up(c.body??c.bodyText,{dedupe:!0})},async fetchClaudeModelsViaApiCall(e,t,n={},r,i){let a=nm(e);if(!a)throw Error(`Invalid base url`);let o=r?.trim()||void 0,s={...n},c=String(t??``).trim();!c&&!am(s,`x-api-key`)&&(c=om(s)),c&&!am(s,`x-api-key`)?s[`x-api-key`]=c:o&&!am(s,`x-api-key`)&&(s[`x-api-key`]=`$TOKEN$`),am(s,`anthropic-version`)||(s[`anthropic-version`]=Xp);let l=$p(a,s,o,i?.trim()||void 0),u=Zp.get(l);if(u)return u;let d=(async()=>{let e=await qp.request({authIndex:o,proxy_url:i?.trim()||void 0,method:`GET`,url:a,header:Object.keys(s).length?s:void 0});if(e.statusCode<200||e.statusCode>=300)throw Error(Kp(e));return Up(e.body??e.bodyText,{dedupe:!0})})();Zp.set(l,d);try{return await d}finally{Zp.delete(l)}},async fetchGeminiModelsViaApiCall(e,t,n={},r,i){let a=rm(e);if(!a)throw Error(`Invalid base url`);let o=r?.trim()||void 0,s={...n},c=String(t??``).trim();c&&!am(s,`x-goog-api-key`)?s[`x-goog-api-key`]=c:o&&!am(s,`x-goog-api-key`)&&(s[`x-goog-api-key`]=`$TOKEN$`);let l=$p(a,s,o,i?.trim()||void 0),u=Qp.get(l);if(u)return u;let d=(async()=>{let e=new Set,t=[],n=``;for(let r=0;r<20;r+=1){let r=new URL(a);n&&r.searchParams.set(`pageToken`,n);let c=await qp.request({authIndex:o,proxy_url:i?.trim()||void 0,method:`GET`,url:r.toString(),header:Object.keys(s).length?s:void 0});if(c.statusCode<200||c.statusCode>=300)throw Error(Kp(c));let l=c.body??c.bodyText;Up(l,{dedupe:!1}).forEach(n=>{let r=im(n.name),i=(r||``).toLowerCase();if(!i||e.has(i))return;e.add(i);let a={...n,name:r};a.alias&&a.alias.trim()===r&&(a.alias=void 0),t.push(a)});let u=Dc(l)&&typeof l.nextPageToken==`string`?l.nextPageToken:``;if(!u)break;n=u}return t})();Qp.set(l,d);try{return await d}finally{Qp.delete(l)}}},cm=0,lm=Tc((e,t)=>({models:[],loading:!1,error:null,cache:null,fetchModels:async(n,r,i=!1)=>{let a=cm+=1,{cache:o,isCacheValid:s}=t(),c=r?.trim()||``;if(!i&&s(n,c)&&o)return e({models:o.data,loading:!1,error:null}),o.data;e({loading:!0,error:null});try{let t=await sm.fetchModels(n,c||void 0);return a===cm&&e({models:t,loading:!1,cache:{data:t,timestamp:Date.now(),apiBase:n,apiKey:c}}),t}catch(t){throw a===cm&&e({error:t instanceof Error?t.message:typeof t==`string`?t:`Failed to fetch models`,loading:!1,models:[]}),t}},clearCache:()=>{cm+=1,e({cache:null,models:[],loading:!1,error:null})},isCacheValid:(e,n)=>{let{cache:r}=t();if(!r||r.apiBase!==e)return!1;let i=n?.trim()||``;return(r.apiKey||``)===i&&Date.now()-r.timestamp<Ac}})),um=20,dm=600*1e3,fm=e=>{let t=typeof e==`number`?e:Number(e);return Number.isFinite(t)?t:0};function pm(e){if(typeof e==`number`)return Number.isFinite(e)?e:0;if(typeof e==`string`){let t=e.trim();if(!t)return 0;let n=Number(t);return Number.isFinite(n)?n:0}return 0}function mm(e,t){return`${String(e??``).trim()}|${String(t??``).trim()}`}function hm(e){return typeof e==`number`&&Number.isFinite(e)?e.toString():typeof e==`string`&&e.trim()||null}function gm(e){return Array.isArray(e)?e.slice(-20).map(e=>{let t=e&&typeof e==`object`?e:{},n=typeof t.time==`string`?t.time:void 0;return{...n?{time:n}:{},success:fm(t.success),failed:fm(t.failed)}}):[]}function _m(e){if(!e||typeof e!=`object`||Array.isArray(e))return{success:0,failed:0,recentRequests:[]};let t=e;return{success:pm(t.success),failed:pm(t.failed),recentRequests:gm(t.recent_requests??t.recentRequests)}}function vm(e){let t=e.map(e=>gm(e)).filter(e=>e.length>0);if(t.length===0)return[];let n=Math.min(um,Math.max(...t.map(e=>e.length))),r=Array.from({length:n},()=>({success:0,failed:0}));return t.forEach(e=>{let t=e.slice(-n),i=n-t.length;t.forEach((e,t)=>{let n=r[i+t];n.success+=e.success,n.failed+=e.failed,!n.time&&e.time&&(n.time=e.time)})}),r}function ym(e){return gm(e).reduce((e,t)=>({success:e.success+t.success,failure:e.failure+t.failed}),{success:0,failure:0})}function bm(e){let t=gm(e),n=Math.max(0,um-t.length),r=[...Array.from({length:n},()=>({success:0,failed:0})),...t.slice(-20)],i=Date.now()-um*dm,a=[],o=[],s=0,c=0;r.forEach((e,t)=>{let n=e.success,r=e.failed,l=n+r;s+=n,c+=r,l===0?a.push(`idle`):r===0?a.push(`success`):n===0?a.push(`failure`):a.push(`mixed`);let u=i+t*dm;o.push({success:n,failure:r,rate:l>0?n/l:-1,startTime:u,endTime:u+dm})});let l=s+c;return{blocks:a,blockDetails:o,successRate:l>0?s/l*100:100,totalSuccess:s,totalFailure:c}}function xm(e){let t=e.provider??e.type??``,n=String(t).trim().toLowerCase().replace(/_/g,`-`);return n===`x-ai`||n===`grok`?`xai`:n===`kimi-ai`?`kimi`:n}function eee(e){return xm(e)===`antigravity`}function tee(e){return xm(e)===`claude`}function Sm(e){return xm(e)===`codex`}function Cm(e){return xm(e)===`devin`}function wm(e){return xm(e)===`kimi`}function Tm(e){return xm(e)===`xai`}function Em(e){let t=e.disabled;return typeof t==`boolean`?t:typeof t==`number`?t!==0:typeof t==`string`&&t.trim().toLowerCase()===`true`}var Dm=`\0`;function Om(e){if(!Cm(e))return e.name;let t=hm(e.authIndex);return`${e.name}${Dm}${t??``}`}function km(e){if(!Cm(e))return e.name;let t=e.email?.trim()||hm(e.authIndex);return t?`${e.name} · ${t}`:e.name}function Am(e){let t=e.indexOf(Dm);return t===-1?e:e.slice(0,t)}var jm=(e,t)=>typeof e==`function`?e(t):e,Mm=Tc(e=>({cacheGeneration:0,fileGenerations:{},antigravityQuota:{},claudeQuota:{},codexQuota:{},devinQuota:{},kimiQuota:{},metaQuota:{},xaiQuota:{},setAntigravityQuota:t=>e(e=>({antigravityQuota:jm(t,e.antigravityQuota)})),setClaudeQuota:t=>e(e=>({claudeQuota:jm(t,e.claudeQuota)})),setCodexQuota:t=>e(e=>({codexQuota:jm(t,e.codexQuota)})),setDevinQuota:t=>e(e=>({devinQuota:jm(t,e.devinQuota)})),setKimiQuota:t=>e(e=>({kimiQuota:jm(t,e.kimiQuota)})),setMetaQuota:t=>e(e=>({metaQuota:jm(t,e.metaQuota)})),setXaiQuota:t=>e(e=>({xaiQuota:jm(t,e.xaiQuota)})),clearQuotaCache:t=>e(e=>{if(t){if(t.length===0)return e;let n={...e.fileGenerations};t.forEach(e=>{n[e]=(n[e]??0)+1});let r=new Set(t),i=e=>{let t=Object.keys(e).filter(e=>r.has(Am(e)));if(t.length===0)return e;let n={...e};return t.forEach(e=>delete n[e]),n};return{fileGenerations:n,antigravityQuota:i(e.antigravityQuota),claudeQuota:i(e.claudeQuota),codexQuota:i(e.codexQuota),devinQuota:i(e.devinQuota),kimiQuota:i(e.kimiQuota),metaQuota:i(e.metaQuota),xaiQuota:i(e.xaiQuota)}}return{cacheGeneration:e.cacheGeneration+1,fileGenerations:{},antigravityQuota:{},claudeQuota:{},codexQuota:{},devinQuota:{},kimiQuota:{},metaQuota:{},xaiQuota:{}}})})),Nm=e=>{let{cacheGeneration:t,fileGenerations:n}=Mm.getState();return{cacheGeneration:t,fileGenerations:n,name:e}},Pm=(e,t,n=e.name)=>{let r=Mm.getState();if(r.cacheGeneration!==e.cacheGeneration)return!1;if(n!==void 0){if((r.fileGenerations[n]??0)!==(e.fileGenerations[n]??0))return!1}else if(r.fileGenerations!==e.fileGenerations)return!1;return t(),!0},Fm=null,Im=Tc()(Zc((e,t)=>({isAuthenticated:!1,apiBase:``,managementKey:``,rememberPassword:!1,serverVersion:null,serverBuildDate:null,supportsPlugin:!1,connectionStatus:`disconnected`,restoreSession:()=>Fm||(Fm=(async()=>{Ol.migratePlaintextKeys([`apiBase`,`apiUrl`,`managementKey`]);let n=localStorage.getItem(`isLoggedIn`)===`true`,r=Ol.getItem(`apiBase`)||Ol.getItem(`apiUrl`,{encrypt:!0}),i=Ol.getItem(`managementKey`),{apiBase:a,managementKey:o,rememberPassword:s}=t(),c=ep(a||r||np()),l=o||i||``,u=s||!!o||!!i;if(e({apiBase:c,managementKey:l,rememberPassword:u}),W.setConfig({apiBase:c,managementKey:l}),n&&c&&l)try{return await t().login({apiBase:c,managementKey:l,rememberPassword:u}),!0}catch(e){return console.warn(`Auto login failed:`,e),!1}return!1})(),Fm),login:async n=>{let r=ep(n.apiBase),i=n.managementKey.trim(),a=n.rememberPassword??t().rememberPassword??!1;try{e({connectionStatus:`connecting`,serverVersion:null,serverBuildDate:null,supportsPlugin:!1}),Bp.getState().clearCache(),lm.getState().clearCache(),Mm.getState().clearQuotaCache(),W.setConfig({apiBase:r,managementKey:i});let t=W.getConnectionRevision();try{await Bp.getState().fetchConfig(!0)}catch(e){throw e?.status===404&&t===W.getConnectionRevision()&&await up(r,i)&&t===W.getConnectionRevision()?new lp:e}e({isAuthenticated:!0,apiBase:r,managementKey:i,rememberPassword:a,connectionStatus:`connected`}),a?localStorage.setItem(`isLoggedIn`,`true`):localStorage.removeItem(`isLoggedIn`)}catch(t){throw e({connectionStatus:`error`}),t}},logout:()=>{Fm=null,W.setConfig({apiBase:``,managementKey:``}),Bp.getState().clearCache(),lm.getState().clearCache(),Mm.getState().clearQuotaCache(),e({isAuthenticated:!1,apiBase:``,managementKey:``,serverVersion:null,serverBuildDate:null,supportsPlugin:!1,connectionStatus:`disconnected`}),localStorage.removeItem(`isLoggedIn`)},checkAuth:async()=>{let{managementKey:n,apiBase:r}=t();if(!n||!r)return!1;try{return W.setConfig({apiBase:r,managementKey:n}),e({supportsPlugin:!1}),await Bp.getState().fetchConfig(),e({isAuthenticated:!0,connectionStatus:`connected`}),!0}catch{return e({isAuthenticated:!1,connectionStatus:`error`,supportsPlugin:!1}),!1}},updateServerVersion:(t,n)=>{e({serverVersion:t||null,serverBuildDate:n||null})},updateServerPluginSupport:t=>{e({supportsPlugin:t})}}),{name:Vc,storage:Yc(()=>({getItem:e=>{let t=Ol.getItem(e);return t?JSON.stringify(t):null},setItem:(e,t)=>{Ol.setItem(e,JSON.parse(t))},removeItem:e=>{Ol.removeItem(e)}})),partialize:e=>({apiBase:e.apiBase,...e.rememberPassword?{managementKey:e.managementKey}:{},rememberPassword:e.rememberPassword,serverVersion:e.serverVersion,serverBuildDate:e.serverBuildDate})}));typeof window<`u`&&(window.addEventListener(`unauthorized`,()=>{Im.getState().logout()}),window.addEventListener(`server-version-update`,(e=>{let t=e.detail||{};Im.getState().updateServerVersion(t.version||null,t.buildDate||null)})),window.addEventListener(`server-plugin-support-update`,(e=>{Im.getState().updateServerPluginSupport(e.detail?.supportsPlugin===!0)})));var Lm={container:`LoginPage-module__container___bHtIX`,brandPanel:`LoginPage-module__brandPanel___kKUR5`,brandContent:`LoginPage-module__brandContent___ZEhbk`,brandWord:`LoginPage-module__brandWord___3DkwD`,brandFadeIn:`LoginPage-module__brandFadeIn___tpmGl`,formPanel:`LoginPage-module__formPanel___Nrtrt`,formContent:`LoginPage-module__formContent___H8fD-`,logo:`LoginPage-module__logo___ASmao`,loginCard:`LoginPage-module__loginCard___OgP-R`,loginHeader:`LoginPage-module__loginHeader___3kAvs`,titleRow:`LoginPage-module__titleRow___9h914`,title:`LoginPage-module__title___I-LuY`,subtitle:`LoginPage-module__subtitle___Q41SH`,languageSelect:`LoginPage-module__languageSelect___KUNwV`,connectionBox:`LoginPage-module__connectionBox___B5--X`,label:`LoginPage-module__label___2fkY-`,value:`LoginPage-module__value___JFrYC`,hint:`LoginPage-module__hint___bcz4d`,toggleAdvanced:`LoginPage-module__toggleAdvanced___4aKnv`,toggleLabel:`LoginPage-module__toggleLabel___C3t9M`,errorBox:`LoginPage-module__errorBox___wX1tT`,splashContent:`LoginPage-module__splashContent___Cc3DZ`,splashEnter:`LoginPage-module__splashEnter___K-Jk9`,splashLogo:`LoginPage-module__splashLogo___yzbbw`,splashLogoPulse:`LoginPage-module__splashLogoPulse___DIteW`,splashTitle:`LoginPage-module__splashTitle___G-HEP`,splashSubtitle:`LoginPage-module__splashSubtitle___BYSQi`,splashLoader:`LoginPage-module__splashLoader___SdvUl`,splashLoaderBar:`LoginPage-module__splashLoaderBar___lyVXw`,splashLoading:`LoginPage-module__splashLoading___jAaFC`};function Rm(e,t){if(e instanceof lp)return t(`login.error_legacy_backend`);let n=e,r=typeof n.status==`number`?n.status:void 0,i=typeof n.code==`string`?n.code:void 0,a=e instanceof Error?e.message:typeof n.message==`string`?n.message:typeof e==`string`?e:``,o=e=>{if(!r)return e;let n=`Request failed with status code ${r}`,i=a.trim(),o=i&&i!==n?` (${t(`login.error_backend_detail`)}: ${i})`:``;return`HTTP ${r}: ${e}${o}`};return r===401?o(t(`login.error_unauthorized`)):r===403?o(t(`login.error_forbidden`)):r===404?o(t(`login.error_not_found`)):r&&r>=500?o(t(`login.error_server`)):i===`ECONNABORTED`||a.toLowerCase().includes(`timeout`)?t(`login.error_timeout`):i===`ERR_NETWORK`||a.toLowerCase().includes(`network error`)?t(`login.error_network`):i===`ERR_CERT_AUTHORITY_INVALID`||a.toLowerCase().includes(`certificate`)?t(`login.error_ssl`):a.toLowerCase().includes(`cors`)||a.toLowerCase().includes(`cross-origin`)?t(`login.error_cors`):o(t(`login.error_invalid`))}function zm(){let{t:e}=B(),t=hr(),n=fr(),{showNotification:r}=Jc(),i=hl(e=>e.language),a=hl(e=>e.setLanguage),o=Im(e=>e.isAuthenticated),s=Im(e=>e.login),c=Im(e=>e.restoreSession),l=Im(e=>e.apiBase),u=Im(e=>e.managementKey),d=Im(e=>e.rememberPassword),[f,p]=(0,y.useState)(``),[m,h]=(0,y.useState)(``),[g,_]=(0,y.useState)(!1),[v,b]=(0,y.useState)(!1),[S,C]=(0,y.useState)(!1),[w,T]=(0,y.useState)(!1),[E,D]=(0,y.useState)(!0),[O,k]=(0,y.useState)(!1),[A,j]=(0,y.useState)(``),M=(0,y.useMemo)(()=>np(),[]),N=(0,y.useMemo)(()=>Wc.map(t=>({value:t,label:e(Gc[t])})),[e]),ee=(0,y.useCallback)(e=>{ll(e)&&a(e)},[a]);(0,y.useEffect)(()=>{(async()=>{try{await c()?(k(!0),setTimeout(()=>{let e=n.state?.from?.pathname||`/`;t(e,{replace:!0})},1500)):(p(l||M),h(u||``),C(d||!!u))}finally{D(!1)}})()},[]);let P=(0,y.useCallback)(async()=>{if(!m.trim()){j(e(`login.error_required`));return}let n=f?ep(f):M;T(!0),j(``);try{await s({apiBase:n,managementKey:m.trim(),rememberPassword:S}),r(e(`common.connected_status`),`success`),t(`/`,{replace:!0})}catch(t){let n=Rm(t,e);j(n),r(`${e(`notification.login_failed`)}: ${n}`,`error`)}finally{T(!1)}},[f,M,s,m,t,S,r,e]),F=(0,y.useCallback)(e=>{e.key===`Enter`&&!w&&(e.preventDefault(),P())},[w,P]);if(o&&!E&&!O)return(0,V.jsx)(ni,{to:n.state?.from?.pathname||`/`,replace:!0});let I=E||O;return(0,V.jsxs)(`div`,{className:Lm.container,children:[(0,V.jsx)(`div`,{className:Lm.brandPanel,children:(0,V.jsxs)(`div`,{className:Lm.brandContent,children:[(0,V.jsx)(`span`,{className:Lm.brandWord,children:`CLI`}),(0,V.jsx)(`span`,{className:Lm.brandWord,children:`PROXY`}),(0,V.jsx)(`span`,{className:Lm.brandWord,children:`API`})]})}),(0,V.jsx)(`div`,{className:Lm.formPanel,children:I?(0,V.jsxs)(`div`,{className:Lm.splashContent,children:[(0,V.jsx)(`img`,{src:x,alt:`CPAMC`,className:Lm.splashLogo}),(0,V.jsx)(`h1`,{className:Lm.splashTitle,children:e(`splash.title`)}),(0,V.jsx)(`p`,{className:Lm.splashSubtitle,children:e(`splash.subtitle`)}),(0,V.jsx)(`div`,{className:Lm.splashLoader,children:(0,V.jsx)(`div`,{className:Lm.splashLoaderBar})})]}):(0,V.jsxs)(`div`,{className:Lm.formContent,children:[(0,V.jsx)(`img`,{src:x,alt:`Logo`,className:Lm.logo}),(0,V.jsxs)(`div`,{className:Lm.loginCard,children:[(0,V.jsxs)(`div`,{className:Lm.loginHeader,children:[(0,V.jsxs)(`div`,{className:Lm.titleRow,children:[(0,V.jsx)(`div`,{className:Lm.title,children:e(`title.login`)}),(0,V.jsx)(_c,{className:Lm.languageSelect,value:i,options:N,onChange:ee,fullWidth:!1,ariaLabel:e(`language.switch`)})]}),(0,V.jsx)(`div`,{className:Lm.subtitle,children:e(`login.subtitle`)})]}),(0,V.jsxs)(`div`,{className:Lm.connectionBox,children:[(0,V.jsx)(`div`,{className:Lm.label,children:e(`login.connection_current`)}),(0,V.jsx)(`div`,{className:Lm.value,children:f||M}),(0,V.jsx)(`div`,{className:Lm.hint,children:e(`login.connection_auto_hint`)})]}),(0,V.jsx)(`div`,{className:Lm.toggleAdvanced,children:(0,V.jsx)(yc,{checked:g,onChange:_,ariaLabel:e(`login.custom_connection_label`),label:e(`login.custom_connection_label`),labelClassName:Lm.toggleLabel})}),g&&(0,V.jsx)(ds,{label:e(`login.custom_connection_label`),placeholder:e(`login.custom_connection_placeholder`),value:f,onChange:e=>p(e.target.value),hint:e(`login.custom_connection_hint`)}),(0,V.jsx)(ds,{autoFocus:!0,label:e(`login.management_key_label`),placeholder:e(`login.management_key_placeholder`),type:v?`text`:`password`,name:`cpa-management-key`,autoComplete:`current-password`,value:m,onChange:e=>h(e.target.value),onKeyDown:F,rightElement:(0,V.jsx)(`button`,{type:`button`,className:`btn btn-ghost btn-sm`,onClick:()=>b(e=>!e),"aria-label":v?e(`login.hide_key`,{defaultValue:`隐藏密钥`}):e(`login.show_key`,{defaultValue:`显示密钥`}),title:v?e(`login.hide_key`,{defaultValue:`隐藏密钥`}):e(`login.show_key`,{defaultValue:`显示密钥`}),children:v?(0,V.jsx)(Ws,{size:16}):(0,V.jsx)(Us,{size:16})})}),(0,V.jsx)(`div`,{className:Lm.toggleAdvanced,children:(0,V.jsx)(yc,{checked:S,onChange:C,ariaLabel:e(`login.remember_password_label`),label:e(`login.remember_password_label`),labelClassName:Lm.toggleLabel})}),(0,V.jsx)(H,{fullWidth:!0,onClick:P,loading:w,children:e(w?`login.submitting`:`login.submit_button`)}),A&&(0,V.jsx)(`div`,{className:Lm.errorBox,children:A})]})]})})]})}var Bm={now:()=>performance.now(),schedule:(e,t)=>setTimeout(e,t),cancel:e=>clearTimeout(e)};function Vm(e,t,n=Bm){let r=e,i=0,a,o=!1,s=!1,c=new Set;function l(){s||o||c.size||e<=0||(i=n.now(),o=!0,a=n.schedule(()=>{o=!1,s=!0,t()},Math.max(0,r)))}return l(),{setPaused(e,t){s||(t?(c.add(e),o&&(r-=n.now()-i,n.cancel(a),o=!1)):(c.delete(e),l()))},dispose(){s=!0,o&&n.cancel(a),o=!1}}}var Hm={container:`NotificationContainer-module__container___p4oS3`,notification:`NotificationContainer-module__notification___10jUg`,success:`NotificationContainer-module__success___-bruJ`,warning:`NotificationContainer-module__warning___5hmzA`,error:`NotificationContainer-module__error___dUbmm`,info:`NotificationContainer-module__info___6v-vn`,icon:`NotificationContainer-module__icon___H0Xia`,message:`NotificationContainer-module__message___kmWcg`,closeButton:`NotificationContainer-module__closeButton___Y2b-1`,srOnly:`NotificationContainer-module__srOnly___YFivI`},Um=160,Wm={success:Ps,info:ws,warning:Ns,error:ws};function nee({notification:e,onExited:t,returnFocusRef:n}){let{t:r}=B(),i=Jc(e=>e.removeNotification),a=(0,y.useRef)(null),o=(0,y.useRef)(null),{id:s,type:c,message:l,duration:u=qc,isExiting:d}=e,f=Wm[c];(0,y.useEffect)(()=>{if(d){let e=setTimeout(()=>t(s),Um);return()=>clearTimeout(e)}let e=Vm(u,()=>i(s));a.current=e;let n=()=>e.setPaused(`hidden`,document.hidden);return n(),e.setPaused(`focus`,!!o.current?.contains(document.activeElement)),e.setPaused(`hover`,!!o.current?.matches(`:hover`)),document.addEventListener(`visibilitychange`,n),()=>{document.removeEventListener(`visibilitychange`,n),e.dispose(),a.current=null}},[u,s,d,t,i]);let p=(e=!1)=>{let r=o.current;if(r?.contains(document.activeElement)){let e=Array.from(r.parentElement?.querySelectorAll(`button:not(:disabled)`)??[]),t=e.indexOf(r.querySelector(`button`)),i=e[t+1]??e[t-1]??n.current;i?.isConnected&&i.focus({preventScroll:!0})}i(s),e&&t(s)};return(0,V.jsxs)(`div`,{ref:o,className:`${Hm.notification} ${Hm[c]}`,"data-exiting":d||void 0,"aria-hidden":d||void 0,inert:d||void 0,onPointerEnter:e=>{e.pointerType!==`touch`&&a.current?.setPaused(`hover`,!0)},onPointerLeave:()=>a.current?.setPaused(`hover`,!1),onFocusCapture:()=>a.current?.setPaused(`focus`,!0),onBlurCapture:e=>{e.currentTarget.contains(e.relatedTarget)||a.current?.setPaused(`focus`,!1)},onKeyDown:e=>{e.key===`Escape`&&(e.stopPropagation(),p(!0))},children:[(0,V.jsx)(`span`,{className:Hm.icon,"aria-hidden":`true`,children:(0,V.jsx)(f,{size:18})}),(0,V.jsxs)(`div`,{className:Hm.message,role:c===`error`?`alert`:`status`,"aria-atomic":`true`,children:[(0,V.jsxs)(`span`,{className:Hm.srOnly,children:[r(`notification.type_${c}`),`: `]}),l]}),(0,V.jsx)(`button`,{type:`button`,className:Hm.closeButton,onClick:e=>p(e.detail===0),disabled:d,"aria-label":r(`common.close`),children:(0,V.jsx)(Vs,{size:16})})]})}function ree(){let{t:e}=B(),t=Jc(e=>e.notifications),[n,r]=(0,y.useState)(t),i=(0,y.useRef)(null);(0,y.useEffect)(()=>{r(e=>{let n=new Map(t.map(e=>[e.id,e])),r=new Set(e.map(e=>e.id));return[...e.map(e=>n.has(e.id)?n.get(e.id):{...e,isExiting:!0}),...t.filter(e=>!r.has(e.id))]})},[t]);let a=(0,y.useCallback)(e=>{r(t=>t.filter(t=>t.id!==e))},[]);return(0,V.jsx)(`section`,{className:Hm.container,"aria-label":e(`notification.region_label`),onFocusCapture:e=>{e.currentTarget.contains(e.relatedTarget)||(i.current=e.relatedTarget instanceof HTMLElement?e.relatedTarget:null)},children:n.map(e=>(0,V.jsx)(nee,{notification:e,onExited:a,returnFocusRef:i},e.id))})}var Gm=`modal-open`,Km=0,qm={scrollY:0,contentScrollTop:0,contentEl:null,bodyPosition:``,bodyTop:``,bodyLeft:``,bodyRight:``,bodyWidth:``,bodyOverflow:``,htmlOverflow:``},Jm=()=>{if(typeof document>`u`)return null;let e=document.querySelector(`.content`);return e instanceof HTMLElement?e:null};function Ym(){if(!(typeof document>`u`)){if(Km===0){let e=document.body,t=document.documentElement,n=Jm();qm.scrollY=window.scrollY||window.pageYOffset||t.scrollTop||0,qm.contentEl=n,qm.contentScrollTop=n?.scrollTop??0,qm.bodyPosition=e.style.position,qm.bodyTop=e.style.top,qm.bodyLeft=e.style.left,qm.bodyRight=e.style.right,qm.bodyWidth=e.style.width,qm.bodyOverflow=e.style.overflow,qm.htmlOverflow=t.style.overflow,e.classList.add(Gm),t.classList.add(Gm),e.style.position=`fixed`,e.style.top=`-${qm.scrollY}px`,e.style.left=`0`,e.style.right=`0`,e.style.width=`100%`,e.style.overflow=`hidden`,t.style.overflow=`hidden`}Km+=1}}function Xm(){if(!(typeof document>`u`)&&(Km=Math.max(0,Km-1),Km===0)){let e=document.body,t=document.documentElement,n=qm.scrollY,r=qm.contentScrollTop,i=qm.contentEl;e.classList.remove(Gm),t.classList.remove(Gm),e.style.position=qm.bodyPosition,e.style.top=qm.bodyTop,e.style.left=qm.bodyLeft,e.style.right=qm.bodyRight,e.style.width=qm.bodyWidth,e.style.overflow=qm.bodyOverflow,t.style.overflow=qm.htmlOverflow,i&&i.scrollTo({top:r,left:0,behavior:`auto`}),window.scrollTo({top:n,left:0,behavior:`auto`}),qm.scrollY=0,qm.contentScrollTop=0,qm.contentEl=null}}var Zm=[`a[href]`,`button:not([disabled])`,`input:not([disabled])`,`select:not([disabled])`,`textarea:not([disabled])`,`[tabindex]:not([tabindex="-1"])`].join(`,`),Qm=350;function $m({open:e,title:t,onClose:n,footer:r,width:i=520,className:a,closeDisabled:o=!1,children:s}){let{t:c}=B(),l=(0,y.useId)(),[u,d]=(0,y.useState)(!1),[f,p]=(0,y.useState)(!1),m=(0,y.useRef)(null),h=(0,y.useRef)(null),g=(0,y.useRef)(null),_=(0,y.useRef)(null),v=(0,y.useCallback)(()=>h.current?Array.from(h.current.querySelectorAll(Zm)).filter(e=>!e.hasAttribute(`disabled`)&&e.tabIndex!==-1):[],[]),b=(0,y.useCallback)(e=>{m.current===null&&(p(!0),m.current=window.setTimeout(()=>{d(!1),p(!1),m.current=null,e&&n()},Qm))},[n]);(0,y.useEffect)(()=>{let t=!1;return e?(m.current!==null&&(window.clearTimeout(m.current),m.current=null),queueMicrotask(()=>{t||(d(!0),p(!1))})):u&&queueMicrotask(()=>{t||b(!1)}),()=>{t=!0}},[e,u,b]);let x=(0,y.useCallback)(()=>{b(!0)},[b]);(0,y.useEffect)(()=>()=>{m.current!==null&&window.clearTimeout(m.current)},[]);let C=e||u;if((0,y.useEffect)(()=>{if(C)return Ym(),()=>Xm()},[C]),(0,y.useEffect)(()=>{if(!e)return;_.current=document.activeElement instanceof HTMLElement?document.activeElement:null;let t=window.setTimeout(()=>{(v()[0]??g.current??h.current)?.focus()},0);return()=>{window.clearTimeout(t)}},[v,e]),(0,y.useEffect)(()=>{e||u||(_.current?.focus(),_.current=null)},[u,e]),(0,y.useEffect)(()=>{if(!e)return;let t=e=>{if(e.key===`Escape`){if(o)return;e.preventDefault(),x();return}if(e.key!==`Tab`)return;let t=v();if(t.length===0){e.preventDefault(),h.current?.focus();return}let n=t[0],r=t[t.length-1],i=document.activeElement;if(e.shiftKey){(i===n||i===h.current)&&(e.preventDefault(),r.focus());return}i===r&&(e.preventDefault(),n.focus())};return document.addEventListener(`keydown`,t),()=>document.removeEventListener(`keydown`,t)},[o,v,x,e]),!e&&!u)return null;let w=(0,V.jsx)(`div`,{className:`modal-overlay ${f?`modal-overlay-closing`:`modal-overlay-entering`}`,children:(0,V.jsxs)(`div`,{ref:h,className:`modal ${f?`modal-closing`:`modal-entering`}${a?` ${a}`:``}`,style:{width:i,maxWidth:`100%`},role:`dialog`,"aria-modal":`true`,"aria-labelledby":t?l:void 0,tabIndex:-1,children:[(0,V.jsx)(`button`,{ref:g,type:`button`,className:`modal-close-floating`,onClick:o?void 0:x,"aria-label":c(`common.close`),disabled:o,children:(0,V.jsx)(Vs,{size:20})}),(0,V.jsx)(`div`,{className:`modal-header`,children:(0,V.jsx)(`div`,{className:`modal-title`,id:t?l:void 0,children:t})}),(0,V.jsx)(`div`,{className:`modal-body`,children:s}),r&&(0,V.jsx)(`div`,{className:`modal-footer`,children:r})]})});return typeof document>`u`?w:(0,S.createPortal)(w,document.body)}function eh(){let{t:e}=B(),t=Jc(e=>e.confirmation),n=Jc(e=>e.hideConfirmation),r=Jc(e=>e.setConfirmationLoading),{isOpen:i,isLoading:a,options:o}=t;if(!i||!o)return null;let{title:s,message:c,onConfirm:l,onCancel:u,confirmText:d,cancelText:f,variant:p=`primary`}=o,m=async()=>{try{r(!0),await l(),n()}catch(e){console.error(`Confirmation action failed:`,e)}finally{r(!1)}},h=()=>{a||(u&&u(),n())};return(0,V.jsxs)($m,{open:i,onClose:h,title:s,closeDisabled:a,children:[typeof c==`string`?(0,V.jsx)(`p`,{style:{margin:`1rem 0`},children:c}):(0,V.jsx)(`div`,{style:{margin:`1rem 0`},children:c}),(0,V.jsxs)(`div`,{style:{display:`flex`,justifyContent:`flex-end`,gap:`1rem`,marginTop:`2rem`},children:[(0,V.jsx)(H,{variant:`ghost`,onClick:h,disabled:a,children:f||e(`common.cancel`)}),(0,V.jsx)(H,{variant:p,onClick:m,loading:a,children:d||e(`common.confirm`)})]})]})}function th(e){let t;return()=>(t===void 0&&(t=e()),t)}var nh=e=>e,rh=e=>e*1e3,ih=e=>e/1e3,ah=e=>Array.isArray(e)&&typeof e[0]==`number`,oh=(e,t,n=10)=>{let r=``,i=Math.max(Math.round(t/n),2);for(let t=0;t<i;t++)r+=Math.round(e(t/(i-1))*1e4)/1e4+`, `;return`linear(${r.substring(0,r.length-2)})`},sh=e=>e!==null;function ch(e,{repeat:t,repeatType:n=`loop`},r,i=1){let a=e.filter(sh),o=i<0||t&&n!==`loop`&&t%2==1?0:a.length-1;return!o||r===void 0?a[o]:r}var lh=class{constructor(){this.updateFinished()}get finished(){return this._finished}updateFinished(){this._finished=new Promise(e=>{this.resolve=e})}notifyFinished(){this.resolve()}then(e,t){return this.finished.then(e,t)}};function uh(e){for(let t=1;t<e.length;t++)e[t]??(e[t]=e[t-1])}var dh=e=>e.startsWith(`--`);function fh(e,t,n){dh(t)?e.style.setProperty(t,n):e.style[t]=n}var ph={};function mh(e,t){let n=th(e);return()=>ph[t]??n()}var hh=mh(()=>window.ScrollTimeline!==void 0,`scrollTimeline`),gh=mh(()=>{try{document.createElement(`div`).animate({opacity:0},{easing:`linear(0, 1)`})}catch{return!1}return!0},`linearEasing`),_h=([e,t,n,r])=>`cubic-bezier(${e}, ${t}, ${n}, ${r})`,vh={linear:`linear`,ease:`ease`,easeIn:`ease-in`,easeOut:`ease-out`,easeInOut:`ease-in-out`,circIn:_h([0,.65,.55,1]),circOut:_h([.55,0,1,.45]),backIn:_h([.31,.01,.66,-.59]),backOut:_h([.33,1.53,.69,.99])};function yh(e,t){if(e)return typeof e==`function`?gh()?oh(e,t):`ease-out`:ah(e)?_h(e):Array.isArray(e)?e.map(e=>yh(e,t)||vh.easeOut):vh[e]}function bh(e,t,n,{delay:r=0,duration:i=300,repeat:a=0,repeatType:o=`loop`,ease:s=`easeOut`,times:c}={},l=void 0){let u={[t]:n};c&&(u.offset=c);let d=yh(s,i);Array.isArray(d)&&(u.easing=d);let f={delay:r,duration:i,easing:Array.isArray(d)?`linear`:d,fill:`both`,iterations:a+1,direction:o===`reverse`?`alternate`:`normal`};return l&&(f.pseudoElement=l),e.animate(u,f)}function xh(e){return typeof e==`function`&&`applyToOptions`in e}function Sh({type:e,...t}){return xh(e)&&gh()?e.applyToOptions(t):(t.duration??(t.duration=300),t.ease??(t.ease=`easeOut`),t)}var Ch=class extends lh{constructor(e){if(super(),this.finishedTime=null,this.isStopped=!1,this.manualStartTime=null,!e)return;let{element:t,name:n,keyframes:r,pseudoElement:i,allowFlatten:a=!1,finalKeyframe:o,onComplete:s}=e;this.isPseudoElement=!!i,this.allowFlatten=a,this.options=e,e.type;let c=Sh(e);this.animation=bh(t,n,r,c,i),c.autoplay===!1&&this.animation.pause(),this.animation.onfinish=()=>{if(this.finishedTime=this.time,!i){let e=ch(r,this.options,o,this.speed);this.updateMotionValue&&this.updateMotionValue(e),fh(t,n,e),this.animation.cancel()}s?.(),this.notifyFinished()}}play(){this.isStopped||(this.manualStartTime=null,this.animation.play(),this.state===`finished`&&this.updateFinished())}pause(){this.animation.pause()}complete(){this.animation.finish?.()}cancel(){try{this.animation.cancel()}catch{}}stop(){if(this.isStopped)return;this.isStopped=!0;let{state:e}=this;e===`idle`||e===`finished`||(this.updateMotionValue?this.updateMotionValue():this.commitStyles(),this.isPseudoElement||this.cancel())}commitStyles(){let e=this.options?.element;!this.isPseudoElement&&e?.isConnected&&this.animation.commitStyles?.()}get duration(){let e=this.animation.effect?.getComputedTiming?.().duration||0;return ih(Number(e))}get iterationDuration(){let{delay:e=0}=this.options||{};return this.duration+ih(e)}get time(){return ih(Number(this.animation.currentTime)||0)}set time(e){let t=this.finishedTime!==null;this.manualStartTime=null,this.finishedTime=null,this.animation.currentTime=rh(e),t&&this.animation.pause()}get speed(){return this.animation.playbackRate}set speed(e){e<0&&(this.finishedTime=null),this.animation.playbackRate=e}get state(){return this.finishedTime===null?this.animation.playState:`finished`}get startTime(){return this.manualStartTime??Number(this.animation.startTime)}set startTime(e){this.manualStartTime=this.animation.startTime=e}attachTimeline({timeline:e,rangeStart:t,rangeEnd:n,observe:r}){return this.allowFlatten&&this.animation.effect?.updateTiming({easing:`linear`}),this.animation.onfinish=null,e&&hh()?(this.animation.timeline=e,t&&(this.animation.rangeStart=t),n&&(this.animation.rangeEnd=n),nh):r(this)}},wh=class{constructor(e){this.stop=()=>this.runAll(`stop`),this.animations=e.filter(Boolean)}get finished(){return Promise.all(this.animations.map(e=>e.finished))}getAll(e){return this.animations[0][e]}setAll(e,t){for(let n=0;n<this.animations.length;n++)this.animations[n][e]=t}attachTimeline(e){let t=this.animations.map(t=>t.attachTimeline(e));return()=>{t.forEach((e,t)=>{e&&e(),this.animations[t].stop()})}}get time(){return this.getAll(`time`)}set time(e){this.setAll(`time`,e)}get speed(){return this.getAll(`speed`)}set speed(e){this.setAll(`speed`,e)}get state(){return this.getAll(`state`)}get startTime(){return this.getAll(`startTime`)}get duration(){return Th(this.animations,`duration`)}get iterationDuration(){return Th(this.animations,`iterationDuration`)}runAll(e){this.animations.forEach(t=>t[e]())}play(){this.runAll(`play`)}pause(){this.runAll(`pause`)}cancel(){this.runAll(`cancel`)}complete(){this.runAll(`complete`)}};function Th(e,t){let n=0;for(let r=0;r<e.length;r++){let i=e[r][t];i!==null&&i>n&&(n=i)}return n}var Eh=class extends wh{then(e,t){return this.finished.finally(e).then(()=>{})}},Dh=new WeakMap,Oh=(e,t=``)=>`${e}:${t}`;function kh(e){let t=Dh.get(e);return t||(t=new Map,Dh.set(e,t)),t}function Ah(e,t){if(e?.inherit&&t){let{inherit:n,...r}=e;return{...t,...r}}return e}function jh(e,t){let n=e?.[t]??e?.default??e;return n===e?n:Ah(n,e)}var Mh=new Set(`borderWidth.borderTopWidth.borderRightWidth.borderBottomWidth.borderLeftWidth.borderRadius.borderTopLeftRadius.borderTopRightRadius.borderBottomRightRadius.borderBottomLeftRadius.width.maxWidth.height.maxHeight.top.right.bottom.left.inset.insetBlock.insetBlockStart.insetBlockEnd.insetInline.insetInlineStart.insetInlineEnd.padding.paddingTop.paddingRight.paddingBottom.paddingLeft.paddingBlock.paddingBlockStart.paddingBlockEnd.paddingInline.paddingInlineStart.paddingInlineEnd.margin.marginTop.marginRight.marginBottom.marginLeft.marginBlock.marginBlockStart.marginBlockEnd.marginInline.marginInlineStart.marginInlineEnd.fontSize.backgroundPositionX.backgroundPositionY`.split(`.`));function Nh(e,t){for(let n=0;n<e.length;n++)typeof e[n]==`number`&&Mh.has(t)&&(e[n]=e[n]+`px`)}function Ph(e,t,n){if(e==null)return[];if(e instanceof EventTarget)return[e];if(typeof e==`string`){let r=document;t&&(r=t.current);let i=n?.[e]??r.querySelectorAll(e);return i?Array.from(i):[]}return Array.from(e).filter(e=>e!=null)}function Fh(e,t){let n=window.getComputedStyle(e);return dh(t)?n.getPropertyValue(t):n[t]}function Ih(e,t,n,r){if(e==null)return[];let i=Ph(e,r),a=i.length,o=[];for(let e=0;e<a;e++){let r=i[e],s={...n};typeof s.delay==`function`&&(s.delay=s.delay(e,a));for(let e in t){let n=t[e];Array.isArray(n)||(n=[n]);let i={...jh(s,e)};i.duration&&(i.duration=rh(i.duration)),i.delay&&(i.delay=rh(i.delay));let a=kh(r),c=Oh(e,i.pseudoElement||``),l=a.get(c);l&&l.stop(),o.push({map:a,key:c,unresolvedKeyframes:n,options:{...i,element:r,name:e,allowFlatten:!s.type&&!s.ease}})}}for(let e=0;e<o.length;e++){let{unresolvedKeyframes:t,options:n}=o[e],{element:r,name:i,pseudoElement:a}=n;!a&&t[0]===null&&(t[0]=Fh(r,i)),uh(t),Nh(t,i),!a&&t.length<2&&t.unshift(Fh(r,i)),n.keyframes=t}let s=[];for(let e=0;e<o.length;e++){let{map:t,key:n,options:r}=o[e],i=new Ch(r);t.set(n,i),i.finished.finally(()=>t.delete(n)),s.push(i)}return s}var Lh=(e=>{function t(t,n,r){return new Eh(Ih(t,n,r,e))}return t})(),Rh=(0,y.createContext)(null),zh={current:{status:`current`,isCurrentLayer:!0,isAnimating:!1},stacked:{status:`stacked`,isCurrentLayer:!1,isAnimating:!1},exiting:{status:`exiting`,isCurrentLayer:!1,isAnimating:!1}};function Bh(){return(0,y.useContext)(Rh)}var Vh=.36,Hh=.22,Uh=28,Wh=12,Gh=.15,Kh=.44,qh=100,Jh=-22,Yh=100,Xh=-22,Zh=.96,Qh=.5,$h=`-20px 0 36px rgba(0, 0, 0, 0.20)`,eg=e=>1-(1-e)**4,tg=e=>e*e,ng=e=>1-(1-e)**3,rg=()=>typeof window<`u`&&window.matchMedia?.(`(prefers-reduced-motion: reduce)`).matches,ig=e=>`translate3d(0px, ${e}px, 0px)`,ag=(e,t,n=1)=>n===1?`translate3d(${e}%, ${t}px, 0px)`:`translate3d(${e}%, ${t}px, 0px) scale(${n})`,og=e=>{e&&(e.style.removeProperty(`transform`),e.style.removeProperty(`opacity`),e.style.removeProperty(`box-shadow`))};function iee({render:e,getRouteOrder:t,getTransitionVariant:n,scrollContainerRef:r}){let i=fr(),a=(0,y.useRef)(null),o=(0,y.useRef)(null),s=(0,y.useRef)(`forward`),c=(0,y.useRef)(`vertical`),l=(0,y.useRef)(0),u=(0,y.useRef)(0),d=(0,y.useRef)(new Map),f=(0,y.useRef)(null),[p,m]=(0,y.useState)(!1),[h,g]=(0,y.useState)(()=>[{key:i.key,location:i,status:`current`}]),_=h.find(e=>e.status===`current`)??h[h.length-1],v=_?.key??i.key,b=_?.location.pathname,x=(0,y.useCallback)(()=>r?.current?r.current:typeof document>`u`?null:document.scrollingElement,[r]);return(0,y.useLayoutEffect)(()=>{if(p||i.key===v||b===i.pathname)return;let e=x()?.scrollTop??0;l.current=e,d.current.set(v,e),u.current=d.current.get(i.key)??0;let r=e=>{if(!t||!e)return null;let n=t(e);return typeof n==`number`&&n>=0?n:null},a=r(b),o=r(i.pathname),_=n?n(b??``,i.pathname):`vertical`,y=a===null||o===null||a===o||o>a?`forward`:`backward`;_===`ios`&&h.some(e=>e.key===i.key)&&(y=`backward`),s.current=y,c.current=_;let S=(()=>{if(_!==`ios`||y!==`backward`)return!1;let e=e=>e.split(`/`).filter(Boolean).filter(e=>e.length>0),t=e(b??``),n=e(i.pathname);return!t.length||!n.length?!1:t[0]===n[0]&&n.length===1})();g(e=>{let t=c.current,n=s.current,r=e.findIndex(e=>e.status===`current`),a=r>=0?r:e.length-1,o=e[a],l=e.filter((e,t)=>t!==a).map(e=>({...e,status:`stacked`})),u={key:i.key,location:i,status:`current`};if(!o)return f.current=[u],[u];if(t===`ios`){if(n===`forward`){let e={...o,status:`exiting`},t={...o,status:`stacked`};return f.current=[...l,t,u],[...l,e,u]}let t=e.findIndex(e=>e.key===i.key);if(t!==-1){let n=e.slice(0,t+1).map((e,n)=>{let r=n===t;return{...e,location:r?i:e.location,status:r?`current`:`stacked`}});if(S)return f.current=n,n;let r={...o,status:`exiting`};return f.current=n,[...n,r]}}if(S)return f.current=[u],[u];let d={...o,status:`exiting`};return f.current=[u],[d,u]}),m(!0)},[p,i,v,b,t,n,x,h]),(0,y.useLayoutEffect)(()=>{if(!p||!a.current)return;let e=a.current,t=o.current,n=c.current;og(e),og(t);let r=x(),i=l.current,d=u.current;r&&i!==d&&r.scrollTo({top:d,left:0,behavior:`auto`});let h=s.current===`forward`,_=h?Uh:-28,v=h?-12:Wh,y=d-i,b=rg(),S=[],C=!1,w=!1,T=()=>{if(w)return;w=!0;let n=f.current;f.current=null,g(e=>n??e.filter(e=>e.status!==`exiting`)),m(!1),og(e),og(t)};if(b)t&&(t.style.transform=n===`ios`?ag(0,y):ig(y),S.push(Lh(t,{opacity:[1,0]},{duration:Gh,ease:ng}))),e.style.opacity=`0`,S.push(Lh(e,{opacity:[0,1]},{duration:Gh,ease:ng}));else if(n===`ios`){let n=h?Jh:Yh,r=h?qh:Xh,i=h?Zh:1,a=h?Qh:1,o=h?1:Zh,s=h?1:Qh;t&&(t.style.transform=ag(0,y,1),t.style.opacity=`1`),e.style.transform=ag(r,0,o),e.style.opacity=String(s);let c=h?e:t;c&&(c.style.boxShadow=$h),t&&S.push(Lh(t,{transform:[ag(0,y,1),ag(n,y,i)],opacity:[1,a]},{duration:Kh,ease:ng})),S.push(Lh(e,{transform:[ag(r,0,o),ag(0,0,1)],opacity:[s,1]},{duration:Kh,ease:ng}))}else t&&(t.style.transform=ig(y),S.push(Lh(t,{transform:[ig(y),ig(y+v)],opacity:[1,0]},{duration:Hh,ease:tg}))),e.style.transform=ig(_),e.style.opacity=`0`,S.push(Lh(e,{transform:[ig(_),ig(0)],opacity:[0,1]},{duration:Vh,ease:eg}));return S.length?Promise.all(S.map(e=>e.finished.catch(()=>void 0))).then(()=>{C||T()}):T(),()=>{C=!0,S.forEach(e=>e.stop())}},[p,x]),(0,V.jsx)(`div`,{className:`page-transition${p?` page-transition--animating`:``}`,children:(()=>{let t=h.findIndex(e=>e.status===`current`),n=t===-1?h.length-1:t,r=h.slice(0,n).map((e,t)=>({layer:e,index:t})).reverse().find(({layer:e})=>e.status===`stacked`)?.index;return h.map((t,n)=>{let i=t.status===`stacked`&&n===r;return(0,V.jsx)(`div`,{className:[`page-transition__layer`,t.status===`exiting`?`page-transition__layer--exit`:``,t.status===`stacked`?`page-transition__layer--stacked`:``,i?`page-transition__layer--stacked-keep`:``].filter(Boolean).join(` `),"aria-hidden":t.status!==`current`,inert:t.status!==`current`,ref:t.status===`exiting`?o:t.status===`current`?a:void 0,children:(0,V.jsx)(Rh.Provider,{value:{...zh[t.status],isAnimating:p},children:e(t.location)})},t.key)})})()})}var sg=null,aee=async()=>{sg&&await sg()},cg=(e,t=!0)=>{let n=(0,y.useRef)(null);(0,y.useEffect)(()=>{let r=n.current;if(n.current=e??null,!t||!e){r&&sg===r&&(sg=null);return}return sg=e,()=>{sg===e&&(sg=null)}},[t,e])},oee=/^(\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2})(\.(\d+))?(Z|[+-]\d{2}:\d{2})?$/i;function see(e){let t=e.trim();if(!t)return``;let n=t.match(oee);if(!n)return t;let[,r,,i=``,a=``]=n;return i.length<=3?t:`${r}.${i.slice(0,3)}${a}`}function lg(e){if(typeof e==`number`&&Number.isFinite(e))return e;if(e instanceof Date)return e.getTime();if(typeof e!=`string`)return NaN;let t=e.trim();if(!t)return NaN;let n=see(t),r=Date.parse(n);if(!Number.isNaN(r))return r;if(n!==t){let e=Date.parse(t);if(!Number.isNaN(e))return e}return NaN}function ug(e){let t=lg(e);return Number.isFinite(t)?new Date(t):null}function dg(e){let t=String(e||``).trim();if(!t)return``;let n=t.length<4?1:2,r=t.slice(0,n),i=t.slice(-n),a=Math.max(10-n*2,1);return`${r}${`*`.repeat(a)}${i}`}function fg(e){if(e===0)return`0 B`;let t=[`B`,`KB`,`MB`,`GB`],n=1024,r=Math.floor(Math.log(e)/Math.log(n));return`${(e/n**r).toFixed(2)} ${t[r]}`}var pg=[``,`K`,`M`,`B`,`T`];function mg(e){if(!Number.isFinite(e))return`0`;let t=e<0?`-`:``,n=Math.abs(e),r=0;for(;n>=1e3&&r<pg.length-1;)n/=1e3,r+=1;let i=r===0?Math.round(n):Number(n.toFixed(+(n<100)));return i>=1e3&&r<pg.length-1&&(i=1,r+=1),`${t}${i}${pg[r]}`}function hg(e,t=1){return Number.isFinite(e)?`${e.toFixed(t).replace(/\.0+$/,``)}%`:`—`}function gg(e,t){if(e==null||e===``)return``;let n=typeof e==`number`?e:Number(e),r=(()=>{if(!Number.isFinite(n)||Number.isNaN(n))return ug(e)??new Date(String(e));let t=Math.abs(n);return t<1e11?new Date(n*1e3):t<0x5af3107a4000?new Date(n):t<0x16345785d8a0000?new Date(Math.round(n/1e3)):new Date(Math.round(n/1e6))})();return Number.isNaN(r.getTime())?``:t?r.toLocaleString(t):r.toLocaleString()}function _g(e){if(e==null||e===``)return null;let t=typeof e==`number`?new Date(e<0xe8d4a51000?e*1e3:e):ug(e)??new Date(String(e));return Number.isNaN(t.getTime())?null:t}function vg(e,t){let n=_g(e);return n?t?n.toLocaleDateString(t):n.toLocaleDateString():``}function yg(e,t){let n=_g(e);return n?t?n.toLocaleString(t):n.toLocaleString():``}var bg={qwen:{light:{bg:`#ede5fd`,text:`#5530c7`},dark:{bg:`#36208a`,text:`#b5a3f0`}},gemini:{light:{bg:`#e3f2fd`,text:`#1565c0`},dark:{bg:`#0d47a1`,text:`#64b5f6`}},aistudio:{light:{bg:`#f0f2f5`,text:`#2f343c`},dark:{bg:`#373c42`,text:`#cfd3db`}},claude:{light:{bg:`#fbece4`,text:`#c05621`},dark:{bg:`#5e2c14`,text:`#e8a882`}},codex:{light:{bg:`#eae7ff`,text:`#3538d4`},dark:{bg:`#262395`,text:`#b5b0ff`}},devin:{light:{bg:`#e8f4ff`,text:`#155e9b`},dark:{bg:`#123b5d`,text:`#8dc9f5`}},meta:{light:{bg:`#e3f2fd`,text:`#1565c0`},dark:{bg:`#0d47a1`,text:`#64b5f6`}},kimi:{light:{bg:`#dce8ff`,text:`#0560cf`},dark:{bg:`#003880`,text:`#70b5ff`}},antigravity:{light:{bg:`#e0f7fa`,text:`#006064`},dark:{bg:`#004d40`,text:`#80deea`}},xai:{light:{bg:`#f3f4f6`,text:`#111827`,border:`1px solid #d1d5db`},dark:{bg:`#111827`,text:`#f9fafb`,border:`1px solid #374151`}},iflow:{light:{bg:`#f5e3fc`,text:`#9025c8`},dark:{bg:`#521490`,text:`#d49cf5`}},vertex:{light:{bg:`#e4edfd`,text:`#2b5fbc`},dark:{bg:`#1a3d80`,text:`#89b3f7`}},empty:{light:{bg:`#f5f5f5`,text:`#616161`},dark:{bg:`#424242`,text:`#bdbdbd`}},unknown:{light:{bg:`#f0f0f0`,text:`#666666`,border:`1px dashed #999999`},dark:{bg:`#3a3a3a`,text:`#aaaaaa`,border:`1px dashed #666666`}}},xg=[`https://daily-cloudcode-pa.googleapis.com/v1internal:retrieveUserQuotaSummary`,`https://daily-cloudcode-pa.sandbox.googleapis.com/v1internal:retrieveUserQuotaSummary`,`https://cloudcode-pa.googleapis.com/v1internal:retrieveUserQuotaSummary`],Sg=`https://daily-cloudcode-pa.googleapis.com/v1internal:loadCodeAssist`,Cg=`1.0.13`,wg=`aidev_client`,Tg={osType:`darwin`,arch:`arm64`},Eg={Authorization:`Bearer $TOKEN$`,"Content-Type":`application/json`,"User-Agent":(({version:e=Cg,clientName:t=wg,osType:n=Tg.osType,arch:r=Tg.arch}={})=>`antigravity/cli/${e} (${t}; os_type=${n}; arch=${r})`)()},Dg=`https://api.anthropic.com/api/oauth/profile`,Og=`https://api.anthropic.com/api/oauth/usage`,kg={"User-Agent":`claude-cli/2.1.280 (external, cli)`,Authorization:`Bearer $TOKEN$`,"Content-Type":`application/json`,"anthropic-beta":`oauth-2025-04-20`},Ag=[{key:`five_hour`,id:`five-hour`,labelKey:`claude_quota.five_hour`},{key:`seven_day`,id:`seven-day`,labelKey:`claude_quota.seven_day`},{key:`seven_day_oauth_apps`,id:`seven-day-oauth-apps`,labelKey:`claude_quota.seven_day_oauth_apps`},{key:`seven_day_opus`,id:`seven-day-opus`,labelKey:`claude_quota.seven_day_opus`},{key:`seven_day_sonnet`,id:`seven-day-sonnet`,labelKey:`claude_quota.seven_day_sonnet`},{key:`seven_day_cowork`,id:`seven-day-cowork`,labelKey:`claude_quota.seven_day_cowork`},{key:`iguana_necktie`,id:`seven-day-fable`,labelKey:`claude_quota.seven_day_fable`}],jg=`https://chatgpt.com/backend-api/wham/usage`,Mg=`https://chatgpt.com/backend-api/subscriptions`,Ng=`https://chatgpt.com/backend-api/wham/rate-limit-reset-credits`,Pg=`https://chatgpt.com/backend-api/wham/rate-limit-reset-credits/consume`,Fg={Authorization:`Bearer $TOKEN$`,"Content-Type":`application/json`,"User-Agent":`codex-tui/0.149.1 (Mac OS 26.5.2; arm64) iTerm.app/3.6.11 (codex-tui; 0.149.1)`},Ig=`https://api.kimi.com/coding/v1/usages`,Lg=`https://api.kimi.ai/coding/v1/usages`,Rg={Authorization:`Bearer $TOKEN$`},zg=`https://cli-chat-proxy.grok.com/v1/billing?format=credits`,Bg=`https://cli-chat-proxy.grok.com/v1/billing`,Vg=`https://cli-chat-proxy.grok.com/v1/user?include=subscription`,Hg=`https://cli-chat-proxy.grok.com/v1/settings`,Ug=`https://api.x.ai/v1/me`,Wg=`https://api.x.ai/v1/chat/completions`,Gg=`grok-4.5`,Kg={Authorization:`Bearer $TOKEN$`,"x-xai-token-auth":`xai-grok-cli`,"x-grok-client-version":`0.2.91`,accept:`*/*`,"user-agent":`grok-pager/0.2.91 grok-shell/0.2.91 (macos; aarch64)`},qg={Authorization:`Bearer $TOKEN$`,accept:`application/json`},Jg=(e,t,n)=>t===404?e(`common.quota_update_required`):t===403?e(`common.quota_check_credential`):n,Yg=36e5;function Xg(e){if(typeof e!=`string`)return null;let t=e.trim();if(!t)return null;let n=t.replace(/(\.\d{6})\d+/,`$1`),r=new Date(n).getTime();return Number.isFinite(r)?r:null}function Zg(e){let t=typeof e==`number`?e:typeof e==`string`?Number(e.trim()):NaN;return!Number.isFinite(t)||t<=0?null:t<1e11?t*1e3:t}function Qg(e,t){let n=typeof e==`number`?e:typeof e==`string`?Number(e.trim()):NaN;return!Number.isFinite(n)||n<=0?null:t+n*1e3}function $g(e){for(let t of e){let e=Xg(t);if(e!==null)return e;let n=Zg(t);if(n!==null)return n}return null}function e_(e){let t=typeof e==`number`?e:typeof e==`string`?Number(e.trim()):NaN;return!Number.isFinite(t)||t<=0?null:t*1e3/Yg}function t_(e){return e===`five_hour`?5:168}var n_=e=>typeof e==`number`&&Number.isFinite(e)?e.toString():typeof e==`string`&&e.trim()||null;function r_(e){return typeof e==`string`?e.trim()||null:typeof e==`number`&&Number.isFinite(e)?e.toString():null}function i_(e){if(typeof e==`number`&&Number.isFinite(e))return e;if(typeof e==`string`){let t=e.trim();if(!t)return null;let n=Number(t);return Number.isFinite(n)?n:null}return null}function a_(e){let t=i_(e);if(t!==null)return t;if(typeof e==`string`){let t=e.trim();if(!t)return null;if(t.endsWith(`%`)){let e=Number(t.slice(0,-1));return Number.isFinite(e)?e/100:null}}return null}function o_(e){let t=r_(e);return t?t.toLowerCase():null}function s_(e){let t=e.trim();if(!t)return null;try{let e=t.replace(/-/g,`+`).replace(/_/g,`/`),n=e.padEnd(Math.ceil(e.length/4)*4,`=`);if(typeof window<`u`&&typeof window.atob==`function`)return window.atob(n);if(typeof atob==`function`)return atob(n)}catch{return null}return null}function c_(e){if(!e)return null;if(typeof e==`object`)return Array.isArray(e)?null:e;if(typeof e!=`string`)return null;let t=e.trim();if(!t)return null;try{let e=JSON.parse(t);if(e&&typeof e==`object`)return e}catch{}let n=t.split(`.`);if(n.length<2)return null;let r=s_(n[1]);if(!r)return null;try{let e=JSON.parse(r);if(e&&typeof e==`object`)return e}catch{return null}return null}function l_(e){let t=e=>{if(e==null)return null;if(typeof e==`string`){let t=e.trim();if(!t)return null;try{let e=JSON.parse(t);if(e&&typeof e==`object`&&!Array.isArray(e))return e}catch{return null}return null}return typeof e==`object`&&!Array.isArray(e)?e:null},n=t(e);return n?`models`in n?n:t(n.body)||n:null}function u_(e){if(e==null)return null;if(typeof e==`string`){let t=e.trim();if(!t)return null;try{return JSON.parse(t)}catch{return null}}return typeof e==`object`?e:null}function d_(e){if(e==null)return null;if(typeof e==`string`){let t=e.trim();if(!t)return null;try{return JSON.parse(t)}catch{return null}}return typeof e==`object`?e:null}function f_(e){if(e==null)return null;if(typeof e==`string`){let t=e.trim();if(!t)return null;try{return JSON.parse(t)}catch{return null}}return typeof e==`object`?e:null}function p_(e){if(e==null)return null;if(typeof e==`string`){let t=e.trim();if(!t)return null;try{return JSON.parse(t)}catch{return null}}return typeof e==`object`?e:null}var m_=new Set([`pro`,`prolite`,`pro-lite`,`pro_lite`,`self_serve_business_prolite`]);function h_(e){let t=o_(e);return t?t===`pro`?`elite`:m_.has(t)?`premium`:`plain`:`plain`}var g_=e=>!e||typeof e!=`object`||Array.isArray(e)?null:e,__=e=>{let t=c_(e);return t?g_(t[`https://api.openai.com/auth`])??t:null};function v_(e){let t=c_(e);return t?r_(t.chatgpt_account_id??t.chatgptAccountId):null}function y_(e){let t=e&&typeof e.metadata==`object`&&e.metadata!==null?e.metadata:null,n=e&&typeof e.attributes==`object`&&e.attributes!==null?e.attributes:null,r=[e.chatgpt_account_id,e.chatgptAccountId,t?.chatgpt_account_id,t?.chatgptAccountId,n?.chatgpt_account_id,n?.chatgptAccountId];for(let e of r){let t=r_(e);if(t)return t}let i=[e.id_token,t?.id_token,n?.id_token];for(let e of i){let t=v_(e);if(t)return t}return null}function b_(e){let t=e&&typeof e.metadata==`object`&&e.metadata!==null?e.metadata:null,n=e&&typeof e.attributes==`object`&&e.attributes!==null?e.attributes:null,r=e&&typeof e.id_token==`object`&&e.id_token!==null?e.id_token:null,i=t&&typeof t.id_token==`object`&&t.id_token!==null?t.id_token:null,a=[e.plan_type,e.planType,e.plan_type,e.planType,e.id_token,r?.plan_type,r?.planType,t?.plan_type,t?.planType,t?.id_token,i?.plan_type,i?.planType,n?.plan_type,n?.planType,n?.id_token];for(let e of a){let t=o_(e);if(t)return t}return null}var x_=e=>{let t=i_(e);if(t===0)return null;if(t!==null)return t;let n=r_(e);return!n||n===`0`?null:n};function S_(e){let t=g_(e.metadata),n=g_(e.attributes),r=__(e.id_token),i=__(t?.id_token),a=__(n?.id_token),o=g_(e.subscription),s=g_(t?.subscription),c=g_(n?.subscription),l=[e.chatgpt_subscription_active_until,e.chatgptSubscriptionActiveUntil,e.subscription_active_until,e.subscriptionActiveUntil,o?.active_until,o?.activeUntil,r?.chatgpt_subscription_active_until,r?.chatgptSubscriptionActiveUntil,t?.chatgpt_subscription_active_until,t?.chatgptSubscriptionActiveUntil,t?.subscription_active_until,t?.subscriptionActiveUntil,s?.active_until,s?.activeUntil,i?.chatgpt_subscription_active_until,i?.chatgptSubscriptionActiveUntil,n?.chatgpt_subscription_active_until,n?.chatgptSubscriptionActiveUntil,n?.subscription_active_until,n?.subscriptionActiveUntil,c?.active_until,c?.activeUntil,a?.chatgpt_subscription_active_until,a?.chatgptSubscriptionActiveUntil];for(let e of l){let t=x_(e);if(t!==null)return t}return null}var C_=6e4,w_=36e5,T_=24*w_;function E_(e,t){let n=e-t,r=n<0?-1:1,i=Math.abs(n);return i>=864e5?{value:r*Math.floor(i/T_),unit:`day`}:i>=36e5?{value:r*Math.floor(i/w_),unit:`hour`}:{value:r*Math.max(1,Math.floor(i/C_)),unit:`minute`}}var D_=new Map;function O_(e){let t=e??``,n=D_.get(t);if(n)return n;let r;try{r=new Intl.RelativeTimeFormat(e,{numeric:`always`})}catch{r=new Intl.RelativeTimeFormat(void 0,{numeric:`always`})}return D_.set(t,r),r}function k_(e,t,n){let{value:r,unit:i}=E_(e,t);return O_(n).format(r,i)}function A_(e){return Number.isFinite(e)?new Date(e).toLocaleString(void 0,{month:`2-digit`,day:`2-digit`,hour:`2-digit`,minute:`2-digit`,hour12:!1}):`-`}function j_(e,t,n,r){let i=typeof e==`string`?e.trim():``,a=i&&i!==`-`?i:null,o=typeof t==`number`&&Number.isFinite(t)?t:null;return a===null&&o===null?null:{absolute:a??A_(o),relative:o===null?null:k_(o,n,r)}}function M_(e){if(!e)return`-`;let t=new Date(e).getTime();return Number.isNaN(t)?`-`:A_(t)}function N_(e){if(!e)return`-`;let t=e*1e3;return Number.isNaN(t)?`-`:A_(t)}function P_(e){if(!e)return`-`;let t=i_(e.reset_at??e.resetAt);if(t!==null&&t>0)return N_(t);let n=i_(e.reset_after_seconds??e.resetAfterSeconds);return n!==null&&n>0?N_(Math.floor(Date.now()/1e3+n)):`-`}function F_(e,t){let n=Error(e);return t!==void 0&&(n.status=t),n}function I_(e){if(typeof e==`object`&&e&&`status`in e){let t=e.status;if(typeof t==`number`&&Number.isFinite(t))return t;let n=Number(t);if(Number.isFinite(n)&&n>0)return n}}function L_(e,t){return t?e(`kimi_quota.reset_hint`,{hint:t}):``}var R_=new Map([[`5h`,0],[`five-hour`,0],[`five_hour`,0],[`weekly`,1],[`week`,1]]);function z_(e,t){return e.trim().toLowerCase().replace(/[^a-z0-9]+/g,`-`).replace(/^-+|-+$/g,``)||t}function B_(e){let t=e.window?.toLowerCase();return t?R_.get(t)??2**53-1:2**53-1}function V_(e){switch((e??``).trim().toLowerCase()){case`5h`:case`five-hour`:case`five_hour`:return 5;case`weekly`:case`week`:return 168;default:return null}}function H_(e){return(Array.isArray(e.groups)?e.groups:[]).map((e,t)=>{let n=r_(e.displayName??e.display_name)??`Quota Group ${t+1}`,r=z_(n,`quota-group-${t+1}`),i=(Array.isArray(e.buckets)?e.buckets:[]).map((e,t)=>{let n=a_(e.remainingFraction??e.remaining_fraction);if(n===null)return null;let i=r_(e.window)??void 0,a=r_(e.bucketId??e.bucket_id)??`${r}-${i??`bucket-${t+1}`}`,o=r_(e.displayName??e.display_name)??a,s=r_(e.resetTime??e.reset_time)??void 0;return{id:a,label:o,window:i,remainingFraction:n,resetTime:s,description:r_(e.description)??void 0,resetAtMs:$g([s]),periodHours:V_(i)}}).filter(e=>e!==null).sort((e,t)=>{let n=B_(e)-B_(t);return n===0?e.label.localeCompare(t.label):n});return i.length===0?null:{id:r,label:n,description:r_(e.description)??void 0,buckets:i}}).filter(e=>e!==null)}function U_(e){if(typeof e==`number`&&Number.isFinite(e))return Math.floor(e);if(typeof e==`string`){let t=Number(e.trim());return Number.isFinite(t)?Math.floor(t):null}return null}function W_(e){let t=Math.floor(e/1440),n=Math.floor(e%1440/60),r=e%60;return t>0?`${t}d ${n}h`:n>0&&r>0?`${n}h ${r}m`:n>0?`${n}h`:r>0?`${r}m`:`<1m`}function G_(e){for(let t of[`reset_at`,`resetAt`,`reset_time`,`resetTime`]){let n=e[t];if(typeof n==`string`&&n.trim())try{let e=n.replace(/(\.\d{6})\d+/,`$1`),t=new Date(e);if(Number.isNaN(t.getTime()))continue;let r=Date.now(),i=t.getTime()-r;return i<=0?void 0:W_(Math.floor(i/6e4))}catch{continue}}for(let t of[`reset_in`,`resetIn`,`ttl`]){let n=U_(e[t]);if(n!==null&&n>0)return W_(Math.floor(n/60))}}function K_(e){let t=typeof e==`string`?e.trim().toUpperCase().replace(/^TIME_UNIT_/,``):``;return t===`SECONDS`||t===`SECOND`?`second`:!t||t===`MINUTES`||t===`MINUTE`?`minute`:t===`HOURS`||t===`HOUR`?`hour`:t===`DAYS`||t===`DAY`?`day`:t===`WEEKS`||t===`WEEK`?`week`:null}function q_(e,t){let n=K_(t);return n===`second`?`${e}s`:n===`hour`?`${e}h`:n===`day`?`${e}d`:n===`week`?`${e}w`:e%60==0?`${e/60}h`:`${e}m`}function J_(e,t,n,r){for(let n of[`name`,`title`,`scope`]){let r=e[n]??t[n];if(typeof r==`string`&&r.trim())return{label:r.trim()}}let i=U_(n.duration)??U_(e.duration)??U_(t.duration),a=n.timeUnit??e.timeUnit??t.timeUnit;return i!==null&&i>0?{labelKey:`kimi_quota.limit_window`,labelParams:{duration:q_(i,a)}}:{labelKey:`kimi_quota.limit_index`,labelParams:{index:r+1}}}function Y_(e){let t=$g([e.reset_at,e.resetAt,e.reset_time,e.resetTime]);if(t!==null)return t;let n=Date.now();for(let t of[`reset_in`,`resetIn`,`ttl`]){let r=Qg(e[t],n);if(r!==null)return r}return null}function X_(e,t=null,n){if(t!==null&&t>0){let e=K_(n);return e===`second`?t/3600:e===`hour`?t:e===`day`?t*24:e===`week`?t*7*24:t/60}let r=(e??``).toLowerCase();return r.includes(`daily`)||r.includes(`day`)?24:r.includes(`weekly`)||r.includes(`week`)?168:r.includes(`monthly`)||r.includes(`month`)?720:r.includes(`5h`)||r.includes(`hour`)?5:null}function Z_(e,t,n=null,r){let i=U_(e.limit),a=U_(e.used);if(a===null){let t=U_(e.remaining);t!==null&&i!==null&&(a=i-t)}if(a===null&&i===null)return null;let o=typeof e.name==`string`&&e.name.trim()||typeof e.title==`string`&&e.title.trim();return{...o?{label:o}:t,used:a??0,limit:i??0,resetHint:G_(e),resetAtMs:Y_(e),periodHours:X_(o||t.label||t.labelKey,n,r)}}function Q_(e){let t=[],n=e.limits;Array.isArray(n)&&n.forEach((e,n)=>{let r=e.detail&&typeof e.detail==`object`?e.detail:e,i=e.window&&typeof e.window==`object`?e.window:{},a=Z_(r,J_(e,r,i,n),U_(i.duration)??U_(e.duration)??U_(r.duration),i.timeUnit??e.timeUnit??r.timeUnit);a&&t.push({id:`limit-${n}`,...a})});let r=e.usage;if(r&&typeof r==`object`){let e=Z_(r,{labelKey:`kimi_quota.weekly_limit`});e&&t.push({id:`summary`,...e})}let i=e.usages?.limit_month_total,a=Number(i?.used_ratio);if(i&&i.used_ratio!==void 0&&Number.isFinite(a)){let e=Z_({used:Math.round(a*100),limit:100,reset_time:i.reset_time},{labelKey:`kimi_quota.monthly_limit`});e&&t.push({id:`monthly`,...e})}return t}function $_(e){return e==null?null:i_(typeof e==`object`&&!Array.isArray(e)?e.val:e)}function ev(e){let t=r_(e?.type)?.toLowerCase()??``;return t.includes(`weekly`)?`weekly`:t.includes(`monthly`)?`monthly`:`unknown`}function tv(e,t){return Array.isArray(e)?e.map((e,n)=>!e||typeof e!=`object`?null:{product:r_(e.product)??`${t} ${n+1}`,usagePercent:i_(e.usagePercent??e.usage_percent)}).filter(e=>e!==null):[]}var nv=()=>({mode:`billing`,source:`cli-chat-proxy`,periodType:`unknown`,usagePercent:null,productUsage:[],monthlyLimitCents:null,usedCents:null,includedUsedCents:null,onDemandCapCents:null,onDemandUsedCents:null,onDemandUsedPercent:null,prepaidBalanceCents:null,usedPercent:null});function rv(e,t){let n=$g([t]),r=$g([e]);return{resetAtMs:n,periodHours:n!==null&&r!==null&&n>r?(n-r)/36e5:null}}function iv(e,t){let n=r_(t)??r_(e);if(!n)return null;let r=`${t??``} ${e??``}`.toLowerCase().replace(/[^a-z0-9]+/g,``);return{label:n,tier:r.includes(`heavy`)?`elite`:r.includes(`supergrok`)||r.includes(`premium`)?`premium`:`standard`}}function av(e){if(!e||typeof e!=`object`)return null;let t=nv(),n=e.currentPeriod??e.current_period??null,r=ev(n),i=i_(e.creditUsagePercent??e.credit_usage_percent),a=r_(n?.start)??r_(e.billingPeriodStart??e.billing_period_start)??void 0,o=r_(n?.end)??r_(e.billingPeriodEnd??e.billing_period_end)??void 0,s=tv(e.productUsage??e.product_usage,`Product`),c=$_(e.monthlyLimit??e.monthly_limit),l=$_(e.used),u=$_(e.onDemandCap??e.on_demand_cap),d=$_(e.onDemandUsed??e.on_demand_used),f=r_(e.billingPeriodStart??e.billing_period_start)??void 0,p=r_(e.billingPeriodEnd??e.billing_period_end)??void 0,m=l===null?null:c!==null&&c>0?Math.min(l,c):l,h=l!==null&&c!==null?Math.max(0,l-c):null,g=d??h,_=$_(e.prepaidBalance??e.prepaid_balance),v=c!==null&&c>0&&m!==null?m/c*100:null,y=u!==null&&u>0&&g!==null?g/u*100:null,b=i!==null||r===`weekly`||s.length>0,x=c!==null||l!==null||!b&&(u!==null||!!p);if(!b&&!x)return null;t.periodType=b?r===`unknown`?`weekly`:r:`monthly`,t.usagePercent=b?i:v,t.periodStart=b?a:f,t.periodEnd=b?o:p,t.productUsage=s,t.monthlyLimitCents=c,t.usedCents=l,t.includedUsedCents=m,t.onDemandCapCents=u,t.onDemandUsedCents=g,t.onDemandUsedPercent=y,t.prepaidBalanceCents=_,t.billingPeriodStart=x?f:void 0,t.billingPeriodEnd=x?p:void 0,t.usedPercent=v;let S=rv(t.periodStart,t.periodEnd);return t.resetAtMs=S.resetAtMs,t.periodHours=S.periodHours,t}function cee(e,t){if(!e)return t;if(!t)return e;let n=e.periodType===`unknown`?t.periodType===`unknown`?e:t:e,r=n.periodStart,i=n.periodEnd,a=rv(r,i);return{mode:`billing`,source:`cli-chat-proxy`,periodType:n.periodType,usagePercent:n.usagePercent,periodStart:r,periodEnd:i,resetAtMs:a.resetAtMs,periodHours:a.periodHours,productUsage:e.productUsage.length>0?e.productUsage:t.productUsage,monthlyLimitCents:e.monthlyLimitCents??t.monthlyLimitCents,usedCents:e.usedCents??t.usedCents,includedUsedCents:e.includedUsedCents??t.includedUsedCents,onDemandCapCents:e.onDemandCapCents??t.onDemandCapCents,onDemandUsedCents:e.onDemandUsedCents??t.onDemandUsedCents,onDemandUsedPercent:e.onDemandUsedPercent??t.onDemandUsedPercent,prepaidBalanceCents:e.prepaidBalanceCents??t.prepaidBalanceCents,planLabel:e.planLabel??t.planLabel,planTier:e.planTier??t.planTier,billingPeriodStart:e.billingPeriodStart??t.billingPeriodStart,billingPeriodEnd:e.billingPeriodEnd??t.billingPeriodEnd,usedPercent:e.usedPercent??t.usedPercent}}var ov=e=>e&&typeof e==`object`&&!Array.isArray(e)?e:null,sv=e=>typeof e==`string`?e.trim()||null:typeof e==`number`&&Number.isFinite(e)?e.toString():null,cv=e=>{if(typeof e==`number`&&Number.isFinite(e))return e;if(typeof e==`string`){let t=e.trim();if(!t)return null;let n=Number(t);return Number.isFinite(n)?n:null}return null},lee=e=>{let t=ov(e);if(!t||sv(t.reset_type??t.resetType)!==`codex_rate_limits`||sv(t.status)!==`available`)return null;let n=sv(t.expires_at??t.expiresAt);return n?{id:sv(t.id)??``,status:sv(t.status)??``,grantedAt:sv(t.granted_at??t.grantedAt)??``,expiresAt:n}:null},lv=e=>{let t=e;if(typeof e==`string`){let n=e.trim();if(!n)return{availableCount:null,applicableAvailableCount:null,credits:[],invalidPayload:!0};try{t=JSON.parse(n)}catch{return{availableCount:null,applicableAvailableCount:null,credits:[],invalidPayload:!0}}}let n=ov(t);if(!n)return{availableCount:null,applicableAvailableCount:null,credits:[],invalidPayload:!0};let r=`credits`in n||`available_count`in n||`availableCount`in n||`applicable_available_count`in n||`applicableAvailableCount`in n,i=Array.isArray(n.credits)?n.credits.map(e=>lee(e)).filter(e=>!!e):[];return{availableCount:cv(n.available_count??n.availableCount),applicableAvailableCount:cv(n.applicable_available_count??n.applicableAvailableCount),credits:i,invalidPayload:!r}},uee=`paid`,dee=[`metadata`,`attributes`,`oauth`,`raw`,`credential`,`auth`],uv=e=>e&&typeof e==`object`&&!Array.isArray(e)?e:null,dv=e=>typeof e==`string`&&e.trim()||null,fee=e=>{let t=[],n=new Set,r=(e,i)=>{let a=uv(e);!a||n.has(a)||i>2||(n.add(a),t.push(a),dee.forEach(e=>r(a[e],i+1)))};return r(e,0),t},fv=(e,t)=>{let n=[];return e.forEach(e=>{t.forEach(t=>{let r=dv(e[t]);r&&n.push(r)})}),n},pee=e=>e===!0?!0:typeof e==`number`?e===1:typeof e==`string`&&[`true`,`1`,`yes`,`y`,`on`].includes(e.trim().toLowerCase()),mee=e=>{let t=e.split(`.`)[1];if(!t)return null;try{let e=t.replace(/-/g,`+`).replace(/_/g,`/`),n=e.padEnd(Math.ceil(e.length/4)*4,`=`),r=globalThis.atob(n),i=Uint8Array.from(r,e=>e.charCodeAt(0));return uv(JSON.parse(new TextDecoder().decode(i)))}catch{return null}},hee=e=>{let t=mee(e);if(!t)return null;let n=Object.entries(t).find(([e])=>{let t=e.toLowerCase();return t===`tier`||t.endsWith(`/tier`)||t.endsWith(`:tier`)}),r=Number(n?.[1]);return Number.isFinite(r)?r:null},gee=e=>{let t=fee(e),n=t.some(e=>pee(e.using_api??e.usingApi)),r=fv(t,[`prefix`]).some(e=>e.toLowerCase()===uee);return n&&r?!0:fv(t,[`access_token`,`accessToken`,`id_token`,`idToken`,`token`]).some(e=>(hee(e)??0)>=1)},_ee=e=>{let t=uv(e);return{mode:`paid-health`,source:`api.x.ai-fallback`,planType:`paid`,healthStatus:`chat-ok`,userId:dv(t?.user_id??t?.userId)??void 0,teamId:dv(t?.team_id??t?.teamId)??void 0,periodType:`unknown`,usagePercent:null,productUsage:[],monthlyLimitCents:null,usedCents:null,includedUsedCents:null,onDemandCapCents:null,onDemandUsedCents:null,onDemandUsedPercent:null,usedPercent:null}},vee=JSON.stringify({metadata:{ideType:`ANTIGRAVITY`}}),yee=new Map([[`free-tier`,`free`],[`g1-pro-tier`,`pro`],[`g1-ultra-tier`,`ultra`],[`g1-ultra-lite-tier`,`ultra-lite`]]),bee=e=>typeof e==`object`&&!!e&&!Array.isArray(e),pv=e=>{if(!bee(e))return null;let t=e;return{id:r_(t.id),name:r_(t.name)}},mv=e=>e?yee.get(e)??`unknown`:`unknown`,hv=e=>{let t=l_(e);if(!t)return null;let n=pv(t.currentTier??t.current_tier),r=pv(t.paidTier??t.paid_tier),i=r?.id?r:n;return!i?.id&&!i?.name?null:{plan:mv(i.id),tierId:i.id,tierName:i.name}},gv={async get(e){let t=await qp.request({authIndex:e,method:`POST`,url:Sg,header:{...Eg},data:vee});if(t.statusCode<200||t.statusCode>=300)throw F_(Kp(t),t.statusCode);return hv(t.body??t.bodyText)}},_v=15*1e3,vv={getUsage:()=>W.get(`/observability/usage/api-keys`,{timeout:_v})},yv={async fetchConfigYaml(){let e=(await W.getRaw(`/config.yaml`,{responseType:`text`,headers:{Accept:`application/yaml, text/yaml, text/plain`}})).data;return typeof e==`string`?e:e==null?``:String(e)},async saveConfigYaml(e){await W.put(`/config.yaml`,e,{headers:{"Content-Type":`application/yaml`,Accept:`application/json, text/plain, */*`}})}};function bv(){let e=W.getConnectionRevision();return()=>{if(e!==W.getConnectionRevision())throw new DOMException(`The management connection changed.`,`AbortError`)}}var xee=e=>typeof e==`object`&&!!e&&`status`in e&&e.status===404&&`apiCode`in e&&e.apiCode===`not_found`;async function xv(e,t){try{return await W.get(e)}catch(e){if(xee(e))return t;throw e}}var Sv=`/config/access/api-keys`,Cv=(e,t)=>{if(!Number.isInteger(t)||t<0||t>=e.length)throw RangeError(`API key index out of range`)},wv={async list(){let e=await xv(Sv,[]);return Array.isArray(e)?e.map(e=>String(e)):[]},replace:e=>W.put(Sv,e),async update(e,t){let n=bv(),r=await wv.list();return n(),Cv(r,e),r[e]=t,wv.replace(r)},async delete(e){let t=bv(),n=await wv.list();return t(),Cv(n,e),n.splice(e,1),wv.replace(n)}},Tv=e=>e&&Object.keys(e).length?e:void 0,Ev=(e,t=!1)=>Array.isArray(e)?e.map(e=>{if(!e?.name)return null;let n={name:e.name,...xp(e,t)};return e.alias&&(n.alias=e.alias),e.priority!==void 0&&(n.priority=e.priority),e.testModel&&(n[`test-model`]=e.testModel),t&&e.image&&(n.image=!0),n}).filter(Boolean):void 0,Dv=e=>{let t={"api-key":e.apiKey};return e.proxyUrl&&(t[`proxy-url`]=e.proxyUrl),e.weight!==void 0&&(t.weight=e.weight),t},Ov=(e,t=!0)=>{let n={};return e.requestRetry!==void 0&&(n[`request-retry`]=e.requestRetry),t&&e.requestScopedErrors!==void 0&&(n[`request-scoped-errors`]=e.requestScopedErrors.map(e=>({...e.status===void 0?{}:{status:e.status},...e.match===void 0?{}:{match:e.match},...e.matchRegex===void 0?{}:{"match-regexr":e.matchRegex},...e.action===void 0?{}:{action:e.action}}))),n},kv=(e,t,n,r)=>{if(n.inheritFields)for(let i of[`disable-cooling`,`request-retry`,`request-scoped-errors`])n.inheritFields.includes(i)?t[i]===null?e[i]=null:delete e[i]:r[i]!==void 0&&t[i]==null&&(e[i]=r[i])},Av=(e,t)=>{let n={"api-key":e.apiKey,...Ov(e)};e.priority!==void 0&&(n.priority=e.priority),e.weight!==void 0&&(n.weight=e.weight),e.prefix?.trim()&&(n.prefix=e.prefix.trim()),e.baseUrl&&(n[`base-url`]=e.baseUrl),e.websockets!==void 0&&(n.websockets=e.websockets),t===`codex`&&(e.alphaSearch!==void 0&&(n[`alpha-search`]=e.alphaSearch),e.disableCodexCloaking!==void 0&&(n[`disable-codex-cloaking`]=e.disableCodexCloaking)),t===`claude`&&e.rebuildMidSystemMessage!==void 0&&(n[`rebuild-mid-system-message`]=e.rebuildMidSystemMessage),e.proxyUrl&&(n[`proxy-url`]=e.proxyUrl),e.disableCooling!==void 0&&(n[`disable-cooling`]=e.disableCooling);let r=Tv(e.headers);r&&(n.headers=r);let i=Ev(e.models);if(i&&i.length&&(n.models=i),e.excludedModels&&e.excludedModels.length&&(n[`excluded-models`]=e.excludedModels),e.cloak){let t={},r=e.cloak.mode?.trim();r&&(t.mode=r),e.cloak.strictMode!==void 0&&(t[`strict-mode`]=e.cloak.strictMode),e.cloak.sensitiveWords&&e.cloak.sensitiveWords.length&&(t[`sensitive-words`]=e.cloak.sensitiveWords),e.cloak.cacheUserId&&(t[`cache-user-id`]=!0),Object.keys(t).length&&(n.cloak=t)}return e.fingerprintProfile?.trim()&&(n[`fingerprint-profile`]=e.fingerprintProfile.trim()),n},jv=e=>Array.isArray(e)?e.map(e=>{let t=typeof e?.name==`string`?e.name.trim():``,n=typeof e?.alias==`string`?e.alias.trim():``;return!t||!n?null:{name:t,alias:n,...xp(e,!1,!0)}}).filter(Boolean):void 0,Mv=e=>{let t={"api-key":e.apiKey,...Ov(e,!1)};e.disableCooling!==void 0&&(t[`disable-cooling`]=e.disableCooling),e.priority!==void 0&&(t.priority=e.priority),e.weight!==void 0&&(t.weight=e.weight),e.prefix?.trim()&&(t.prefix=e.prefix.trim()),e.baseUrl&&(t[`base-url`]=e.baseUrl),e.proxyUrl&&(t[`proxy-url`]=e.proxyUrl);let n=Tv(e.headers);n&&(t.headers=n);let r=jv(e.models);return r&&r.length&&(t.models=r),e.excludedModels&&e.excludedModels.length&&(t[`excluded-models`]=e.excludedModels),t},Nv=e=>{let t={"api-key":e.apiKey,...Ov(e)};e.priority!==void 0&&(t.priority=e.priority),e.weight!==void 0&&(t.weight=e.weight),e.prefix?.trim()&&(t.prefix=e.prefix.trim()),e.baseUrl&&(t[`base-url`]=e.baseUrl),e.proxyUrl&&(t[`proxy-url`]=e.proxyUrl),e.disableCooling!==void 0&&(t[`disable-cooling`]=e.disableCooling);let n=Tv(e.headers);n&&(t.headers=n);let r=Ev(e.models);return r&&r.length&&(t.models=r),e.excludedModels&&e.excludedModels.length&&(t[`excluded-models`]=e.excludedModels),t},See=e=>{let t={name:e.name,"base-url":e.baseUrl,...Ov(e),keys:Array.isArray(e.apiKeyEntries)?e.apiKeyEntries.map(e=>Dv(e)):[]};e.prefix?.trim()&&(t.prefix=e.prefix.trim()),e.disabled!==void 0&&(t.disabled=e.disabled),e.supportPromptCacheKey!==void 0&&(t[`support-prompt-cache-key`]=e.supportPromptCacheKey);let n=Tv(e.headers);n&&(t.headers=n);let r=Ev(e.models,!0);return r&&r.length&&(t.models=r),e.priority!==void 0&&(t.priority=e.priority),e.testModel&&(t[`test-model`]=e.testModel),e.disableCooling!==void 0&&(t[`disable-cooling`]=e.disableCooling),t},Pv=(e,t)=>{if(e===t)return!0;if(Array.isArray(e)&&Array.isArray(t))return e.length===t.length&&e.every((e,n)=>Pv(e,t[n]));if(Dc(e)&&Dc(t)){let n=Object.keys(e).filter(t=>e[t]!==void 0);return n.length===Object.keys(t).filter(e=>t[e]!==void 0).length&&n.every(n=>Pv(e[n],t[n]))}return!1},Fv=()=>Error(`Provider configuration changed or is ambiguous; refresh and try again.`),Cee=(e,t)=>{if(!Dc(e)||!Dc(e[`api-keys`]))return[];let n=e[`api-keys`][t];if(n===void 0)return[];if(!Array.isArray(n)||!n.every(e=>Dc(e)&&Array.isArray(e.keys)))throw Fv();return n},Iv=async e=>{let t=bv(),n=Im.getState(),r=await W.get(`/config`);t();let i=Im.getState();if(n.apiBase!==i.apiBase||n.managementKey!==i.managementKey||n.isAuthenticated!==i.isAuthenticated)throw Fv();return Cee(r,e)},Lv=(e,t)=>W.put(`/config/api-keys/${e}`,t),Rv=(e,t)=>{if(t.groups&&Pv(e,t.groups)&&Pv(e[t.groupIndex],t.group))return t.groupIndex;let n=e.flatMap((e,n)=>{if(t.keyIndex===void 0)return Pv(e,t.group)?[n]:[];let{keys:r,...i}=t.group,{keys:a,...o}=e;return!Pv(o,i)||!Array.isArray(r)||!Array.isArray(a)?[]:a.some(e=>Pv(e,r[t.keyIndex]))?[n]:[]});if(n.length!==1)throw Fv();return n[0]},zv=e=>e===`vertex`?Mv:e===`gemini`||e===`interactions`?Nv:t=>Av(t,e),Bv=e=>[`models`,`excluded-models`,`request-scoped-errors`].includes(e)?[]:e===`request-retry`?-1:[`headers`,`cloak`].includes(e)?{}:[`disable-cooling`,`websockets`,`disabled`].includes(e)?!1:[`priority`,`weight`].includes(e)?0:``,Vv=(e,t,n,r)=>{let i={...e};for(let a of new Set([...Object.keys(t),...Object.keys(n)]))if(!Pv(t[a],n[a])&&!(a===`websockets`&&t[a]===void 0&&n[a]===!1))if(n[a]!==void 0){let o=e[a]??r?.[a];if(Dc(o)&&Dc(t[a])&&Dc(n[a]))i[a]=Vv(o,t[a],n[a]);else if(Array.isArray(o)&&Array.isArray(t[a])&&Array.isArray(n[a])){let e=o,r=t[a],s=new Set;i[a]=n[a].map(t=>{if(!Dc(t))return t;let n=t.name??t[`api-key`],i=r.findIndex((e,t)=>!s.has(t)&&Dc(e)&&(e.name??e[`api-key`])===n);return i<0||!Dc(e[i])||!Dc(r[i])?t:(s.add(i),Vv(e[i],r[i],t))})}else i[a]=n[a]}else r?.[a]!==void 0&&r[a]!==null?i[a]=Bv(a):delete i[a];return i},Hv=(e,t,n,r,i,a,o)=>{if(!Array.isArray(r)||!Array.isArray(t))return;let s=Pv(i?.map(e=>e.sourceIndex),a?.map(e=>e.sourceIndex));if(Pv(n,r)&&s)return;let c=new Set,l=new Set(a?.flatMap(e=>e.sourceIndex??[])??[]);e.models=(a??[]).flatMap(e=>{let n=o([e]);if(!Array.isArray(n)||!Dc(n[0]))return[];let r=n[0];if(e.sourceIndex===null)return[r];let a;if(e.sourceIndex!==void 0){if(a=i?.find(t=>t.sourceIndex===e.sourceIndex),!a||c.has(e.sourceIndex))throw Fv()}else{let t=(i??[]).filter(t=>typeof t.sourceIndex==`number`&&!c.has(t.sourceIndex)&&!l.has(t.sourceIndex)&&t.name===e.name),n=t.filter(t=>t.alias===e.alias);a=n.length===1?n[0]:t.length===1?t[0]:void 0}let s=a?.sourceIndex;if(!a||typeof s!=`number`)return[r];if(!Dc(t[s]))throw Fv();c.add(s);let u=o([a]);if(!Array.isArray(u)||!Dc(u[0]))throw Fv();return[Vv(t[s],u[0],r)]})},Uv=(e,t,n)=>{let r=Np(e).filter(e=>e.apiKey===t&&(e.baseUrl??``)===(n??``));if(r.length!==1||!r[0].source)throw Fv();return r[0].source},Wv=async(e,t)=>{let n=await Iv(e),r=zv(e)(t),i=r[`base-url`];delete r[`base-url`];let a=new Set(n.map(e=>e.name)),o=n.length+1;for(;a.has(`${e}-${o}`);)o++;await Lv(e,[...n,{name:`${e}-${o}`,...i?{"base-url":i}:{},keys:[r]}])},Gv=async(e,t,n,r)=>{let i=await Iv(e),a=r.source??Uv(i,t,n),o=Rv(i,a),s=i[o],c=[...s.keys],l=a.group.keys;if(a.keyIndex===void 0||!Array.isArray(l))throw Fv();let u=Pv(s,a.group)?[a.keyIndex]:c.flatMap((e,t)=>Pv(e,l[a.keyIndex])?[t]:[]);if(u.length!==1)throw Fv();let d=u[0],f=Np([s]).find(e=>e.source?.keyIndex===d);if(!f)throw Fv();let p=zv(e),m=p(f),h=p(r),g={...s};Pv(m[`base-url`],h[`base-url`])||(h[`base-url`]===void 0?delete g[`base-url`]:g[`base-url`]=h[`base-url`]),delete m[`base-url`],delete h[`base-url`];let _=c[d].models??s.models,v=c[d];c[d]=Vv(v,m,h,s),kv(c[d],v,r,h),Hv(c[d],_,m.models,h.models,f.models,r.models,e===`vertex`?jv:Ev),delete c[d][`auth-index`],i[o]={...g,keys:c},await Lv(e,i)},Kv=async(e,t,n,r)=>{let i=await Iv(e),a=r??Uv(i,t,n),o=Rv(i,a),s=a.group.keys;if(a.keyIndex===void 0||!Array.isArray(s))throw Fv();let c=i[o].keys,l=Pv(i[o],a.group)?[a.keyIndex]:c.flatMap((e,t)=>Pv(e,s[a.keyIndex])?[t]:[]);if(l.length!==1)throw Fv();i[o]={...i[o],keys:c.filter((e,t)=>t!==l[0])},await Lv(e,i)},qv=See,Jv=(e,t)=>{if(!t)throw Fv();return Rv(e,t)},Yv={createGeminiKey:e=>Wv(`gemini`,e),updateGeminiKey:(e,t,n)=>Gv(`gemini`,e,t,n),deleteGeminiKey:(e,t,n)=>Kv(`gemini`,e,t,n),createInteractionsKey:e=>Wv(`interactions`,e),updateInteractionsKey:(e,t,n)=>Gv(`interactions`,e,t,n),deleteInteractionsKey:(e,t,n)=>Kv(`interactions`,e,t,n),createCodexConfig:e=>Wv(`codex`,e),updateCodexConfig:(e,t,n)=>Gv(`codex`,e,t,n),deleteCodexConfig:(e,t,n)=>Kv(`codex`,e,t,n),createMetaConfig:e=>Wv(`meta`,e),updateMetaConfig:(e,t,n)=>Gv(`meta`,e,t,n),deleteMetaConfig:(e,t,n)=>Kv(`meta`,e,t,n),createXAIConfig:e=>Wv(`xai`,e),updateXAIConfig:(e,t,n)=>Gv(`xai`,e,t,n),deleteXAIConfig:(e,t,n)=>Kv(`xai`,e,t,n),createClaudeConfig:e=>Wv(`claude`,e),updateClaudeConfig:(e,t,n)=>Gv(`claude`,e,t,n),deleteClaudeConfig:(e,t,n)=>Kv(`claude`,e,t,n),createVertexConfig:e=>Wv(`vertex`,e),updateVertexConfig:(e,t,n)=>Gv(`vertex`,e,t,n),deleteVertexConfig:(e,t,n)=>Kv(`vertex`,e,t,n),async getMetaConfigs(){return Np(await Iv(`meta`))},async getVertexConfigs(){return Np(await Iv(`vertex`))},async getOpenAIProviders(){return Np(await Iv(`openai-compatibility`),!0)},async createOpenAIProvider(e){await Lv(`openai-compatibility`,[...await Iv(`openai-compatibility`),qv(e)])},async updateOpenAIProvider(e,t,n){let r=await Iv(`openai-compatibility`),i=Jv(r,n.source),a=Np([r[i]],!0)[0],o=qv(a),s=qv(n),c=Vv(r[i],o,s);if(kv(c,r[i],n,s),Hv(c,r[i].models,o.models,s.models,a.models,n.models,e=>Ev(e,!0)),!Pv(o.keys,s.keys)){let e=r[i].keys,t=new Set;c.keys=n.apiKeyEntries.map(n=>{let r=n.sourceIndex;if(r===void 0)return Dv(n);if(t.has(r)||!Dc(e[r]))throw Fv();t.add(r);let i=Op(e[r]);if(!i)throw Fv();let a=Vv(e[r],Dv(i),Dv(n));return delete a[`auth-index`],a})}r[i]=c,await Lv(`openai-compatibility`,r)},async updateOpenAIProviderDisabled(e,t,n){let r=await Iv(`openai-compatibility`),i=Jv(r,n);r[i]={...r[i],disabled:t},await Lv(`openai-compatibility`,r)},async deleteOpenAIProvider(e,t){let n=await Iv(`openai-compatibility`),r=Jv(n,t);await Lv(`openai-compatibility`,n.filter((e,t)=>t!==r))}},Xv={"anti-gravity":`antigravity`,grok:`xai`,muse:`meta`,"x-ai":`xai`,"x.ai":`xai`},Zv=/^[a-z0-9-]+$/,Qv=e=>{let t=e.trim().toLowerCase().replace(/_/g,`-`);return Xv[t]??t},$v=e=>{let t=e.trim().toLowerCase();return t===`muse`?`meta`:t},ey=e=>Zv.test(e);function ty(e){if(typeof e!=`string`||!e.trim())return;let t=lg(e);return Number.isFinite(t)?new Date(t).toISOString():void 0}function ny(e){if(!e||typeof e!=`object`)return null;let t=e,n=t.scope;if(n!==`model`&&n!==`credential`)return null;let r=typeof t.model_key==`string`?t.model_key.trim():``;if(n===`model`&&!r)return null;let i=ty(t.retry_at),a=t.remaining_seconds;if(!i||typeof a!=`number`||!Number.isSafeInteger(a)||a<=0||a>(2**53-1)/1e3)return null;let o=typeof t.reason==`string`?t.reason.trim():``,s=t.backoff_level,c=t.http_status;return{scope:n,...n===`model`?{modelKey:r}:{},reason:o||`unknown`,retryAt:i,remainingSeconds:a,...typeof s==`number`&&Number.isSafeInteger(s)&&s>=0?{backoffLevel:s}:{},...typeof c==`number`&&Number.isInteger(c)&&c>=400&&c<=599?{httpStatus:c}:{}}}function ry(e,t,n){if(e===void 0)return;let r={observedAt:t,receivedAtMs:n};if(!Array.isArray(e))return{...r,records:null};let i=e.map(ny);return i.some(e=>e===null)?{...r,records:null}:{...r,records:i}}var iy=e=>{let t=new Set,n=[];return e.forEach(e=>{let r=String(e??``).trim();!r||t.has(r)||(t.add(r),n.push(r))}),n},ay=e=>Array.isArray(e)?iy(e.map(e=>String(e??``))):[],oy=e=>Array.isArray(e)?e.reduce((e,t)=>{if(!t||typeof t!=`object`)return e;let n=t,r=String(n.name??``).trim(),i=typeof n.error==`string`?n.error.trim():typeof n.message==`string`?n.message.trim():``;return!r&&!i||e.push({name:r,error:i||`Unknown error`}),e},[]):[],sy=(e,t)=>{let n=oy(e?.failed),r=ay(e?.files),i=e?.uploaded===void 0&&n.length===0;return{status:e?.status??(n.length>0?`partial`:`ok`),uploaded:e?.uploaded??(i?t.length:0),files:r.length?r:i?[...t]:[],failed:n}},cy=(e,t)=>{let n=oy(e?.failed),r=ay(e?.files),i=e?.deleted===void 0&&n.length===0;return{status:e?.status??(n.length>0?`partial`:`ok`),deleted:e?.deleted??(i?t.length:0),files:r.length?r:i?[...t]:[],failed:n}},ly=(e,t)=>{let n=e[t];return typeof n==`string`?n.trim():``},uy=e=>{let t=[e.modtime,e.updated_at,e.last_refresh];for(let e of t){if(typeof e==`number`&&Number.isFinite(e))return e<0xe8d4a51000?e*1e3:e;if(typeof e==`string`){let t=e.trim();if(!t)continue;let n=Number(t);if(Number.isFinite(n))return n<0xe8d4a51000?n*1e3:n;let r=lg(t);if(!Number.isNaN(r))return r}}return 0},dy=e=>e.runtime_only===!0,fy=e=>e==null?!1:typeof e==`string`?e.trim().length>0:!Array.isArray(e)||e.length>0,py=e=>Object.values(e).reduce((e,t)=>e+ +!!fy(t),0),my=e=>{let t=0;return ly(e,`source`).toLowerCase()===`file`&&(t+=32),ly(e,`path`)&&(t+=16),dy(e)||(t+=8),e.disabled!==!0&&(t+=4),uy(e)>0&&(t+=2),t},hy=(e,t)=>{let n=my(t)-my(e);if(n!==0)return n;let r=uy(t)-uy(e);if(r!==0)return r;let i=py(t)-py(e);return i===0?0:i},gy=e=>{let[t,...n]=[...e].sort(hy),r={...t};return n.forEach(e=>{Object.entries(e).forEach(([e,t])=>{e===`cooldowns`&&Object.prototype.hasOwnProperty.call(r,e)||!fy(r[e])&&fy(t)&&(r[e]=t)})}),r},_y=/^[+-]?\d+$/,vy=e=>{if(typeof e==`number`)return Number.isSafeInteger(e)?e:void 0;if(typeof e!=`string`)return;let t=e.trim();if(!t||!_y.test(t))return;let n=Number.parseInt(t,10);return Number.isSafeInteger(n)?n:void 0},yy=e=>{let t=e.runtime_only??e.runtimeOnly;return typeof t==`boolean`?t:typeof t==`string`&&t.trim().toLowerCase()===`true`},by=(e,t,n)=>{let r=typeof e.statusMessage==`string`?e.statusMessage.trim():``,i=ly(e,`status_message`)||r,a=ly(e,`note`),o=ly(e,`email`),s=ly(e,`project_id`),c=uy(e),l=vy(e.priority),u=vy(e.weight);return{...e,cooldownSnapshot:ry(e.cooldowns,t,n),runtimeOnly:yy(e),authIndex:hm(e.auth_index??e.authIndex),recentRequests:gm(e.recent_requests??e.recentRequests),successCount:pm(e.success),failureCount:pm(e.failed),...i?{statusMessage:i}:{},...c>0?{modified:c}:{},priority:l,weight:u,...a?{note:a}:{},...o?{email:o}:{},...s?{projectId:s}:{}}},xy=(e,t=Date.now())=>{let n=ty(e?.observed_at),r=Array.isArray(e?.files)?e.files:[],i=new Map;r.forEach(e=>{let t=ly(e,`name`),n=t?Om({...e,name:t,authIndex:hm(e.auth_index??e.authIndex)}):JSON.stringify(e),r=i.get(n);if(r){r.push(e);return}i.set(n,[e])});let a=Array.from(i.values()).map(e=>by(gy(e),n,t));return a.sort((e,t)=>{let n=ly(e,`name`).localeCompare(ly(t,`name`),void 0,{sensitivity:`accent`});return n===0?String(e.authIndex??``).localeCompare(String(t.authIndex??``),void 0,{sensitivity:`accent`}):n}),{...e,observedAt:n,files:a,total:a.length}},Sy=e=>{if(!e||typeof e!=`object`)return{};let t=e,n={};return Object.entries(t).forEach(([e,t])=>{let r=Qv(String(e??``));if(!r)return;let i=Array.isArray(t)?t:typeof t==`string`?t.split(/[\n,]+/):[],a=n[r]??[],o=new Set(a.map(e=>e.toLowerCase()));i.forEach(e=>{let t=String(e??``).trim();if(!t)return;let n=t.toLowerCase();o.has(n)||(o.add(n),a.push(t))}),n[r]=a}),n},Cy=e=>{if(!e||typeof e!=`object`)return{};let t=e,n={};return Object.entries(t).forEach(([e,t])=>{let r=Qv(String(e??``));if(!r||!Array.isArray(t))return;let i=n[r]??[],a=new Set(i.map(e=>e.alias.toLowerCase()));t.map(e=>{if(!e||typeof e!=`object`)return null;let t=e,n=String(t.name??t.id??t.model??``).trim(),r=String(t.alias??``).trim();if(!n||!r)return null;let i=t.fork===!0,a=t[`force-mapping`]??t.forceMapping,o={name:n,alias:r};return i&&(o.fork=!0),typeof a==`boolean`&&(o.forceMapping=a),o}).filter(Boolean).forEach(e=>{let t=e,n=t.alias.toLowerCase();a.has(n)||(a.add(n),i.push(t))}),i.length&&(n[r]=i)}),n},wy=e=>e.map(e=>{let t={name:e.name,alias:e.alias};return e.fork&&(t.fork=!0),typeof e.forceMapping==`boolean`&&(t[`force-mapping`]=e.forceMapping),t}),Ty=`/config/oauth/model-alias`,Ey=`/config/oauth/excluded-models`,Dy=new Map;function Oy(e,t){let n=bv(),r=`${W.getConnectionRevision()}:${e}`,i=(Dy.get(r)??Promise.resolve()).then(async()=>{n(),await t()}),a=i.then(()=>void 0,()=>void 0);return Dy.set(r,a),a.then(()=>{Dy.get(r)===a&&Dy.delete(r)}),i}async function ky(e,t,n){let r=Qv(t);if(!r)throw Error(`Invalid OAuth provider`);return Oy(e,async()=>{let t=bv(),i=await xv(e,{});if(t(),i!=null&&!Dc(i))throw Error(`Invalid OAuth configuration map`);let a=Object.fromEntries(Object.entries(i??{}).filter(([e])=>Qv(e)!==r));n!==void 0&&Object.defineProperty(a,r,{value:n,enumerable:!0,configurable:!0,writable:!0}),await W.put(e,a)})}var Ay=e=>{if(!Dc(e)||e.ok!==!0||!Array.isArray(e.results))throw Error(`Invalid credential refresh response`);return e.results.map(e=>{if(!Dc(e)||typeof e.id!=`string`||!e.id.trim()||typeof e.success!=`boolean`)throw Error(`Invalid credential refresh result`);return{id:e.id,success:e.success,...!e.success&&typeof e.error==`string`?{error:e.error}:{}}})},jy={list:async e=>xy(await W.get(`/credentials`,e?{params:{name:e.name,auth_index:e.authIndex}}:void 0)),setStatus:(e,t,n)=>W.patch(`/credentials/status`,{name:e,disabled:t,...n?{auth_index:n}:{}}),patchFields:(e,t)=>W.patch(`/credentials/fields`,{name:e,...t}),requestManualRefresh:async(e,t)=>{await W.post(`/credentials/refresh`,{name:e,...t?{auth_index:t}:{}})},requestAllManualRefresh:async()=>Ay(await W.post(`/credentials/refresh`,{all:!0},{timeout:3e5})),resetCooldown:e=>W.post(`/routing/cooldown/reset`,{auth_index:e}),uploadFiles:async e=>{let t=e.map(e=>e.name);if(t.length===0)return{status:`ok`,uploaded:0,files:[],failed:[]};let n=new FormData;return e.forEach(e=>{n.append(`file`,e,e.name)}),sy(await W.postForm(`/credentials`,n),t)},deleteFiles:async e=>{let t=iy(e);return t.length===0?{status:`ok`,deleted:0,files:[],failed:[]}:cy(await W.delete(`/credentials`,{data:{names:t}}),t)},deleteFile:e=>jy.deleteFiles([e]),deleteAll:()=>W.delete(`/credentials`,{params:{all:!0}}),download:async e=>(await W.getRaw(`/credentials/download?name=${encodeURIComponent(e)}`,{responseType:`blob`})).data,downloadText:async e=>(await jy.download(e)).text(),async getOauthExcludedModels(){return Sy(await xv(Ey,{}))},saveOauthExcludedModels:(e,t)=>ky(Ey,e,t),deleteOauthExcludedEntry:e=>ky(Ey,e),replaceOauthExcludedModels:e=>Oy(Ey,async()=>{await W.put(Ey,Sy(e))}),async getOauthModelAlias(){return Cy(await xv(Ty,{}))},saveOauthModelAlias:async(e,t)=>{let n=Qv(String(e??``));await ky(Ty,n,wy(Cy({[n]:t})[n]??[]))},deleteOauthModelAlias:e=>ky(Ty,e),async getModelsForAuthFile(e){let t=await W.get(`/credentials/models?name=${encodeURIComponent(e)}`),n=t.models??t.models;return Array.isArray(n)?n:[]},async getModelDefinitions(e){let t=Qv(String(e??``));if(!t)return[];let n=await W.get(`/routing/model-definitions/${encodeURIComponent(t)}`),r=n.models??n.models;return Array.isArray(r)?r:[]}},My=new Set([`codex`,`claude`,`antigravity`,`xai`,`devin`]),Ny=e=>{let t=$v(e);if(!ey(t))throw Error(`Invalid OAuth provider`);return t===`anthropic`?`claude`:t},Py={startAuth:(e,t)=>{let n=Ny(e),r={provider:n};return My.has(n)&&(r.is_webui=!0),W.get(`/oauth/auth-url`,{params:r,...t?{signal:t}:{}})},getAuthStatus:(e,t)=>W.get(`/oauth/status`,{params:{state:e},...t?{signal:t}:{}}),cancelSession:(e,t)=>W.delete(`/oauth/session`,{params:{state:e},...t?{signal:t}:{}}),submitCallback:(e,t,n)=>{let r=Ny(e);return W.post(`/oauth/callback`,{provider:r,redirect_url:t},n?{signal:n}:void 0)}},Fy=e=>typeof e==`string`?e.trim():``,Iy=e=>e===!0||typeof e==`string`&&e.trim().toLowerCase()===`true`,Ly=e=>{if(typeof e==`number`&&Number.isFinite(e))return e;let t=Fy(e);if(!t)return 0;let n=Number(t);if(Number.isFinite(n))return n;let r=Date.parse(t);return Number.isFinite(r)?Math.floor(r/1e3):0},Ry=e=>{if(!Dc(e))return{lines:[]};let t=Array.isArray(e.lines)?e.lines.filter(e=>typeof e==`string`):[],n=Ly(e[`latest-timestamp`]);return{lines:t,latestAfter:n>0?n:void 0,nextCursor:typeof e[`next-cursor`]==`string`?e[`next-cursor`]:void 0,cursorReset:Iy(e[`cursor-reset`])}},zy=e=>!Dc(e)||!Array.isArray(e.files)?{files:[]}:{files:e.files.flatMap(e=>!Dc(e)||typeof e.name!=`string`||!e.name.trim()?[]:[{name:e.name,size:typeof e.size==`number`&&Number.isFinite(e.size)&&e.size>=0?e.size:void 0,modified:Ly(e.modified)||void 0}])},By=async e=>{if(e instanceof Blob)return e.text();if(e instanceof ArrayBuffer||ArrayBuffer.isView(e))return new TextDecoder().decode(e);if(typeof e==`string`)return e;if(e==null)return``;try{return JSON.stringify(e,null,2)??String(e)}catch{return String(e)}},Vy=async(e,t)=>{try{return await W.getRaw(e,{...t,responseType:`blob`,timeout:zc})}catch(e){if(e instanceof Error){let t=e,n=t.data instanceof Blob?t.data:t.details;if(n instanceof Blob)try{let e=await By(n),r=ip(JSON.parse(e),t.message);t.message=r.message,r.apiCode!==void 0&&(t.apiCode=r.apiCode)}catch{}}throw e}},Hy={async fetchLogs(e={},t={}){return Ry(await W.get(`/observability/logs`,{...t,params:e,timeout:zc}))},clearLogs:(e={})=>W.delete(`/observability/logs`,e),async fetchErrorLogs(e={}){return zy(await W.get(`/observability/logs/errors`,{...e,timeout:zc}))},downloadErrorLog:(e,t={})=>Vy(`/observability/logs/errors/${encodeURIComponent(e)}`,t),downloadRequestLogById:(e,t={})=>Vy(`/observability/logs/requests/${encodeURIComponent(e)}`,t)},Uy={checkLatest:()=>W.get(`/server/latest-version`)},Wy=e=>Dc(e)?e:{},Gy=e=>{if(typeof e==`number`)return Number.isFinite(e)?e:null;if(typeof e!=`string`||e.trim()===``)return null;let t=Number(e);return Number.isFinite(t)?t:null},Ky=e=>{let t=Gy(e);return t===null?null:Math.min(100,Math.max(0,t))},qy=e=>{let t=Gy(e);return t!==null&&t>0?t:void 0},Jy=(e,t,n)=>{let r=Wy(t),i=qy(r.resets_at),a=n?qy(r.window_duration_mins):void 0;return{id:e,usedPercent:Ky(r.used_percent),...i===void 0?{}:{resetAt:i},...a===void 0?{}:{durationMinutes:a}}};function Yy(e){if(typeof e==`string`)try{e=JSON.parse(e)}catch{return null}if(!Dc(e))return null;let t=e,n=Wy(t.subs_usage),r=typeof t.subs_tier_name==`string`?t.subs_tier_name.trim():``,i=typeof n.tier==`string`?n.tier.trim():``,a=r||i;return{...a?{planName:a}:{},...typeof t.is_subs_active==`boolean`?{isSubscriptionActive:t.is_subs_active}:{},windows:[Jy(`window`,n.window,!0),Jy(`weekly`,n.weekly,!1)]}}var Xy=e=>e==null?``:String(e),Zy=e=>e===!0,Qy=e=>{let t=$v(Xy(e));return ey(t)?t:void 0},$y=e=>{if(!Dc(e))return null;let t=Xy(e.name).trim();if(!t)return null;let n=Array.isArray(e.enum_values)?e.enum_values.map(e=>Xy(e)).filter(Boolean):[];return{name:t,type:Xy(e.type).trim()||`string`,enumValues:n,description:Xy(e.description).trim()}},eb=e=>Array.isArray(e)?e.map(e=>$y(e)).filter(Boolean):[],tb=e=>{if(!Dc(e))return null;let t=Xy(e.name).trim(),n=Xy(e.version).trim(),r=Xy(e.author).trim(),i=Xy(e.github_repository).trim(),a=Xy(e.logo).trim(),o=eb(e.config_fields);return!t&&!n&&!r&&!i&&!a&&o.length===0?null:{name:t,version:n,author:r,githubRepository:i,logo:a,configFields:o}},nb=e=>{if(!Dc(e))return null;let t=Xy(e.path).trim(),n=Xy(e.menu).trim();return!t&&!n?null:{path:t,menu:n,description:Xy(e.description).trim()}},rb=e=>Array.isArray(e)?e.map(e=>nb(e)).filter(Boolean):[],wee=e=>{if(!Dc(e))return null;let t=Xy(e.id).trim();if(!t)return null;let n=tb(e.metadata),r=eb(e.config_fields),i=Zy(e.supports_oauth),a=Qy(e.oauth_provider);return{id:t,path:Xy(e.path).trim(),configured:Zy(e.configured),registered:Zy(e.registered),enabled:e.enabled!==!1,effectiveEnabled:Zy(e.effective_enabled),supportsOAuth:i,oauthProvider:a,logo:Xy(e.logo||n?.logo).trim(),configFields:r.length>0?r:n?.configFields??[],menus:rb(e.menus),metadata:n}},Tee=e=>{let t=Dc(e)?e:{},n=Array.isArray(t.plugins)?t.plugins.map(e=>wee(e)).filter(Boolean):[];return{pluginsEnabled:Zy(t.plugins_enabled),pluginsDir:Xy(t.plugins_dir).trim()||`plugins`,plugins:n}},Eee=e=>Dc(e)?{...e}:{},Dee=e=>{let t=Dc(e)?e:{};return{status:Xy(t.status).trim(),id:Xy(t.id).trim(),path:Xy(t.path).trim(),fileDeleted:Zy(t.file_deleted),configuredRemoved:Zy(t.configured_removed),restartRequired:Zy(t.restart_required)}},Oee=e=>{if(!Dc(e))return null;let t=Xy(e.id).trim();if(!t)return null;let n=Xy(e.source_id).trim(),r=Xy(e.store_id).trim()||(n?`${n}/${t}`:t),i=Array.isArray(e.tags)?e.tags.map(e=>Xy(e).trim()).filter(Boolean):[],a=Array.isArray(e.platforms)?e.platforms.map(e=>{if(!Dc(e))return null;let t=Xy(e.goos).trim(),n=Xy(e.goarch).trim();return t||n?{goos:t,goarch:n}:null}).filter(Boolean):[];return{storeId:r,sourceId:n,sourceName:Xy(e.source_name).trim(),sourceUrl:Xy(e.source_url).trim(),id:t,name:Xy(e.name).trim(),description:Xy(e.description).trim(),author:Xy(e.author).trim(),version:Xy(e.version).trim(),repository:Xy(e.repository).trim(),installType:Xy(e.install_type).trim(),authRequired:Zy(e.auth_required),authConfigured:Zy(e.auth_configured),platforms:a,logo:Xy(e.logo).trim(),homepage:Xy(e.homepage).trim(),license:Xy(e.license).trim(),tags:i,installed:Zy(e.installed),installedVersion:Xy(e.installed_version).trim(),path:Xy(e.path).trim(),configured:Zy(e.configured),registered:Zy(e.registered),enabled:Zy(e.enabled),effectiveEnabled:Zy(e.effective_enabled),updateAvailable:Zy(e.update_available)}},kee=e=>{if(!Dc(e))return null;let t=Xy(e.source_id).trim(),n=Xy(e.source_url).trim(),r=Xy(e.message).trim();return!t&&!n&&!r?null:{sourceId:t,sourceName:Xy(e.source_name).trim(),sourceUrl:n,message:r}},Aee=e=>{let t=Dc(e)?e:{},n=Array.isArray(t.plugins)?t.plugins.map(e=>Oee(e)).filter(Boolean):[],r=Array.isArray(t.source_errors)?t.source_errors.map(e=>kee(e)).filter(Boolean):[];return{pluginsEnabled:Zy(t.plugins_enabled),pluginsDir:Xy(t.plugins_dir).trim()||`plugins`,sourceErrors:r,plugins:n}},jee=e=>{let t=Dc(e)?e:{};return{status:Xy(t.status).trim(),sourceId:Xy(t.source_id).trim(),sourceName:Xy(t.source_name).trim(),sourceUrl:Xy(t.source_url).trim(),id:Xy(t.id).trim(),version:Xy(t.version).trim(),installType:Xy(t.install_type).trim(),path:Xy(t.path).trim(),pluginsEnabled:Zy(t.plugins_enabled),restartRequired:Zy(t.restart_required)}},ib={async list(){return Tee(await W.get(`/plugins`))},updateEnabled:(e,t)=>W.put(`/config/plugins/configs/${encodeURIComponent(e)}/enabled`,t),async deletePlugin(e){return Dee(await W.delete(`/plugins/${encodeURIComponent(e)}`))},async getConfig(e){return Eee(await xv(`/config/plugins/configs/${encodeURIComponent(e)}`,{}))},async patchConfig(e,t){let n=bv(),r={...await ib.getConfig(e)};n();for(let[e,n]of Object.entries(t))n===null?delete r[e]:r[e]=n;return W.put(`/config/plugins/configs/${encodeURIComponent(e)}`,r)}},ab={async list(){return Aee(await W.get(`/plugins/store`))},async install(e,t={}){let n=`/plugins/store/${encodeURIComponent(e)}/install`,r=new URLSearchParams,i=t.sourceId?.trim(),a=t.version?.trim();i&&r.set(`source`,i),a&&r.set(`version`,a);let o=r.size>0?`?${r.toString()}`:``;return jee(await W.post(`${n}${o}`,a?{version:a}:void 0))}},Mee={importCredential:(e,t)=>{let n=new FormData;return n.append(`file`,e),t&&n.append(`location`,t),W.postForm(`/oauth/import?provider=vertex`,n)}},ob=e=>{if(!Array.isArray(e))return[];let t=new Set,n=[];return e.forEach(e=>{let r=typeof e==`object`&&e&&!Array.isArray(e)?e:null,i=typeof e==`string`?e:r?r[`api-key`]??r.apiKey??r.key??r.Key:``,a=String(i??``).trim();!a||t.has(a)||(t.add(a),n.push(a))}),n};function sb(){let e=Im(e=>e.apiBase),t=Bp(e=>e.config?.apiKeys),n=(0,y.useRef)([]);return(0,y.useEffect)(()=>{n.current=[]},[e,t]),(0,y.useCallback)(async({force:e=!1}={})=>{if(e&&(n.current=[]),n.current.length)return n.current;let r=ob(t);if(r.length)return n.current=r,r;try{let e=ob(await wv.list());return e.length&&(n.current=e),e}catch{return[]}},[t])}function cb(e,t){let n=(0,y.useRef)(null);(0,y.useEffect)(()=>{n.current=e},[e]),(0,y.useEffect)(()=>{if(t===null)return;let e=setInterval(()=>{n.current?.()},t);return()=>clearInterval(e)},[t])}var lb=24e4,ub=new Map,db=()=>({cachedUsageByProvider:ub,cachedAt:0,inFlightRequest:null}),fb=(()=>{let e=``,t=``,n=db();return{forScope(r,i){return(r!==e||i!==t)&&(e=r,t=i,n=db()),n}}})(),pb=e=>String(e??``).trim().toLowerCase(),mb=e=>{if(!e||typeof e!=`object`||Array.isArray(e))return ub;let t=new Map;return Object.entries(e).forEach(([e,n])=>{let r=pb(e);if(!r||!n||typeof n!=`object`||Array.isArray(n))return;let i=new Map;Object.entries(n).forEach(([e,t])=>{i.set(e,_m(t))}),t.set(r,i)}),t},hb=async e=>{if(!e.inFlightRequest){let t=vv.getUsage().then(t=>{let n=mb(t);return e.cachedUsageByProvider=n,e.cachedAt=Date.now(),n}).finally(()=>{e.inFlightRequest===t&&(e.inFlightRequest=null)});e.inFlightRequest=t}return e.inFlightRequest};function gb(e={}){let t=e.enabled??!0,n=Im(e=>e.apiBase),r=Im(e=>e.managementKey),i=(0,y.useMemo)(()=>fb.forScope(n,r),[n,r]),[a,o]=(0,y.useState)(()=>({cache:i,value:i.cachedUsageByProvider})),[s,c]=(0,y.useState)(()=>({cache:i,value:!1})),l=(0,y.useCallback)(e=>o({cache:i,value:e}),[i]),u=(0,y.useCallback)(e=>c({cache:i,value:e}),[i]),d=(0,y.useCallback)(async(e={})=>{if(!t)return ub;let n=i.cachedAt>0&&Date.now()-i.cachedAt<lb;if(!e.force&&n)return l(i.cachedUsageByProvider),i.cachedUsageByProvider;u(!0);try{let e=await hb(i);return l(e),e}catch{return i.cachedAt>0&&l(i.cachedUsageByProvider),i.cachedUsageByProvider}finally{u(!1)}},[i,t,u,l]),f=(0,y.useCallback)(async()=>d({force:!0}),[d]);(0,y.useEffect)(()=>{if(!t){l(ub);return}d().catch(()=>{})},[t,d,l]),cb(()=>{f().catch(()=>{})},t?lb:null);let p=a.cache===i?a.value:i.cachedUsageByProvider,m=s.cache===i?s.value:i.inFlightRequest!==null;return{usageByProvider:t?p:ub,isLoading:t?m:!1,loadRecentRequests:d,refreshRecentRequests:f}}var _b={buckets:[],totalSuccess:0,totalFailure:0,total:0,successRate:null,peakTotal:0,peakIndex:-1,windowMinutes:0},vb=e=>{let t=e.indexOf(`|`);return t<0?``:e.slice(t+1).trim()},yb=e=>{let t=String(e.type??e.provider??``).trim().toLowerCase();return t&&t!==`empty`?t:`unknown`},bb=e=>{let t=vm(e);if(t.length===0)return _b;let n=0,r=0,i=0,a=-1;t.forEach((e,t)=>{let o=e.success+e.failed;n+=e.success,r+=e.failed,o>i&&(i=o,a=t)});let o=n+r;return{buckets:t,totalSuccess:n,totalFailure:r,total:o,successRate:o>0?n/o*100:null,peakTotal:i,peakIndex:a,windowMinutes:t.length*10}},xb=()=>({credentials:0,success:0,failure:0,bucketGroups:[]}),Sb=e=>({gemini:e.geminiApiKeys?.length??0,interactions:e.interactionsApiKeys?.length??0,codex:e.codexApiKeys?.length??0,meta:e.metaApiKeys?.length??0,xai:e.xaiApiKeys?.length??0,claude:e.claudeApiKeys?.length??0,vertex:e.vertexApiKeys?.length??0,openai:e.openaiCompatibility?.length??0});function Cb(){let e=Im(e=>e.connectionStatus),t=Im(e=>e.apiBase),n=Bp(e=>e.config),r=Bp(e=>e.fetchConfig),i=lm(e=>e.models),a=lm(e=>e.loading),o=lm(e=>e.error),s=lm(e=>e.fetchModels),c=e===`connected`,l=sb(),{usageByProvider:u,refreshRecentRequests:d}=gb({enabled:c}),[f,p]=(0,y.useState)(null),m=(0,y.useCallback)(async()=>{if(c)try{let e=await jy.list();p(e.files)}catch{p(null)}},[c]),h=(0,y.useCallback)(async()=>{if(!(!c||!t))try{let e=await l();await s(t,e[0])}catch{}},[c,t,l,s]);(0,y.useEffect)(()=>{c&&(r().catch(()=>void 0),m(),h())},[c,r,m,h]);let g=(0,y.useCallback)(async()=>{c&&await Promise.allSettled([r(!0),m(),h(),d()])},[c,r,m,h,d]),_=(0,y.useMemo)(()=>n?Sb(n):null,[n]),{traffic:v,providers:b}=(0,y.useMemo)(()=>{let e=new Map,t=[],n=new Set,r=t=>{let n=e.get(t);if(n)return n;let r=xb();return e.set(t,r),r};u.forEach((e,i)=>{let a=r(i);e.forEach((e,r)=>{let i=vb(r);i&&n.add(i),a.credentials+=1,a.success+=e.success,a.failure+=e.failed,e.recentRequests.length>0&&(a.bucketGroups.push(e.recentRequests),t.push(e.recentRequests))})}),(f??[]).forEach(e=>{let i=String(e.account_type??``).trim().toLowerCase(),a=String(e.account??``).trim();if(i===`api_key`&&a&&n.has(a))return;let o=r(yb(e)),s=_m(e);o.credentials+=1,o.success+=s.success,o.failure+=s.failed,s.recentRequests.length>0&&(o.bucketGroups.push(s.recentRequests),t.push(s.recentRequests))});let i=Array.from(e.entries()).map(([e,t])=>{let n=t.success+t.failure;return{id:e,credentials:t.credentials,success:t.success,failure:t.failure,total:n,successRate:n>0?t.success/n*100:null,buckets:vm(t.bucketGroups)}}).sort((e,t)=>t.total-e.total||t.credentials-e.credentials||e.id.localeCompare(t.id));return{traffic:bb(t),providers:i}},[u,f]),x=(0,y.useMemo)(()=>{if(!f)return null;let e=0,t=0,n=new Map;return f.forEach(r=>{r.disabled?e+=1:r.unavailable&&(t+=1);let i=yb(r);n.set(i,(n.get(i)??0)+1)}),{total:f.length,active:f.length-e-t,disabled:e,unavailable:t,byType:Array.from(n.entries()).map(([e,t])=>({type:e,count:t})).sort((e,t)=>t.count-e.count||e.type.localeCompare(t.type))}},[f]);return{connectionStatus:e,connected:c,config:n,counts:(0,y.useMemo)(()=>({managementKeys:n?n.apiKeys?.length??0:null,providerKeys:_?Object.values(_).reduce((e,t)=>e+t,0):null,credentials:f?f.length:null,models:a||o?null:i.length}),[n,_,f,i.length,a,o]),providerKeyCounts:_,traffic:v,providers:b,credentials:x,refresh:g}}function wb(e,t,n){if(e.length===0)return``;if(e.length===1)return`M${e[0].x.toFixed(2)} ${e[0].y.toFixed(2)}`;let r=e=>Math.max(t,Math.min(n,e)),i=`M${e[0].x.toFixed(2)} ${e[0].y.toFixed(2)}`;for(let t=0;t<e.length-1;t+=1){let n=e[Math.max(0,t-1)],a=e[t],o=e[t+1],s=e[Math.min(e.length-1,t+2)],c=a.x+(o.x-n.x)/6,l=r(a.y+(o.y-n.y)/6),u=o.x-(s.x-a.x)/6,d=r(o.y-(s.y-a.y)/6);i+=` C${c.toFixed(2)} ${l.toFixed(2)}, ${u.toFixed(2)} ${d.toFixed(2)}, ${o.x.toFixed(2)} ${o.y.toFixed(2)}`}return i}var Tb={wire:`LiveWire-module__wire___VqROJ`,canvas:`LiveWire-module__canvas___J0D-f`,line:`LiveWire-module__line___d269h`,wireDraw:`LiveWire-module__wireDraw___iIgfV`,area:`LiveWire-module__area___5UlLy`,wireFade:`LiveWire-module__wireFade___vggde`,idleLine:`LiveWire-module__idleLine___nQIzF`,pulse:`LiveWire-module__pulse___eS-2V`,wirePulse:`LiveWire-module__wirePulse___Sazgz`},Eb=100,Db=40,Ob=6;function kb({points:e,ariaLabel:t,className:n}){let r=(0,y.useId)(),i=(0,y.useMemo)(()=>{let t=e.filter(e=>Number.isFinite(e));if(t.length<2)return null;let n=Math.max(...t),r=Db-Ob,i=Eb/(t.length-1),a=t.map((e,t)=>({x:t*i,y:Db-(n>0?e/n:0)*r})),o=wb(a,Ob,Db),s=a[a.length-1];return{line:o,area:`${o} L${Eb} ${Db} L0 ${Db} Z`,isFlat:n<=0,lastYRatio:s.y/Db}},[e]),a=!i||i.isFlat;return(0,V.jsx)(`div`,{className:[Tb.wire,n].filter(Boolean).join(` `),children:a?(0,V.jsx)(`svg`,{className:Tb.canvas,viewBox:`0 0 ${Eb} ${Db}`,preserveAspectRatio:`none`,role:`img`,"aria-label":t,children:(0,V.jsx)(`path`,{className:Tb.idleLine,d:`M0 ${Db-1} L${Eb} ${Db-1}`,pathLength:1,vectorEffect:`non-scaling-stroke`})}):(0,V.jsxs)(V.Fragment,{children:[(0,V.jsxs)(`svg`,{className:Tb.canvas,viewBox:`0 0 ${Eb} ${Db}`,preserveAspectRatio:`none`,role:`img`,"aria-label":t,children:[(0,V.jsx)(`defs`,{children:(0,V.jsxs)(`linearGradient`,{id:r,x1:`0`,y1:`0`,x2:`0`,y2:`1`,children:[(0,V.jsx)(`stop`,{offset:`0%`,stopColor:`var(--wire-color)`,stopOpacity:`0.2`}),(0,V.jsx)(`stop`,{offset:`100%`,stopColor:`var(--wire-color)`,stopOpacity:`0`})]})}),(0,V.jsx)(`path`,{className:Tb.area,d:i.area,fill:`url(#${r})`}),(0,V.jsx)(`path`,{className:Tb.line,d:i.line,pathLength:1,fill:`none`,vectorEffect:`non-scaling-stroke`})]}),(0,V.jsx)(`span`,{className:Tb.pulse,style:{top:`${(i.lastYRatio*100).toFixed(2)}%`},"aria-hidden":`true`})]})})}var Ab={gemini:`Gemini`,"gemini-interactions":`Interactions API`,aistudio:`AI Studio`,codex:`Codex`,claude:`Claude`,devin:`Devin`,meta:`Muse (Meta)`,xai:`xAI`,vertex:`Vertex AI`,openai:`OpenAI Compatible`,"openai-compatibility":`OpenAI Compatible`,qwen:`Qwen`,kimi:`Kimi`,iflow:`iFlow`,antigravity:`Antigravity`};function jb(e,t){return e===`unknown`||!e?t:Ab[e]??e.charAt(0).toUpperCase()+e.slice(1)}function Mb(e){let t=Math.max(0,Math.round(e));return{hours:Math.floor(t/60),minutes:t%60}}function Nb(e){return e===null?`idle`:e>=95?`good`:e>=80?`warning`:`critical`}var Pb=[1,1.5,2,2.5,3,4,5,6,8,10];function Fb(e){if(e<=0)return 1;let t=10**Math.floor(Math.log10(e)),n=e/t;return(Pb.find(e=>n<=e)??10)*t}function Ib(e,t){return e<=0||t<=0?Math.max(1,t):Math.max(1,Math.ceil(Fb(e/t)))*t}var Lb={track:`Meter-module__track___TZ2y-`,fill:`Meter-module__fill___agcj5`},Rb={good:`var(--viz-success, #10b981)`,warning:`var(--amber-color)`,critical:`var(--viz-failure, #c65746)`,idle:`var(--text-quaternary)`};function zb({value:e,tone:t,ariaLabel:n,className:r}){let i=t??Nb(e),a=e===null?0:Math.max(0,Math.min(100,e));return(0,V.jsx)(`div`,{className:[Lb.track,r].filter(Boolean).join(` `),style:{"--meter-fill":Rb[i]},role:`progressbar`,"aria-valuemin":0,"aria-valuemax":100,"aria-valuenow":e===null?void 0:Math.round(a),"aria-label":n,children:(0,V.jsx)(`div`,{className:Lb.fill,style:{width:`${a}%`}})})}var Bb={sparkline:`Sparkline-module__sparkline___74Npe`,empty:`Sparkline-module__empty___-fTgh`},Vb=100,Hb=32,Ub=3;function Wb({points:e,color:t,ariaLabel:n,className:r}){let i=(0,y.useId)(),a=(0,y.useMemo)(()=>{let t=e.filter(e=>Number.isFinite(e));if(t.length===0)return null;let n=Math.max(...t),r=Hb-Ub,i=t.length>1?Vb/(t.length-1):0,a=t.map((e,a)=>({x:t.length>1?a*i:Vb/2,y:Hb-(n>0?e/n:0)*r})),o=wb(a,Ub,Hb),s=a[0];return{line:o,area:`${o} L${a[a.length-1].x.toFixed(2)} ${Hb} L${s.x.toFixed(2)} ${Hb} Z`,isFlat:n<=0}},[e]);if(!a)return(0,V.jsx)(`div`,{className:[Bb.empty,r].filter(Boolean).join(` `),"aria-hidden":`true`});let o=a.isFlat?`var(--text-quaternary)`:t??`var(--primary-color)`;return(0,V.jsxs)(`svg`,{className:[Bb.sparkline,r].filter(Boolean).join(` `),viewBox:`0 0 ${Vb} ${Hb}`,preserveAspectRatio:`none`,role:`img`,"aria-label":n,children:[(0,V.jsx)(`defs`,{children:(0,V.jsxs)(`linearGradient`,{id:i,x1:`0`,y1:`0`,x2:`0`,y2:`1`,children:[(0,V.jsx)(`stop`,{offset:`0%`,stopColor:o,stopOpacity:`0.16`}),(0,V.jsx)(`stop`,{offset:`100%`,stopColor:o,stopOpacity:`0.01`})]})}),!a.isFlat&&(0,V.jsx)(`path`,{d:a.area,fill:`url(#${i})`,stroke:`none`}),(0,V.jsx)(`path`,{d:a.line,fill:`none`,stroke:o,strokeWidth:2,strokeLinecap:`round`,strokeLinejoin:`round`,vectorEffect:`non-scaling-stroke`})]})}var Gb={root:`Collapsible-module__root___pblku`,summary:`Collapsible-module__summary___9zX-c`,summaryLabel:`Collapsible-module__summaryLabel___G6Rv3`,summaryHint:`Collapsible-module__summaryHint___zzQq-`,chevron:`Collapsible-module__chevron___L6d3B`,content:`Collapsible-module__content___rwqsf`,contentFlush:`Collapsible-module__contentFlush___WXXdd`,"collapsible-content-in":`Collapsible-module__collapsible-content-in___p56-A`,collapsibleContentIn:`Collapsible-module__collapsible-content-in___p56-A`};function Kb({label:e,hint:t,defaultOpen:n=!1,open:r,onToggle:i,flush:a,children:o,className:s,...c}){let[l,u]=(0,y.useState)(n),d=r??l,f=[Gb.root,s].filter(Boolean).join(` `),p=a?Gb.contentFlush:Gb.content;return(0,V.jsxs)(`details`,{className:f,open:d,onToggle:e=>{r===void 0&&u(e.currentTarget.open),i?.(e)},...c,children:[(0,V.jsxs)(`summary`,{className:Gb.summary,children:[(0,V.jsxs)(`span`,{className:Gb.summaryLabel,children:[(0,V.jsx)(`span`,{children:e}),t?(0,V.jsx)(`span`,{className:Gb.summaryHint,children:t}):null]}),(0,V.jsx)(`span`,{className:Gb.chevron,"aria-hidden":`true`,children:(0,V.jsx)(Rs,{size:16})})]}),(0,V.jsx)(`div`,{className:p,children:o})]})}var qb={chart:`ThroughputChart-module__chart___-FaCM`,legend:`ThroughputChart-module__legend___5JQlE`,legendItem:`ThroughputChart-module__legendItem___QsoEr`,legendValue:`ThroughputChart-module__legendValue___E-KrF`,legendSwatch:`ThroughputChart-module__legendSwatch___vKp8w`,swatchSuccess:`ThroughputChart-module__swatchSuccess___71fp7`,swatchFailure:`ThroughputChart-module__swatchFailure___4NtxJ`,plot:`ThroughputChart-module__plot___vHBTu`,yAxis:`ThroughputChart-module__yAxis___95MPg`,yTick:`ThroughputChart-module__yTick___-qXXk`,canvas:`ThroughputChart-module__canvas___0f37X`,gridlines:`ThroughputChart-module__gridlines___wwLsr`,gridline:`ThroughputChart-module__gridline___qENb3`,columns:`ThroughputChart-module__columns___fD5i7`,column:`ThroughputChart-module__column___RaitD`,stack:`ThroughputChart-module__stack___-YquN`,barGrow:`ThroughputChart-module__barGrow___65yaS`,columnActive:`ThroughputChart-module__columnActive___cFDyr`,segment:`ThroughputChart-module__segment___ijOMN`,segmentSuccess:`ThroughputChart-module__segmentSuccess___OqHlT`,segmentFailure:`ThroughputChart-module__segmentFailure___2ajQl`,segmentGap:`ThroughputChart-module__segmentGap___kXfwL`,segmentSquareTop:`ThroughputChart-module__segmentSquareTop___L2fgA`,idleTick:`ThroughputChart-module__idleTick___kZ-JF`,peakLabel:`ThroughputChart-module__peakLabel___J0i8w`,peakFade:`ThroughputChart-module__peakFade___9U9Rk`,noRequests:`ThroughputChart-module__noRequests___BJa6D`,tooltip:`ThroughputChart-module__tooltip___S9UYJ`,tooltipTime:`ThroughputChart-module__tooltipTime___GZtRW`,tooltipRow:`ThroughputChart-module__tooltipRow___aF9iN`,tooltipRate:`ThroughputChart-module__tooltipRate___fpdoz`,xAxis:`ThroughputChart-module__xAxis___etggi`,xTick:`ThroughputChart-module__xTick___IRup4`,tableToggle:`ThroughputChart-module__tableToggle___xSkCt`,table:`ThroughputChart-module__table___qvr48`,placeholder:`ThroughputChart-module__placeholder___CdaMa`,placeholderTitle:`ThroughputChart-module__placeholderTitle___--Mu2`,placeholderHint:`ThroughputChart-module__placeholderHint___NIiCf`},Jb=5;function Yb(e,t,n){return e||`-${(n-t)*10}m`}function Xb(e,t,n){if(!e)return Yb(e,t,n);let[r]=e.split(`-`);return r?.trim()||e}function Zb({traffic:e}){let{t}=B(),[n,r]=(0,y.useState)(null),{buckets:i,totalSuccess:a,totalFailure:o,total:s,peakIndex:c,peakTotal:l}=e,u=(0,y.useMemo)(()=>Ib(l,Jb-1),[l]),d=(0,y.useMemo)(()=>Array.from({length:Jb},(e,t)=>{let n=1-t/(Jb-1);return{ratio:n,value:Math.round(u*n)}}),[u]),f=(0,y.useMemo)(()=>{if(i.length===0)return[];let e=[0,Math.floor((i.length-1)/2),i.length-1];return Array.from(new Set(e)).map(e=>({index:e,label:Xb(i[e]?.time,e,i.length)}))},[i]),p=t(`dashboard.traffic_chart_summary`,{total:s,success:a,failed:o,minutes:e.windowMinutes}),m=n===null?null:i[n],h=m?m.success+m.failed:0;return i.length===0?(0,V.jsxs)(`div`,{className:qb.placeholder,children:[(0,V.jsx)(`p`,{className:qb.placeholderTitle,children:t(`dashboard.traffic_unavailable`)}),(0,V.jsx)(`p`,{className:qb.placeholderHint,children:t(`dashboard.traffic_unavailable_hint`)})]}):(0,V.jsxs)(`figure`,{className:qb.chart,children:[(0,V.jsxs)(`figcaption`,{className:qb.legend,children:[(0,V.jsxs)(`span`,{className:qb.legendItem,children:[(0,V.jsx)(`span`,{className:`${qb.legendSwatch} ${qb.swatchSuccess}`,"aria-hidden":`true`}),t(`stats.success`),(0,V.jsx)(`b`,{className:qb.legendValue,children:a.toLocaleString()})]}),(0,V.jsxs)(`span`,{className:qb.legendItem,children:[(0,V.jsx)(`span`,{className:`${qb.legendSwatch} ${qb.swatchFailure}`,"aria-hidden":`true`}),t(`stats.failure`),(0,V.jsx)(`b`,{className:qb.legendValue,children:o.toLocaleString()})]})]}),(0,V.jsxs)(`div`,{className:qb.plot,children:[(0,V.jsx)(`div`,{className:qb.yAxis,"aria-hidden":`true`,children:d.map(e=>(0,V.jsx)(`span`,{className:qb.yTick,style:{top:`${(1-e.ratio)*100}%`},children:e.value.toLocaleString()},e.ratio))}),(0,V.jsxs)(`div`,{className:qb.canvas,children:[(0,V.jsx)(`div`,{className:qb.gridlines,"aria-hidden":`true`,children:d.map(e=>(0,V.jsx)(`span`,{className:qb.gridline,style:{top:`${(1-e.ratio)*100}%`}},e.ratio))}),(0,V.jsx)(`div`,{className:qb.columns,role:`img`,"aria-label":p,onMouseLeave:()=>r(null),children:i.map((e,t)=>{let a=e.success+e.failed,o=e.success/u*100,s=e.failed/u*100,d=e.success>0&&e.failed>0,f=i.length>1?Math.round(t/(i.length-1)*360):0;return(0,V.jsxs)(`div`,{className:`${qb.column} ${n===t?qb.columnActive:``}`,onMouseEnter:()=>r(t),onClick:()=>r(e=>e===t?null:t),children:[t===c&&l>0&&(0,V.jsx)(`span`,{className:qb.peakLabel,style:{bottom:`${Math.min(100,a/u*100)}%`},children:l.toLocaleString()}),(0,V.jsxs)(`div`,{className:qb.stack,style:{"--bar-delay":`${f}ms`},children:[e.failed>0&&(0,V.jsx)(`span`,{className:`${qb.segment} ${qb.segmentFailure} ${d?qb.segmentGap:``}`,style:{height:`${s}%`}}),e.success>0&&(0,V.jsx)(`span`,{className:`${qb.segment} ${qb.segmentSuccess} ${e.failed>0?qb.segmentSquareTop:``}`,style:{height:`${o}%`}}),a===0&&(0,V.jsx)(`span`,{className:qb.idleTick})]})]},e.time??t)})}),s===0&&(0,V.jsx)(`p`,{className:qb.noRequests,children:t(`status_bar.no_requests`)}),m&&(0,V.jsxs)(`div`,{className:qb.tooltip,style:{left:`${(n+.5)/i.length*100}%`,transform:n<i.length*.15?`translateX(-12%)`:n>i.length*.85?`translateX(-88%)`:`translateX(-50%)`},role:`status`,children:[(0,V.jsx)(`span`,{className:qb.tooltipTime,children:Yb(m.time,n,i.length)}),(0,V.jsxs)(`span`,{className:qb.tooltipRow,children:[(0,V.jsx)(`span`,{className:`${qb.legendSwatch} ${qb.swatchSuccess}`,"aria-hidden":`true`}),t(`stats.success`),(0,V.jsx)(`b`,{children:m.success.toLocaleString()})]}),(0,V.jsxs)(`span`,{className:qb.tooltipRow,children:[(0,V.jsx)(`span`,{className:`${qb.legendSwatch} ${qb.swatchFailure}`,"aria-hidden":`true`}),t(`stats.failure`),(0,V.jsx)(`b`,{children:m.failed.toLocaleString()})]}),(0,V.jsx)(`span`,{className:qb.tooltipRate,children:h>0?hg(m.success/h*100):t(`status_bar.no_requests`)})]})]})]}),(0,V.jsx)(`div`,{className:qb.xAxis,"aria-hidden":`true`,children:f.map(e=>(0,V.jsx)(`span`,{className:qb.xTick,style:{left:`${(e.index+.5)/i.length*100}%`},children:e.label},e.index))}),(0,V.jsx)(Kb,{className:qb.tableToggle,label:t(`dashboard.traffic_table`),children:(0,V.jsxs)(`table`,{className:qb.table,children:[(0,V.jsx)(`thead`,{children:(0,V.jsxs)(`tr`,{children:[(0,V.jsx)(`th`,{scope:`col`,children:t(`dashboard.traffic_table_window`)}),(0,V.jsx)(`th`,{scope:`col`,children:t(`stats.success`)}),(0,V.jsx)(`th`,{scope:`col`,children:t(`stats.failure`)}),(0,V.jsx)(`th`,{scope:`col`,children:t(`dashboard.success_rate`)})]})}),(0,V.jsx)(`tbody`,{children:i.map((e,t)=>{let n=e.success+e.failed;return(0,V.jsxs)(`tr`,{children:[(0,V.jsx)(`th`,{scope:`row`,children:Yb(e.time,t,i.length)}),(0,V.jsx)(`td`,{children:e.success.toLocaleString()}),(0,V.jsx)(`td`,{children:e.failed.toLocaleString()}),(0,V.jsx)(`td`,{children:n>0?hg(e.success/n*100):`—`})]},e.time??t)})})]})})]})}var Qb=24,$b=.45,ex=900,tx=.07,nx=.36,rx=e=>1-(1-e)**4,ix=()=>typeof window<`u`&&typeof window.matchMedia==`function`&&window.matchMedia(`(prefers-reduced-motion: reduce)`).matches;function ax(e=0){let t=(0,y.useRef)(null);return(0,y.useLayoutEffect)(()=>{let n=t.current;if(!n)return;let r=()=>{n.style.removeProperty(`opacity`),n.style.removeProperty(`transform`),n.style.removeProperty(`will-change`)};if(ix()||typeof IntersectionObserver>`u`){r();return}n.style.opacity=`0`,n.style.transform=`translate3d(0, ${Qb}px, 0)`,n.style.willChange=`opacity, transform`;let i=null,a=new IntersectionObserver(t=>{t.forEach(t=>{t.isIntersecting&&(a.unobserve(t.target),i=Lh(n,{opacity:[0,1],transform:[`translate3d(0, ${Qb}px, 0)`,`translate3d(0, 0, 0)`]},{duration:$b,delay:e,ease:rx}),i.finished.then(r).catch(()=>void 0))})},{rootMargin:`0px 0px -12% 0px`,threshold:.05});return a.observe(n),()=>{a.disconnect(),i?.stop(),r()}},[e]),t}function ox(e=0){let t=(0,y.useRef)(null);return(0,y.useLayoutEffect)(()=>{let n=t.current;if(!n)return;let r=Array.from(n.querySelectorAll(`[data-reveal]`));if(r.length===0)return;let i=e=>e.dataset.reveal===`scale`?`translate3d(0, ${Qb}px, 0) scale(0.97)`:`translate3d(0, ${Qb}px, 0)`,a=e=>e.dataset.reveal===`scale`?`translate3d(0, 0, 0) scale(1)`:`translate3d(0, 0, 0)`,o=e=>{e.style.removeProperty(`opacity`),e.style.removeProperty(`transform`),e.style.removeProperty(`will-change`)},s=()=>r.forEach(o);if(ix()||typeof IntersectionObserver>`u`){s();return}r.forEach(e=>{e.style.opacity=`0`,e.style.transform=i(e),e.style.willChange=`opacity, transform`});let c=r.length>1?Math.min(tx,nx/(r.length-1)):tx,l=[],u=new IntersectionObserver(t=>{t.forEach(t=>{t.isIntersecting&&(u.unobserve(t.target),r.forEach((t,n)=>{let r=Lh(t,{opacity:[0,1],transform:[i(t),a(t)]},{duration:$b,delay:e+n*c,ease:rx});l.push(r),r.finished.then(()=>o(t)).catch(()=>void 0)}))})},{rootMargin:`0px 0px -12% 0px`,threshold:.05});return u.observe(n),()=>{u.disconnect(),l.forEach(e=>e.stop()),s()}},[e]),t}function sx(e,t=!0){let[n,r]=(0,y.useState)(e),i=(0,y.useRef)(e);return(0,y.useEffect)(()=>{let n=i.current;if(!t||ix()||n===e){i.current=e,r(e);return}let a=0,o=null,s=t=>{o===null&&(o=t);let c=Math.min(1,(t-o)/ex),l=rx(c);r(Math.round(n+(e-n)*l)),c<1?a=requestAnimationFrame(s):i.current=e};return a=requestAnimationFrame(s),()=>{cancelAnimationFrame(a),i.current=e}},[e,t]),n}var G={page:`dashboard-module__page___UF6ee`,ambient:`dashboard-module__ambient___25f--`,washTop:`dashboard-module__washTop___2D-R1`,gridWash:`dashboard-module__gridWash___IJsAj`,hero:`dashboard-module__hero___MkU3k`,heroWire:`dashboard-module__heroWire___CyDZk`,heroCopy:`dashboard-module__heroCopy___7eu3Y`,heroTitle:`dashboard-module__heroTitle___bjdUU`,heroPeriod:`dashboard-module__heroPeriod___pihps`,heroPeriodLive:`dashboard-module__heroPeriodLive___rE5lR`,periodBreath:`dashboard-module__periodBreath___NC0oZ`,heroMeta:`dashboard-module__heroMeta___SsmPi`,heroActions:`dashboard-module__heroActions___nMO4M`,primaryAction:`dashboard-module__primaryAction___9gfgH`,ghostAction:`dashboard-module__ghostAction___N9jjF`,linkArrow:`dashboard-module__linkArrow___vWko7`,heroPanel:`dashboard-module__heroPanel___sFbi-`,heroPanelTop:`dashboard-module__heroPanelTop___sNg4k`,heroPanelLabel:`dashboard-module__heroPanelLabel___jUpVi`,liveBadge:`dashboard-module__liveBadge___9fdYq`,liveDot:`dashboard-module__liveDot___VGdIG`,livePing:`dashboard-module__livePing___3wKU9`,heroFigure:`dashboard-module__heroFigure___wRcDD`,heroPanelMeta:`dashboard-module__heroPanelMeta___LTO6H`,ratioBar:`dashboard-module__ratioBar___QbYaG`,ratioSegment:`dashboard-module__ratioSegment___QPj4X`,heroSplit:`dashboard-module__heroSplit___iBb4m`,heroSplitItem:`dashboard-module__heroSplitItem___9Xb7t`,splitSwatch:`dashboard-module__splitSwatch___T1BAm`,splitSuccess:`dashboard-module__splitSuccess___YzZ3r`,splitFailure:`dashboard-module__splitFailure___uod1c`,statsRow:`dashboard-module__statsRow___N02MY`,statTile:`dashboard-module__statTile___pRszo`,statLabel:`dashboard-module__statLabel___vBc52`,statValue:`dashboard-module__statValue___HlP6a`,statMeter:`dashboard-module__statMeter___iqQ0d`,statHint:`dashboard-module__statHint___jA1Lx`,section:`dashboard-module__section___SU27P`,sectionHead:`dashboard-module__sectionHead___HiDgg`,eyebrow:`dashboard-module__eyebrow___9pOzG`,sectionTitle:`dashboard-module__sectionTitle___mdUFh`,sectionDescription:`dashboard-module__sectionDescription___njtD8`,panel:`dashboard-module__panel___yFev0`,panelHead:`dashboard-module__panelHead___JCcHO`,panelTitle:`dashboard-module__panelTitle___DPM1j`,panelLink:`dashboard-module__panelLink___b7hxz`,emptyNote:`dashboard-module__emptyNote___ZPLt3`,fleetList:`dashboard-module__fleetList___znqyo`,fleetRow:`dashboard-module__fleetRow___CMqRX`,fleetRank:`dashboard-module__fleetRank___Ll1Rd`,fleetIdentity:`dashboard-module__fleetIdentity___Ly9vN`,fleetName:`dashboard-module__fleetName___RORQt`,fleetMeta:`dashboard-module__fleetMeta___xo-1P`,fleetSpark:`dashboard-module__fleetSpark___Ya30N`,fleetNumbers:`dashboard-module__fleetNumbers___aQeog`,fleetTotal:`dashboard-module__fleetTotal___MadmX`,fleetTotalLabel:`dashboard-module__fleetTotalLabel___RhSuG`,fleetRate:`dashboard-module__fleetRate___jYvLy`,fleetRateValue:`dashboard-module__fleetRateValue___Tj2Kl`,fleetMeter:`dashboard-module__fleetMeter___l-m4d`,detailGrid:`dashboard-module__detailGrid___Zr06g`,healthBar:`dashboard-module__healthBar___XMGkG`,healthSegment:`dashboard-module__healthSegment___vawrq`,healthActive:`dashboard-module__healthActive___zZV8L`,healthUnavailable:`dashboard-module__healthUnavailable___F49dV`,healthDisabled:`dashboard-module__healthDisabled___guPq-`,healthLegend:`dashboard-module__healthLegend___3ewIe`,healthKey:`dashboard-module__healthKey___2cAw2`,typeBreakdown:`dashboard-module__typeBreakdown___Pa2Q3`,typeBreakdownLabel:`dashboard-module__typeBreakdownLabel___jt9VW`,typeList:`dashboard-module__typeList___edMu9`,typeChip:`dashboard-module__typeChip___-twi3`,specList:`dashboard-module__specList___naEGe`,specRow:`dashboard-module__specRow___IH1wt`,specLabel:`dashboard-module__specLabel___QxD73`,specValue:`dashboard-module__specValue___eI8Ot`,specMono:`dashboard-module__specMono___5y8cr`,toggleList:`dashboard-module__toggleList___Krb90`,togglePill:`dashboard-module__togglePill___QJYAj`,toggleOn:`dashboard-module__toggleOn___VmR3w`,toggleOff:`dashboard-module__toggleOff___XWtlD`,ctaGrid:`dashboard-module__ctaGrid___OQEZ7`,ctaCard:`dashboard-module__ctaCard___-fF7e`,ctaArrow:`dashboard-module__ctaArrow___IBWKn`,ctaIcon:`dashboard-module__ctaIcon___ulbkn`,ctaTitle:`dashboard-module__ctaTitle___5vVvg`,ctaDescription:`dashboard-module__ctaDescription___rSwmK`},cx=`—`,lx={good:`var(--viz-success)`,warning:`var(--amber-color)`,critical:`var(--viz-failure)`,idle:`var(--text-quaternary)`},ux=e=>e<1e5?e.toLocaleString():mg(e);function dx(){let{t:e,i18n:t}=B(),n=Im(e=>e.serverVersion),r=Im(e=>e.serverBuildDate),{connectionStatus:i,connected:a,config:o,counts:s,traffic:c,providers:l,credentials:u,refresh:d}=Cb();cg(d,a);let f=ox(),p=ox(.12),m=ax(),h=ax(),g=ox(),_=ox(),v=sx(c.total,a),b=(0,y.useMemo)(()=>{if(c.windowMinutes<=0)return cx;let{hours:t,minutes:n}=Mb(c.windowMinutes);return t===0?e(`dashboard.window_m`,{minutes:n}):n===0?e(`dashboard.window_h`,{hours:t}):e(`dashboard.window_hm`,{hours:t,minutes:n})},[c.windowMinutes,e]),x=(0,y.useMemo)(()=>c.buckets.map(e=>e.success+e.failed),[c.buckets]),S=(0,y.useMemo)(()=>{let t=o?.routingStrategy?.trim()??``;return t?t===`round-robin`?e(`basic_settings.routing_strategy_round_robin`):t===`weighted-round-robin`?e(`basic_settings.routing_strategy_weighted_round_robin`):t===`fill-first`?e(`basic_settings.routing_strategy_fill_first`):t:cx},[o?.routingStrategy,e]),C=e(`dashboard.provider_unknown`),w=Nb(c.successRate),T=(0,y.useMemo)(()=>a?c.total===0||c.successRate===null?{key:`hero_verdict_idle`,accent:`var(--text-quaternary)`}:{key:{good:`hero_verdict_good`,warning:`hero_verdict_warning`,critical:`hero_verdict_critical`,idle:`hero_verdict_idle`}[w],accent:lx[w]}:i===`connecting`?{key:`hero_verdict_connecting`,accent:`var(--amber-color)`}:{key:`hero_verdict_offline`,accent:`var(--text-quaternary)`},[a,i,c.total,c.successRate,w]),E=a&&c.total>0,D=e(i===`connected`?`common.connected`:i===`connecting`?`common.connecting`:`common.disconnected`),O=[n?`v${n.trim().replace(/^[vV]+/,``)}`:null,D].filter(Boolean).join(` · `),k=[{key:`success`,label:e(`dashboard.success_rate`),value:c.successRate===null?cx:hg(c.successRate),hint:e(`dashboard.stat_success_hint`,{total:c.total.toLocaleString()}),meter:c.successRate,tone:w},{key:`credentials`,label:e(`dashboard.stat_credentials`),value:u?u.total.toLocaleString():cx,hint:u?e(`dashboard.stat_credentials_hint`,{active:u.active,disabled:u.disabled+u.unavailable}):e(`dashboard.stat_credentials_empty`),meter:u&&u.total>0?u.active/u.total*100:null,tone:void 0},{key:`providerKeys`,label:e(`dashboard.stat_provider_keys`),value:s.providerKeys===null?cx:s.providerKeys.toLocaleString(),hint:e(`dashboard.stat_provider_keys_hint`),meter:null,tone:void 0},{key:`models`,label:e(`dashboard.stat_models`),value:s.models===null?cx:s.models.toLocaleString(),hint:e(`dashboard.stat_models_hint`),meter:null,tone:void 0}],A=[{label:e(`dashboard.runtime_routing`),value:S},{label:e(`dashboard.runtime_retry`),value:String(o?.requestRetry??0)},{label:e(`dashboard.runtime_management_keys`),value:s.managementKeys===null?cx:String(s.managementKeys)},{label:e(`dashboard.runtime_version`),value:n?.trim()||cx},{label:e(`dashboard.runtime_build`),value:vg(r,t.language)||cx},{label:e(`dashboard.runtime_proxy`),value:o?.proxyUrl?.trim()||cx,mono:!0}],j=o?[{label:e(`dashboard.runtime_debug`),on:!!o.debug},{label:e(`dashboard.runtime_file_logging`),on:!!o.loggingToFile},{label:e(`dashboard.runtime_request_log`),on:!!o.requestLog},{label:e(`dashboard.runtime_ws_auth`),on:!!o.wsAuth},{label:e(`dashboard.runtime_model_prefix`),on:!!o.forceModelPrefix}]:[],M=[{to:`/ai-providers`,icon:(0,V.jsx)(gs,{size:20}),title:e(`nav.ai_providers`),description:e(`dashboard.cta_providers_desc`)},{to:`/auth-files`,icon:(0,V.jsx)(ys,{size:20}),title:e(`nav.auth_files`),description:e(`dashboard.cta_auth_files_desc`)},{to:`/config`,icon:(0,V.jsx)(tc,{size:20}),title:e(`nav.config_management`),description:e(`dashboard.cta_config_desc`)},{to:`/quota`,icon:(0,V.jsx)(sc,{size:20}),title:e(`nav.quota_management`),description:e(`dashboard.cta_quota_desc`)},{to:`/logs`,icon:(0,V.jsx)(cc,{size:20}),title:e(`nav.logs`),description:e(`dashboard.cta_logs_desc`)},{to:`/system`,icon:(0,V.jsx)(lc,{size:20}),title:e(`nav.system_info`),description:e(`dashboard.cta_system_desc`)}];return(0,V.jsxs)(`div`,{className:G.page,children:[(0,V.jsxs)(`div`,{className:G.ambient,"aria-hidden":`true`,children:[(0,V.jsx)(`span`,{className:G.washTop}),(0,V.jsx)(`span`,{className:G.gridWash})]}),(0,V.jsxs)(`section`,{className:G.hero,ref:f,children:[(0,V.jsxs)(`div`,{className:G.heroCopy,children:[(0,V.jsxs)(`h1`,{className:G.heroTitle,"data-reveal":!0,children:[e(`dashboard.${T.key}`),(0,V.jsx)(`span`,{className:`${G.heroPeriod} ${E?G.heroPeriodLive:``}`,style:{color:T.accent},children:e(`dashboard.hero_period`)})]}),(0,V.jsx)(`p`,{className:G.heroMeta,"data-reveal":!0,children:O}),(0,V.jsxs)(`div`,{className:G.heroActions,"data-reveal":!0,children:[(0,V.jsx)(Xi,{to:`/ai-providers`,className:G.primaryAction,children:e(`dashboard.cta_manage_providers`)}),(0,V.jsxs)(Xi,{to:`/logs`,className:G.ghostAction,children:[e(`dashboard.cta_inspect_logs`),` `,(0,V.jsx)(`span`,{className:G.linkArrow,"aria-hidden":`true`,children:`→`})]})]})]}),(0,V.jsxs)(`div`,{className:G.heroPanel,"data-reveal":`scale`,children:[(0,V.jsxs)(`div`,{className:G.heroPanelTop,children:[(0,V.jsx)(`span`,{className:G.heroPanelLabel,children:e(`dashboard.hero_requests_label`)}),a&&(0,V.jsxs)(`span`,{className:G.liveBadge,children:[(0,V.jsx)(`i`,{className:G.liveDot,"aria-hidden":`true`}),e(`dashboard.hero_live`)]})]}),(0,V.jsx)(`strong`,{className:G.heroFigure,children:a?ux(v):cx}),(0,V.jsx)(`span`,{className:G.heroPanelMeta,children:e(`dashboard.hero_window_meta`,{window:b})}),c.total>0&&(0,V.jsxs)(`div`,{className:G.ratioBar,"aria-hidden":`true`,children:[c.totalSuccess>0&&(0,V.jsx)(`span`,{className:`${G.ratioSegment} ${G.splitSuccess}`,style:{flexGrow:c.totalSuccess}}),c.totalFailure>0&&(0,V.jsx)(`span`,{className:`${G.ratioSegment} ${G.splitFailure}`,style:{flexGrow:c.totalFailure}})]}),(0,V.jsxs)(`div`,{className:G.heroSplit,children:[(0,V.jsxs)(`span`,{className:G.heroSplitItem,children:[(0,V.jsx)(`i`,{className:`${G.splitSwatch} ${G.splitSuccess}`,"aria-hidden":`true`}),e(`stats.success`),(0,V.jsx)(`b`,{children:c.totalSuccess.toLocaleString()})]}),(0,V.jsxs)(`span`,{className:G.heroSplitItem,children:[(0,V.jsx)(`i`,{className:`${G.splitSwatch} ${G.splitFailure}`,"aria-hidden":`true`}),e(`stats.failure`),(0,V.jsx)(`b`,{children:c.totalFailure.toLocaleString()})]})]})]}),(0,V.jsx)(`div`,{className:G.heroWire,children:(0,V.jsx)(kb,{points:x,ariaLabel:e(`dashboard.hero_spark_label`,{window:b})})})]}),(0,V.jsx)(`section`,{className:G.statsRow,ref:p,"aria-label":e(`dashboard.stats_aria`),children:k.map(e=>(0,V.jsxs)(`article`,{className:G.statTile,"data-reveal":!0,style:{"--tile-accent":e.tone?lx[e.tone]:`var(--border-hover)`},children:[(0,V.jsx)(`span`,{className:G.statLabel,children:e.label}),(0,V.jsx)(`strong`,{className:G.statValue,children:e.value}),e.meter!==null&&e.meter!==void 0&&(0,V.jsx)(zb,{value:e.meter,tone:e.tone,ariaLabel:e.label,className:G.statMeter}),(0,V.jsx)(`span`,{className:G.statHint,children:e.hint})]},e.key))}),(0,V.jsxs)(`section`,{className:G.section,ref:m,children:[(0,V.jsxs)(`header`,{className:G.sectionHead,children:[(0,V.jsx)(`span`,{className:G.eyebrow,children:e(`dashboard.traffic_eyebrow`)}),(0,V.jsx)(`h2`,{className:G.sectionTitle,children:e(`dashboard.traffic_title`)}),(0,V.jsx)(`p`,{className:G.sectionDescription,children:e(`dashboard.traffic_description`,{window:b})})]}),(0,V.jsx)(`div`,{className:G.panel,children:(0,V.jsx)(Zb,{traffic:c})})]}),(0,V.jsxs)(`section`,{className:G.section,ref:h,children:[(0,V.jsxs)(`header`,{className:G.sectionHead,children:[(0,V.jsx)(`span`,{className:G.eyebrow,children:e(`dashboard.fleet_eyebrow`)}),(0,V.jsx)(`h2`,{className:G.sectionTitle,children:e(`dashboard.fleet_title`)}),(0,V.jsx)(`p`,{className:G.sectionDescription,children:e(`dashboard.fleet_description`)})]}),(0,V.jsx)(`div`,{className:G.panel,children:l.length===0?(0,V.jsx)(`p`,{className:G.emptyNote,children:e(`dashboard.fleet_empty`)}):(0,V.jsx)(`ul`,{className:G.fleetList,children:l.map((t,n)=>(0,V.jsxs)(`li`,{className:G.fleetRow,children:[(0,V.jsx)(`span`,{className:G.fleetRank,"aria-hidden":`true`,children:String(n+1).padStart(2,`0`)}),(0,V.jsxs)(`div`,{className:G.fleetIdentity,children:[(0,V.jsx)(`span`,{className:G.fleetName,children:jb(t.id,C)}),(0,V.jsx)(`span`,{className:G.fleetMeta,children:e(`dashboard.fleet_credentials`,{value:t.credentials})})]}),(0,V.jsx)(Wb,{points:t.buckets.map(e=>e.success+e.failed),ariaLabel:e(`dashboard.fleet_spark_label`,{provider:jb(t.id,C)}),className:G.fleetSpark}),(0,V.jsxs)(`div`,{className:G.fleetNumbers,children:[(0,V.jsx)(`span`,{className:G.fleetTotal,children:t.total.toLocaleString()}),(0,V.jsx)(`span`,{className:G.fleetTotalLabel,children:e(`dashboard.fleet_requests`)})]}),(0,V.jsxs)(`div`,{className:G.fleetRate,children:[(0,V.jsx)(`span`,{className:G.fleetRateValue,children:t.successRate===null?cx:hg(t.successRate)}),(0,V.jsx)(zb,{value:t.successRate,ariaLabel:e(`dashboard.success_rate`),className:G.fleetMeter})]})]},t.id))})})]}),(0,V.jsxs)(`section`,{className:G.detailGrid,ref:g,children:[(0,V.jsxs)(`div`,{className:G.panel,"data-reveal":!0,children:[(0,V.jsxs)(`header`,{className:G.panelHead,children:[(0,V.jsx)(`span`,{className:G.eyebrow,children:e(`dashboard.health_eyebrow`)}),(0,V.jsx)(`h2`,{className:G.panelTitle,children:e(`dashboard.health_title`)})]}),!u||u.total===0?(0,V.jsx)(`p`,{className:G.emptyNote,children:e(`dashboard.health_empty`)}):(0,V.jsxs)(V.Fragment,{children:[(0,V.jsxs)(`div`,{className:G.healthBar,children:[u.active>0&&(0,V.jsx)(`span`,{className:`${G.healthSegment} ${G.healthActive}`,style:{flexGrow:u.active}}),u.unavailable>0&&(0,V.jsx)(`span`,{className:`${G.healthSegment} ${G.healthUnavailable}`,style:{flexGrow:u.unavailable}}),u.disabled>0&&(0,V.jsx)(`span`,{className:`${G.healthSegment} ${G.healthDisabled}`,style:{flexGrow:u.disabled}})]}),(0,V.jsxs)(`ul`,{className:G.healthLegend,children:[(0,V.jsxs)(`li`,{children:[(0,V.jsx)(`i`,{className:`${G.healthKey} ${G.healthActive}`,"aria-hidden":`true`}),e(`dashboard.health_active`),(0,V.jsx)(`b`,{children:u.active.toLocaleString()})]}),(0,V.jsxs)(`li`,{children:[(0,V.jsx)(`i`,{className:`${G.healthKey} ${G.healthUnavailable}`,"aria-hidden":`true`}),e(`dashboard.health_unavailable`),(0,V.jsx)(`b`,{children:u.unavailable.toLocaleString()})]}),(0,V.jsxs)(`li`,{children:[(0,V.jsx)(`i`,{className:`${G.healthKey} ${G.healthDisabled}`,"aria-hidden":`true`}),e(`dashboard.health_disabled`),(0,V.jsx)(`b`,{children:u.disabled.toLocaleString()})]})]}),(0,V.jsxs)(`div`,{className:G.typeBreakdown,children:[(0,V.jsx)(`span`,{className:G.typeBreakdownLabel,children:e(`dashboard.health_by_type`)}),(0,V.jsx)(`ul`,{className:G.typeList,children:u.byType.map(e=>(0,V.jsxs)(`li`,{className:G.typeChip,children:[jb(e.type,C),(0,V.jsx)(`b`,{children:e.count.toLocaleString()})]},e.type))})]}),(0,V.jsxs)(Xi,{to:`/auth-files`,className:G.panelLink,children:[e(`dashboard.health_link`),` `,(0,V.jsx)(`span`,{className:G.linkArrow,"aria-hidden":`true`,children:`→`})]})]})]}),(0,V.jsxs)(`div`,{className:G.panel,"data-reveal":!0,children:[(0,V.jsxs)(`header`,{className:G.panelHead,children:[(0,V.jsx)(`span`,{className:G.eyebrow,children:e(`dashboard.runtime_eyebrow`)}),(0,V.jsx)(`h2`,{className:G.panelTitle,children:e(`dashboard.runtime_title`)})]}),(0,V.jsx)(`dl`,{className:G.specList,children:A.map(e=>(0,V.jsxs)(`div`,{className:G.specRow,children:[(0,V.jsx)(`dt`,{className:G.specLabel,children:e.label}),(0,V.jsx)(`dd`,{className:`${G.specValue} ${e.mono?G.specMono:``}`,children:e.value})]},e.label))}),j.length>0&&(0,V.jsx)(`ul`,{className:G.toggleList,children:j.map(t=>(0,V.jsxs)(`li`,{className:`${G.togglePill} ${t.on?G.toggleOn:G.toggleOff}`,children:[t.label,(0,V.jsx)(`b`,{children:t.on?e(`common.yes`):e(`common.no`)})]},t.label))}),(0,V.jsxs)(Xi,{to:`/config`,className:G.panelLink,children:[e(`dashboard.runtime_link`),` `,(0,V.jsx)(`span`,{className:G.linkArrow,"aria-hidden":`true`,children:`→`})]})]})]}),(0,V.jsxs)(`section`,{className:G.section,ref:_,children:[(0,V.jsxs)(`header`,{className:G.sectionHead,"data-reveal":!0,children:[(0,V.jsx)(`span`,{className:G.eyebrow,children:e(`dashboard.cta_eyebrow`)}),(0,V.jsx)(`h2`,{className:G.sectionTitle,children:e(`dashboard.cta_title`)})]}),(0,V.jsx)(`div`,{className:G.ctaGrid,children:M.map(e=>(0,V.jsxs)(Xi,{to:e.to,className:G.ctaCard,"data-reveal":!0,children:[(0,V.jsx)(`span`,{className:G.ctaIcon,children:e.icon}),(0,V.jsx)(`span`,{className:G.ctaTitle,children:e.title}),(0,V.jsx)(`span`,{className:G.ctaDescription,children:e.description}),(0,V.jsx)(`span`,{className:G.ctaArrow,"aria-hidden":`true`,children:`→`})]},e.to))})]})]})}var fx={skeleton:`Skeleton-module__skeleton___XePp7`,shimmer:`Skeleton-module__shimmer___vu211`};function px({width:e,height:t,rounded:n,className:r,style:i,...a}){let o={...i,width:e??i?.width,height:t??i?.height,borderRadius:n??i?.borderRadius};return(0,V.jsx)(`div`,{className:[fx.skeleton,r].filter(Boolean).join(` `),style:o,"aria-hidden":`true`,...a})}var mx=`*`,hx=`https://generativelanguage.googleapis.com`,gx=e=>Array.isArray(e)&&e.some(e=>String(e??``).trim()===mx),_x=e=>Array.isArray(e)?e.filter(e=>String(e??``).trim()!==mx):[],vx=e=>[..._x(e),mx],yx=e=>_x(e),bx=(e,t=``)=>{let n=String(e||``).trim();return n?(n=n.replace(/\/?v0\/management\/?$/i,``),n=n.replace(/\/+$/g,``),/^https?:\/\//i.test(n)||(n=`http://${n}`),n):t},xx=e=>{let t=String(e||``).trim().replace(/^\/+/g,``).replace(/:generateContent$/i,``);return t?/^(models|tunedModels)\//i.test(t)?t.split(`/`).map(encodeURIComponent).join(`/`):`models/${encodeURIComponent(t)}`:``},Sx=e=>{let t=bx(e);return t?t.endsWith(`/chat/completions`)?t:`${t}/chat/completions`:``},Cx=e=>{let t=bx(e);return t?/\/v1\/responses$/i.test(t)?t:/\/v1\/models$/i.test(t)?t.replace(/\/models$/i,`/responses`):/\/v1$/i.test(t)?`${t}/responses`:`${t}/v1/responses`:``},wx=e=>{let t=bx(e,`https://api.anthropic.com`);return t?t.endsWith(`/v1/messages`)?t:t.endsWith(`/v1`)?`${t}/messages`:`${t}/v1/messages`:``},Tx=`2026-05-20`,Ex=e=>({model:e,input:`Hi`}),Dx=e=>{let t=bx(e,hx);if(!t)return``;if(/\/v1beta\/interactions$/i.test(t))return t;let n=t.replace(/\/+$/g,``);return n=n.replace(/\/v1beta\/models$/i,``),/\/v1beta$/i.test(n)?`${n}/interactions`:(n=n.replace(/\/v1beta(?:\/.*)?$/i,``),`${n}/v1beta/interactions`)},Ox=(e,t)=>{let n=xx(t);if(!n)return``;let r=bx(e,hx);if(!r)return``;if(/:generateContent$/i.test(r))return r;let i=r.replace(/\/+$/g,``);return/\/v1beta\/models$/i.test(i)?i=i.replace(/\/models$/i,``):/\/v1beta$/i.test(i)||(i=i.replace(/\/v1beta(?:\/.*)?$/i,``),i=`${i}/v1beta`),`${i}/${n}:generateContent`},kx=e=>e===`interactions`?`gemini-interactions`:e,Ax={success:0,failed:0,recentRequests:[]},jx=e=>String(e??``).trim().toLowerCase(),Mx=(e,t,n,r)=>{if(!String(n??``).trim())return Ax;let i=jx(t),a=mm(r,n);return e.get(i)?.get(a)??Ax},Nx=(e,t,n,r)=>Mx(e,t,n,r).recentRequests;function Px(e,t,n,r){return bm(Nx(e,t,n,r))}function Fx(e,t,n,r){let i=Mx(e,t,n,r);return{success:i.success,failure:i.failed}}function Ix(e,t,n,r){return ym(Nx(e,t,n,r))}var Lx=(e,t)=>e.apiKeyEntries?.length?vm(e.apiKeyEntries.map(n=>Nx(t,e.name,n.apiKey,e.baseUrl))):[];function Rx(e,t){return ym(Lx(e,t))}function zx(e,t){return(e.apiKeyEntries||[]).reduce((n,r)=>{let i=Mx(t,e.name,r.apiKey,e.baseUrl);return{success:n.success+i.success,failure:n.failure+i.failed}},{success:0,failure:0})}function Bx(e,t){return bm(Lx(e,t))}var Vx={card:`ProviderHeaderCard-module__card___-vito`,row:`ProviderHeaderCard-module__row___8x7Kv`,titleArea:`ProviderHeaderCard-module__titleArea___wB2EB`,title:`ProviderHeaderCard-module__title___gZU4U`,quickStartCard:`ProviderHeaderCard-module__quickStartCard___R5pLj`,btn:`ProviderHeaderCard-module__btn___V-Ldg`,subtitle:`ProviderHeaderCard-module__subtitle___ahXHM`,actions:`ProviderHeaderCard-module__actions___mjRJJ`,btnOutline:`ProviderHeaderCard-module__btnOutline___P7piG`,btnPrimary:`ProviderHeaderCard-module__btnPrimary___-U6YA`,chips:`ProviderHeaderCard-module__chips___kt9b-`,chip:`ProviderHeaderCard-module__chip___U2QSK`,chipPrimary:`ProviderHeaderCard-module__chipPrimary___u8TVQ`,chipAmber:`ProviderHeaderCard-module__chipAmber___1vTiO`,spin:`ProviderHeaderCard-module__spin___JVOx1`,"pwc-spin":`ProviderHeaderCard-module__pwc-spin___Ehj71`,pwcSpin:`ProviderHeaderCard-module__pwc-spin___Ehj71`,btnIcon:`ProviderHeaderCard-module__btnIcon___zQlLw`};function Hx({title:e,totalActive:t,totalResources:n,providerFamilies:r,updatedAtLabel:i,isFetching:a=!1,isNewDisabled:o=!1,showNewAction:s=!0,showSummary:c=!0,newLabel:l,variant:u,onRefresh:d,onNew:f}){let{t:p}=B();return(0,V.jsxs)(`section`,{className:[Vx.card,u===`quickStart`?Vx.quickStartCard:``].filter(Boolean).join(` `),children:[(0,V.jsxs)(`div`,{className:Vx.row,children:[(0,V.jsx)(`div`,{className:Vx.titleArea,children:(0,V.jsx)(`h1`,{className:Vx.title,children:e??p(`providersPage.header.title`)})}),(0,V.jsxs)(`div`,{className:Vx.actions,children:[(0,V.jsxs)(`button`,{type:`button`,className:`${Vx.btn} ${Vx.btnOutline}`,onClick:d,disabled:a,"aria-label":p(a?`providersPage.actions.syncing`:`providersPage.actions.refresh`),children:[(0,V.jsx)(`span`,{className:`${Vx.btnIcon} ${a?Vx.spin:``}`.trim(),children:a?(0,V.jsx)(Is,{size:16}):(0,V.jsx)(Ts,{size:16})}),(0,V.jsx)(`span`,{children:p(a?`providersPage.actions.syncing`:`providersPage.actions.refresh`)})]}),s?(0,V.jsxs)(`button`,{type:`button`,className:`${Vx.btn} ${Vx.btnPrimary}`,onClick:f,disabled:o,children:[(0,V.jsx)(js,{size:16}),(0,V.jsx)(`span`,{children:l??p(`providersPage.actions.new`)})]}):null]})]}),c?(0,V.jsxs)(`div`,{className:Vx.chips,children:[(0,V.jsx)(`span`,{className:`${Vx.chip} ${Vx.chipPrimary}`,children:p(`providersPage.header.activeResources`,{active:t,total:n})}),(0,V.jsx)(`span`,{className:Vx.chip,children:p(`providersPage.header.providerFamilies`,{count:r})}),(0,V.jsx)(`span`,{className:Vx.chip,children:p(`providersPage.header.updatedAt`,{time:i})})]}):null]})}var Ux=`data:image/svg+xml,%3csvg%20height='1em'%20style='flex:none;line-height:1'%20viewBox='0%200%2024%2024'%20width='1em'%20xmlns='http://www.w3.org/2000/svg'%3e%3ctitle%3eClaude%3c/title%3e%3cpath%20d='M4.709%2015.955l4.72-2.647.08-.23-.08-.128H9.2l-.79-.048-2.698-.073-2.339-.097-2.266-.122-.571-.121L0%2011.784l.055-.352.48-.321.686.06%201.52.103%202.278.158%201.652.097%202.449.255h.389l.055-.157-.134-.098-.103-.097-2.358-1.596-2.552-1.688-1.336-.972-.724-.491-.364-.462-.158-1.008.656-.722.881.06.225.061.893.686%201.908%201.476%202.491%201.833.365.304.145-.103.019-.073-.164-.274-1.355-2.446-1.446-2.49-.644-1.032-.17-.619a2.97%202.97%200%2001-.104-.729L6.283.134%206.696%200l.996.134.42.364.62%201.414%201.002%202.229%201.555%203.03.456.898.243.832.091.255h.158V9.01l.128-1.706.237-2.095.23-2.695.08-.76.376-.91.747-.492.584.28.48.685-.067.444-.286%201.851-.559%202.903-.364%201.942h.212l.243-.242.985-1.306%201.652-2.064.73-.82.85-.904.547-.431h1.033l.76%201.129-.34%201.166-1.064%201.347-.881%201.142-1.264%201.7-.79%201.36.073.11.188-.02%202.856-.606%201.543-.28%201.841-.315.833.388.091.395-.328.807-1.969.486-2.309.462-3.439.813-.042.03.049.061%201.549.146.662.036h1.622l3.02.225.79.522.474.638-.079.485-1.215.62-1.64-.389-3.829-.91-1.312-.329h-.182v.11l1.093%201.068%202.006%201.81%202.509%202.33.127.578-.322.455-.34-.049-2.205-1.657-.851-.747-1.926-1.62h-.128v.17l.444.649%202.345%203.521.122%201.08-.17.353-.608.213-.668-.122-1.374-1.925-1.415-2.167-1.143-1.943-.14.08-.674%207.254-.316.37-.729.28-.607-.461-.322-.747.322-1.476.389-1.924.315-1.53.286-1.9.17-.632-.012-.042-.14.018-1.434%201.967-2.18%202.945-1.726%201.845-.414.164-.717-.37.067-.662.401-.589%202.388-3.036%201.44-1.882.93-1.086-.006-.158h-.055L4.132%2018.56l-1.13.146-.487-.456.061-.746.231-.243%201.908-1.312-.006.006z'%20fill='%23D97757'%20fill-rule='nonzero'%3e%3c/path%3e%3c/svg%3e`,Wx=`data:image/svg+xml,%3csvg%20height='1em'%20style='flex:none;line-height:1'%20viewBox='0%200%2024%2024'%20width='1em'%20xmlns='http://www.w3.org/2000/svg'%3e%3ctitle%3eCodex%3c/title%3e%3cpath%20d='M19.503%200H4.496A4.496%204.496%200%20000%204.496v15.007A4.496%204.496%200%20004.496%2024h15.007A4.496%204.496%200%200024%2019.503V4.496A4.496%204.496%200%200019.503%200z'%20fill='%23fff'%3e%3c/path%3e%3cpath%20d='M9.064%203.344a4.578%204.578%200%20012.285-.312c1%20.115%201.891.54%202.673%201.275.01.01.024.017.037.021a.09.09%200%2000.043%200%204.55%204.55%200%20013.046.275l.047.022.116.057a4.581%204.581%200%20012.188%202.399c.209.51.313%201.041.315%201.595a4.24%204.24%200%2001-.134%201.223.123.123%200%2000.03.115c.594.607.988%201.33%201.183%202.17.289%201.425-.007%202.71-.887%203.854l-.136.166a4.548%204.548%200%2001-2.201%201.388.123.123%200%2000-.081.076c-.191.551-.383%201.023-.74%201.494-.9%201.187-2.222%201.846-3.711%201.838-1.187-.006-2.239-.44-3.157-1.302a.107.107%200%2000-.105-.024c-.388.125-.78.143-1.204.138a4.441%204.441%200%2001-1.945-.466%204.544%204.544%200%2001-1.61-1.335c-.152-.202-.303-.392-.414-.617a5.81%205.81%200%2001-.37-.961%204.582%204.582%200%2001-.014-2.298.124.124%200%2000.006-.056.085.085%200%2000-.027-.048%204.467%204.467%200%2001-1.034-1.651%203.896%203.896%200%2001-.251-1.192%205.189%205.189%200%2001.141-1.6c.337-1.112.982-1.985%201.933-2.618.212-.141.413-.251.601-.33.215-.089.43-.164.646-.227a.098.098%200%2000.065-.066%204.51%204.51%200%2001.829-1.615%204.535%204.535%200%20011.837-1.388zm3.482%2010.565a.637.637%200%20000%201.272h3.636a.637.637%200%20100-1.272h-3.636zM8.462%209.23a.637.637%200%2000-1.106.631l1.272%202.224-1.266%202.136a.636.636%200%20101.095.649l1.454-2.455a.636.636%200%2000.005-.64L8.462%209.23z'%20fill='url(%23lobe-icons-codex-fill)'%3e%3c/path%3e%3cdefs%3e%3clinearGradient%20gradientUnits='userSpaceOnUse'%20id='lobe-icons-codex-fill'%20x1='12'%20x2='12'%20y1='3'%20y2='21'%3e%3cstop%20stop-color='%23B1A7FF'%3e%3c/stop%3e%3cstop%20offset='.5'%20stop-color='%237A9DFF'%3e%3c/stop%3e%3cstop%20offset='1'%20stop-color='%233941FF'%3e%3c/stop%3e%3c/linearGradient%3e%3c/defs%3e%3c/svg%3e`,Gx=`data:image/svg+xml,%3csvg%20height='1em'%20style='flex:none;line-height:1'%20viewBox='0%200%2024%2024'%20width='1em'%20xmlns='http://www.w3.org/2000/svg'%3e%3ctitle%3eMeta%3c/title%3e%3cpath%20d='M6.897%204h-.024l-.031%202.615h.022c1.715%200%203.046%201.357%205.94%206.246l.175.297.012.02%201.62-2.438-.012-.019a48.763%2048.763%200%2000-1.098-1.716%2028.01%2028.01%200%2000-1.175-1.629C10.413%204.932%208.812%204%206.896%204z'%20fill='url(%23lobe-icons-meta-0-_R_0_)'%3e%3c/path%3e%3cpath%20d='M6.873%204C4.95%204.01%203.247%205.258%202.02%207.17a4.352%204.352%200%2000-.01.017l2.254%201.231.011-.017c.718-1.083%201.61-1.774%202.568-1.785h.021L6.896%204h-.023z'%20fill='url(%23lobe-icons-meta-1-_R_0_)'%3e%3c/path%3e%3cpath%20d='M2.019%207.17l-.011.017C1.2%208.447.598%209.995.274%2011.664l-.005.022%202.534.6.004-.022c.27-1.467.786-2.828%201.456-3.845l.011-.017L2.02%207.17z'%20fill='url(%23lobe-icons-meta-2-_R_0_)'%3e%3c/path%3e%3cpath%20d='M2.807%2012.264l-2.533-.6-.005.022c-.177.918-.267%201.851-.269%202.786v.023l2.598.233v-.023a12.591%2012.591%200%2001.21-2.44z'%20fill='url(%23lobe-icons-meta-3-_R_0_)'%3e%3c/path%3e%3cpath%20d='M2.677%2015.537a5.462%205.462%200%2001-.079-.813v-.022L0%2014.468v.024a8.89%208.89%200%2000.146%201.652l2.535-.585a4.106%204.106%200%2001-.004-.022z'%20fill='url(%23lobe-icons-meta-4-_R_0_)'%3e%3c/path%3e%3cpath%20d='M3.27%2016.89c-.284-.31-.484-.756-.589-1.328l-.004-.021-2.535.585.004.021c.192%201.01.568%201.85%201.106%202.487l.014.017%202.018-1.745a2.106%202.106%200%2001-.015-.016z'%20fill='url(%23lobe-icons-meta-5-_R_0_)'%3e%3c/path%3e%3cpath%20d='M10.78%209.654c-1.528%202.35-2.454%203.825-2.454%203.825-2.035%203.2-2.739%203.917-3.871%203.917a1.545%201.545%200%2001-1.186-.508l-2.017%201.744.014.017C2.01%2019.518%203.058%2020%204.356%2020c1.963%200%203.374-.928%205.884-5.33l1.766-3.13a41.283%2041.283%200%2000-1.227-1.886z'%20fill='%230082FB'%3e%3c/path%3e%3cpath%20d='M13.502%205.946l-.016.016c-.4.43-.786.908-1.16%201.416.378.483.768%201.024%201.175%201.63.48-.743.928-1.345%201.367-1.807l.016-.016-1.382-1.24z'%20fill='url(%23lobe-icons-meta-6-_R_0_)'%3e%3c/path%3e%3cpath%20d='M20.918%205.713C19.853%204.633%2018.583%204%2017.225%204c-1.432%200-2.637.787-3.723%201.944l-.016.016%201.382%201.24.016-.017c.715-.747%201.408-1.12%202.176-1.12.826%200%201.6.39%202.27%201.075l.015.016%201.589-1.425-.016-.016z'%20fill='%230082FB'%3e%3c/path%3e%3cpath%20d='M23.998%2014.125c-.06-3.467-1.27-6.566-3.064-8.396l-.016-.016-1.588%201.424.015.016c1.35%201.392%202.277%203.98%202.361%206.971v.023h2.292v-.022z'%20fill='url(%23lobe-icons-meta-7-_R_0_)'%3e%3c/path%3e%3cpath%20d='M23.998%2014.15v-.023h-2.292v.022c.004.14.006.282.006.424%200%20.815-.121%201.474-.368%201.95l-.011.022%201.708%201.782.013-.02c.62-.96.946-2.293.946-3.91%200-.083%200-.165-.002-.247z'%20fill='url(%23lobe-icons-meta-8-_R_0_)'%3e%3c/path%3e%3cpath%20d='M21.344%2016.52l-.011.02c-.214.402-.519.67-.917.787l.778%202.462a3.493%203.493%200%2000.438-.182%203.558%203.558%200%20001.366-1.218l.044-.065.012-.02-1.71-1.784z'%20fill='url(%23lobe-icons-meta-9-_R_0_)'%3e%3c/path%3e%3cpath%20d='M19.92%2017.393c-.262%200-.492-.039-.718-.14l-.798%202.522c.449.153.927.222%201.46.222.492%200%20.943-.073%201.352-.215l-.78-2.462c-.167.05-.341.075-.517.073z'%20fill='url(%23lobe-icons-meta-10-_R_0_)'%3e%3c/path%3e%3cpath%20d='M18.323%2016.534l-.014-.017-1.836%201.914.016.017c.637.682%201.246%201.105%201.937%201.337l.797-2.52c-.291-.125-.573-.353-.9-.731z'%20fill='url(%23lobe-icons-meta-11-_R_0_)'%3e%3c/path%3e%3cpath%20d='M18.309%2016.515c-.55-.642-1.232-1.712-2.303-3.44l-1.396-2.336-.011-.02-1.62%202.438.012.02.989%201.668c.959%201.61%201.74%202.774%202.493%203.585l.016.016%201.834-1.914a2.353%202.353%200%2001-.014-.017z'%20fill='url(%23lobe-icons-meta-12-_R_0_)'%3e%3c/path%3e%3cdefs%3e%3clinearGradient%20id='lobe-icons-meta-0-_R_0_'%20x1='75.897%25'%20x2='26.312%25'%20y1='89.199%25'%20y2='12.194%25'%3e%3cstop%20offset='.06%25'%20stop-color='%230867DF'%3e%3c/stop%3e%3cstop%20offset='45.39%25'%20stop-color='%230668E1'%3e%3c/stop%3e%3cstop%20offset='85.91%25'%20stop-color='%230064E0'%3e%3c/stop%3e%3c/linearGradient%3e%3clinearGradient%20id='lobe-icons-meta-1-_R_0_'%20x1='21.67%25'%20x2='97.068%25'%20y1='75.874%25'%20y2='23.985%25'%3e%3cstop%20offset='13.23%25'%20stop-color='%230064DF'%3e%3c/stop%3e%3cstop%20offset='99.88%25'%20stop-color='%230064E0'%3e%3c/stop%3e%3c/linearGradient%3e%3clinearGradient%20id='lobe-icons-meta-2-_R_0_'%20x1='38.263%25'%20x2='60.895%25'%20y1='89.127%25'%20y2='16.131%25'%3e%3cstop%20offset='1.47%25'%20stop-color='%230072EC'%3e%3c/stop%3e%3cstop%20offset='68.81%25'%20stop-color='%230064DF'%3e%3c/stop%3e%3c/linearGradient%3e%3clinearGradient%20id='lobe-icons-meta-3-_R_0_'%20x1='47.032%25'%20x2='52.15%25'%20y1='90.19%25'%20y2='15.745%25'%3e%3cstop%20offset='7.31%25'%20stop-color='%23007CF6'%3e%3c/stop%3e%3cstop%20offset='99.43%25'%20stop-color='%230072EC'%3e%3c/stop%3e%3c/linearGradient%3e%3clinearGradient%20id='lobe-icons-meta-4-_R_0_'%20x1='52.155%25'%20x2='47.591%25'%20y1='58.301%25'%20y2='37.004%25'%3e%3cstop%20offset='7.31%25'%20stop-color='%23007FF9'%3e%3c/stop%3e%3cstop%20offset='100%25'%20stop-color='%23007CF6'%3e%3c/stop%3e%3c/linearGradient%3e%3clinearGradient%20id='lobe-icons-meta-5-_R_0_'%20x1='37.689%25'%20x2='61.961%25'%20y1='12.502%25'%20y2='63.624%25'%3e%3cstop%20offset='7.31%25'%20stop-color='%23007FF9'%3e%3c/stop%3e%3cstop%20offset='100%25'%20stop-color='%230082FB'%3e%3c/stop%3e%3c/linearGradient%3e%3clinearGradient%20id='lobe-icons-meta-6-_R_0_'%20x1='34.808%25'%20x2='62.313%25'%20y1='68.859%25'%20y2='23.174%25'%3e%3cstop%20offset='27.99%25'%20stop-color='%23007FF8'%3e%3c/stop%3e%3cstop%20offset='91.41%25'%20stop-color='%230082FB'%3e%3c/stop%3e%3c/linearGradient%3e%3clinearGradient%20id='lobe-icons-meta-7-_R_0_'%20x1='43.762%25'%20x2='57.602%25'%20y1='6.235%25'%20y2='98.514%25'%3e%3cstop%20offset='0%25'%20stop-color='%230082FB'%3e%3c/stop%3e%3cstop%20offset='99.95%25'%20stop-color='%230081FA'%3e%3c/stop%3e%3c/linearGradient%3e%3clinearGradient%20id='lobe-icons-meta-8-_R_0_'%20x1='60.055%25'%20x2='39.88%25'%20y1='4.661%25'%20y2='69.077%25'%3e%3cstop%20offset='6.19%25'%20stop-color='%230081FA'%3e%3c/stop%3e%3cstop%20offset='100%25'%20stop-color='%230080F9'%3e%3c/stop%3e%3c/linearGradient%3e%3clinearGradient%20id='lobe-icons-meta-9-_R_0_'%20x1='30.282%25'%20x2='61.081%25'%20y1='59.32%25'%20y2='33.244%25'%3e%3cstop%20offset='0%25'%20stop-color='%23027AF3'%3e%3c/stop%3e%3cstop%20offset='100%25'%20stop-color='%230080F9'%3e%3c/stop%3e%3c/linearGradient%3e%3clinearGradient%20id='lobe-icons-meta-10-_R_0_'%20x1='20.433%25'%20x2='82.112%25'%20y1='50.001%25'%20y2='50.001%25'%3e%3cstop%20offset='0%25'%20stop-color='%230377EF'%3e%3c/stop%3e%3cstop%20offset='99.94%25'%20stop-color='%230279F1'%3e%3c/stop%3e%3c/linearGradient%3e%3clinearGradient%20id='lobe-icons-meta-11-_R_0_'%20x1='40.303%25'%20x2='72.394%25'%20y1='35.298%25'%20y2='57.811%25'%3e%3cstop%20offset='.19%25'%20stop-color='%230471E9'%3e%3c/stop%3e%3cstop%20offset='100%25'%20stop-color='%230377EF'%3e%3c/stop%3e%3c/linearGradient%3e%3clinearGradient%20id='lobe-icons-meta-12-_R_0_'%20x1='32.254%25'%20x2='68.003%25'%20y1='19.719%25'%20y2='84.908%25'%3e%3cstop%20offset='27.65%25'%20stop-color='%230867DF'%3e%3c/stop%3e%3cstop%20offset='100%25'%20stop-color='%230471E9'%3e%3c/stop%3e%3c/linearGradient%3e%3c/defs%3e%3c/svg%3e`,Kx=`data:image/svg+xml,%3csvg%20fill='currentColor'%20fill-rule='evenodd'%20height='1em'%20style='flex:none;line-height:1'%20viewBox='0%200%2024%2024'%20width='1em'%20xmlns='http://www.w3.org/2000/svg'%3e%3ctitle%3eDevin%3c/title%3e%3cpath%20d='M2.033%209.867l2.554%201.483a.589.589%200%2000.592%200l2.554-1.483.01-.008a.608.608%200%2000.11-.084l.013-.015a.631.631%200%2000.076-.1c.003-.005.008-.01.01-.016a.558.558%200%2000.052-.125l.007-.028a.611.611%200%2000.019-.14V7.868c0-.572.307-1.105.8-1.392a1.595%201.595%200%20011.598%200l1.277.742a.54.54%200%2000.129.053l.028.01c.044.01.088.015.133.016h.006l.013-.002a.587.587%200%2000.27-.074l.011-.004%202.554-1.483a.596.596%200%2000.297-.516V2.253a.595.595%200%2000-.297-.516L12.293.257a.587.587%200%2000-.591%200L9.148%201.737l-.01.01a.609.609%200%2000-.109.083l-.014.015a.632.632%200%2000-.076.1c-.003.005-.008.01-.01.016a.57.57%200%2000-.052.124l-.007.028a.612.612%200%2000-.018.14v1.483c0%20.572-.307%201.105-.8%201.393a1.597%201.597%200%2001-1.599%200l-1.276-.742a.603.603%200%2000-.13-.053l-.028-.008a.658.658%200%2000-.133-.018h-.02a.57.57%200%2000-.269.074c-.003.002-.008.002-.012.005L2.033%205.872a.596.596%200%2000-.297.515v2.966c0%20.213.113.41.297.515z'%3e%3c/path%3e%3cpath%20d='M15.943%2010.607a1.596%201.596%200%20011.599%200l1.276.74c.041.025.085.04.13.055l.028.008c.043.01.088.016.133.018h.005c.005%200%20.01-.002.014-.003a.474.474%200%2000.122-.016l.021-.005a.616.616%200%2000.126-.052c.004-.002.009-.002.013-.005l2.554-1.482a.597.597%200%2000.297-.516V6.383a.596.596%200%2000-.297-.515l-2.552-1.483a.587.587%200%2000-.592%200l-2.553%201.482-.011.008a.61.61%200%2000-.108.084l-.014.016a.637.637%200%2000-.076.1c-.003.005-.008.01-.01.016a.57.57%200%2000-.052.124l-.007.029a.612.612%200%2000-.018.14v1.482c0%20.572-.307%201.105-.8%201.393a1.597%201.597%200%2001-1.599%200l-1.276-.742a.584.584%200%2000-.13-.053l-.028-.008a.62.62%200%2000-.133-.018h-.02a.587.587%200%2000-.269.074l-.012.004L9.15%2010a.596.596%200%2000-.296.516v2.966c0%20.212.112.409.296.515l2.554%201.483s.008.002.012.005c.04.022.082.04.126.052l.02.004a.57.57%200%2000.123.017l.014.002h.006c.054%200%20.108-.01.16-.025a.587.587%200%2000.13-.054l1.277-.741a1.597%201.597%200%20012.398%201.392v1.482c0%20.049.007.095.019.14l.007.028a.619.619%200%2000.051.125c.004.006.008.01.01.016a.6.6%200%2000.076.1l.014.015c.033.032.069.06.108.084.004.002.006.006.011.008l2.554%201.483a.59.59%200%2000.593%200l2.554-1.483a.597.597%200%2000.296-.516v-2.965a.595.595%200%2000-.296-.516l-2.554-1.483s-.008-.002-.012-.005a.54.54%200%2000-.126-.051c-.007-.003-.013-.003-.02-.005a.635.635%200%2000-.125-.017h-.018a.557.557%200%2000-.16.026.588.588%200%2000-.13.053l-1.276.742a1.595%201.595%200%2001-1.598%200%201.615%201.615%200%20010-2.785l-.005-.001z'%3e%3c/path%3e%3cpath%20d='M14.848%2018.265l-2.554-1.482-.012-.005a.526.526%200%2000-.126-.052c-.007-.002-.014-.002-.02-.005a.64.64%200%2000-.124-.017h-.02a.56.56%200%2000-.16.026.588.588%200%2000-.13.053l-1.276.742a1.594%201.594%200%2001-1.598%200c-.493-.286-.8-.82-.8-1.393V14.65a.563.563%200%2000-.018-.14l-.008-.028a.604.604%200%2000-.051-.124l-.01-.017a.603.603%200%2000-.076-.1l-.014-.015a.596.596%200%2000-.109-.084c-.003-.002-.005-.006-.01-.008L5.178%2012.65a.587.587%200%2000-.591%200l-2.554%201.483a.596.596%200%2000-.297.516v2.965c0%20.213.113.41.297.516l2.554%201.483.012.004a.618.618%200%2000.267.074l.016.002h.007a.55.55%200%2000.16-.026.584.584%200%2000.129-.053l1.277-.742a1.597%201.597%200%20012.398%201.393v1.482c0%20.05.007.095.019.14l.007.028c.013.044.03.085.051.125l.01.016c.022.036.047.07.076.1l.014.015c.032.032.069.06.109.084l.01.008%202.554%201.483a.587.587%200%2000.593%200l2.554-1.483a.596.596%200%2000.296-.515v-2.966a.596.596%200%2000-.296-.516h-.002z'%3e%3c/path%3e%3c/svg%3e`,qx=`data:image/svg+xml,%3csvg%20fill='%23ffffff'%20fill-rule='evenodd'%20height='1em'%20style='flex:none;line-height:1'%20viewBox='0%200%2024%2024'%20width='1em'%20xmlns='http://www.w3.org/2000/svg'%3e%3ctitle%3eDevin%3c/title%3e%3cpath%20d='M2.033%209.867l2.554%201.483a.589.589%200%2000.592%200l2.554-1.483.01-.008a.608.608%200%2000.11-.084l.013-.015a.631.631%200%2000.076-.1c.003-.005.008-.01.01-.016a.558.558%200%2000.052-.125l.007-.028a.611.611%200%2000.019-.14V7.868c0-.572.307-1.105.8-1.392a1.595%201.595%200%20011.598%200l1.277.742a.54.54%200%2000.129.053l.028.01c.044.01.088.015.133.016h.006l.013-.002a.587.587%200%2000.27-.074l.011-.004%202.554-1.483a.596.596%200%2000.297-.516V2.253a.595.595%200%2000-.297-.516L12.293.257a.587.587%200%2000-.591%200L9.148%201.737l-.01.01a.609.609%200%2000-.109.083l-.014.015a.632.632%200%2000-.076.1c-.003.005-.008.01-.01.016a.57.57%200%2000-.052.124l-.007.028a.612.612%200%2000-.018.14v1.483c0%20.572-.307%201.105-.8%201.393a1.597%201.597%200%2001-1.599%200l-1.276-.742a.603.603%200%2000-.13-.053l-.028-.008a.658.658%200%2000-.133-.018h-.02a.57.57%200%2000-.269.074c-.003.002-.008.002-.012.005L2.033%205.872a.596.596%200%2000-.297.515v2.966c0%20.213.113.41.297.515z'%3e%3c/path%3e%3cpath%20d='M15.943%2010.607a1.596%201.596%200%20011.599%200l1.276.74c.041.025.085.04.13.055l.028.008c.043.01.088.016.133.018h.005c.005%200%20.01-.002.014-.003a.474.474%200%2000.122-.016l.021-.005a.616.616%200%2000.126-.052c.004-.002.009-.002.013-.005l2.554-1.482a.597.597%200%2000.297-.516V6.383a.596.596%200%2000-.297-.515l-2.552-1.483a.587.587%200%2000-.592%200l-2.553%201.482-.011.008a.61.61%200%2000-.108.084l-.014.016a.637.637%200%2000-.076.1c-.003.005-.008.01-.01.016a.57.57%200%2000-.052.124l-.007.029a.612.612%200%2000-.018.14v1.482c0%20.572-.307%201.105-.8%201.393a1.597%201.597%200%2001-1.599%200l-1.276-.742a.584.584%200%2000-.13-.053l-.028-.008a.62.62%200%2000-.133-.018h-.02a.587.587%200%2000-.269.074l-.012.004L9.15%2010a.596.596%200%2000-.296.516v2.966c0%20.212.112.409.296.515l2.554%201.483s.008.002.012.005c.04.022.082.04.126.052l.02.004a.57.57%200%2000.123.017l.014.002h.006c.054%200%20.108-.01.16-.025a.587.587%200%2000.13-.054l1.277-.741a1.597%201.597%200%20012.398%201.392v1.482c0%20.049.007.095.019.14l.007.028a.619.619%200%2000.051.125c.004.006.008.01.01.016a.6.6%200%2000.076.1l.014.015c.033.032.069.06.108.084.004.002.006.006.011.008l2.554%201.483a.59.59%200%2000.593%200l2.554-1.483a.597.597%200%2000.296-.516v-2.965a.595.595%200%2000-.296-.516l-2.554-1.483s-.008-.002-.012-.005a.54.54%200%2000-.126-.051c-.007-.003-.013-.003-.02-.005a.635.635%200%2000-.125-.017h-.018a.557.557%200%2000-.16.026.588.588%200%2000-.13.053l-1.276.742a1.595%201.595%200%2001-1.598%200%201.615%201.615%200%20010-2.785l-.005-.001z'%3e%3c/path%3e%3cpath%20d='M14.848%2018.265l-2.554-1.482-.012-.005a.526.526%200%2000-.126-.052c-.007-.002-.014-.002-.02-.005a.64.64%200%2000-.124-.017h-.02a.56.56%200%2000-.16.026.588.588%200%2000-.13.053l-1.276.742a1.594%201.594%200%2001-1.598%200c-.493-.286-.8-.82-.8-1.393V14.65a.563.563%200%2000-.018-.14l-.008-.028a.604.604%200%2000-.051-.124l-.01-.017a.603.603%200%2000-.076-.1l-.014-.015a.596.596%200%2000-.109-.084c-.003-.002-.005-.006-.01-.008L5.178%2012.65a.587.587%200%2000-.591%200l-2.554%201.483a.596.596%200%2000-.297.516v2.965c0%20.213.113.41.297.516l2.554%201.483.012.004a.618.618%200%2000.267.074l.016.002h.007a.55.55%200%2000.16-.026.584.584%200%2000.129-.053l1.277-.742a1.597%201.597%200%20012.398%201.393v1.482c0%20.05.007.095.019.14l.007.028c.013.044.03.085.051.125l.01.016c.022.036.047.07.076.1l.014.015c.032.032.069.06.109.084l.01.008%202.554%201.483a.587.587%200%2000.593%200l2.554-1.483a.596.596%200%2000.296-.515v-2.966a.596.596%200%2000-.296-.516h-.002z'%3e%3c/path%3e%3c/svg%3e`,Jx=`data:image/svg+xml,%3csvg%20height='1em'%20style='flex:none;line-height:1'%20viewBox='0%200%2024%2024'%20width='1em'%20xmlns='http://www.w3.org/2000/svg'%3e%3ctitle%3eGemini%3c/title%3e%3cpath%20d='M20.616%2010.835a14.147%2014.147%200%2001-4.45-3.001%2014.111%2014.111%200%2001-3.678-6.452.503.503%200%2000-.975%200%2014.134%2014.134%200%2001-3.679%206.452%2014.155%2014.155%200%2001-4.45%203.001c-.65.28-1.318.505-2.002.678a.502.502%200%20000%20.975c.684.172%201.35.397%202.002.677a14.147%2014.147%200%20014.45%203.001%2014.112%2014.112%200%20013.679%206.453.502.502%200%2000.975%200c.172-.685.397-1.351.677-2.003a14.145%2014.145%200%20013.001-4.45%2014.113%2014.113%200%20016.453-3.678.503.503%200%20000-.975%2013.245%2013.245%200%2001-2.003-.678z'%20fill='%233186FF'%3e%3c/path%3e%3cpath%20d='M20.616%2010.835a14.147%2014.147%200%2001-4.45-3.001%2014.111%2014.111%200%2001-3.678-6.452.503.503%200%2000-.975%200%2014.134%2014.134%200%2001-3.679%206.452%2014.155%2014.155%200%2001-4.45%203.001c-.65.28-1.318.505-2.002.678a.502.502%200%20000%20.975c.684.172%201.35.397%202.002.677a14.147%2014.147%200%20014.45%203.001%2014.112%2014.112%200%20013.679%206.453.502.502%200%2000.975%200c.172-.685.397-1.351.677-2.003a14.145%2014.145%200%20013.001-4.45%2014.113%2014.113%200%20016.453-3.678.503.503%200%20000-.975%2013.245%2013.245%200%2001-2.003-.678z'%20fill='url(%23lobe-icons-gemini-fill-0)'%3e%3c/path%3e%3cpath%20d='M20.616%2010.835a14.147%2014.147%200%2001-4.45-3.001%2014.111%2014.111%200%2001-3.678-6.452.503.503%200%2000-.975%200%2014.134%2014.134%200%2001-3.679%206.452%2014.155%2014.155%200%2001-4.45%203.001c-.65.28-1.318.505-2.002.678a.502.502%200%20000%20.975c.684.172%201.35.397%202.002.677a14.147%2014.147%200%20014.45%203.001%2014.112%2014.112%200%20013.679%206.453.502.502%200%2000.975%200c.172-.685.397-1.351.677-2.003a14.145%2014.145%200%20013.001-4.45%2014.113%2014.113%200%20016.453-3.678.503.503%200%20000-.975%2013.245%2013.245%200%2001-2.003-.678z'%20fill='url(%23lobe-icons-gemini-fill-1)'%3e%3c/path%3e%3cpath%20d='M20.616%2010.835a14.147%2014.147%200%2001-4.45-3.001%2014.111%2014.111%200%2001-3.678-6.452.503.503%200%2000-.975%200%2014.134%2014.134%200%2001-3.679%206.452%2014.155%2014.155%200%2001-4.45%203.001c-.65.28-1.318.505-2.002.678a.502.502%200%20000%20.975c.684.172%201.35.397%202.002.677a14.147%2014.147%200%20014.45%203.001%2014.112%2014.112%200%20013.679%206.453.502.502%200%2000.975%200c.172-.685.397-1.351.677-2.003a14.145%2014.145%200%20013.001-4.45%2014.113%2014.113%200%20016.453-3.678.503.503%200%20000-.975%2013.245%2013.245%200%2001-2.003-.678z'%20fill='url(%23lobe-icons-gemini-fill-2)'%3e%3c/path%3e%3cdefs%3e%3clinearGradient%20gradientUnits='userSpaceOnUse'%20id='lobe-icons-gemini-fill-0'%20x1='7'%20x2='11'%20y1='15.5'%20y2='12'%3e%3cstop%20stop-color='%2308B962'%3e%3c/stop%3e%3cstop%20offset='1'%20stop-color='%2308B962'%20stop-opacity='0'%3e%3c/stop%3e%3c/linearGradient%3e%3clinearGradient%20gradientUnits='userSpaceOnUse'%20id='lobe-icons-gemini-fill-1'%20x1='8'%20x2='11.5'%20y1='5.5'%20y2='11'%3e%3cstop%20stop-color='%23F94543'%3e%3c/stop%3e%3cstop%20offset='1'%20stop-color='%23F94543'%20stop-opacity='0'%3e%3c/stop%3e%3c/linearGradient%3e%3clinearGradient%20gradientUnits='userSpaceOnUse'%20id='lobe-icons-gemini-fill-2'%20x1='3.5'%20x2='17.5'%20y1='13.5'%20y2='12'%3e%3cstop%20stop-color='%23FABC12'%3e%3c/stop%3e%3cstop%20offset='.46'%20stop-color='%23FABC12'%20stop-opacity='0'%3e%3c/stop%3e%3c/linearGradient%3e%3c/defs%3e%3c/svg%3e`,Yx=`data:image/svg+xml,%3csvg%20fill='%23000000'%20fill-rule='evenodd'%20height='1em'%20style='flex:none;line-height:1'%20viewBox='0%200%2024%2024'%20width='1em'%20xmlns='http://www.w3.org/2000/svg'%3e%3ctitle%3eOpenAI%3c/title%3e%3cpath%20d='M21.55%2010.004a5.416%205.416%200%2000-.478-4.501c-1.217-2.09-3.662-3.166-6.05-2.66A5.59%205.59%200%200010.831%201C8.39.995%206.224%202.546%205.473%204.838A5.553%205.553%200%20001.76%207.496a5.487%205.487%200%2000.691%206.5%205.416%205.416%200%2000.477%204.502c1.217%202.09%203.662%203.165%206.05%202.66A5.586%205.586%200%200013.168%2023c2.443.006%204.61-1.546%205.361-3.84a5.553%205.553%200%20003.715-2.66%205.488%205.488%200%2000-.693-6.497v.001zm-8.381%2011.558a4.199%204.199%200%2001-2.675-.954c.034-.018.093-.05.132-.074l4.44-2.53a.71.71%200%2000.364-.623v-6.176l1.877%201.069c.02.01.033.029.036.05v5.115c-.003%202.274-1.87%204.118-4.174%204.123zM4.192%2017.78a4.059%204.059%200%2001-.498-2.763c.032.02.09.055.131.078l4.44%202.53c.225.13.504.13.73%200l5.42-3.088v2.138a.068.068%200%2001-.027.057L9.9%2019.288c-1.999%201.136-4.552.46-5.707-1.51h-.001zM3.023%208.216A4.15%204.15%200%20015.198%206.41l-.002.151v5.06a.711.711%200%2000.364.624l5.42%203.087-1.876%201.07a.067.067%200%2001-.063.005l-4.489-2.559c-1.995-1.14-2.679-3.658-1.53-5.63h.001zm15.417%203.54l-5.42-3.088L14.896%207.6a.067.067%200%2001.063-.006l4.489%202.557c1.998%201.14%202.683%203.662%201.529%205.633a4.163%204.163%200%2001-2.174%201.807V12.38a.71.71%200%2000-.363-.623zm1.867-2.773a6.04%206.04%200%2000-.132-.078l-4.44-2.53a.731.731%200%2000-.729%200l-5.42%203.088V7.325a.068.068%200%2001.027-.057L14.1%204.713c2-1.137%204.555-.46%205.707%201.513.487.833.664%201.809.499%202.757h.001zm-11.741%203.81l-1.877-1.068a.065.065%200%2001-.036-.051V6.559c.001-2.277%201.873-4.122%204.181-4.12.976%200%201.92.338%202.671.954-.034.018-.092.05-.131.073l-4.44%202.53a.71.71%200%2000-.365.623l-.003%206.173v.002zm1.02-2.168L12%209.25l2.414%201.375v2.75L12%2014.75l-2.415-1.375v-2.75z'%3e%3c/path%3e%3c/svg%3e`,Xx=`data:image/svg+xml,%3csvg%20fill='%23ffffff'%20fill-rule='evenodd'%20height='1em'%20style='flex:none;line-height:1'%20viewBox='0%200%2024%2024'%20width='1em'%20xmlns='http://www.w3.org/2000/svg'%3e%3ctitle%3eOpenAI%3c/title%3e%3cpath%20d='M21.55%2010.004a5.416%205.416%200%2000-.478-4.501c-1.217-2.09-3.662-3.166-6.05-2.66A5.59%205.59%200%200010.831%201C8.39.995%206.224%202.546%205.473%204.838A5.553%205.553%200%20001.76%207.496a5.487%205.487%200%2000.691%206.5%205.416%205.416%200%2000.477%204.502c1.217%202.09%203.662%203.165%206.05%202.66A5.586%205.586%200%200013.168%2023c2.443.006%204.61-1.546%205.361-3.84a5.553%205.553%200%20003.715-2.66%205.488%205.488%200%2000-.693-6.497v.001zm-8.381%2011.558a4.199%204.199%200%2001-2.675-.954c.034-.018.093-.05.132-.074l4.44-2.53a.71.71%200%2000.364-.623v-6.176l1.877%201.069c.02.01.033.029.036.05v5.115c-.003%202.274-1.87%204.118-4.174%204.123zM4.192%2017.78a4.059%204.059%200%2001-.498-2.763c.032.02.09.055.131.078l4.44%202.53c.225.13.504.13.73%200l5.42-3.088v2.138a.068.068%200%2001-.027.057L9.9%2019.288c-1.999%201.136-4.552.46-5.707-1.51h-.001zM3.023%208.216A4.15%204.15%200%20015.198%206.41l-.002.151v5.06a.711.711%200%2000.364.624l5.42%203.087-1.876%201.07a.067.067%200%2001-.063.005l-4.489-2.559c-1.995-1.14-2.679-3.658-1.53-5.63h.001zm15.417%203.54l-5.42-3.088L14.896%207.6a.067.067%200%2001.063-.006l4.489%202.557c1.998%201.14%202.683%203.662%201.529%205.633a4.163%204.163%200%2001-2.174%201.807V12.38a.71.71%200%2000-.363-.623zm1.867-2.773a6.04%206.04%200%2000-.132-.078l-4.44-2.53a.731.731%200%2000-.729%200l-5.42%203.088V7.325a.068.068%200%2001.027-.057L14.1%204.713c2-1.137%204.555-.46%205.707%201.513.487.833.664%201.809.499%202.757h.001zm-11.741%203.81l-1.877-1.068a.065.065%200%2001-.036-.051V6.559c.001-2.277%201.873-4.122%204.181-4.12.976%200%201.92.338%202.671.954-.034.018-.092.05-.131.073l-4.44%202.53a.71.71%200%2000-.365.623l-.003%206.173v.002zm1.02-2.168L12%209.25l2.414%201.375v2.75L12%2014.75l-2.415-1.375v-2.75z'%3e%3c/path%3e%3c/svg%3e`,Zx=`data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20width='24px'%20height='24px'%3e%3cpath%20d='M20,13.89A.77.77,0,0,0,19,13.73l-7,5.14v.22a.72.72,0,1,1,0,1.43v0a.74.74,0,0,0,.45-.15l7.41-5.47A.76.76,0,0,0,20,13.89Z'%20style='fill:%23669df6'/%3e%3cpath%20d='M12,20.52a.72.72,0,0,1,0-1.43h0v-.22L5,13.73a.76.76,0,0,0-1,.16.74.74,0,0,0,.16,1l7.41,5.47a.73.73,0,0,0,.44.15v0Z'%20style='fill:%23aecbfa'/%3e%3cpath%20d='M12,18.34a1.47,1.47,0,1,0,1.47,1.47A1.47,1.47,0,0,0,12,18.34Zm0,2.18a.72.72,0,1,1,.72-.71A.71.71,0,0,1,12,20.52Z'%20style='fill:%234285f4'/%3e%3cpath%20d='M6,6.11a.76.76,0,0,1-.75-.75V3.48a.76.76,0,1,1,1.51,0V5.36A.76.76,0,0,1,6,6.11Z'%20style='fill:%23aecbfa'/%3e%3ccircle%20cx='5.98'%20cy='12'%20r='0.76'%20style='fill:%23aecbfa'/%3e%3ccircle%20cx='5.98'%20cy='9.79'%20r='0.76'%20style='fill:%23aecbfa'/%3e%3ccircle%20cx='5.98'%20cy='7.57'%20r='0.76'%20style='fill:%23aecbfa'/%3e%3cpath%20d='M18,8.31a.76.76,0,0,1-.75-.76V5.67a.75.75,0,1,1,1.5,0V7.55A.75.75,0,0,1,18,8.31Z'%20style='fill:%234285f4'/%3e%3ccircle%20cx='18.02'%20cy='12.01'%20r='0.76'%20style='fill:%234285f4'/%3e%3ccircle%20cx='18.02'%20cy='9.76'%20r='0.76'%20style='fill:%234285f4'/%3e%3ccircle%20cx='18.02'%20cy='3.48'%20r='0.76'%20style='fill:%234285f4'/%3e%3cpath%20d='M12,15a.76.76,0,0,1-.75-.75V12.34a.76.76,0,0,1,1.51,0v1.89A.76.76,0,0,1,12,15Z'%20style='fill:%23669df6'/%3e%3ccircle%20cx='12'%20cy='16.45'%20r='0.76'%20style='fill:%23669df6'/%3e%3ccircle%20cx='12'%20cy='10.14'%20r='0.76'%20style='fill:%23669df6'/%3e%3ccircle%20cx='12'%20cy='7.92'%20r='0.76'%20style='fill:%23669df6'/%3e%3cpath%20d='M15,10.54a.76.76,0,0,1-.75-.75V7.91a.76.76,0,1,1,1.51,0V9.79A.76.76,0,0,1,15,10.54Z'%20style='fill:%234285f4'/%3e%3ccircle%20cx='15.01'%20cy='5.69'%20r='0.76'%20style='fill:%234285f4'/%3e%3ccircle%20cx='15.01'%20cy='14.19'%20r='0.76'%20style='fill:%234285f4'/%3e%3ccircle%20cx='15.01'%20cy='11.97'%20r='0.76'%20style='fill:%234285f4'/%3e%3ccircle%20cx='8.99'%20cy='14.19'%20r='0.76'%20style='fill:%23aecbfa'/%3e%3ccircle%20cx='8.99'%20cy='7.92'%20r='0.76'%20style='fill:%23aecbfa'/%3e%3ccircle%20cx='8.99'%20cy='5.69'%20r='0.76'%20style='fill:%23aecbfa'/%3e%3cpath%20d='M9,12.73A.76.76,0,0,1,8.24,12V10.1a.75.75,0,1,1,1.5,0V12A.75.75,0,0,1,9,12.73Z'%20style='fill:%23aecbfa'/%3e%3c/svg%3e`,Qx=`data:image/png;base64,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`,$x=`data:image/png;base64,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`,eS=`data:image/png;base64,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`,tS=`data:image/svg+xml,%3csvg%20fill='currentColor'%20fill-rule='evenodd'%20height='1em'%20style='flex:none;line-height:1'%20viewBox='0%200%2024%2024'%20width='1em'%20xmlns='http://www.w3.org/2000/svg'%3e%3ctitle%3eGrok%3c/title%3e%3cpath%20d='M9.27%2015.29l7.978-5.897c.391-.29.95-.177%201.137.272.98%202.369.542%205.215-1.41%207.169-1.951%201.954-4.667%202.382-7.149%201.406l-2.711%201.257c3.889%202.661%208.611%202.003%2011.562-.953%202.341-2.344%203.066-5.539%202.388-8.42l.006.007c-.983-4.232.242-5.924%202.75-9.383.06-.082.12-.164.179-.248l-3.301%203.305v-.01L9.267%2015.292M7.623%2016.723c-2.792-2.67-2.31-6.801.071-9.184%201.761-1.763%204.647-2.483%207.166-1.425l2.705-1.25a7.808%207.808%200%2000-1.829-1A8.975%208.975%200%20005.984%205.83c-2.533%202.536-3.33%206.436-1.962%209.764%201.022%202.487-.653%204.246-2.34%206.022-.599.63-1.199%201.259-1.682%201.925l7.62-6.815'%3e%3c/path%3e%3c/svg%3e`,nS=`data:image/svg+xml,%3csvg%20fill='%23ffffff'%20fill-rule='evenodd'%20height='1em'%20style='flex:none;line-height:1'%20viewBox='0%200%2024%2024'%20width='1em'%20xmlns='http://www.w3.org/2000/svg'%3e%3ctitle%3eGrok%3c/title%3e%3cpath%20d='M9.27%2015.29l7.978-5.897c.391-.29.95-.177%201.137.272.98%202.369.542%205.215-1.41%207.169-1.951%201.954-4.667%202.382-7.149%201.406l-2.711%201.257c3.889%202.661%208.611%202.003%2011.562-.953%202.341-2.344%203.066-5.539%202.388-8.42l.006.007c-.983-4.232.242-5.924%202.75-9.383.06-.082.12-.164.179-.248l-3.301%203.305v-.01L9.267%2015.292M7.623%2016.723c-2.792-2.67-2.31-6.801.071-9.184%201.761-1.763%204.647-2.483%207.166-1.425l2.705-1.25a7.808%207.808%200%2000-1.829-1A8.975%208.975%200%20005.984%205.83c-2.533%202.536-3.33%206.436-1.962%209.764%201.022%202.487-.653%204.246-2.34%206.022-.599.63-1.199%201.259-1.682%201.925l7.62-6.815'%3e%3c/path%3e%3c/svg%3e`,rS=`data:image/svg+xml,%3csvg%20height='1em'%20style='flex:none;line-height:1'%20viewBox='0%200%2024%2024'%20width='1em'%20xmlns='http://www.w3.org/2000/svg'%3e%3ctitle%3eKimi%3c/title%3e%3crect%20width='24'%20height='24'%20rx='6'%20fill='%23fff'%3e%3c/rect%3e%3cpath%20d='M21.846%200a1.923%201.923%200%20110%203.846H20.15a.226.226%200%2001-.227-.226V1.923C19.923.861%2020.784%200%2021.846%200z'%20fill='%231783FF'%3e%3c/path%3e%3cpath%20d='M11.065%2011.199l7.257-7.2c.137-.136.06-.41-.116-.41H14.3a.164.164%200%2000-.117.051l-7.82%207.756c-.122.12-.302.013-.302-.179V3.82c0-.127-.083-.23-.185-.23H3.186c-.103%200-.186.103-.186.23V19.77c0%20.128.083.23.186.23h2.69c.103%200%20.186-.102.186-.23v-3.25c0-.069.025-.135.069-.178l2.424-2.406a.158.158%200%2001.205-.023l6.484%204.772a7.677%207.677%200%20003.453%201.283c.108.012.2-.095.2-.23v-3.06c0-.117-.07-.212-.164-.227a5.028%205.028%200%2001-2.027-.807l-5.613-4.064c-.117-.078-.132-.279-.028-.381z'%20fill='%23000'%3e%3c/path%3e%3c/svg%3e`,iS=`data:image/svg+xml,%3csvg%20height='1em'%20style='flex:none;line-height:1'%20viewBox='0%200%2024%2024'%20width='1em'%20xmlns='http://www.w3.org/2000/svg'%3e%3ctitle%3eKimi%3c/title%3e%3crect%20width='24'%20height='24'%20rx='6'%20fill='%23000'%3e%3c/rect%3e%3cpath%20d='M21.846%200a1.923%201.923%200%20110%203.846H20.15a.226.226%200%2001-.227-.226V1.923C19.923.861%2020.784%200%2021.846%200z'%20fill='%231783FF'%3e%3c/path%3e%3cpath%20d='M11.065%2011.199l7.257-7.2c.137-.136.06-.41-.116-.41H14.3a.164.164%200%2000-.117.051l-7.82%207.756c-.122.12-.302.013-.302-.179V3.82c0-.127-.083-.23-.185-.23H3.186c-.103%200-.186.103-.186.23V19.77c0%20.128.083.23.186.23h2.69c.103%200%20.186-.102.186-.23v-3.25c0-.069.025-.135.069-.178l2.424-2.406a.158.158%200%2001.205-.023l6.484%204.772a7.677%207.677%200%20003.453%201.283c.108.012.2-.095.2-.23v-3.06c0-.117-.07-.212-.164-.227a5.028%205.028%200%2001-2.027-.807l-5.613-4.064c-.117-.078-.132-.279-.028-.381z'%20fill='%23fff'%3e%3c/path%3e%3c/svg%3e`,aS={gemini:{src:Jx},interactions:{src:Jx},claude:{src:Ux},codex:{src:Wx},meta:{src:Gx,transparent:!0},devin:{src:Kx,darkSrc:qx,transparent:!0},xai:{src:tS,darkSrc:nS,transparent:!0},vertex:{src:Zx},openaiCompatibility:{src:Yx,darkSrc:Xx,transparent:!0},apikeyFun:{src:Qx},fennoAI:{src:$x,transparent:!0},qiniuCloud:{src:eS,transparent:!0},kimi:{src:iS,darkSrc:rS,transparent:!0,themeSurface:!0}},oS={stack:`ProviderCategoryList-module__stack___kBxsD`,aside:`ProviderCategoryList-module__aside___PBIjb`,eyebrow:`ProviderCategoryList-module__eyebrow___oNTkj`,list:`ProviderCategoryList-module__list___i2RZA`,item:`ProviderCategoryList-module__item___WRCng`,active:`ProviderCategoryList-module__active___MLw6R`,itemKimi:`ProviderCategoryList-module__itemKimi___CmmWl`,itemSubtitle:`ProviderCategoryList-module__itemSubtitle___hUfT0`,itemLeft:`ProviderCategoryList-module__itemLeft___z9fEi`,logo:`ProviderCategoryList-module__logo___8TKKa`,logoTransparent:`ProviderCategoryList-module__logoTransparent___waebo`,logoThemeSurface:`ProviderCategoryList-module__logoThemeSurface___ea1Qt`,logoThemeDark:`ProviderCategoryList-module__logoThemeDark___je6QA`,logoThemeLight:`ProviderCategoryList-module__logoThemeLight___VerKO`,logoInvertOnDark:`ProviderCategoryList-module__logoInvertOnDark___4YQXt`,itemText:`ProviderCategoryList-module__itemText___YV93M`,itemTitle:`ProviderCategoryList-module__itemTitle___tWmJK`,badge:`ProviderCategoryList-module__badge___mYck8`,badgeAmber:`ProviderCategoryList-module__badgeAmber___n2AT5`,badgeKimi:`ProviderCategoryList-module__badgeKimi___JnxDL`},sS=[`fennoAI`,`qiniuCloud`],cS=new Set(sS);function lS({groups:e,activeBrand:t,onSelect:n}){let{t:r}=B(),i=e.filter(e=>cS.has(e.id)).sort((e,t)=>sS.indexOf(e.id)-sS.indexOf(t.id)),a=e.filter(e=>!cS.has(e.id)),o=e=>(0,V.jsx)(`div`,{className:oS.list,children:e.map(e=>{let i=e.id===t,a=e.resources.length,o=e.resources.filter(e=>!e.disabled).length,s=aS[e.id],c=[oS.item,i?oS.active:``,e.id===`kimi`?oS.itemKimi:``].filter(Boolean).join(` `),l=[oS.logo,s?.transparent?oS.logoTransparent:``,s?.themeSurface?oS.logoThemeSurface:``,s?.darkSrc?oS.logoThemeLight:``,s?.invertOnDark?oS.logoInvertOnDark:``].filter(Boolean).join(` `),u=[oS.logo,s?.transparent?oS.logoTransparent:``,s?.themeSurface?oS.logoThemeSurface:``,oS.logoThemeDark].filter(Boolean).join(` `);return(0,V.jsxs)(`button`,{type:`button`,className:c,onClick:()=>n(e.id),"aria-current":i?`page`:void 0,children:[(0,V.jsxs)(`span`,{className:oS.itemLeft,children:[s?(0,V.jsxs)(V.Fragment,{children:[(0,V.jsx)(`img`,{src:s.src,alt:``,"aria-hidden":`true`,className:l}),s.darkSrc?(0,V.jsx)(`img`,{src:s.darkSrc,alt:``,"aria-hidden":`true`,className:u}):null]}):null,(0,V.jsxs)(`span`,{className:oS.itemText,children:[(0,V.jsx)(`span`,{className:oS.itemTitle,children:r(`providersPage.providerNames.${e.id}`)}),(0,V.jsx)(`span`,{className:oS.itemSubtitle,children:r(`providersPage.categories.activeCount`,{active:o,total:a})})]})]}),(0,V.jsx)(`span`,{className:[oS.badge,a===0?e.id===`kimi`?oS.badgeKimi:oS.badgeAmber:``].filter(Boolean).join(` `),children:a})]},e.id)})});return(0,V.jsxs)(`div`,{className:oS.stack,children:[(0,V.jsxs)(`aside`,{className:oS.aside,children:[(0,V.jsx)(`p`,{className:oS.eyebrow,children:r(`providersPage.categories.title`)}),o(a)]}),i.length>0&&(0,V.jsxs)(`aside`,{className:oS.aside,children:[(0,V.jsx)(`p`,{className:oS.eyebrow,children:r(`providersPage.categories.quickFill`)}),o(i)]})]})}var uS=`kimi`,dS=`Kimi`,fS=`https://api.moonshot.ai`,pS=`https://api.moonshot.cn`,mS=`${fS}/v1`,hS=`${pS}/v1`,gS=`${fS}/anthropic`,_S=`${pS}/anthropic`,vS=`https://platform.kimi.com/?aff=cliproxyapi`,yS=`https://platform.kimi.ai/?aff=cliproxyapi`,bS=[{id:`domestic`,descriptionKey:`domestic`,baseUrl:hS,openaiBaseUrl:hS,codexBaseUrl:hS,anthropicBaseUrl:_S,geminiBaseUrl:``},{id:`overseas`,descriptionKey:`overseas`,baseUrl:mS,openaiBaseUrl:mS,codexBaseUrl:mS,anthropicBaseUrl:gS,geminiBaseUrl:``}],xS=[`openai`,`anthropic`,`codexResponses`],SS=e=>e?.toLowerCase().startsWith(`zh`)?vS:yS,CS=e=>String(e??``).trim().toLowerCase(),wS=e=>CS(e).replace(/\/+$/,``),TS=e=>{let t=wS(e),n=bS.find(e=>t===wS(e.baseUrl)||t===wS(e.openaiBaseUrl)||t===wS(e.codexBaseUrl)||t===wS(e.anthropicBaseUrl));return n?n.baseUrl:t===wS(`https://api.moonshot.ai`)?mS:hS},ES=e=>{let t=TS(e),n=bS.find(e=>wS(e.baseUrl)===wS(t))??bS[0];return{anthropic:n.anthropicBaseUrl,openai:n.openaiBaseUrl,codex:n.codexBaseUrl,gemini:``}},DS=e=>{if(!e)return!1;let t=wS(e.baseUrl);return bS.some(e=>t===wS(e.openaiBaseUrl))||t===wS(`https://api.moonshot.ai`)||t===wS(`https://api.moonshot.cn`)},OS=e=>{if(!e)return!1;let t=wS(e.baseUrl);return bS.some(e=>t===wS(e.anthropicBaseUrl))},kS=e=>{if(!e)return!1;let t=wS(e.baseUrl);return bS.some(e=>t===wS(e.codexBaseUrl))},AS=e=>({openai:(e?.openaiCompatibility??[]).map((e,t)=>({config:e,index:e.sourceIndex??t})).filter(e=>DS(e.config)),claude:(e?.claudeApiKeys??[]).map((e,t)=>({config:e,index:t})).filter(e=>OS(e.config)),codex:(e?.codexApiKeys??[]).map((e,t)=>({config:e,index:t})).filter(e=>kS(e.config)),gemini:[]}),jS=`apikeyFun`,MS=`APIKEY.FUN`,NS=`https://apikey.fan/register?aff=6TGSQ99T6QK8`,PS=`https://apikey.fan/dashboard`,FS=`https://api.apikey.fan`,IS=`https://slb.apikey.fan`,LS=`${FS}/v1`,RS=LS,zS=FS,BS=FS,VS=`/v1/usage`,HS=[{id:`standard`,baseUrl:FS,openaiBaseUrl:LS,codexBaseUrl:RS,anthropicBaseUrl:zS,geminiBaseUrl:BS},{id:`direct`,baseUrl:IS,openaiBaseUrl:`${IS}/v1`,codexBaseUrl:`${IS}/v1`,anthropicBaseUrl:IS,geminiBaseUrl:IS}],US=[`anthropic`,`openai`,`codexResponses`],WS=e=>String(e??``).trim().toLowerCase(),GS=e=>WS(e).replace(/\/+$/,``),KS=e=>{let t=GS(e);return HS.find(e=>t===GS(e.baseUrl)||t===GS(e.openaiBaseUrl)||t===GS(e.codexBaseUrl)||t===GS(e.anthropicBaseUrl))?.baseUrl??`https://api.apikey.fan`},qS=e=>{let t=KS(e),n=HS.find(e=>GS(e.baseUrl)===GS(t))??HS[0];return{anthropic:n.anthropicBaseUrl,openai:n.openaiBaseUrl,codex:n.codexBaseUrl,gemini:n.geminiBaseUrl}},JS=e=>`${e.replace(/\/+$/,``)}${VS}`,YS=e=>{let t=JS(KS(e)),n=JS(FS);return t===n?[t]:[t,n]},XS=e=>typeof e==`number`?Number.isFinite(e)?e:null:typeof e==`string`&&e.trim()||null,ZS=e=>typeof e==`string`&&e.trim()?e.trim():void 0,QS=(e,t)=>{if(typeof e==`boolean`)return e;if(typeof e==`string`){let t=e.trim().toLowerCase();if([`true`,`1`,`yes`,`active`].includes(t))return!0;if([`false`,`0`,`no`,`inactive`,`disabled`].includes(t))return!1}return t},$S=e=>typeof e==`object`&&!!e&&!Array.isArray(e),eC=e=>{if(!$S(e))return null;let t=$S(e.quota)?e.quota:{},n=XS(e.remaining??t.remaining??e.balance),r=ZS(e.unit??t.unit)??`USD`,i=XS(t.limit),a=XS(t.used),o=ZS(e.status),s=ZS(e.mode),c=QS(e.is_active??e.isValid,!0);return n===null&&i===null&&a===null&&!o&&!s?null:{isValid:c,status:o,mode:s,remaining:n,unit:r,limit:i,used:a}},tC=e=>{let t=GS(e);return HS.some(e=>t===GS(e.openaiBaseUrl)||t===GS(e.codexBaseUrl))},nC=e=>{let t=GS(e);return HS.some(e=>t===GS(e.anthropicBaseUrl))},rC=e=>e?tC(e.baseUrl):!1,iC=e=>e?nC(e.baseUrl):!1,aC=e=>e?tC(e.baseUrl):!1,oC=e=>({openai:(e?.openaiCompatibility??[]).map((e,t)=>({config:e,index:e.sourceIndex??t})).filter(e=>rC(e.config)),claude:(e?.claudeApiKeys??[]).map((e,t)=>({config:e,index:t})).filter(e=>iC(e.config)),codex:(e?.codexApiKeys??[]).map((e,t)=>({config:e,index:t})).filter(e=>aC(e.config)),gemini:[]}),sC=e=>{let t=oC(e);return t.openai.length>0||t.claude.length>0||t.codex.length>0},cC=`fennoAI`,lC=`FennoAI`,uC=`https://api.fenno.ai/register?aff=DQFAMNB6CBLY`,dC=`https://api.fenno.ai`,fC=`${dC}/v1`,pC=[{id:`standard`,baseUrl:dC,openaiBaseUrl:fC,codexBaseUrl:fC,anthropicBaseUrl:dC,geminiBaseUrl:dC}],mC=[`codexResponses`,`anthropic`],hC=e=>String(e??``).trim().toLowerCase(),gC=e=>hC(e).replace(/\/+$/,``),_C=e=>{let t=gC(e);return pC.find(e=>t===gC(e.baseUrl)||t===gC(e.openaiBaseUrl)||t===gC(e.codexBaseUrl)||t===gC(e.anthropicBaseUrl)||t===gC(e.geminiBaseUrl))?.baseUrl??`https://api.fenno.ai`},vC=e=>{let t=_C(e),n=pC.find(e=>gC(e.baseUrl)===gC(t))??pC[0];return{anthropic:n.anthropicBaseUrl,openai:n.openaiBaseUrl,codex:n.codexBaseUrl,gemini:n.geminiBaseUrl}},yC=e=>{let t=gC(e);return pC.some(e=>t===gC(e.codexBaseUrl))},bC=e=>{let t=gC(e);return pC.some(e=>t===gC(e.anthropicBaseUrl))},xC=e=>e?bC(e.baseUrl):!1,SC=e=>e?yC(e.baseUrl):!1,CC=e=>({openai:[],claude:(e?.claudeApiKeys??[]).map((e,t)=>({config:e,index:t})).filter(e=>xC(e.config)),codex:(e?.codexApiKeys??[]).map((e,t)=>({config:e,index:t})).filter(e=>SC(e.config)),gemini:[]}),wC=`qiniuCloud`,TC=`七牛云`,EC=`https://s.qiniu.com/miI73q`,DC=`https://api.qnaigc.com`,OC=`https://api.modelink.ai`,kC=e=>`${e}/v1`,AC=[{id:`domestic`,descriptionKey:`domestic`,baseUrl:DC,openaiBaseUrl:kC(DC),codexBaseUrl:kC(DC),anthropicBaseUrl:DC,geminiBaseUrl:DC},{id:`overseas`,descriptionKey:`overseas`,baseUrl:OC,openaiBaseUrl:kC(OC),codexBaseUrl:kC(OC),anthropicBaseUrl:OC,geminiBaseUrl:OC}],jC=[`openai`,`anthropic`,`gemini`,`codexResponses`],MC=e=>String(e??``).trim().toLowerCase(),NC=e=>MC(e).replace(/\/+$/,``),PC=e=>{let t=NC(e);return AC.find(e=>t===NC(e.baseUrl)||t===NC(e.openaiBaseUrl)||t===NC(e.codexBaseUrl)||t===NC(e.anthropicBaseUrl)||t===NC(e.geminiBaseUrl))?.baseUrl??`https://api.qnaigc.com`},FC=e=>{let t=PC(e),n=AC.find(e=>NC(e.baseUrl)===NC(t))??AC[0];return{anthropic:n.anthropicBaseUrl,openai:n.openaiBaseUrl,codex:n.codexBaseUrl,gemini:n.geminiBaseUrl}},IC=e=>{let t=NC(e);return AC.some(e=>t===NC(e.openaiBaseUrl)||t===NC(e.codexBaseUrl))},LC=e=>{let t=NC(e);return AC.some(e=>t===NC(e.anthropicBaseUrl))},RC=e=>{let t=NC(e);return AC.some(e=>t===NC(e.geminiBaseUrl))},zC=e=>e?IC(e.baseUrl):!1,BC=e=>e?LC(e.baseUrl):!1,VC=e=>e?IC(e.baseUrl):!1,HC=e=>e?RC(e.baseUrl):!1,UC=e=>({openai:(e?.openaiCompatibility??[]).map((e,t)=>({config:e,index:e.sourceIndex??t})).filter(e=>zC(e.config)),claude:(e?.claudeApiKeys??[]).map((e,t)=>({config:e,index:t})).filter(e=>BC(e.config)),codex:(e?.codexApiKeys??[]).map((e,t)=>({config:e,index:t})).filter(e=>VC(e.config)),gemini:(e?.geminiApiKeys??[]).map((e,t)=>({config:e,index:t})).filter(e=>HC(e.config))}),Nee={apikeyFun:{brand:`apikeyFun`,displayName:MS,providerName:jS,affiliateUrl:NS,dashboardUrl:PS,protocols:[`codex`,`claude`,`openai`],protocolLabels:US,defaultProtocol:`codex`,baseUrlOptions:HS,supportsUsageCheck:!0,resolveBaseUrl:KS,getProtocolUrls:qS},fennoAI:{brand:`fennoAI`,displayName:lC,providerName:cC,affiliateUrl:uC,protocols:[`codex`,`claude`],protocolLabels:mC,defaultProtocol:`codex`,baseUrlOptions:pC,supportsUsageCheck:!1,resolveBaseUrl:_C,getProtocolUrls:vC},qiniuCloud:{brand:`qiniuCloud`,displayName:TC,providerName:wC,affiliateUrl:EC,protocols:[`openai`,`claude`,`gemini`,`codex`],protocolLabels:jC,defaultProtocol:`openai`,baseUrlOptions:AC,supportsUsageCheck:!1,resolveBaseUrl:PC,getProtocolUrls:FC},kimi:{brand:`kimi`,displayName:dS,providerName:uS,protocols:[`openai`,`claude`,`codex`],protocolLabels:xS,defaultProtocol:`openai`,baseUrlOptions:bS,supportsUsageCheck:!1,resolveBaseUrl:TS,getProtocolUrls:ES}},WC=e=>e===`apikeyFun`||e===`fennoAI`||e===`qiniuCloud`||e===`kimi`,Pee=e=>e?e.openai.length>1||e.claude.length>1||e.codex.length>1||e.gemini.length>1?`multiple-configs`:e.openai.reduce((e,t)=>e+(t.config.apiKeyEntries??[]).filter(e=>e.apiKey?.trim()).length,0)>1?`multiple-openai-keys`:null:null,GC=e=>Nee[e],KC=e=>e===`claude`?`anthropic`:e===`codex`?`codexResponses`:e,Fee=e=>e===`claude`?`anthropic`:e,Iee=e=>e===`openai`?`openaiCompatibility`:e,qC=(e,t)=>t===`claude`?e.anthropic:t===`codex`?e.codex:t===`gemini`?e.gemini:e.openai,JC={wrap:`Table-module__wrap___BoMJd`,scroll:`Table-module__scroll___hyI-i`,table:`Table-module__table___2tzS9`,head:`Table-module__head___exzqF`,alignRight:`Table-module__alignRight___sq06f`,body:`Table-module__body___7J59-`,row:`Table-module__row___jJz3d`,selected:`Table-module__selected___-MWZq`};function Lee({children:e,cols:t,className:n,...r}){let i=[JC.table,n].filter(Boolean).join(` `);return(0,V.jsx)(`div`,{className:JC.wrap,children:(0,V.jsx)(`div`,{className:JC.scroll,children:(0,V.jsxs)(`table`,{className:i,...r,children:[t?(0,V.jsx)(`colgroup`,{children:t}):null,e]})})})}function Ree({children:e,className:t,...n}){return(0,V.jsx)(`thead`,{className:[JC.head,t].filter(Boolean).join(` `),...n,children:e})}function zee({children:e,className:t,...n}){return(0,V.jsx)(`tbody`,{className:[JC.body,t].filter(Boolean).join(` `),...n,children:e})}function YC({children:e,className:t,selected:n,...r}){return(0,V.jsx)(`tr`,{className:[JC.row,n?JC.selected:null,t].filter(Boolean).join(` `),...r,children:e})}function XC({children:e,className:t,alignRight:n,...r}){return(0,V.jsx)(`th`,{className:[n?JC.alignRight:null,t].filter(Boolean).join(` `)||void 0,...r,children:e})}function ZC({children:e,className:t,alignRight:n,...r}){return(0,V.jsx)(`td`,{className:[n?JC.alignRight:null,t].filter(Boolean).join(` `)||void 0,...r,children:e})}var QC={root:`ToggleSwitch-module__root___IUqKD`,labelLeft:`ToggleSwitch-module__labelLeft___Pc6fJ`,label:`ToggleSwitch-module__label___4iQkR`,disabled:`ToggleSwitch-module__disabled___GNGHj`,track:`ToggleSwitch-module__track___zFtXx`,thumb:`ToggleSwitch-module__thumb___gQ45C`};function $C({checked:e,onChange:t,label:n,ariaLabel:r,disabled:i=!1,labelPosition:a=`right`}){return(0,V.jsxs)(`label`,{className:[QC.root,a===`left`?QC.labelLeft:``,i?QC.disabled:``].filter(Boolean).join(` `),children:[(0,V.jsx)(`input`,{type:`checkbox`,checked:e,onChange:e=>{t(e.target.checked)},disabled:i,"aria-label":r}),(0,V.jsx)(`span`,{className:QC.track,children:(0,V.jsx)(`span`,{className:QC.thumb})}),n&&(0,V.jsx)(`span`,{className:QC.label,children:n})]})}var Bee={},ew=[{r:239,g:68,b:68},{r:250,g:204,b:21},{r:34,g:197,b:94}];function tw(e){let t=Math.max(0,Math.min(1,e)),n=t<.5?0:1,r=n===0?t*2:(t-.5)*2,i=ew[n],a=ew[n+1];return`rgb(${Math.round(i.r+(a.r-i.r)*r)}, ${Math.round(i.g+(a.g-i.g)*r)}, ${Math.round(i.b+(a.b-i.b)*r)})`}function nw(e){let t=new Date(e);return`${t.getHours().toString().padStart(2,`0`)}:${t.getMinutes().toString().padStart(2,`0`)}`}function rw(e){let t=e.toFixed(1);return`${t.endsWith(`.0`)?t.slice(0,-2):t}%`}function iw({statusData:e,styles:t}){let{t:n}=B(),r=t||Bee,[i,a]=(0,y.useState)(null),o=(0,y.useRef)(null),s=e.totalSuccess+e.totalFailure>0,c=s?e.successRate>=90?r.statusRateHigh:e.successRate>=50?r.statusRateMedium:r.statusRateLow:``;(0,y.useEffect)(()=>{if(i===null)return;let e=e=>{o.current&&!o.current.contains(e.target)&&a(null)};return document.addEventListener(`pointerdown`,e),()=>document.removeEventListener(`pointerdown`,e)},[i]);let l=(0,y.useCallback)((e,t)=>{e.pointerType===`mouse`&&a(t)},[]),u=(0,y.useCallback)(e=>{e.pointerType===`mouse`&&a(null)},[]),d=(0,y.useCallback)((e,t)=>{e.pointerType===`touch`&&(e.preventDefault(),a(e=>e===t?null:t))},[]),f=(e,t)=>e<=2?r.statusTooltipLeft:e>=t-3?r.statusTooltipRight:``,p=(t,i)=>{let a=t.success+t.failure,o=f(i,e.blockDetails.length),s=`${nw(t.startTime)} – ${nw(t.endTime)}`;return(0,V.jsxs)(`div`,{className:`${r.statusTooltip} ${o}`,children:[(0,V.jsx)(`span`,{className:r.tooltipTime,children:s}),a>0?(0,V.jsxs)(`span`,{className:r.tooltipStats,children:[(0,V.jsxs)(`span`,{className:r.tooltipSuccess,children:[n(`status_bar.success_short`),` `,t.success]}),(0,V.jsxs)(`span`,{className:r.tooltipFailure,children:[n(`status_bar.failure_short`),` `,t.failure]}),(0,V.jsxs)(`span`,{className:r.tooltipRate,children:[`(`,(t.rate*100).toFixed(1),`%)`]})]}):(0,V.jsx)(`span`,{className:r.tooltipStats,children:n(`status_bar.no_requests`)})]})};return(0,V.jsxs)(`div`,{className:r.statusBar,children:[(0,V.jsx)(`div`,{className:r.statusBlocks,ref:o,children:e.blockDetails.map((e,t)=>{let n=e.rate===-1,a=n?void 0:{backgroundColor:tw(e.rate)},o=i===t;return(0,V.jsxs)(`div`,{className:`${r.statusBlockWrapper} ${o?r.statusBlockActive:``}`,onPointerEnter:e=>l(e,t),onPointerLeave:u,onPointerDown:e=>d(e,t),children:[(0,V.jsx)(`div`,{className:`${r.statusBlock} ${n?r.statusBlockIdle:``}`,style:a}),o&&p(e,t)]},t)})}),(0,V.jsx)(`span`,{className:`${r.statusRate} ${c}`,children:s?rw(e.successRate):`--`})]})}var aw={providerTable:`ProviderResourceTable-module__providerTable___gPviT`,actionsCell:`ProviderResourceTable-module__actionsCell___zCEoe`,primaryCell:`ProviderResourceTable-module__primaryCell___fLp9r`,primaryName:`ProviderResourceTable-module__primaryName___dfYeV`,primarySub:`ProviderResourceTable-module__primarySub___QABoS`,baseUrl:`ProviderResourceTable-module__baseUrl___FNjG7`,chip:`ProviderResourceTable-module__chip___U7kQV`,metricsCell:`ProviderResourceTable-module__metricsCell___1OlzF`,metric:`ProviderResourceTable-module__metric___aEHez`,metricLabel:`ProviderResourceTable-module__metricLabel___t8rAu`,metricValue:`ProviderResourceTable-module__metricValue___VTEWB`,flagTag:`ProviderResourceTable-module__flagTag___2i4Y4`,statusBadge:`ProviderResourceTable-module__statusBadge___dk8Hi`,statusCell:`ProviderResourceTable-module__statusCell___8599N`,stats:`ProviderResourceTable-module__stats___73Ql1`,statPill:`ProviderResourceTable-module__statPill___-ANv0`,statSuccess:`ProviderResourceTable-module__statSuccess___LrHac`,statFailure:`ProviderResourceTable-module__statFailure___yGMe3`,statusActive:`ProviderResourceTable-module__statusActive___Zw5FB`,statusDisabled:`ProviderResourceTable-module__statusDisabled___BKP-G`,statusBarWrap:`ProviderResourceTable-module__statusBarWrap___n9vAB`,actionsHead:`ProviderResourceTable-module__actionsHead___FGGf4`,actionsCellSelected:`ProviderResourceTable-module__actionsCellSelected___nrnrY`,actions:`ProviderResourceTable-module__actions___4j-hn`,toggleWrap:`ProviderResourceTable-module__toggleWrap___1u1Vz`,iconBtn:`ProviderResourceTable-module__iconBtn___RYOTP`,iconBtnDanger:`ProviderResourceTable-module__iconBtnDanger___OCat1`},ow={statusBar:`providerStatusBar-module__statusBar___CO-2Q`,statusBlocks:`providerStatusBar-module__statusBlocks___GUtae`,statusBlockWrapper:`providerStatusBar-module__statusBlockWrapper___7PmJZ`,statusBlock:`providerStatusBar-module__statusBlock___Bo-Dp`,statusBlockActive:`providerStatusBar-module__statusBlockActive___FgyJm`,statusBlockIdle:`providerStatusBar-module__statusBlockIdle___SNDuL`,statusTooltip:`providerStatusBar-module__statusTooltip___pI78F`,statusTooltipLeft:`providerStatusBar-module__statusTooltipLeft___ZskB1`,statusTooltipRight:`providerStatusBar-module__statusTooltipRight___Ajuc0`,tooltipTime:`providerStatusBar-module__tooltipTime___u6zEq`,tooltipStats:`providerStatusBar-module__tooltipStats___uvspI`,tooltipSuccess:`providerStatusBar-module__tooltipSuccess___km1zF`,tooltipFailure:`providerStatusBar-module__tooltipFailure___rNWH9`,tooltipRate:`providerStatusBar-module__tooltipRate___YZaf1`,statusRate:`providerStatusBar-module__statusRate___gq06G`,statusRateHigh:`providerStatusBar-module__statusRateHigh___Q976x`,statusRateMedium:`providerStatusBar-module__statusRateMedium___ExaLs`,statusRateLow:`providerStatusBar-module__statusRateLow___iNJnD`},sw=[`180px`,`220px`,`72px`,`138px`,`174px`,`176px`],cw=e=>WC(e.brand),lw=(e,t)=>e.brand===`openaiCompatibility`?Bx(e.raw,t):Px(t,kx(e.brand),e.apiKey??void 0,e.baseUrl??void 0),uw=(e,t)=>e.brand===`openaiCompatibility`?zx(e.raw,t):Fx(t,kx(e.brand),e.apiKey??void 0,e.baseUrl??void 0);function dw({resources:e,selectedId:t,disableMutations:n,usageByProvider:r,onView:i,onEdit:a,onDelete:o,onToggleDisabled:s}){let{t:c}=B(),l=(e,t,n)=>(0,V.jsxs)(`span`,{className:aw.metric,children:[(0,V.jsx)(`span`,{className:aw.metricLabel,children:t}),(0,V.jsx)(`span`,{className:aw.metricValue,children:n})]},e),u=(e,t)=>(0,V.jsx)(`span`,{className:aw.flagTag,children:t},e),d=e=>(e.flags.protocols??[]).map(e=>c(`providersPage.sponsor.protocols.${e}`)).join(` / `),f=e=>{let t=[];return cw(e)?((e.flags.protocols??[]).forEach(e=>{t.push(u(e,c(`providersPage.sponsor.protocols.${e}`)))}),(0,V.jsx)(`div`,{className:aw.metricsCell,children:t})):(e.brand===`openaiCompatibility`?t.push(l(`models`,c(`providersPage.table.metrics.models`),e.modelCount),l(`keys`,c(`providersPage.table.metrics.keys`),e.apiKeyEntryCount),l(`headers`,c(`providersPage.table.metrics.headers`),e.headerCount)):(t.push(l(`models`,c(`providersPage.table.metrics.models`),e.modelCount),l(`headers`,c(`providersPage.table.metrics.headers`),e.headerCount)),(e.brand===`codex`||e.brand===`xai`)&&e.flags.websockets&&t.push(u(`ws`,c(`providersPage.table.websocketsTag`))),e.brand===`claude`&&e.flags.cloakEnabled&&t.push(u(`cloak`,c(`providersPage.table.cloakTag`))),e.brand===`claude`&&e.flags.claudeCodeCliProfile&&t.push(u(`cli-profile`,c(`providersPage.table.cliProfileTag`)))),(0,V.jsx)(`div`,{className:aw.metricsCell,children:t}))},p=e=>e.disabled?(0,V.jsxs)(`span`,{className:`${aw.statusBadge} ${aw.statusDisabled}`,children:[(0,V.jsx)(Ns,{size:14}),c(`providersPage.status.disabled`)]}):(0,V.jsxs)(`span`,{className:`${aw.statusBadge} ${aw.statusActive}`,children:[(0,V.jsx)(Ps,{size:14}),c(`providersPage.status.active`)]}),m=e=>{if(cw(e))return(0,V.jsxs)(`div`,{className:aw.primaryCell,children:[(0,V.jsx)(`span`,{className:aw.primaryName,children:e.name??e.identifier}),(0,V.jsx)(`span`,{className:aw.primarySub,children:e.apiKeyPreview??c(`providersPage.status.notConfigured`)})]});if(e.brand===`openaiCompatibility`){let t=e.apiKeyEntryCount>1?` · +${e.apiKeyEntryCount-1}`:``;return(0,V.jsxs)(`div`,{className:aw.primaryCell,children:[(0,V.jsx)(`span`,{className:aw.primaryName,children:e.name??e.identifier}),(0,V.jsx)(`span`,{className:aw.primarySub,children:(e.apiKeyPreview??`—`)+t})]})}return(0,V.jsxs)(`div`,{className:aw.primaryCell,children:[(0,V.jsx)(`span`,{className:aw.primaryName,children:e.apiKeyPreview??`—`}),e.authIndex?(0,V.jsxs)(`span`,{className:aw.primarySub,children:[`auth: `,e.authIndex]}):null]})},h=e=>cw(e)?(0,V.jsx)(`span`,{className:aw.baseUrl,children:d(e)}):e.brand===`claude`&&!e.baseUrl?(0,V.jsxs)(`span`,{className:aw.baseUrl,children:[`https://api.anthropic.com `,c(`providersPage.status.defaultSuffix`)]}):(0,V.jsx)(`span`,{className:aw.baseUrl,children:e.baseUrl??c(`providersPage.status.notSet`)});return(0,V.jsxs)(Lee,{className:aw.providerTable,cols:sw.map((e,t)=>(0,V.jsx)(`col`,{style:{width:e}},t)),children:[(0,V.jsx)(Ree,{children:(0,V.jsxs)(YC,{children:[(0,V.jsx)(XC,{children:c(`providersPage.table.key`)}),(0,V.jsx)(XC,{children:c(`providersPage.table.baseUrl`)}),(0,V.jsx)(XC,{children:c(`providersPage.table.prefix`)}),(0,V.jsx)(XC,{children:c(`providersPage.table.models`)}),(0,V.jsx)(XC,{children:c(`providersPage.table.status`)}),(0,V.jsx)(XC,{alignRight:!0,className:aw.actionsHead,children:c(`providersPage.table.actions`)})]})}),(0,V.jsx)(zee,{children:e.map(e=>(0,V.jsxs)(YC,{selected:e.id===t,children:[(0,V.jsx)(ZC,{children:m(e)}),(0,V.jsx)(ZC,{children:h(e)}),(0,V.jsx)(ZC,{children:e.prefix?(0,V.jsx)(`span`,{className:aw.chip,children:e.prefix}):(0,V.jsx)(`span`,{className:aw.baseUrl,children:c(`providersPage.status.none`)})}),(0,V.jsx)(ZC,{children:f(e)}),(0,V.jsx)(ZC,{children:(0,V.jsxs)(`div`,{className:aw.statusCell,children:[p(e),r&&!cw(e)?(0,V.jsxs)(V.Fragment,{children:[(()=>{let t=uw(e,r);return(0,V.jsxs)(`div`,{className:aw.stats,children:[(0,V.jsxs)(`span`,{className:`${aw.statPill} ${aw.statSuccess}`,children:[c(`stats.success`),`: `,t.success]}),(0,V.jsxs)(`span`,{className:`${aw.statPill} ${aw.statFailure}`,children:[c(`stats.failure`),`: `,t.failure]})]})})(),(0,V.jsx)(`div`,{className:aw.statusBarWrap,children:(0,V.jsx)(iw,{statusData:lw(e,r),styles:ow})})]}):null]})}),(0,V.jsx)(ZC,{alignRight:!0,className:[aw.actionsCell,e.id===t?aw.actionsCellSelected:``].filter(Boolean).join(` `),children:(0,V.jsxs)(`div`,{className:aw.actions,children:[s?(0,V.jsx)(`span`,{className:aw.toggleWrap,onClick:e=>e.stopPropagation(),children:(0,V.jsx)($C,{checked:!e.disabled,disabled:n,onChange:t=>s(e,!t),ariaLabel:e.disabled?c(`providersPage.actions.enable`):c(`providersPage.actions.disable`)})}):null,(0,V.jsx)(`button`,{type:`button`,className:aw.iconBtn,"aria-label":c(`providersPage.actions.view`),title:c(`providersPage.actions.view`),onClick:t=>{t.stopPropagation(),i(e)},children:(0,V.jsx)(Us,{size:16})}),(0,V.jsx)(`button`,{type:`button`,className:aw.iconBtn,"aria-label":c(`providersPage.actions.edit`),title:c(`providersPage.actions.edit`),disabled:n,onClick:t=>{t.stopPropagation(),a(e)},children:(0,V.jsx)(Ms,{size:16})}),(0,V.jsx)(`button`,{type:`button`,className:`${aw.iconBtn} ${aw.iconBtnDanger}`,"aria-label":c(`providersPage.actions.delete`),title:c(`providersPage.actions.delete`),disabled:n,onClick:t=>{t.stopPropagation(),o(e)},children:(0,V.jsx)(Os,{size:16})})]})})]},e.id))})]})}var fw={root:`ProviderResourceToolbar-module__root___3OtVO`,sortGroup:`ProviderResourceToolbar-module__sortGroup___Owd8u`,label:`ProviderResourceToolbar-module__label___Xpn6H`,dirBtn:`ProviderResourceToolbar-module__dirBtn___Si6-Q`,filterGroup:`ProviderResourceToolbar-module__filterGroup___GCSLL`,filterTrigger:`ProviderResourceToolbar-module__filterTrigger___7nyg5`,filterPanel:`ProviderResourceToolbar-module__filterPanel___By-o1`,filterToolbar:`ProviderResourceToolbar-module__filterToolbar___rAN5t`,filterToolbarBtn:`ProviderResourceToolbar-module__filterToolbarBtn___H8kEF`,filterEmpty:`ProviderResourceToolbar-module__filterEmpty___YoLaV`,filterList:`ProviderResourceToolbar-module__filterList___bLUS8`,filterItem:`ProviderResourceToolbar-module__filterItem___ayJYT`,filterItemLabel:`ProviderResourceToolbar-module__filterItemLabel___WgP0a`};function pw({sortBy:e,sortDir:t,onSortBy:n,onSortDir:r,availableModels:i,selectedModels:a,onSelectedModelsChange:o}){let{t:s}=B(),[c,l]=(0,y.useState)(!1),u=(0,y.useRef)(null),d=(0,y.useMemo)(()=>[{value:`name`,label:s(`providersPage.toolbar.sort.name`)},{value:`priority`,label:s(`providersPage.toolbar.sort.priority`)},{value:`recent-success`,label:s(`providersPage.toolbar.sort.recentSuccess`)}],[s]);(0,y.useEffect)(()=>{if(!c)return;let e=e=>{u.current&&!u.current.contains(e.target)&&l(!1)};return document.addEventListener(`pointerdown`,e),()=>document.removeEventListener(`pointerdown`,e)},[c]);let f=e=>{let t=new Set(a);t.has(e)?t.delete(e):t.add(e),o(t)},p=()=>o(new Set(i)),m=()=>o(new Set),h=a.size===0?s(`providersPage.toolbar.filter.allModels`):s(`providersPage.toolbar.filter.selectedModels`,{selected:a.size,total:i.length});return(0,V.jsxs)(`div`,{className:fw.root,children:[(0,V.jsxs)(`div`,{className:fw.sortGroup,children:[(0,V.jsx)(`span`,{className:fw.label,children:s(`providersPage.toolbar.sortBy`)}),(0,V.jsx)(_c,{value:e,options:d,onChange:e=>n(e),ariaLabel:s(`providersPage.toolbar.sortBy`),size:`sm`}),(0,V.jsx)(`button`,{type:`button`,className:fw.dirBtn,onClick:()=>r(t===`asc`?`desc`:`asc`),"aria-label":s(t===`asc`?`providersPage.toolbar.sort.directionAsc`:`providersPage.toolbar.sort.directionDesc`),title:s(t===`asc`?`providersPage.toolbar.sort.directionAsc`:`providersPage.toolbar.sort.directionDesc`),children:t===`asc`?(0,V.jsx)(Ls,{size:14}):(0,V.jsx)(Rs,{size:14})})]}),(0,V.jsxs)(`div`,{className:fw.filterGroup,ref:u,children:[(0,V.jsxs)(`button`,{type:`button`,className:fw.filterTrigger,onClick:()=>l(e=>!e),disabled:i.length===0,children:[(0,V.jsx)(ms,{size:14}),(0,V.jsx)(`span`,{children:h}),(0,V.jsx)(Rs,{size:12})]}),c?(0,V.jsxs)(`div`,{className:fw.filterPanel,children:[(0,V.jsxs)(`div`,{className:fw.filterToolbar,children:[(0,V.jsx)(`button`,{type:`button`,className:fw.filterToolbarBtn,onClick:p,disabled:i.length===0,children:s(`providersPage.toolbar.filter.selectAll`)}),(0,V.jsx)(`button`,{type:`button`,className:fw.filterToolbarBtn,onClick:m,disabled:a.size===0,children:s(`providersPage.toolbar.filter.clear`)})]}),i.length===0?(0,V.jsx)(`div`,{className:fw.filterEmpty,children:s(`providersPage.toolbar.filter.empty`)}):(0,V.jsx)(`ul`,{className:fw.filterList,children:i.map(e=>(0,V.jsx)(`li`,{className:fw.filterItem,children:(0,V.jsx)(yc,{checked:a.has(e),onChange:()=>f(e),label:(0,V.jsx)(`span`,{className:fw.filterItemLabel,children:e})})},e))})]}):null]})]})}var mw={panel:`ProviderResourcePanel-module__panel___CMeiX`,header:`ProviderResourcePanel-module__header___Ud2jP`,headerMain:`ProviderResourcePanel-module__headerMain___aGFKi`,headerToolbarRow:`ProviderResourcePanel-module__headerToolbarRow___lBCoP`,titleArea:`ProviderResourcePanel-module__titleArea___SIpoX`,titleRow:`ProviderResourcePanel-module__titleRow___T1AfI`,titleLink:`ProviderResourcePanel-module__titleLink___Utbwk`,title:`ProviderResourcePanel-module__title___Zw2Hc`,titleExternalIcon:`ProviderResourcePanel-module__titleExternalIcon___JyfC0`,logo:`ProviderResourcePanel-module__logo___7eyxv`,logoThemeSurface:`ProviderResourcePanel-module__logoThemeSurface___LgWln`,logoThemeDark:`ProviderResourcePanel-module__logoThemeDark___CvmjO`,logoThemeLight:`ProviderResourcePanel-module__logoThemeLight___4rDnc`,logoInvertOnDark:`ProviderResourcePanel-module__logoInvertOnDark___yeOZu`,sponsorLink:`ProviderResourcePanel-module__sponsorLink___0zkZG`,sponsorLinkEmphasis:`ProviderResourcePanel-module__sponsorLinkEmphasis___UYDlu`,sponsorLinkKimi:`ProviderResourcePanel-module__sponsorLinkKimi___Q3DZ3`,kimiPromo:`ProviderResourcePanel-module__kimiPromo___rv-Qi`,sponsorLinkText:`ProviderResourcePanel-module__sponsorLinkText___n464i`,sponsorLinkIcon:`ProviderResourcePanel-module__sponsorLinkIcon___QHGUt`,searchWrap:`ProviderResourcePanel-module__searchWrap___95CD5`,searchInput:`ProviderResourcePanel-module__searchInput___TA7QZ`,searchIcon:`ProviderResourcePanel-module__searchIcon___u6sCR`,empty:`ProviderResourcePanel-module__empty___1gkyi`,emptyAction:`ProviderResourcePanel-module__emptyAction___EzR3x`,emptyActionButton:`ProviderResourcePanel-module__emptyActionButton___lCUjo`,emptyActionButtonEmphasis:`ProviderResourcePanel-module__emptyActionButtonEmphasis___kUgz8`};function hw({group:e,filter:t,onFilterChange:n,filteredResources:r,selectedId:i,disableMutations:a,usageByProvider:o,toolbarControls:s,onView:c,onEdit:l,onDelete:u,onToggleDisabled:d,onCreate:f}){let{t:p,i18n:m}=B(),h=aS[e.id],g=p(`providersPage.providerNames.${e.id}`),_=e.resources.length>0,v=e.id===`apikeyFun`&&!_,y=e.id===`apikeyFun`&&_,b=e.id===`kimi`?SS(m.resolvedLanguage??m.language):e.id===`fennoAI`||e.id===`qiniuCloud`?GC(e.id).affiliateUrl:null,x=p(e.id===`kimi`?`providersPage.sponsor.registerNow`:`providersPage.sponsor.registerLink`),S=p(v?`providersPage.sponsor.emptyRegisterHint`:`providersPage.table.empty`),C=[mw.logo,h?.themeSurface?mw.logoThemeSurface:``,h?.darkSrc?mw.logoThemeLight:``,h?.invertOnDark?mw.logoInvertOnDark:``].filter(Boolean).join(` `),w=[mw.logo,h?.themeSurface?mw.logoThemeSurface:``,mw.logoThemeDark].filter(Boolean).join(` `),T=(0,V.jsxs)(V.Fragment,{children:[h?(0,V.jsxs)(V.Fragment,{children:[(0,V.jsx)(`img`,{src:h.src,alt:``,"aria-hidden":`true`,className:C}),h.darkSrc?(0,V.jsx)(`img`,{src:h.darkSrc,alt:``,"aria-hidden":`true`,className:w}):null]}):null,(0,V.jsx)(`h2`,{className:mw.title,children:g}),y?(0,V.jsx)(Xs,{className:mw.titleExternalIcon,size:16}):null]});return(0,V.jsxs)(`section`,{className:mw.panel,children:[(0,V.jsxs)(`div`,{className:mw.header,children:[(0,V.jsxs)(`div`,{className:mw.headerMain,children:[(0,V.jsxs)(`div`,{className:mw.titleArea,children:[y?(0,V.jsx)(`a`,{className:`${mw.titleRow} ${mw.titleLink}`,href:PS,target:`_blank`,rel:`noreferrer`,title:p(`providersPage.sponsor.dashboardLink`),children:T}):(0,V.jsx)(`div`,{className:mw.titleRow,children:T}),y?(0,V.jsxs)(`a`,{className:mw.sponsorLink,href:PS,target:`_blank`,rel:`noreferrer`,children:[(0,V.jsx)(`span`,{className:mw.sponsorLinkText,children:p(`providersPage.sponsor.dashboardLink`)}),(0,V.jsx)(Xs,{className:mw.sponsorLinkIcon,size:14})]}):b?(0,V.jsxs)(V.Fragment,{children:[(0,V.jsxs)(`a`,{className:[mw.sponsorLink,mw.sponsorLinkEmphasis,e.id===`kimi`?mw.sponsorLinkKimi:``].filter(Boolean).join(` `),href:b,target:`_blank`,rel:`noreferrer`,children:[(0,V.jsx)(`span`,{className:mw.sponsorLinkText,children:x}),(0,V.jsx)(Xs,{className:mw.sponsorLinkIcon,size:14})]}),e.id===`kimi`?(0,V.jsx)(`p`,{className:mw.kimiPromo,children:p(`providersPage.sponsor.kimiPromo`)}):null]}):null]}),(0,V.jsxs)(`div`,{className:mw.searchWrap,children:[(0,V.jsx)(`span`,{className:mw.searchIcon,"aria-hidden":`true`,children:(0,V.jsx)(Bs,{size:16})}),(0,V.jsx)(`input`,{type:`search`,className:mw.searchInput,value:t,onChange:e=>n(e.target.value),placeholder:p(`providersPage.table.filterPlaceholder`)})]})]}),s?(0,V.jsx)(`div`,{className:mw.headerToolbarRow,children:(0,V.jsx)(pw,{sortBy:s.sortBy,sortDir:s.sortDir,onSortBy:s.onSortBy,onSortDir:s.onSortDir,availableModels:s.availableModels,selectedModels:s.selectedModels,onSelectedModelsChange:s.onSelectedModelsChange},e.id)}):null]}),r.length===0?(0,V.jsxs)(`div`,{className:mw.empty,children:[(0,V.jsx)(`div`,{children:S}),(0,V.jsx)(`div`,{className:mw.emptyAction,children:v?(0,V.jsxs)(`a`,{className:`${mw.emptyActionButton} ${mw.emptyActionButtonEmphasis}`,href:NS,target:`_blank`,rel:`noreferrer`,children:[(0,V.jsx)(Xs,{size:16}),(0,V.jsx)(`span`,{children:p(`providersPage.sponsor.registerLink`)})]}):(0,V.jsxs)(`button`,{type:`button`,className:mw.emptyActionButton,onClick:f,children:[(0,V.jsx)(js,{size:16}),(0,V.jsx)(`span`,{children:p(`providersPage.actions.new`)})]})})]}):(0,V.jsx)(dw,{resources:r,selectedId:i,disableMutations:a,usageByProvider:o,onView:c,onEdit:l,onDelete:u,onToggleDisabled:d})]})}function gw(e){let{enabled:t=!0,shouldBlock:n,dialog:r}=e,{showConfirmation:i}=Jc(),a=(0,y.useRef)(``),o=(0,y.useRef)(0),s=(0,y.useRef)(``),c=fr(),l=(0,y.useCallback)(()=>{o.current=Date.now()+2e3,s.current=``},[]),u=(0,y.useCallback)(e=>{o.current=Date.now()+2e3,s.current=e},[]),d=Br((0,y.useCallback)(e=>{if(!t)return!1;let r=Date.now();if(o.current>r){let t=`${e.nextLocation.pathname}${e.nextLocation.search}${e.nextLocation.hash}`;if(s.current||(s.current=t),s.current===t)return!1}else o.current!==0&&(o.current=0,s.current=``);return typeof n==`function`?n(e):n},[t,n]));(0,y.useEffect)(()=>{o.current!==0&&(o.current=0,s.current=``)},[c.key]);let f=(0,y.useMemo)(()=>d.state!==`blocked`||!d.location?``:`${d.location.pathname}${d.location.search}${d.location.hash}`,[d.location,d.state]);return(0,y.useEffect)(()=>{if(d.state!==`blocked`){a.current=``;return}!f||a.current===f||(a.current=f,i({title:r.title,message:r.message,confirmText:r.confirmText,cancelText:r.cancelText,variant:r.variant??`danger`,onConfirm:()=>d.proceed(),onCancel:()=>d.reset()}))},[f,d,r,i]),{allowNextNavigation:l,allowNavigationTo:u}}var _w=class extends Error{constructor(e){super(e instanceof Error?e.message:String(e??`Sponsor mutation failed`)),cp(this,`cause`,void 0),this.name=`SponsorPartialMutationError`,this.cause=e}},vw=e=>e instanceof _w;async function yw(e,t){try{return await e()}catch(e){try{await t()}catch{}throw new _w(e)}}function bw(e,t){if(!t.length)return e;let n=new Set(e.map(e=>e.name.trim()).filter(Boolean)),r=[...e],i=r.findIndex(e=>!e.name.trim()&&!e.alias?.trim());i!==-1&&r.splice(i,1);for(let e of t){let t=e.name.trim();!t||n.has(t)||(n.add(t),r.push({name:t,alias:e.alias?.trim()??``}))}return r.length?r:[{name:``,alias:``}]}var K={form:`sharedForm-module__form___PT91R`,quickStartForm:`sharedForm-module__quickStartForm___eBaxv`,section:`sharedForm-module__section___i8OOd`,sectionTitle:`sharedForm-module__sectionTitle___82MzD`,sectionDesc:`sharedForm-module__sectionDesc___pBlrt`,field:`sharedForm-module__field___67Fow`,label:`sharedForm-module__label___sL6bS`,labelHint:`sharedForm-module__labelHint___M7UU6`,input:`sharedForm-module__input___5xUXx`,passwordInput:`sharedForm-module__passwordInput___rSuUg`,textarea:`sharedForm-module__textarea___CdY6q`,discoverySearch:`sharedForm-module__discoverySearch___18P-i`,entryCard:`sharedForm-module__entryCard___4UpBh`,entryCardHeader:`sharedForm-module__entryCardHeader___9w6Nq`,sponsorGroupTitle:`sharedForm-module__sponsorGroupTitle___28tgM`,sponsorUrlOptionText:`sharedForm-module__sponsorUrlOptionText___k-K0x`,checkboxText:`sharedForm-module__checkboxText___LnhPu`,sponsorProtocolUrl:`sharedForm-module__sponsorProtocolUrl___KWimM`,sponsorUsageResult:`sharedForm-module__sponsorUsageResult___-gE-n`,connectivityError:`sharedForm-module__connectivityError___MLzpW`,discoveryEmpty:`sharedForm-module__discoveryEmpty___yCmmN`,discoveryItem:`sharedForm-module__discoveryItem___K7Etw`,discoveryBatchLabel:`sharedForm-module__discoveryBatchLabel___pHhDl`,discoveryName:`sharedForm-module__discoveryName___PQCDn`,sponsorProtocolName:`sharedForm-module__sponsorProtocolName___IdnAd`,sponsorUsageMain:`sharedForm-module__sponsorUsageMain___6O5cH`,sponsorUsageMeta:`sharedForm-module__sponsorUsageMeta___hf3Jw`,discoveryAlias:`sharedForm-module__discoveryAlias___XGl7Y`,discoveryCount:`sharedForm-module__discoveryCount___nHCkA`,discoveryAddedTag:`sharedForm-module__discoveryAddedTag___HJanN`,connectivityBtn:`sharedForm-module__connectivityBtn___xuFLs`,discoveryApplyBtn:`sharedForm-module__discoveryApplyBtn___Iu3oS`,addBtn:`sharedForm-module__addBtn___O-Vjb`,removeBtn:`sharedForm-module__removeBtn___iEUNe`,footerBtn:`sharedForm-module__footerBtn___DyIZY`,checkboxRow:`sharedForm-module__checkboxRow___-oiND`,checkboxBox:`sharedForm-module__checkboxBox___eIVJQ`,fieldRow:`sharedForm-module__fieldRow___FmfR-`,divider:`sharedForm-module__divider___hp8lX`,errorBox:`sharedForm-module__errorBox___tj-8g`,dl:`sharedForm-module__dl___fU3jy`,dt:`sharedForm-module__dt___WtuBR`,dd:`sharedForm-module__dd___xdoZu`,detailHeader:`sharedForm-module__detailHeader___Gwp7N`,entryCardToggle:`sharedForm-module__entryCardToggle___UcMtL`,sponsorGroupSummary:`sharedForm-module__sponsorGroupSummary___Y7N47`,sponsorSummaryKey:`sharedForm-module__sponsorSummaryKey___EBaXE`,sponsorSummaryUrl:`sharedForm-module__sponsorSummaryUrl___piG39`,entryCardHeaderRight:`sharedForm-module__entryCardHeaderRight___XQk-H`,entryCardBody:`sharedForm-module__entryCardBody___jWMCE`,entryCardIconBtn:`sharedForm-module__entryCardIconBtn___JXSmn`,entryCardChevron:`sharedForm-module__entryCardChevron___-MhgW`,entryCardChevronOpen:`sharedForm-module__entryCardChevronOpen___3ETxF`,entriesToolbar:`sharedForm-module__entriesToolbar___ZMhPO`,entriesToolbarSplit:`sharedForm-module__entriesToolbarSplit___ZVvqH`,sponsorUrlOptions:`sharedForm-module__sponsorUrlOptions___lxMgi`,sponsorUrlOption:`sharedForm-module__sponsorUrlOption___rAD4B`,sponsorUrlOptionActive:`sharedForm-module__sponsorUrlOptionActive___4CZJz`,sponsorUrlOptionDescription:`sharedForm-module__sponsorUrlOptionDescription___-P-PR`,sponsorProtocolGrid:`sharedForm-module__sponsorProtocolGrid___CK-SJ`,sponsorProtocolCard:`sharedForm-module__sponsorProtocolCard___glgc4`,sponsorUsageSection:`sharedForm-module__sponsorUsageSection___tKfkP`,sponsorUsageResultWarning:`sharedForm-module__sponsorUsageResultWarning___IQs1P`,connectivityRow:`sharedForm-module__connectivityRow___yytvW`,connectivityBtnGhost:`sharedForm-module__connectivityBtnGhost___Ks4Ys`,connectivityHintSuccess:`sharedForm-module__connectivityHintSuccess___bCB6B`,statusIcon:`sharedForm-module__statusIcon___Qo3og`,statusIconLoading:`sharedForm-module__statusIconLoading___Jr4Oi`,spin:`sharedForm-module__spin___ebAKO`,statusIconSuccess:`sharedForm-module__statusIconSuccess___XeAnb`,statusIconError:`sharedForm-module__statusIconError___1-Uh3`,discoveryPanel:`sharedForm-module__discoveryPanel___AhjnU`,discoveryToolbar:`sharedForm-module__discoveryToolbar___pxuM6`,discoverySearchWrap:`sharedForm-module__discoverySearchWrap___6FqGI`,discoverySearchIcon:`sharedForm-module__discoverySearchIcon___ygwRw`,discoveryBatchRow:`sharedForm-module__discoveryBatchRow___RSSTs`,discoveryList:`sharedForm-module__discoveryList___UmHOn`,discoveryItemExisting:`sharedForm-module__discoveryItemExisting___OZBJe`,discoveryNameGroup:`sharedForm-module__discoveryNameGroup___clmbn`,discoveryFooter:`sharedForm-module__discoveryFooter___Is7iL`,passwordField:`sharedForm-module__passwordField___XUXUd`,passwordToggle:`sharedForm-module__passwordToggle___uGvUz`,entriesList:`sharedForm-module__entriesList___-jY7O`,modelAliasRow:`sharedForm-module__modelAliasRow___pthzi`,modelEntry:`sharedForm-module__modelEntry___e3PHD`,modelEntryActions:`sharedForm-module__modelEntryActions___Mv-1o`,modelEntryDetails:`sharedForm-module__modelEntryDetails___d5g0-`,thinkingFieldset:`sharedForm-module__thinkingFieldset___amnlc`,thinkingExistingHint:`sharedForm-module__thinkingExistingHint___HWgL-`,thinkingLevelGrid:`sharedForm-module__thinkingLevelGrid___iWzn1`,thinkingLevelOption:`sharedForm-module__thinkingLevelOption___mklmI`,thinkingLevelLabel:`sharedForm-module__thinkingLevelLabel___8OZO5`,thinkingLevelOptionSelected:`sharedForm-module__thinkingLevelOptionSelected___XzjLp`,entrySummary:`sharedForm-module__entrySummary___FshGG`,entrySummaryKey:`sharedForm-module__entrySummaryKey___LxYFt`,entryBadge:`sharedForm-module__entryBadge___KwpqS`,showMoreBtn:`sharedForm-module__showMoreBtn___cipR-`,footerBtnGhost:`sharedForm-module__footerBtnGhost___6XhK0`,footerBtnOutline:`sharedForm-module__footerBtnOutline___mplFu`,footerBtnPrimary:`sharedForm-module__footerBtnPrimary___RbN5Y`,apiKeyEntriesSection:`sharedForm-module__apiKeyEntriesSection___BiWv-`,apiKeyEntriesLabel:`sharedForm-module__apiKeyEntriesLabel___k7lKa`,apiKeyEntryList:`sharedForm-module__apiKeyEntryList___sun97`,apiKeyEntryCard:`sharedForm-module__apiKeyEntryCard___uW3Az`,apiKeyEntryIndex:`sharedForm-module__apiKeyEntryIndex___0Vn5O`,apiKeyEntryKey:`sharedForm-module__apiKeyEntryKey___nFskf`,apiKeyEntryProxy:`sharedForm-module__apiKeyEntryProxy___o-PFf`,apiKeyEntryStats:`sharedForm-module__apiKeyEntryStats___DWlE3`,apiKeyEntryStat:`sharedForm-module__apiKeyEntryStat___pC-og`,apiKeyEntryStatSuccess:`sharedForm-module__apiKeyEntryStatSuccess___PbODP`,apiKeyEntryStatFailure:`sharedForm-module__apiKeyEntryStatFailure___0l7My`};function xw({loading:e,error:t,models:n,hasFetched:r,existingNames:i,mutating:a,onApply:o,onReload:s,onClose:c}){let{t:l}=B(),[u,d]=(0,y.useState)(``),[f,p]=(0,y.useState)(new Set),m=(0,y.useMemo)(()=>{let e=u.trim().toLowerCase();return e?n.filter(t=>`${t.name} ${t.alias??``}`.toLowerCase().includes(e)):n},[n,u]),h=(0,y.useMemo)(()=>m.filter(e=>!i.has(e.name)),[m,i]),g=h.length>0&&h.every(e=>f.has(e.name)),_=e=>{p(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})},v=()=>{p(g?new Set:new Set(h.map(e=>e.name)))},b=()=>{let e=n.filter(e=>f.has(e.name)&&!i.has(e.name));e.length&&(o(e),p(new Set))},x=e=>(0,V.jsxs)(`span`,{className:K.discoveryNameGroup,children:[(0,V.jsx)(`span`,{className:K.discoveryName,children:e.name}),e.alias?(0,V.jsx)(`span`,{className:K.discoveryAlias,children:e.alias}):null]});return(0,V.jsxs)(`div`,{className:K.discoveryPanel,children:[(0,V.jsxs)(`div`,{className:K.discoveryToolbar,children:[(0,V.jsxs)(`div`,{className:K.discoverySearchWrap,children:[(0,V.jsx)(`span`,{className:K.discoverySearchIcon,"aria-hidden":`true`,children:(0,V.jsx)(Bs,{size:14})}),(0,V.jsx)(`input`,{type:`search`,className:K.discoverySearch,value:u,onChange:e=>d(e.target.value),placeholder:l(`providersPage.discovery.searchPlaceholder`)})]}),(0,V.jsxs)(`button`,{type:`button`,className:K.connectivityBtn,onClick:s,disabled:e,"aria-label":l(`providersPage.discovery.reload`),children:[e?(0,V.jsx)(`span`,{className:`${K.statusIcon} ${K.statusIconLoading}`,children:(0,V.jsx)(Is,{size:14})}):(0,V.jsx)(Ts,{size:14}),(0,V.jsx)(`span`,{children:l(`providersPage.discovery.reload`)})]})]}),e&&!n.length?(0,V.jsx)(`div`,{className:K.discoveryEmpty,children:l(`providersPage.discovery.loading`)}):t?(0,V.jsx)(`div`,{className:K.connectivityError,children:t}):r&&!n.length?(0,V.jsx)(`div`,{className:K.discoveryEmpty,children:l(`providersPage.discovery.empty`)}):n.length?(0,V.jsxs)(V.Fragment,{children:[(0,V.jsxs)(`div`,{className:K.discoveryBatchRow,children:[(0,V.jsx)(yc,{checked:g,onChange:v,disabled:h.length===0,label:(0,V.jsx)(`span`,{className:K.discoveryBatchLabel,children:l(g?`providersPage.discovery.clearAll`:`providersPage.discovery.selectAll`)})}),(0,V.jsx)(`span`,{className:K.discoveryCount,children:l(`providersPage.discovery.selectedCount`,{selected:f.size,total:h.length})})]}),(0,V.jsx)(`ul`,{className:K.discoveryList,children:m.map(e=>{let t=i.has(e.name);return(0,V.jsx)(`li`,{className:t?`${K.discoveryItem} ${K.discoveryItemExisting}`:K.discoveryItem,children:t?(0,V.jsxs)(V.Fragment,{children:[x(e),(0,V.jsx)(`span`,{className:K.discoveryAddedTag,children:l(`providersPage.discovery.alreadyAdded`)})]}):(0,V.jsx)(yc,{checked:f.has(e.name),onChange:()=>_(e.name),label:x(e)})},e.name)})})]}):(0,V.jsx)(`div`,{className:K.discoveryEmpty,children:l(`providersPage.discovery.notLoaded`)}),(0,V.jsxs)(`div`,{className:K.discoveryFooter,children:[(0,V.jsx)(`button`,{type:`button`,className:K.connectivityBtnGhost,onClick:c,disabled:a,children:l(`providersPage.discovery.close`)}),(0,V.jsx)(`button`,{type:`button`,className:K.discoveryApplyBtn,onClick:b,disabled:a||f.size===0,children:l(`providersPage.discovery.apply`,{count:f.size})})]})]})}var Sw={gemini:{id:`gemini`,supportsRequestScopedErrors:!0,supportsName:!1,supportsApiKey:!0,supportsDisabled:!0,supportsBaseUrl:!0,baseUrlRequired:!1,supportsProxyUrl:!0,supportsPrefix:!0,supportsModels:!0,supportsHeaders:!0,supportsExcludedModels:!0,supportsPriority:!0,supportsTestModel:!0,supportsWebsockets:!1,supportsCloak:!1,supportsApiKeyEntries:!1,sheetSize:`md`},interactions:{id:`interactions`,supportsRequestScopedErrors:!0,supportsName:!1,supportsApiKey:!0,supportsDisabled:!0,supportsBaseUrl:!0,baseUrlRequired:!1,supportsProxyUrl:!0,supportsPrefix:!0,supportsModels:!0,supportsHeaders:!0,supportsExcludedModels:!0,supportsPriority:!0,supportsTestModel:!0,supportsWebsockets:!1,supportsCloak:!1,supportsApiKeyEntries:!1,sheetSize:`md`},codex:{id:`codex`,supportsRequestScopedErrors:!0,supportsName:!1,supportsApiKey:!0,supportsDisabled:!0,supportsBaseUrl:!0,baseUrlRequired:!0,supportsProxyUrl:!0,supportsPrefix:!0,supportsModels:!0,supportsHeaders:!0,supportsExcludedModels:!0,supportsPriority:!0,supportsTestModel:!0,supportsWebsockets:!0,supportsCloak:!1,supportsApiKeyEntries:!1,sheetSize:`md`},meta:{id:`meta`,supportsRequestScopedErrors:!0,supportsName:!1,supportsApiKey:!0,supportsDisabled:!0,supportsBaseUrl:!0,baseUrlRequired:!1,supportsProxyUrl:!0,supportsPrefix:!0,supportsModels:!0,supportsHeaders:!0,supportsExcludedModels:!0,supportsPriority:!0,supportsTestModel:!0,supportsWebsockets:!1,supportsCloak:!1,supportsApiKeyEntries:!1,sheetSize:`md`},xai:{id:`xai`,supportsRequestScopedErrors:!0,supportsName:!1,supportsApiKey:!0,supportsDisabled:!0,supportsBaseUrl:!0,baseUrlRequired:!0,supportsProxyUrl:!0,supportsPrefix:!0,supportsModels:!0,supportsHeaders:!0,supportsExcludedModels:!0,supportsPriority:!0,supportsTestModel:!0,supportsWebsockets:!0,supportsCloak:!1,supportsApiKeyEntries:!1,sheetSize:`md`},claude:{id:`claude`,supportsRequestScopedErrors:!0,supportsName:!1,supportsApiKey:!0,supportsDisabled:!0,supportsBaseUrl:!0,baseUrlRequired:!1,supportsProxyUrl:!0,supportsPrefix:!0,supportsModels:!0,supportsHeaders:!0,supportsExcludedModels:!0,supportsPriority:!0,supportsTestModel:!0,supportsWebsockets:!1,supportsCloak:!0,supportsApiKeyEntries:!1,sheetSize:`md`},vertex:{id:`vertex`,supportsRequestScopedErrors:!1,supportsName:!1,supportsApiKey:!0,supportsDisabled:!0,supportsBaseUrl:!0,baseUrlRequired:!1,supportsProxyUrl:!0,supportsPrefix:!0,supportsModels:!0,supportsHeaders:!0,supportsExcludedModels:!0,supportsPriority:!0,supportsTestModel:!1,supportsWebsockets:!1,supportsCloak:!1,supportsApiKeyEntries:!1,sheetSize:`md`},openaiCompatibility:{id:`openaiCompatibility`,supportsRequestScopedErrors:!0,supportsName:!0,supportsApiKey:!1,supportsDisabled:!0,supportsBaseUrl:!0,baseUrlRequired:!0,supportsProxyUrl:!1,supportsPrefix:!0,supportsModels:!0,supportsHeaders:!0,supportsExcludedModels:!1,supportsPriority:!0,supportsTestModel:!0,supportsWebsockets:!1,supportsCloak:!1,supportsApiKeyEntries:!0,sheetSize:`lg`},apikeyFun:{id:`apikeyFun`,supportsRequestScopedErrors:!0,supportsName:!1,supportsApiKey:!0,supportsDisabled:!0,supportsBaseUrl:!1,baseUrlRequired:!1,supportsProxyUrl:!0,supportsPrefix:!0,supportsModels:!1,supportsHeaders:!1,supportsExcludedModels:!1,supportsPriority:!0,supportsTestModel:!1,supportsWebsockets:!1,supportsCloak:!1,supportsApiKeyEntries:!1,sheetSize:`md`},fennoAI:{id:`fennoAI`,supportsRequestScopedErrors:!0,supportsName:!1,supportsApiKey:!0,supportsDisabled:!0,supportsBaseUrl:!1,baseUrlRequired:!1,supportsProxyUrl:!0,supportsPrefix:!0,supportsModels:!1,supportsHeaders:!1,supportsExcludedModels:!1,supportsPriority:!0,supportsTestModel:!1,supportsWebsockets:!1,supportsCloak:!1,supportsApiKeyEntries:!1,sheetSize:`md`},qiniuCloud:{id:`qiniuCloud`,supportsRequestScopedErrors:!0,supportsName:!1,supportsApiKey:!0,supportsDisabled:!0,supportsBaseUrl:!1,baseUrlRequired:!1,supportsProxyUrl:!0,supportsPrefix:!0,supportsModels:!1,supportsHeaders:!1,supportsExcludedModels:!1,supportsPriority:!0,supportsTestModel:!1,supportsWebsockets:!1,supportsCloak:!1,supportsApiKeyEntries:!1,sheetSize:`md`},kimi:{id:`kimi`,supportsRequestScopedErrors:!0,supportsName:!1,supportsApiKey:!0,supportsDisabled:!0,supportsBaseUrl:!1,baseUrlRequired:!1,supportsProxyUrl:!0,supportsPrefix:!0,supportsModels:!1,supportsHeaders:!1,supportsExcludedModels:!1,supportsPriority:!0,supportsTestModel:!1,supportsWebsockets:!1,supportsCloak:!1,supportsApiKeyEntries:!1,sheetSize:`md`}},Cw=e=>({alphaSearch:e===`codex`,disableCodexCloaking:e===`codex`,rebuildMidSystemMessage:e===`claude`,supportPromptCacheKey:e===`openaiCompatibility`}),ww=e=>({maxContextLength:e!==`vertex`,isCompat:e!==`vertex`,configurationUpdate:e===`codex`,modalities:e===`openaiCompatibility`}),Tw=[`kimi`,`gemini`,`interactions`,`codex`,`meta`,`xai`,`claude`,`vertex`,`openaiCompatibility`,`apikeyFun`,`fennoAI`,`qiniuCloud`],Ew=[`none`,`minimal`,`low`,`medium`,`high`,`xhigh`,`max`,`auto`],Dw=new Set(Ew),Ow=[`minimal`,`low`,`medium`,`high`,`xhigh`,`max`,`none`,`auto`],kw=e=>typeof e==`object`&&!!e&&!Array.isArray(e),Aw=e=>{if(!kw(e))return[];let t=new Set;return Array.isArray(e.levels)&&e.levels.forEach(e=>{if(typeof e!=`string`)return;let n=e.trim().toLowerCase();Dw.has(n)&&t.add(n)}),e.zero_allowed===!0&&t.add(`none`),e.dynamic_allowed===!0&&t.add(`auto`),Ew.filter(e=>t.has(e))},jw=e=>{if(!e?.length)return;let t=new Set(e);return{levels:Ow.filter(e=>t.has(e))}};function Mw({entry:e,providerBrand:t,disabled:n,supportsThinking:r,onUpdate:i}){let{t:a}=B(),o=(0,y.useId)(),s=ww(t),c=e.thinkingEnabled??!!e.thinkingJson?.trim(),l=e.thinkingLevels??[],u=(t,r=!1,o=!1)=>(0,V.jsxs)(`label`,{className:K.field,children:[(0,V.jsx)(`span`,{className:K.label,children:a(`providersPage.modelOptions.${t}`)}),(0,V.jsx)(`input`,{className:K.input,value:e[t]??``,inputMode:r?`numeric`:void 0,disabled:n||o&&!c,onChange:e=>i({[t]:e.target.value,...t===`inputModalitiesText`?{inputModalitiesTouched:!0}:{},...t===`outputModalitiesText`?{outputModalitiesTouched:!0}:{},...o?{thinkingBudgetTouched:!0}:{}})}),t===`maxContextLength`?(0,V.jsx)(`small`,{children:a(`providersPage.modelOptions.contextHint`)}):null]}),d=(t,r=!1)=>(0,V.jsxs)(`label`,{className:K.checkboxRow,children:[(0,V.jsx)(`input`,{type:`checkbox`,className:K.checkboxBox,checked:e[t]===!0,disabled:n||r&&!c,onChange:e=>i({[t]:e.target.checked,...r?{thinkingBudgetTouched:!0}:{}})}),(0,V.jsx)(`span`,{className:K.checkboxText,children:a(`providersPage.modelOptions.${t}`)})]});return(0,V.jsxs)(V.Fragment,{children:[u(`displayName`),s.maxContextLength?u(`maxContextLength`,!0):null,d(`forceMapping`),s.isCompat?d(`isCompat`):null,s.configurationUpdate?d(`supportConfigurationUpdate`):null,s.modalities?(0,V.jsxs)(V.Fragment,{children:[u(`inputModalitiesText`),u(`outputModalitiesText`),(0,V.jsx)(`p`,{className:K.thinkingExistingHint,children:a(`providersPage.modelOptions.modalitiesHint`)}),d(`useMaxCompletionTokens`)]}):null,r?(0,V.jsxs)(`fieldset`,{className:K.thinkingFieldset,children:[(0,V.jsx)(`legend`,{className:K.label,children:a(`providersPage.form.thinkingConfig`)}),(0,V.jsxs)(`div`,{className:K.field,children:[(0,V.jsx)(`label`,{htmlFor:`${o}-thinking-mode`,className:K.label,children:a(`providersPage.modelOptions.thinkingMode`)}),(0,V.jsx)(_c,{id:`${o}-thinking-mode`,ariaLabel:a(`providersPage.modelOptions.thinkingMode`),value:c?`custom`:`default`,disabled:n,options:[{value:`default`,label:a(`providersPage.modelOptions.useDefault`)},{value:`custom`,label:a(`providersPage.modelOptions.custom`)}],onChange:e=>i({thinkingEnabled:e===`custom`})})]}),(0,V.jsx)(`p`,{className:K.thinkingExistingHint,children:a(`providersPage.modelOptions.thinkingHint`)}),(0,V.jsxs)(`div`,{className:K.fieldRow,children:[u(`thinkingMin`,!0,!0),u(`thinkingMax`,!0,!0)]}),d(`thinkingZeroAllowed`,!0),d(`thinkingDynamicAllowed`,!0),(0,V.jsx)(`div`,{className:K.thinkingLevelGrid,children:Ew.map(e=>(0,V.jsx)(yc,{checked:l.includes(e),disabled:n||!c,onChange:()=>i({thinkingEnabled:!0,thinkingLevelsTouched:!0,thinkingLevels:l.includes(e)?l.filter(t=>t!==e):Ew.filter(t=>t===e||l.includes(t))}),className:`${K.thinkingLevelOption} ${l.includes(e)?K.thinkingLevelOptionSelected:``}`,labelClassName:K.thinkingLevelLabel,label:(0,V.jsxs)(V.Fragment,{children:[(0,V.jsx)(`span`,{children:a(`providersPage.form.thinkingLevels.${e}`)}),(0,V.jsx)(`code`,{children:e})]})},e))}),e.thinkingJson?.trim()?(0,V.jsx)(`p`,{className:K.thinkingExistingHint,children:a(`providersPage.form.thinkingExistingHint`)}):null]}):null]})}var Nw=10;function Pw({models:e,oauthAliasOnly:t=!1,providerBrand:n=`gemini`,supportsImage:r,supportsThinking:i,mutating:a,removeDisabled:o,onUpdate:s,onAdd:c,onRemove:l}){let{t:u}=B(),[d,f]=(0,y.useState)(null),[p,m]=(0,y.useState)(!1),h=()=>{!p&&e.length>=Nw&&m(!0),c()},g=e=>{f(t=>t===null||t===e?null:t>e?t-1:t),l(e)};return(0,V.jsxs)(V.Fragment,{children:[(p?e:e.slice(0,Nw)).map((e,c)=>{let l=d===c,p=e.thinkingEnabled??!!e.thinkingJson?.trim();return(0,V.jsxs)(`div`,{className:K.modelEntry,children:[(0,V.jsxs)(`div`,{className:K.modelAliasRow,children:[(0,V.jsx)(`input`,{className:K.input,placeholder:u(`providersPage.modelOptions.modelName`),"aria-label":u(`providersPage.modelOptions.modelName`),value:e.name,onChange:e=>s(c,{name:e.target.value}),disabled:a}),(0,V.jsx)(`input`,{className:K.input,placeholder:u(t?`auth_files.policy_alias_name`:`providersPage.modelOptions.modelAlias`),"aria-label":u(t?`auth_files.policy_alias_name`:`providersPage.modelOptions.modelAlias`),required:t,value:e.alias??``,onChange:e=>s(c,{alias:e.target.value}),disabled:a}),(0,V.jsxs)(`div`,{className:K.modelEntryActions,children:[!t&&r&&!l&&e.image===!0?(0,V.jsx)(`span`,{className:K.entryBadge,children:u(`providersPage.form.modelBadgeImage`)}):null,!t&&i&&!l&&p?(0,V.jsx)(`span`,{className:K.entryBadge,children:u(`providersPage.form.modelBadgeThinking`)}):null,(0,V.jsx)(`button`,{type:`button`,className:K.entryCardIconBtn,onClick:()=>f(l?null:c),title:u(l?`common.collapse`:`common.expand`),"aria-label":u(l?`common.collapse`:`common.expand`),"aria-expanded":l,disabled:a,children:(0,V.jsx)(Rs,{className:[K.entryCardChevron,l?K.entryCardChevronOpen:``].filter(Boolean).join(` `),size:14})}),(0,V.jsx)(`button`,{type:`button`,className:K.removeBtn,"aria-label":u(`providersPage.modelOptions.removeModel`),disabled:a||o,onClick:()=>g(c),children:(0,V.jsx)(Vs,{size:12})})]})]}),l?(0,V.jsxs)(`div`,{className:K.modelEntryDetails,children:[!t&&r?(0,V.jsxs)(`label`,{className:K.checkboxRow,children:[(0,V.jsx)(`input`,{type:`checkbox`,className:K.checkboxBox,checked:e.image===!0,disabled:a,onChange:e=>s(c,{image:e.target.checked})}),(0,V.jsxs)(`span`,{className:K.checkboxText,children:[(0,V.jsx)(`span`,{children:u(`providersPage.form.modelImage`)}),(0,V.jsx)(`small`,{children:u(`providersPage.form.modelImageHint`)})]})]}):null,t?(0,V.jsxs)(V.Fragment,{children:[(0,V.jsx)(`div`,{className:K.field,children:(0,V.jsxs)(`label`,{className:K.label,children:[u(`auth_files.policy_alias_display_name`),(0,V.jsx)(`input`,{className:K.input,value:e.displayName??``,disabled:a,onChange:e=>s(c,{displayName:e.target.value})})]})}),[`fork`,`forceMapping`].map(t=>(0,V.jsxs)(`label`,{className:K.checkboxRow,children:[(0,V.jsx)(`input`,{type:`checkbox`,className:K.checkboxBox,checked:e[t]===!0,disabled:a,onChange:e=>s(c,{[t]:e.target.checked})}),(0,V.jsx)(`span`,{className:K.checkboxText,children:u(t===`fork`?`auth_files.policy_alias_fork`:`auth_files.policy_alias_force_mapping`)})]},t))]}):(0,V.jsx)(Mw,{entry:e,providerBrand:n,disabled:a,supportsThinking:i,onUpdate:e=>s(c,e)})]}):null]},c)}),e.length>Nw?(0,V.jsx)(`button`,{type:`button`,className:K.showMoreBtn,onClick:()=>m(e=>!e),children:p?u(`providersPage.form.showFewerEntries`):u(`providersPage.form.showAllEntries`,{count:e.length})}):null,(0,V.jsxs)(`button`,{type:`button`,className:K.addBtn,disabled:a,onClick:h,children:[(0,V.jsx)(js,{size:12}),(0,V.jsx)(`span`,{children:u(`providersPage.form.addModel`)})]})]})}var Fw=[`gemini`,`interactions`,`codex`,`meta`,`xai`,`claude`,`openaiCompatibility`],Iw=e=>Fw.includes(e);function Lw(e){let{brand:t,baseUrl:n,proxyUrl:r,formHeaders:i,apiKeyEntries:a,apiKey:o,fallbackApiKey:s,authIndex:c}=e,l=Iw(t),[u,d]=(0,y.useState)(!1),[f,p]=(0,y.useState)(null),[m,h]=(0,y.useState)([]),[g,_]=(0,y.useState)(!1),v=(0,y.useCallback)(async()=>{if(l){d(!0),p(null);try{let e=dp(i),l=(c??``).trim()||void 0,u=[];if(t===`gemini`||t===`interactions`){let t=(o??``).trim()||(s??``).trim();u=await sm.fetchGeminiModelsViaApiCall(n,t,e,l,r)}else if(t===`codex`||t===`meta`||t===`xai`){let t=(o??``).trim()||(s??``).trim();u=await sm.fetchV1ModelsViaApiCall(n,t,e,l,r)}else if(t===`claude`){let t=(o??``).trim()||(s??``).trim();u=await sm.fetchClaudeModelsViaApiCall(n,t,e,l,r)}else if(t===`openaiCompatibility`){let t=(a??[]).find(e=>(e.apiKey??``).trim()||(e.existingApiKey??``).trim()||(e.authIndex??``).trim()),r=(t?.apiKey??``).trim()||(t?.existingApiKey??``).trim(),i=(t?.authIndex??``).trim()||l;try{u=await sm.fetchModelsViaApiCall(n,r,e,i,t?.proxyUrl)}catch(e){try{u=await sm.fetchModelsViaApiCall(n,void 0,void 0,void 0,t?.proxyUrl)}catch{throw e}}}h(u??[]),_(!0)}catch(e){h([]),p(Oc(e)||`Failed to fetch models`),_(!0)}finally{d(!1)}}},[l,o,a,c,n,t,s,i,r]),b=(0,y.useCallback)(()=>{h([]),p(null),d(!1),_(!1)},[]),x=(0,y.useMemo)(()=>{let e=i.map(e=>`${e.key}:${e.value}`).join(`|`),t=(a??[]).map(e=>`${e.apiKey??``}::${e.existingApiKey??``}::${e.authIndex??``}::${e.proxyUrl??``}`).join(`|`);return[n,r??``,o??``,s??``,c??``,e,t].join(`||`)},[o,a,c,n,s,i,r]),S=(0,y.useRef)(x);return(0,y.useEffect)(()=>{S.current!==x&&(S.current=x,b())},[x,b]),{available:l,loading:u,error:f,models:m,hasFetched:g,fetch:v,reset:b}}var Rw=3e4,zw={state:`idle`,message:``,summary:null};function Bw(e,t){let{baseUrl:n,apiKey:r,fallbackApiKey:i}=e,a=(0,y.useMemo)(()=>YS(n),[n]),o=(0,y.useMemo)(()=>[n,r,i??``].join(`||`),[r,n,i]),[s,c]=(0,y.useState)(()=>({signature:o,status:zw})),l=s.signature===o?s.status:zw,u=(0,y.useCallback)(e=>{c({signature:o,status:e})},[o]),d=(0,y.useCallback)(async()=>{let e=r.trim()||(i??``).trim();if(!e){u({state:`error`,message:t.apiKeyRequired,summary:null});return}u({state:`loading`,message:``,summary:null});let n=``;for(let r=0;r<a.length;r+=1){let i=a[r];try{let n=await qp.request({method:`GET`,url:i,header:{Authorization:`Bearer ${e}`}},{timeout:Rw});if(n.statusCode<200||n.statusCode>=300){u({state:`error`,message:Kp(n),summary:null});return}let r=eC(n.body??n.bodyText);if(!r){u({state:`error`,message:t.emptyResponse,summary:null});return}u({state:`success`,message:``,summary:r});return}catch(e){if(n=Oc(e,t.requestFailed),r<a.length-1)continue}}u({state:`error`,message:n||t.requestFailed,summary:null})},[r,a,i,t,u]);return{status:l,isLoading:l.state===`loading`,run:d,reset:()=>u(zw)}}var Vw=[`stop`,`stop-and-cooldown`,`continue`,`continue-and-cooldown`],Hw=e=>Vw.some(t=>t===e),Uw=e=>e?.trim().toLowerCase()??``,Ww=e=>({id:e,kind:`text`,value:``}),Gw=e=>({id:e,status:``,action:`continue`,matches:[Ww(`${e}-initial-match`)]});function Kw(e=[]){return e.map((e,t)=>{let n=`rule-${t}`;return{id:n,status:e.status===void 0?``:String(e.status),action:Uw(e.action),matches:[...(e.match??[]).map((e,t)=>({id:`${n}-text-${t}`,kind:`text`,value:e})),...(e.matchRegex??[]).map((e,t)=>({id:`${n}-regex-${t}`,kind:`regex`,value:e}))],original:{...e,...e.match===void 0?{}:{match:[...e.match]},...e.matchRegex===void 0?{}:{matchRegex:[...e.matchRegex]}}}})}var qw=(e,t)=>e.matches.filter(e=>e.kind===t).map(e=>e.value),Jw=(e,t)=>e.length===t.length&&e.every((e,n)=>e===t[n]);function Yw(e){let t=e.original;return t!==void 0&&e.status===(t.status===void 0?``:String(t.status))&&e.action===Uw(t.action)&&Jw(qw(e,`text`),t.match??[])&&Jw(qw(e,`regex`),t.matchRegex??[])}function Xw(e,t){return[`text`,`regex`].includes(t.kind)?t.value.length>0?!1:!(t.kind===`text`?e.original?.match:e.original?.matchRegex)?.some((n,r)=>n===``&&t.id===`${e.id}-${t.kind}-${r}`):!0}function Zw(e){if(Yw(e))return null;let t=e.status.trim();return!/^\d+$/.test(t)||!Number.isSafeInteger(Number(t))||Number(t)<=0?`providersPage.errorRules.invalidStatus`:Hw(Uw(e.action))?e.matches.length?e.matches.some(t=>Xw(e,t))?`providersPage.errorRules.invalidMatch`:null:`providersPage.errorRules.missingMatch`:`providersPage.errorRules.invalidAction`}function Qw(e){return e.map(e=>{let t=Zw(e);if(t)throw Error(t);if(Yw(e))return{...e.original};let n=Uw(e.action);if(!Hw(n))throw Error(`providersPage.errorRules.invalidAction`);let r=qw(e,`text`),i=qw(e,`regex`);return{status:Number(e.status.trim()),action:e.original&&e.action===Uw(e.original.action)?e.original.action:n,...r.length||e.original?.match!==void 0?{match:r}:{},...i.length||e.original?.matchRegex!==void 0?{matchRegex:i}:{}}})}function $w(e,t,n){let r=e.findIndex(e=>e.id===t),i=r+n;if(r<0||i<0||i>=e.length)return e;let a=[...e];return[a[r],a[i]]=[a[i],a[r]],a}var eT=e=>typeof e==`object`&&!!e&&!Array.isArray(e);function tT(e){let t=e?.source,n=t?.group.keys,r=t?t.keyIndex===void 0?t.group:Array.isArray(n)&&eT(n[t.keyIndex])?n[t.keyIndex]:{}:void 0,i=r?r[`disable-cooling`]:e?.disableCooling,a=r?r[`request-retry`]:e?.requestRetry,o=r?r[`request-scoped-errors`]:e?.requestScopedErrors;return{cooling:typeof i==`boolean`?i?`disabled`:`enabled`:`inherit`,retry:typeof a==`number`?String(a):``,errorsMode:o==null?`inherit`:`override`,errorRules:Kw(e?.requestScopedErrors)}}function nT(e,t=!0){let n=e.retry.trim();if(n&&(!/^[+-]?\d+$/.test(n)||!Number.isSafeInteger(Number(n))))return`providersPage.runtimePolicy.invalidRetry`;if(!t||e.errorsMode===`inherit`)return null;for(let t of e.errorRules){let e=Zw(t);if(e)return e}return null}function rT(e,t=!0){let n=nT(e,t);if(n)throw Error(n);let r={inheritFields:[],disableCooling:void 0,requestRetry:void 0,...t?{requestScopedErrors:void 0}:{}};return e.cooling===`inherit`?r.inheritFields.push(`disable-cooling`):r.disableCooling=e.cooling===`disabled`,e.retry.trim()?r.requestRetry=Number(e.retry.trim()):r.inheritFields.push(`request-retry`),t&&(e.errorsMode===`inherit`?r.inheritFields.push(`request-scoped-errors`):r.requestScopedErrors=Qw(e.errorRules)),r}function iT(e){let t=e.thinking;return{displayName:e.displayName,maxContextLength:e.maxContextLength?.toString(),forceMapping:e.forceMapping,isCompat:e.isCompat,supportConfigurationUpdate:e.supportConfigurationUpdate,inputModalitiesText:e.inputModalities?.join(`, `),outputModalitiesText:e.outputModalities?.join(`, `),originalInputModalities:e.inputModalities,originalOutputModalities:e.outputModalities,useMaxCompletionTokens:e.useMaxCompletionTokens,thinkingEnabled:t!==void 0,thinkingMin:typeof t?.min==`number`?String(t.min):void 0,thinkingMax:typeof t?.max==`number`?String(t.max):void 0,thinkingZeroAllowed:typeof t?.zero_allowed==`boolean`?t.zero_allowed:void 0,thinkingDynamicAllowed:typeof t?.dynamic_allowed==`boolean`?t.dynamic_allowed:void 0,thinkingLevels:Aw({levels:t?.levels})}}function aT(e){if(!e?.trim())return;let t=JSON.parse(e);if(typeof t!=`object`||!t||Array.isArray(t))throw Error(`Invalid thinking object`);return t}var oT=e=>e?.trim()?Number(e.trim()):void 0,sT=e=>{let t=e?.trim().split(/[,\s]+/).filter(Boolean);return t?.length?t:void 0};function cT(e){let t;if(e.thinkingEnabled!==!1&&(t=aT(e.thinkingJson),e.thinkingEnabled===!0||e.thinkingLevelsTouched||e.thinkingBudgetTouched)){if(t={...t},e.thinkingBudgetTouched||!e.thinkingJson?.trim()){let n={min:oT(e.thinkingMin),max:oT(e.thinkingMax),zero_allowed:e.thinkingZeroAllowed,dynamic_allowed:e.thinkingDynamicAllowed};for(let[e,r]of Object.entries(n))r===void 0?delete t[e]:t[e]=r}if(e.thinkingLevelsTouched){let n=jw(e.thinkingLevels)?.levels;n===void 0?delete t.levels:t.levels=n}}return{displayName:e.displayName?.trim()||void 0,maxContextLength:oT(e.maxContextLength),forceMapping:e.forceMapping,isCompat:e.isCompat,supportConfigurationUpdate:e.supportConfigurationUpdate,inputModalities:!e.inputModalitiesTouched&&e.originalInputModalities!==void 0?e.originalInputModalities:sT(e.inputModalitiesText),outputModalities:!e.outputModalitiesTouched&&e.originalOutputModalities!==void 0?e.originalOutputModalities:sT(e.outputModalitiesText),useMaxCompletionTokens:e.useMaxCompletionTokens,thinking:t}}var lT=e=>!e?.trim()||/^\d+$/.test(e.trim())&&Number.isSafeInteger(Number(e));function uT(e){for(let t of e){if(!t.name.trim())continue;if(!lT(t.maxContextLength))return`providersPage.modelOptions.invalidContext`;if(t.thinkingEnabled===!1)continue;let e;try{e=cT(t).thinking}catch{return`providersPage.modelOptions.invalidThinking`}if((t.thinkingBudgetTouched||!t.thinkingJson?.trim())&&(!lT(t.thinkingMin)||!lT(t.thinkingMax)))return`providersPage.modelOptions.invalidBudget`;let n=e?.min,r=e?.max;if([n,r].some(e=>e!=null&&(typeof e!=`number`||!Number.isSafeInteger(e)||e<0)))return`providersPage.modelOptions.invalidBudget`;if((t.thinkingBudgetTouched||!t.thinkingJson?.trim())&&Number(n??0)>Number(r??0))return`providersPage.modelOptions.invalidRange`}return null}var dT={editor:`ErrorRulesEditor-module__editor___CO0H9`,ruleFields:`ErrorRulesEditor-module__ruleFields___9DOhI`,matchRow:`ErrorRulesEditor-module__matchRow___oQv89`,matchInput:`ErrorRulesEditor-module__matchInput___wlMZz`,removeMatch:`ErrorRulesEditor-module__removeMatch___oVrhR`},fT=Vw,pT=`providersPage.errorRules`;function mT({rules:e,onChange:t,disabled:n}){let{t:r}=B(),i=(0,y.useId)(),a=(0,y.useRef)(0),o=(0,y.useRef)(null),s=(0,y.useRef)(null),[c,l]=(0,y.useState)(()=>new Set),u=()=>`${i}-draft-${++a.current}`,d=e=>`${i}-${e}-status`,f=e=>`${i}-${e}-value`;(0,y.useEffect)(()=>{if(!o.current)return;let e=document.getElementById(o.current);e&&s.current?.contains(e)&&e.focus(),o.current=null},[e]);let p=n=>{t(e.map(e=>e.id===n.id?n:e))};return(0,V.jsxs)(`div`,{ref:s,className:`${K.section} ${dT.editor}`,children:[(0,V.jsx)(`p`,{className:K.sectionDesc,children:r(`${pT}.hint`)}),e.length===0&&(0,V.jsx)(`p`,{className:K.sectionDesc,children:r(`${pT}.empty`)}),e.map((a,s)=>{let m=c.has(a.id)?Zw(a):null,h=`${i}-${a.id}-error`,g=m===`${pT}.invalidStatus`,_=m===`${pT}.invalidAction`,v=m===`${pT}.invalidMatch`;return(0,V.jsxs)(`div`,{role:`group`,"aria-labelledby":`${i}-${a.id}-title`,"aria-describedby":m?h:void 0,className:K.entryCard,onBlur:()=>l(e=>new Set(e).add(a.id)),children:[(0,V.jsxs)(`div`,{className:K.entryCardHeader,children:[(0,V.jsx)(`span`,{id:`${i}-${a.id}-title`,children:r(`${pT}.rule`,{number:s+1})}),(0,V.jsxs)(`div`,{className:K.entryCardHeaderRight,children:[[-1,1].map(i=>(0,V.jsx)(`button`,{type:`button`,className:K.entryCardIconBtn,disabled:n||(i===-1?s===0:s===e.length-1),"aria-label":r(`${pT}.${i===-1?`moveUp`:`moveDown`}`),title:r(`${pT}.${i===-1?`moveUp`:`moveDown`}`),onClick:()=>{o.current=d(a.id),t($w(e,a.id,i))},children:i===-1?(0,V.jsx)(Ls,{size:16}):(0,V.jsx)(Rs,{size:16})},i)),(0,V.jsx)(`button`,{type:`button`,className:K.removeBtn,disabled:n,"aria-label":r(`${pT}.removeRule`),title:r(`${pT}.removeRule`),onClick:()=>{let n=e[s+1]??e[s-1];o.current=n?d(n.id):`${i}-add-rule`,t(e.filter(e=>e.id!==a.id))},children:(0,V.jsx)(Os,{size:16})})]})]}),(0,V.jsxs)(`div`,{className:dT.ruleFields,children:[(0,V.jsxs)(`div`,{className:K.field,children:[(0,V.jsx)(`label`,{htmlFor:d(a.id),className:K.label,children:r(`${pT}.status`)}),(0,V.jsx)(`input`,{id:d(a.id),className:K.input,type:`text`,inputMode:`numeric`,value:a.status,disabled:n,"aria-invalid":g||void 0,"aria-describedby":g?h:void 0,onChange:e=>p({...a,status:e.target.value})})]}),(0,V.jsxs)(`div`,{className:K.field,children:[(0,V.jsx)(`label`,{htmlFor:`${i}-${a.id}-action`,className:K.label,children:r(`${pT}.action`)}),(0,V.jsx)(_c,{id:`${i}-${a.id}-action`,ariaLabel:r(`${pT}.action`),value:a.action,disabled:n,ariaInvalid:_||void 0,ariaDescribedBy:_?h:void 0,options:[{value:``,label:r(`${pT}.selectAction`)},...a.action&&!fT.includes(a.action)?[{value:a.action,label:a.action}]:[],...fT.map(e=>({value:e,label:r(`${pT}.actions.${e}`)}))],onChange:e=>p({...a,action:e})})]})]}),a.matches.map((e,t)=>(0,V.jsxs)(`div`,{className:dT.matchRow,children:[(0,V.jsxs)(`div`,{className:K.field,children:[(0,V.jsx)(`label`,{htmlFor:`${i}-${e.id}-kind`,className:K.label,children:r(`${pT}.matchType`)}),(0,V.jsx)(_c,{id:`${i}-${e.id}-kind`,ariaLabel:r(`${pT}.matchType`),value:e.kind,disabled:n,options:[{value:`text`,label:r(`${pT}.text`)},{value:`regex`,label:r(`${pT}.regex`)}],onChange:t=>p({...a,matches:a.matches.map(n=>n.id===e.id?{...n,kind:t}:n)})})]}),(0,V.jsxs)(`div`,{className:K.field,children:[(0,V.jsx)(`label`,{htmlFor:f(e.id),className:K.label,children:r(`${pT}.matchValue`)}),(0,V.jsx)(`textarea`,{id:f(e.id),className:`${K.input} ${dT.matchInput}`,rows:1,value:e.value,disabled:n,spellCheck:!1,"aria-invalid":v&&Xw(a,e)||void 0,"aria-describedby":[e.kind===`regex`?`${i}-${e.id}-hint`:``,v&&Xw(a,e)?h:``].filter(Boolean).join(` `)||void 0,onChange:t=>p({...a,matches:a.matches.map(n=>n.id===e.id?{...n,value:t.target.value}:n)})}),e.kind===`regex`&&(0,V.jsx)(`span`,{id:`${i}-${e.id}-hint`,className:K.labelHint,children:r(`${pT}.regexHint`)})]}),(0,V.jsx)(`button`,{type:`button`,className:`${K.removeBtn} ${dT.removeMatch}`,disabled:n,"aria-label":r(`${pT}.removeMatch`),title:r(`${pT}.removeMatch`),onClick:()=>{let n=a.matches[t+1]??a.matches[t-1];o.current=n?f(n.id):`${i}-${a.id}-add-match`,p({...a,matches:a.matches.filter(t=>t.id!==e.id)})},children:(0,V.jsx)(Os,{size:16})})]},e.id)),(0,V.jsxs)(`button`,{id:`${i}-${a.id}-add-match`,type:`button`,className:K.addBtn,disabled:n,onClick:()=>{let e=Ww(u());o.current=f(e.id),p({...a,matches:[...a.matches,e]})},children:[(0,V.jsx)(js,{size:14}),r(`${pT}.addMatch`)]}),m&&(0,V.jsx)(`div`,{id:h,className:K.errorBox,role:`status`,children:r(m)})]},a.id)}),(0,V.jsxs)(`button`,{id:`${i}-add-rule`,type:`button`,className:K.addBtn,disabled:n,onClick:()=>{let n=Gw(u());o.current=d(n.id),t([...e,n])},children:[(0,V.jsx)(js,{size:14}),r(`${pT}.addRule`)]})]})}function hT({value:e,onChange:t,disabled:n,supportsErrors:r=!0}){let{t:i}=B(),a=(0,y.useId)(),o=`providersPage.runtimePolicy`;return(0,V.jsx)(Kb,{label:i(`${o}.title`),"aria-describedby":`${a}-description`,children:(0,V.jsxs)(`div`,{className:K.section,children:[(0,V.jsx)(`p`,{id:`${a}-description`,className:K.sectionDesc,children:i(`${o}.description`)}),(0,V.jsxs)(`div`,{className:K.field,children:[(0,V.jsx)(`label`,{htmlFor:`${a}-cooling`,className:K.label,children:i(`${o}.cooling`)}),(0,V.jsx)(_c,{id:`${a}-cooling`,ariaLabel:i(`${o}.cooling`),value:e.cooling,disabled:n,options:[{value:`inherit`,label:i(`${o}.inherit`)},{value:`enabled`,label:i(`${o}.coolingEnabled`)},{value:`disabled`,label:i(`${o}.coolingDisabled`)}],onChange:n=>t({...e,cooling:n})})]}),(0,V.jsxs)(`div`,{className:K.field,children:[(0,V.jsx)(`label`,{htmlFor:`${a}-retry`,className:K.label,children:i(`${o}.retry`)}),(0,V.jsx)(`input`,{id:`${a}-retry`,className:K.input,type:`text`,value:e.retry,disabled:n,placeholder:i(`${o}.inherit`),"aria-describedby":`${a}-retry-hint`,onChange:n=>t({...e,retry:n.target.value})}),(0,V.jsx)(`span`,{id:`${a}-retry-hint`,className:K.labelHint,children:i(`${o}.retryHint`)})]}),r&&(0,V.jsxs)(V.Fragment,{children:[(0,V.jsxs)(`div`,{className:K.field,children:[(0,V.jsx)(`label`,{htmlFor:`${a}-errors-mode`,className:K.label,children:i(`${o}.errorsMode`)}),(0,V.jsx)(_c,{id:`${a}-errors-mode`,ariaLabel:i(`${o}.errorsMode`),value:e.errorsMode,disabled:n,ariaDescribedBy:`${a}-errors-hint`,options:[{value:`inherit`,label:i(`${o}.inherit`)},{value:`override`,label:i(`${o}.override`)}],onChange:n=>t({...e,errorsMode:n})}),(0,V.jsx)(`span`,{id:`${a}-errors-hint`,className:K.labelHint,children:i(`${o}.errorsHint`)})]}),e.errorsMode===`override`&&(0,V.jsx)(mT,{rules:e.errorRules,onChange:n=>t({...e,errorRules:n}),disabled:n})]})]})})}function gT({brand:e,value:t,onChange:n,disabled:r}){let{t:i}=B(),a=(0,y.useId)(),o=Cw(e);if(!Object.values(o).some(Boolean))return null;let s=e=>(0,V.jsxs)(`label`,{className:K.checkboxRow,children:[(0,V.jsx)(`input`,{type:`checkbox`,className:K.checkboxBox,checked:t[e]===!0,disabled:r,"aria-describedby":`${a}-${e}-hint`,onChange:t=>n({[e]:t.target.checked})}),(0,V.jsxs)(`span`,{className:K.checkboxText,children:[(0,V.jsx)(`span`,{children:i(`providersPage.behavior.${e}`)}),(0,V.jsx)(`small`,{id:`${a}-${e}-hint`,children:i(`providersPage.behavior.${e}Hint`)})]})]});return(0,V.jsx)(Kb,{label:i(`providersPage.behavior.title`),children:(0,V.jsxs)(`div`,{className:K.section,children:[o.alphaSearch?s(`alphaSearch`):null,o.disableCodexCloaking?(0,V.jsxs)(`div`,{className:K.field,children:[(0,V.jsx)(`label`,{htmlFor:`${a}-cloak`,className:K.label,children:i(`providersPage.behavior.codexCloaking`)}),(0,V.jsx)(_c,{id:`${a}-cloak`,ariaLabel:i(`providersPage.behavior.codexCloaking`),value:t.disableCodexCloaking===void 0?`default`:t.disableCodexCloaking?`disabled`:`enabled`,disabled:r,ariaDescribedBy:`${a}-cloak-hint`,options:[{value:`default`,label:i(`providersPage.behavior.useDefault`)},{value:`enabled`,label:i(`providersPage.behavior.cloakingEnabled`)},{value:`disabled`,label:i(`providersPage.behavior.cloakingDisabled`)}],onChange:e=>n({disableCodexCloaking:e==="default"?void 0:e===`disabled`})}),(0,V.jsx)(`small`,{id:`${a}-cloak-hint`,className:K.labelHint,children:i(`providersPage.behavior.codexCloakingHint`)})]}):null,o.rebuildMidSystemMessage?s(`rebuildMidSystemMessage`):null,o.supportPromptCacheKey?s(`supportPromptCacheKey`):null]})})}function _T(e,t){let n=Cw(t);return{...n.alphaSearch?{alphaSearch:e.alphaSearch}:{},...n.disableCodexCloaking?{disableCodexCloaking:e.disableCodexCloaking}:{},...n.rebuildMidSystemMessage?{rebuildMidSystemMessage:e.rebuildMidSystemMessage}:{},...n.supportPromptCacheKey?{supportPromptCacheKey:e.supportPromptCacheKey}:{}}}var vT=()=>({name:``,alias:``}),yT=(e,t=e.defaultProtocol)=>({protocol:t,apiKey:``,existingApiKey:``,baseUrl:e.baseUrlOptions[0]?.baseUrl??``,proxyUrl:``,prefix:``,disabled:!1,disableCooling:void 0,runtimePolicy:tT(),priority:void 0,weight:void 0,models:[vT()]}),bT=e=>({apiKey:``,name:``,baseUrl:``,proxyUrl:``,prefix:``,disabled:!1,disableCooling:void 0,priority:void 0,weight:void 0,models:[],headers:[],excludedModelsText:``,sponsorKeyEntries:[yT(e)]}),xT=(e,t)=>!e||e.brand!==t?null:e.raw,ST=(e,t)=>qC(t.getProtocolUrls(e.baseUrl),e.protocol),CT=(e,t)=>e===null?`--`:typeof e==`number`?new Intl.NumberFormat(t,{maximumFractionDigits:6}).format(e):e,wT=e=>{let t=(e.status??``).trim().toLowerCase();return e.isValid&&(!t||t===`active`)},TT=e=>e?.length?e.map(e=>({sourceIndex:e.sourceIndex,name:e.name??``,alias:e.alias??``,priority:e.priority,testModel:e.testModel,image:e.image===!0,thinkingJson:e.thinking?JSON.stringify(e.thinking,null,2):``,...iT(e)})):[vT()],ET=(e,t,n)=>({...yT(e,t),existingApiKey:n.apiKey??``,baseUrl:e.resolveBaseUrl(n.baseUrl),proxyUrl:n.proxyUrl??``,prefix:n.prefix??``,disabled:gx(n.excludedModels),disableCooling:n.disableCooling,runtimePolicy:tT(n),..._T(n,t),priority:n.priority,weight:n.weight,models:TT(n.models)}),DT=(e,t)=>{let n=t.apiKeyEntries?.find(e=>e.apiKey?.trim());return{...yT(e,`openai`),existingApiKey:n?.apiKey??``,baseUrl:e.resolveBaseUrl(t.baseUrl),proxyUrl:n?.proxyUrl??``,prefix:t.prefix??``,disabled:t.disabled===!0,disableCooling:t.disableCooling,runtimePolicy:tT(t),..._T(t,`openaiCompatibility`),priority:t.priority,weight:n?.weight,models:TT(t.models)}},OT=(e,t)=>{if(!e)return[yT(t)];let n=t.protocols.flatMap(n=>{if(n===`openai`){let n=e.openai[0]?.config;return n?[DT(t,n)]:[]}let r=e[n][0]?.config;return r?[ET(t,n,r)]:[]});return n.length?n:[yT(t)]};function kT({label:e,description:t,protocol:n,models:r,discovery:i,mutating:a,onChange:o}){let{t:s}=B(),[c,l]=(0,y.useState)(!1),u=(0,y.useMemo)(()=>r.length?r:[vT()],[r]),d=(0,y.useMemo)(()=>{let e=new Set;return u.forEach(t=>{let n=(t.name??``).trim();n&&e.add(n)}),e},[u]);return(0,V.jsx)(Kb,{label:e,children:(0,V.jsxs)(`div`,{className:K.entriesList,children:[(0,V.jsx)(`p`,{className:K.sectionDesc,children:t}),(0,V.jsx)(`div`,{className:K.entriesToolbar,children:(0,V.jsxs)(`button`,{type:`button`,className:K.connectivityBtn,onClick:()=>{l(!0),!i.loading&&!i.hasFetched&&i.fetch()},disabled:a,children:[(0,V.jsx)(Es,{size:14}),(0,V.jsx)(`span`,{children:s(`providersPage.discovery.openButton`)})]})}),c?(0,V.jsx)(xw,{loading:i.loading,error:i.error,models:i.models,hasFetched:i.hasFetched,existingNames:d,mutating:a,onApply:e=>o(bw(u,e)),onReload:()=>void i.fetch(),onClose:()=>l(!1)}):null,(0,V.jsx)(Pw,{providerBrand:n===`openai`?`openaiCompatibility`:n,models:u,supportsImage:n===`openai`,supportsThinking:!0,mutating:a,removeDisabled:u.length<=1,onUpdate:(e,t)=>o(u.map((n,r)=>r===e?{...n,...t}:n)),onAdd:()=>o([...u,vT()]),onRemove:e=>{let t=u.filter((t,n)=>n!==e);o(t.length?t:[vT()])}})]})})}function AT({entry:e,index:t,formId:n,mode:r,definition:i,usedProtocols:a,canRemove:o,mutating:s,onChange:c,onRemove:l}){let{t:u,i18n:d}=B(),[f,p]=(0,y.useState)(!1),[m,h]=(0,y.useState)(()=>r===`create`||!e.existingApiKey?.trim()),g=ST(e,i),_=u(`providersPage.sponsor.protocols.${KC(e.protocol)}`),v=u(`providersPage.sponsor.groupedKey`,{index:t+1}),b=e.apiKey.trim()||e.existingApiKey?.trim()||``,x=b?dg(b):u(`providersPage.status.notConfigured`),S=Fee(e.protocol),C=(0,y.useMemo)(()=>({apiKeyRequired:u(`providersPage.sponsor.usageApiKeyRequired`),emptyResponse:u(`providersPage.sponsor.usageEmpty`),requestFailed:u(`providersPage.connectivity.requestFailed`)}),[u]),w=Bw({baseUrl:e.baseUrl,apiKey:e.apiKey,fallbackApiKey:e.existingApiKey},C),T=w.status.summary,E=!T||wT(T),D=T===null?``:CT(T.remaining,d.language),O=T===null?``:CT(T.used,d.language),k=T===null?``:CT(T.limit,d.language),A=(0,y.useMemo)(()=>[],[]),j=(0,y.useMemo)(()=>[{apiKey:e.apiKey,existingApiKey:e.existingApiKey,proxyUrl:e.proxyUrl}],[e.apiKey,e.existingApiKey,e.proxyUrl]),M=Lw({brand:Iee(e.protocol),baseUrl:g,proxyUrl:e.proxyUrl,formHeaders:A,apiKey:e.apiKey,fallbackApiKey:e.existingApiKey,apiKeyEntries:e.protocol===`openai`?j:void 0}),N=i.protocols.filter(t=>t===e.protocol||!a.has(t)).map(e=>({value:e,label:u(`providersPage.sponsor.protocols.${KC(e)}`)})),ee=t=>{c({...e,...t})};return(0,V.jsxs)(`div`,{className:K.entryCard,children:[(0,V.jsxs)(`div`,{className:K.entryCardHeader,children:[(0,V.jsxs)(`button`,{type:`button`,className:K.entryCardToggle,"aria-expanded":m,onClick:()=>h(e=>!e),children:[(0,V.jsxs)(`span`,{className:K.sponsorGroupTitle,children:[(0,V.jsx)(`span`,{children:v}),(0,V.jsx)(`strong`,{children:_})]}),(0,V.jsxs)(`span`,{className:K.sponsorGroupSummary,children:[(0,V.jsx)(`span`,{className:K.sponsorSummaryKey,children:x}),(0,V.jsx)(`span`,{className:K.sponsorSummaryUrl,children:g})]})]}),(0,V.jsxs)(`div`,{className:K.entryCardHeaderRight,children:[(0,V.jsx)(`button`,{type:`button`,className:K.entryCardIconBtn,onClick:()=>h(e=>!e),title:u(m?`common.collapse`:`common.expand`),"aria-label":u(m?`common.collapse`:`common.expand`),children:(0,V.jsx)(Rs,{className:[K.entryCardChevron,m?K.entryCardChevronOpen:``].filter(Boolean).join(` `),size:14})}),(0,V.jsx)(`button`,{type:`button`,className:K.removeBtn,onClick:l,disabled:s||!o,title:u(`providersPage.sponsor.removeGroupedKey`),"aria-label":u(`providersPage.sponsor.removeGroupedKey`),children:(0,V.jsx)(Vs,{size:12})})]})]}),m?(0,V.jsxs)(`div`,{className:K.entryCardBody,children:[(0,V.jsxs)(`div`,{className:K.field,children:[(0,V.jsx)(`label`,{className:K.label,htmlFor:`${n}-group-${t}-protocol`,children:u(`providersPage.sponsor.protocol`)}),(0,V.jsx)(_c,{id:`${n}-group-${t}-protocol`,value:e.protocol,options:N,onChange:e=>ee({protocol:e,models:[vT()]}),disabled:s,ariaLabel:u(`providersPage.sponsor.protocol`)}),(0,V.jsx)(`span`,{className:K.labelHint,children:u(`providersPage.sponsor.protocolHint`)})]}),i.baseUrlOptions.length>1?(0,V.jsxs)(`div`,{className:K.field,children:[(0,V.jsx)(`span`,{className:K.label,children:u(`providersPage.sponsor.urlMode`,{provider:i.displayName})}),(0,V.jsx)(`div`,{className:K.sponsorUrlOptions,role:`radiogroup`,children:i.baseUrlOptions.map(r=>{let a=i.resolveBaseUrl(e.baseUrl)===r.baseUrl;return(0,V.jsxs)(`label`,{className:[K.sponsorUrlOption,a?K.sponsorUrlOptionActive:``].filter(Boolean).join(` `),children:[(0,V.jsx)(`input`,{type:`radio`,name:`${n}-group-${t}-base-url`,value:r.baseUrl,checked:a,onChange:()=>ee({baseUrl:r.baseUrl}),disabled:s}),(0,V.jsxs)(`span`,{className:K.sponsorUrlOptionText,children:[(0,V.jsx)(`span`,{children:u(`providersPage.sponsor.urlOptions.${r.id}`)}),(0,V.jsx)(`small`,{children:r.baseUrl}),r.descriptionKey?(0,V.jsx)(`small`,{className:K.sponsorUrlOptionDescription,children:u(`providersPage.sponsor.urlOptionDescriptions.${r.descriptionKey}`)}):null]})]},r.id)})}),(0,V.jsx)(`span`,{className:K.labelHint,children:u(`providersPage.sponsor.urlHint`)})]}):null,(0,V.jsxs)(`div`,{className:K.sponsorProtocolCard,children:[(0,V.jsx)(`span`,{className:K.sponsorProtocolName,children:u(`providersPage.sponsor.protocolEndpoint`)}),(0,V.jsx)(`span`,{className:K.sponsorProtocolUrl,children:g})]}),(0,V.jsxs)(`div`,{className:K.field,children:[(0,V.jsx)(`label`,{className:K.label,htmlFor:`${n}-group-${t}-api-key`,children:u(`providersPage.form.apiKey`)}),(0,V.jsxs)(`div`,{className:K.passwordField,children:[(0,V.jsx)(`input`,{id:`${n}-group-${t}-api-key`,className:K.passwordInput,type:f?`text`:`password`,value:e.apiKey,onChange:e=>ee({apiKey:e.target.value}),autoComplete:`new-password`,"data-1p-ignore":`true`,"data-lpignore":`true`,"data-bwignore":`true`,placeholder:u(r===`edit`?`providersPage.form.apiKeyEditPlaceholder`:`providersPage.form.apiKeyCreatePlaceholder`),disabled:s}),(0,V.jsx)(`button`,{type:`button`,className:K.passwordToggle,onClick:()=>p(e=>!e),disabled:s,"aria-label":u(f?`providersPage.form.hideApiKey`:`providersPage.form.showApiKey`),title:u(f?`providersPage.form.hideApiKey`:`providersPage.form.showApiKey`),children:f?(0,V.jsx)(Ws,{size:16}):(0,V.jsx)(Us,{size:16})})]}),(0,V.jsx)(`span`,{className:K.labelHint,children:u(`providersPage.sponsor.apiKeyHint`)})]}),i.supportsUsageCheck?(0,V.jsxs)(`div`,{className:K.sponsorUsageSection,children:[(0,V.jsxs)(`button`,{type:`button`,className:K.connectivityBtn,onClick:()=>void w.run(),disabled:s||w.isLoading,children:[w.isLoading?(0,V.jsx)(Is,{className:K.statusIconLoading,size:14}):(0,V.jsx)(Js,{size:14}),(0,V.jsx)(`span`,{children:w.isLoading?u(`providersPage.sponsor.usageChecking`):u(`providersPage.sponsor.usageCheck`)})]}),w.status.state===`success`&&T?(0,V.jsxs)(`div`,{className:[K.sponsorUsageResult,E?``:K.sponsorUsageResultWarning].filter(Boolean).join(` `),children:[(0,V.jsxs)(`div`,{className:K.sponsorUsageMain,children:[E?(0,V.jsx)(Ps,{className:`${K.statusIcon} ${K.statusIconSuccess}`,size:14}):(0,V.jsx)(Ns,{className:`${K.statusIcon} ${K.statusIconError}`,size:14}),(0,V.jsx)(`span`,{children:u(`providersPage.sponsor.usageRemaining`,{amount:D,unit:T.unit})})]}),T.used!==null||T.limit!==null?(0,V.jsx)(`span`,{className:K.sponsorUsageMeta,children:u(`providersPage.sponsor.usageBreakdown`,{used:O,limit:k})}):null,E?null:(0,V.jsx)(`span`,{className:K.sponsorUsageMeta,children:u(`providersPage.sponsor.usageStatus`,{status:T.status||u(`providersPage.sponsor.usageInvalid`)})})]}):null,w.status.state===`error`?(0,V.jsx)(`div`,{className:K.connectivityError,children:w.status.message}):null]}):null,(0,V.jsxs)(`div`,{className:K.field,children:[(0,V.jsx)(`label`,{className:K.label,htmlFor:`${n}-group-${t}-proxy`,children:u(`providersPage.form.proxyUrl`)}),(0,V.jsx)(`input`,{id:`${n}-group-${t}-proxy`,className:K.input,value:e.proxyUrl,onChange:e=>ee({proxyUrl:e.target.value}),placeholder:`http://127.0.0.1:7890`,disabled:s})]}),(0,V.jsxs)(`div`,{className:K.fieldRow,children:[(0,V.jsxs)(`div`,{className:K.field,children:[(0,V.jsx)(`label`,{className:K.label,htmlFor:`${n}-group-${t}-prefix`,children:u(`providersPage.form.prefix`)}),(0,V.jsx)(`input`,{id:`${n}-group-${t}-prefix`,className:K.input,value:e.prefix,onChange:e=>ee({prefix:e.target.value}),disabled:s})]}),(0,V.jsxs)(`div`,{className:K.field,children:[(0,V.jsx)(`label`,{className:K.label,htmlFor:`${n}-group-${t}-priority`,children:u(`providersPage.form.priority`)}),(0,V.jsx)(`input`,{id:`${n}-group-${t}-priority`,type:`number`,className:K.input,value:e.priority??``,onChange:e=>ee({priority:e.target.value===``?void 0:Number(e.target.value)}),disabled:s})]})]}),(0,V.jsxs)(`div`,{className:K.field,children:[(0,V.jsx)(`label`,{className:K.label,htmlFor:`${n}-group-${t}-weight`,children:u(`providersPage.form.weight`)}),(0,V.jsx)(`input`,{id:`${n}-group-${t}-weight`,type:`number`,step:`1`,max:pp,className:K.input,value:e.weight??``,placeholder:`1`,onChange:e=>ee({weight:e.target.value===``?void 0:Number(e.target.value)}),disabled:s}),(0,V.jsx)(`span`,{className:K.labelHint,children:u(`providersPage.form.weightHint`)})]}),(0,V.jsxs)(`label`,{className:K.checkboxRow,children:[(0,V.jsx)(`input`,{type:`checkbox`,className:K.checkboxBox,checked:e.disabled,disabled:s,onChange:e=>ee({disabled:e.target.checked})}),(0,V.jsxs)(`span`,{className:K.checkboxText,children:[(0,V.jsx)(`span`,{children:u(`providersPage.form.disabled`)}),(0,V.jsx)(`small`,{children:u(`providersPage.form.disabledHint`)})]})]}),(0,V.jsx)(gT,{brand:e.protocol===`openai`?`openaiCompatibility`:e.protocol,value:e,onChange:ee,disabled:s}),(0,V.jsx)(hT,{value:e.runtimePolicy??tT(),onChange:e=>ee({runtimePolicy:e}),disabled:s}),(0,V.jsx)(kT,{label:u(`providersPage.sponsor.protocolModels.${S}`),description:u(`providersPage.sponsor.protocolModelHints.${S}`),protocol:e.protocol,models:e.models,discovery:M,mutating:s,onChange:e=>ee({models:e})})]}):null]})}var jT=(e,t,n)=>{if(n===`create`)return bT(e);let r=xT(t,e.brand);return{...bT(e),sponsorKeyEntries:OT(r,e)}};function MT({brand:e=`apikeyFun`,resource:t,mode:n,mutating:r,formId:i,variant:a,onSubmit:o,onDirtyChange:s}){let{t:c}=B(),l=(0,y.useMemo)(()=>GC(e),[e]),[u,d]=(0,y.useState)(()=>jT(l,t,n)),[f]=(0,y.useState)(()=>JSON.stringify(jT(l,t,n))),[p,m]=(0,y.useState)(null),h=(0,y.useMemo)(()=>u.sponsorKeyEntries??[yT(l)],[l,u.sponsorKeyEntries]),g=(0,y.useMemo)(()=>new Set(h.map(e=>e.protocol)),[h]),_=(0,y.useMemo)(()=>l.protocols.filter(e=>!g.has(e)),[l.protocols,g]),v=(0,y.useMemo)(()=>JSON.stringify({...u,sponsorKeyEntries:h})!==f,[h,u,f]);(0,y.useEffect)(()=>{s?.(v)},[v,s]);let b=e=>{d(t=>({...t,sponsorKeyEntries:e}))},x=(e,t)=>{b(h.map((n,r)=>r===e?t:n))},S=e=>{let t=h.filter((t,n)=>n!==e);b(t.length||n===`edit`?t:[yT(l)])},C=()=>{let e=_[0];e&&b([...h,yT(l,e)])},w=()=>{for(let e of h){let t=uT(e.models);if(t)return c(t);if(!e.runtimePolicy)continue;let n=nT(e.runtimePolicy);if(n)return c(n)}return h.length?h.some(e=>!e.apiKey.trim()&&!e.existingApiKey?.trim())?c(`providersPage.sponsor.validation.keyRequired`):new Set(h.map(e=>e.protocol)).size===h.length?h.some(e=>e.weight!==void 0&&!Number.isSafeInteger(e.weight))?c(`providersPage.form.validation.weightInteger`):h.some(e=>e.weight!==void 0&&e.weight>1e6)?c(`providersPage.form.validation.weightMax`,{max:pp}):null:c(`providersPage.sponsor.validation.protocolDuplicate`):n===`edit`?null:c(`providersPage.sponsor.validation.keyRequired`)},T=async e=>{e.preventDefault();let t=w();if(t){m(t);return}try{m(null),await o({...u,sponsorKeyEntries:h})}catch(e){m(vw(e)?c(`providersPage.sponsor.partialMutationWarning`):e instanceof Error?e.message:String(e))}},E=[K.form,a===`quickStart`?K.quickStartForm:``].filter(Boolean).join(` `);return n===`edit`&&Pee(xT(t,l.brand))?(0,V.jsx)(`form`,{id:i,className:E,onSubmit:e=>e.preventDefault(),children:(0,V.jsx)(`div`,{className:K.errorBox,children:c(`providersPage.sponsor.aggregationConflict`)})}):(0,V.jsxs)(`form`,{id:i,className:E,onSubmit:T,noValidate:!0,children:[(0,V.jsxs)(`div`,{className:K.section,children:[(0,V.jsx)(`h3`,{className:K.sectionTitle,children:c(`providersPage.sponsor.groupedKeysTitle`)}),h.map((e,t)=>(0,V.jsx)(AT,{entry:e,index:t,formId:i,mode:n,definition:l,usedProtocols:g,canRemove:n===`edit`||h.length>1,mutating:r,onChange:e=>x(t,e),onRemove:()=>S(t)},`${e.protocol}-${t}`)),(0,V.jsxs)(`button`,{type:`button`,className:K.addBtn,disabled:r||!_.length,onClick:C,children:[(0,V.jsx)(js,{size:12}),(0,V.jsx)(`span`,{children:c(`providersPage.sponsor.addGroupedKey`)})]})]}),p?(0,V.jsx)(`div`,{className:K.errorBox,children:p}):null]})}var NT={panel:`SponsorQuickStartPanel-module__panel___WanDv`,header:`SponsorQuickStartPanel-module__header___tCgCw`,topLink:`SponsorQuickStartPanel-module__topLink___Bo7sg`,titleRow:`SponsorQuickStartPanel-module__titleRow___p9NN3`,logo:`SponsorQuickStartPanel-module__logo___0BbrZ`,titleText:`SponsorQuickStartPanel-module__titleText___CiGYk`,title:`SponsorQuickStartPanel-module__title___6T9tS`,footer:`SponsorQuickStartPanel-module__footer___I9JkV`,empty:`SponsorQuickStartPanel-module__empty___BFE7c`,emptyActions:`SponsorQuickStartPanel-module__emptyActions___JfEjQ`,emptyActionButton:`SponsorQuickStartPanel-module__emptyActionButton___esMyY`,emptyActionButtonPrimary:`SponsorQuickStartPanel-module__emptyActionButtonPrimary___jkGpV`,emptyActionButtonEmphasis:`SponsorQuickStartPanel-module__emptyActionButtonEmphasis___SFvE3`,primaryAction:`SponsorQuickStartPanel-module__primaryAction___xpqum`,spin:`SponsorQuickStartPanel-module__spin___74eZ9`,"sponsor-quick-start-spin":`SponsorQuickStartPanel-module__sponsor-quick-start-spin___iLZgr`,sponsorQuickStartSpin:`SponsorQuickStartPanel-module__sponsor-quick-start-spin___iLZgr`};function PT({resource:e,workbench:t,mutationDisabled:n=!1}){let{t:r}=B(),{showNotification:i}=Jc(),a=(0,y.useId)(),[o,s]=(0,y.useState)(!1),[c,l]=(0,y.useState)(!1),[u,d]=(0,y.useState)(0),[f,p]=(0,y.useState)(!1),m=o||n||t.mutating,h=e?`edit`:`create`,g=m||h===`edit`&&!c,_=aS.apikeyFun;gw({shouldBlock:c&&!o,dialog:{title:r(`providersPage.unsavedChanges.title`),message:r(`providersPage.unsavedChanges.message`),confirmText:r(`providersPage.unsavedChanges.discard`),cancelText:r(`providersPage.unsavedChanges.keepEditing`),variant:`danger`}});let v=async a=>{if(!n){s(!0);try{e?(await t.updateProvider(e,a),i(r(`providersPage.toast.updated`),`success`)):(await t.createProvider(`apikeyFun`,a),i(r(`providersPage.toast.created`),`success`),p(!1)),l(!1),d(e=>e+1)}catch(t){if(vw(t))throw i(r(`providersPage.sponsor.partialMutationWarning`),`warning`),t;let n=t instanceof Error?t.message:String(t);throw i(`${r(e?`notification.update_failed`:`notification.add_failed`)}: ${n}`,`error`),t}finally{s(!1)}}};if(!e&&!f)return(0,V.jsxs)(`section`,{className:NT.panel,children:[(0,V.jsx)(`div`,{className:NT.header,children:(0,V.jsxs)(`div`,{className:NT.titleRow,children:[(0,V.jsx)(`img`,{src:_.src,alt:``,"aria-hidden":`true`,className:NT.logo}),(0,V.jsx)(`div`,{className:NT.titleText,children:(0,V.jsx)(`h2`,{className:NT.title,children:r(`providersPage.providerNames.apikeyFun`)})})]})}),(0,V.jsxs)(`div`,{className:NT.empty,children:[(0,V.jsx)(`div`,{children:r(`providersPage.sponsor.emptyRegisterHint`)}),(0,V.jsxs)(`div`,{className:NT.emptyActions,children:[(0,V.jsxs)(`button`,{type:`button`,className:`${NT.emptyActionButton} ${NT.emptyActionButtonPrimary}`,onClick:()=>p(!0),disabled:m,children:[(0,V.jsx)(js,{size:16}),(0,V.jsx)(`span`,{children:r(`providersPage.actions.new`)})]}),(0,V.jsxs)(`a`,{className:`${NT.emptyActionButton} ${NT.emptyActionButtonEmphasis}`,href:NS,target:`_blank`,rel:`noreferrer`,children:[(0,V.jsx)(Xs,{size:16}),(0,V.jsx)(`span`,{children:r(`providersPage.sponsor.registerNow`)})]})]})]})]});let b=e?PS:NS,x=r(e?`providersPage.sponsor.dashboardLink`:`providersPage.sponsor.registerLink`);return(0,V.jsxs)(`section`,{className:NT.panel,children:[(0,V.jsx)(`div`,{className:NT.header,children:(0,V.jsxs)(`div`,{className:NT.titleRow,children:[(0,V.jsx)(`img`,{src:_.src,alt:``,"aria-hidden":`true`,className:NT.logo}),(0,V.jsx)(`div`,{className:NT.titleText,children:(0,V.jsx)(`h2`,{className:NT.title,children:r(`providersPage.providerNames.apikeyFun`)})}),(0,V.jsxs)(`a`,{className:NT.topLink,href:b,target:`_blank`,rel:`noreferrer`,children:[(0,V.jsx)(Xs,{size:14}),(0,V.jsx)(`span`,{children:x})]})]})}),(0,V.jsx)(MT,{resource:e,mode:h,mutating:m,formId:a,variant:`quickStart`,onSubmit:v,onDirtyChange:l},`${h}:${e?.id??`new`}:${u}`),(0,V.jsxs)(`div`,{className:NT.footer,children:[e?null:(0,V.jsx)(`button`,{type:`button`,className:`${K.footerBtn} ${K.footerBtnGhost}`,onClick:()=>{p(!1),l(!1),d(e=>e+1)},disabled:o,children:r(`providersPage.actions.cancel`)}),(0,V.jsxs)(`button`,{type:`submit`,form:a,className:`${K.footerBtn} ${K.footerBtnPrimary} ${NT.primaryAction}`,disabled:g,children:[o?(0,V.jsx)(Is,{className:NT.spin,size:14}):h===`create`?(0,V.jsx)(js,{size:14}):(0,V.jsx)(Ps,{size:14}),(0,V.jsx)(`span`,{children:r(h===`create`?`providersPage.actions.create`:`providersPage.actions.save`)})]})]})]})}var FT={overlay:`Sheet-module__overlay___z8D5E`,entering:`Sheet-module__entering___-FNfE`,"sheet-fade-in":`Sheet-module__sheet-fade-in___CzH3G`,sheetFadeIn:`Sheet-module__sheet-fade-in___CzH3G`,exiting:`Sheet-module__exiting___q7zPi`,"sheet-fade-out":`Sheet-module__sheet-fade-out___gWS5Q`,sheetFadeOut:`Sheet-module__sheet-fade-out___gWS5Q`,content:`Sheet-module__content___ITPBZ`,"sheet-slide-in":`Sheet-module__sheet-slide-in___J8uZR`,sheetSlideIn:`Sheet-module__sheet-slide-in___J8uZR`,"sheet-slide-out":`Sheet-module__sheet-slide-out___O9y-1`,sheetSlideOut:`Sheet-module__sheet-slide-out___O9y-1`,sizeMd:`Sheet-module__sizeMd___ziRMr`,sizeLg:`Sheet-module__sizeLg___32pg7`,sizeXl:`Sheet-module__sizeXl___AvWCt`,header:`Sheet-module__header___cUB1H`,eyebrow:`Sheet-module__eyebrow___Duxhe`,title:`Sheet-module__title___1-JZS`,description:`Sheet-module__description___Xg2Ae`,body:`Sheet-module__body___Aso8V`,footer:`Sheet-module__footer___kLZWM`,closeBtn:`Sheet-module__closeBtn___s0cgQ`},IT=280,LT={md:FT.sizeMd,lg:FT.sizeLg,xl:FT.sizeXl};function RT({open:e,onClose:t,size:n=`md`,eyebrow:r,title:i,description:a,footer:o,closeDisabled:s=!1,className:c,ariaLabel:l,confirmClose:u,children:d}){let{t:f}=B(),p=(0,y.useId)(),m=(0,y.useId)(),[h,g]=(0,y.useState)(!1),[_,v]=(0,y.useState)(!1),b=(0,y.useRef)(null),x=(0,y.useRef)(null),C=(0,y.useRef)(null),w=(0,y.useRef)(null),T=(0,y.useRef)(null),E=(0,y.useCallback)(()=>x.current?Array.from(x.current.querySelectorAll(Zm)).filter(e=>!e.hasAttribute(`disabled`)&&e.tabIndex!==-1):[],[]),D=(0,y.useCallback)(e=>{b.current===null&&(v(!0),b.current=window.setTimeout(()=>{g(!1),v(!1),b.current=null,e&&t()},IT))},[t]);(0,y.useEffect)(()=>{let t=!1;return e?(b.current!==null&&(window.clearTimeout(b.current),b.current=null),queueMicrotask(()=>{t||(g(!0),v(!1))})):h&&queueMicrotask(()=>{t||D(!1)}),()=>{t=!0}},[e,h,D]);let O=(0,y.useCallback)(async()=>{if(u)try{if(await u()===!1)return}catch{return}D(!0)},[u,D]);(0,y.useEffect)(()=>()=>{b.current!==null&&window.clearTimeout(b.current)},[]);let k=e||h;if((0,y.useEffect)(()=>{if(k)return Ym(),()=>Xm()},[k]),(0,y.useEffect)(()=>{if(!e)return;T.current=document.activeElement instanceof HTMLElement?document.activeElement:null;let t=window.setTimeout(()=>{C.current&&(C.current.scrollTop=0),(E()[0]??w.current??x.current)?.focus({preventScroll:!0})},0);return()=>window.clearTimeout(t)},[E,e]),(0,y.useEffect)(()=>{e||h||(T.current?.focus(),T.current=null)},[h,e]),(0,y.useEffect)(()=>{if(!e)return;let t=e=>{if(e.key===`Escape`){if(s)return;e.preventDefault(),O();return}if(e.key!==`Tab`)return;let t=E();if(t.length===0){e.preventDefault(),x.current?.focus();return}let n=t[0],r=t[t.length-1],i=document.activeElement;if(e.shiftKey){(i===n||i===x.current)&&(e.preventDefault(),r.focus());return}i===r&&(e.preventDefault(),n.focus())};return document.addEventListener(`keydown`,t),()=>document.removeEventListener(`keydown`,t)},[s,E,O,e]),!e&&!h)return null;let A=_?FT.exiting:FT.entering,j=(0,V.jsx)(`div`,{className:`${FT.overlay} ${A}`.trim(),role:`presentation`,onMouseDown:e=>{s||e.target===e.currentTarget&&O()},children:(0,V.jsxs)(`div`,{ref:x,className:[FT.content,LT[n],A,c].filter(Boolean).join(` `),role:`dialog`,"aria-modal":`true`,"aria-labelledby":i?p:void 0,"aria-describedby":a?m:void 0,"aria-label":!i&&l?l:void 0,tabIndex:-1,onMouseDown:e=>e.stopPropagation(),children:[(0,V.jsx)(`button`,{ref:w,type:`button`,className:FT.closeBtn,onClick:s?void 0:O,disabled:s,"aria-label":f(`common.close`),children:(0,V.jsx)(Vs,{size:18})}),(r||i||a)&&(0,V.jsxs)(`div`,{className:FT.header,children:[r?(0,V.jsx)(`div`,{className:FT.eyebrow,children:r}):null,i?(0,V.jsx)(`h2`,{id:p,className:FT.title,children:i}):null,a?(0,V.jsx)(`p`,{id:m,className:FT.description,children:a}):null]}),(0,V.jsx)(`div`,{ref:C,className:FT.body,children:d}),o?(0,V.jsx)(`div`,{className:FT.footer,children:o}):null]})});return typeof document>`u`?j:(0,S.createPortal)(j,document.body)}var zT={chipRow:`ExcludedModelRuleChip-module__chipRow___GZYjd`,chip:`ExcludedModelRuleChip-module__chip___ZHu9n`,label:`ExcludedModelRuleChip-module__label___zHuRH`,detail:`ExcludedModelRuleChip-module__detail___BSOjb`,exact:`ExcludedModelRuleChip-module__exact___Ly9hr`,wildcard:`ExcludedModelRuleChip-module__wildcard___8GF-X`,unknown:`ExcludedModelRuleChip-module__unknown___QmPur`,remove:`ExcludedModelRuleChip-module__remove___yO0z3`};function BT({children:e}){return(0,V.jsx)(`div`,{className:zT.chipRow,children:e})}function VT({label:e,variant:t=`exact`,detail:n,onRemove:r,removeAriaLabel:i,disabled:a=!1,title:o}){return(0,V.jsxs)(`span`,{className:`${zT.chip} ${zT[t]}`,title:o??(n?`${e} — ${n}`:e),children:[(0,V.jsx)(`span`,{className:zT.label,children:e}),n?(0,V.jsx)(`span`,{className:zT.detail,children:n}):null,r?(0,V.jsx)(`button`,{type:`button`,className:zT.remove,onClick:r,disabled:a,"aria-label":i??e,children:(0,V.jsx)(Vs,{size:12})}):null]})}var HT=e=>e.trim().toLowerCase(),UT=e=>e.includes(`*`);function WT(e){let t=new Set,n=[];for(let r of e){let e=r.trim(),i=HT(e);!i||t.has(i)||(t.add(i),n.push(e))}return n}var GT=e=>WT(e.split(/\r?\n/)),KT=e=>e.join(`
`);function qT(e,t){let n=HT(e),r=HT(t);if(!n||!r)return!1;if(!UT(n))return n===r;let i=n.split(`*`).map(e=>e.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`)).join(`.*`);return RegExp(`^${i}$`,`i`).test(r)}function JT(e,t,n){let r=t.trim(),i=HT(r),a=WT(e).filter(e=>HT(e)!==i);return n&&i&&a.push(r),a}function YT(e,t){let n=new Map(t.map(e=>[HT(e),e])),r=[],i=[],a=[],o=[];return WT(e).forEach(e=>{if(UT(e)){i.push(e),o.push(e);return}let t=n.get(HT(e));if(t){r.push(t);return}a.push(e),o.push(e)}),{exactRules:r,wildcardRules:i,unknownRules:a,customRules:o}}function XT(e,t,n){let{exactRules:r}=YT(e,t);return WT([...r,...GT(n)])}function ZT(e,t){let n=HT(t);if(!n)return{state:`included`};let r=!1,i;for(let a of e)UT(a)?i===void 0&&qT(a,t)&&(i=a):!r&&HT(a)===n&&(r=!0);return r&&i!==void 0?{state:`excluded`,by:`both`,rule:i}:r?{state:`excluded`,by:`exact`}:i===void 0?{state:`included`}:{state:`excluded`,by:`wildcard`,rule:i}}var QT=(e,t)=>ZT(e,t).state===`excluded`,$T=(e,t)=>e.map(e=>{let n=t.filter(t=>qT(e,t));return{rule:e,matched:n,matchCount:n.length}});function eE(e,t){let n=t.length,r=t.reduce((t,n)=>QT(e,n)?t+1:t,0);return{total:n,excluded:r,available:n-r}}var tE={root:`ExcludedModelsPicker-module__root___RYF7X`,trigger:`ExcludedModelsPicker-module__trigger___ycSKU`,triggerText:`ExcludedModelsPicker-module__triggerText___lbBd4`,triggerSpinner:`ExcludedModelsPicker-module__triggerSpinner___xL-cS`,"excluded-spin":`ExcludedModelsPicker-module__excluded-spin___g-h0p`,excludedSpin:`ExcludedModelsPicker-module__excluded-spin___g-h0p`,chevron:`ExcludedModelsPicker-module__chevron___FcR89`,triggerOpen:`ExcludedModelsPicker-module__triggerOpen___OMivu`,meter:`ExcludedModelsPicker-module__meter___0ZOIu`,meterFill:`ExcludedModelsPicker-module__meterFill___svWrl`,disclosure:`ExcludedModelsPicker-module__disclosure___5zAsh`,disclosureOpen:`ExcludedModelsPicker-module__disclosureOpen___BTQ7b`,disclosureInner:`ExcludedModelsPicker-module__disclosureInner___swIxx`,panel:`ExcludedModelsPicker-module__panel___-GHUW`,"excluded-panel-in":`ExcludedModelsPicker-module__excluded-panel-in___sw1uB`,excludedPanelIn:`ExcludedModelsPicker-module__excluded-panel-in___sw1uB`,searchRow:`ExcludedModelsPicker-module__searchRow___vhaLm`,searchIcon:`ExcludedModelsPicker-module__searchIcon___kl49Z`,search:`ExcludedModelsPicker-module__search___eAW6Q`,list:`ExcludedModelsPicker-module__list___r-52c`,row:`ExcludedModelsPicker-module__row___-dgzQ`,rowHighlighted:`ExcludedModelsPicker-module__rowHighlighted___TXsS-`,rowExcluded:`ExcludedModelsPicker-module__rowExcluded___QwTAb`,checkbox:`ExcludedModelsPicker-module__checkbox___LBJlR`,rowLocked:`ExcludedModelsPicker-module__rowLocked___yX5xZ`,rowText:`ExcludedModelsPicker-module__rowText___VJ0uV`,rowId:`ExcludedModelsPicker-module__rowId___6yGuV`,rowDisplayName:`ExcludedModelsPicker-module__rowDisplayName___c-Ifl`,rowReason:`ExcludedModelsPicker-module__rowReason___1c7c2`,badge:`ExcludedModelsPicker-module__badge___vrwIy`,badgeMuted:`ExcludedModelsPicker-module__badgeMuted___SAngk`,noResults:`ExcludedModelsPicker-module__noResults___Qohto`,footer:`ExcludedModelsPicker-module__footer___eApyV`,footerCount:`ExcludedModelsPicker-module__footerCount___S0dwv`,footerActions:`ExcludedModelsPicker-module__footerActions___1UCO6`,footerButton:`ExcludedModelsPicker-module__footerButton___BcU1G`,catalogNotice:`ExcludedModelsPicker-module__catalogNotice___Vuj8F`,retryButton:`ExcludedModelsPicker-module__retryButton___xLpOx`,chipsMore:`ExcludedModelsPicker-module__chipsMore___qiTQK`,ruleEditor:`ExcludedModelsPicker-module__ruleEditor___BnPbg`,ruleLabel:`ExcludedModelsPicker-module__ruleLabel___Vs3uq`,ruleMatches:`ExcludedModelsPicker-module__ruleMatches___aaZnY`,ruleMatchNone:`ExcludedModelsPicker-module__ruleMatchNone___GTDUi`,ruleWarning:`ExcludedModelsPicker-module__ruleWarning___lcScQ`},nE=(e,t)=>e.id.toLowerCase().includes(t)||(e.displayName??``).toLowerCase().includes(t);function rE({rules:e,candidates:t,stats:n,onToggle:r,onSelectAll:i,onClear:a,disabled:o,listboxId:s,autoFocus:c,onDismiss:l}){let{t:u}=B(),[d,f]=(0,y.useState)(``),[p,m]=(0,y.useState)(0),h=(0,y.useRef)(null),g=(0,y.useMemo)(()=>{let e=d.trim().toLowerCase();return e?t.filter(t=>nE(t,e)):t},[t,d]),_=g.length===0?-1:Math.min(p,g.length-1),v=_>=0?`${s}-opt-${_}`:void 0;(0,y.useLayoutEffect)(()=>{c&&h.current?.focus({preventScroll:!0})},[c]),(0,y.useEffect)(()=>{!c||_<0||document.getElementById(`${s}-opt-${_}`)?.scrollIntoView({block:`nearest`})},[_,c,s]);let b=t=>{let n=g[t];if(!n||o)return;let i=ZT(e,n.id);i.state===`excluded`&&i.by===`wildcard`||r(n.id,i.state!==`excluded`)};return(0,V.jsxs)(`div`,{className:tE.panel,children:[(0,V.jsxs)(`div`,{className:tE.searchRow,children:[(0,V.jsx)(Bs,{size:14,className:tE.searchIcon,"aria-hidden":`true`}),(0,V.jsx)(`input`,{ref:h,type:`text`,className:tE.search,value:d,onChange:e=>{f(e.target.value),m(0)},onKeyDown:e=>{switch(e.key){case`ArrowDown`:e.preventDefault(),m(e=>Math.min(e+1,g.length-1));return;case`ArrowUp`:e.preventDefault(),m(e=>Math.max(e-1,0));return;case`Home`:if(g.length===0)return;e.preventDefault(),m(0);return;case`End`:if(g.length===0)return;e.preventDefault(),m(g.length-1);return;case`Enter`:e.preventDefault(),_>=0&&b(_);return;case`Escape`:if(e.preventDefault(),e.stopPropagation(),d){f(``),m(0);return}l();return;default:}},placeholder:u(`excluded_models.search_placeholder`),"aria-label":u(`excluded_models.search_aria`),"aria-controls":s,"aria-activedescendant":v,disabled:o,autoComplete:`off`,spellCheck:!1})]}),(0,V.jsx)(`div`,{id:s,className:tE.list,role:`listbox`,"aria-multiselectable":`true`,"aria-label":u(`excluded_models.list_aria`),children:g.length===0?(0,V.jsx)(`p`,{className:tE.noResults,children:d.trim()?u(`excluded_models.no_results`,{query:d.trim()}):u(`excluded_models.catalog_empty`)}):g.map((t,n)=>(0,V.jsx)(iE,{id:`${s}-opt-${n}`,candidate:t,state:ZT(e,t.id),highlighted:n===_,onHover:()=>m(n),onToggle:()=>b(n)},t.id.toLowerCase()))}),(0,V.jsxs)(`div`,{className:tE.footer,children:[(0,V.jsx)(`span`,{className:tE.footerCount,children:u(`excluded_models.footer_count`,{excluded:n.excluded,total:n.total})}),(0,V.jsxs)(`span`,{className:tE.footerActions,children:[(0,V.jsx)(`button`,{type:`button`,className:tE.footerButton,onClick:i,disabled:o||t.length===0,children:u(`excluded_models.select_all`)}),(0,V.jsx)(`button`,{type:`button`,className:tE.footerButton,onClick:a,disabled:o,"aria-label":u(`excluded_models.clear_aria`),children:u(`excluded_models.clear`)})]})]})]})}function iE({id:e,candidate:t,state:n,highlighted:r,onHover:i,onToggle:a}){let{t:o}=B(),s=n.state===`excluded`,c=n.state===`excluded`&&n.by===`wildcard`,l=n.state===`excluded`&&(n.by===`wildcard`||n.by===`both`)?{rule:n.rule,text:n.by===`wildcard`?o(`excluded_models.wildcard_locked`,{rule:n.rule}):o(`excluded_models.also_wildcard`,{rule:n.rule}),muted:n.by===`both`}:null,u=[tE.row,s?tE.rowExcluded:``,c?tE.rowLocked:``,r?tE.rowHighlighted:``].filter(Boolean).join(` `);return(0,V.jsxs)(`div`,{id:e,role:`option`,tabIndex:-1,"aria-selected":s,"aria-disabled":c||void 0,className:u,onMouseEnter:i,onClick:a,children:[(0,V.jsx)(`span`,{className:tE.checkbox,"aria-hidden":`true`,children:s?(0,V.jsx)(Hs,{size:12}):null}),(0,V.jsxs)(`span`,{className:tE.rowText,children:[(0,V.jsx)(`span`,{className:tE.rowId,children:t.id}),t.displayName&&t.displayName!==t.id?(0,V.jsx)(`span`,{className:tE.rowDisplayName,children:t.displayName}):null,l?(0,V.jsx)(`span`,{className:tE.rowReason,children:l.text}):null]}),l?(0,V.jsx)(`span`,{className:`${tE.badge} ${l.muted?tE.badgeMuted:``}`.trim(),children:o(`excluded_models.badge_wildcard`)}):null]})}var aE=8;function oE({value:e,onChange:t,candidates:n,catalogState:r=`ready`,onRetryCatalog:i,disabled:a=!1,reservedRules:o,reservedRuleMessage:s,showRuleEditor:c=!0,labelledBy:l,className:u}){let{t:d}=B(),f=(0,y.useId)(),p=`${f}-panel`,m=`${f}-listbox`,[h,g]=(0,y.useState)(!1),[_,v]=(0,y.useState)(!1),b=(0,y.useRef)(null),x=(0,y.useMemo)(()=>new Set((o??[]).map(e=>e.trim().toLowerCase())),[o]),S=(0,y.useMemo)(()=>WT(e).filter(e=>!x.has(e.trim().toLowerCase())),[x,e]),C=(0,y.useMemo)(()=>n.map(e=>e.id),[n]),w=(0,y.useMemo)(()=>eE(S,C),[C,S]),{exactRules:T,unknownRules:E,customRules:D}=(0,y.useMemo)(()=>YT(S,C),[C,S]),O=(0,y.useCallback)(e=>{t(e.filter(e=>!x.has(e.trim().toLowerCase())))},[t,x]),k=r===`ready`&&n.length>0,A=(0,y.useMemo)(()=>{if(!k)return[];let e=[];return C.forEach(t=>{let n=ZT(S,t);n.state===`excluded`&&n.by===`wildcard`&&e.push({id:t,rule:n.rule})}),e},[C,k,S]),j=(0,y.useMemo)(()=>k?$T(D,C):[],[C,D,k]),M=(e,t)=>O(JT(S,e,t)),N=()=>O(WT([...S,...C])),ee=()=>O(D),P=e=>{let t=e.split(/\r?\n/).some(e=>x.has(e.trim().toLowerCase()));v(t),O(XT(S,C,e))},F=(0,y.useCallback)(()=>{g(!1),b.current?.focus({preventScroll:!0})},[]);return(0,V.jsxs)(`div`,{className:`${tE.root} ${u??``}`.trim(),children:[(0,V.jsxs)(`button`,{ref:b,type:`button`,className:`${tE.trigger} ${h?tE.triggerOpen:``}`.trim(),onClick:()=>g(e=>!e),onKeyDown:e=>{e.key===`ArrowDown`&&!h?(e.preventDefault(),g(!0)):e.key===`Escape`&&h&&(e.preventDefault(),e.stopPropagation(),g(!1))},"aria-expanded":h,"aria-controls":h?p:void 0,"aria-labelledby":l,disabled:a,children:[(0,V.jsxs)(`span`,{className:tE.triggerText,children:[r===`loading`?(0,V.jsx)(Is,{size:13,className:tE.triggerSpinner,"aria-hidden":`true`}):null,r===`loading`?d(`excluded_models.catalog_loading`):k?w.excluded===0&&S.length===0?d(`excluded_models.trigger_empty`):d(`excluded_models.trigger_summary`,{excluded:w.excluded,available:w.available}):S.length===0?d(`excluded_models.trigger_empty`):d(`excluded_models.trigger_summary_rules`,{n:S.length})]}),(0,V.jsx)(Rs,{size:14,className:tE.chevron,"aria-hidden":`true`}),k?(0,V.jsx)(`span`,{className:tE.meter,role:`img`,"aria-label":d(`excluded_models.meter_aria`,{excluded:w.excluded,total:w.total}),children:(0,V.jsx)(`span`,{className:tE.meterFill,style:{width:`${w.total?w.excluded/w.total*100:0}%`}})}):null]}),(0,V.jsx)(`div`,{id:p,className:`${tE.disclosure} ${h?tE.disclosureOpen:``}`.trim(),children:(0,V.jsx)(`div`,{className:tE.disclosureInner,inert:!h,children:r===`ready`||n.length>0?(0,V.jsx)(rE,{rules:S,candidates:n,stats:w,onToggle:M,onSelectAll:N,onClear:ee,disabled:a,listboxId:m,autoFocus:h,onDismiss:F}):(0,V.jsxs)(`div`,{className:tE.catalogNotice,children:[(0,V.jsx)(`span`,{children:d(r===`loading`?`excluded_models.catalog_loading`:r===`error`?`excluded_models.catalog_error`:`excluded_models.catalog_unavailable`)}),i&&r!==`loading`?(0,V.jsx)(`button`,{type:`button`,className:tE.retryButton,onClick:i,children:d(`excluded_models.catalog_retry`)}):null]})})}),T.length>0||A.length>0||E.length>0?(0,V.jsxs)(BT,{children:[T.map(e=>(0,V.jsx)(VT,{label:e,variant:`exact`,onRemove:()=>O(JT(S,e,!1)),removeAriaLabel:d(`excluded_models.chip_remove`,{rule:e}),disabled:a},`exact-${e.toLowerCase()}`)),A.slice(0,aE).map(e=>(0,V.jsx)(VT,{label:e.id,variant:`wildcard`,detail:e.rule,title:d(`excluded_models.wildcard_reason`,{rule:e.rule})},`derived-${e.id.toLowerCase()}`)),A.length>aE?(0,V.jsx)(`span`,{className:tE.chipsMore,children:d(`excluded_models.chips_more`,{n:A.length-aE})}):null,E.map(e=>(0,V.jsx)(VT,{label:e,variant:`unknown`,detail:d(`excluded_models.badge_unknown`),onRemove:()=>O(JT(S,e,!1)),removeAriaLabel:d(`excluded_models.chip_remove`,{rule:e}),disabled:a},`unknown-${e.toLowerCase()}`))]}):null,c?(0,V.jsxs)(`div`,{className:tE.ruleEditor,children:[(0,V.jsx)(`label`,{className:tE.ruleLabel,htmlFor:`${f}-rules`,children:d(`excluded_models.rules_label`)}),(0,V.jsx)(`textarea`,{id:`${f}-rules`,className:`input`,value:KT(D),placeholder:d(`excluded_models.rules_placeholder`),rows:3,disabled:a,spellCheck:!1,onChange:e=>P(e.target.value)}),_?(0,V.jsxs)(`p`,{className:tE.ruleWarning,children:[(0,V.jsx)(Ns,{size:12,"aria-hidden":`true`}),s??d(`excluded_models.rules_reserved`)]}):null,k?(0,V.jsx)(`ul`,{className:tE.ruleMatches,children:j.map(e=>(0,V.jsxs)(`li`,{className:e.matchCount===0?tE.ruleMatchNone:void 0,children:[(0,V.jsx)(`code`,{children:e.rule}),e.matchCount===0?d(`excluded_models.rules_match_none`):d(`excluded_models.rules_match_count`,{n:e.matchCount})]},e.rule.toLowerCase()))}):null,(0,V.jsx)(`p`,{className:`hint`,children:d(`excluded_models.rules_hint`)})]}):null]})}var sE=3e4,cE=`2023-06-01`,lE={state:`idle`,message:``},uE=(e,t)=>{let n=Oc(e);return typeof e==`object`&&e&&`code`in e&&String(e.code)===`ECONNABORTED`||n.toLowerCase().includes(`timeout`)?t.timeout(sE/1e3):n||t.requestFailed},dE=(e,t)=>{let n=(e??``).trim();if(n)return n;for(let e of t){let t=(e.name??``).trim();if(t)return t}return``},fE=e=>{let t=Object.entries(e).find(([e])=>e.toLowerCase()===`authorization`)?.[1];if(!t)return``;let n=String(t).match(/^Bearer\s+(.+)$/i);return n?n[1].trim():``};function pE(e,t){let{brand:n,baseUrl:r,proxyUrl:i,testModel:a,models:o,formHeaders:s,apiKeyEntries:c,apiKey:l,fallbackApiKey:u,authIndex:d}=e,f=c?.length??0,[p,m]=(0,y.useState)(()=>Array.from({length:f},()=>lE)),[h,g]=(0,y.useState)(lE),[_,v]=(0,y.useState)(lE),[b,x]=(0,y.useState)(lE),[S,C]=(0,y.useState)(0),w=(0,y.useMemo)(()=>(c??[]).map(e=>[e.apiKey??``,e.existingApiKey??``,e.authIndex??``,e.proxyUrl??``].join(`||`)),[c]),T=(0,y.useRef)(w);(0,y.useEffect)(()=>{let e=T.current,t=w;T.current=t,m(n=>{let r=t.length,i=n.length!==r,a=n.slice(0,r);for(;a.length<r;)a.push(lE);for(let n=0;n<r;n++)e[n]!==void 0&&e[n]!==t[n]&&a[n].state!==`idle`&&(a[n]=lE,i=!0);return i?a:n})},[w]);let E=(0,y.useMemo)(()=>{let e=s.map(e=>`${e.key}:${e.value}`).join(`|`),t=o.map(e=>`${e.name}:${e.alias??``}`).join(`|`);return[r,i??``,(a??``).trim(),l??``,u??``,d??``,e,t].join(`||`)},[l,d,r,i,u,a,s,o]),D=(0,y.useRef)(E);(0,y.useEffect)(()=>{D.current!==E&&(D.current=E,m(e=>e.map(()=>lE)),g(lE),v(lE),x(lE))},[E]);let O=(0,y.useCallback)((e,t)=>{m(n=>{let r=[...n];return r[e]=t,r})},[]),k=(0,y.useCallback)(async e=>{if(n!==`openaiCompatibility`)return!1;let i=r.trim();if(!i)return O(e,{state:`error`,message:t.baseUrlRequired}),!1;let l=Sx(i);if(!l)return O(e,{state:`error`,message:t.endpointInvalid}),!1;let u=c?.[e],f=(u?.apiKey??``).trim()||(u?.existingApiKey??``).trim(),p=(u?.authIndex??``).trim()||(d??``).trim()||void 0;if(!f&&!p)return O(e,{state:`error`,message:t.apiKeyRequired}),!1;let m=dE(a,o);if(!m)return O(e,{state:`error`,message:t.modelRequired}),!1;let h={"Content-Type":`application/json`,...dp(s)};fp(h,`authorization`)||(f?h.Authorization=`Bearer ${f}`:p&&(h.Authorization=`Bearer $TOKEN$`)),O(e,{state:`loading`,message:``}),C(e=>e+1);try{let t=await qp.request({authIndex:p,proxy_url:u?.proxyUrl?.trim()||void 0,method:`POST`,url:l,header:h,data:JSON.stringify({model:m,messages:[{role:`user`,content:`Hi`}],stream:!1,max_tokens:5})},{timeout:sE});if(t.statusCode<200||t.statusCode>=300)throw Error(Kp(t));return O(e,{state:`success`,message:``}),!0}catch(n){return O(e,{state:`error`,message:uE(n,t)}),!1}finally{C(e=>e-1)}},[c,d,r,n,s,t,o,a,O]),A=(0,y.useCallback)(async()=>{if(n!==`openaiCompatibility`)return;let e=c??[];e.length&&await Promise.all(e.map((e,t)=>k(t)))},[c,n,k]),j=(0,y.useCallback)(async()=>{if(n!==`codex`&&n!==`meta`&&n!==`xai`)return;let e=r.trim();if(!e){g({state:`error`,message:t.baseUrlRequired});return}let c=Cx(e);if(!c){g({state:`error`,message:t.endpointInvalid});return}let f=dE(a,o);if(!f){g({state:`error`,message:t.modelRequired});return}let p=dp(s),m=(l??``).trim(),h=(u??``).trim(),_=fp(p,`authorization`),v=m||h,y=(d??``).trim()||void 0;if(!v&&!_&&!y){g({state:`error`,message:t.apiKeyRequired});return}let b={"Content-Type":`application/json`,...p};fp(b,`authorization`)||(v?b.Authorization=`Bearer ${v}`:y&&(b.Authorization=`Bearer $TOKEN$`)),g({state:`loading`,message:``}),C(e=>e+1);try{let e=await qp.request({authIndex:y,proxy_url:i?.trim()||void 0,method:`POST`,url:c,header:b,data:JSON.stringify({model:f,input:`Hi`,stream:!1})},{timeout:sE});if(e.statusCode<200||e.statusCode>=300)throw Error(Kp(e));g({state:`success`,message:``})}catch(e){g({state:`error`,message:uE(e,t)})}finally{C(e=>e-1)}},[l,d,r,n,u,s,t,o,a,i]),M=(0,y.useCallback)(async()=>{if(n!==`gemini`&&n!==`interactions`)return;let e=dE(a,o);if(!e){v({state:`error`,message:t.modelRequired});return}let c=n===`interactions`?Dx(r??``):Ox(r??``,e);if(!c){v({state:`error`,message:t.endpointInvalid});return}let f=dp(s),p=(l??``).trim(),m=(u??``).trim(),h=fp(f,`x-goog-api-key`),g=p||m,_=(d??``).trim()||void 0;if(!g&&!h&&!_){v({state:`error`,message:t.apiKeyRequired});return}let y={"Content-Type":`application/json`,...f};fp(y,`x-goog-api-key`)||(g?y[`x-goog-api-key`]=g:_&&(y[`x-goog-api-key`]=`$TOKEN$`)),n===`interactions`&&!fp(y,`api-revision`)&&(y[`Api-Revision`]=Tx),v({state:`loading`,message:``}),C(e=>e+1);try{let t=await qp.request({authIndex:_,proxy_url:i?.trim()||void 0,method:`POST`,url:c,header:y,data:JSON.stringify(n===`interactions`?Ex(e):{contents:[{parts:[{text:`Hi`}]}],generationConfig:{maxOutputTokens:8}})},{timeout:sE});if(t.statusCode<200||t.statusCode>=300)throw Error(Kp(t));v({state:`success`,message:``})}catch(e){v({state:`error`,message:uE(e,t)})}finally{C(e=>e-1)}},[l,d,r,n,u,s,t,o,a,i]),N=(0,y.useCallback)(async()=>{if(n!==`claude`)return;let e=wx(r??``);if(!e){x({state:`error`,message:t.endpointInvalid});return}let c=dE(a,o);if(!c){x({state:`error`,message:t.modelRequired});return}let f=dp(s),p=(l??``).trim(),m=(u??``).trim(),h=fE(f),g=fp(f,`x-api-key`),_=p||m||h,v=(d??``).trim()||void 0;if(!_&&!g&&!v){x({state:`error`,message:t.apiKeyRequired});return}let y={"Content-Type":`application/json`,...f};fp(y,`anthropic-version`)||(y[`anthropic-version`]=cE),!g&&_?y[`x-api-key`]=_:!g&&v&&(y[`x-api-key`]=`$TOKEN$`),x({state:`loading`,message:``}),C(e=>e+1);try{let t=await qp.request({authIndex:v,proxy_url:i?.trim()||void 0,method:`POST`,url:e,header:y,data:JSON.stringify({model:c,max_tokens:8,messages:[{role:`user`,content:`Hi`}]})},{timeout:sE});if(t.statusCode<200||t.statusCode>=300)throw Error(Kp(t));x({state:`success`,message:``})}catch(e){x({state:`error`,message:uE(e,t)})}finally{C(e=>e-1)}},[l,d,r,n,u,s,t,o,a,i]);return{openaiStatuses:p,codexStatus:h,geminiStatus:_,claudeStatus:b,isTestingAny:S>0,runOpenAIKey:k,runOpenAIAllKeys:A,runCodex:j,runGemini:M,runClaude:N}}function mE({state:e}){return e===`loading`?(0,V.jsx)(`span`,{className:`${K.statusIcon} ${K.statusIconLoading}`,children:(0,V.jsx)(Is,{size:14})}):e===`success`?(0,V.jsx)(`span`,{className:`${K.statusIcon} ${K.statusIconSuccess}`,children:(0,V.jsx)(Ps,{size:14})}):e===`error`?(0,V.jsx)(`span`,{className:`${K.statusIcon} ${K.statusIconError}`,children:(0,V.jsx)(Ns,{size:14})}):null}var hE=10,gE={state:`idle`,message:``},_E=e=>!e.apiKey.trim()&&!e.existingApiKey?.trim();function vE({entries:e,removeDisabled:t,mutating:n,statuses:r,isTestingAny:i,onUpdate:a,onAdd:o,onRemove:s,onTest:c,onTestAll:l}){let{t:u}=B(),[d,f]=(0,y.useState)(()=>e.length===1&&_E(e[0])?0:null),[p,m]=(0,y.useState)(new Set),[h,g]=(0,y.useState)(!1),_=e=>{m(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})},v=()=>{let e=o();f(e)},b=e=>{m(t=>{if(!t.size)return t;let n=new Set;return t.forEach(t=>{t<e?n.add(t):t>e&&n.add(t-1)}),n}),f(t=>t===null||t===e?null:t>e?t-1:t),s(e)},x=e.map((e,t)=>({entry:e,idx:t})).reverse(),S=h?x:x.slice(0,hE);return(0,V.jsxs)(`div`,{className:K.entriesList,children:[(0,V.jsxs)(`div`,{className:`${K.entriesToolbar} ${K.entriesToolbarSplit}`,children:[(0,V.jsxs)(`button`,{type:`button`,className:K.addBtn,disabled:n,onClick:v,children:[(0,V.jsx)(js,{size:12}),(0,V.jsx)(`span`,{children:u(`providersPage.form.addApiKeyEntry`)})]}),(0,V.jsxs)(`button`,{type:`button`,className:K.connectivityBtn,disabled:n||i,onClick:l,children:[i?(0,V.jsx)(`span`,{className:`${K.statusIcon} ${K.statusIconLoading}`,children:(0,V.jsx)(Is,{size:14})}):null,(0,V.jsx)(`span`,{children:u(`providersPage.connectivity.testAll`)})]})]}),S.map(({entry:e,idx:i})=>{let o=r[i]??gE,s=d===i,l=e.apiKey.trim()||e.existingApiKey?.trim()||``;return(0,V.jsxs)(`div`,{className:K.entryCard,children:[(0,V.jsxs)(`div`,{className:K.entryCardHeader,children:[(0,V.jsxs)(`button`,{type:`button`,className:K.entryCardToggle,"aria-expanded":s,onClick:()=>f(s?null:i),children:[(0,V.jsx)(`span`,{children:u(`providersPage.form.apiKeyEntry`,{index:i+1})}),(0,V.jsxs)(`span`,{className:K.entrySummary,children:[e.proxyUrl.trim()?(0,V.jsx)(`span`,{className:K.entryBadge,title:e.proxyUrl,children:u(`providersPage.form.proxyBadge`)}):null,(0,V.jsx)(`span`,{className:K.entrySummaryKey,children:l?dg(l):u(`providersPage.status.notConfigured`)})]})]}),(0,V.jsxs)(`div`,{className:K.entryCardHeaderRight,children:[(0,V.jsx)(mE,{state:o.state}),(0,V.jsxs)(`button`,{type:`button`,className:K.connectivityBtnGhost,disabled:n||o.state===`loading`,onClick:()=>c(i),children:[o.state===`loading`?(0,V.jsx)(`span`,{className:`${K.statusIcon} ${K.statusIconLoading}`,children:(0,V.jsx)(Is,{size:14})}):null,(0,V.jsx)(`span`,{children:u(`providersPage.connectivity.test`)})]}),(0,V.jsx)(`button`,{type:`button`,className:K.entryCardIconBtn,onClick:()=>f(s?null:i),title:u(s?`common.collapse`:`common.expand`),"aria-label":u(s?`common.collapse`:`common.expand`),children:(0,V.jsx)(Rs,{className:[K.entryCardChevron,s?K.entryCardChevronOpen:``].filter(Boolean).join(` `),size:14})}),(0,V.jsx)(`button`,{type:`button`,className:K.removeBtn,disabled:n||t,onClick:()=>b(i),children:(0,V.jsx)(Vs,{size:12})})]})]}),o.state===`error`?(0,V.jsx)(`div`,{className:K.connectivityError,children:o.message}):null,s?(0,V.jsxs)(`div`,{className:K.entryCardBody,children:[(0,V.jsxs)(`div`,{className:K.field,children:[(0,V.jsx)(`label`,{className:K.label,children:u(`providersPage.form.apiKey`)}),(0,V.jsxs)(`div`,{className:K.passwordField,children:[(0,V.jsx)(`input`,{className:K.passwordInput,type:p.has(i)?`text`:`password`,value:e.apiKey,onChange:e=>a(i,{apiKey:e.target.value}),autoComplete:`new-password`,"data-1p-ignore":`true`,"data-lpignore":`true`,"data-bwignore":`true`,disabled:n,placeholder:e.existingApiKey?u(`providersPage.form.apiKeyEditPlaceholder`):u(`providersPage.form.apiKeyCreatePlaceholder`)}),(0,V.jsx)(`button`,{type:`button`,className:K.passwordToggle,onClick:()=>_(i),disabled:n,"aria-label":p.has(i)?u(`providersPage.form.hideApiKey`):u(`providersPage.form.showApiKey`),title:p.has(i)?u(`providersPage.form.hideApiKey`):u(`providersPage.form.showApiKey`),children:p.has(i)?(0,V.jsx)(Ws,{size:16}):(0,V.jsx)(Us,{size:16})})]})]}),(0,V.jsxs)(`div`,{className:K.field,children:[(0,V.jsx)(`label`,{className:K.label,children:u(`providersPage.form.proxyUrl`)}),(0,V.jsx)(`input`,{className:K.input,value:e.proxyUrl,onChange:e=>a(i,{proxyUrl:e.target.value}),disabled:n,placeholder:`http://127.0.0.1:7890`})]}),(0,V.jsxs)(`div`,{className:K.field,children:[(0,V.jsx)(`label`,{className:K.label,children:u(`providersPage.form.weight`)}),(0,V.jsx)(`input`,{className:K.input,type:`number`,step:`1`,max:pp,value:e.weight??``,onChange:e=>a(i,{weight:e.target.value===``?void 0:Number(e.target.value)}),disabled:n,placeholder:`1`}),(0,V.jsx)(`span`,{className:K.labelHint,children:u(`providersPage.form.weightHint`)})]})]}):null]},i)}),e.length>hE?(0,V.jsx)(`button`,{type:`button`,className:K.showMoreBtn,onClick:()=>g(e=>!e),children:h?u(`providersPage.form.showFewerEntries`):u(`providersPage.form.showAllEntries`,{count:e.length})}):null]})}var yE=[`*`],bE=()=>({key:``,value:``}),xE=()=>({name:``,alias:``}),SE=()=>({apiKey:``,proxyUrl:``,weight:void 0}),CE=`https://api.meta.ai/v1`,wE=`https://api.x.ai/v1`,TE=e=>(e??[]).filter(e=>e.trim()!==`*`),EE=e=>!e||Object.keys(e).length===0?``:JSON.stringify(e,null,2),DE=e=>e===`claude`;function OE(e,t,n){if(n===`create`||!t)return{apiKey:``,name:``,baseUrl:e===`meta`?CE:e===`xai`?wE:``,proxyUrl:``,prefix:``,disabled:!1,disableCooling:void 0,runtimePolicy:tT(),priority:void 0,weight:void 0,models:[xE()],headers:[bE()],excludedModelsText:``,websockets:e===`codex`||e===`xai`?!1:void 0,cloak:DE(e)?{mode:``,strictMode:!1,sensitiveWordsText:``,cacheUserId:!1}:void 0,fingerprintProfile:DE(e)?``:void 0,testModel:e===`openaiCompatibility`||e===`codex`||e===`meta`||e===`xai`||DE(e)||e===`gemini`||e===`interactions`?``:void 0,apiKeyEntries:e===`openaiCompatibility`?[SE()]:void 0};let r=t.raw;if(e===`openaiCompatibility`){let t=r;return{apiKey:``,name:t.name??``,baseUrl:t.baseUrl??``,proxyUrl:``,prefix:t.prefix??``,disabled:t.disabled===!0,disableCooling:t.disableCooling,runtimePolicy:tT(t),..._T(t,e),priority:t.priority,models:t.models?.length?t.models.map(e=>({sourceIndex:e.sourceIndex,name:e.name,alias:e.alias??``,priority:e.priority,testModel:e.testModel,image:e.image===!0,thinkingJson:EE(e.thinking),...iT(e)})):[xE()],headers:t.headers?Object.entries(t.headers).map(([e,t])=>({key:e,value:String(t)})):[bE()],excludedModelsText:``,testModel:t.testModel??``,apiKeyEntries:t.apiKeyEntries?.length?t.apiKeyEntries.map(e=>({apiKey:``,existingApiKey:e.apiKey,sourceIndex:e.sourceIndex,proxyUrl:e.proxyUrl??``,weight:e.weight,authIndex:e.authIndex})):[SE()]}}let i=r,a=gx(i.excludedModels),o=TE(i.excludedModels);return{apiKey:``,name:``,baseUrl:i.baseUrl??``,proxyUrl:i.proxyUrl??``,prefix:i.prefix??``,disabled:a,disableCooling:i.disableCooling,runtimePolicy:tT(i),..._T(i,e),priority:i.priority,weight:i.weight,models:i.models?.length?i.models.map(e=>({sourceIndex:e.sourceIndex,name:e.name,alias:e.alias??``,priority:e.priority,testModel:e.testModel,thinkingJson:EE(e.thinking),...iT(e)})):[xE()],headers:i.headers?Object.entries(i.headers).map(([e,t])=>({key:e,value:String(t)})):[bE()],excludedModelsText:o.join(`
`),websockets:e===`codex`||e===`xai`?i.websockets===!0:void 0,cloak:DE(e)?{mode:i.cloak?.mode??``,strictMode:i.cloak?.strictMode===!0,sensitiveWordsText:i.cloak?.sensitiveWords?.join(`
`)??``,cacheUserId:i.cloak?.cacheUserId===!0}:void 0,fingerprintProfile:DE(e)?i.fingerprintProfile??``:void 0,testModel:e===`codex`||e===`meta`||e===`xai`||DE(e)||e===`gemini`||e===`interactions`?``:void 0}}function kE({brand:e,resource:t,mode:n,mutating:r,formId:i,onSubmit:a,onDirtyChange:o}){let{t:s}=B(),c=Sw[e],l=(0,y.useId)(),[u,d]=(0,y.useState)(()=>OE(e,t,n)),[f]=(0,y.useState)(()=>JSON.stringify(OE(e,t,n))),[p,m]=(0,y.useState)(null),[h,g]=(0,y.useState)(!1),_=(0,y.useMemo)(()=>JSON.stringify(u)!==f,[u,f]);(0,y.useEffect)(()=>{o?.(_)},[_,o]);let v=(0,y.useMemo)(()=>n!==`edit`||!t||e===`openaiCompatibility`?``:t.raw?.apiKey??``,[e,n,t]),b=(0,y.useMemo)(()=>n!==`edit`||!t?``:t.raw?.authIndex??``,[n,t]),x=(0,y.useMemo)(()=>({baseUrlRequired:s(`providersPage.connectivity.baseUrlRequired`),endpointInvalid:s(`providersPage.connectivity.endpointInvalid`),apiKeyRequired:s(`providersPage.connectivity.apiKeyRequired`),modelRequired:s(`providersPage.connectivity.modelRequired`),timeout:e=>s(`providersPage.connectivity.timeout`,{seconds:e}),requestFailed:s(`providersPage.connectivity.requestFailed`)}),[s]),S=pE({brand:e,baseUrl:u.baseUrl,proxyUrl:u.proxyUrl,testModel:u.testModel,models:u.models,formHeaders:u.headers,apiKeyEntries:u.apiKeyEntries,apiKey:u.apiKey,fallbackApiKey:v,authIndex:b},x),C=Lw({brand:e,baseUrl:u.baseUrl,proxyUrl:u.proxyUrl,formHeaders:u.headers,apiKeyEntries:u.apiKeyEntries,apiKey:u.apiKey,fallbackApiKey:v,authIndex:b}),[w,T]=(0,y.useState)(!1),E=(0,y.useMemo)(()=>{let e=new Set;return u.models.forEach(t=>{let n=(t.name??``).trim();n&&e.add(n)}),e},[u.models]),D=(0,y.useMemo)(()=>{let e=new Set,t=[];u.models.forEach(n=>{let r=(n.name??``).trim();!r||e.has(r)||(e.add(r),t.push(r))});let n=t[0],r=[{value:``,label:n?s(`providersPage.form.testModelAutoWith`,{name:n}):s(`providersPage.form.testModelAutoEmpty`)}];t.forEach(e=>r.push({value:e,label:e}));let i=(u.testModel??``).trim();return i&&!e.has(i)&&r.push({value:i,label:s(`providersPage.form.testModelCustom`,{name:i})}),r},[u.models,u.testModel,s]),O=()=>{T(!0),!C.loading&&!C.hasFetched&&C.fetch()},k=()=>{T(!1)},A=e=>{e.length&&d(t=>({...t,models:bw(t.models,e)}))},j=(e,t)=>{d(n=>({...n,[e]:t}))},M=(e,t)=>{d(n=>({...n,cloak:{...n.cloak??{mode:``,strictMode:!1,sensitiveWordsText:``,cacheUserId:!1},[e]:t}}))},N=()=>{let t=uT(u.models);if(t)return s(t);if(u.runtimePolicy){let e=nT(u.runtimePolicy,c.supportsRequestScopedErrors);if(e)return s(e)}if(c.supportsName&&!u.name.trim())return s(`providersPage.form.validation.nameRequired`);if(c.supportsApiKey&&n===`create`&&!u.apiKey.trim())return s(`providersPage.form.validation.apiKeyRequired`);if(c.baseUrlRequired&&!u.baseUrl.trim())return s(`providersPage.form.validation.baseUrlRequired`);let r=[...e===`openaiCompatibility`?(u.apiKeyEntries??[]).map(e=>e.weight):[],...e===`openaiCompatibility`?[]:[u.weight]];return r.some(e=>e!==void 0&&!Number.isSafeInteger(e))?s(`providersPage.form.validation.weightInteger`):r.some(e=>e!==void 0&&e>1e6)?s(`providersPage.form.validation.weightMax`,{max:pp}):null},ee=async e=>{e.preventDefault();let t=N();if(t){m(t);return}try{m(null),await a(u)}catch(e){m(e instanceof Error?e.message:String(e))}},P=(0,y.useMemo)(()=>u.headers.length?u.headers:[bE()],[u.headers]),F=(0,y.useMemo)(()=>u.models.length?u.models:[xE()],[u.models]),I=(0,y.useMemo)(()=>u.apiKeyEntries&&u.apiKeyEntries.length?u.apiKeyEntries:[SE()],[u.apiKeyEntries]),L=(0,y.useMemo)(()=>GT(u.excludedModelsText),[u.excludedModelsText]),R=(0,y.useMemo)(()=>{let e=new Map;return C.models.forEach(t=>{let n=t.name?.trim();n&&e.set(n.toLowerCase(),{id:n,displayName:t.alias||void 0})}),u.models.forEach(t=>{let n=t.name?.trim();n&&!e.has(n.toLowerCase())&&e.set(n.toLowerCase(),{id:n})}),[...e.values()].sort((e,t)=>e.id.localeCompare(t.id,void 0,{sensitivity:`base`}))},[C.models,u.models]),te=C.loading?`loading`:C.error?`error`:R.length===0?`unavailable`:`ready`,ne=u.apiKeyEntries??[],re=e===`openaiCompatibility`,z=e===`codex`||e===`meta`||e===`xai`?{status:S.codexStatus,run:S.runCodex}:e===`gemini`||e===`interactions`?{status:S.geminiStatus,run:S.runGemini}:DE(e)?{status:S.claudeStatus,run:S.runClaude}:null;return(0,V.jsxs)(`form`,{id:i,className:K.form,onSubmit:ee,noValidate:!0,children:[(0,V.jsxs)(`div`,{className:K.section,children:[c.supportsName?(0,V.jsxs)(`div`,{className:K.field,children:[(0,V.jsx)(`label`,{className:K.label,htmlFor:`${l}-name`,children:s(`providersPage.form.name`)}),(0,V.jsx)(`input`,{id:`${l}-name`,className:K.input,value:u.name,onChange:e=>j(`name`,e.target.value),disabled:r})]}):null,c.supportsApiKey?(0,V.jsxs)(`div`,{className:K.field,children:[(0,V.jsx)(`label`,{className:K.label,htmlFor:`${l}-apiKey`,children:s(`providersPage.form.apiKey`)}),(0,V.jsxs)(`div`,{className:K.passwordField,children:[(0,V.jsx)(`input`,{id:`${l}-apiKey`,className:K.passwordInput,type:h?`text`:`password`,value:u.apiKey,onChange:e=>j(`apiKey`,e.target.value),autoComplete:`new-password`,"data-1p-ignore":`true`,"data-lpignore":`true`,"data-bwignore":`true`,placeholder:s(n===`edit`?`providersPage.form.apiKeyEditPlaceholder`:`providersPage.form.apiKeyCreatePlaceholder`),disabled:r}),(0,V.jsx)(`button`,{type:`button`,className:K.passwordToggle,onClick:()=>g(e=>!e),disabled:r,"aria-label":s(h?`providersPage.form.hideApiKey`:`providersPage.form.showApiKey`),title:s(h?`providersPage.form.hideApiKey`:`providersPage.form.showApiKey`),children:h?(0,V.jsx)(Ws,{size:16}):(0,V.jsx)(Us,{size:16})})]})]}):null,c.supportsBaseUrl?(0,V.jsxs)(`div`,{className:K.field,children:[(0,V.jsxs)(`label`,{className:K.label,htmlFor:`${l}-baseUrl`,children:[s(`providersPage.form.baseUrl`),c.baseUrlRequired?(0,V.jsxs)(`span`,{className:K.labelHint,children:[` `,`· `,s(`providersPage.form.baseUrlRequiredHint`)]}):null]}),(0,V.jsx)(`input`,{id:`${l}-baseUrl`,className:K.input,value:u.baseUrl,onChange:e=>j(`baseUrl`,e.target.value),placeholder:`https://api.example.com`,disabled:r})]}):null,c.supportsProxyUrl?(0,V.jsxs)(`div`,{className:K.field,children:[(0,V.jsx)(`label`,{className:K.label,htmlFor:`${l}-proxy`,children:s(`providersPage.form.proxyUrl`)}),(0,V.jsx)(`input`,{id:`${l}-proxy`,className:K.input,value:u.proxyUrl,onChange:e=>j(`proxyUrl`,e.target.value),placeholder:`http://127.0.0.1:7890`,disabled:r})]}):null,c.supportsPrefix?(0,V.jsxs)(`div`,{className:K.fieldRow,children:[(0,V.jsxs)(`div`,{className:K.field,children:[(0,V.jsx)(`label`,{className:K.label,htmlFor:`${l}-prefix`,children:s(`providersPage.form.prefix`)}),(0,V.jsx)(`input`,{id:`${l}-prefix`,className:K.input,value:u.prefix,onChange:e=>j(`prefix`,e.target.value),disabled:r})]}),c.supportsPriority?(0,V.jsxs)(`div`,{className:K.field,children:[(0,V.jsx)(`label`,{className:K.label,htmlFor:`${l}-prio`,children:s(`providersPage.form.priority`)}),(0,V.jsx)(`input`,{id:`${l}-prio`,type:`number`,className:K.input,value:u.priority??``,onChange:e=>j(`priority`,e.target.value===``?void 0:Number(e.target.value)),disabled:r})]}):null]}):null,e===`openaiCompatibility`?null:(0,V.jsxs)(`div`,{className:K.field,children:[(0,V.jsx)(`label`,{className:K.label,htmlFor:`${l}-weight`,children:s(`providersPage.form.weight`)}),(0,V.jsx)(`input`,{id:`${l}-weight`,type:`number`,step:`1`,max:pp,className:K.input,value:u.weight??``,placeholder:`1`,onChange:e=>j(`weight`,e.target.value===``?void 0:Number(e.target.value)),disabled:r}),(0,V.jsx)(`span`,{className:K.labelHint,children:s(`providersPage.form.weightHint`)})]}),c.supportsTestModel?(0,V.jsxs)(`div`,{className:K.field,children:[(0,V.jsxs)(`label`,{className:K.label,htmlFor:`${l}-testModel`,children:[s(`providersPage.form.testModel`),e===`codex`||e===`meta`||e===`xai`||DE(e)||e===`gemini`||e===`interactions`?(0,V.jsxs)(`span`,{className:K.labelHint,children:[` `,`· `,s(`providersPage.form.testModelClaudeHint`)]}):null]}),(0,V.jsx)(_c,{id:`${l}-testModel`,value:u.testModel??``,options:D,onChange:e=>j(`testModel`,e),disabled:r,ariaLabel:s(`providersPage.form.testModel`)}),z?(0,V.jsxs)(`div`,{className:K.connectivityRow,children:[(0,V.jsxs)(`button`,{type:`button`,className:K.connectivityBtn,disabled:r||S.isTestingAny,onClick:()=>void z.run(),children:[z.status.state===`loading`?(0,V.jsx)(`span`,{className:`${K.statusIcon} ${K.statusIconLoading}`,children:(0,V.jsx)(Is,{size:14})}):null,(0,V.jsx)(`span`,{children:s(`providersPage.connectivity.test`)})]}),(0,V.jsx)(mE,{state:z.status.state}),z.status.state===`success`?(0,V.jsx)(`span`,{className:K.connectivityHintSuccess,children:s(`providersPage.connectivity.success`)}):null]}):null,z?.status.state===`error`?(0,V.jsx)(`div`,{className:K.connectivityError,children:z.status.message}):null]}):null,c.supportsWebsockets?(0,V.jsxs)(`label`,{className:K.checkboxRow,children:[(0,V.jsx)(`input`,{type:`checkbox`,className:K.checkboxBox,checked:u.websockets??!1,disabled:r,onChange:e=>j(`websockets`,e.target.checked)}),(0,V.jsx)(`span`,{className:K.checkboxText,children:(0,V.jsx)(`span`,{children:s(`providersPage.form.websockets`)})})]}):null,c.supportsDisabled?(0,V.jsxs)(`label`,{className:K.checkboxRow,children:[(0,V.jsx)(`input`,{type:`checkbox`,className:K.checkboxBox,checked:u.disabled,disabled:r,onChange:e=>j(`disabled`,e.target.checked)}),(0,V.jsxs)(`span`,{className:K.checkboxText,children:[(0,V.jsx)(`span`,{children:s(`providersPage.form.disabled`)}),(0,V.jsx)(`small`,{children:s(`providersPage.form.disabledHint`)})]})]}):null]}),(0,V.jsx)(gT,{brand:e,value:u,onChange:e=>d(t=>({...t,...e})),disabled:r}),(0,V.jsx)(hT,{value:u.runtimePolicy??tT(),onChange:e=>j(`runtimePolicy`,e),disabled:r,supportsErrors:c.supportsRequestScopedErrors}),c.supportsApiKeyEntries&&u.apiKeyEntries?(0,V.jsx)(Kb,{label:s(`providersPage.form.apiKeyEntriesSection`),hint:`${I.filter(e=>e.apiKey.trim()||e.existingApiKey?.trim()).length}`,defaultOpen:!0,children:(0,V.jsx)(vE,{entries:I,removeDisabled:ne.length===0,mutating:r,statuses:S.openaiStatuses,isTestingAny:S.isTestingAny,onUpdate:(e,t)=>j(`apiKeyEntries`,I.map((n,r)=>r===e?{...n,...t}:n)),onAdd:()=>{let e=[...ne,SE()];return j(`apiKeyEntries`,e),e.length-1},onRemove:e=>j(`apiKeyEntries`,ne.filter((t,n)=>n!==e)),onTest:e=>void S.runOpenAIKey(e),onTestAll:()=>void S.runOpenAIAllKeys()})}):null,c.supportsHeaders?(0,V.jsx)(Kb,{label:s(`providersPage.form.headersSection`),children:(0,V.jsxs)(`div`,{className:K.entriesList,children:[P.map((e,t)=>(0,V.jsxs)(`div`,{style:{display:`grid`,gridTemplateColumns:`1fr 1fr auto`,gap:8},children:[(0,V.jsx)(`input`,{className:K.input,placeholder:`X-Custom-Header`,value:e.key,onChange:e=>j(`headers`,P.map((n,r)=>r===t?{...n,key:e.target.value}:n)),disabled:r}),(0,V.jsx)(`input`,{className:K.input,placeholder:`value`,value:e.value,onChange:e=>j(`headers`,P.map((n,r)=>r===t?{...n,value:e.target.value}:n)),disabled:r}),(0,V.jsx)(`button`,{type:`button`,className:K.removeBtn,disabled:r||P.length<=1,onClick:()=>j(`headers`,P.filter((e,n)=>n!==t)),children:(0,V.jsx)(Vs,{size:12})})]},t)),(0,V.jsxs)(`button`,{type:`button`,className:K.addBtn,disabled:r,onClick:()=>j(`headers`,[...P,bE()]),children:[(0,V.jsx)(js,{size:12}),(0,V.jsx)(`span`,{children:s(`providersPage.form.addHeader`)})]})]})}):null,c.supportsModels?(0,V.jsx)(Kb,{label:s(`providersPage.form.modelsSection`),hint:`${E.size}`,children:(0,V.jsxs)(`div`,{className:K.entriesList,children:[C.available?(0,V.jsx)(`div`,{className:K.entriesToolbar,children:(0,V.jsxs)(`button`,{type:`button`,className:K.connectivityBtn,onClick:O,disabled:r,children:[(0,V.jsx)(Es,{size:14}),(0,V.jsx)(`span`,{children:s(`providersPage.discovery.openButton`)})]})}):null,C.available&&w?(0,V.jsx)(xw,{loading:C.loading,error:C.error,models:C.models,hasFetched:C.hasFetched,existingNames:E,mutating:r,onApply:e=>{A(e)},onReload:()=>void C.fetch(),onClose:k}):null,(0,V.jsx)(Pw,{providerBrand:e,models:F,supportsImage:re,supportsThinking:!0,mutating:r,removeDisabled:F.length<=1,onUpdate:(e,t)=>{j(`models`,F.map((n,r)=>r===e?{...n,...t}:n))},onAdd:()=>j(`models`,[...F,xE()]),onRemove:e=>{j(`models`,F.filter((t,n)=>n!==e))}})]})}):null,c.supportsExcludedModels?(0,V.jsx)(Kb,{label:s(`providersPage.form.excludedSection`),children:(0,V.jsx)(`div`,{className:K.field,children:(0,V.jsx)(oE,{value:L,onChange:e=>j(`excludedModelsText`,KT(e)),candidates:R,catalogState:te,onRetryCatalog:C.available?()=>void C.fetch():void 0,disabled:r,reservedRules:yE,reservedRuleMessage:s(`providersPage.form.excludedDisabledNote`)})})}):null,DE(e)?(0,V.jsxs)(`div`,{className:K.field,children:[(0,V.jsx)(`label`,{id:`${l}-fingerprint-profile-label`,className:K.label,children:s(`providersPage.form.fingerprintProfile`)}),(0,V.jsx)(_c,{id:`${l}-fingerprint-profile`,value:u.fingerprintProfile??``,options:[{value:``,label:s(`providersPage.form.fingerprintProfileDefault`)},{value:`claude-code-cli`,label:s(`providersPage.form.fingerprintProfileClaudeCodeCli`)}],onChange:e=>j(`fingerprintProfile`,e),disabled:r,ariaLabelledBy:`${l}-fingerprint-profile-label`}),(0,V.jsx)(`small`,{className:K.labelHint,children:s(`providersPage.form.fingerprintProfileHint`)})]}):null,c.supportsCloak&&u.cloak?(0,V.jsx)(Kb,{label:s(`providersPage.form.cloakSection`),children:(0,V.jsxs)(`div`,{className:K.section,children:[(0,V.jsxs)(`div`,{className:K.field,children:[(0,V.jsx)(`label`,{className:K.label,children:s(`providersPage.form.cloakMode`)}),(0,V.jsx)(`input`,{className:K.input,value:u.cloak.mode,onChange:e=>M(`mode`,e.target.value),placeholder:`auto / always / never`,disabled:r})]}),(0,V.jsxs)(`label`,{className:K.checkboxRow,children:[(0,V.jsx)(`input`,{type:`checkbox`,className:K.checkboxBox,checked:u.cloak.strictMode,disabled:r,onChange:e=>M(`strictMode`,e.target.checked)}),(0,V.jsx)(`span`,{className:K.checkboxText,children:(0,V.jsx)(`span`,{children:s(`providersPage.form.cloakStrict`)})})]}),(0,V.jsxs)(`label`,{className:K.checkboxRow,children:[(0,V.jsx)(`input`,{type:`checkbox`,className:K.checkboxBox,checked:u.cloak.cacheUserId,disabled:r,onChange:e=>M(`cacheUserId`,e.target.checked)}),(0,V.jsxs)(`span`,{className:K.checkboxText,children:[(0,V.jsx)(`span`,{children:s(`providersPage.form.cloakCacheUserId`)}),(0,V.jsx)(`small`,{children:s(`providersPage.form.cloakCacheUserIdHint`)})]})]}),(0,V.jsxs)(`div`,{className:K.field,children:[(0,V.jsx)(`label`,{className:K.label,children:s(`providersPage.form.cloakSensitiveWords`)}),(0,V.jsx)(`textarea`,{className:K.textarea,rows:3,value:u.cloak.sensitiveWordsText,onChange:e=>M(`sensitiveWordsText`,e.target.value),disabled:r})]})]})}):null,p?(0,V.jsx)(`div`,{className:K.errorBox,children:p}):null]})}var AE=e=>e===`claude`?`anthropicEntries`:e===`codex`?`codexEntries`:`${e}Entries`;function jE({resource:e,usageByProvider:t}){let{t:n}=B();if(WC(e.brand)){let t=GC(e.brand),r=e.raw,i=r.openai.reduce((e,t)=>e+(t.config.apiKeyEntries?.length??0),0),a=r.codex.length,o=r.gemini.length,s=r.openai.flatMap(e=>e.config.apiKeyEntries??[]).find(e=>e.apiKey?.trim())?.apiKey??r.codex.find(e=>e.config.apiKey?.trim())?.config.apiKey??r.claude.find(e=>e.config.apiKey?.trim())?.config.apiKey??r.gemini.find(e=>e.config.apiKey?.trim())?.config.apiKey,c=t.resolveBaseUrl(r.openai[0]?.config.baseUrl??r.codex[0]?.config.baseUrl??r.claude[0]?.config.baseUrl??r.gemini[0]?.config.baseUrl),l=t.getProtocolUrls(c),u={openai:i,codex:a,claude:r.claude.length,gemini:o};return(0,V.jsxs)(`div`,{children:[(0,V.jsxs)(`div`,{className:K.detailHeader,children:[(0,V.jsx)(`div`,{className:K.sectionTitle,children:e.name??e.identifier}),(0,V.jsx)(`p`,{className:K.sectionDesc,children:n(`providersPage.sponsor.detailHint`,{provider:t.displayName})})]}),(0,V.jsx)(`div`,{className:K.sponsorProtocolGrid,children:t.protocols.map(e=>(0,V.jsxs)(`div`,{className:K.sponsorProtocolCard,children:[(0,V.jsx)(`span`,{className:K.sponsorProtocolName,children:n(`providersPage.sponsor.protocols.${KC(e)}`)}),(0,V.jsx)(`span`,{className:K.sponsorProtocolUrl,children:qC(l,e)})]},e))}),(0,V.jsxs)(`dl`,{className:K.dl,style:{marginTop:16},children:[(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`dt`,{className:K.dt,children:n(`providersPage.detail.fields.identifier`)}),(0,V.jsx)(`dd`,{className:K.dd,children:s?dg(s):e.identifier})]}),(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`dt`,{className:K.dt,children:n(`providersPage.detail.fields.prefix`)}),(0,V.jsx)(`dd`,{className:K.dd,children:e.prefix??n(`providersPage.status.none`)})]}),t.protocols.map(e=>(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`dt`,{className:K.dt,children:n(`providersPage.sponsor.${AE(e)}`)}),(0,V.jsx)(`dd`,{className:K.dd,children:u[e]})]},e))]})]})}let r=[[`identifier`,e.identifier],[`baseUrl`,e.baseUrl??n(`providersPage.status.notSet`)],[`proxyUrl`,e.proxyUrl??n(`providersPage.status.notSet`)],[`prefix`,e.prefix??n(`providersPage.status.none`)],[`models`,String(e.modelCount)],[`headers`,String(e.headerCount)]],i=[[`authIndex`,e.authIndex??n(`providersPage.status.notSet`)],[`excludedModels`,String(e.excludedModelCount)],[`apiKeyEntries`,String(e.apiKeyEntryCount)]],a=e.brand===`openaiCompatibility`?e.raw:null,o=a?.apiKeyEntries??[];return(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`div`,{className:K.detailHeader,children:(0,V.jsx)(`div`,{className:K.sectionTitle,children:e.name??e.identifier})}),(0,V.jsx)(`dl`,{className:K.dl,children:r.map(([e,t])=>(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`dt`,{className:K.dt,children:n(`providersPage.detail.fields.${e}`)}),(0,V.jsx)(`dd`,{className:K.dd,children:t})]},e))}),a&&o.length>0?(0,V.jsxs)(`div`,{className:K.apiKeyEntriesSection,children:[(0,V.jsxs)(`div`,{className:K.apiKeyEntriesLabel,children:[n(`providersPage.form.apiKeyEntriesSection`),`: `,o.length]}),(0,V.jsx)(`div`,{className:K.apiKeyEntryList,children:o.map((e,n)=>{let r=t?Fx(t,a.name,e.apiKey,a.baseUrl):{success:0,failure:0};return(0,V.jsxs)(`div`,{className:K.apiKeyEntryCard,children:[(0,V.jsx)(`span`,{className:K.apiKeyEntryIndex,children:n+1}),(0,V.jsx)(`span`,{className:K.apiKeyEntryKey,children:dg(e.apiKey)}),e.proxyUrl?(0,V.jsx)(`span`,{className:K.apiKeyEntryProxy,children:e.proxyUrl}):null,(0,V.jsxs)(`div`,{className:K.apiKeyEntryStats,children:[(0,V.jsxs)(`span`,{className:`${K.apiKeyEntryStat} ${K.apiKeyEntryStatSuccess}`,children:[(0,V.jsx)(Hs,{size:12}),` `,r.success]}),(0,V.jsxs)(`span`,{className:`${K.apiKeyEntryStat} ${K.apiKeyEntryStatFailure}`,children:[(0,V.jsx)(Vs,{size:12}),` `,r.failure]})]})]},`${e.apiKey}-${n}`)})})]}):null,(0,V.jsx)(`div`,{style:{marginTop:16},children:(0,V.jsx)(Kb,{label:n(`providersPage.detail.metadataTitle`),children:(0,V.jsx)(`dl`,{className:K.dl,children:i.map(([e,t])=>(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`dt`,{className:K.dt,children:n(`providersPage.detail.fields.${e}`)}),(0,V.jsx)(`dd`,{className:K.dd,children:t})]},e))})})})]})}function ME({state:e,onClose:t,onSwitchToEdit:n,workbench:r,onCreated:i,onUpdated:a,mutationDisabled:o=!1,usageByProvider:s,ref:c}){let{t:l}=B(),{showConfirmation:u}=Jc(),d=(0,y.useId)(),[f,p]=(0,y.useState)(!1),[m,h]=(0,y.useState)(!1);(0,y.useEffect)(()=>{h(!1)},[e.brand,e.mode,e.resource?.id,e.open]);let g=(0,y.useCallback)(e=>{h(e)},[]),_=Sw[e.brand],v=e.mode===`create`||e.mode===`edit`,b=f||o,x=b||e.mode===`edit`&&!m,S=(0,y.useCallback)(()=>!v||!m||f?Promise.resolve(!0):new Promise(e=>{u({title:l(`providersPage.unsavedChanges.title`),message:l(`providersPage.unsavedChanges.message`),variant:`danger`,confirmText:l(`providersPage.unsavedChanges.discard`),cancelText:l(`providersPage.unsavedChanges.keepEditing`),onConfirm:()=>e(!0),onCancel:()=>e(!1)})}),[m,v,u,f,l]);(0,y.useImperativeHandle)(c,()=>({confirmDiscardIfDirty:S}),[S]);let C=(0,y.useCallback)(()=>{S().then(e=>{e&&t()})},[S,t]),w=e.mode===`create`?`${l(`providersPage.form.createEyebrow`)} · ${l(`providersPage.providerNames.${e.brand}`)}`:e.mode===`edit`?`${l(`providersPage.form.editEyebrow`)} · ${l(`providersPage.providerNames.${e.brand}`)}`:`${l(`providersPage.detail.title`)} · ${l(`providersPage.providerNames.${e.brand}`)}`,T=(0,y.useCallback)(async t=>{if(!o){p(!0);try{await r.createProvider(e.brand,t),i()}finally{p(!1)}}},[o,i,e.brand,r]),E=(0,y.useCallback)(async t=>{if(!(!e.resource||o||!m)){p(!0);try{await r.updateProvider(e.resource,t),a()}finally{p(!1)}}},[m,o,a,e.resource,r]),D=()=>{if(e.mode===`detail`)return e.resource?(0,V.jsx)(jE,{resource:e.resource,usageByProvider:s}):null;let t=`${e.brand}:${e.resource?.id??`new`}:${e.mode}`;return WC(e.brand)?(0,V.jsx)(MT,{brand:e.brand,resource:e.resource,mode:e.mode,mutating:b,formId:d,onSubmit:e.mode===`create`?T:E,onDirtyChange:g},t):(0,V.jsx)(kE,{brand:e.brand,resource:e.resource,mode:e.mode,mutating:b,formId:d,onSubmit:e.mode===`create`?T:E,onDirtyChange:g},t)},O=e.mode===`detail`?e.resource?(0,V.jsxs)(V.Fragment,{children:[(0,V.jsx)(`button`,{type:`button`,className:`${K.footerBtn} ${K.footerBtnGhost}`,onClick:t,children:l(`providersPage.actions.cancel`)}),(0,V.jsxs)(`button`,{type:`button`,className:`${K.footerBtn} ${K.footerBtnPrimary}`,onClick:n,disabled:b,children:[(0,V.jsx)(Ms,{size:14}),l(`providersPage.actions.edit`)]})]}):(0,V.jsx)(`button`,{type:`button`,className:`${K.footerBtn} ${K.footerBtnPrimary}`,onClick:t,children:l(`providersPage.actions.cancel`)}):(0,V.jsxs)(V.Fragment,{children:[(0,V.jsx)(`button`,{type:`button`,className:`${K.footerBtn} ${K.footerBtnGhost}`,onClick:C,disabled:f,children:l(`providersPage.actions.cancel`)}),(0,V.jsxs)(`button`,{type:`submit`,form:d,className:`${K.footerBtn} ${K.footerBtnPrimary}`,disabled:x,children:[f?(0,V.jsx)(Is,{size:14}):null,e.mode===`create`?l(`providersPage.actions.create`):l(`providersPage.actions.save`)]})]});return(0,V.jsx)(RT,{open:e.open,onClose:t,size:_.sheetSize,eyebrow:e.mode===`detail`?l(`providersPage.detail.title`):e.mode===`create`?l(`providersPage.form.createEyebrow`):l(`providersPage.form.editEyebrow`),title:w,description:l(`providersPage.table.description`,{route:e.brand===`openaiCompatibility`?`/ai-providers/openai`:e.brand===`apikeyFun`?`/quick-start`:e.brand===`fennoAI`?`/ai-providers/fennoai`:e.brand===`qiniuCloud`?`/ai-providers/qiniu`:e.brand===`kimi`?`/ai-providers/kimi`:`/ai-providers/${e.brand}`}),footer:O,closeDisabled:f,confirmClose:S,children:D()})}var NE=e=>e?Object.keys(e).length:0,PE=e=>{let t=new Set;return(e??[]).forEach(e=>{let n=(e?.name??``).trim();n&&t.add(n)}),Array.from(t)},FE=e=>typeof e==`number`&&Number.isFinite(e)?e:0,IE=(e,t,n)=>`${e}:${t}:${n||`item`}`,LE=e=>{let t=String(e??``).trim();return t?t.length<=12?t:t.slice(0,8):``};function RE(e,t,n){let r=t.apiKey??``,i=gx(t.excludedModels),a={};if((e===`codex`||e===`xai`)&&(a.websockets=t.websockets===!0),e===`claude`){let e=t;a.cloakEnabled=!!e.cloak?.mode?.trim(),a.claudeCodeCliProfile=e.fingerprintProfile===`claude-code-cli`}let o={brand:e,apiKey:r,baseUrl:t.baseUrl,index:n};return{id:IE(e,n,LE(r)),brand:e,originalIndex:n,name:typeof t.source?.group.name==`string`?t.source.group.name:null,identifier:dg(r)||`#${n+1}`,apiKeyPreview:r?dg(r):null,apiKey:r||null,authIndex:t.authIndex??null,baseUrl:t.baseUrl??null,proxyUrl:t.proxyUrl??null,prefix:t.prefix??null,modelCount:t.models?.length??0,models:PE(t.models),priority:FE(t.priority),headerCount:NE(t.headers),excludedModelCount:_x(t.excludedModels).length,apiKeyEntryCount:0,disabled:i,flags:a,selector:o,raw:t}}function zE(e,t){return RE(`gemini`,e,t)}function BE(e,t){return RE(`interactions`,e,t)}function VE(e,t){return RE(`codex`,e,t)}function HE(e,t){return RE(`meta`,e,t)}function UE(e,t){return RE(`xai`,e,t)}function WE(e,t){return RE(`claude`,e,t)}function GE(e,t){return RE(`vertex`,e,t)}function KE(e,t){let n=e.sourceIndex??t,r=(e.name??``).trim(),i=e.apiKeyEntries?.[0],a=i?.apiKey?dg(i.apiKey):null;return{id:IE(`openaiCompatibility`,n,LE(r)||`#${n}`),brand:`openaiCompatibility`,originalIndex:n,name:r||null,identifier:r||`#${n+1}`,apiKeyPreview:a,apiKey:null,authIndex:e.authIndex??null,baseUrl:e.baseUrl??null,proxyUrl:null,prefix:e.prefix??null,modelCount:e.models?.length??0,models:PE(e.models),priority:FE(e.priority),headerCount:NE(e.headers),excludedModelCount:0,apiKeyEntryCount:e.apiKeyEntries?.length??0,disabled:e.disabled===!0,flags:{},selector:{brand:`openaiCompatibility`,name:r,index:n},raw:e}}function qE(e,t,n){if(t.openai.length===0&&t.claude.length===0&&t.codex.length===0&&t.gemini.length===0)return null;let r=t.openai.reduce((e,t)=>e+(t.config.apiKeyEntries?.length??0),0),i=t.codex.length,a=t.gemini.length,o=t.openai.flatMap(e=>e.config.apiKeyEntries??[]).find(e=>e.apiKey?.trim()),s=t.codex.find(e=>e.config.apiKey?.trim()),c=t.claude.find(e=>e.config.apiKey?.trim()),l=t.gemini.find(e=>e.config.apiKey?.trim()),u=o?.apiKey??s?.config.apiKey??c?.config.apiKey??l?.config.apiKey??``,d=t.openai.length>0&&t.openai.every(e=>e.config.disabled===!0),f=t.codex.length>0&&t.codex.every(e=>gx(e.config.excludedModels)),p=t.claude.length>0&&t.claude.every(e=>gx(e.config.excludedModels)),m=t.gemini.length>0&&t.gemini.every(e=>gx(e.config.excludedModels)),h=+(t.openai.length>0&&!d)+ +(t.codex.length>0&&!f)+ +(t.claude.length>0&&!p)+ +(t.gemini.length>0&&!m),g=(t.openai.length>0||t.codex.length>0||t.claude.length>0||t.gemini.length>0)&&h===0,_=[...t.openai.flatMap(e=>PE(e.config.models)),...t.codex.flatMap(e=>PE(e.config.models)),...t.claude.flatMap(e=>PE(e.config.models)),...t.gemini.flatMap(e=>PE(e.config.models))],v=Array.from(new Set(_)),y=t.openai.reduce((e,t)=>e+NE(t.config.headers),0)+t.codex.reduce((e,t)=>e+NE(t.config.headers),0)+t.claude.reduce((e,t)=>e+NE(t.config.headers),0)+t.gemini.reduce((e,t)=>e+NE(t.config.headers),0),b=Math.max(0,...t.openai.map(e=>FE(e.config.priority)),...t.codex.map(e=>FE(e.config.priority)),...t.claude.map(e=>FE(e.config.priority)),...t.gemini.map(e=>FE(e.config.priority))),x=n.resolveBaseUrl(t.openai[0]?.config.baseUrl??t.codex[0]?.config.baseUrl??t.claude[0]?.config.baseUrl??t.gemini[0]?.config.baseUrl),S=n.getProtocolUrls(x);return{id:IE(e,0,`sponsor`),brand:e,originalIndex:0,name:n.displayName,identifier:n.displayName,apiKeyPreview:u?dg(u):null,apiKey:u||null,authIndex:null,baseUrl:[S.openai,S.anthropic,S.gemini].filter(Boolean).join(` / `),proxyUrl:o?.proxyUrl??t.codex.find(e=>e.config.proxyUrl)?.config.proxyUrl??t.claude.find(e=>e.config.proxyUrl)?.config.proxyUrl??t.gemini.find(e=>e.config.proxyUrl)?.config.proxyUrl??null,prefix:t.openai[0]?.config.prefix??t.codex[0]?.config.prefix??t.claude[0]?.config.prefix??t.gemini[0]?.config.prefix??null,modelCount:v.length,models:v,priority:b,headerCount:y,excludedModelCount:t.codex.reduce((e,t)=>e+_x(t.config.excludedModels).length,0)+t.claude.reduce((e,t)=>e+_x(t.config.excludedModels).length,0)+t.gemini.reduce((e,t)=>e+_x(t.config.excludedModels).length,0),apiKeyEntryCount:r+i+t.claude.length+a,disabled:g,flags:{protocols:[...n.protocolLabels]},selector:{brand:e,openaiIndices:t.openai.map(e=>e.index),claudeIndices:t.claude.map(e=>e.index),codexIndices:t.codex.map(e=>e.index),geminiIndices:t.gemini.map(e=>e.index)},raw:t}}function JE(e){return qE(`apikeyFun`,e,{displayName:MS,protocolLabels:US,resolveBaseUrl:KS,getProtocolUrls:qS})}function YE(e){return qE(`fennoAI`,e,{displayName:lC,protocolLabels:mC,resolveBaseUrl:_C,getProtocolUrls:vC})}function XE(e){return qE(`qiniuCloud`,e,{displayName:TC,protocolLabels:jC,resolveBaseUrl:PC,getProtocolUrls:FC})}function ZE(e){return qE(`kimi`,e,{displayName:dS,protocolLabels:xS,resolveBaseUrl:TS,getProtocolUrls:ES})}var QE=e=>e.split(/[\n,]+/).map(e=>e.trim()).filter(Boolean),$E=e=>{let t={};return e.forEach(e=>{let n=e.key.trim();n&&(t[n]=e.value)}),t},eD=(e,t,n)=>{let r=QE(e).filter(e=>e!==`*`);return n===`openaiCompatibility`?r.length?r:void 0:t?vx(r):r.length?r:void 0},tD=(e,t=!1)=>(e??[]).map(e=>{let n={sourceIndex:e.sourceIndex??null,name:e.name.trim(),alias:e.alias?.trim()||void 0,priority:e.priority,testModel:e.testModel,...cT(e)};return t&&(n.image=e.image===!0),n}).filter(e=>e.name),nD=(e,t,n)=>{let r=$E(t.headers),i=tD(t.models),a=eD(t.excludedModelsText,t.disabled,e),o=t.apiKey.trim().length>0,s={source:n?.source,apiKey:o?t.apiKey.trim():n?.apiKey??``,priority:t.priority,weight:t.weight,prefix:t.prefix.trim()||void 0,baseUrl:t.baseUrl.trim()||void 0,proxyUrl:t.proxyUrl.trim()||void 0,models:i.length?i:void 0,headers:Object.keys(r).length?r:void 0,excludedModels:a,disableCooling:t.disableCooling,...t.runtimePolicy?rT(t.runtimePolicy,Sw[e].supportsRequestScopedErrors):{},authIndex:n?.authIndex,..._T(t,e)};return(e===`codex`||e===`xai`)&&t.websockets!==void 0&&(s.websockets=t.websockets),e===`claude`&&t.cloak&&(s.cloak={mode:t.cloak.mode.trim()||void 0,strictMode:t.cloak.strictMode,sensitiveWords:QE(t.cloak.sensitiveWordsText),cacheUserId:t.cloak.cacheUserId===!0}),e===`claude`&&(s.fingerprintProfile=t.fingerprintProfile?.trim()||void 0),s},rD=(e,t)=>{let n=$E(e.headers),r=tD(e.models,!0),i=e.apiKeyEntries?.map((e,n)=>{let r=e.existingApiKey?.trim()||t?.apiKeyEntries?.[n]?.apiKey?.trim()||``;return{apiKey:e.apiKey.trim()||r,sourceIndex:e.sourceIndex,proxyUrl:e.proxyUrl.trim()||void 0,weight:e.weight,authIndex:e.authIndex?.trim()||void 0}}).filter(e=>e.apiKey)??[];return{...t??{},name:e.name.trim(),baseUrl:e.baseUrl.trim(),prefix:e.prefix.trim()||void 0,apiKeyEntries:i,disabled:e.disabled,..._T(e,`openaiCompatibility`),disableCooling:e.disableCooling,...e.runtimePolicy?rT(e.runtimePolicy):{},headers:Object.keys(n).length?n:void 0,models:r.length?r:void 0,priority:e.priority,testModel:e.testModel?.trim()||void 0}},iD=e=>e.apiKey.trim()||e.existingApiKey?.trim()||``,aD=(e,t,n,r)=>{let i=n(e.baseUrl),a=tD(e.models,!0),o=iD(e),s=r?.apiKeyEntries?.[0],c=o?[{...s??{},apiKey:o,proxyUrl:e.proxyUrl.trim()||void 0,weight:e.weight}]:[];return{...r??{},name:t,baseUrl:i.openai,..._T(e,`openaiCompatibility`),prefix:e.prefix.trim()||void 0,disabled:e.disabled,disableCooling:e.disableCooling,...e.runtimePolicy?rT(e.runtimePolicy):{},priority:e.priority,apiKeyEntries:c,models:a.length?a:void 0}},oD=(e,t,n,r)=>{let i=n(e.baseUrl),a=tD(e.models),o=iD(e),s=e.disabled?vx(_x(r?.excludedModels)):yx(r?.excludedModels);return{...r??{},apiKey:o,baseUrl:t===`claude`?i.anthropic:i.codex,..._T(e,t),proxyUrl:e.proxyUrl.trim()||void 0,prefix:e.prefix.trim()||void 0,priority:e.priority,weight:e.weight,disableCooling:e.disableCooling,...e.runtimePolicy?rT(e.runtimePolicy):{},excludedModels:s,models:a.length?a:void 0}},sD=(e,t,n)=>{let r=t(e.baseUrl),i=tD(e.models),a=iD(e),o=e.disabled?vx(_x(n?.excludedModels)):yx(n?.excludedModels);return{...n??{},apiKey:a,baseUrl:r.gemini,proxyUrl:e.proxyUrl.trim()||void 0,prefix:e.prefix.trim()||void 0,priority:e.priority,weight:e.weight,disableCooling:e.disableCooling,...e.runtimePolicy?rT(e.runtimePolicy):{},excludedModels:o,models:i.length?i:void 0}},cD=e=>(e??[]).filter(e=>iD(e)),lD=async(e,t)=>{for(let n of e.gemini){let e=t?vx(n.config.excludedModels):yx(n.config.excludedModels);await Yv.updateGeminiKey(n.config.apiKey,n.config.baseUrl,{...n.config,excludedModels:e})}for(let n of e.codex){let e=t?vx(n.config.excludedModels):yx(n.config.excludedModels);await Yv.updateCodexConfig(n.config.apiKey,n.config.baseUrl,{...n.config,excludedModels:e})}for(let n of e.claude){let e=t?vx(n.config.excludedModels):yx(n.config.excludedModels);await Yv.updateClaudeConfig(n.config.apiKey,n.config.baseUrl,{...n.config,excludedModels:e})}for(let n of e.openai)await Yv.updateOpenAIProviderDisabled(n.index,t,n.config.source)},uD=e=>Tw.reduce((t,n)=>{let r;switch(n){case`gemini`:r=(e.geminiApiKeys??[]).reduce((e,t,n)=>(HC(t)||e.push(zE(t,n)),e),[]);break;case`interactions`:r=(e.interactionsApiKeys??[]).map((e,t)=>BE(e,t));break;case`codex`:r=(e.codexApiKeys??[]).reduce((e,t,n)=>(!aC(t)&&!SC(t)&&!VC(t)&&!kS(t)&&e.push(VE(t,n)),e),[]);break;case`meta`:r=(e.metaApiKeys??[]).map((e,t)=>HE(e,t));break;case`xai`:r=(e.xaiApiKeys??[]).map((e,t)=>UE(e,t));break;case`claude`:r=(e.claudeApiKeys??[]).reduce((e,t,n)=>(!iC(t)&&!xC(t)&&!BC(t)&&!OS(t)&&e.push(WE(t,n)),e),[]);break;case`vertex`:r=(e.vertexApiKeys??[]).map((e,t)=>GE(e,t));break;case`openaiCompatibility`:r=(e.openaiCompatibility??[]).reduce((e,t,n)=>(!rC(t)&&!zC(t)&&!DS(t)&&e.push(KE(t,n)),e),[]);break;case`apikeyFun`:{let t=JE(oC(e));r=t?[t]:[];break}case`fennoAI`:{let t=YE(CC(e));r=t?[t]:[];break}case`qiniuCloud`:{let t=XE(UC(e));r=t?[t]:[];break}case`kimi`:{let t=ZE(AS(e));r=t?[t]:[];break}default:return t}return t.push({id:n,resources:r}),t},[]);function dD(){let e=Im(e=>e.connectionStatus),t=Bp(e=>e.config),n=Bp(e=>e.fetchConfig),r=Bp(e=>e.updateConfigValue),i=Bp(e=>e.isCacheValid),[a,o]=(0,y.useState)(()=>!i()),[s,c]=(0,y.useState)(!1),[l,u]=(0,y.useState)(null),[d,f]=(0,y.useState)(!1),[p,m]=(0,y.useState)(()=>new Date().toISOString()),h=(0,y.useRef)(!1),g=e===`connected`,_=(0,y.useCallback)(async()=>{c(!0),u(null);try{let[e,t,i]=await Promise.allSettled([n(!0),Yv.getVertexConfigs(),Yv.getOpenAIProviders()]);if(e.status!==`fulfilled`)throw e.reason;t.status===`fulfilled`&&r(`vertex-api-key`,t.value||[]),i.status===`fulfilled`&&r(`openai-compatibility`,i.value||[]),m(new Date().toISOString())}catch(e){u(Oc(e)||`Failed to load providers`)}finally{o(!1),c(!1)}},[n,r]),v=(0,y.useCallback)(()=>{m(new Date().toISOString())},[]);(0,y.useEffect)(()=>{h.current||g&&(h.current=!0,_().catch(()=>{}))},[g,_]);let b=(0,y.useMemo)(()=>t?{fetchedAt:p,groups:uD(t)}:null,[t,p]),x=(0,y.useCallback)(async(e,n)=>{let r=GC(e),i=e===`apikeyFun`?oC(t):e===`fennoAI`?CC(t):e===`qiniuCloud`?UC(t):AS(t),a=cD(n.sponsorKeyEntries),o=a.find(e=>e.protocol===`openai`),s=a.find(e=>e.protocol===`claude`),c=a.find(e=>e.protocol===`codex`),l=a.find(e=>e.protocol===`gemini`);if(r.protocols.includes(`gemini`)){let e=i.gemini[0];if(l){let t=sD(l,r.getProtocolUrls,e?.config);e?await Yv.updateGeminiKey(e.config.apiKey,e.config.baseUrl,{...t,source:e.config.source}):await Yv.createGeminiKey(t)}else for(let e of i.gemini)await Yv.deleteGeminiKey(e.config.apiKey,e.config.baseUrl,e.config.source)}let u=i.codex[0];if(c){let e=oD(c,`codex`,r.getProtocolUrls,u?.config);u?await Yv.updateCodexConfig(u.config.apiKey,u.config.baseUrl,{...e,source:u.config.source}):await Yv.createCodexConfig(e)}else for(let e of i.codex)await Yv.deleteCodexConfig(e.config.apiKey,e.config.baseUrl,e.config.source);let d=i.claude[0];if(s){let e=oD(s,`claude`,r.getProtocolUrls,d?.config);d?await Yv.updateClaudeConfig(d.config.apiKey,d.config.baseUrl,{...e,source:d.config.source}):await Yv.createClaudeConfig(e)}else for(let e of i.claude)await Yv.deleteClaudeConfig(e.config.apiKey,e.config.baseUrl,e.config.source);let f=i.openai[0];if(o){let e=aD(o,r.providerName,r.getProtocolUrls,f?.config);f?await Yv.updateOpenAIProvider(f.config.name,f.index,e):await Yv.createOpenAIProvider(e)}else f&&await Yv.deleteOpenAIProvider(f.index,f.config.source)},[t]),S=(0,y.useCallback)(async(e,t)=>{f(!0);try{e===`gemini`?await Yv.createGeminiKey(nD(`gemini`,t)):e===`interactions`?await Yv.createInteractionsKey(nD(`interactions`,t)):e===`codex`?await Yv.createCodexConfig(nD(`codex`,t)):e===`meta`?await Yv.createMetaConfig(nD(`meta`,t)):e===`xai`?await Yv.createXAIConfig(nD(`xai`,t)):e===`claude`?await Yv.createClaudeConfig(nD(`claude`,t)):e===`vertex`?await Yv.createVertexConfig(nD(`vertex`,t)):e===`openaiCompatibility`?await Yv.createOpenAIProvider(rD(t)):(e===`apikeyFun`||e===`fennoAI`||e===`qiniuCloud`||e===`kimi`)&&await yw(()=>x(e,t),_),await _()}finally{f(!1)}},[x,_]),C=(0,y.useCallback)(async(e,t)=>{f(!0);try{let n=e.brand,r=e.selector;if(n===`gemini`&&r.brand===`gemini`){let n=e.raw;await Yv.updateGeminiKey(r.apiKey,r.baseUrl,nD(`gemini`,t,n))}else if(n===`interactions`&&r.brand===`interactions`){let n=e.raw;await Yv.updateInteractionsKey(r.apiKey,r.baseUrl,nD(`interactions`,t,n))}else if(n===`codex`&&r.brand===`codex`){let n=e.raw;await Yv.updateCodexConfig(r.apiKey,r.baseUrl,nD(`codex`,t,n))}else if(n===`meta`&&r.brand===`meta`){let n=e.raw;await Yv.updateMetaConfig(r.apiKey,r.baseUrl,nD(`meta`,t,n))}else if(n===`xai`&&r.brand===`xai`){let n=e.raw;await Yv.updateXAIConfig(r.apiKey,r.baseUrl,nD(`xai`,t,n))}else if(n===`claude`&&r.brand===`claude`){let n=e.raw;await Yv.updateClaudeConfig(r.apiKey,r.baseUrl,nD(`claude`,t,n))}else if(n===`vertex`&&r.brand===`vertex`){let n=e.raw;await Yv.updateVertexConfig(r.apiKey,r.baseUrl,nD(`vertex`,t,n))}else n===`openaiCompatibility`&&r.brand===`openaiCompatibility`?await Yv.updateOpenAIProvider(r.name,r.index,rD(t,e.raw)):(n===`apikeyFun`||n===`fennoAI`||n===`qiniuCloud`||n===`kimi`)&&await yw(()=>x(n,t),_);await _()}finally{f(!1)}},[x,_]),w=(0,y.useCallback)(async e=>{f(!0);try{let n=e.selector;if(n.brand===`gemini`){await Yv.deleteGeminiKey(n.apiKey,n.baseUrl,e.raw.source);let i=(t?.geminiApiKeys??[]).filter((e,t)=>t!==n.index);r(`gemini-api-key`,i)}else if(n.brand===`interactions`){await Yv.deleteInteractionsKey(n.apiKey,n.baseUrl,e.raw.source);let i=(t?.interactionsApiKeys??[]).filter((e,t)=>t!==n.index);r(`interactions-api-key`,i)}else if(n.brand===`codex`){await Yv.deleteCodexConfig(n.apiKey,n.baseUrl,e.raw.source);let i=(t?.codexApiKeys??[]).filter((e,t)=>t!==n.index);r(`codex-api-key`,i)}else if(n.brand===`meta`){await Yv.deleteMetaConfig(n.apiKey,n.baseUrl,e.raw.source);let i=(t?.metaApiKeys??[]).filter((e,t)=>t!==n.index);r(`meta-api-key`,i)}else if(n.brand===`xai`){await Yv.deleteXAIConfig(n.apiKey,n.baseUrl,e.raw.source);let i=(t?.xaiApiKeys??[]).filter((e,t)=>t!==n.index);r(`xai-api-key`,i)}else if(n.brand===`claude`){await Yv.deleteClaudeConfig(n.apiKey,n.baseUrl,e.raw.source);let i=(t?.claudeApiKeys??[]).filter((e,t)=>t!==n.index);r(`claude-api-key`,i)}else if(n.brand===`vertex`){await Yv.deleteVertexConfig(n.apiKey,n.baseUrl,e.raw.source);let i=(t?.vertexApiKeys??[]).filter((e,t)=>t!==n.index);r(`vertex-api-key`,i)}else if(n.brand===`openaiCompatibility`){await Yv.deleteOpenAIProvider(n.index,e.raw.source);let i=(t?.openaiCompatibility??[]).filter((e,t)=>(e.sourceIndex??t)!==n.index);r(`openai-compatibility`,i)}else(n.brand===`apikeyFun`||n.brand===`fennoAI`||n.brand===`qiniuCloud`||n.brand===`kimi`)&&await yw(async()=>{let t=e.raw;for(let e of t.gemini)await Yv.deleteGeminiKey(e.config.apiKey,e.config.baseUrl,e.config.source);for(let e of t.codex)await Yv.deleteCodexConfig(e.config.apiKey,e.config.baseUrl,e.config.source);for(let e of t.claude)await Yv.deleteClaudeConfig(e.config.apiKey,e.config.baseUrl,e.config.source);let n=t.openai.map(e=>e.index).sort((e,t)=>t-e);for(let e of n)await Yv.deleteOpenAIProvider(e,t.openai.find(t=>t.index===e)?.config.source)},_);await _()}finally{f(!1)}},[t,_,r]),T=(0,y.useCallback)(async(e,t)=>{f(!0);try{let n=e.brand,r=e.selector;if(n===`gemini`&&r.brand===`gemini`){let n=e.raw,i=t?vx(n.excludedModels):yx(n.excludedModels);await Yv.updateGeminiKey(r.apiKey,r.baseUrl,{...n,excludedModels:i})}else if(n===`interactions`&&r.brand===`interactions`){let n=e.raw,i=t?vx(n.excludedModels):yx(n.excludedModels);await Yv.updateInteractionsKey(r.apiKey,r.baseUrl,{...n,excludedModels:i})}else if(n===`codex`&&r.brand===`codex`||n===`meta`&&r.brand===`meta`||n===`xai`&&r.brand===`xai`||n===`claude`&&r.brand===`claude`||n===`vertex`&&r.brand===`vertex`){let n=e.raw,i=t?vx(n.excludedModels):yx(n.excludedModels),a={...n,excludedModels:i};r.brand===`codex`?await Yv.updateCodexConfig(r.apiKey,r.baseUrl,a):r.brand===`meta`?await Yv.updateMetaConfig(r.apiKey,r.baseUrl,a):r.brand===`xai`?await Yv.updateXAIConfig(r.apiKey,r.baseUrl,a):r.brand===`claude`?await Yv.updateClaudeConfig(r.apiKey,r.baseUrl,a):r.brand===`vertex`&&await Yv.updateVertexConfig(r.apiKey,r.baseUrl,a)}else n===`openaiCompatibility`&&r.brand===`openaiCompatibility`?await Yv.updateOpenAIProviderDisabled(r.index,t,e.raw.source):(n===`apikeyFun`||n===`fennoAI`||n===`qiniuCloud`||n===`kimi`)&&await yw(()=>lD(e.raw,t),_);await _()}finally{f(!1)}},[_]);return{connected:g,isPending:a,isFetching:s,isError:!!l,errorMessage:l,snapshot:b,refetch:_,createProvider:S,updateProvider:C,deleteProvider:w,toggleDisabled:T,mutating:d,refreshSnapshot:v}}var fD=[`name`,`priority`,`recent-success`],pD=[`asc`,`desc`],mD=`providersPage.uiState`,hD=`gemini`,gD={filter:``,sortBy:`name`,sortDir:`asc`,selectedModels:[]},_D=new Set(Tw),vD=new Set(fD),yD=new Set(pD),bD=e=>typeof e==`string`&&_D.has(e),xD=e=>typeof e==`string`&&vD.has(e),SD=e=>typeof e==`string`&&yD.has(e),CD=e=>{if(!Array.isArray(e))return[];let t=new Set;return e.forEach(e=>{if(typeof e!=`string`)return;let n=e.trim();n&&t.add(n)}),Array.from(t)},wD=e=>Dc(e)?{filter:typeof e.filter==`string`?e.filter:``,sortBy:xD(e.sortBy)?e.sortBy:`name`,sortDir:SD(e.sortDir)?e.sortDir:`asc`,selectedModels:CD(e.selectedModels)}:{...gD},TD=()=>({activeBrand:hD,filtersByBrand:{}}),ED=(e,t)=>e.filtersByBrand[t]??gD,DD=()=>{if(typeof window>`u`)return TD();try{let e=window.localStorage.getItem(mD);if(!e)return TD();let t=JSON.parse(e);if(!Dc(t))return TD();let n=Dc(t.filtersByBrand)?t.filtersByBrand:{},r={};return Tw.forEach(e=>{let t=n[e];t!==void 0&&(r[e]=wD(t))}),{activeBrand:bD(t.activeBrand)?t.activeBrand:hD,filtersByBrand:r}}catch{return TD()}},OD=e=>{if(!(typeof window>`u`))try{window.localStorage.setItem(mD,JSON.stringify(e))}catch{}},kD={page:`ProvidersWorkbenchPage-module__page___b5s-a`,layout:`ProvidersWorkbenchPage-module__layout___MCNil`,layoutSingle:`ProvidersWorkbenchPage-module__layoutSingle___xRaf-`,modelCatalogSlot:`ProvidersWorkbenchPage-module__modelCatalogSlot___bAD6H`},AD=(e,t)=>{try{let n=new Date(e);return Number.isNaN(n.getTime())?e:new Intl.DateTimeFormat(t,{dateStyle:`medium`,timeStyle:`short`}).format(n)}catch{return e}},jD=(e,t)=>!t||[e.identifier,e.name,e.authIndex,e.apiKeyPreview,e.apiKey,e.baseUrl,e.proxyUrl,e.prefix].filter(Boolean).map(e=>String(e).toLowerCase()).some(e=>e.includes(t)),MD=e=>(e.name??e.identifier??e.apiKeyPreview??``).toLowerCase(),ND=(e,t)=>WC(e.brand)?0:e.brand===`openaiCompatibility`?Rx(e.raw,t).success:Ix(t,kx(e.brand),e.apiKey??void 0,e.baseUrl??void 0).success;function PD({fixedBrand:e}={}){let{t,i18n:n}=B(),r=Im(e=>e.connectionStatus),{showNotification:i,showConfirmation:a}=Jc(),o=Bh(),s=!o||o.status===`current`,c=dD(),[l,u]=(0,y.useState)(DD),[d,f]=(0,y.useState)({open:!1,brand:`gemini`,mode:`detail`,resource:null}),p=(0,y.useRef)(null),{usageByProvider:m,refreshRecentRequests:h}=gb({enabled:r===`connected`}),g=(0,y.useCallback)(async()=>{await Promise.allSettled([c.refetch(),h().catch(()=>void 0)])},[h,c]);cg(g,s);let _=r!==`connected`||c.mutating||c.isFetching||c.isError,v=(0,y.useCallback)(e=>{u(t=>{let n=e(t);return OD(n),n})},[]),b=(0,y.useCallback)(e=>{v(t=>t.activeBrand===e?t:{...t,activeBrand:e})},[v]),x=(0,y.useMemo)(()=>c.snapshot?.groups??[],[c.snapshot]),S=(0,y.useMemo)(()=>e?x.filter(t=>t.id===e):x.filter(e=>e.id!==`apikeyFun`),[x,e]),C=S[0]?.id??e??`gemini`,w=e??(S.some(e=>e.id===l.activeBrand)?l.activeBrand:C),T=ED(l,w),E=T.filter,D=T.sortBy,O=T.sortDir,k=S.find(e=>e.id===w)??S[0]??null,A=(0,y.useCallback)(e=>{v(t=>{let n=ED(t,w);return{...t,filtersByBrand:{...t.filtersByBrand,[w]:{...n,...e}}}})},[w,v]),j=(0,y.useMemo)(()=>{if(!k)return[];let e=E.trim().toLowerCase();return k.resources.filter(t=>jD(t,e))},[k,E]),M=(0,y.useMemo)(()=>{if(!k)return[];let e=new Set;return k.resources.forEach(t=>{t.models.forEach(t=>e.add(t))}),Array.from(e).sort()},[k]),N=(0,y.useMemo)(()=>{if(M.length===0)return new Set;let e=new Set(M);return new Set(T.selectedModels.filter(t=>e.has(t)))},[T.selectedModels,M]),ee=(0,y.useMemo)(()=>{let e=j;return N.size>0&&(e=e.filter(e=>e.models.some(e=>N.has(e)))),[...e].sort((e,t)=>{let n=(D===`name`?MD(e).localeCompare(MD(t)):D===`priority`?e.priority-t.priority:ND(e,m)-ND(t,m))||e.originalIndex-t.originalIndex;return O===`asc`?n:-n})},[j,D,O,N,m]),P=(0,y.useMemo)(()=>{if(k)return{sortBy:D,sortDir:O,onSortBy:e=>A({sortBy:e}),onSortDir:e=>A({sortDir:e}),availableModels:M,selectedModels:N,onSelectedModelsChange:e=>A({selectedModels:Array.from(e).sort((e,t)=>e.localeCompare(t))})}},[k,M,D,O,N,A]),F=(0,y.useMemo)(()=>S.reduce((e,t)=>e+t.resources.length,0),[S]),I=(0,y.useMemo)(()=>S.reduce((e,t)=>e+t.resources.filter(e=>!e.disabled).length,0),[S]),L=(0,y.useMemo)(()=>S.filter(e=>e.resources.length>0).length,[S]),R=(0,y.useMemo)(()=>e===`apikeyFun`&&k?k.resources[0]??null:null,[k,e]),te=c.snapshot?AD(c.snapshot.fetchedAt,n.language):t(`providersPage.modelCatalog.notLoaded`),ne=e===`apikeyFun`?R?MS:t(`nav.quick_start`):void 0,re=c.errorMessage?(0,V.jsx)(`div`,{className:`error-box`,children:c.errorMessage}):null,z=(0,y.useCallback)(()=>{f({open:!0,brand:w,mode:`create`,resource:null})},[w]),ie=(0,y.useCallback)(e=>{f({open:!0,brand:e.brand,mode:`detail`,resource:e})},[]),ae=(0,y.useCallback)(e=>{f({open:!0,brand:e.brand,mode:`edit`,resource:e})},[]),oe=(0,y.useCallback)(()=>{f(e=>({...e,open:!1}))},[]),se=(0,y.useCallback)(e=>{let n=e.name??e.apiKeyPreview??e.identifier??``;a({title:t(`providersPage.delete.title`),message:t(`providersPage.delete.confirm`,{name:n}),variant:`danger`,confirmText:t(`providersPage.actions.delete`),onConfirm:async()=>{try{await c.deleteProvider(e),i(t(`providersPage.toast.deleted`),`success`)}catch(e){if(vw(e)){i(t(`providersPage.sponsor.partialMutationWarning`),`warning`);return}let n=e instanceof Error?e.message:String(e);i(`${t(`notification.delete_failed`)}: ${n}`,`error`)}}})},[a,i,t,c]),ce=(0,y.useCallback)(async(e,n)=>{try{await c.toggleDisabled(e,n),i(t(n?`providersPage.toast.disabled`:`providersPage.toast.enabled`),`success`)}catch(e){if(vw(e)){i(t(`providersPage.sponsor.partialMutationWarning`),`warning`);return}let n=e instanceof Error?e.message:String(e);i(`${t(`providersPage.toast.toggleFailed`)}: ${n}`,`error`)}},[i,t,c]),le=(0,y.useCallback)(()=>{i(t(`providersPage.toast.created`),`success`),oe()},[oe,i,t]),ue=(0,y.useCallback)(()=>{i(t(`providersPage.toast.updated`),`success`),oe()},[oe,i,t]);return!c.snapshot&&c.isPending?(0,V.jsxs)(`div`,{className:kD.page,children:[(0,V.jsx)(px,{height:120}),(0,V.jsxs)(`div`,{className:kD.layout,children:[(0,V.jsx)(px,{height:420}),(0,V.jsx)(px,{height:420})]})]}):k?(0,V.jsxs)(`div`,{className:kD.page,children:[(0,V.jsx)(Hx,{title:ne,totalActive:I,totalResources:F,providerFamilies:L,updatedAtLabel:te,isFetching:c.isFetching,isNewDisabled:_,showNewAction:!e,showSummary:e!==`apikeyFun`,newLabel:t(`providersPage.actions.new`),variant:e===`apikeyFun`?`quickStart`:void 0,onRefresh:()=>void g(),onNew:z}),re,(0,V.jsxs)(`div`,{className:`${kD.layout} ${e?kD.layoutSingle:``}`.trim(),children:[e?null:(0,V.jsx)(lS,{groups:S,activeBrand:k.id,onSelect:e=>{let t=d.open&&d.brand!==e;(t&&p.current?p.current.confirmDiscardIfDirty():Promise.resolve(!0)).then(n=>{n&&(b(e),t&&oe())})}}),e===`apikeyFun`?(0,V.jsx)(PT,{resource:R,workbench:c,mutationDisabled:_}):(0,V.jsx)(hw,{group:k,filter:E,onFilterChange:e=>A({filter:e}),filteredResources:ee,selectedId:d.open?d.resource?.id??null:null,disableMutations:_,usageByProvider:m,toolbarControls:P,onView:ie,onEdit:ae,onDelete:se,onToggleDisabled:ce,onCreate:z})]}),e?null:(0,V.jsx)(ME,{ref:p,state:d,onClose:oe,onSwitchToEdit:()=>{f(e=>e.resource?{...e,mode:`edit`}:e)},workbench:c,onCreated:le,onUpdated:ue,mutationDisabled:_,usageByProvider:m})]}):(0,V.jsxs)(`div`,{className:kD.page,children:[(0,V.jsx)(Hx,{title:ne,totalActive:0,totalResources:0,providerFamilies:0,updatedAtLabel:te,isFetching:c.isFetching,onRefresh:()=>void g(),onNew:()=>{},isNewDisabled:!0,showNewAction:!e,showSummary:e!==`apikeyFun`}),re]})}function FD({title:e,description:t,action:n}){return(0,V.jsxs)(`div`,{className:`empty-state`,children:[(0,V.jsxs)(`div`,{className:`empty-content`,children:[(0,V.jsx)(`div`,{className:`empty-icon`,"aria-hidden":`true`,children:(0,V.jsx)(Gs,{size:20})}),(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`div`,{className:`empty-title`,children:e}),t&&(0,V.jsx)(`div`,{className:`empty-desc`,children:t})]})]}),n&&(0,V.jsx)(`div`,{className:`empty-action`,children:n})]})}async function ID(e){try{if(typeof navigator<`u`&&navigator.clipboard?.writeText)return await navigator.clipboard.writeText(e),!0}catch{}try{if(typeof document>`u`||!document.body)return!1;let t=document.activeElement,n=document.createElement(`textarea`);n.value=e,n.setAttribute(`readonly`,``),n.style.position=`fixed`,n.style.opacity=`0`,n.style.pointerEvents=`none`,n.style.left=`-9999px`,n.style.top=`0`,n.style.width=`1px`,n.style.height=`1px`,n.style.padding=`0`,n.style.border=`0`,document.body.appendChild(n),n.focus(),n.select(),n.setSelectionRange(0,n.value.length);let r=document.execCommand(`copy`);if(document.body.removeChild(n),t?.focus)try{t.focus()}catch{}return r}catch{return!1}}var LD=`data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='UTF-8'?%3e%3c!--%20Generator:%20visioncortex%20VTracer%200.6.4%20--%3e%3csvg%20version='1.1'%20xmlns='http://www.w3.org/2000/svg'%20width='64'%20height='59'%3e%3cpath%20d='M0,0%20L8,0%20L14,4%20L19,14%20L27,40%20L32,50%20L36,54%20L35,59%20L30,59%20L22,52%20L11,35%20L6,33%20L-1,34%20L-6,39%20L-14,52%20L-22,59%20L-28,59%20L-27,53%20L-22,47%20L-17,34%20L-10,12%20L-5,3%20Z%20'%20fill='%233789F9'%20transform='translate(28,0)'/%3e%3cpath%20d='M0,0%20L8,0%20L14,4%20L19,14%20L25,35%20L21,34%20L16,29%20L11,26%20L7,20%20L7,18%20L2,16%20L-3,15%20L-8,18%20L-12,19%20L-9,9%20L-4,2%20Z%20'%20fill='%236D80D8'%20transform='translate(28,0)'/%3e%3cpath%20d='M0,0%20L8,0%20L14,4%20L19,14%20L20,19%20L13,15%20L10,12%20L3,10%20L-1,8%20L-7,7%20L-4,2%20Z%20'%20fill='%23D78240'%20transform='translate(28,0)'/%3e%3cpath%20d='M0,0%20L5,1%20L10,4%20L12,9%20L1,8%20L-5,13%20L-10,21%20L-13,26%20L-16,26%20L-9,5%20L-4,2%20Z%20M6,7%20Z%20'%20fill='%233294CC'%20transform='translate(25,14)'/%3e%3cpath%20d='M0,0%20L5,2%20L10,10%20L12,18%20L5,14%20L1,10%20L0,4%20L-3,3%20L0,2%20Z%20'%20fill='%23E45C49'%20transform='translate(36,1)'/%3e%3cpath%20d='M0,0%20L9,1%20L12,3%20L12,5%20L7,6%20L4,8%20L-1,11%20L-5,12%20L-2,2%20Z%20'%20fill='%2390AE64'%20transform='translate(21,7)'/%3e%3cpath%20d='M0,0%20L5,1%20L5,4%20L-2,7%20L-7,11%20L-11,10%20L-9,5%20L-4,2%20Z%20'%20fill='%2353A89A'%20transform='translate(25,14)'/%3e%3cpath%20d='M0,0%20L5,0%20L16,9%20L17,13%20L12,12%20L8,9%20L8,7%20L4,5%20L0,2%20Z%20'%20fill='%23B5677D'%20transform='translate(33,11)'/%3e%3cpath%20d='M0,0%20L6,0%20L14,6%20L19,11%20L23,12%20L22,15%20L15,12%20L10,8%20L10,6%20L4,5%20Z%20'%20fill='%23778998'%20transform='translate(27,12)'/%3e%3cpath%20d='M0,0%20L4,2%20L-11,17%20L-12,14%20L-5,4%20Z%20'%20fill='%233390DF'%20transform='translate(26,21)'/%3e%3cpath%20d='M0,0%20L2,1%20L-4,5%20L-9,9%20L-13,13%20L-14,10%20L-13,7%20L-6,4%20L-3,1%20Z%20'%20fill='%233FA1B7'%20transform='translate(27,18)'/%3e%3cpath%20d='M0,0%20L4,0%20L9,5%20L13,6%20L12,9%20L5,6%20L0,2%20Z%20'%20fill='%238277BB'%20transform='translate(37,18)'/%3e%3cpath%20d='M0,0%20L5,1%20L7,6%20L-2,5%20Z%20M1,4%20Z%20'%20fill='%234989CF'%20transform='translate(30,17)'/%3e%3cpath%20d='M0,0%20L5,1%20L2,3%20L-3,6%20L-7,7%20L-6,3%20Z%20'%20fill='%2371B774'%20transform='translate(23,12)'/%3e%3cpath%20d='M0,0%20L7,1%20L9,7%20L5,6%20L0,1%20Z%20'%20fill='%236687E9'%20transform='translate(44,28)'/%3e%3cpath%20d='M0,0%20L7,0%20L5,1%20L5,3%20L8,4%20L4,5%20L-2,4%20Z%20'%20fill='%23C7AF38'%20transform='translate(23,3)'/%3e%3cpath%20d='M0,0%20L8,0%20L8,3%20L4,4%20L-4,3%20Z%20'%20fill='%23EF842A'%20transform='translate(28,0)'/%3e%3cpath%20d='M0,0%20L7,4%20L7,6%20L10,6%20L11,10%20L4,6%20L0,2%20Z%20'%20fill='%23CD5D67'%20transform='translate(37,9)'/%3e%3cpath%20d='M0,0%20L5,2%20L9,8%20L8,11%20L2,3%20L0,2%20Z%20'%20fill='%23F35241'%20transform='translate(36,1)'/%3e%3cpath%20d='M0,0%20L8,2%20L9,6%20L4,5%20L0,2%20Z%20'%20fill='%23A667A2'%20transform='translate(41,18)'/%3e%3cpath%20d='M0,0%20L9,1%20L8,3%20L-2,3%20Z%20'%20fill='%23A4B34C'%20transform='translate(21,7)'/%3e%3cpath%20d='M0,0%20L2,0%20L7,5%20L8,7%20L3,6%20L0,2%20Z%20'%20fill='%23617FCF'%20transform='translate(35,18)'/%3e%3cpath%20d='M0,0%20L5,2%20L8,7%20L4,5%20L0,2%20Z%20'%20fill='%239D7784'%20transform='translate(33,11)'/%3e%3cpath%20d='M0,0%20L6,2%20L6,4%20L0,3%20Z%20'%20fill='%23BC7F59'%20transform='translate(31,7)'/%3e%3c/svg%3e`,RD=`data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20fill='none'%20version='1.1'%20width='32'%20height='32'%20viewBox='0%200%2032%2032'%3e%3cdefs%3e%3cfilter%20id='master_svg0_278_51503'%20filterUnits='objectBoundingBox'%20color-interpolation-filters='sRGB'%20x='0'%20y='0'%20width='1'%20height='1'%3e%3cfeFlood%20flood-opacity='0'%20result='BackgroundImageFix'/%3e%3cfeBlend%20mode='normal'%20in='SourceGraphic'%20in2='BackgroundImageFix'%20result='shape'/%3e%3cfeGaussianBlur%20in='BackgroundImageFix'%20stdDeviation='1.3333334922790527'/%3e%3cfeComposite%20in2='SourceAlpha'%20operator='in'%20result='effect1_foregroundBlur'/%3e%3cfeBlend%20mode='normal'%20in='SourceGraphic'%20in2='effect1_foregroundBlur'%20result='shape'/%3e%3c/filter%3e%3clinearGradient%20x1='0.07353696972131729'%20y1='0.12899449467658997'%20x2='0.9907095821060244'%20y2='0.9383787344260006'%20id='master_svg1_93_40276'%3e%3cstop%20offset='0%25'%20stop-color='%235C5CFF'%20stop-opacity='1'/%3e%3cstop%20offset='100%25'%20stop-color='%23AE5CFF'%20stop-opacity='1'/%3e%3c/linearGradient%3e%3c/defs%3e%3cg%3e%3cg%20filter='url(%23master_svg0_278_51503)'%3e%3crect%20x='0'%20y='0'%20width='32'%20height='32'%20rx='16'%20fill='%23F0F2F5'%20fill-opacity='0'/%3e%3c/g%3e%3cg%3e%3cg%3e%3cpath%20d='M31.843111328125,14.751C31.315411328125,7.18121,25.497411328125,1.04691,17.966011328125,0.119698C10.434711328125,-0.807512,3.302541328125,3.73244,0.954596328125,10.9482C0.345662328125,12.8248,1.732821328125,14.751,3.705641328125,14.751C4.950051328125,14.7517,6.055631328125,13.9569,6.451401328125,12.7772C7.497331328125,9.65101,10.504411328125,3.91401,18.482011328125,3.91401Q29.445911328125,3.91401,31.843111328125,14.751ZM9.127681328125,17.3314L9.127681328125,13.0862Q9.127681328125,13.0022,9.144081328125,12.9198Q9.160481328125,12.8373,9.192641328125,12.7597Q9.224801328125,12.682,9.271501328125,12.6122Q9.318191328125,12.5423,9.377621328125,12.4828Q9.437051328125,12.4234,9.506931328125,12.3767Q9.576811328125,12.33,9.654461328125,12.2979Q9.732111328125,12.2657,9.814541328125,12.2493Q9.896971328125,12.2329,9.981021328125,12.2329L11.049211328125,12.2329Q11.133211328125,12.2329,11.215711328125,12.2493Q11.298111328125,12.2657,11.375811328125,12.2979Q11.453411328125,12.33,11.523311328125,12.3767Q11.593211328125,12.4234,11.652611328125,12.4828Q11.712011328125,12.5423,11.758711328125,12.6122Q11.805411328125,12.682,11.837611328125,12.7597Q11.869711328125,12.8373,11.886111328125,12.9198Q11.902511328125,13.0022,11.902511328125,13.0862L11.902511328125,17.3314Q11.902511328125,17.4154,11.886111328125,17.4978Q11.869711328125,17.5803,11.837611328125,17.6579Q11.805411328125,17.7356,11.758711328125,17.8055Q11.712011328125,17.8753,11.652611328125,17.9348Q11.593211328125,17.9942,11.523311328125,18.0409Q11.453411328125,18.0876,11.375811328125,18.1197Q11.298111328125,18.1519,11.215711328125,18.1683Q11.133211328125,18.1847,11.049211328125,18.1847L9.981021328125,18.1847Q9.896971328125,18.1847,9.814541328125,18.1683Q9.732111328125,18.1519,9.654461328125,18.1197Q9.576811328125,18.0876,9.506931328125,18.0409Q9.437051328125,17.9942,9.377621328125,17.9348Q9.318191328125,17.8753,9.271501328125,17.8055Q9.224801328125,17.7356,9.192641328125,17.6579Q9.160481328125,17.5803,9.144081328125,17.4978Q9.127681328125,17.4154,9.127681328125,17.3314ZM17.273611328125,17.3295C17.272611328125,17.8015,17.654911328125,18.1847,18.126911328125,18.1847L19.408411328125,18.1847C19.879011328125,18.1847,20.260711328125,17.8038,20.261811328125,17.3332L20.266411328125,15.2107L20.266411328125,15.2069L20.261811328125,13.0844C20.260711328125,12.6138,19.879011328125,12.2329,19.408411328125,12.2329L18.126911328125,12.2329C17.654911328125,12.2329,17.272611328125,12.6161,17.273611328125,13.0881L17.278211328125,15.2069L17.278211328125,15.2107L17.273611328125,17.3295ZM13.574711328125,28.0523C21.552211328125,28.0523,24.559311328125,22.3153,25.605811328125,19.1897C26.001411328125,18.0098,27.107111328125,17.215,28.351511328125,17.2158C30.323811328125,17.2158,31.711511328125,19.1416,31.102611328125,21.0181C30.552411328125,22.7189,29.716211328125,24.3134,28.629811328125,25.733L30.137611328125,30.2235L24.775211328125,29.3432C14.645911328125,36.0484,1.048779328125,29.3346,0.214111328125,17.2158Q2.611231328125,28.0523,13.574711328125,28.0523Z'%20fill-rule='evenodd'%20fill='url(%23master_svg1_93_40276)'%20fill-opacity='1'/%3e%3c/g%3e%3c/g%3e%3c/g%3e%3c/svg%3e`,zD=`data:image/svg+xml,%3csvg%20height='1em'%20style='flex:none;line-height:1'%20viewBox='0%200%2024%2024'%20width='1em'%20xmlns='http://www.w3.org/2000/svg'%3e%3ctitle%3eQwen%3c/title%3e%3cpath%20d='M12.604%201.34c.393.69.784%201.382%201.174%202.075a.18.18%200%2000.157.091h5.552c.174%200%20.322.11.446.327l1.454%202.57c.19.337.24.478.024.837-.26.43-.513.864-.76%201.3l-.367.658c-.106.196-.223.28-.04.512l2.652%204.637c.172.301.111.494-.043.77-.437.785-.882%201.564-1.335%202.34-.159.272-.352.375-.68.37-.777-.016-1.552-.01-2.327.016a.099.099%200%2000-.081.05%20575.097%20575.097%200%2001-2.705%204.74c-.169.293-.38.363-.725.364-.997.003-2.002.004-3.017.002a.537.537%200%2001-.465-.271l-1.335-2.323a.09.09%200%2000-.083-.049H4.982c-.285.03-.553-.001-.805-.092l-1.603-2.77a.543.543%200%2001-.002-.54l1.207-2.12a.198.198%200%20000-.197%20550.951%20550.951%200%2001-1.875-3.272l-.79-1.395c-.16-.31-.173-.496.095-.965.465-.813.927-1.625%201.387-2.436.132-.234.304-.334.584-.335a338.3%20338.3%200%20012.589-.001.124.124%200%2000.107-.063l2.806-4.895a.488.488%200%2001.422-.246c.524-.001%201.053%200%201.583-.006L11.704%201c.341-.003.724.032.9.34zm-3.432.403a.06.06%200%2000-.052.03L6.254%206.788a.157.157%200%2001-.135.078H3.253c-.056%200-.07.025-.041.074l5.81%2010.156c.025.042.013.062-.034.063l-2.795.015a.218.218%200%2000-.2.116l-1.32%202.31c-.044.078-.021.118.068.118l5.716.008c.046%200%20.08.02.104.061l1.403%202.454c.046.081.092.082.139%200l5.006-8.76.783-1.382a.055.055%200%2001.096%200l1.424%202.53a.122.122%200%2000.107.062l2.763-.02a.04.04%200%2000.035-.02.041.041%200%20000-.04l-2.9-5.086a.108.108%200%20010-.113l.293-.507%201.12-1.977c.024-.041.012-.062-.035-.062H9.2c-.059%200-.073-.026-.043-.077l1.434-2.505a.107.107%200%20000-.114L9.225%201.774a.06.06%200%2000-.053-.031zm6.29%208.02c.046%200%20.058.02.034.06l-.832%201.465-2.613%204.585a.056.056%200%2001-.05.029.058.058%200%2001-.05-.029L8.498%209.841c-.02-.034-.01-.052.028-.054l.216-.012%206.722-.012z'%20fill='url(%23lobe-icons-qwen-fill)'%20fill-rule='nonzero'%3e%3c/path%3e%3cdefs%3e%3clinearGradient%20id='lobe-icons-qwen-fill'%20x1='0%25'%20x2='100%25'%20y1='0%25'%20y2='0%25'%3e%3cstop%20offset='0%25'%20stop-color='%236336E7'%20stop-opacity='.84'%3e%3c/stop%3e%3cstop%20offset='100%25'%20stop-color='%236F69F7'%20stop-opacity='.84'%3e%3c/stop%3e%3c/linearGradient%3e%3c/defs%3e%3c/svg%3e`,BD=new Set([`meta`,`antigravity`,`claude`,`codex`,`devin`,`kimi`,`xai`]),VD=[`meta`,`vertex`,`aistudio`,`antigravity`,`xai`,`claude`,`codex`,`devin`,`kimi`],HD=new Set([`all`,`unknown`,`empty`]),UD=/^[+-]?\d+$/,WD=new Set([`true`,`1`,`yes`,`y`,`on`]),GD=new Set([`false`,`0`,`no`,`n`,`off`]),KD=new Set([`codex`,`xai`]),qD=new Set([`xai`]),JD=new Set([`meta`,`antigravity`,`claude`,`codex`,`kimi`,`xai`]),YD={antigravity:LD,aistudio:Jx,claude:Ux,codex:Wx,meta:Gx,devin:{light:Kx,dark:qx},gemini:Jx,xai:{light:tS,dark:nS},iflow:RD,kimi:{light:iS,dark:rS},qwen:zD,vertex:Zx},XD=e=>Math.min(30,Math.max(3,Math.round(e))),ZD=Qv,QD=e=>JD.has(ZD(String(e??``))),$D=e=>{let t=new Set;Array.from(e).forEach(e=>{let n=ZD(String(e??``));!n||HD.has(n)||t.add(n)});let n=new Set(VD.map(e=>ZD(e))),r=Array.from(t).filter(e=>!n.has(e)).sort((e,t)=>e.localeCompare(t));return[...VD,...r]},eO=e=>{let t=e.status_message??e.statusMessage;return typeof t==`string`?t.trim():t==null?``:String(t).trim()},tO=new Set([`ok`,`healthy`,`ready`,`success`,`available`]),nO=e=>{let t=eO(e);return!!t&&!tO.has(t.toLowerCase())},rO=e=>{let t=typeof e.status==`string`?e.status.trim().toLowerCase():``;return e.disabled===!0||t===`disabled`?!1:e.unavailable===!0||t===`error`||nO(e)},iO=(e,t)=>{let n=ZD(t),r=`auth_files.filter_${n}`,i=e(r);return i===r?n===`iflow`?`iFlow`:t.charAt(0).toUpperCase()+t.slice(1):i},aO=(e,t)=>{let n=bg[ZD(e)]||bg.unknown;return t===`dark`&&n.dark?n.dark:n.light},oO=(e,t)=>{let n=YD[ZD(e)];return n?typeof n==`string`?n:t===`dark`?n.dark:n.light:null},sO=new Set([`kimi`]),cO=e=>sO.has(ZD(e)),lO=e=>e===`dark`?`#ffffff`:`#000000`,uO=e=>{if(typeof e==`number`)return Number.isInteger(e)?e:void 0;if(typeof e!=`string`)return;let t=e.trim();if(!t||!UD.test(t))return;let n=Number.parseInt(t,10);return Number.isSafeInteger(n)?n:void 0},dO=e=>{if(typeof e==`boolean`)return e;if(typeof e==`number`&&Number.isFinite(e))return e!==0;if(typeof e!=`string`)return;let t=e.trim().toLowerCase();if(t){if(WD.has(t))return!0;if(GD.has(t))return!1}},fO=e=>{let t=dO(e.disable_cooling);return t===void 0?dO(e[`disable-cooling`])??!1:t},pO=e=>KD.has(ZD(e)),mO=e=>dO(e.websockets??e.websocket)??!1,hO=(e,t)=>{let n={...e};return delete n.websocket,n.websockets=t,n},gO=e=>qD.has(ZD(e)),_O=e=>dO(e.using_api)??!1,vO=(e,t)=>({...e,using_api:t});function yO(e){let t=e.runtime_only??e.runtimeOnly;return typeof t==`boolean`?t:typeof t==`string`&&t.trim().toLowerCase()===`true`}var bO=e=>{let t=e.modtime??e.modified;if(!t)return`-`;let n=Number(t),r=Number.isFinite(n)&&!Number.isNaN(n)?new Date(n<0xe8d4a51000?n*1e3:n):ug(t)??new Date(String(t));return Number.isNaN(r.getTime())?`-`:r.toLocaleString()},xO=(e,t,n)=>(n[ZD(t)]||n[t]||[]).some(t=>{if(t.includes(`*`)){let n=t.split(`*`).map(e=>e.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`)).join(`.*`);return RegExp(`^${n}$`,`i`).test(e)}return t.toLowerCase()===e.toLowerCase()}),SO=e=>JSON.stringify([e.name,String(e.authIndex??``).trim()]);function CO({size:e=20,className:t=``}){return(0,V.jsx)(`div`,{className:`loading-spinner${t?` ${t}`:``}`,style:{width:e,height:e,borderWidth:e/7},role:`status`,"aria-live":`polite`})}var wO=e=>typeof e==`string`?e.trim():``,TO=e=>{let t=e.trim();return t.length<=5?t:t.toLowerCase().endsWith(`.json`)?t.slice(0,-5):t},EO=e=>{let t=wO(e.name),n=TO(t),r=wO(e.email),i=wO(e.projectId),a=r?`email`:i?`projectId`:`fileName`,o=r||i||n;return{primary:o,kind:a,secondary:a===`fileName`||!n||n.toLowerCase()===o.toLowerCase()?null:n,fullName:t}},DO=e=>e.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`),OO=e=>{if(!e.includes(`*`))return null;let t=e.split(`*`).map(DO).join(`.*`);return new RegExp(t,`i`)},kO=(e,t)=>{if(!t)return null;let n=xm(e);return!BD.has(n)||t!==`all`&&n!==t?null:n},AO=(e,t,n)=>{if(!t)return!0;let r=t.toLowerCase();return[e.name,e.type,e.provider,e.email,e.projectId,eO(e)].some(e=>{let t=(e||``).toString();return n?n.test(t):t.toLowerCase().includes(r)})},jO=(e,t)=>{let n=[...e];if(t==="default")n.sort((e,t)=>{let n=ZD(String(e.provider??e.type??`unknown`)),r=ZD(String(t.provider??t.type??`unknown`)),i=n.localeCompare(r);return i===0?e.name.localeCompare(t.name):i});else if(t===`az`){let e=new Map(n.map(e=>[e,EO(e).primary]));n.sort((t,n)=>(e.get(t)??``).localeCompare(e.get(n)??``)||t.name.localeCompare(n.name))}else t===`priority`&&n.sort((e,t)=>{let n=typeof e.priority==`number`?e.priority:0;return(typeof t.priority==`number`?t.priority:0)-n});return n},MO=`quotaRow.quotaRowHeader.quotaModel.quotaMeta.quotaPercent.quotaReset.quotaResetRelative.quotaResetRelativeSoon.quotaAmount.quotaMessage.codexPlan.codexPlanItem.codexPlanLabel.codexPlanValue.premiumPlanValue.elitePlanValue.codexResetCredits.codexResetCreditsTitle.codexResetCreditRow.codexResetCreditRowSoon.codexResetCreditLabel.codexResetCreditTime.codexResetCreditsError.antigravityQuotaGroup.antigravityQuotaGroupHeader.antigravityQuotaGroupTitle.antigravityQuotaGroupDescription.quotaBar.quotaBarFill.quotaBarFillHigh.quotaBarFillMedium.quotaBarFillLow`.split(`.`);function NO(e,t){let n=MO.filter(t=>!e[t]);if(n.length>0)throw Error(`[quota] ${t} 缺少额度契约类名: ${n.join(`, `)}`);let r={};for(let t of MO)r[t]=e[t];return r}var PO=async e=>{let t=r_(e.project_id??e.projectId);if(t)return t;let n=e.metadata&&typeof e.metadata==`object`&&e.metadata!==null?e.metadata:null,r=n?r_(n.project_id??n.projectId):null;if(r)return r;let i=e.attributes&&typeof e.attributes==`object`&&e.attributes!==null?e.attributes:null,a=i?r_(i.project_id??i.projectId??i.gemini_virtual_project):null;if(a)return a;try{let t=(await jy.downloadText(e.name)).trim();if(!t)return``;let n=JSON.parse(t),r=r_(n.project_id??n.projectId);if(r)return r;let i=n.installed&&typeof n.installed==`object`&&n.installed!==null?n.installed:null,a=i?r_(i.project_id??i.projectId):null;if(a)return a;let o=n.web&&typeof n.web==`object`&&n.web!==null?n.web:null,s=o?r_(o.project_id??o.projectId):null;if(s)return s}catch{return``}return``},FO=e=>{if(!e)return null;let t=Object.entries(e).find(([e])=>e.toLowerCase()===`date`)?.[1]?.[0];if(!t)return null;let n=new Date(t).getTime();return Number.isNaN(n)?null:n-Date.now()},IO=e=>e?{plan:e.plan,tierName:e.tierName,tierId:e.tierId}:null,LO={type:`antigravity`,i18nPrefix:`antigravity_quota`,filterFn:e=>eee(e)&&!Em(e),fetchQuota:async(e,t)=>{let n=n_(e.auth_index??e.authIndex);if(!n)throw Error(t(`antigravity_quota.missing_auth_index`));let r=await PO(e);if(!r)throw Error(t(`antigravity_quota.missing_project_id`));let i=JSON.stringify({project:r}),a=gv.get(n).then(IO).catch(()=>null),o=``,s,c,l=!1;for(let e of xg)try{let r=await qp.request({authIndex:n,method:`POST`,url:e,header:{...Eg},data:i});if(r.statusCode<200||r.statusCode>=300){o=Kp(r),s=r.statusCode,(r.statusCode===403||r.statusCode===404)&&(c??(c=r.statusCode));continue}l=!0;let u=l_(r.body??r.bodyText);if(!u||!Array.isArray(u.groups)){o=t(`antigravity_quota.empty_models`);continue}let d=H_(u);if(d.length===0){o=t(`antigravity_quota.empty_models`);continue}return{groups:d,subscription:await a,serverTimeOffsetMs:FO(r.header)}}catch(e){o=e instanceof Error?e.message:t(`common.unknown_error`);let n=I_(e);n&&(s=n,(n===403||n===404)&&(c??(c=n)))}if(l)return{groups:[],subscription:await a,serverTimeOffsetMs:null};throw F_(o||t(`common.unknown_error`),c??s)},storeSelector:e=>e.antigravityQuota,storeSetter:`setAntigravityQuota`,buildLoadingState:()=>({status:`loading`,groups:[],subscription:null,serverTimeOffsetMs:null}),buildSuccessState:e=>({status:`success`,groups:e.groups,subscription:e.subscription,serverTimeOffsetMs:e.serverTimeOffsetMs}),buildErrorState:(e,t)=>({status:`error`,groups:[],subscription:null,serverTimeOffsetMs:null,error:e,errorStatus:t})};function RO({percent:e,classes:t,index:n}){let r=e===null?null:((e,t,n)=>Math.min(n,Math.max(t,e)))(e,0,100),i=r===null?t.quotaBarFillMedium:r>=70?t.quotaBarFillHigh:r>=30?t.quotaBarFillMedium:t.quotaBarFillLow,a={width:`${Math.round((r??0)*100)/100}%`};return n!==void 0&&(a[`--meter-index`]=n),(0,V.jsx)(`div`,{className:t.quotaBar,children:(0,V.jsx)(`div`,{className:`${t.quotaBarFill} ${i}`,style:a})})}function zO(e,t){return e.id||`${e.expiresAt}-${t}`}var BO=`xai:weekly`,VO=e=>typeof e==`number`&&Number.isFinite(e),HO=(e,t)=>e.map((e,n)=>VO(e.resetAtMs)?{rowId:e.id||`${t}-${n}`,atMs:e.resetAtMs,kind:`window`}:null).filter(e=>e!==null);function UO(e,t){let n=t;if(!n||n.status!==`success`)return[];if(e===`claude`||e===`codex`||e===`devin`){let n=HO(t.windows??[],`window`);if(e!==`codex`)return n;let r=(t.rateLimitResetCredits??[]).map((e,t)=>{if(e.status!==`available`)return null;let n=Xg(e.expiresAt);return n===null?null:{rowId:zO(e,t),atMs:n,kind:`credit`}}).filter(e=>e!==null);return[...n,...r]}if(e===`xai`){let e=t.billing;return!e||e.periodType!==`weekly`||!VO(e.resetAtMs)?[]:[{rowId:BO,atMs:e.resetAtMs,kind:`window`}]}return e===`antigravity`?HO((t.groups??[]).flatMap(e=>e.buckets??[]),`bucket`):e===`kimi`?HO(t.rows??[],`row`):e===`meta`?(t.data?.windows??[]).filter(e=>typeof e.usedPercent==`number`&&Number.isFinite(e.usedPercent)&&e.usedPercent>0&&VO(e.resetAt)).map(e=>({rowId:e.id,atMs:e.resetAt*1e3,kind:`window`})):[]}function WO(e,t){let n=null;for(let r of e)r.atMs<=t||(n===null||r.atMs<n.atMs||r.atMs===n.atMs&&r.rowId<n.rowId)&&(n=r);return n?.rowId??null}function GO(e,t){return WO(e.filter(e=>e.atMs-t>0&&e.atMs-t<36e5),t)}function KO(e,t,n){let r=null;for(let i of UO(e,t))i.atMs<=n||(r===null||i.atMs<r)&&(r=i.atMs);return r}var qO=6e4;function JO(e,t){let n=null;return e.forEach(e=>{if(!Number.isFinite(e))return;let r=e-t;if(r<=0)return;let i=r%qO,a=Math.max(1,Math.ceil(i===0?qO:i));n=n===null?a:Math.min(n,a)}),n}var YO=(e,t)=>{let n=Math.max(1,Math.ceil(t/6e4)),r=Math.floor(n/1440),i=Math.floor(n%1440/60),a=n%60;return r>0?e(`antigravity_quota.duration_day_hour`,{days:r,hours:i}):i>0?e(`antigravity_quota.duration_hour_minute`,{hours:i,minutes:a}):a>0?e(`antigravity_quota.duration_minute`,{minutes:a}):e(`antigravity_quota.duration_less_than_minute`)},XO=(e,t,n)=>{if(!e)return`-`;let r=new Date(e).getTime();if(Number.isNaN(r))return`-`;let i=r-n;return i<=0?t(`antigravity_quota.refresh_available`):t(`antigravity_quota.refreshes_in`,{duration:YO(t,i)})},ZO=new Map([[`gemini models`,`group_gemini_models`],[`claude and gpt models`,`group_claude_gpt_models`]]),QO=new Map([[`weekly limit`,`weekly_limit`],[`daily limit`,`daily_limit`],[`5 hour limit`,`five_hour_limit`],[`5-hour limit`,`five_hour_limit`],[`five hour limit`,`five_hour_limit`],[`monthly limit`,`monthly_limit`]]),$O=e=>e.trim().toLowerCase().replace(/\s+/g,` `),ek=(e,t,n)=>{let r=t.get($O(e));return r?n(`antigravity_quota.${r}`):e},tk=(e,t)=>{if(!e)return;let n=e.match(/^models within this group:\s*(.+)$/i);return n?t(`antigravity_quota.group_models_description`,{models:n[1].trim()}):e},nk=(e,t)=>e?e.plan===`free`?t(`antigravity_subscription.plan_free`):e.plan===`pro`?t(`antigravity_subscription.plan_pro`):e.plan===`ultra`?t(`antigravity_subscription.plan_ultra`):e.plan===`ultra-lite`?t(`antigravity_subscription.plan_ultra_lite`):e.tierName||e.tierId||(e.plan===`unknown`?t(`antigravity_subscription.plan_unknown`):null):null;function rk({quota:e,classes:t}){let{t:n}=B(),r=e.groups??[],i=nk(e.subscription,n),a=e.subscription?.plan?.toLowerCase()??``,o=a===`ultra`||a===`ultra-lite`,s=e.serverTimeOffsetMs??0,c=(0,y.useMemo)(()=>(e.groups??[]).flatMap(e=>e.buckets.map(e=>e.resetTime?new Date(e.resetTime).getTime():NaN).filter(Number.isFinite)),[e.groups]),[l,u]=(0,y.useState)(()=>Date.now()+s);(0,y.useEffect)(()=>{let e,t=()=>{let n=Date.now()+s;u(n);let r=JO(c,n);r!==null&&(e=setTimeout(t,r))};return t(),()=>{e!==void 0&&clearTimeout(e)}},[c,s]);let d=(0,y.useMemo)(()=>GO(UO(`antigravity`,e),l),[e,l]);return(0,V.jsxs)(V.Fragment,{children:[i&&(0,V.jsx)(`div`,{className:t.codexPlan,children:(0,V.jsxs)(`span`,{className:t.codexPlanItem,children:[(0,V.jsx)(`span`,{className:t.codexPlanLabel,children:n(`antigravity_quota.plan_label`)}),(0,V.jsx)(`span`,{className:o?t.premiumPlanValue:t.codexPlanValue,children:i})]})}),r.length===0?(0,V.jsx)(`div`,{className:t.quotaMessage,children:n(`antigravity_quota.empty_models`)}):r.map(e=>{let r=ek(e.label,ZO,n),i=tk(e.description,n);return(0,V.jsxs)(`div`,{className:t.antigravityQuotaGroup,children:[(0,V.jsxs)(`div`,{className:t.antigravityQuotaGroupHeader,children:[(0,V.jsx)(`span`,{className:t.antigravityQuotaGroupTitle,children:r}),i&&(0,V.jsx)(`span`,{className:t.antigravityQuotaGroupDescription,children:i})]}),e.buckets.map((e,r)=>{let i=Math.max(0,Math.min(1,e.remainingFraction))*100,a=e.remainingFraction===1?n(`antigravity_quota.quota_available`):n(`antigravity_quota.remaining_percent`,{percent:Math.round(i)}),o=XO(e.resetTime,n,l),s=ek(e.label,QO,n),c=tk(e.description,n),u=e.id===d;return(0,V.jsxs)(`div`,{className:t.quotaRow,children:[(0,V.jsxs)(`div`,{className:t.quotaRowHeader,children:[(0,V.jsx)(`span`,{className:t.quotaModel,title:c,children:s}),(0,V.jsxs)(`div`,{className:t.quotaMeta,children:[(0,V.jsx)(`span`,{className:t.quotaPercent,children:a}),(0,V.jsx)(`span`,{className:u?`${t.quotaReset} ${t.quotaResetRelativeSoon}`:t.quotaReset,title:u?n(`quota_management.soonest_row_hint`):void 0,children:o})]})]}),(0,V.jsx)(RO,{percent:i,classes:t,index:r})]},e.id)})]},e.id)})]})}var ik=e=>{if(!Array.isArray(e.limits))return null;let t=e.limits.filter(e=>{let t=(r_(e?.kind)??``).trim().toLowerCase(),n=(r_(e?.scope?.model?.display_name)??``).trim().toLowerCase();return t===`weekly_scoped`&&(n===`fable`||n===`fable 5`)&&i_(e?.percent)!==null});return t.find(e=>e.is_active===!0)??t[0]??null},ak=(e,t)=>{let n=[],r=ik(e);for(let{key:i,id:a,labelKey:o}of Ag){if(i===`iguana_necktie`&&r)continue;let s=e[i];if(!s||typeof s!=`object`||!(`utilization`in s))continue;let c=s,l=i_(c.utilization),u=M_(c.resets_at??void 0);n.push({id:a,label:t(o),labelKey:o,usedPercent:l,resetLabel:u,resetAtMs:$g([c.resets_at]),periodHours:t_(i)})}if(r){let e=i_(r.percent);e!==null&&n.push({id:`seven-day-fable`,label:t(`claude_quota.seven_day_fable`),labelKey:`claude_quota.seven_day_fable`,usedPercent:e,resetLabel:M_(r.resets_at??void 0),resetAtMs:$g([r.resets_at]),periodHours:t_(`seven_day`)})}return n},ok=e=>{if(e!=null){if(typeof e==`boolean`)return e;if(typeof e==`number`)return e!==0;if(typeof e==`string`){let t=e.trim().toLowerCase();if([`true`,`1`,`yes`,`y`,`on`].includes(t))return!0;if([`false`,`0`,`no`,`n`,`off`].includes(t))return!1}}},sk=e=>{if(e==null)return null;if(typeof e==`string`){let t=e.trim();if(!t)return null;try{return JSON.parse(t)}catch{return null}}return typeof e==`object`?e:null},ck=e=>{if(!e)return null;let t=r_(e.organization?.organization_type)?.toLowerCase(),n=r_(e.organization?.subscription_status)?.toLowerCase();if(t===`claude_team`&&n===`active`)return`plan_team`;let r=ok(e.account?.has_claude_max);if(r)return`plan_max`;let i=ok(e.account?.has_claude_pro);return i?`plan_pro`:r===!1&&i===!1?`plan_free`:null},lk={type:`claude`,i18nPrefix:`claude_quota`,filterFn:e=>tee(e)&&!Em(e),fetchQuota:async(e,t)=>{let n=n_(e.auth_index??e.authIndex);if(!n)throw Error(t(`claude_quota.missing_auth_index`));let[r,i]=await Promise.allSettled([qp.request({authIndex:n,method:`GET`,url:Og,header:{...kg}}),qp.request({authIndex:n,method:`GET`,url:Dg,header:{...kg}})]);if(r.status===`rejected`)throw r.reason;let a=r.value;if(a.statusCode<200||a.statusCode>=300)throw F_(Kp(a),a.statusCode);let o=u_(a.body??a.bodyText);if(!o)throw Error(t(`claude_quota.empty_windows`));let s=ak(o,t),c=i.status===`fulfilled`&&i.value.statusCode>=200&&i.value.statusCode<300?ck(sk(i.value.body??i.value.bodyText)):null;return{windows:s,extraUsage:o.extra_usage,planType:c}},storeSelector:e=>e.claudeQuota,storeSetter:`setClaudeQuota`,buildLoadingState:()=>({status:`loading`,windows:[]}),buildSuccessState:e=>({status:`success`,windows:e.windows,extraUsage:e.extraUsage,planType:e.planType}),buildErrorState:(e,t)=>({status:`error`,windows:[],error:e,errorStatus:t})};function uk(e={}){let{intervalMs:t=C_,now:n=Date.now,setTimer:r=(e,t)=>setInterval(e,t),clearTimer:i=e=>clearInterval(e)}=e,a=new Set,o=n(),s=null,c=()=>{o=n(),a.forEach(e=>e())};return{subscribe(e){return a.add(e),s===null&&(o=n(),s=r(c,t)),()=>{a.delete(e),a.size===0&&s!==null&&(i(s),s=null)}},getSnapshot(){return o},subscriberCount(){return a.size}}}var dk=uk(),fk=()=>()=>{},pk=Date.now(),mk=()=>pk;function hk(e=!0){return(0,y.useSyncExternalStore)(e?dk.subscribe:fk,e?dk.getSnapshot:mk,mk)}function gk({display:e,classes:t,soon:n=!1}){return(0,V.jsxs)(V.Fragment,{children:[(0,V.jsx)(`span`,{className:t.quotaReset,children:e.absolute}),e.relative&&(0,V.jsx)(`span`,{className:n?`${t.quotaResetRelative} ${t.quotaResetRelativeSoon}`:t.quotaResetRelative,children:e.relative})]})}function _k({quota:e,classes:t}){let{t:n,i18n:r}=B(),i=hk(),a=(0,y.useMemo)(()=>GO(UO(`claude`,e),i),[e,i]),o=e.windows??[],s=e.extraUsage??null,c=e.planType??null;return(0,V.jsxs)(V.Fragment,{children:[c&&(0,V.jsxs)(`div`,{className:t.codexPlan,children:[(0,V.jsx)(`span`,{className:t.codexPlanLabel,children:n(`claude_quota.plan_label`)}),(0,V.jsx)(`span`,{className:t.codexPlanValue,children:n(`claude_quota.${c}`)})]}),s&&s.is_enabled&&(0,V.jsxs)(`div`,{className:t.codexPlan,children:[(0,V.jsx)(`span`,{className:t.codexPlanLabel,children:n(`claude_quota.extra_usage_label`)}),(0,V.jsx)(`span`,{className:t.codexPlanValue,children:`$${(s.used_credits/100).toFixed(2)} / $${(s.monthly_limit/100).toFixed(2)}`})]}),o.length===0?(0,V.jsx)(`div`,{className:t.quotaMessage,children:n(`claude_quota.empty_windows`)}):o.map((e,o)=>{let s=e.usedPercent,c=s===null?null:Math.max(0,Math.min(100,s)),l=c===null?null:Math.max(0,Math.min(100,100-c)),u=l===null?`--`:`${Math.round(l)}%`,d=e.labelKey?n(e.labelKey):e.label,f=j_(e.resetLabel,e.resetAtMs,i,r.resolvedLanguage),p=e.id===a;return(0,V.jsxs)(`div`,{className:t.quotaRow,title:p?n(`quota_management.soonest_row_hint`):void 0,children:[(0,V.jsxs)(`div`,{className:t.quotaRowHeader,children:[(0,V.jsx)(`span`,{className:t.quotaModel,children:d}),(0,V.jsxs)(`div`,{className:t.quotaMeta,children:[(0,V.jsx)(`span`,{className:t.quotaPercent,children:u}),f&&(0,V.jsx)(gk,{display:f,classes:t,soon:p})]})]}),(0,V.jsx)(RO,{percent:l,classes:t,index:o})]},e.id)})]})}var vk=e=>typeof e==`object`&&e&&!Array.isArray(e)?e:{},yk=e=>{if(typeof e==`number`)return Number.isFinite(e)&&e>=0&&e<=100?e:null;if(typeof e!=`string`||!/^\d+(?:\.\d+)?$/.test(e.trim()))return null;let t=Number(e);return Number.isFinite(t)&&t>=0&&t<=100?t:null},bk=e=>{if(typeof e!=`string`||!/^\d{4}-\d{2}-\d{2}T/.test(e))return null;let t=Date.parse(e);return Number.isFinite(t)&&t>0?t:null},xk=e=>{if(typeof e!=`number`&&typeof e!=`string`||typeof e==`string`&&!/^\d+$/.test(e.trim()))return null;let t=Number(e),n=t*1e3;return Number.isSafeInteger(t)&&n>0&&Number.isFinite(new Date(n).getTime())?n:null};function Sk(e,t=Date.now()){if(typeof e==`string`)try{e=JSON.parse(e)}catch{e=null}let n=vk(vk(vk(e).userStatus).planStatus),r=vk(n.planInfo),i=[`daily`,`weekly`].map(e=>({id:e,remainingPercent:yk(n[`${e}QuotaRemainingPercent`]),resetAtMs:xk(n[`${e}QuotaResetAtUnix`]),periodHours:e===`daily`?24:168}));return{windows:i,observedAtMs:i.some(e=>e.remainingPercent!==null||e.resetAtMs!==null)?t:null,plan:typeof r.planName==`string`&&r.planName.trim()||null,planStartMs:bk(n.planStart),planEndMs:bk(n.planEnd)}}var Ck=e=>e.windows.some(e=>e.remainingPercent!==null||e.resetAtMs!==null),wk=class extends Error{constructor(e){super(e),cp(this,`code`,void 0),this.code=e,this.name=`DevinQuotaError`}};function Tk(e){let t=new Map,n=new Map,r=e=>{let t=n.get(e);if(t)return t;let r={queue:[],active:0};return n.set(e,r),r},i=e=>{let t=n.get(e);if(t){for(;t.active<3&&t.queue.length>0;)t.active+=1,t.queue.shift()();t.active===0&&t.queue.length===0&&n.delete(e)}};return n=>{let a=n.name.trim(),o=n_(n.authIndex??n.auth_index);if(!a||!o)return Promise.reject(new wk(`missing_identity`));let s=e.generation(a),c=JSON.stringify([s.session,s.file,a,o]),l=t.get(c);if(l)return l;let u=()=>{let t=e.generation(a);if(t.session!==s.session||t.file!==s.file)throw new wk(`stale_request`)},d=r(s.session),f=new Promise((n,r)=>{d.queue.push(()=>{let a=async()=>{u();let t=await e.request({authIndex:o,method:`POST`,url:`https://server.codeium.com/exa.seat_management_pb.SeatManagementService/GetUserStatus`,header:{"Content-Type":`application/json`,"Connect-Protocol-Version":`1`},data:JSON.stringify({metadata:{ideName:`chisel`,ideVersion:`3000.10.21`,apiKey:`$TOKEN$`,locale:`en`,os:`darwin`,extensionVersion:`3000.10.21`,clientName:`chisel`}})});if(u(),t.statusCode<200||t.statusCode>=300)throw F_(Kp(t),t.statusCode);let n=Sk(t.body);if(!Ck(n))throw new wk(`empty_data`);return n},l=()=>{t.delete(c),--d.active,i(s.session)};a().then(e=>{l(),n(e)},e=>{l(),r(e)})})});return t.set(c,f),i(s.session),f}}var Ek=Tk({request:e=>qp.request(e),generation:e=>{let t=Mm.getState();return{session:t.cacheGeneration,file:t.fileGenerations[e]??0}}}),Dk=(e,t)=>({...e,windows:e.windows.map(e=>({...e,label:t(`devin_quota.${e.id}`)}))}),Ok=()=>({windows:[],observedAtMs:null,plan:null,planStartMs:null,planEndMs:null}),kk={type:`devin`,i18nPrefix:`devin_quota`,filterFn:e=>Cm(e)&&!Em(e),fetchQuota:async(e,t)=>{try{return Dk(await Ek(e),t)}catch(e){throw e instanceof wk&&(e.message=t(`devin_quota.${e.code}`)),e}},storeSelector:e=>e.devinQuota,storeSetter:`setDevinQuota`,buildLoadingState:()=>({status:`loading`,...Ok()}),buildSuccessState:e=>({status:`success`,...e}),buildErrorState:(e,t)=>({status:`error`,...Ok(),error:e,errorStatus:t})};function Ak({quota:e,classes:t}){let{t:n,i18n:r}=B(),i=hk(),a=r.resolvedLanguage,o=GO(UO(`devin`,e),i),s=j_(null,e.planEndMs,i,a);return(0,V.jsxs)(V.Fragment,{children:[(e.plan||s)&&(0,V.jsxs)(`div`,{className:t.codexPlan,children:[e.plan&&(0,V.jsxs)(`span`,{className:t.codexPlanItem,children:[(0,V.jsx)(`span`,{className:t.codexPlanLabel,children:n(`devin_quota.plan_label`)}),(0,V.jsx)(`span`,{className:t.codexPlanValue,children:e.plan})]}),s&&(0,V.jsxs)(`span`,{className:t.codexPlanItem,children:[(0,V.jsx)(`span`,{className:t.codexPlanLabel,children:n(`devin_quota.plan_end`)}),(0,V.jsx)(gk,{display:s,classes:t})]})]}),e.windows.map((e,r)=>{let s=j_(null,e.resetAtMs,i,a),c=e.id===o,l=n(`devin_quota.${e.id}`);return(0,V.jsxs)(`div`,{className:t.quotaRow,children:[(0,V.jsxs)(`div`,{className:t.quotaRowHeader,children:[(0,V.jsx)(`span`,{className:t.quotaModel,children:l}),(0,V.jsxs)(`div`,{className:t.quotaMeta,children:[(0,V.jsx)(`span`,{className:t.quotaPercent,children:e.remainingPercent===null?n(`devin_quota.unavailable`):`${e.remainingPercent}%`}),s?(0,V.jsx)(gk,{display:s,classes:t,soon:c}):(0,V.jsx)(`span`,{className:t.quotaReset,children:n(`devin_quota.reset_unknown`)})]})]}),(0,V.jsx)(`div`,{role:e.remainingPercent===null?void 0:`meter`,"aria-label":e.remainingPercent===null?void 0:l,"aria-valuemin":e.remainingPercent===null?void 0:0,"aria-valuemax":e.remainingPercent===null?void 0:100,"aria-valuenow":e.remainingPercent??void 0,children:(0,V.jsx)(RO,{percent:e.remainingPercent,classes:t,index:r})})]},e.id)})]})}var jk=8e3,Mk=(e,t)=>{let n={codeFiveHour:{id:`five-hour`,labelKey:`codex_quota.primary_window`},codeWeekly:{id:`weekly`,labelKey:`codex_quota.secondary_window`},codeMonthly:{id:`monthly`,labelKey:`codex_quota.team_secondary_window`},codeReviewFiveHour:{id:`code-review-five-hour`,labelKey:`codex_quota.code_review_primary_window`},codeReviewWeekly:{id:`code-review-weekly`,labelKey:`codex_quota.code_review_secondary_window`},codeReviewMonthly:{id:`code-review-monthly`,labelKey:`codex_quota.code_review_team_secondary_window`}},r=e.rate_limit??e.rateLimit??void 0,i=e.code_review_rate_limit??e.codeReviewRateLimit??void 0,a=e.additional_rate_limits??e.additionalRateLimits??[],o=[],s=(e,t,n,r,i,a,s)=>{if(!i)return;let c=P_(i),l=i_(i.used_percent??i.usedPercent)??((a||s===!1)&&c!==`-`?100:null),u=$g([i.reset_at,i.resetAt])??Qg(i.reset_after_seconds??i.resetAfterSeconds,Date.now()),d=e_(i.limit_window_seconds??i.limitWindowSeconds);o.push({id:e,label:t,labelKey:n,labelParams:r,usedPercent:l,resetAtMs:u,periodHours:d,resetLabel:c})},c=e=>e?i_(e.limit_window_seconds??e.limitWindowSeconds):null,l=e=>{let t=c(e);return t!==null&&t>=2419200&&t<=2678400},u=(e,t,n)=>l(e)?n:t,d=r?.limit_reached??r?.limitReached,f=r?.allowed,p=(e,t)=>{let n=t?.allowOrderFallback??!0,r=e?.primary_window??e?.primaryWindow??null,i=e?.secondary_window??e?.secondaryWindow??null,a=[r,i],o=null,s=null;for(let e of a){if(!e)continue;let t=c(e);t===18e3&&!o?o=e:(t===604800||l(e))&&!s&&(s=e)}return n&&(o||(o=r&&r!==s?r:null),s||(s=i&&i!==o?i:null)),{fiveHourWindow:o,weeklyWindow:s}},m=p(r);s(n.codeFiveHour.id,t(n.codeFiveHour.labelKey),n.codeFiveHour.labelKey,void 0,m.fiveHourWindow,d,f);let h=u(m.weeklyWindow,n.codeWeekly,n.codeMonthly);s(h.id,t(h.labelKey),h.labelKey,void 0,m.weeklyWindow,d,f);let g=p(i),_=i?.limit_reached??i?.limitReached,v=i?.allowed;s(n.codeReviewFiveHour.id,t(n.codeReviewFiveHour.labelKey),n.codeReviewFiveHour.labelKey,void 0,g.fiveHourWindow,_,v);let y=u(g.weeklyWindow,n.codeReviewWeekly,n.codeReviewMonthly);s(y.id,t(y.labelKey),y.labelKey,void 0,g.weeklyWindow,_,v);let b=e=>e.trim().toLowerCase().replace(/[^a-z0-9]+/g,`-`).replace(/^-+|-+$/g,``);return Array.isArray(a)&&a.forEach((e,n)=>{let r=e?.rate_limit??e?.rateLimit??null;if(!r)return;let i=r_(e?.limit_name??e?.limitName)??r_(e?.metered_feature??e?.meteredFeature)??`additional-${n+1}`,a=b(i)||`additional-${n+1}`,o=p(r),c=r.limit_reached??r.limitReached,l=r.allowed;s(`${a}-five-hour-${n}`,t(`codex_quota.additional_primary_window`,{name:i}),`codex_quota.additional_primary_window`,{name:i},o.fiveHourWindow,c,l);let d=u(o.weeklyWindow,{id:`weekly`,labelKey:`codex_quota.additional_secondary_window`},{id:`monthly`,labelKey:`codex_quota.additional_team_secondary_window`});s(`${a}-${d.id}-${n}`,t(d.labelKey,{name:i}),d.labelKey,{name:i},o.weeklyWindow,c,l)}),o},Nk=e=>{let t=e?.balance,n=typeof t==`number`?String(t):typeof t==`string`?t.trim():null;return{balance:n&&/^\d+(?:\.\d+)?$/.test(n)&&Number.isFinite(Number(n))?n:null,unlimited:e?.unlimited===!0}},Pk=e=>{let t=y_(e),n={...Fg};return t&&(n[`Chatgpt-Account-Id`]=t),n},Fk=e=>{if(typeof e==`string`){let t=e.trim();if(!t)return null;try{return Fk(JSON.parse(t))}catch{return null}}if(!e||typeof e!=`object`||Array.isArray(e))return null;let t=e,n=t.active_until??t.activeUntil,r=i_(n);if(r!==null&&r!==0)return r;let i=r_(n);return i&&i!==`0`?i:null},Ik=async(e,t,n)=>{if(!t)return null;try{let r=await qp.request({authIndex:e,method:`GET`,url:`${Mg}?account_id=${encodeURIComponent(t)}`,header:n},{timeout:jk});return r.statusCode<200||r.statusCode>=300?null:Fk(r.body??r.bodyText)}catch{return null}},Lk=async(e,t,n)=>{try{let r=await qp.request({authIndex:e,method:`GET`,url:Ng,header:{...t,Accept:`application/json`,"OpenAI-Beta":`codex-1`,Originator:`Codex Desktop`}},{timeout:jk});if(r.statusCode<200||r.statusCode>=300)return{availableCount:null,applicableAvailableCount:null,credits:[],error:Kp(r)};let i=lv(r.body??r.bodyText);return i.invalidPayload?{availableCount:null,applicableAvailableCount:null,credits:[],error:n(`codex_quota.reset_credits_invalid_payload`)}:{availableCount:i.availableCount,applicableAvailableCount:i.applicableAvailableCount,credits:i.credits,error:``}}catch(e){return{availableCount:null,applicableAvailableCount:null,credits:[],error:e instanceof Error?e.message:n(`common.unknown_error`)}}},Rk=async(e,t)=>{let n=n_(e.auth_index??e.authIndex);if(!n)throw Error(t(`codex_quota.missing_auth_index`));let r=b_(e),i=S_(e),a=y_(e),o=Pk(e),[s,c]=await Promise.all([qp.request({authIndex:n,method:`GET`,url:jg,header:o}),Ik(n,a,o)]);if(s.statusCode<200||s.statusCode>=300)throw F_(Kp(s),s.statusCode);let l=d_(s.body??s.bodyText);if(!l)throw Error(t(`codex_quota.empty_windows`));let u=o_(l.plan_type??l.planType),d=Nk(l.credits),f=lv(l.rate_limit_reset_credits??l.rateLimitResetCredits??null),p=await Lk(n,o,t),m=p.credits.length>0?p.credits.length:null,h=p.availableCount??m??f.availableCount,g=f.applicableAvailableCount??p.applicableAvailableCount??h,_=u??r,v=c??i,y=Mk(l,t);return{planType:_,subscriptionActiveUntil:v,creditBalance:d.balance,creditsUnlimited:d.unlimited,rateLimitResetCreditsAvailableCount:h,rateLimitResetCreditsApplicableAvailableCount:g,rateLimitResetCredits:p.credits,rateLimitResetCreditsError:p.error,windows:y}},zk=()=>typeof globalThis.crypto?.randomUUID==`function`?globalThis.crypto.randomUUID():`xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx`.replace(/[xy]/g,e=>{let t=Math.floor(Math.random()*16);return(e===`x`?t:t&3|8).toString(16)}),Bk=async(e,t)=>{let n=n_(e.auth_index??e.authIndex);if(!n)throw Error(t(`codex_quota.missing_auth_index`));let r=Pk(e),i=await qp.request({authIndex:n,method:`POST`,url:Pg,header:r,data:JSON.stringify({redeem_request_id:zk()})});if(i.statusCode<200||i.statusCode>=300)throw F_(Kp(i),i.statusCode)},Vk={type:`codex`,i18nPrefix:`codex_quota`,filterFn:e=>Sm(e)&&!Em(e),fetchQuota:Rk,resetQuota:async(e,t)=>(await Bk(e,t),Rk(e,t)),canResetQuota:e=>(e.rateLimitResetCreditsAvailableCount??0)>0,storeSelector:e=>e.codexQuota,storeSetter:`setCodexQuota`,buildLoadingState:()=>({status:`loading`,windows:[],rateLimitResetCredits:[],rateLimitResetCreditsError:``}),buildSuccessState:e=>({status:`success`,windows:e.windows,planType:e.planType,subscriptionActiveUntil:e.subscriptionActiveUntil,creditBalance:e.creditBalance,creditsUnlimited:e.creditsUnlimited,rateLimitResetCreditsAvailableCount:e.rateLimitResetCreditsAvailableCount,rateLimitResetCreditsApplicableAvailableCount:e.rateLimitResetCreditsApplicableAvailableCount,rateLimitResetCredits:e.rateLimitResetCredits,rateLimitResetCreditsError:e.rateLimitResetCreditsError}),buildErrorState:(e,t)=>({status:`error`,windows:[],rateLimitResetCredits:[],rateLimitResetCreditsError:``,error:e,errorStatus:t})};function Hk(e){if(!Number.isFinite(e)||e===0)return`GMT`;let t=e<0?`-`:`+`,n=Math.abs(Math.trunc(e)),r=Math.floor(n/60),i=n%60;return i===0?`GMT${t}${r}`:`GMT${t}${r}:${String(i).padStart(2,`0`)}`}function Uk(e=new Date){return Hk(-e.getTimezoneOffset())}var Wk=(e,t)=>{let n=h_(e);return n===`elite`?t.elitePlanValue:n===`premium`?t.premiumPlanValue:t.codexPlanValue};function Gk({quota:e,classes:t}){let{t:n,i18n:r}=B(),i=hk(),a=r.resolvedLanguage,o=(0,y.useMemo)(()=>GO(UO(`codex`,e),i),[e,i]),s=e.windows??[],c=e.planType??null,l=e.subscriptionActiveUntil??null,u=e.creditBalance??null,d=e.creditsUnlimited===!0,f=e.rateLimitResetCreditsAvailableCount??null,p=e.rateLimitResetCredits??[],m=e.rateLimitResetCreditsError??``,h=(e=>{let t=o_(e);return t?t===`self_serve_business_prolite`?n(`codex_quota.plan_business_premium`):t===`pro`?n(`codex_quota.plan_pro`):m_.has(t)&&t!==`pro`?n(`codex_quota.plan_prolite`):t===`plus`?n(`codex_quota.plan_plus`):t===`team`?n(`codex_quota.plan_team`):t===`free`?n(`codex_quota.plan_free`):e||t:null})(c),g=Wk(c,t),_=$g([l]),v=l?j_(_===null?yg(l):null,_,i,a):null;return(0,V.jsxs)(V.Fragment,{children:[(h||v||d||u!==null||f!==null)&&(0,V.jsxs)(`div`,{className:t.codexPlan,children:[h&&(0,V.jsxs)(`span`,{className:t.codexPlanItem,children:[(0,V.jsx)(`span`,{className:t.codexPlanLabel,children:n(`codex_quota.plan_label`)}),(0,V.jsx)(`span`,{className:g,children:h})]}),v&&(0,V.jsxs)(`span`,{className:t.codexPlanItem,children:[(0,V.jsx)(`span`,{className:t.codexPlanLabel,children:n(`codex_quota.expires_label`)}),(0,V.jsx)(`span`,{className:t.codexPlanValue,children:v.absolute}),v.relative&&(0,V.jsx)(`span`,{className:t.quotaResetRelative,children:v.relative})]}),(d||u!==null)&&(0,V.jsxs)(`span`,{className:t.codexPlanItem,children:[(0,V.jsx)(`span`,{className:t.codexPlanLabel,children:n(`codex_quota.credit_balance_label`)}),(0,V.jsx)(`span`,{className:t.codexPlanValue,children:d?n(`codex_quota.credit_unlimited`):u})]}),f!==null&&(0,V.jsxs)(`span`,{className:t.codexPlanItem,children:[(0,V.jsx)(`span`,{className:t.codexPlanLabel,children:n(`codex_quota.reset_credits_label`)}),(0,V.jsx)(`span`,{className:t.codexPlanValue,children:f.toString()})]})]}),p.length>0?(0,V.jsxs)(`div`,{className:t.codexResetCredits,children:[(0,V.jsx)(`div`,{className:t.codexResetCreditsTitle,children:n(`codex_quota.reset_credits_expiry_label`,{timezone:Uk()})}),p.map((e,r)=>{let s=Xg(e.expiresAt),c=j_(s===null?e.expiresAt:A_(s),s,i,a),l=zO(e,r),u=l===o;return(0,V.jsxs)(`div`,{className:u?`${t.codexResetCreditRow} ${t.codexResetCreditRowSoon}`:t.codexResetCreditRow,title:u?n(`quota_management.soonest_row_hint`):void 0,children:[(0,V.jsx)(`span`,{className:t.codexResetCreditLabel,children:n(`codex_quota.reset_credit_number`,{index:r+1})}),(0,V.jsx)(`span`,{className:t.codexResetCreditTime,children:c&&(0,V.jsx)(gk,{display:c,classes:t,soon:u})})]},l)})]}):m?(0,V.jsx)(`div`,{className:t.codexResetCreditsError,children:n(`codex_quota.reset_credits_expiry_failed`,{message:m})}):null,s.length===0?(0,V.jsx)(`div`,{className:t.quotaMessage,children:n(`codex_quota.empty_windows`)}):s.map((e,r)=>{let s=e.usedPercent,c=s===null?null:Math.max(0,Math.min(100,s)),l=c===null?null:Math.max(0,Math.min(100,100-c)),u=l===null?`--`:`${Math.round(l)}%`,d=e.labelKey?n(e.labelKey,e.labelParams):e.label,f=j_(e.resetLabel,e.resetAtMs,i,a),p=e.id===o;return(0,V.jsxs)(`div`,{className:t.quotaRow,title:p?n(`quota_management.soonest_row_hint`):void 0,children:[(0,V.jsxs)(`div`,{className:t.quotaRowHeader,children:[(0,V.jsx)(`span`,{className:t.quotaModel,children:d}),(0,V.jsxs)(`div`,{className:t.quotaMeta,children:[(0,V.jsx)(`span`,{className:t.quotaPercent,children:u}),f&&(0,V.jsx)(gk,{display:f,classes:t,soon:p})]})]}),(0,V.jsx)(RO,{percent:l,classes:t,index:r})]},e.id)})]})}var Kk=`https://api.meta.ai/muse-code/key`,qk=class extends Error{constructor(e,t){super(e),cp(this,`code`,void 0),cp(this,`status`,void 0),this.code=e,this.name=`MetaQuotaError`,this.status=t}},Jk=e=>{let t;try{t=JSON.parse(e)}catch{throw new qk(`invalid_auth_file`)}if(!t||typeof t!=`object`||Array.isArray(t))throw new qk(`invalid_auth_file`);let n=t.dca_token,r=typeof n==`string`?n.trim():``;if(!/^dca:[^\s]+$/.test(r))throw new qk(`missing_dca_token`);return r};function Vee(e){return async t=>{let n=n_(t.authIndex??t.auth_index);if(!n)throw new qk(`missing_auth_index`);if(!t.name?.trim()||t.runtimeOnly===!0||t.runtime_only===!0||t.runtime_only===`true`)throw new qk(`missing_file`);let r=e.captureCurrent(t.name),i=()=>{if(!r())throw new qk(`stale_request`)};i();let a;try{a=await e.downloadText(t.name)}catch{throw i(),new qk(`download_failed`)}i();let o=Jk(a),s;try{i(),s=await e.request({authIndex:n,method:`POST`,url:Kk,header:{Accept:`application/json`,"Content-Type":`application/json`,Authorization:`Bearer ${o}`,"x-api-version":`1.0.0`},data:`{}`})}catch(e){throw i(),new qk(`request_failed`,typeof e==`object`&&e&&typeof e.status==`number`?e.status:void 0)}if(i(),!(s.statusCode>=200&&s.statusCode<300))throw new qk(`request_failed`,s.statusCode);let c=Yy(s.body??s.bodyText);if(!c)throw new qk(`invalid_response`);return c}}var Yk=Vee({request:e=>qp.request(e),downloadText:e=>jy.downloadText(e),captureCurrent:e=>{let t=Nm(e);return()=>Pm(t,()=>{})}}),Xk={type:`meta`,i18nPrefix:`meta_quota`,filterFn:e=>xm(e)===`meta`&&!Em(e),fetchQuota:async(e,t)=>{try{return await Yk(e)}catch(e){throw e instanceof qk&&(e.message=t(`meta_quota.${e.code}`,{status:e.status})),e}},storeSelector:e=>e.metaQuota,storeSetter:`setMetaQuota`,buildLoadingState:()=>({status:`loading`}),buildSuccessState:e=>({status:`success`,data:e}),buildErrorState:(e,t)=>({status:`error`,error:e,errorStatus:t})};function Zk({quota:e,classes:t}){let{t:n,i18n:r}=B(),i=hk(),a=(0,y.useMemo)(()=>GO(UO(`meta`,e),i),[e,i]),o=e.data;return o?(0,V.jsxs)(V.Fragment,{children:[(o.planName||o.isSubscriptionActive!==void 0)&&(0,V.jsxs)(`div`,{className:t.codexPlan,children:[o.planName&&(0,V.jsxs)(`span`,{className:t.codexPlanItem,children:[(0,V.jsx)(`span`,{className:t.codexPlanLabel,children:n(`meta_quota.plan`)}),(0,V.jsx)(`span`,{className:t.codexPlanValue,children:o.planName})]}),o.isSubscriptionActive!==void 0&&(0,V.jsx)(`span`,{className:t.codexPlanValue,children:n(o.isSubscriptionActive?`meta_quota.active`:`meta_quota.inactive`)})]}),o.windows.every(e=>e.usedPercent===null)&&(0,V.jsx)(`div`,{className:t.quotaMessage,children:n(`meta_quota.empty_data`)}),o.windows.map((e,o)=>{let s=e.usedPercent===null?null:100-e.usedPercent,c=j_(null,e.resetAt===void 0?null:e.resetAt*1e3,i,r.resolvedLanguage),l=e.id===a,u=e.id===`window`&&e.durationMinutes?n(`meta_quota.window_duration`,{minutes:e.durationMinutes}):n(`meta_quota.${e.id}`);return(0,V.jsxs)(`div`,{className:t.quotaRow,children:[(0,V.jsxs)(`div`,{className:t.quotaRowHeader,children:[(0,V.jsx)(`span`,{className:t.quotaModel,children:u}),(0,V.jsxs)(`div`,{className:t.quotaMeta,children:[(0,V.jsx)(`span`,{className:t.quotaPercent,children:s===null?n(`meta_quota.unknown`):n(`meta_quota.remaining`,{percent:Number(s.toFixed(1))})}),c&&(0,V.jsx)(gk,{display:c,classes:t,soon:l})]})]}),(0,V.jsx)(`div`,{role:s===null?void 0:`meter`,"aria-label":s===null?void 0:u,"aria-valuemin":s===null?void 0:0,"aria-valuemax":s===null?void 0:100,"aria-valuenow":s??void 0,children:(0,V.jsx)(RO,{percent:s,classes:t,index:o})})]},e.id)})]}):(0,V.jsx)(`div`,{className:t.quotaMessage,children:n(`meta_quota.empty_data`)})}var Qk=e=>{if(typeof e!=`string`)return null;let t=e.trim().toLowerCase();return[`ai`,`kimi-ai`,`kimi.ai`].includes(t)||t.endsWith(`.kimi.ai`)?`ai`:[`com`,`kimi`,`kimi.com`].includes(t)||t.endsWith(`.kimi.com`)?`com`:null},$k=e=>{if(typeof e!=`string`)return null;try{let t=new URL(e.trim()).hostname.toLowerCase();if(t===`kimi.ai`||t.endsWith(`.kimi.ai`))return`ai`;if(t===`kimi.com`||t.endsWith(`.kimi.com`))return`com`}catch{}return null};function eA(e,t){let n;try{n=JSON.parse(e)}catch{throw Error(`Invalid Kimi credential`)}if(!n||typeof n!=`object`||Array.isArray(n))throw Error(`Invalid Kimi credential`);let r=n,i=typeof r.domain==`string`&&r.domain.trim()?Qk(r.domain)??`com`:null,a=Object.prototype.hasOwnProperty.call(r,`base_url`)?r.base_url:r[`base-url`],o=String(t.provider??t.type??``).trim().replace(/_/g,`-`);return(i??$k(a)??Qk(r.type)??Qk(o)??(/kimi-ai|kimi\.ai/i.test(`${t.id??``} ${t.name}`)?`ai`:`com`))===`ai`?Lg:Ig}async function tA(e){if(!e.name?.trim()||[e.runtimeOnly,e.runtime_only].some(e=>e===!0||e===`true`))throw Error(`Kimi credential is not downloadable`);return eA(await jy.downloadText(e.name),e)}var nA={type:`kimi`,i18nPrefix:`kimi_quota`,filterFn:e=>wm(e)&&!Em(e),fetchQuota:async(e,t)=>{let n=n_(e.auth_index??e.authIndex);if(!n)throw Error(t(`kimi_quota.missing_auth_index`));let r=Nm(e.name),i=()=>{if(!Pm(r,()=>{}))throw Error(t(`kimi_quota.stale_request`))},a;try{a=await tA(e)}catch{throw i(),Error(t(`kimi_quota.domain_unavailable`))}i();let o=await qp.request({authIndex:n,method:`GET`,url:a,header:{...Rg}});if(i(),o.statusCode<200||o.statusCode>=300)throw F_(Kp(o),o.statusCode);let s=f_(o.body??o.bodyText);if(!s)throw Error(t(`kimi_quota.empty_data`));return Q_(s)},storeSelector:e=>e.kimiQuota,storeSetter:`setKimiQuota`,buildLoadingState:()=>({status:`loading`,rows:[]}),buildSuccessState:e=>({status:`success`,rows:e}),buildErrorState:(e,t)=>({status:`error`,rows:[],error:e,errorStatus:t})};function rA({quota:e,classes:t}){let{t:n,i18n:r}=B(),i=hk(),a=(0,y.useMemo)(()=>GO(UO(`kimi`,e),i),[e,i]),o=e.rows??[];return o.length===0?(0,V.jsx)(`div`,{className:t.quotaMessage,children:n(`kimi_quota.empty_data`)}):(0,V.jsx)(V.Fragment,{children:o.map((e,o)=>{let s=e.limit,c=e.used,l=s>0?Math.max(0,Math.min(100,Math.round((s-c)/s*100))):c>0?0:null,u=l===null?`--`:`${l}%`,d=e.labelKey?n(e.labelKey,e.labelParams??{}):e.label??``,f=j_(e.resetAtMs==null?L_(n,e.resetHint):null,e.resetAtMs,i,r.resolvedLanguage),p=e.id===a;return(0,V.jsxs)(`div`,{className:t.quotaRow,title:p?n(`quota_management.soonest_row_hint`):void 0,children:[(0,V.jsxs)(`div`,{className:t.quotaRowHeader,children:[(0,V.jsx)(`span`,{className:t.quotaModel,children:d}),(0,V.jsxs)(`div`,{className:t.quotaMeta,children:[(0,V.jsx)(`span`,{className:t.quotaPercent,children:u}),f&&(0,V.jsx)(gk,{display:f,classes:t,soon:p})]})]}),(0,V.jsx)(RO,{percent:l,classes:t,index:o})]},e.id)})})}var iA=15e3,aA=8e3,oA=e=>e&&typeof e==`object`&&!Array.isArray(e)?e:null,sA=e=>{let t=oA(e.metadata),n=oA(e.attributes),r=oA(e.oauth??t?.oauth??n?.oauth),i=oA(e.user??t?.user??n?.user),a=[e.sub,e.subject,e.user_id,e.userId,t?.sub,t?.subject,t?.user_id,t?.userId,n?.sub,n?.subject,n?.user_id,n?.userId,r?.sub,r?.subject,i?.sub,i?.id];for(let e of a){let t=r_(e);if(t)return t}return null},cA=e=>{let t={...Kg},n=sA(e);return n&&(t[`x-userid`]=n),t},lA=async(e,t,n)=>{let r=await qp.request({authIndex:e,method:`GET`,url:t,header:n});if(r.statusCode<200||r.statusCode>=300)throw F_(Kp(r),r.statusCode);return av(p_(r.body??r.bodyText)?.config)},uA=async e=>{let[t,n]=await Promise.allSettled([qp.request({authIndex:e,method:`GET`,url:Ug,header:qg},{timeout:iA}),qp.request({authIndex:e,method:`POST`,url:Wg,header:{...qg,"Content-Type":`application/json`},data:JSON.stringify({model:Gg,messages:[{role:`user`,content:`ping`}],max_tokens:1,stream:!1})},{timeout:iA})]);if(n.status===`rejected`)throw n.reason;if(n.value.statusCode<200||n.value.statusCode>=300)throw F_(Kp(n.value),n.value.statusCode);return _ee(t.status===`fulfilled`&&t.value.statusCode>=200&&t.value.statusCode<300?t.value.body:null)},dA=e=>{if(e.statusCode<200||e.statusCode>=300)return null;let t=e.body??e.bodyText;if(typeof t==`string`)try{return oA(JSON.parse(t))}catch{return null}return oA(t)},fA=(e,t)=>{if(!e)return null;for(let n of t){let t=r_(e[n]);if(t)return t}return null},pA=async e=>{let t={...Kg},[n,r]=await Promise.allSettled([qp.request({authIndex:e,method:`GET`,url:Vg,header:t},{timeout:aA}),qp.request({authIndex:e,method:`GET`,url:Hg,header:t},{timeout:aA})]),i=n.status===`fulfilled`?dA(n.value):null,a=r.status===`fulfilled`?dA(r.value):null;return iv(fA(i,[`subscriptionTier`,`subscription_tier`]),fA(a,[`subscription_tier_display`,`subscriptionTierDisplay`]))},mA=(e,t)=>t?{...e,planLabel:t.label,planTier:t.tier}:e,hA={type:`xai`,i18nPrefix:`xai_quota`,filterFn:e=>Tm(e)&&!Em(e),fetchQuota:async(e,t)=>{let n=n_(e.auth_index??e.authIndex);if(!n)throw Error(t(`xai_quota.missing_auth_index`));if(gee(e))return uA(n);let r=cA(e),[i,a]=await Promise.allSettled([lA(n,zg,r),lA(n,Bg,r)]),o=cee(i.status===`fulfilled`?i.value:null,a.status===`fulfilled`?a.value:null);if(o)return o;let s=i.status===`rejected`&&a.status===`rejected`?i.reason:Error(t(`xai_quota.empty_data`));try{return await uA(n)}catch{throw s}},enrichQuota:async(e,t)=>{let n=n_(e.auth_index??e.authIndex);return n?mA(t,await pA(n)):t},storeSelector:e=>e.xaiQuota,storeSetter:`setXaiQuota`,buildLoadingState:()=>({status:`loading`,billing:null}),buildSuccessState:e=>({status:`success`,billing:e}),buildErrorState:(e,t)=>({status:`error`,billing:null,error:e,errorStatus:t})},gA=e=>e===null?`--`:new Intl.NumberFormat(void 0,{style:`currency`,currency:`USD`}).format(e/100),_A=e=>{let t=gA(e.monthlyLimitCents!==null&&e.includedUsedCents!==null?Math.max(0,e.monthlyLimitCents-e.includedUsedCents):null),n=gA(e.monthlyLimitCents);return e.monthlyLimitCents===null?t:`${t} / ${n}`},vA=e=>{let t=gA(e.onDemandCapCents!==null&&e.onDemandUsedCents!==null?Math.max(0,e.onDemandCapCents-e.onDemandUsedCents):null),n=gA(e.onDemandCapCents);return e.onDemandCapCents===null?t:`${t} / ${n}`},yA=e=>e===null?`--`:`${Math.round(e)}%`,bA=15e3,xA=15e4,SA=(e,t)=>e===`elite`?t.elitePlanValue:e===`premium`?t.premiumPlanValue:t.codexPlanValue,CA=e=>e===bA?{labelKey:`plan_supergrok`,premium:!1}:e===xA?{labelKey:`plan_supergrok_heavy`,premium:!0}:null;function wA({quota:e,classes:t}){let{t:n,i18n:r}=B(),i=hk(),a=r.resolvedLanguage,o=(0,y.useMemo)(()=>GO(UO(`xai`,e),i)===BO,[e,i]),s=e.billing;if(!s)return(0,V.jsx)(`div`,{className:t.quotaMessage,children:n(`xai_quota.empty_data`)});if(s.mode===`paid-health`)return(0,V.jsxs)(V.Fragment,{children:[(0,V.jsxs)(`div`,{className:t.codexPlan,children:[(0,V.jsx)(`span`,{className:t.codexPlanLabel,children:n(`xai_quota.plan_label`)}),(0,V.jsx)(`span`,{className:s.planLabel?SA(s.planTier,t):t.premiumPlanValue,children:s.planLabel??n(`xai_quota.plan_paid`)})]}),(0,V.jsx)(`div`,{className:t.quotaMessage,children:n(`xai_quota.paid_health`)})]});let c=s.usedPercent===null?null:Math.max(0,Math.min(100,s.usedPercent)),l=c===null?null:Math.max(0,Math.min(100,100-c)),u=yA(l),d=_A(s),f=j_(M_(s.billingPeriodEnd),Xg(s.billingPeriodEnd),i,a),p=s.onDemandCapCents??0,m=s.onDemandUsedPercent===null?null:Math.max(0,Math.min(100,s.onDemandUsedPercent)),h=m===null?null:Math.max(0,Math.min(100,100-m)),g=yA(h),_=vA(s),v=CA(s.monthlyLimitCents),b=s.periodType===`weekly`&&s.usagePercent!==null?Math.max(0,Math.min(100,s.usagePercent)):null,x=b===null?null:Math.max(0,Math.min(100,100-b)),S=M_(s.periodEnd),C=j_(S===`-`?null:n(`xai_quota.reset_at`,{time:S}),s.resetAtMs,i,a),w=s.periodType===`weekly`&&(b!==null||!!s.periodEnd||s.productUsage.length>0),T=(s.monthlyLimitCents!==null||s.usedCents!==null||!!s.billingPeriodEnd)&&!(w&&s.monthlyLimitCents===0&&s.usedCents===0),E=s.planLabel??(v?n(`xai_quota.${v.labelKey}`):null),D=s.planLabel?SA(s.planTier,t):v?.premium?t.premiumPlanValue:t.codexPlanValue,O=j_(null,w?s.resetAtMs:Xg(s.billingPeriodEnd),i,a);return(0,V.jsxs)(V.Fragment,{children:[(E||O)&&(0,V.jsxs)(`div`,{className:t.codexPlan,children:[E&&(0,V.jsxs)(`span`,{className:t.codexPlanItem,children:[(0,V.jsx)(`span`,{className:t.codexPlanLabel,children:n(`xai_quota.plan_label`)}),(0,V.jsx)(`span`,{className:D,children:E})]}),O&&(0,V.jsxs)(`span`,{className:t.codexPlanItem,children:[(0,V.jsx)(`span`,{className:t.codexPlanLabel,children:n(`xai_quota.resets_label`)}),(0,V.jsx)(`span`,{className:t.codexPlanValue,children:O.absolute}),O.relative&&(0,V.jsx)(`span`,{className:t.quotaResetRelative,children:O.relative})]})]}),typeof s.prepaidBalanceCents==`number`&&s.prepaidBalanceCents>0&&(0,V.jsxs)(`div`,{className:t.codexPlan,children:[(0,V.jsx)(`span`,{className:t.codexPlanLabel,children:n(`xai_quota.prepaid`)}),(0,V.jsx)(`span`,{className:t.quotaAmount,children:gA(s.prepaidBalanceCents)})]}),w&&(0,V.jsxs)(`div`,{className:t.quotaRow,title:o?n(`quota_management.soonest_row_hint`):void 0,children:[(0,V.jsxs)(`div`,{className:t.quotaRowHeader,children:[(0,V.jsx)(`span`,{className:t.quotaModel,children:n(`xai_quota.weekly_limit`)}),(0,V.jsxs)(`div`,{className:t.quotaMeta,children:[(0,V.jsx)(`span`,{className:t.quotaPercent,children:b===null?n(`xai_quota.usage_unavailable`):n(`xai_quota.used_percent`,{percent:yA(b)})}),C&&(0,V.jsx)(gk,{display:C,classes:t,soon:o})]})]}),x!==null&&(0,V.jsx)(RO,{percent:x,classes:t,index:0})]}),s.productUsage.map((e,r)=>{let i=e.usagePercent===null?null:Math.max(0,Math.min(100,e.usagePercent)),a=i===null?null:Math.max(0,Math.min(100,100-i));return(0,V.jsxs)(`div`,{className:t.quotaRow,children:[(0,V.jsxs)(`div`,{className:t.quotaRowHeader,children:[(0,V.jsx)(`span`,{className:t.quotaModel,children:n(`xai_quota.product_usage`,{product:e.product})}),(0,V.jsx)(`div`,{className:t.quotaMeta,children:(0,V.jsx)(`span`,{className:t.quotaPercent,children:n(`xai_quota.used_percent`,{percent:yA(i)})})})]}),(0,V.jsx)(RO,{percent:a,classes:t,index:r+1})]},`product-${e.product}`)}),p>0?(0,V.jsxs)(`div`,{className:t.quotaRow,children:[(0,V.jsxs)(`div`,{className:t.quotaRowHeader,children:[(0,V.jsx)(`span`,{className:t.quotaModel,children:n(`xai_quota.pay_as_you_go_label`)}),(0,V.jsxs)(`div`,{className:t.quotaMeta,children:[(0,V.jsx)(`span`,{className:t.quotaPercent,children:g}),(0,V.jsx)(`span`,{className:t.quotaAmount,children:_})]})]}),(0,V.jsx)(RO,{percent:h,classes:t,index:s.productUsage.length+1})]}):(0,V.jsxs)(`div`,{className:t.codexPlan,children:[(0,V.jsx)(`span`,{className:t.codexPlanLabel,children:n(`xai_quota.pay_as_you_go_label`)}),(0,V.jsx)(`span`,{className:t.codexPlanValue,children:n(`xai_quota.pay_as_you_go_disabled`)})]}),T&&(0,V.jsxs)(`div`,{className:t.quotaRow,children:[(0,V.jsxs)(`div`,{className:t.quotaRowHeader,children:[(0,V.jsx)(`span`,{className:t.quotaModel,children:n(`xai_quota.monthly_credits`)}),(0,V.jsxs)(`div`,{className:t.quotaMeta,children:[(0,V.jsx)(`span`,{className:t.quotaPercent,children:u}),(0,V.jsx)(`span`,{className:t.quotaAmount,children:d}),f&&(0,V.jsx)(gk,{display:f,classes:t})]})]}),(0,V.jsx)(RO,{percent:l,classes:t,index:s.productUsage.length+2})]})]})}var TA={antigravity:{...LO,Body:rk},claude:{...lk,Body:_k},codex:{...Vk,Body:Gk},devin:{...kk,Body:Ak},kimi:{...nA,Body:rA},meta:{...Xk,Body:Zk},xai:{...hA,Body:wA}},EA=e=>Mm.getState()[e.storeSetter],DA=e=>e.storeSelector(Mm.getState()),OA={quotaSection:`AuthFileQuota-module__quotaSection___B1NkU`,quotaMessage:`AuthFileQuota-module__quotaMessage___cvzkK`,quotaMessageAction:`AuthFileQuota-module__quotaMessageAction___B2326`,quotaError:`AuthFileQuota-module__quotaError___j6Dml`,quotaCardActions:`AuthFileQuota-module__quotaCardActions___Wy2PY`,quotaResetCreditButton:`AuthFileQuota-module__quotaResetCreditButton___CdV7t`,quotaRow:`AuthFileQuota-module__quotaRow___ufmMU`,quotaRowHeader:`AuthFileQuota-module__quotaRowHeader___V-41W`,quotaModel:`AuthFileQuota-module__quotaModel___C-dFE`,quotaMeta:`AuthFileQuota-module__quotaMeta___uftxo`,quotaPercent:`AuthFileQuota-module__quotaPercent___WY2j6`,quotaReset:`AuthFileQuota-module__quotaReset___qSOIY`,quotaResetRelative:`AuthFileQuota-module__quotaResetRelative___uPs7s`,quotaResetRelativeSoon:`AuthFileQuota-module__quotaResetRelativeSoon___j58iD`,quotaAmount:`AuthFileQuota-module__quotaAmount___xZEJm`,quotaBar:`AuthFileQuota-module__quotaBar___5C9oU`,quotaBarFill:`AuthFileQuota-module__quotaBarFill___vBml3`,quotaBarFillHigh:`AuthFileQuota-module__quotaBarFillHigh___Z22Yp`,quotaBarFillMedium:`AuthFileQuota-module__quotaBarFillMedium___FwcLR`,quotaBarFillLow:`AuthFileQuota-module__quotaBarFillLow___ose2c`,codexPlan:`AuthFileQuota-module__codexPlan___qVz5l`,codexPlanItem:`AuthFileQuota-module__codexPlanItem___VZnNr`,codexPlanLabel:`AuthFileQuota-module__codexPlanLabel___K-Sbq`,codexPlanValue:`AuthFileQuota-module__codexPlanValue___6W2YL`,premiumPlanValue:`AuthFileQuota-module__premiumPlanValue___3e3wf`,elitePlanValue:`AuthFileQuota-module__elitePlanValue___H1P29`,antigravityQuotaGroup:`AuthFileQuota-module__antigravityQuotaGroup___cGr3L`,antigravityQuotaGroupHeader:`AuthFileQuota-module__antigravityQuotaGroupHeader___I5iUs`,antigravityQuotaGroupTitle:`AuthFileQuota-module__antigravityQuotaGroupTitle___IcwtE`,antigravityQuotaGroupDescription:`AuthFileQuota-module__antigravityQuotaGroupDescription___QIQvW`,codexResetCredits:`AuthFileQuota-module__codexResetCredits___ck-iL`,codexResetCreditsTitle:`AuthFileQuota-module__codexResetCreditsTitle___L5hee`,codexResetCreditRow:`AuthFileQuota-module__codexResetCreditRow___BpvcM`,codexResetCreditRowSoon:`AuthFileQuota-module__codexResetCreditRowSoon___MG1la`,codexResetCreditLabel:`AuthFileQuota-module__codexResetCreditLabel___CXf0-`,codexResetCreditTime:`AuthFileQuota-module__codexResetCreditTime___TjNwy`,codexResetCreditsError:`AuthFileQuota-module__codexResetCreditsError___HoA4w`},kA=NO(OA,`AuthFileQuota.module.scss`),AA=e=>{throw Error(`Unsupported quota type: ${e}`)};function jA(e){let{file:t,quotaType:n,disableControls:r}=e,{t:i}=B(),a=Jc(e=>e.showNotification),o=Jc(e=>e.showConfirmation),[s,c]=(0,y.useState)(!1),l=TA[n],u=Om(t),d=Mm(e=>n===`antigravity`?e.antigravityQuota[u]:n===`claude`?e.claudeQuota[u]:n===`codex`?e.codexQuota[u]:n===`devin`?e.devinQuota[u]:n===`kimi`?e.kimiQuota[u]:n===`meta`?e.metaQuota[u]:n===`xai`?e.xaiQuota[u]:AA(n)),f=Mm(e=>e[l.storeSetter]),p=(0,y.useCallback)(async()=>{if(r||yO(t)||t.disabled||d?.status===`loading`)return;let e=Nm(t.name);f(e=>({...e,[u]:l.buildLoadingState()}));try{let n=await l.fetchQuota(t,i);Pm(e,()=>{f(e=>({...e,[u]:l.buildSuccessState(n)})),a(i(`auth_files.quota_refresh_success`,{name:t.name}),`success`)})}catch(n){let r=n instanceof Error?n.message:i(`common.unknown_error`),o=I_(n);Pm(e,()=>{f(e=>({...e,[u]:l.buildErrorState(r,o)})),a(i(`auth_files.quota_refresh_failed`,{name:t.name,message:r}),`error`)})}},[l,u,r,t,d?.status,a,i,f]),m=(0,y.useCallback)(()=>{if(r||yO(t)||t.disabled||d?.status===`loading`||s)return;let e=l.resetQuota;e&&o({title:i(`codex_quota.reset_confirm_title`),message:i(`codex_quota.reset_confirm_message`,{name:t.name}),confirmText:i(`codex_quota.reset_confirm_button`),variant:`primary`,onConfirm:async()=>{let n=Nm(t.name);c(!0);try{let r=await e(t,i);Pm(n,()=>{f(e=>({...e,[u]:l.buildSuccessState(r)})),a(i(`codex_quota.reset_success`,{name:t.name}),`success`)})}catch(e){let r=e instanceof Error?e.message:i(`common.unknown_error`);Pm(n,()=>{a(i(`codex_quota.reset_failed`,{name:t.name,message:r}),`error`)})}finally{c(!1)}}})},[l,u,r,t,d?.status,s,o,a,i,f]),h=d?.status??`idle`,g=!r&&!t.disabled&&!s,_=g&&h!==`loading`,v=d!==void 0&&!!l.canResetQuota?.(d),b=l.resetQuota&&v?(0,V.jsxs)(H,{type:`button`,variant:`secondary`,size:`sm`,className:OA.quotaResetCreditButton,onClick:()=>m(),disabled:!_,loading:s,title:i(`codex_quota.reset_button`),"aria-label":i(`codex_quota.reset_button`),children:[!s&&(0,V.jsx)(Ts,{size:14}),i(`codex_quota.reset_button`)]}):void 0,x=Jg(i,d?.errorStatus,d?.error||i(`common.unknown_error`));return(0,V.jsxs)(`div`,{className:OA.quotaSection,children:[h===`loading`?(0,V.jsx)(`div`,{className:OA.quotaMessage,children:i(`${l.i18nPrefix}.loading`)}):h===`idle`?(0,V.jsx)(`button`,{type:`button`,className:`${OA.quotaMessage} ${OA.quotaMessageAction}`,onClick:()=>void p(),disabled:!g,children:i(`${l.i18nPrefix}.idle`)}):h===`error`?(0,V.jsx)(`div`,{className:OA.quotaError,children:i(`${l.i18nPrefix}.load_failed`,{message:x})}):d?(0,V.jsx)(l.Body,{quota:d,classes:kA}):(0,V.jsx)(`div`,{className:OA.quotaMessage,children:i(`${l.i18nPrefix}.idle`)}),h!==`idle`&&(b||n===`devin`)&&(0,V.jsxs)(`div`,{className:OA.quotaCardActions,children:[b,n===`devin`&&(0,V.jsxs)(H,{type:`button`,variant:`secondary`,size:`sm`,className:OA.quotaResetCreditButton,onClick:()=>void p(),disabled:!g||h===`loading`,loading:h===`loading`,title:i(`auth_files.quota_refresh_hint`),children:[h!==`loading`&&(0,V.jsx)(Ts,{size:14}),i(`auth_files.quota_refresh_single`)]})]})]})}var MA={quota:`auth_files.cooldown_reason_quota`,credential_quota:`auth_files.cooldown_reason_credential_quota`,cloudflare_challenge:`auth_files.cooldown_reason_cloudflare_challenge`,invalid_grant:`auth_files.cooldown_reason_invalid_grant`,unauthorized:`auth_files.cooldown_reason_unauthorized`,payment_required:`auth_files.cooldown_reason_payment_required`,not_found:`auth_files.cooldown_reason_not_found`,model_not_supported:`auth_files.cooldown_reason_model_not_supported`,transient_error:`auth_files.cooldown_reason_transient_error`};function NA(e){return Object.prototype.hasOwnProperty.call(MA,e)?MA[e]:`auth_files.cooldown_reason_unknown`}function PA(e,t,n){let r=Math.max(0,n-t);return Math.max(0,Math.ceil(e.remainingSeconds-r/1e3))}function FA(e,t){let n=(e.records??[]).map(n=>({record:n,remainingSeconds:PA(n,e.receivedAtMs,t)})),r=n.filter(e=>e.remainingSeconds>0);return{rows:n,modelCount:r.filter(e=>e.record.scope===`model`).length,credentialWide:r.some(e=>e.record.scope===`credential`),earliestSeconds:r.length?Math.min(...r.map(e=>e.remainingSeconds)):0}}var IA={section:`AuthFileCooldownSection-module__section___0cf17`,summary:`AuthFileCooldownSection-module__summary___YCBqz`,summaryContent:`AuthFileCooldownSection-module__summaryContent___aUGTv`,scope:`AuthFileCooldownSection-module__scope___HbPsT`,next:`AuthFileCooldownSection-module__next___6nWTR`,remaining:`AuthFileCooldownSection-module__remaining___d9-1N`,chevron:`AuthFileCooldownSection-module__chevron___eee5S`,body:`AuthFileCooldownSection-module__body___fl9L2`,list:`AuthFileCooldownSection-module__list___GB-U0`,row:`AuthFileCooldownSection-module__row___4NF2K`,rowHead:`AuthFileCooldownSection-module__rowHead___AtRzq`,model:`AuthFileCooldownSection-module__model___yi0U1`,reason:`AuthFileCooldownSection-module__reason___uw8jl`,deadline:`AuthFileCooldownSection-module__deadline___sl0iU`,observed:`AuthFileCooldownSection-module__observed___j63b0`,note:`AuthFileCooldownSection-module__note___WqVNg`,unknown:`AuthFileCooldownSection-module__unknown___2UlQu`,actionRow:`AuthFileCooldownSection-module__actionRow___v1gr9`,elapsed:`AuthFileCooldownSection-module__elapsed___s8CNK`},LA=uk({intervalMs:1e3});function RA({snapshot:e,resetting:t=!1,resetDisabled:n=!1,onReset:r}){let{t:i}=B();return e?e.records===null?(0,V.jsx)(`p`,{className:IA.unknown,children:i(`auth_files.cooldown_unknown`)}):e.records.length===0?null:(0,V.jsx)(zA,{snapshot:e,resetting:t,resetDisabled:n,onReset:r}):null}function zA({snapshot:e,resetting:t,resetDisabled:n,onReset:r}){let{t:i,i18n:a}=B(),{rows:o,modelCount:s,credentialWide:c,earliestSeconds:l}=FA(e,(0,y.useSyncExternalStore)(LA.subscribe,LA.getSnapshot,LA.getSnapshot)),u=l===0,d=e=>e<60?i(`auth_files.cooldown_seconds`,{count:e}):e<3600?i(`auth_files.cooldown_minutes`,{count:Math.ceil(e/60)}):i(`auth_files.cooldown_hours`,{count:Math.ceil(e/3600)}),f=c?s>0?i(`auth_files.cooldown_credential_and_models`,{count:s}):i(`auth_files.cooldown_credential`):i(`auth_files.cooldown_models`,{count:s});return(0,V.jsxs)(`details`,{className:`${IA.section} ${u?IA.elapsed:``}`,children:[(0,V.jsxs)(`summary`,{className:IA.summary,children:[(0,V.jsxs)(`span`,{className:IA.summaryContent,children:[(0,V.jsx)(`span`,{className:IA.scope,children:u?i(`auth_files.cooldown_elapsed`):f}),(0,V.jsx)(`span`,{className:IA.next,children:u?i(`auth_files.cooldown_refresh_hint`):i(`auth_files.cooldown_earliest`,{time:d(l)})})]}),(0,V.jsx)(Rs,{size:14,className:IA.chevron,"aria-hidden":`true`})]}),(0,V.jsxs)(`div`,{className:IA.body,children:[(0,V.jsx)(`ul`,{className:IA.list,children:o.map(({record:e,remainingSeconds:t},n)=>(0,V.jsxs)(`li`,{className:IA.row,children:[(0,V.jsxs)(`div`,{className:IA.rowHead,children:[(0,V.jsx)(`span`,{className:IA.model,children:e.scope===`credential`?i(`auth_files.cooldown_scope_credential`):e.modelKey}),(0,V.jsx)(`span`,{className:IA.remaining,children:t>0?d(t):i(`auth_files.cooldown_timer_elapsed`)})]}),(0,V.jsxs)(`div`,{className:IA.reason,children:[(0,V.jsx)(`span`,{children:i(NA(e.reason))}),e.httpStatus!==void 0&&(0,V.jsx)(`span`,{children:i(`auth_files.cooldown_http_status`,{status:e.httpStatus})}),e.backoffLevel!==void 0&&(0,V.jsx)(`span`,{children:i(`auth_files.cooldown_backoff`,{level:e.backoffLevel})})]}),(0,V.jsxs)(`div`,{className:IA.deadline,children:[i(`auth_files.cooldown_deadline`),` `,(0,V.jsx)(`time`,{dateTime:e.retryAt,children:yg(e.retryAt,a.language)})]})]},`${e.scope}:${e.modelKey??``}:${n}`))}),e.observedAt&&(0,V.jsxs)(`p`,{className:IA.observed,children:[i(`auth_files.cooldown_observed`),` `,(0,V.jsx)(`time`,{dateTime:e.observedAt,children:yg(e.observedAt,a.language)})]}),(0,V.jsx)(`p`,{className:IA.note,children:i(`auth_files.cooldown_note`)}),r&&(0,V.jsx)(`div`,{className:IA.actionRow,children:(0,V.jsxs)(H,{variant:`secondary`,size:`sm`,onClick:r,loading:t,disabled:n,title:i(`auth_files.cooldown_reset_hint`),children:[!t&&(0,V.jsx)(Ts,{size:14}),i(`auth_files.cooldown_reset_button`)]})})]})]})}var BA={card:`AuthFileCard-module__card___uGYSU`,cardDisabled:`AuthFileCard-module__cardDisabled___VNdBP`,actions:`AuthFileCard-module__actions___rRBeL`,cardCompact:`AuthFileCard-module__cardCompact___OASyT`,cardSelected:`AuthFileCard-module__cardSelected___8nfCV`,cardEnter:`AuthFileCard-module__cardEnter___sxjp9`,"card-in":`AuthFileCard-module__card-in___3x8Zj`,cardIn:`AuthFileCard-module__card-in___3x8Zj`,head:`AuthFileCard-module__head___v8x8N`,selection:`AuthFileCard-module__selection___U0qhE`,identity:`AuthFileCard-module__identity___eeILs`,providerBadge:`AuthFileCard-module__providerBadge___6gvmI`,runtimeLabel:`AuthFileCard-module__runtimeLabel___KWnYK`,account:`AuthFileCard-module__account___Rff3G`,accountMono:`AuthFileCard-module__accountMono___j0kio`,fileName:`AuthFileCard-module__fileName___4SoBR`,note:`AuthFileCard-module__note___1z3AW`,warning:`AuthFileCard-module__warning___fbAFD`,warningIcon:`AuthFileCard-module__warningIcon___uDlER`,health:`AuthFileCard-module__health___QjVqU`,healthHead:`AuthFileCard-module__healthHead___qOS-e`,healthLabel:`AuthFileCard-module__healthLabel___aT74P`,healthCounts:`AuthFileCard-module__healthCounts___CpV5-`,countOk:`AuthFileCard-module__countOk___3T-mO`,countFail:`AuthFileCard-module__countFail___FiHCK`,countLive:`AuthFileCard-module__countLive___GrmF6`,statusBar:`AuthFileCard-module__statusBar___l4HLW`,statusBlocks:`AuthFileCard-module__statusBlocks___QcWpO`,statusBlockWrapper:`AuthFileCard-module__statusBlockWrapper___XDWa-`,statusBlock:`AuthFileCard-module__statusBlock___HUSel`,statusBlockIdle:`AuthFileCard-module__statusBlockIdle___fhxJM`,statusBlockActive:`AuthFileCard-module__statusBlockActive___cEW6c`,statusRate:`AuthFileCard-module__statusRate___Qq2JK`,statusRateHigh:`AuthFileCard-module__statusRateHigh___KqEoP`,statusRateMedium:`AuthFileCard-module__statusRateMedium___2EC-8`,statusRateLow:`AuthFileCard-module__statusRateLow___6aoPQ`,statusTooltip:`AuthFileCard-module__statusTooltip___Wkvm1`,statusTooltipLeft:`AuthFileCard-module__statusTooltipLeft___8BuX-`,statusTooltipRight:`AuthFileCard-module__statusTooltipRight___IH6DF`,tooltipTime:`AuthFileCard-module__tooltipTime___0UfaN`,tooltipStats:`AuthFileCard-module__tooltipStats___IyHCo`,tooltipSuccess:`AuthFileCard-module__tooltipSuccess___p9K34`,tooltipFailure:`AuthFileCard-module__tooltipFailure___YFaP8`,tooltipRate:`AuthFileCard-module__tooltipRate___GoIfn`,metaRow:`AuthFileCard-module__metaRow___nfLnW`,metaDivider:`AuthFileCard-module__metaDivider___YdOzs`,metaPriority:`AuthFileCard-module__metaPriority___MNn3v`,metaWeight:`AuthFileCard-module__metaWeight___ev--T`,metaMetricLabel:`AuthFileCard-module__metaMetricLabel___ZyF33`,actionsMain:`AuthFileCard-module__actionsMain___9-6f3`,utilityActions:`AuthFileCard-module__utilityActions___1eq5S`,iconButton:`AuthFileCard-module__iconButton___XdMXe`,toggleWrap:`AuthFileCard-module__toggleWrap___QD-r9`,toggleLabel:`AuthFileCard-module__toggleLabel___StDgj`};function VA(e){let{t}=B(),{file:n,compact:r,selected:i,resolvedTheme:a,disableControls:o,deleting:s,statusUpdating:c,manualRefreshing:l,cooldownResetting:u,quotaFilterType:d,statusBarCache:f,entranceDelayMs:p,onShowModels:m,onDownload:h,onManualRefresh:g,onCooldownReset:_,onOpenPrefixProxyEditor:v,onDelete:b,onToggleStatus:x,onToggleSelect:S}=e,C=yO(n),w=ZD(String(n.type??n.provider??`unknown`)),T=!C||w===`aistudio`,E=!C&&QD(w),D=l[SO(n)]===!0,O=iO(t,w),k=aO(w,a),A=kO(n,d),j=!!A&&!C&&!r,M=n.successCount??0,N=n.failureCount??0,ee=typeof n.authIndex==`string`?n.authIndex:null,P=!!(ee&&u[ee]),F=ee&&f.get(ee)||bm(n.recentRequests??[]),I=eO(n),L=nO(n),R=Number.isSafeInteger(n.priority)?n.priority:void 0,te=Number.isSafeInteger(n.weight)?n.weight:void 0,ne=typeof n.note==`string`?n.note.trim():``,re=EO(n),[z]=(0,y.useState)(p??null);return(0,V.jsxs)(`article`,{className:[BA.card,r?BA.cardCompact:``,i?BA.cardSelected:``,n.disabled===!0?BA.cardDisabled:``,z==null?``:BA.cardEnter].filter(Boolean).join(` `),style:z==null?void 0:{"--card-delay":`${z}ms`},children:[(0,V.jsxs)(`header`,{className:BA.head,children:[!C&&(0,V.jsx)(yc,{checked:i,onChange:()=>S(n.name),className:BA.selection,ariaLabel:t(`auth_files.card_select`,{name:n.name}),title:t(`auth_files.card_select`,{name:n.name})}),(0,V.jsxs)(`h3`,{className:BA.identity,children:[(0,V.jsx)(`span`,{className:BA.providerBadge,style:{backgroundColor:k.bg,color:k.text,...k.border?{border:k.border}:{}},children:O}),(0,V.jsx)(`span`,{className:`${BA.account} ${re.kind===`fileName`?BA.accountMono:``}`,title:re.primary,children:re.primary})]}),C&&(0,V.jsx)(`span`,{className:BA.runtimeLabel,children:t(`auth_files.type_virtual`)})]}),re.secondary&&(0,V.jsx)(`p`,{className:BA.fileName,title:re.fullName,children:re.secondary}),!r&&ne&&(0,V.jsx)(`p`,{className:BA.note,title:ne,children:ne}),I&&L&&(0,V.jsxs)(`div`,{className:BA.warning,title:I,children:[(0,V.jsx)(ws,{className:BA.warningIcon,size:14}),(0,V.jsx)(`span`,{children:I})]}),(0,V.jsx)(RA,{snapshot:n.cooldownSnapshot,resetting:P,resetDisabled:o||c[SO(n)]===!0||D,onReset:ee?()=>_(n):void 0}),(0,V.jsxs)(`div`,{className:BA.health,children:[(0,V.jsxs)(`div`,{className:BA.healthHead,children:[(0,V.jsx)(`span`,{className:BA.healthLabel,children:t(`auth_files.card_requests`)}),(0,V.jsxs)(`span`,{className:BA.healthCounts,children:[(0,V.jsxs)(`span`,{className:`${BA.countOk} ${M>0?BA.countLive:``}`,title:t(`stats.success`),children:[t(`stats.success`),` `,M]}),(0,V.jsxs)(`span`,{className:`${BA.countFail} ${N>0?BA.countLive:``}`,title:t(`stats.failure`),children:[t(`stats.failure`),` `,N]})]})]}),(0,V.jsx)(iw,{statusData:F,styles:BA})]}),(0,V.jsxs)(`div`,{className:BA.metaRow,children:[(0,V.jsx)(`span`,{title:t(`auth_files.file_size`),children:n.size?fg(n.size):`-`}),(0,V.jsx)(`span`,{className:BA.metaDivider,"aria-hidden":`true`,children:`·`}),(0,V.jsx)(`span`,{title:t(`auth_files.file_modified`),children:bO(n)}),R!==void 0&&(0,V.jsxs)(V.Fragment,{children:[(0,V.jsx)(`span`,{className:BA.metaDivider,"aria-hidden":`true`,children:`·`}),(0,V.jsxs)(`span`,{className:BA.metaPriority,title:t(`auth_files.priority_hint`),children:[(0,V.jsx)(`span`,{className:BA.metaMetricLabel,children:t(`auth_files.priority_display`)}),(0,V.jsx)(`span`,{children:R})]})]}),te!==void 0&&(0,V.jsxs)(V.Fragment,{children:[(0,V.jsx)(`span`,{className:BA.metaDivider,"aria-hidden":`true`,children:`·`}),(0,V.jsxs)(`span`,{className:BA.metaWeight,title:t(`auth_files.weight_tooltip`),children:[(0,V.jsx)(`span`,{className:BA.metaMetricLabel,children:t(`auth_files.weight_display`)}),(0,V.jsx)(`span`,{children:te})]})]})]}),j&&A&&(0,V.jsx)(jA,{file:n,quotaType:A,disableControls:o}),(0,V.jsxs)(`footer`,{className:BA.actions,children:[(0,V.jsxs)(`div`,{className:BA.actionsMain,children:[T&&(0,V.jsxs)(H,{variant:`secondary`,size:`sm`,onClick:()=>m(n),title:t(`auth_files.models_button`),disabled:o,children:[(0,V.jsx)(_s,{size:14}),t(`auth_files.models_button`)]}),!C&&(0,V.jsxs)(`div`,{className:BA.utilityActions,children:[E&&(0,V.jsx)(H,{variant:`secondary`,size:`sm`,onClick:()=>g(n),className:BA.iconButton,title:t(`auth_files.manual_refresh_button`),disabled:o||n.disabled||c[SO(n)]===!0||D,children:D?(0,V.jsx)(CO,{size:14}):(0,V.jsx)(Ts,{size:15})}),(0,V.jsx)(H,{variant:`secondary`,size:`sm`,onClick:()=>h(n.name),className:BA.iconButton,title:t(`auth_files.download_button`),disabled:o,children:(0,V.jsx)(Es,{size:15})}),(0,V.jsx)(H,{variant:`secondary`,size:`sm`,onClick:()=>v(n),className:BA.iconButton,title:t(`auth_files.prefix_proxy_button`),disabled:o||D,children:(0,V.jsx)(xs,{size:15})}),(0,V.jsx)(H,{variant:`danger`,size:`sm`,onClick:()=>b(n.name),className:BA.iconButton,title:t(`auth_files.delete_button`),disabled:o||s===n.name||D,children:s===n.name?(0,V.jsx)(CO,{size:14}):(0,V.jsx)(Os,{size:15})})]})]}),!C&&(0,V.jsxs)(`div`,{className:BA.toggleWrap,children:[(0,V.jsx)(`span`,{className:BA.toggleLabel,children:t(`auth_files.status_toggle_label`)}),(0,V.jsx)($C,{ariaLabel:t(`auth_files.card_toggle`,{name:n.name}),checked:!n.disabled,disabled:o||c[SO(n)]===!0||D,onChange:e=>x(n,e)})]})]})]})}function HA({fileName:e,value:t,disabled:n,onChange:r}){let{t:i}=B(),a=`${(0,y.useId)()}-excluded-models-label`,o=(0,y.useRef)(t),[s,c]=(0,y.useState)([]),[l,u]=(0,y.useState)(!1),[d,f]=(0,y.useState)(!1);(0,y.useEffect)(()=>{o.current=t},[t]),(0,y.useEffect)(()=>{let t=!1;return c([]),u(!0),f(!1),jy.getModelsForAuthFile(e).then(e=>{if(t)return;let n=new Map;e.forEach(e=>{let t=e.id?.trim();t&&n.set(t.toLowerCase(),{...e,id:t})}),GT(o.current).forEach(e=>{!e.includes(`*`)&&!n.has(e.toLowerCase())&&n.set(e.toLowerCase(),{id:e})}),c([...n.values()].sort((e,t)=>e.id.localeCompare(t.id,void 0,{sensitivity:`base`})))}).catch(()=>{t||f(!0)}).finally(()=>{t||u(!1)}),()=>{t=!0}},[e]);let p=(0,y.useMemo)(()=>GT(t),[t]),m=(0,y.useMemo)(()=>s.map(e=>({id:e.id,displayName:e.display_name})),[s]),h=l?`loading`:d?`error`:`ready`;return(0,V.jsxs)(`div`,{className:`form-group`,children:[(0,V.jsx)(`label`,{id:a,children:i(`auth_files.excluded_models_label`)}),(0,V.jsx)(oE,{value:p,onChange:e=>r(KT(e)),candidates:m,catalogState:h,disabled:n,labelledBy:a})]})}var UA={policyFields:`AuthFilePolicyFields-module__policyFields___t1mgP`,unsupported:`AuthFilePolicyFields-module__unsupported___xDzMr`},WA=Symbol(`credentialRawRule`),GA=e=>typeof e==`object`&&!!e&&!Array.isArray(e),KA=(e,t)=>Object.prototype.hasOwnProperty.call(e,t)?e[t]:e[t.replace(/_/g,`-`)];function qA(e){if(e==null)return[];if(!Array.isArray(e))return null;let t=[];for(let n of e){if(!GA(n)||typeof n.name!=`string`||typeof n.alias!=`string`||n.fork!==void 0&&typeof n.fork!=`boolean`||n[`display-name`]!==void 0&&typeof n[`display-name`]!=`string`||n[`force-mapping`]!==void 0&&typeof n[`force-mapping`]!=`boolean`)return null;t.push({name:n.name,alias:n.alias,fork:n.fork,displayName:n[`display-name`],forceMapping:n[`force-mapping`],original:{...n}})}return t}function JA(e){return e.map(e=>{let t={...e.original,name:e.name,alias:e.alias};for(let[n,r]of Object.entries({fork:e.fork,"display-name":e.displayName,"force-mapping":e.forceMapping}))r!==void 0&&Object.assign(t,{[n]:r});return t})}function YA(e){if(e==null)return[];if(!Array.isArray(e))return null;let t=[];for(let n of e){if(!GA(n)||n.status!==void 0&&typeof n.status!=`number`||n.action!==void 0&&typeof n.action!=`string`||[n.match,n[`match-regexr`]].some(e=>e!==void 0&&(!Array.isArray(e)||!e.every(e=>typeof e==`string`))))return null;t.push({...n,matchRegex:n[`match-regexr`],[WA]:{...n}})}return t}function XA(e,t){return e.map((e,n)=>{let r={...t[n]?.[WA]};for(let t of[`status`,`action`,`match`])e[t]!==void 0&&(r[t]=e[t]);return e.matchRegex!==void 0&&(r[`match-regexr`]=e.matchRegex),r})}function ZA(e,t){for(let n of[`request_retry`,`model_aliases`,`request_scoped_errors`])t[n]!==void 0&&(delete e[n.replace(/_/g,`-`)],n===`request_retry`&&t[n]===null?delete e[n]:e[n]=t[n])}var QA={requestRetry:`request_retry`,modelAliases:`model_aliases`,errorRules:`request_scoped_errors`},$A=(e,t)=>JSON.stringify(e)===JSON.stringify(t);function ej(e){let t=KA(e,QA.requestRetry),n=typeof t==`number`||typeof t==`string`&&/^[+-]?\d+$/.test(t.trim())?Number(t):null,r=t==null||n!==null&&n<0,i=qA(KA(e,QA.modelAliases)),a=YA(KA(e,QA.errorRules));return{requestRetry:{mode:r?`inherit`:`custom`,value:r?`0`:String(n??t)},modelAliases:{mode:i?.length===0?`inherit`:`custom`,rows:i},errorRules:{mode:a?.length===0?`inherit`:`custom`,rows:a===null?null:Kw(a)},touched:{}}}function tj(e){if(!e)return null;let t=e.requestRetry;return e.touched.requestRetry&&t.mode===`custom`&&(!/^\d+$/.test(t.value.trim())||!Number.isSafeInteger(Number(t.value)))?`auth_files.policy_retry_invalid`:e.touched.modelAliases&&e.modelAliases.mode===`custom`&&e.modelAliases.rows?.some(e=>e.original&&$A(JA([e])[0],e.original)?!1:!e.name.trim()||!e.alias?.trim())?`auth_files.policy_aliases_invalid`:e.touched.errorRules&&e.errorRules.mode===`custom`&&e.errorRules.rows?.some(Zw)?`auth_files.policy_rules_invalid`:null}function Hee(e,t){let n={};if(!t)return n;let r=ej(e),i=tj(t);if(i)throw Error(i);for(let i of Object.keys(QA)){if(!t.touched[i]||$A(t[i],r[i]))continue;let a;if(i===`requestRetry`)a=t.requestRetry.mode===`inherit`?null:Number(t.requestRetry.value);else if(t[i].mode===`inherit`)a=[];else if(i===`modelAliases`){if(t.modelAliases.rows===null)continue;a=JA(t.modelAliases.rows)}else{if(t.errorRules.rows===null)continue;a=XA(Qw(t.errorRules.rows),t.errorRules.rows.map(e=>e.original))}$A(a,KA(e,QA[i])??(i===`requestRetry`?null:[]))||(n[QA[i]]=a)}return n}function Uee(e,t){ZA(e,t)}function Wee({draft:e,disabled:t,onChange:n}){let{t:r}=B(),i=(0,y.useId)(),a=tj(e),o=(a,o)=>(0,V.jsxs)(V.Fragment,{children:[(0,V.jsx)(`label`,{id:`${i}-${a}`,children:r(o)}),(0,V.jsx)(_c,{ariaLabelledBy:`${i}-${a}`,value:e[a].mode,options:[{value:`inherit`,label:r(`auth_files.policy_inherit`)},{value:`custom`,label:r(`auth_files.policy_custom`)}],disabled:t,onChange:t=>n(a,{...e[a],mode:t})})]});return(0,V.jsxs)(`div`,{className:UA.policyFields,children:[(0,V.jsxs)(`div`,{className:`form-group`,children:[o(`requestRetry`,`auth_files.policy_retry_label`),e.requestRetry.mode===`custom`&&(0,V.jsx)(ds,{label:r(`auth_files.policy_retry_count`),type:`number`,min:0,step:1,value:e.requestRetry.value,disabled:t,error:a===`auth_files.policy_retry_invalid`?r(a):void 0,onChange:t=>n(`requestRetry`,{...e.requestRetry,value:t.target.value})}),(0,V.jsx)(`div`,{className:`hint`,children:r(`auth_files.policy_retry_hint`)})]}),[`modelAliases`,`errorRules`].map(i=>{let a=i===`modelAliases`?`aliases`:`rules`,s=e[i];return(0,V.jsxs)(`div`,{className:`form-group`,children:[o(i,`auth_files.policy_${a}_label`),(0,V.jsx)(`div`,{className:`hint`,children:r(`auth_files.policy_${a}_hint`)}),s.mode===`custom`&&(s.rows===null?(0,V.jsxs)(`div`,{className:UA.unsupported,children:[(0,V.jsx)(`p`,{className:`hint`,children:r(`auth_files.policy_unsupported`)}),(0,V.jsx)(H,{variant:`secondary`,disabled:t,onClick:()=>n(i,{mode:`custom`,rows:[]}),children:r(`auth_files.policy_replace`)})]}):i===`modelAliases`?(0,V.jsx)(Pw,{oauthAliasOnly:!0,models:e.modelAliases.rows??[],supportsImage:!1,supportsThinking:!1,mutating:t,removeDisabled:!1,onUpdate:(t,r)=>n(`modelAliases`,{mode:`custom`,rows:e.modelAliases.rows.map((e,n)=>n===t?{...e,...r}:e)}),onAdd:()=>n(`modelAliases`,{mode:`custom`,rows:[...e.modelAliases.rows,{name:``,alias:``}]}),onRemove:t=>n(`modelAliases`,{mode:`custom`,rows:e.modelAliases.rows.filter((e,n)=>n!==t)})}):(0,V.jsx)(mT,{rules:e.errorRules.rows??[],disabled:t,onChange:e=>n(`errorRules`,{mode:`custom`,rows:e})}))]},i)}),a&&(0,V.jsx)(`div`,{className:`error-box`,role:`alert`,children:r(a)})]})}var nj={editor:`AuthFileDetailsSheet-module__editor___DbnN-`,loading:`AuthFileDetailsSheet-module__loading___H-cxN`,error:`AuthFileDetailsSheet-module__error___0Uib2`,jsonWrapper:`AuthFileDetailsSheet-module__jsonWrapper___sDPqO`,label:`AuthFileDetailsSheet-module__label___b-EEy`,textarea:`AuthFileDetailsSheet-module__textarea___5tXvP`,textareaInvalid:`AuthFileDetailsSheet-module__textareaInvalid___IyPX0`,invalidPreview:`AuthFileDetailsSheet-module__invalidPreview___XEQ5F`,fields:`AuthFileDetailsSheet-module__fields___fA024`,settingsLink:`AuthFileDetailsSheet-module__settingsLink___y9VZ6`},Gee=[`successCount`,`failureCount`,`recentRequests`,`runtimeOnly`,`authIndex`,`statusMessage`,`modified`,`projectId`];function Kee(e){let{t}=B(),n=hr(),{disableControls:r,editor:i,updatedText:a,dirty:o,onClose:s,onCopyText:c,onSave:l,onChange:u}=e,d=Jc(e=>e.showConfirmation),f=(0,y.useCallback)(()=>!o||i?.saving===!0||new Promise(e=>{d({title:t(`providersPage.unsavedChanges.title`),message:t(`providersPage.unsavedChanges.message`),variant:`danger`,confirmText:t(`providersPage.unsavedChanges.discard`),cancelText:t(`providersPage.unsavedChanges.keepEditing`),onConfirm:()=>e(!0),onCancel:()=>e(!1)})}),[o,i?.saving,d,t]),p=(0,y.useCallback)(()=>{Promise.resolve(f()).then(e=>{e&&s()})},[f,s]),m=(0,y.useCallback)(e=>{e.preventDefault(),!i?.saving&&Promise.resolve(f()).then(e=>{e&&n(`/config?field=routingStrategy`)})},[f,i?.saving,n]),h=(e=>{if(!e)return``;try{return JSON.stringify(JSON.parse(e),null,2)}catch{return e}})(a),g=i?.invalidContentPreview??``,_=i?.fileInfoText??``,v=(0,y.useMemo)(()=>{if(!_)return``;try{let e=JSON.parse(_);if(e&&typeof e==`object`&&!Array.isArray(e)){let t=e;return Gee.forEach(e=>{delete t[e]}),JSON.stringify(t,null,2)}}catch{}return _},[_]);return(0,V.jsx)(RT,{open:!!i,onClose:s,confirmClose:f,size:`md`,closeDisabled:i?.saving===!0,eyebrow:t(`auth_files.prefix_proxy_button`),title:i?.fileName??``,footer:(0,V.jsxs)(V.Fragment,{children:[(0,V.jsx)(H,{variant:`secondary`,onClick:p,disabled:i?.saving===!0,children:t(o?`common.cancel`:`common.close`)}),(0,V.jsx)(H,{variant:`secondary`,onClick:()=>{a&&c(a)},disabled:i?.saving===!0||!a,children:t(`common.copy`)}),(0,V.jsx)(H,{onClick:l,loading:i?.saving===!0,disabled:r||i?.saving===!0||!o||!i?.json||!!(i?.headersTouched&&i.headersError)||!!i?.weightError||!!tj(i?.policy),children:t(`common.save`)})]}),children:i&&(0,V.jsx)(`div`,{className:nj.editor,children:i.loading?(0,V.jsxs)(`div`,{className:nj.loading,children:[(0,V.jsx)(CO,{size:14}),(0,V.jsx)(`span`,{children:t(`auth_files.prefix_proxy_loading`)})]}):(0,V.jsxs)(V.Fragment,{children:[i.error&&(0,V.jsx)(`div`,{className:nj.error,children:i.error}),(0,V.jsxs)(`div`,{className:nj.jsonWrapper,children:[(0,V.jsx)(`label`,{className:nj.label,children:t(`auth_files.prefix_proxy_info_label`)}),(0,V.jsx)(`textarea`,{className:nj.textarea,rows:8,readOnly:!0,value:v})]}),(0,V.jsxs)(`div`,{className:nj.jsonWrapper,children:[(0,V.jsx)(`label`,{className:nj.label,children:i.json?t(`auth_files.prefix_proxy_source_label`):t(`auth_files.prefix_proxy_invalid_content_label`)}),i.json?(0,V.jsx)(`textarea`,{className:nj.textarea,rows:10,readOnly:!0,value:h}):(0,V.jsx)(`pre`,{className:nj.invalidPreview,children:g})]}),i.json&&(0,V.jsxs)(`div`,{className:nj.fields,children:[(0,V.jsx)(ds,{label:t(`auth_files.prefix_label`),value:i.prefix,disabled:r||i.saving||!i.json,onChange:e=>u(`prefix`,e.target.value)}),(0,V.jsx)(ds,{label:t(`auth_files.proxy_url_label`),value:i.proxyUrl,placeholder:t(`auth_files.proxy_url_placeholder`),disabled:r||i.saving||!i.json,onChange:e=>u(`proxyUrl`,e.target.value)}),(0,V.jsx)(ds,{label:t(`auth_files.priority_label`),value:i.priority,placeholder:t(`auth_files.priority_placeholder`),hint:t(`auth_files.priority_hint`),disabled:r||i.saving||!i.json,onChange:e=>u(`priority`,e.target.value)}),(0,V.jsx)(ds,{label:t(`auth_files.weight_label`),type:`number`,step:`1`,max:1e6,value:i.weight,placeholder:`1`,hint:(0,V.jsx)(is,{i18nKey:`auth_files.weight_hint`,components:{settingsLink:(0,V.jsx)(Xi,{className:nj.settingsLink,to:`/config?field=routingStrategy`,onClick:m})}}),error:i.weightError??void 0,disabled:r||i.saving||!i.json,onChange:e=>u(`weight`,e.target.value)}),(0,V.jsxs)(`div`,{className:`form-group`,children:[(0,V.jsx)(`label`,{children:t(`auth_files.disable_cooling_label`)}),(0,V.jsx)($C,{checked:i.disableCooling,onChange:e=>u(`disableCooling`,e),disabled:r||i.saving||!i.json,ariaLabel:t(`auth_files.disable_cooling_label`)}),(0,V.jsx)(`div`,{className:`hint`,children:t(`auth_files.disable_cooling_hint`)})]}),pO(i.providerKey)&&(0,V.jsxs)(`div`,{className:`form-group`,children:[(0,V.jsx)(`label`,{children:t(`auth_files.websockets_label`)}),(0,V.jsx)($C,{checked:i.websockets,onChange:e=>u(`websockets`,e),disabled:r||i.saving||!i.json,ariaLabel:t(`auth_files.websockets_label`)}),(0,V.jsx)(`div`,{className:`hint`,children:t(`auth_files.websockets_hint`)})]}),gO(i.providerKey)&&(0,V.jsxs)(`div`,{className:`form-group`,children:[(0,V.jsx)(`label`,{children:t(`auth_files.using_api_label`)}),(0,V.jsx)($C,{checked:i.usingApi,onChange:e=>u(`usingApi`,e),disabled:r||i.saving||!i.json,ariaLabel:t(`auth_files.using_api_label`)}),(0,V.jsx)(`div`,{className:`hint`,children:t(`auth_files.using_api_hint`)})]}),(0,V.jsx)(HA,{fileName:i.fileName,value:i.excludedModelsText,disabled:r||i.saving||!i.json,onChange:e=>u(`excludedModelsText`,e)}),(0,V.jsxs)(`div`,{className:`form-group`,children:[(0,V.jsx)(`label`,{children:t(`auth_files.headers_label`)}),(0,V.jsx)(`textarea`,{className:`input ${i.headersError?nj.textareaInvalid:``}`,value:i.headersText,placeholder:t(`auth_files.headers_placeholder`),rows:4,"aria-invalid":!!i.headersError,disabled:r||i.saving||!i.json,onChange:e=>u(`headersText`,e.target.value)}),i.headersError&&(0,V.jsx)(`div`,{className:`error-box`,children:i.headersError}),(0,V.jsx)(`div`,{className:`hint`,children:t(`auth_files.headers_hint`)})]}),(0,V.jsx)(Wee,{draft:i.policy??ej(i.json),disabled:r||i.saving,onChange:u}),(0,V.jsx)(ds,{label:t(`auth_files.note_label`),value:i.note,placeholder:t(`auth_files.note_placeholder`),hint:t(`auth_files.note_hint`),disabled:r||i.saving||!i.json,onChange:e=>u(`note`,e.target.value)})]})]})})})}var rj={results:`AuthFileRefreshResults-module__results___U02ox`,result:`AuthFileRefreshResults-module__result___bF1x4`,identity:`AuthFileRefreshResults-module__identity___NkCRg`,success:`AuthFileRefreshResults-module__success___CnRq8`,failure:`AuthFileRefreshResults-module__failure___t-pQv`,error:`AuthFileRefreshResults-module__error___MXH8r`};function qee({results:e}){let{t}=B(),n=e.filter(e=>e.success).length;return(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`p`,{role:`status`,children:e.length===0?t(`auth_files.refresh_all_empty`):t(`auth_files.refresh_all_summary`,{success:n,failed:e.length-n})}),(0,V.jsx)(`ul`,{className:rj.results,children:e.map((e,n)=>(0,V.jsxs)(`li`,{className:rj.result,children:[(0,V.jsx)(`strong`,{className:rj.identity,children:e.id}),(0,V.jsx)(`span`,{className:e.success?rj.success:rj.failure,children:t(e.success?`auth_files.refresh_result_success`:`auth_files.refresh_result_failed`)}),!e.success&&e.error&&(0,V.jsx)(`p`,{className:rj.error,children:e.error})]},`${e.id}:${n}`))})]})}function Jee({results:e,onClose:t}){let{t:n}=B();return(0,V.jsx)($m,{open:e!==null,title:n(`auth_files.refresh_all_results`),onClose:t,footer:(0,V.jsx)(H,{onClick:t,children:n(`common.close`)}),children:e!==null&&(0,V.jsx)(qee,{results:e})})}var ij={list:`AuthFileModelsModal-module__list___owxkk`,item:`AuthFileModelsModal-module__item___pNrxv`,itemExcluded:`AuthFileModelsModal-module__itemExcluded___BKMCE`,modelId:`AuthFileModelsModal-module__modelId___Y02bh`,modelDisplayName:`AuthFileModelsModal-module__modelDisplayName___wrhaX`,modelType:`AuthFileModelsModal-module__modelType___O1w-v`,excludedBadge:`AuthFileModelsModal-module__excludedBadge___9NpWz`};function Yee(e){let{t}=B(),{open:n,fileName:r,fileType:i,loading:a,error:o,models:s,excluded:c,onClose:l,onCopyText:u}=e;return(0,V.jsx)($m,{open:n,onClose:l,title:t(`auth_files.models_title`,{defaultValue:`支持的模型`})+` - ${r}`,footer:(0,V.jsx)(H,{variant:`secondary`,onClick:l,children:t(`common.close`)}),children:a?(0,V.jsx)(`div`,{className:`hint`,children:t(`auth_files.models_loading`,{defaultValue:`正在加载模型列表...`})}):o===`unsupported`?(0,V.jsx)(FD,{title:t(`auth_files.models_unsupported`,{defaultValue:`当前版本不支持此功能`}),description:t(`auth_files.models_unsupported_desc`,{defaultValue:`请更新 CLI Proxy API 到最新版本后重试`})}):s.length===0?(0,V.jsx)(FD,{title:t(`auth_files.models_empty`,{defaultValue:`该凭证暂无可用模型`}),description:t(`auth_files.models_empty_desc`,{defaultValue:`该认证凭证可能尚未被服务器加载或没有绑定任何模型`})}):(0,V.jsx)(`div`,{className:ij.list,children:s.map(e=>{let n=xO(e.id,i,c);return(0,V.jsxs)(`div`,{className:`${ij.item} ${n?ij.itemExcluded:``}`,onClick:()=>{u(e.id)},title:n?t(`auth_files.models_excluded_hint`,{defaultValue:`此 OAuth 模型已被禁用`}):t(`common.copy`,{defaultValue:`点击复制`}),children:[(0,V.jsx)(`span`,{className:ij.modelId,children:e.id}),e.display_name&&e.display_name!==e.id&&(0,V.jsx)(`span`,{className:ij.modelDisplayName,children:e.display_name}),e.type&&(0,V.jsx)(`span`,{className:ij.modelType,children:e.type}),n&&(0,V.jsx)(`span`,{className:ij.excludedBadge,children:t(`auth_files.models_excluded_badge`,{defaultValue:`已禁用`})})]},e.id)})})})}var aj={toolbar:`AuthFilesToolbar-module__toolbar___xJGiG`,search:`AuthFilesToolbar-module__search___2q5J4`,searchIcon:`AuthFilesToolbar-module__searchIcon___sQlFr`,segmented:`AuthFilesToolbar-module__segmented___OI8vp`,segment:`AuthFilesToolbar-module__segment___wRkEj`,segmentActive:`AuthFilesToolbar-module__segmentActive___4XmQp`,segmentProblem:`AuthFilesToolbar-module__segmentProblem___fftxA`,sort:`AuthFilesToolbar-module__sort___hfQv4`,display:`AuthFilesToolbar-module__display___ZcDgU`,displayButton:`AuthFilesToolbar-module__displayButton___v26R8`,displayButtonActive:`AuthFilesToolbar-module__displayButtonActive___hkNkR`,popover:`AuthFilesToolbar-module__popover___64-5U`,"toolbar-popover-in":`AuthFilesToolbar-module__toolbar-popover-in___oVLK9`,toolbarPopoverIn:`AuthFilesToolbar-module__toolbar-popover-in___oVLK9`,popoverRow:`AuthFilesToolbar-module__popoverRow___hYSuJ`,pageSizeInput:`AuthFilesToolbar-module__pageSizeInput___A1-5i`,deleteAction:`AuthFilesToolbar-module__deleteAction___2-7Wv`};function Xee(e){let{search:t,onSearchChange:n,statusFilterMode:r,statusFilterOptions:i,onStatusFilterChange:a,sortMode:o,sortOptions:s,onSortModeChange:c,pageSizeInput:l,onPageSizeInputChange:u,onPageSizeCommit:d,compactMode:f,onCompactModeChange:p,deleteLabel:m,deleteDisabled:h,deleteLoading:g,onDelete:_}=e,{t:v}=B(),[b,x]=(0,y.useState)(!1),S=(0,y.useRef)(null);return(0,y.useEffect)(()=>{if(!b)return;let e=e=>{S.current?.contains(e.target)||x(!1)},t=e=>{e.key===`Escape`&&x(!1)};return document.addEventListener(`mousedown`,e),document.addEventListener(`keydown`,t),()=>{document.removeEventListener(`mousedown`,e),document.removeEventListener(`keydown`,t)}},[b]),(0,V.jsxs)(`div`,{className:aj.toolbar,children:[(0,V.jsx)(`div`,{className:aj.search,children:(0,V.jsx)(ds,{value:t,onChange:e=>n(e.target.value),placeholder:v(`auth_files.search_placeholder`),"aria-label":v(`auth_files.search_label`),rightElement:(0,V.jsx)(Bs,{className:aj.searchIcon,size:16})})}),(0,V.jsx)(`div`,{className:aj.segmented,role:`group`,"aria-label":v(`auth_files.problem_filter_label`),children:i.map(e=>{let t=r===e.value,n=e.value===`problem`;return(0,V.jsx)(`button`,{type:`button`,className:`${aj.segment} ${t?aj.segmentActive:``} ${n?aj.segmentProblem:``}`,"aria-pressed":t,onClick:()=>a(e.value),children:e.label},e.value)})}),(0,V.jsx)(`div`,{className:aj.sort,children:(0,V.jsx)(_c,{value:o,options:s,onChange:c,ariaLabel:v(`auth_files.sort_label`),size:`sm`})}),(0,V.jsxs)(`div`,{className:aj.display,ref:S,children:[(0,V.jsxs)(`button`,{type:`button`,className:`${aj.displayButton} ${b?aj.displayButtonActive:``}`,"aria-expanded":b,"aria-controls":`auth-files-display-settings`,title:v(`auth_files.display_options_label`),onClick:()=>x(e=>!e),children:[(0,V.jsx)(ms,{size:15}),(0,V.jsx)(`span`,{children:v(`auth_files.display_options_label`)})]}),b&&(0,V.jsxs)(`div`,{id:`auth-files-display-settings`,className:aj.popover,children:[(0,V.jsxs)(`div`,{className:aj.popoverRow,children:[(0,V.jsx)(`label`,{htmlFor:`auth-files-page-size`,children:v(`auth_files.page_size_label`)}),(0,V.jsx)(`input`,{id:`auth-files-page-size`,className:aj.pageSizeInput,type:`number`,min:3,max:30,step:1,value:l,onChange:u,onBlur:e=>d(e.currentTarget.value),onKeyDown:e=>{e.key===`Enter`&&e.currentTarget.blur()}})]}),(0,V.jsxs)(`div`,{className:aj.popoverRow,children:[(0,V.jsx)(`span`,{children:v(`auth_files.compact_mode_label`)}),(0,V.jsx)($C,{checked:f,onChange:p,ariaLabel:v(`auth_files.compact_mode_label`)})]})]})]}),(0,V.jsxs)(`button`,{type:`button`,className:aj.deleteAction,onClick:_,disabled:h,children:[g?(0,V.jsx)(CO,{size:13}):(0,V.jsx)(Os,{size:14}),m]})]})}function oj(e,t,n){(0,y.useLayoutEffect)(()=>{if(typeof window>`u`)return;let r=n?e.current:null;if(!r){document.documentElement.style.removeProperty(t);return}let i=()=>{let e=r.getBoundingClientRect().height;document.documentElement.style.setProperty(t,`${e}px`)};i(),window.addEventListener(`resize`,i);let a=typeof ResizeObserver>`u`?null:new ResizeObserver(i);return a?.observe(r),()=>{a?.disconnect(),window.removeEventListener(`resize`,i),document.documentElement.style.removeProperty(t)}},[e,t,n])}var sj={container:`BatchActionBar-module__container___oXLfi`,bar:`BatchActionBar-module__bar___cs-m2`,left:`BatchActionBar-module__left___EoCU-`,right:`BatchActionBar-module__right___g4L9L`,count:`BatchActionBar-module__count___38ZzY`},Zee=e=>1-(1-e)**4,Qee=e=>e**3,cj=`translateX(-50%)`,lj=`translateX(-50%) translateY(56px)`;function $ee(e){let{selectionCount:t,selectablePageCount:n,selectableFilteredCount:r,disableControls:i,batchStatusDisabled:a,onSelectPage:o,onSelectFiltered:s,onInvertPage:c,onDeselectAll:l,onDownload:u,onEnable:d,onDisable:f,onDelete:p}=e,{t:m}=B(),[h,g]=(0,y.useState)(!1),_=(0,y.useRef)(null),v=(0,y.useRef)(null),b=(0,y.useRef)(t),x=(0,y.useRef)(0);return oj(_,`--auth-files-action-bar-height`,h),(0,y.useEffect)(()=>{b.current=t,t>0&&g(!0)},[t]),(0,y.useLayoutEffect)(()=>{if(!h)return;let e=t,n=x.current,r=_.current;if(!r)return;v.current?.stop(),v.current=null;let i=ix();if(e>0&&n===0)i?(r.style.transform=cj,v.current=Lh(r,{opacity:[0,1]},{duration:.15,ease:`linear`,onComplete:()=>{r.style.opacity=`1`}})):v.current=Lh(r,{transform:[lj,cj],opacity:[0,1]},{duration:.28,ease:Zee,onComplete:()=>{r.style.transform=cj,r.style.opacity=`1`}});else if(e===0&&n>0){let e=()=>{b.current===0&&g(!1)};i?(r.style.transform=cj,v.current=Lh(r,{opacity:[1,0]},{duration:.12,ease:`linear`,onComplete:e})):v.current=Lh(r,{transform:[cj,lj],opacity:[1,0]},{duration:.22,ease:Qee,onComplete:e})}x.current=e},[h,t]),(0,y.useEffect)(()=>()=>{v.current?.stop(),v.current=null},[]),!h||typeof document>`u`?null:(0,S.createPortal)((0,V.jsx)(`div`,{className:sj.container,ref:_,children:(0,V.jsxs)(`div`,{className:sj.bar,role:`toolbar`,"aria-label":m(`auth_files.batch_toolbar_label`),"aria-orientation":`horizontal`,children:[(0,V.jsxs)(`div`,{className:sj.left,children:[(0,V.jsx)(`span`,{className:sj.count,"aria-live":`polite`,children:m(`auth_files.batch_selected`,{count:t})}),(0,V.jsx)(H,{variant:`secondary`,size:`sm`,onClick:o,disabled:n===0,children:m(`auth_files.batch_select_page`)}),(0,V.jsx)(H,{variant:`secondary`,size:`sm`,onClick:s,disabled:r===0,children:m(`auth_files.batch_select_filtered`)}),(0,V.jsx)(H,{variant:`ghost`,size:`sm`,onClick:c,disabled:n===0,children:m(`auth_files.batch_invert_page`)}),(0,V.jsx)(H,{variant:`ghost`,size:`sm`,onClick:l,children:m(`auth_files.batch_deselect`)})]}),(0,V.jsxs)(`div`,{className:sj.right,children:[(0,V.jsx)(H,{variant:`secondary`,size:`sm`,onClick:u,disabled:i||t===0,children:m(`auth_files.batch_download`)}),(0,V.jsx)(H,{size:`sm`,onClick:d,disabled:a,children:m(`auth_files.batch_enable`)}),(0,V.jsx)(H,{variant:`secondary`,size:`sm`,onClick:f,disabled:a,children:m(`auth_files.batch_disable`)}),(0,V.jsx)(H,{variant:`danger`,size:`sm`,onClick:p,disabled:i||t===0,children:m(`common.delete`)})]})]})}),document.body)}var uj={panel:`OAuthConfigPanels-module__panel___lTVNC`,panelHead:`OAuthConfigPanels-module__panelHead___QcS1O`,panelTitle:`OAuthConfigPanels-module__panelTitle___8OaGJ`,panelExtra:`OAuthConfigPanels-module__panelExtra___r-RbC`,panelBody:`OAuthConfigPanels-module__panelBody___nUIRf`,viewModeSwitch:`OAuthConfigPanels-module__viewModeSwitch___q-BNt`,list:`OAuthConfigPanels-module__list___yNnv7`,item:`OAuthConfigPanels-module__item___r5I4p`,itemInfo:`OAuthConfigPanels-module__itemInfo___RPe-i`,itemProvider:`OAuthConfigPanels-module__itemProvider___K0Crk`,itemCount:`OAuthConfigPanels-module__itemCount___62JzB`,itemActions:`OAuthConfigPanels-module__itemActions___DgULF`,aliasChartSection:`OAuthConfigPanels-module__aliasChartSection___tVJBR`,aliasChartHeader:`OAuthConfigPanels-module__aliasChartHeader___Fwa9W`,aliasChartTitle:`OAuthConfigPanels-module__aliasChartTitle___Iwot1`,aliasChart:`OAuthConfigPanels-module__aliasChart___43R2f`};function ete(e){let{t}=B(),{disableControls:n,excludedError:r,excluded:i,onRetry:a,onAdd:o,onEdit:s,onDelete:c}=e;return(0,V.jsxs)(`section`,{className:uj.panel,children:[(0,V.jsxs)(`header`,{className:uj.panelHead,children:[(0,V.jsx)(`h3`,{className:uj.panelTitle,children:t(`oauth_excluded.title`)}),(0,V.jsx)(`div`,{className:uj.panelExtra,children:(0,V.jsx)(H,{size:`sm`,onClick:o,disabled:n||r!==null,children:t(`oauth_excluded.add`)})})]}),(0,V.jsx)(`div`,{className:uj.panelBody,children:r===`unsupported`?(0,V.jsx)(FD,{title:t(`oauth_excluded.upgrade_required_title`),description:t(`oauth_excluded.upgrade_required_desc`)}):r===`load`?(0,V.jsx)(FD,{title:t(`notification.refresh_failed`),action:(0,V.jsx)(H,{variant:`secondary`,size:`sm`,onClick:()=>void a(),children:t(`common.refresh`)})}):r===`loading`?(0,V.jsx)(FD,{title:t(`common.loading`)}):Object.keys(i).length===0?(0,V.jsx)(FD,{title:t(`oauth_excluded.list_empty_all`)}):(0,V.jsx)(`div`,{className:uj.list,children:Object.entries(i).map(([e,n])=>(0,V.jsxs)(`div`,{className:uj.item,children:[(0,V.jsxs)(`div`,{className:uj.itemInfo,children:[(0,V.jsx)(`div`,{className:uj.itemProvider,children:e}),(0,V.jsx)(`div`,{className:uj.itemCount,children:n?.length?t(`oauth_excluded.model_count`,{count:n.length}):t(`oauth_excluded.no_models`)})]}),(0,V.jsxs)(`div`,{className:uj.itemActions,children:[(0,V.jsx)(H,{variant:`secondary`,size:`sm`,onClick:()=>s(e),children:t(`common.edit`)}),(0,V.jsx)(H,{variant:`danger`,size:`sm`,onClick:()=>c(e),children:t(`oauth_excluded.delete`)})]})]},e))})})]})}var dj={scrollContainer:`ModelMappingDiagram-module__scrollContainer___CVtMl`,tapHint:`ModelMappingDiagram-module__tapHint___WVg9j`,container:`ModelMappingDiagram-module__container___5GMeJ`,connections:`ModelMappingDiagram-module__connections___-pgzq`,column:`ModelMappingDiagram-module__column___Guf-v`,providers:`ModelMappingDiagram-module__providers___n0NN6`,sources:`ModelMappingDiagram-module__sources___N646E`,aliases:`ModelMappingDiagram-module__aliases___zg5ma`,columnHeader:`ModelMappingDiagram-module__columnHeader___QAC6y`,item:`ModelMappingDiagram-module__item___KBTKp`,dropTarget:`ModelMappingDiagram-module__dropTarget___dAYPB`,selected:`ModelMappingDiagram-module__selected___r3Gyz`,providerItem:`ModelMappingDiagram-module__providerItem___4PZQM`,providerLabel:`ModelMappingDiagram-module__providerLabel___E2vNu`,collapseBtn:`ModelMappingDiagram-module__collapseBtn___RXanB`,chevronDown:`ModelMappingDiagram-module__chevronDown___AP7zK`,chevronRight:`ModelMappingDiagram-module__chevronRight___bbMVy`,providerGroup:`ModelMappingDiagram-module__providerGroup___5JNQu`,sourceItem:`ModelMappingDiagram-module__sourceItem___TjDG6`,aliasItem:`ModelMappingDiagram-module__aliasItem___h6w7D`,dragging:`ModelMappingDiagram-module__dragging___lhx9y`,dot:`ModelMappingDiagram-module__dot___AOWIN`,dotLeft:`ModelMappingDiagram-module__dotLeft___BKXAm`,providerBadge:`ModelMappingDiagram-module__providerBadge___cRzux`,itemName:`ModelMappingDiagram-module__itemName___MjfSv`,itemCount:`ModelMappingDiagram-module__itemCount___B-gtl`,contextMenu:`ModelMappingDiagram-module__contextMenu___VHX-s`,menuItem:`ModelMappingDiagram-module__menuItem___e-LvI`,danger:`ModelMappingDiagram-module__danger___klXxM`,menuDivider:`ModelMappingDiagram-module__menuDivider___XtoCo`,settingsEmpty:`ModelMappingDiagram-module__settingsEmpty___N0gFF`,settingsList:`ModelMappingDiagram-module__settingsList___ovuWo`,settingsRow:`ModelMappingDiagram-module__settingsRow___wH-TW`,settingsNames:`ModelMappingDiagram-module__settingsNames___QDn9j`,settingsSource:`ModelMappingDiagram-module__settingsSource___Hz9zo`,settingsAlias:`ModelMappingDiagram-module__settingsAlias___Ov9zt`,settingsArrow:`ModelMappingDiagram-module__settingsArrow___SKvFd`,settingsActions:`ModelMappingDiagram-module__settingsActions___PYXMU`,settingsLabel:`ModelMappingDiagram-module__settingsLabel___R--i-`,settingsDelete:`ModelMappingDiagram-module__settingsDelete___PDG7z`};function tte({providerNodes:e,collapsedProviders:t,getProviderColor:n,providerGroupHeights:r={},providerRefs:i,onToggleCollapse:a,onContextMenu:o,label:s,expandLabel:c,collapseLabel:l}){return(0,V.jsxs)(`div`,{className:`${dj.column} ${dj.providers}`,onContextMenu:e=>{e.preventDefault(),e.stopPropagation(),o(e,`background`)},children:[(0,V.jsx)(`div`,{className:dj.columnHeader,children:s}),e.map(({provider:e,sources:s})=>{let u=t.has(e),d=u?void 0:r[e];return(0,V.jsx)(`div`,{className:dj.providerGroup,style:d?{height:d}:void 0,children:(0,V.jsxs)(`div`,{ref:t=>{t?i.current?.set(e,t):i.current?.delete(e)},className:`${dj.item} ${dj.providerItem}`,style:{borderLeftColor:n(e)},onContextMenu:t=>{t.preventDefault(),t.stopPropagation(),o(t,`provider`,e)},children:[(0,V.jsx)(`button`,{type:`button`,className:dj.collapseBtn,onClick:()=>a(e),"aria-label":u?c:l,title:u?c:l,children:(0,V.jsx)(`span`,{className:u?dj.chevronRight:dj.chevronDown})}),(0,V.jsx)(`span`,{className:dj.providerLabel,style:{color:n(e)},children:e}),(0,V.jsx)(`span`,{className:dj.itemCount,children:s.length})]})},e)})]})}function nte({providerNodes:e,collapsedProviders:t,sourceRefs:n,getProviderColor:r,selectedSourceId:i,onSelectSource:a,draggedSource:o,dropTargetSource:s,draggable:c,onDragStart:l,onDragEnd:u,onDragOver:d,onDragLeave:f,onDrop:p,onContextMenu:m,label:h}){return(0,V.jsxs)(`div`,{className:`${dj.column} ${dj.sources}`,onContextMenu:e=>{e.preventDefault(),e.stopPropagation(),m(e,`background`)},children:[(0,V.jsx)(`div`,{className:dj.columnHeader,children:h}),e.flatMap(({provider:e,sources:h})=>t.has(e)?[]:h.map(e=>(0,V.jsxs)(`div`,{ref:t=>{t?n.current?.set(e.id,t):n.current?.delete(e.id)},className:`${dj.item} ${dj.sourceItem} ${o?.id===e.id?dj.dragging:``} ${s===e.id?dj.dropTarget:``} ${i===e.id?dj.selected:``}`,onClick:()=>a?.(e),draggable:c,onDragStart:t=>l(t,e),onDragEnd:u,onDragOver:t=>d(t,e),onDragLeave:f,onDrop:t=>p(t,e),onContextMenu:t=>{t.preventDefault(),t.stopPropagation(),m(t,`source`,e.id)},children:[(0,V.jsx)(`span`,{className:dj.itemName,title:e.name,children:e.name}),(0,V.jsx)(`div`,{className:dj.dot,style:{background:r(e.provider),opacity:e.aliases.length>0?1:.3}})]},e.id)))]})}function rte({aliasNodes:e,aliasRefs:t,dropTargetAlias:n,draggedAlias:r,selectedAlias:i,onSelectAlias:a,draggable:o,onDragStart:s,onDragEnd:c,onDragOver:l,onDragLeave:u,onDrop:d,onContextMenu:f,label:p}){return(0,V.jsxs)(`div`,{className:`${dj.column} ${dj.aliases}`,onContextMenu:e=>{e.preventDefault(),e.stopPropagation(),f(e,`background`)},children:[(0,V.jsx)(`div`,{className:dj.columnHeader,children:p}),e.map(e=>(0,V.jsxs)(`div`,{ref:n=>{n?t.current?.set(e.id,n):t.current?.delete(e.id)},className:`${dj.item} ${dj.aliasItem} ${n===e.alias?dj.dropTarget:``} ${r===e.alias?dj.dragging:``} ${i===e.alias?dj.selected:``}`,onClick:()=>a?.(e.alias),draggable:o,onDragStart:t=>s(t,e.alias),onDragEnd:c,onDragOver:t=>l(t,e.alias),onDragLeave:u,onDrop:t=>d(t,e.alias),onContextMenu:t=>{t.preventDefault(),t.stopPropagation(),f(t,`alias`,e.alias)},children:[(0,V.jsx)(`div`,{className:`${dj.dot} ${dj.dotLeft}`}),(0,V.jsx)(`span`,{className:dj.itemName,title:e.alias,children:e.alias}),(0,V.jsx)(`span`,{className:dj.itemCount,children:e.sources.length})]},e.id))]})}function ite({contextMenu:e,t,onRequestClose:n,onAddAlias:r,onRenameAlias:i,onOpenAliasSettings:a,onDeleteAlias:o,onEditProvider:s,onDeleteProvider:c,onOpenSourceSettings:l}){let u=(0,y.useRef)(null);if((0,y.useEffect)(()=>{if(!e)return;let t=e=>{u.current?.contains(e.target)||n()};return document.addEventListener(`mousedown`,t),()=>document.removeEventListener(`mousedown`,t)},[e,n]),!e)return null;let{type:d,data:f}=e;return(0,S.createPortal)((0,V.jsxs)(`div`,{ref:u,className:dj.contextMenu,style:{top:e.y,left:e.x},onClick:e=>e.stopPropagation(),children:[d===`background`&&(0,V.jsx)(`div`,{className:dj.menuItem,onClick:r,children:(0,V.jsx)(`span`,{children:t(`oauth_model_alias.diagram_add_alias`)})}),d===`alias`&&(f?(0,V.jsxs)(V.Fragment,{children:[(0,V.jsx)(`div`,{className:dj.menuItem,onClick:()=>i(f),children:(0,V.jsx)(`span`,{children:t(`oauth_model_alias.diagram_rename`)})}),(0,V.jsx)(`div`,{className:dj.menuItem,onClick:()=>a(f),children:(0,V.jsx)(`span`,{children:t(`oauth_model_alias.diagram_settings`)})}),(0,V.jsx)(`div`,{className:dj.menuDivider}),(0,V.jsx)(`div`,{className:`${dj.menuItem} ${dj.danger}`,onClick:()=>o(f),children:(0,V.jsx)(`span`,{children:t(`oauth_model_alias.diagram_delete_alias`)})})]}):null),d===`provider`&&(f?(0,V.jsxs)(V.Fragment,{children:[(0,V.jsx)(`div`,{className:dj.menuItem,onClick:()=>s(f),children:(0,V.jsx)(`span`,{children:t(`common.edit`)})}),(0,V.jsx)(`div`,{className:dj.menuDivider}),(0,V.jsx)(`div`,{className:`${dj.menuItem} ${dj.danger}`,onClick:()=>c(f),children:(0,V.jsx)(`span`,{children:t(`oauth_model_alias.delete`)})})]}):null),d===`source`&&(f?(0,V.jsx)(`div`,{className:dj.menuItem,onClick:()=>l(f),children:(0,V.jsx)(`span`,{children:t(`oauth_model_alias.diagram_settings`)})}):null)]}),document.body)}function ate({open:e,t,value:n,error:r,onChange:i,onClose:a,onSubmit:o}){return(0,V.jsx)($m,{open:e,onClose:a,title:t(`oauth_model_alias.diagram_rename_alias_title`),width:400,footer:(0,V.jsxs)(V.Fragment,{children:[(0,V.jsx)(H,{variant:`secondary`,onClick:a,children:t(`common.cancel`)}),(0,V.jsx)(H,{onClick:o,children:t(`oauth_model_alias.diagram_rename_btn`)})]}),children:(0,V.jsx)(ds,{label:t(`oauth_model_alias.diagram_rename_alias_label`),value:n,onChange:e=>i(e.target.value),onKeyDown:e=>{e.key===`Enter`&&o()},error:r,placeholder:t(`oauth_model_alias.diagram_rename_placeholder`),autoFocus:!0})})}function ote({open:e,t,value:n,error:r,onChange:i,onClose:a,onSubmit:o}){return(0,V.jsx)($m,{open:e,onClose:a,title:t(`oauth_model_alias.diagram_add_alias_title`),width:400,footer:(0,V.jsxs)(V.Fragment,{children:[(0,V.jsx)(H,{variant:`secondary`,onClick:a,children:t(`common.cancel`)}),(0,V.jsx)(H,{onClick:o,children:t(`oauth_model_alias.diagram_add_btn`)})]}),children:(0,V.jsx)(ds,{label:t(`oauth_model_alias.diagram_add_alias_label`),value:n,onChange:e=>i(e.target.value),onKeyDown:e=>{e.key===`Enter`&&o()},error:r,placeholder:t(`oauth_model_alias.diagram_add_placeholder`),autoFocus:!0})})}function ste({open:e,t,alias:n,aliasNodes:r,onClose:i,onToggleFork:a,onUnlink:o}){return(0,V.jsx)($m,{open:e,onClose:i,title:t(`oauth_model_alias.diagram_settings_title`,{alias:n??``}),width:720,footer:(0,V.jsx)(H,{variant:`secondary`,onClick:i,children:t(`common.close`)}),children:n?(()=>{let e=r.find(e=>e.alias===n);return!e||e.sources.length===0?(0,V.jsx)(`div`,{className:dj.settingsEmpty,children:t(`oauth_model_alias.diagram_settings_empty`)}):(0,V.jsx)(`div`,{className:dj.settingsList,children:e.sources.map(e=>{let r=e.aliases.find(e=>e.alias===n)?.fork===!0;return(0,V.jsxs)(`div`,{className:dj.settingsRow,children:[(0,V.jsxs)(`div`,{className:dj.settingsNames,children:[(0,V.jsx)(`span`,{className:dj.settingsSource,children:e.name}),(0,V.jsx)(`span`,{className:dj.settingsArrow,children:`→`}),(0,V.jsx)(`span`,{className:dj.settingsAlias,children:n})]}),(0,V.jsxs)(`div`,{className:dj.settingsActions,children:[(0,V.jsx)(`span`,{className:dj.settingsLabel,children:t(`oauth_model_alias.alias_fork_label`)}),(0,V.jsx)($C,{checked:r,onChange:t=>a(e.provider,e.name,n,t),ariaLabel:t(`oauth_model_alias.alias_fork_label`)}),(0,V.jsx)(`button`,{type:`button`,className:dj.settingsDelete,onClick:()=>o(e.provider,e.name,n),"aria-label":t(`oauth_model_alias.diagram_delete_link`,{provider:e.provider,name:e.name}),title:t(`oauth_model_alias.diagram_delete_link`,{provider:e.provider,name:e.name}),children:(0,V.jsx)(Os,{size:14})})]})]},e.id)})})})():null})}function cte({open:e,t,source:n,onClose:r,onToggleFork:i,onUnlink:a}){return(0,V.jsx)($m,{open:e,onClose:r,title:t(`oauth_model_alias.diagram_settings_source_title`),width:720,footer:(0,V.jsx)(H,{variant:`secondary`,onClick:r,children:t(`common.close`)}),children:n?n.aliases.length===0?(0,V.jsx)(`div`,{className:dj.settingsEmpty,children:t(`oauth_model_alias.diagram_settings_empty`)}):(0,V.jsx)(`div`,{className:dj.settingsList,children:n.aliases.map(e=>(0,V.jsxs)(`div`,{className:dj.settingsRow,children:[(0,V.jsxs)(`div`,{className:dj.settingsNames,children:[(0,V.jsx)(`span`,{className:dj.settingsSource,children:n.name}),(0,V.jsx)(`span`,{className:dj.settingsArrow,children:`→`}),(0,V.jsx)(`span`,{className:dj.settingsAlias,children:e.alias})]}),(0,V.jsxs)(`div`,{className:dj.settingsActions,children:[(0,V.jsx)(`span`,{className:dj.settingsLabel,children:t(`oauth_model_alias.alias_fork_label`)}),(0,V.jsx)($C,{checked:e.fork===!0,onChange:t=>i(n.provider,n.name,e.alias,t),ariaLabel:t(`oauth_model_alias.alias_fork_label`)}),(0,V.jsx)(`button`,{type:`button`,className:dj.settingsDelete,onClick:()=>a(n.provider,n.name,e.alias),"aria-label":t(`oauth_model_alias.diagram_delete_link`,{provider:n.provider,name:n.name}),title:t(`oauth_model_alias.diagram_delete_link`,{provider:n.provider,name:n.name}),children:(0,V.jsx)(Os,{size:14})})]})]},`${n.id}-${e.alias}`))}):null})}var fj=e=>e.trim().toLowerCase();function pj(e,t,n){let r=fj(t);if(!r)return!1;let i=!1;return e.some(e=>!i&&n!==void 0&&e===n?(i=!0,!1):fj(e)===r)}var mj=[`#8b8680`,`#10b981`,`#f59e0b`,`#c65746`,`#8b5cf6`,`#ec4899`,`#06b6d4`,`#84cc16`];function hj(e){return mj[e.split(``).reduce((e,t)=>e+t.charCodeAt(0),0)%mj.length]}var lte=(0,y.forwardRef)(function({modelAlias:e,allProviderModels:t={},onUpdate:n,onDeleteLink:r,onToggleFork:i,onRenameAlias:a,onDeleteAlias:o,onEditProvider:s,onDeleteProvider:c,className:l},u){let{t:d}=B(),f=rl(e=>e.resolvedTheme)===`dark`,p=(0,y.useMemo)(()=>typeof window>`u`||window.matchMedia===void 0?!1:window.matchMedia(`(any-pointer: coarse)`).matches&&!window.matchMedia(`(any-pointer: fine)`).matches,[]),m=(0,y.useRef)(null),[h,g]=(0,y.useState)([]),[_,v]=(0,y.useState)(null),[b,x]=(0,y.useState)(null),[S,C]=(0,y.useState)(null),[w,T]=(0,y.useState)(null),[E,D]=(0,y.useState)(null),[O,k]=(0,y.useState)(null),[A,j]=(0,y.useState)([]),[M,N]=(0,y.useState)(null),[ee,P]=(0,y.useState)(new Set),[F,I]=(0,y.useState)({}),[L,R]=(0,y.useState)(null),[te,ne]=(0,y.useState)(``),[re,z]=(0,y.useState)(``),[ie,ae]=(0,y.useState)(!1),[oe,se]=(0,y.useState)(``),[ce,le]=(0,y.useState)(``),[ue,de]=(0,y.useState)(null),[fe,pe]=(0,y.useState)(null),{aliasNodes:me,providerNodes:he}=(0,y.useMemo)(()=>{let n=new Map,r=new Set;Object.entries(e).forEach(([e,t])=>{(t??[]).forEach(t=>{let i=(t?.name||``).trim(),a=(t?.alias||``).trim();if(!i||!a)return;let o=`${e.toLowerCase()}::${i.toLowerCase()}`;n.has(o)||n.set(o,{provider:e,name:i,aliases:new Map}),n.get(o).aliases.set(a,t?.fork===!0),r.add(a)})}),Object.entries(t).forEach(([e,t])=>{(t??[]).forEach(t=>{let r=(t.id||``).trim();if(!r)return;let i=`${e.toLowerCase()}::${r.toLowerCase()}`;n.has(i)||n.set(i,{provider:e,name:r,aliases:new Map})})});let i=Array.from(n.entries()).map(([e,t])=>({id:e,provider:t.provider,name:t.name,aliases:Array.from(t.aliases.entries()).map(([e,t])=>({alias:e,fork:t}))})).sort((e,t)=>e.provider===t.provider?e.name.localeCompare(t.name):e.provider.localeCompare(t.provider));A.forEach(e=>r.add(e));let a=Array.from(r).map(e=>({id:e,alias:e,sources:i.filter(t=>t.aliases.some(t=>t.alias===e))})).sort((e,t)=>t.sources.length===e.sources.length?e.alias.localeCompare(t.alias):t.sources.length-e.sources.length),o=new Map;return i.forEach(e=>{o.has(e.provider)||o.set(e.provider,[]),o.get(e.provider).push(e)}),{aliasNodes:a,providerNodes:Array.from(o.entries()).map(([e,t])=>({provider:e,sources:t})).sort((e,t)=>e.provider.localeCompare(t.provider))}},[e,t,A]),ge=(0,y.useRef)(new Map),_e=(0,y.useRef)(new Map),ve=(0,y.useRef)(new Map),ye=e=>{P(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})},be=(0,y.useCallback)(()=>{if(!m.current)return;let e=m.current.getBoundingClientRect(),t=[],n={},r=(e,t,n,r)=>`M ${e} ${t} C ${e+(n-e)*.5} ${t}, ${n-(n-e)*.5} ${r}, ${n} ${r}`;he.forEach(({provider:i,sources:a})=>{if(ee.has(i))return;if(a.length>0){let e=_e.current.get(a[0].id),t=_e.current.get(a[a.length-1].id);if(e&&t){let r=Math.max(0,Math.round(t.getBoundingClientRect().bottom-e.getBoundingClientRect().top));r>0&&(n[i]=r)}}let o=ge.current.get(i);if(!o)return;let s=o.getBoundingClientRect(),c=s.right-e.left,l=s.top+s.height/2-e.top,u=hj(i);a.forEach(n=>{let a=_e.current.get(n.id);if(!a)return;let o=a.getBoundingClientRect(),s=o.left-e.left,d=o.top+o.height/2-e.top;t.push({id:`provider-${i}-source-${n.id}`,path:r(c,l,s,d),color:u})}),a.forEach(n=>{!n.aliases||n.aliases.length===0||n.aliases.forEach(i=>{let a=_e.current.get(n.id),o=ve.current.get(i.alias);if(!a||!o)return;let s=a.getBoundingClientRect(),c=o.getBoundingClientRect(),l=s.right-e.left,d=s.top+s.height/2-e.top,f=c.left-e.left,p=c.top+c.height/2-e.top;t.push({id:`${n.id}-${i.alias}`,path:r(l,d,f,p),color:u})})})}),g(t),I(e=>{let t=Object.keys(e),r=Object.keys(n);if(t.length!==r.length)return n;for(let t of r)if(!(t in e)||e[t]!==n[t])return n;return e})},[he,ee]);(0,y.useImperativeHandle)(u,()=>({collapseAll:()=>P(new Set(he.map(e=>e.provider))),refreshLayout:()=>be()}),[he,be]),(0,y.useLayoutEffect)(()=>{let e=requestAnimationFrame(be);return window.addEventListener(`resize`,be),()=>{cancelAnimationFrame(e),window.removeEventListener(`resize`,be)}},[be,me]),(0,y.useLayoutEffect)(()=>{let e=requestAnimationFrame(be);return()=>cancelAnimationFrame(e)},[F,be]),(0,y.useEffect)(()=>{if(!m.current||typeof ResizeObserver>`u`)return;let e=new ResizeObserver(()=>be());return e.observe(m.current),()=>e.disconnect()},[be]);let xe=(e,t)=>{D(null),k(null),v(t),e.dataTransfer.setData(`text/plain`,t.id),e.dataTransfer.effectAllowed=`link`},Se=(e,t)=>{!_||_.aliases.some(e=>e.alias===t)||(e.preventDefault(),e.dataTransfer.dropEffect=`link`,C(t))},Ce=()=>{C(null)},we=(e,t)=>{e.preventDefault(),_&&!_.aliases.some(e=>e.alias===t)&&n&&n(_.provider,_.name,t),v(null),C(null)},Te=(e,t)=>{D(null),k(null),x(t),e.dataTransfer.setData(`text/plain`,t),e.dataTransfer.effectAllowed=`link`},Ee=(e,t)=>{!b||t.aliases.some(e=>e.alias===b)||(e.preventDefault(),e.dataTransfer.dropEffect=`link`,T(t.id))},De=()=>{T(null)},Oe=(e,t)=>{e.preventDefault(),b&&!t.aliases.some(e=>e.alias===b)&&n&&n(t.provider,t.name,b),x(null),T(null)},ke=(e,t,n)=>{e.preventDefault(),e.stopPropagation(),N({x:e.clientX,y:e.clientY,type:t,data:n})},Ae=()=>N(null),je=(0,y.useCallback)(e=>{if(!e)return null;for(let{sources:t}of he){let n=t.find(t=>t.id===e);if(n)return n}return null},[he]),Me=e=>{if(n){if(E===e.id){D(null);return}if(O){n(e.provider,e.name,O),D(null),k(null);return}D(e.id),k(null)}},Ne=e=>{if(n){if(O===e){k(null);return}if(E){let t=je(E);t&&n(t.provider,t.name,e),D(null),k(null);return}k(e),D(null)}},Pe=(e,t,n)=>{r&&r(e,t,n)},Fe=(e,t,n,r)=>{i&&i(e,t,n,r)};return(0,V.jsxs)(`div`,{className:[dj.scrollContainer,l].filter(Boolean).join(` `),children:[p&&n&&(0,V.jsx)(`div`,{className:dj.tapHint,children:d(`oauth_model_alias.diagram_tap_hint`)}),(0,V.jsxs)(`div`,{className:dj.container,ref:m,onContextMenu:e=>{e.preventDefault(),e.stopPropagation(),ke(e,`background`)},children:[(0,V.jsx)(`svg`,{className:dj.connections,children:h.map(e=>(0,V.jsx)(`path`,{d:e.path,stroke:e.color,strokeOpacity:f?.4:.3},e.id))}),(0,V.jsx)(tte,{providerNodes:he,collapsedProviders:ee,getProviderColor:hj,providerGroupHeights:F,providerRefs:ge,onToggleCollapse:ye,onContextMenu:(e,t,n)=>ke(e,t,n),label:d(`oauth_model_alias.diagram_providers`),expandLabel:d(`oauth_model_alias.diagram_expand`),collapseLabel:d(`oauth_model_alias.diagram_collapse`)}),(0,V.jsx)(nte,{providerNodes:he,collapsedProviders:ee,sourceRefs:_e,getProviderColor:hj,selectedSourceId:p?E:null,onSelectSource:p?Me:void 0,draggedSource:_,dropTargetSource:w,draggable:!!n,onDragStart:xe,onDragEnd:()=>{v(null),C(null)},onDragOver:Ee,onDragLeave:De,onDrop:Oe,onContextMenu:(e,t,n)=>ke(e,t,n),label:d(`oauth_model_alias.diagram_source_models`)}),(0,V.jsx)(rte,{aliasNodes:me,aliasRefs:ve,dropTargetAlias:S,draggedAlias:b,selectedAlias:p?O:null,onSelectAlias:p?Ne:void 0,draggable:!!n,onDragStart:Te,onDragEnd:()=>{x(null),T(null)},onDragOver:Se,onDragLeave:Ce,onDrop:we,onContextMenu:(e,t,n)=>ke(e,t,n),label:d(`oauth_model_alias.diagram_aliases`)})]}),(0,V.jsx)(ite,{contextMenu:M,t:d,onRequestClose:()=>N(null),onAddAlias:()=>{Ae(),ae(!0),se(``),le(``)},onRenameAlias:e=>{Ae(),R({oldAlias:e}),ne(e),z(``)},onOpenAliasSettings:e=>{N(null),de(e)},onDeleteAlias:e=>{Ae();let t=me.find(t=>t.alias===e);t&&(t.sources.length===0?j(t=>t.filter(t=>t!==e)):o&&o(e))},onEditProvider:e=>{N(null),s?.(e)},onDeleteProvider:e=>{N(null),c?.(e)},onOpenSourceSettings:e=>{N(null),pe(e)}}),(0,V.jsx)(ate,{open:!!L,t:d,value:te,error:re,onChange:e=>{ne(e),z(``)},onClose:()=>R(null),onSubmit:()=>{let e=te.trim();if(!e){z(d(`oauth_model_alias.diagram_please_enter_alias`));return}if(e===L?.oldAlias){R(null);return}if(pj(me.map(e=>e.alias),e,L?.oldAlias)){z(d(`oauth_model_alias.diagram_alias_exists`));return}a&&L&&a(L.oldAlias,e),A.includes(L?.oldAlias??``)&&j(t=>t.map(t=>t===L?.oldAlias?e:t)),R(null)}}),(0,V.jsx)(ote,{open:ie,t:d,value:oe,error:ce,onChange:e=>{se(e),le(``)},onClose:()=>ae(!1),onSubmit:()=>{let e=oe.trim();if(!e){le(d(`oauth_model_alias.diagram_please_enter_alias`));return}if(pj(me.map(e=>e.alias),e)){le(d(`oauth_model_alias.diagram_alias_exists`));return}j(t=>[...t,e]),ae(!1)}}),(0,V.jsx)(ste,{open:!!ue,t:d,alias:ue,aliasNodes:me,onClose:()=>de(null),onToggleFork:Fe,onUnlink:Pe}),(0,V.jsx)(cte,{open:!!fe,t:d,source:je(fe),onClose:()=>pe(null),onToggleFork:Fe,onUnlink:Pe})]})});function ute(e){let{t}=B(),n=(0,y.useRef)(null),{disableControls:r,viewMode:i,onViewModeChange:a,onRetry:o,onAdd:s,onEditProvider:c,onDeleteProvider:l,modelAliasError:u,modelAlias:d,allProviderModels:f,onUpdate:p,onDeleteLink:m,onToggleFork:h,onRenameAlias:g,onDeleteAlias:_}=e;return(0,V.jsxs)(`section`,{className:uj.panel,children:[(0,V.jsxs)(`header`,{className:uj.panelHead,children:[(0,V.jsx)(`h3`,{className:uj.panelTitle,children:t(`oauth_model_alias.title`)}),(0,V.jsxs)(`div`,{className:uj.panelExtra,children:[(0,V.jsxs)(`div`,{className:uj.viewModeSwitch,children:[(0,V.jsx)(H,{variant:i===`list`?`secondary`:`ghost`,size:`sm`,onClick:()=>a(`list`),disabled:r||u!==null,"aria-pressed":i===`list`,children:t(`oauth_model_alias.view_mode_list`)}),(0,V.jsx)(H,{variant:i===`diagram`?`secondary`:`ghost`,size:`sm`,onClick:()=>a(`diagram`),disabled:r||u!==null,"aria-pressed":i===`diagram`,children:t(`oauth_model_alias.view_mode_diagram`)})]}),(0,V.jsx)(H,{size:`sm`,onClick:s,disabled:r||u!==null,children:t(`oauth_model_alias.add`)})]})]}),(0,V.jsx)(`div`,{className:uj.panelBody,children:u===`unsupported`?(0,V.jsx)(FD,{title:t(`oauth_model_alias.upgrade_required_title`),description:t(`oauth_model_alias.upgrade_required_desc`)}):u===`load`?(0,V.jsx)(FD,{title:t(`notification.refresh_failed`),action:(0,V.jsx)(H,{variant:`secondary`,size:`sm`,onClick:()=>void o(),children:t(`common.refresh`)})}):u===`loading`?(0,V.jsx)(FD,{title:t(`common.loading`)}):i===`diagram`?Object.keys(d).length===0?(0,V.jsx)(FD,{title:t(`oauth_model_alias.list_empty_all`)}):(0,V.jsxs)(`div`,{className:uj.aliasChartSection,children:[(0,V.jsxs)(`div`,{className:uj.aliasChartHeader,children:[(0,V.jsx)(`h4`,{className:uj.aliasChartTitle,children:t(`oauth_model_alias.chart_title`)}),(0,V.jsx)(H,{variant:`ghost`,size:`sm`,onClick:()=>n.current?.collapseAll(),disabled:r||u!==null,title:t(`oauth_model_alias.diagram_collapse`),"aria-label":t(`oauth_model_alias.diagram_collapse`),children:(0,V.jsx)(Ls,{size:16})})]}),(0,V.jsx)(lte,{ref:n,modelAlias:d,allProviderModels:f,onUpdate:p,onDeleteLink:m,onToggleFork:h,onRenameAlias:g,onDeleteAlias:_,onEditProvider:c,onDeleteProvider:l,className:uj.aliasChart})]}):Object.keys(d).length===0?(0,V.jsx)(FD,{title:t(`oauth_model_alias.list_empty_all`)}):(0,V.jsx)(`div`,{className:uj.list,children:Object.entries(d).map(([e,n])=>(0,V.jsxs)(`div`,{className:uj.item,children:[(0,V.jsxs)(`div`,{className:uj.itemInfo,children:[(0,V.jsx)(`div`,{className:uj.itemProvider,children:e}),(0,V.jsx)(`div`,{className:uj.itemCount,children:n?.length?t(`oauth_model_alias.model_count`,{count:n.length}):t(`oauth_model_alias.no_models`)})]}),(0,V.jsxs)(`div`,{className:uj.itemActions,children:[(0,V.jsx)(H,{variant:`secondary`,size:`sm`,onClick:()=>c(e),children:t(`common.edit`)}),(0,V.jsx)(H,{variant:`danger`,size:`sm`,onClick:()=>l(e),children:t(`oauth_model_alias.delete`)})]})]},e))})})]})}function dte(e,t){let n=e.scrollWidth-e.clientWidth;if(t.ctrlKey||t.defaultPrevented||n<=0||t.deltaY===0||Math.abs(t.deltaX)>Math.abs(t.deltaY))return;t.preventDefault();let r=t.deltaMode===1?16:t.deltaMode===2?e.clientWidth:1;e.scrollLeft=Math.max(0,Math.min(n,e.scrollLeft+t.deltaY*r))}var gj={tabs:`ProviderTabs-module__tabs___n-cuP`,tab:`ProviderTabs-module__tab___H3sif`,tabActive:`ProviderTabs-module__tabActive___g2pr3`,tabGlyph:`ProviderTabs-module__tabGlyph___fRPPT`,tabIconWrap:`ProviderTabs-module__tabIconWrap___ZotRT`,tabIcon:`ProviderTabs-module__tabIcon___V2PI4`,tabIconFallback:`ProviderTabs-module__tabIconFallback___SwMK5`,tabLabel:`ProviderTabs-module__tabLabel___dEpsW`,tabCount:`ProviderTabs-module__tabCount___wgH75`};function _j({types:e,counts:t,active:n,resolvedTheme:r,onChange:i}){let{t:a}=B(),o=(0,y.useRef)(null);return(0,y.useEffect)(()=>{let e=o.current;if(!e)return;let t=t=>dte(e,t);return e.addEventListener(`wheel`,t,{passive:!1}),()=>e.removeEventListener(`wheel`,t)},[]),(0,V.jsx)(`div`,{ref:o,className:gj.tabs,role:`group`,"aria-label":a(`auth_files.filter_all`),children:e.map(e=>{let o=n===e,s=e===`all`?a(`auth_files.filter_all`):iO(a,e),c=e===`all`?null:oO(e,r);return(0,V.jsxs)(`button`,{type:`button`,className:`${gj.tab} ${o?gj.tabActive:``}`,"aria-pressed":o,onClick:()=>i(e),children:[e===`all`?(0,V.jsx)(vs,{className:gj.tabGlyph,size:15}):(0,V.jsx)(`span`,{className:gj.tabIconWrap,style:cO(e)?{background:lO(r)}:void 0,children:c?(0,V.jsx)(`img`,{src:c,alt:``,className:gj.tabIcon}):(0,V.jsx)(`span`,{className:gj.tabIconFallback,children:s.slice(0,1).toUpperCase()})}),(0,V.jsx)(`span`,{className:gj.tabLabel,children:s}),(0,V.jsx)(`span`,{className:gj.tabCount,children:t[e]??0})]},e)})})}var vj={header:`VaultHeader-module__header___QpXg-`,copy:`VaultHeader-module__copy___xsxh7`,title:`VaultHeader-module__title___taELk`,meta:`VaultHeader-module__meta___itSa2`,metaDot:`VaultHeader-module__metaDot___GW2IC`,metaTotal:`VaultHeader-module__metaTotal___KJQaA`,metaActive:`VaultHeader-module__metaActive___NlBGq`,metaMuted:`VaultHeader-module__metaMuted___VH7nG`,metaProblem:`VaultHeader-module__metaProblem___wopsT`,actions:`VaultHeader-module__actions___2FRo9`,primaryAction:`VaultHeader-module__primaryAction___xVhcB`,ghostAction:`VaultHeader-module__ghostAction___JFOFe`,spinning:`VaultHeader-module__spinning___kQLgi`,"vault-spin":`VaultHeader-module__vault-spin___2UExm`,vaultSpin:`VaultHeader-module__vault-spin___2UExm`};function fte(e){let{totalCount:t,activeCount:n,problemCount:r,loading:i,refreshing:a,uploading:o,disableControls:s,onUpload:c,onRefresh:l,refreshingCredentials:u=!1,credentialRefreshDisabled:d=!1,onRefreshCredentials:f}=e,{t:p}=B(),m=ox();return(0,V.jsxs)(`header`,{className:vj.header,ref:m,children:[(0,V.jsxs)(`div`,{className:vj.copy,children:[(0,V.jsx)(`h1`,{className:vj.title,"data-reveal":!0,children:p(`auth_files.title`)}),(0,V.jsxs)(`p`,{className:vj.meta,"data-reveal":!0,children:[(0,V.jsx)(`span`,{className:vj.metaTotal,children:p(`auth_files.meta_total`,{count:t})}),(0,V.jsx)(`span`,{className:vj.metaDot,"aria-hidden":`true`,children:`·`}),(0,V.jsx)(`span`,{className:n>0?vj.metaActive:vj.metaMuted,children:p(`auth_files.meta_active`,{count:n})}),r>0&&(0,V.jsxs)(V.Fragment,{children:[(0,V.jsx)(`span`,{className:vj.metaDot,"aria-hidden":`true`,children:`·`}),(0,V.jsx)(`span`,{className:vj.metaProblem,children:p(`auth_files.meta_problem`,{count:r})})]})]})]}),(0,V.jsxs)(`div`,{className:vj.actions,"data-reveal":!0,children:[f&&(0,V.jsxs)(`button`,{type:`button`,className:vj.ghostAction,onClick:f,disabled:s||i||u||d,children:[u?(0,V.jsx)(CO,{size:14}):(0,V.jsx)(Ts,{size:14}),p(`auth_files.refresh_all_button`)]}),(0,V.jsxs)(`button`,{type:`button`,className:vj.ghostAction,onClick:l,disabled:i||a,children:[(0,V.jsx)(Ts,{size:14,className:a?vj.spinning:void 0}),p(`common.refresh`)]}),(0,V.jsxs)(`button`,{type:`button`,className:vj.primaryAction,onClick:c,disabled:s||o,children:[o?(0,V.jsx)(CO,{size:14}):(0,V.jsx)(Ds,{size:15}),p(`auth_files.upload_button`)]})]})]})}var yj={pulse:`VaultPulse-module__pulse___sIxw6`,bars:`VaultPulse-module__bars___gD2H-`,bar:`VaultPulse-module__bar___c828U`,"pulse-bar-in":`VaultPulse-module__pulse-bar-in___-8e-h`,pulseBarIn:`VaultPulse-module__pulse-bar-in___-8e-h`,barLive:`VaultPulse-module__barLive___x0GKQ`,barIdle:`VaultPulse-module__barIdle___jGSJ8`,barWarning:`VaultPulse-module__barWarning___wGFd7`,barProblem:`VaultPulse-module__barProblem___N0qGr`,barDisabled:`VaultPulse-module__barDisabled___k2lFu`,overflow:`VaultPulse-module__overflow___Y7HPQ`,idleLine:`VaultPulse-module__idleLine___Gs7Ll`},pte=160,mte=360,hte={live:yj.barLive,idle:yj.barIdle,warning:yj.barWarning,problem:yj.barProblem};function gte({files:e,statusBarCache:t}){let n=(0,y.useMemo)(()=>e.slice(0,pte).map(e=>{let n=e.disabled===!0,r;if(e.unavailable===!0)r=`problem`;else if(nO(e))r=`warning`;else{let n=typeof e.authIndex==`string`?e.authIndex:null,i=n?t.get(n):void 0;r=i&&(i?.totalSuccess??0)+(i?.totalFailure??0)>0?`live`:`idle`}return{key:e.name,state:r,disabled:n}}),[e,t]),r=e.length-n.length,i=n.length>1?mte/(n.length-1):0;return n.length===0?(0,V.jsx)(`div`,{className:yj.pulse,"aria-hidden":`true`,children:(0,V.jsx)(`span`,{className:yj.idleLine})}):(0,V.jsxs)(`div`,{className:yj.pulse,"aria-hidden":`true`,children:[(0,V.jsx)(`div`,{className:yj.bars,children:n.map((e,t)=>(0,V.jsx)(`span`,{className:`${yj.bar} ${hte[e.state]} ${e.disabled?yj.barDisabled:``}`,style:{"--bar-delay":`${Math.round(t*i)}ms`}},e.key))}),r>0&&(0,V.jsxs)(`span`,{className:yj.overflow,children:[`+`,r]})]})}var _te=(e,t)=>{e(t),Mm.getState().clearQuotaCache(t)},bj=`auth-files-changed`,xj=()=>{window.dispatchEvent(new Event(bj))};function Sj({filename:e,blob:t,revokeDelayMs:n=1e3}){let r=window.URL.createObjectURL(t),i=document.createElement(`a`);i.href=r,i.download=e,i.rel=`noopener`,i.style.display=`none`,document.body.appendChild(i),i.click(),window.setTimeout(()=>{window.URL.revokeObjectURL(r),i.remove()},n)}function vte(e){let{t}=B(),{showNotification:n,showConfirmation:r}=Jc(),i=e?.onFilesMutated,[a,o]=(0,y.useState)([]),[s,c]=(0,y.useState)(!0),[l,u]=(0,y.useState)(!1),[d,f]=(0,y.useState)(``),[p,m]=(0,y.useState)(!1),[h,g]=(0,y.useState)(null),[_,v]=(0,y.useState)(!1),[b,x]=(0,y.useState)({}),[S,C]=(0,y.useState)({}),[w,T]=(0,y.useState)(!1),[E,D]=(0,y.useState)(null),O=(0,y.useRef)(!1),k=(0,y.useCallback)(()=>D(null),[]),[A,j]=(0,y.useState)({}),[M,N]=(0,y.useState)(!1),[ee,P]=(0,y.useState)(new Set),F=(0,y.useRef)(null),I=(0,y.useRef)(!1),L=(0,y.useRef)(new Set),R=(0,y.useRef)(new Set),te=(0,y.useRef)(!1),ne=(0,y.useRef)({revision:-1,keys:new Set}),re=(0,y.useRef)(0),z=(0,y.useCallback)(()=>{re.current+=1,c(!1),u(!1)},[]),ie=(0,y.useRef)(i);(0,y.useEffect)(()=>{ie.current=i},[i]);let ae=ee.size,oe=(0,y.useCallback)(e=>{P(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})},[]),se=(0,y.useCallback)(e=>{let t=e.filter(e=>!yO(e)).map(e=>e.name);t.length!==0&&P(e=>{let n=new Set(e);return t.forEach(e=>n.add(e)),n})},[]),ce=(0,y.useCallback)(e=>{let t=e.filter(e=>!yO(e)).map(e=>e.name);t.length!==0&&P(e=>{let n=new Set(e);return t.forEach(e=>{n.has(e)?n.delete(e):n.add(e)}),n})},[]),le=(0,y.useCallback)(()=>{P(new Set)},[]),ue=(0,y.useCallback)(e=>{let t=Array.from(new Set(e.map(e=>e.trim()).filter(Boolean)));if(t.length===0)return;z(),ie.current?.(t);let n=new Set(t);o(e=>e.filter(e=>!n.has(e.name))),P(e=>{if(e.size===0)return e;let t=!1,r=new Set;return e.forEach(e=>{n.has(e)?t=!0:r.add(e)}),t?r:e})},[z]);(0,y.useEffect)(()=>{if(ee.size===0)return;let e=new Set(a.map(e=>e.name));P(t=>{let n=!1,r=new Set;return t.forEach(t=>{e.has(t)?r.add(t):n=!0}),n?r:t})},[a,ee.size]);let de=(0,y.useCallback)(async e=>{let n=e?.background===!0,r=++re.current,i=W.getConnectionRevision(),a=()=>r===re.current&&i===W.getConnectionRevision();n?u(!0):(c(!0),f(``));try{let e=await jy.list();if(!a())return;o(e?.files||[]),f(``)}catch(e){if(!a())return;let n=e instanceof Error?e.message:t(`notification.refresh_failed`);f(n)}finally{a()&&(c(!1),u(!1))}},[t]),fe=(0,y.useCallback)(()=>{I.current||F.current?.click()},[]),pe=(0,y.useCallback)(async e=>{let r=e.target.files;if(!r||r.length===0)return;let i=Array.from(r),a=[],o=[],s=[];if(i.forEach(e=>{if(!e.name.endsWith(`.json`)){o.push(e.name);return}if(e.size>10485760){s.push(e.name);return}a.push(e)}),o.length>0&&n(t(`auth_files.upload_error_json`),`error`),s.length>0&&n(t(`auth_files.upload_error_size`,{maxSize:fg(Bc)}),`error`),a.length===0){e.target.value=``;return}if(I.current){e.target.value=``;return}I.current=!0,m(!0);try{let e=await jy.uploadFiles(a),r=e.uploaded;if(r>0){let i=a.length>1?` (${r}/${a.length})`:``;n(`${t(`auth_files.upload_success`)}${i}`,e.failed.length?`warning`:`success`),xj(),ie.current?.(e.files.length>0?e.files:void 0),await de({background:!0})}if(e.failed.length>0){let r=e.failed.map(e=>`${e.name}: ${e.error}`).join(`; `);n(`${t(`notification.upload_failed`)}: ${r}`,`error`)}}catch(e){let r=e instanceof Error?e.message:`Unknown error`;n(`${t(`notification.upload_failed`)}: ${r}`,`error`)}finally{I.current=!1,m(!1),e.target.value=``}},[de,n,t]),me=(0,y.useCallback)(e=>{r({title:t(`auth_files.delete_title`,{defaultValue:`Delete File`}),message:`${t(`auth_files.delete_confirm`)} "${e}" ?`,variant:`danger`,confirmText:t(`common.confirm`),onConfirm:async()=>{g(e);try{let r=await jy.deleteFile(e);n(t(`auth_files.delete_success`),`success`),ue(r.files.length>0?r.files:[e]),r.deleted>0&&xj()}catch(e){let r=e instanceof Error?e.message:``;n(`${t(`notification.delete_failed`)}: ${r}`,`error`)}finally{g(null)}}})},[ue,r,n,t]),he=(0,y.useCallback)(e=>{let{filter:i,problemOnly:s,disabledOnly:c,enabledOnly:l,onResetFilterToAll:u,onResetProblemOnly:d,onResetDisabledOnly:f,onResetEnabledOnly:p}=e,m=i!==`all`,h=s===!0,g=c===!0,_=l===!0,y=m?iO(t,i):t(`auth_files.filter_all`),b=t(`auth_files.delete_all_confirm`);g||_?b=t(`auth_files.delete_filtered_result_confirm`):h?b=m?t(`auth_files.delete_problem_filtered_confirm`,{type:y}):t(`auth_files.delete_problem_confirm`):m&&(b=t(`auth_files.delete_filtered_confirm`,{type:y})),r({title:t(`auth_files.delete_all_title`,{defaultValue:`Delete All Files`}),message:b,variant:`danger`,confirmText:t(`common.confirm`),onConfirm:async()=>{v(!0);try{if(!m&&!h&&!g&&!_)await jy.deleteAll(),n(t(`auth_files.delete_all_success`),`success`),z(),ie.current?.(),o(e=>e.filter(e=>yO(e))),le(),xj();else{let e=a.filter(e=>!(yO(e)||m&&ZD(String(e.type??e.provider??``))!==i||h&&!rO(e)||g&&e.disabled!==!0||_&&e.disabled===!0));if(e.length===0){let e=t(`auth_files.delete_filtered_none`,{type:y});g||_?e=t(`auth_files.delete_filtered_result_none`):h&&(e=m?t(`auth_files.delete_problem_filtered_none`,{type:y}):t(`auth_files.delete_problem_none`)),n(e,`info`),v(!1);return}let r=await jy.deleteFiles(e.map(e=>e.name)),o=r.deleted,s=r.failed.length;ue(r.files),r.deleted>0&&xj(),s===0&&(g||_)?n(t(`auth_files.delete_filtered_result_success`,{count:o}),`success`):s===0&&h?n(m?t(`auth_files.delete_problem_filtered_success`,{count:o,type:y}):t(`auth_files.delete_problem_success`,{count:o}),`success`):s===0?n(t(`auth_files.delete_filtered_success`,{count:o,type:y}),`success`):n(g||_?t(`auth_files.delete_filtered_result_partial`,{success:o,failed:s}):h?m?t(`auth_files.delete_problem_filtered_partial`,{success:o,failed:s,type:y}):t(`auth_files.delete_problem_partial`,{success:o,failed:s}):t(`auth_files.delete_filtered_partial`,{success:o,failed:s,type:y}),`warning`),m&&u(),h&&d(),g&&f(),_&&p()}}catch(e){let r=e instanceof Error?e.message:``;n(`${t(`notification.delete_failed`)}: ${r}`,`error`)}finally{v(!1)}}})},[ue,le,a,z,r,n,t]),ge=(0,y.useCallback)(async e=>{try{Sj({filename:e,blob:await jy.download(e)}),n(t(`auth_files.download_success`),`success`)}catch(e){let r=e instanceof Error?e.message:``;n(`${t(`notification.download_failed`)}: ${r}`,`error`)}},[n,t]),_e=(0,y.useCallback)(async e=>{let r=e.name.trim(),i=e.type??e.provider,a=SO(e),o=W.getConnectionRevision();if(!(!r||e.disabled===!0||yO(e)||!QD(i)||O.current||L.current.has(a))){L.current.add(a),C(e=>({...e,[a]:!0}));try{if(await jy.requestManualRefresh(r,String(e.authIndex??``).trim()||void 0),o!==W.getConnectionRevision())return;z(),n(t(`auth_files.manual_refresh_requested`,{name:r}),`info`),xj(),ie.current?.([r]),await de({background:!0})}catch(e){if(o!==W.getConnectionRevision())return;let i=e instanceof Error?e.message:t(`notification.update_failed`);n(t(`auth_files.manual_refresh_failed`,{name:r,message:i}),`error`)}finally{L.current.delete(a),C(e=>{if(o!==W.getConnectionRevision()||!e[a])return e;let t={...e};return delete t[a],t})}}},[z,de,n,t]),ve=(0,y.useCallback)(()=>{if(O.current||L.current.size>0)return;let e=W.getConnectionRevision();r({title:t(`auth_files.refresh_all_button`),message:t(`auth_files.refresh_all_confirm`),confirmText:t(`auth_files.refresh_all_button`),onConfirm:async()=>{if(!(e!==W.getConnectionRevision()||O.current||L.current.size>0)){O.current=!0,T(!0),D(null);try{let t=await jy.requestAllManualRefresh();if(e!==W.getConnectionRevision())return;D(t)}catch(r){if(e!==W.getConnectionRevision())return;let i=r instanceof Error?r.message:t(`notification.update_failed`);n(t(`auth_files.refresh_all_failed`,{message:i}),`error`)}finally{O.current=!1,e===W.getConnectionRevision()&&(T(!1),z(),ie.current?.(),xj(),await de({background:!0}))}}}})},[z,de,r,n,t]),ye=(0,y.useCallback)(e=>{let i=String(e.authIndex??``).trim();if(!i||!e.cooldownSnapshot?.records?.length||R.current.has(i))return;let a=W.getConnectionRevision();r({title:t(`auth_files.cooldown_reset_title`),message:t(`auth_files.cooldown_reset_confirm`,{name:e.name}),confirmText:t(`auth_files.cooldown_reset_button`),variant:`primary`,onConfirm:async()=>{if(!(a!==W.getConnectionRevision()||R.current.has(i))){R.current.add(i),j(e=>({...e,[i]:!0}));try{if(await jy.resetCooldown(i),a!==W.getConnectionRevision())return;z(),o(e=>e.map(e=>String(e.authIndex??``).trim()===i&&e.cooldownSnapshot?{...e,cooldownSnapshot:{...e.cooldownSnapshot,receivedAtMs:Date.now(),records:[]}}:e)),n(t(`auth_files.cooldown_reset_success`,{name:e.name}),`success`),await de({background:!0})}catch(r){if(a!==W.getConnectionRevision())return;let i=r instanceof Error?r.message:t(`notification.update_failed`);n(t(`auth_files.cooldown_reset_failed`,{name:e.name,message:i}),`error`)}finally{R.current.delete(i),j(e=>{if(!e[i])return e;let t={...e};return delete t[i],t})}}}})},[z,de,r,n,t]),be=(0,y.useCallback)(async(e,r)=>{let i=W.getConnectionRevision();ne.current.revision!==i&&(ne.current={revision:i,keys:new Set},te.current=!1,N(!1),x({}));let a=SO(e);if(ne.current.keys.has(a))return;ne.current.keys.add(a);let s=e.name,c=!r,l=e.disabled===!0;x(e=>({...e,[a]:!0})),z(),o(e=>e.map(e=>SO(e)===a?{...e,disabled:c}:e));try{let l=await jy.setStatus(s,c,String(e.authIndex??``).trim()||void 0);if(i!==W.getConnectionRevision())return;z(),o(e=>i===W.getConnectionRevision()?e.map(e=>SO(e)===a?{...e,disabled:l.disabled}:e):e),n(t(r?`auth_files.status_enabled_success`:`auth_files.status_disabled_success`,{name:s}),`success`)}catch(e){if(i!==W.getConnectionRevision())return;let r=e instanceof Error?e.message:``;o(e=>i===W.getConnectionRevision()?e.map(e=>SO(e)===a?{...e,disabled:l}:e):e),n(`${t(`notification.update_failed`)}: ${r}`,`error`)}finally{i===W.getConnectionRevision()&&(ne.current.keys.delete(a),x(e=>{if(i!==W.getConnectionRevision())return e;let t={...e};return delete t[a],t}))}},[z,n,t]),xe=(0,y.useCallback)(async(e,r)=>{let i=W.getConnectionRevision();if(ne.current.revision!==i&&(ne.current={revision:i,keys:new Set},te.current=!1,N(!1),x({})),te.current)return;let s=new Set(e),c=new Map(a.filter(e=>s.has(e.name)).map(e=>[SO(e),e]));if([...c.keys()].some(e=>ne.current.keys.has(e)))return;let l=new Map([...c].map(([e,t])=>[e,t.disabled===!0])),u=new Set(l.keys()),d=Array.from(u);if(d.length===0)return;let f=!r;te.current=!0,d.forEach(e=>ne.current.keys.add(e)),N(!0),z(),x(e=>{let t={...e};return d.forEach(e=>{t[e]=!0}),t}),o(e=>e.map(e=>u.has(SO(e))?{...e,disabled:f}:e));try{let e=await Promise.allSettled(d.map(e=>{let t=c.get(e);return jy.setStatus(t.name,f,String(t.authIndex??``).trim()||void 0)}));if(i!==W.getConnectionRevision())return;z();let r=0,a=0,s=new Set,u=new Map;e.forEach((e,t)=>{let n=d[t];e.status===`fulfilled`?(r++,u.set(n,e.value.disabled)):(a++,s.add(n))}),o(e=>i===W.getConnectionRevision()?e.map(e=>{let t=SO(e);return s.has(t)?{...e,disabled:l.get(t)===!0}:u.has(t)?{...e,disabled:u.get(t)}:e}):e),a===0?n(t(`auth_files.batch_status_success`,{count:r}),`success`):n(t(`auth_files.batch_status_partial`,{success:r,failed:a}),`warning`),le()}finally{i===W.getConnectionRevision()&&(te.current=!1,d.forEach(e=>ne.current.keys.delete(e)),N(!1),x(e=>{if(i!==W.getConnectionRevision())return e;let t={...e};return d.forEach(e=>{delete t[e]}),t}))}},[le,a,z,n,t]);return{files:a,selectedFiles:ee,selectionCount:ae,loading:s,refreshing:l,error:d,uploading:p,deleting:h,deletingAll:_,statusUpdating:b,manualRefreshing:S,refreshingAllCredentials:w,refreshResults:E,closeRefreshResults:k,handleRefreshAllCredentials:ve,cooldownResetting:A,batchStatusUpdating:M,fileInputRef:F,loadFiles:de,handleUploadClick:fe,handleFileChange:pe,handleDelete:me,handleDeleteAll:he,handleDownload:ge,handleManualRefresh:_e,handleCooldownReset:ye,handleStatusToggle:be,toggleSelect:oe,selectAllVisible:se,invertVisibleSelection:ce,deselectAll:le,batchDownload:(0,y.useCallback)(async e=>{let r=Array.from(new Set(e));if(r.length===0)return;let i=0,a=0;for(let e of r)try{Sj({filename:e,blob:await jy.download(e)}),i++}catch{a++}a===0?n(t(`auth_files.batch_download_success`,{count:i}),`success`):n(t(`auth_files.batch_download_partial`,{success:i,failed:a}),`warning`),le()},[le,n,t]),batchSetStatus:xe,batchDelete:(0,y.useCallback)(e=>{let i=Array.from(new Set(e));i.length!==0&&r({title:t(`auth_files.batch_delete_title`),message:t(`auth_files.batch_delete_confirm`,{count:i.length}),variant:`danger`,confirmText:t(`common.confirm`),onConfirm:async()=>{try{let e=await jy.deleteFiles(i);ue(e.files),e.deleted>0&&xj(),e.failed.length===0?n(`${t(`auth_files.delete_all_success`)} (${e.deleted})`,`success`):n(t(`auth_files.delete_filtered_partial`,{success:e.deleted,failed:e.failed.length,type:t(`auth_files.filter_all`)}),`warning`)}catch(e){let r=e instanceof Error?e.message:``;n(`${t(`notification.delete_failed`)}: ${r}`,`error`)}}})},[ue,r,n,t])}}function yte(){let{t:e}=B(),t=Jc(e=>e.showNotification),[n,r]=(0,y.useState)(!1),[i,a]=(0,y.useState)(!1),[o,s]=(0,y.useState)([]),[c,l]=(0,y.useState)(``),[u,d]=(0,y.useState)(``),[f,p]=(0,y.useState)(null),m=(0,y.useRef)(new Map),h=(0,y.useRef)(0),g=(0,y.useRef)(new Map),_=(0,y.useRef)(0),v=(0,y.useCallback)(()=>{_.current+=1,r(!1),a(!1)},[]),b=(0,y.useCallback)(e=>{if(!e){m.current.clear(),g.current.clear(),h.current+=1;return}new Set(e.map(e=>e.trim()).filter(Boolean)).forEach(e=>{m.current.delete(e),g.current.set(e,(g.current.get(e)??0)+1)})},[]);return{modelsModalOpen:n,modelsLoading:i,modelsList:o,modelsFileName:c,modelsFileType:u,modelsError:f,showModels:(0,y.useCallback)(async n=>{let i=n.name.trim(),o=++_.current;l(n.name),d(n.type||``),s([]),p(null),r(!0);let c=m.current.get(i);if(c){s(c),a(!1);return}let u=h.current,f=g.current.get(i)??0,v=()=>u===h.current&&f===(g.current.get(i)??0),y=()=>o===_.current;a(!0);try{let e=await jy.getModelsForAuthFile(n.name);v()&&(m.current.set(i,e),y()&&s(e))}catch(n){if(!y()||!v())return;let r=n instanceof Error?n.message:``;r.includes(`404`)||r.includes(`not found`)||r.includes(`Not Found`)?p(`unsupported`):t(`${e(`notification.load_failed`)}: ${r}`,`error`)}finally{y()&&a(!1)}},[t,e]),closeModelsModal:v,invalidateModels:b}}function bte(e){let{viewMode:t,files:n}=e,{t:r}=B(),{showNotification:i,showConfirmation:a}=Jc(),[o,s]=(0,y.useState)({}),[c,l]=(0,y.useState)(`loading`),[u,d]=(0,y.useState)({}),[f,p]=(0,y.useState)(`loading`),[m,h]=(0,y.useState)({}),g=(0,y.useRef)(!1),_=(0,y.useRef)(!1),v=(0,y.useRef)(!1),b=(0,y.useRef)(!1),x=(0,y.useRef)(0),S=(0,y.useRef)(0);(0,y.useEffect)(()=>()=>{v.current=!1,b.current=!1,x.current+=1,S.current+=1},[]);let C=(0,y.useMemo)(()=>{let e=new Set;return Object.keys(u).forEach(t=>{let n=t.trim().toLowerCase();n&&e.add(n)}),n.forEach(t=>{if(typeof t.type==`string`){let n=t.type.trim().toLowerCase();n&&e.add(n)}if(typeof t.provider==`string`){let n=t.provider.trim().toLowerCase();n&&e.add(n)}}),Array.from(e)},[n,u]);(0,y.useEffect)(()=>{if(t!==`diagram`)return;let e=!1;return(async()=>{if(C.length===0){e||h({});return}let t=await Promise.all(C.map(async e=>{try{return{provider:e,models:await jy.getModelDefinitions(e)}}catch{return{provider:e,models:[]}}}));if(e)return;let n={};t.forEach(({provider:e,models:t})=>{t.length>0&&(n[e]=t)}),h(n)})(),()=>{e=!0}},[C,t]);let w=(0,y.useCallback)(async()=>{let e=++x.current;v.current=!1,l(`loading`);try{let t=await jy.getOauthExcludedModels();if(e!==x.current)return;g.current=!1,v.current=!0,s(t||{}),l(null)}catch(t){if(e!==x.current)return;if((typeof t==`object`&&t&&`status`in t?t.status:void 0)===404){s({}),l(`unsupported`),g.current||(g.current=!0,i(r(`oauth_excluded.upgrade_required`),`warning`));return}l(`load`)}},[i,r]),T=(0,y.useCallback)(async()=>{let e=++S.current;b.current=!1,p(`loading`);try{let t=await jy.getOauthModelAlias();if(e!==S.current)return;_.current=!1,b.current=!0,d(t||{}),p(null)}catch(t){if(e!==S.current)return;if((typeof t==`object`&&t&&`status`in t?t.status:void 0)===404){d({}),p(`unsupported`),_.current||(_.current=!0,i(r(`oauth_model_alias.upgrade_required`),`warning`));return}p(`load`)}},[i,r]),E=(0,y.useCallback)(()=>{i(r(`notification.refresh_failed`),`error`)},[i,r]);return{excluded:o,excludedError:c,modelAlias:u,modelAliasError:f,allProviderModels:m,providerList:C,loadExcluded:w,loadModelAlias:T,deleteExcluded:(0,y.useCallback)(e=>{let t=e.trim()||e;a({title:r(`oauth_excluded.delete_title`,{defaultValue:`Delete Exclusion`}),message:r(`oauth_excluded.delete_confirm`,{provider:t}),variant:`danger`,confirmText:r(`common.confirm`),onConfirm:async()=>{if(!v.current){E();return}let t=ZD(e);if(!t){i(r(`oauth_excluded.provider_required`),`error`);return}try{await jy.deleteOauthExcludedEntry(t),await w(),i(r(`oauth_excluded.delete_success`),`success`)}catch(e){try{let e=await jy.getOauthExcludedModels(),n={};Object.entries(e).forEach(([e,r])=>{ZD(e)!==t&&(n[e]=r)}),await jy.replaceOauthExcludedModels(n),await w(),i(r(`oauth_excluded.delete_success`),`success`)}catch(t){let n=t instanceof Error?t.message:e instanceof Error?e.message:``;i(`${r(`oauth_excluded.delete_failed`)}: ${n}`,`error`)}}}})},[w,a,E,i,r]),deleteModelAlias:(0,y.useCallback)(e=>{a({title:r(`oauth_model_alias.delete_title`,{defaultValue:`Delete Mappings`}),message:r(`oauth_model_alias.delete_confirm`,{provider:e}),variant:`danger`,confirmText:r(`common.confirm`),onConfirm:async()=>{if(!b.current){E();return}try{await jy.deleteOauthModelAlias(e),await T(),i(r(`oauth_model_alias.delete_success`),`success`)}catch(e){let t=e instanceof Error?e.message:``;i(`${r(`oauth_model_alias.delete_failed`)}: ${t}`,`error`)}}})},[T,a,E,i,r]),handleMappingUpdate:(0,y.useCallback)(async(e,t,n)=>{if(!b.current){E();return}if(!e||!t||!n)return;let a=ZD(e);if(!a)return;let o=Object.keys(u).find(e=>ZD(e)===a),s=(o?u[o]:null)??[],c=t.trim(),l=n.trim(),d=c.toLowerCase(),f=l.toLowerCase();if(s.some(e=>(e.name??``).trim().toLowerCase()===d&&(e.alias??``).trim().toLowerCase()===f))return;let p=[...s,{name:c,alias:l,fork:!0}];try{await jy.saveOauthModelAlias(a,p),await T(),i(r(`oauth_model_alias.save_success`),`success`)}catch(e){let t=e instanceof Error?e.message:``;i(`${r(`oauth_model_alias.save_failed`)}: ${t}`,`error`)}},[T,u,E,i,r]),handleDeleteLink:(0,y.useCallback)((e,t,n)=>{let o=t.trim(),s=n.trim();!e||!o||!s||a({title:r(`oauth_model_alias.delete_link_title`,{defaultValue:`Unlink mapping`}),message:(0,V.jsx)(is,{i18nKey:`oauth_model_alias.delete_link_confirm`,values:{provider:e,sourceModel:o,alias:s},components:{code:(0,V.jsx)(`code`,{})}}),variant:`danger`,confirmText:r(`common.confirm`),onConfirm:async()=>{if(!b.current){E();return}let t=ZD(e),n=Object.keys(u).find(e=>ZD(e)===t),a=(n?u[n]:null)??[],c=o.toLowerCase(),l=s.toLowerCase(),d=a.filter(e=>(e.name??``).trim().toLowerCase()!==c||(e.alias??``).trim().toLowerCase()!==l);if(d.length!==a.length)try{d.length===0?await jy.deleteOauthModelAlias(t):await jy.saveOauthModelAlias(t,d),await T(),i(r(`oauth_model_alias.save_success`),`success`)}catch(e){let t=e instanceof Error?e.message:``;i(`${r(`oauth_model_alias.save_failed`)}: ${t}`,`error`)}}})},[T,u,a,E,i,r]),handleToggleFork:(0,y.useCallback)(async(e,t,n,a)=>{if(!b.current){E();return}let o=ZD(e);if(!o)return;let s=Object.keys(u).find(e=>ZD(e)===o),c=(s?u[s]:null)??[],l=t.trim().toLowerCase(),d=n.trim().toLowerCase(),f=!1,p=c.map(e=>{let t=(e.name??``).trim().toLowerCase(),n=(e.alias??``).trim().toLowerCase();return t===l&&n===d?(f=!0,a?{...e,fork:!0}:{...e,fork:void 0}):e});if(f)try{await jy.saveOauthModelAlias(o,p),await T(),i(r(`oauth_model_alias.save_success`),`success`)}catch(e){let t=e instanceof Error?e.message:``;i(`${r(`oauth_model_alias.save_failed`)}: ${t}`,`error`)}},[T,u,E,i,r]),handleRenameAlias:(0,y.useCallback)(async(e,t)=>{if(!b.current){E();return}let n=e.trim(),a=t.trim();if(!n||!a||n===a)return;let o=n.toLowerCase(),s=Object.entries(u).filter(([e,t])=>t.some(e=>(e.alias??``).trim().toLowerCase()===o));if(s.length===0)return;let c=!1,l=``;try{let e=(await Promise.allSettled(s.map(([e,t])=>{let n=t.map(e=>(e.alias??``).trim().toLowerCase()===o?{...e,alias:a}:e);return jy.saveOauthModelAlias(e,n)}))).filter(e=>e.status===`rejected`);if(e.length>0){c=!0;let t=e[0].reason;l=t instanceof Error?t.message:String(t??``)}}finally{await T()}c?i(l?`${r(`oauth_model_alias.save_failed`)}: ${l}`:r(`oauth_model_alias.save_failed`),`error`):i(r(`oauth_model_alias.save_success`),`success`)},[T,u,E,i,r]),handleDeleteAlias:(0,y.useCallback)(e=>{let t=e.trim();if(!t)return;let n=t.toLowerCase(),o=Object.entries(u).filter(([e,t])=>t.some(e=>(e.alias??``).trim().toLowerCase()===n));o.length!==0&&a({title:r(`oauth_model_alias.delete_alias_title`,{defaultValue:`Delete Alias`}),message:(0,V.jsx)(is,{i18nKey:`oauth_model_alias.delete_alias_confirm`,values:{alias:t},components:{code:(0,V.jsx)(`code`,{})}}),variant:`danger`,confirmText:r(`common.confirm`),onConfirm:async()=>{if(!b.current){E();return}let e=!1,t=``;try{let r=(await Promise.allSettled(o.map(([e,t])=>{let r=t.filter(e=>(e.alias??``).trim().toLowerCase()!==n);return r.length===0?jy.deleteOauthModelAlias(e):jy.saveOauthModelAlias(e,r)}))).filter(e=>e.status===`rejected`);if(r.length>0){e=!0;let n=r[0].reason;t=n instanceof Error?n.message:String(n??``)}}finally{await T()}e?i(t?`${r(`oauth_model_alias.delete_failed`)}: ${t}`:r(`oauth_model_alias.delete_failed`),`error`):i(r(`oauth_model_alias.delete_success`),`success`)}})},[T,u,a,E,i,r])}}var Cj=e=>!!e&&typeof e==`object`&&!Array.isArray(e),xte=e=>Cj(e)?Object.values(e).every(e=>typeof e==`string`)?null:`auth_files.headers_invalid_value`:`auth_files.headers_invalid_object`,wj=e=>{if(!e.trim())return{value:null,errorKey:null};let t;try{t=JSON.parse(e)}catch{return{value:null,errorKey:`auth_files.headers_invalid_json`}}let n=xte(t);return n?{value:null,errorKey:n}:{value:t,errorKey:null}},Tj=e=>e===`max`?`auth_files.weight_invalid_max`:`auth_files.weight_invalid_integer`,Ej=e=>typeof e==`string`?e.trim():``,Dj=e=>{if(!Array.isArray(e))return[];let t=new Set,n=[];return e.forEach(e=>{if(typeof e!=`string`)return;let r=e.trim(),i=r.toLowerCase();!r||t.has(i)||(t.add(i),n.push(r))}),n},Ste=e=>Dj(e.split(/\r?\n/)),Oj=e=>Dj(e.excluded_models===void 0?e[`excluded-models`]:e.excluded_models),Cte=e=>e.excluded_models===void 0&&e[`excluded-models`]!==void 0?`excluded-models`:`excluded_models`,kj=1e3,wte=e=>{let t=e.trim();return t?t.length<=kj?t:`${t.slice(0,kj)}\n...`:``},Aj=(e,t)=>({loading:!1,error:t(Tte(e)),rawText:e,originalText:e,invalidContentPreview:wte(e)}),Tte=e=>{let t=e.trimStart().slice(0,4096).toLowerCase(),n=t.startsWith(`<!doctype html`)||t.startsWith(`<html`)||t.includes(`<head`)||t.includes(`<body`),r=t.includes(`cf_chl`)||t.includes(`__cf_chl_tk`)||t.includes(`challenge-platform`)||t.includes(`cloudflare`);return n||r?`auth_files.prefix_proxy_html_challenge`:`auth_files.prefix_proxy_invalid_json`},jj=e=>!!(e&&Object.keys(e).length>0),Mj=e=>Cj(e)?Object.entries(e).reduce((e,[t,n])=>{if(typeof n!=`string`)return e;let r=t.trim(),i=n.trim();return!r||!i||(e[r]=i),e},{}):{},Ete=(e,t)=>{let n={},r=new Set(Object.keys(t));return Object.entries(t).forEach(([t,r])=>{e[t]!==r&&(n[t]=r)}),Object.keys(e).forEach(e=>{r.has(e)||(n[e]=``)}),Object.keys(n).length>0?n:void 0},Dte=(e,t)=>{if(!t)return;let n=Mj(e.headers);Object.entries(t).forEach(([e,t])=>{let r=e.trim();if(!r)return;let i=t.trim();if(!i){delete n[r];return}n[r]=i}),Object.keys(n).length>0?e.headers=n:delete e.headers},Nj=(e,t)=>{let n=e.json??{},r={},i=Ej(n.prefix),a=e.prefix.trim();a!==i&&(r.prefix=a);let o=Ej(n.proxy_url),s=e.proxyUrl.trim();s!==o&&(r.proxy_url=s);let c=uO(n.priority),l=e.priority.trim(),u=uO(l);l?u!==void 0&&(u===0?c!==void 0&&c!==0&&(r.priority=0):u!==c&&(r.priority=u)):c!==void 0&&c!==0&&(r.priority=0);let d=hp(e.weight);if(d)throw Error(t(Tj(d)));let f=mp(n.weight),p=gp(e.weight);if(p===void 0?f!==void 0&&(r.weight=null):p!==f&&(r.weight=p),e.disableCoolingTouched){let t=fO(n),i=!!e.disableCooling;if(i!==t){let e=n.disable_cooling===void 0&&n[`disable-cooling`]!==void 0?`disable-cooling`:`disable_cooling`;r[e]=i}}if(e.noteTouched){let t=Ej(n.note),i=e.note.trim();i!==t&&(r.note=i)}if(e.excludedModelsTouched){let t=Oj(n),i=Ste(e.excludedModelsText);JSON.stringify(i)!==JSON.stringify(t)&&(r[Cte(n)]=i)}if(pO(e.providerKey)&&e.websocketsTouched){let t=mO(n),i=!!e.websockets;i!==t&&(r.websockets=i)}if(gO(e.providerKey)&&e.usingApiTouched){let t=_O(n),i=!!e.usingApi;i!==t&&(r.using_api=i)}if(e.headersTouched){let{value:i,errorKey:a}=wj(e.headersText);if(a)throw Error(t(a));let o=Ete(Mj(n.headers),Mj(i??{}));o&&(r.headers=o)}return Object.assign(r,Hee(n,e.policy)),r},Pj=(e,t)=>{if(!e?.json)return e?.rawText??``;let n=Nj(e,t),r={...e.json};return n.prefix!==void 0&&(n.prefix?r.prefix=n.prefix:delete r.prefix),n.proxy_url!==void 0&&(n.proxy_url?r.proxy_url=n.proxy_url:delete r.proxy_url),n.priority!==void 0&&(n.priority===0?delete r.priority:r.priority=n.priority),n.weight!==void 0&&(n.weight===null?delete r.weight:r.weight=n.weight),n.disable_cooling!==void 0&&(r.disable_cooling=n.disable_cooling),n[`disable-cooling`]!==void 0&&(r[`disable-cooling`]=n[`disable-cooling`]),n.note!==void 0&&(n.note?r.note=n.note:`note`in r&&delete r.note),n.excluded_models!==void 0&&(r.excluded_models=n.excluded_models),n[`excluded-models`]!==void 0&&(r[`excluded-models`]=n[`excluded-models`]),Uee(r,n),Dte(r,n.headers),n.websockets!==void 0&&(r=hO(r,n.websockets)),n.using_api!==void 0&&(r=vO(r,n.using_api)),JSON.stringify(r)};function Fj(e){let{disableControls:t,loadFiles:n,onFilesMutated:r}=e,i=(0,y.useRef)(W.getConnectionRevision()),a=(0,y.useRef)(0),{t:o}=B(),s=Jc(e=>e.showNotification),[c,l]=(0,y.useState)(null),u=!!(c?.headersTouched&&c.headersError||c?.weightError||tj(c?.policy)),d=c&&!u?Pj(c,e=>o(e)):``,f=jj(c?.json&&!u?Nj(c,e=>o(e)):null)||!!tj(c?.policy),p=()=>{a.current+=1,l(null)};return{prefixProxyEditor:c,prefixProxyUpdatedText:d,prefixProxyDirty:f,openPrefixProxyEditor:async e=>{let n=e.name,r=ZD(String(e.type??e.provider??``));if(t)return;if(c?.fileName===n){p();return}let u=W.getConnectionRevision();i.current=u;let d=++a.current,f=()=>u===W.getConnectionRevision()&&d===a.current;l({fileName:n,fileInfoText:JSON.stringify(e,null,2),loading:!0,saving:!1,error:null,originalText:``,rawText:``,invalidContentPreview:``,json:null,providerKey:r,prefix:``,proxyUrl:``,priority:``,weight:``,weightError:null,disableCooling:!1,disableCoolingTouched:!1,websockets:!1,websocketsTouched:!1,usingApi:!1,usingApiTouched:!1,note:``,noteTouched:!1,excludedModelsText:``,excludedModelsTouched:!1,headersText:``,headersTouched:!1,headersError:null});try{let t=await jy.downloadText(n);if(!f())return;let r=t.trim(),i;try{i=JSON.parse(r)}catch{l(e=>!e||e.fileName!==n?e:{...e,...Aj(t,e=>o(e))});return}if(!i||typeof i!=`object`||Array.isArray(i)){l(e=>!e||e.fileName!==n?e:{...e,...Aj(t,e=>o(e))});return}let a={...i},s=JSON.stringify(a),c=ZD(String(a.type??a.provider??e.type??e.provider??``)),u=typeof a.prefix==`string`?a.prefix:``,d=typeof a.proxy_url==`string`?a.proxy_url:``,p=uO(a.priority),m=mp(a.weight),h=fO(a),g=pO(c)?mO(a):!1,_=gO(c)?_O(a):!1,v=typeof a.note==`string`?a.note:``,y=Oj(a).join(`
`),b=a.headers,x=``,S=null;if(b!==void 0){x=JSON.stringify(b,null,2);let{errorKey:e}=wj(x);S=e?o(e):null}l(e=>!e||e.fileName!==n?e:{...e,loading:!1,originalText:s,rawText:s,invalidContentPreview:``,json:a,policy:ej(a),providerKey:c,prefix:u,proxyUrl:d,priority:p===void 0?``:String(p),weight:m===void 0?``:String(m),weightError:null,disableCooling:h,disableCoolingTouched:!1,websockets:g,websocketsTouched:!1,usingApi:_,usingApiTouched:!1,note:v,noteTouched:!1,excludedModelsText:y,excludedModelsTouched:!1,headersText:x,headersTouched:!1,headersError:S,error:null})}catch(e){if(!f())return;let t=e instanceof Error?e.message:o(`notification.download_failed`);l(e=>!e||e.fileName!==n?e:{...e,loading:!1,error:t,rawText:``}),s(`${o(`notification.download_failed`)}: ${t}`,`error`)}},closePrefixProxyEditor:p,handlePrefixProxyChange:(e,t)=>{l(n=>{if(!n)return n;if(e===`requestRetry`||e===`modelAliases`||e===`errorRules`){let r=n.policy??ej(n.json??{});return{...n,policy:{...r,[e]:t,touched:{...r.touched,[e]:!0}}}}if(e===`prefix`)return{...n,prefix:String(t)};if(e===`proxyUrl`)return{...n,proxyUrl:String(t)};if(e===`priority`)return{...n,priority:String(t)};if(e===`weight`){let e=String(t),r=hp(e);return{...n,weight:e,weightError:r?o(Tj(r)):null}}if(e===`disableCooling`)return{...n,disableCooling:!!t,disableCoolingTouched:!0};if(e===`websockets`)return{...n,websockets:!!t,websocketsTouched:!0};if(e===`usingApi`)return{...n,usingApi:!!t,usingApiTouched:!0};if(e===`note`)return{...n,note:String(t),noteTouched:!0};if(e===`excludedModelsText`)return{...n,excludedModelsText:String(t),excludedModelsTouched:!0};if(e===`headersText`){let e=String(t),{errorKey:r}=wj(e);return{...n,headersText:e,headersTouched:!0,headersError:r?o(r):null}}return n})},handlePrefixProxySave:async()=>{if(t||c?.saving||!c?.json)return;let e=i.current,d=a.current,m=()=>e===W.getConnectionRevision()&&d===a.current;if(!m()||!f||u)return;let h=c.fileName,g;try{g=Nj(c,e=>o(e))}catch(e){let t=e instanceof Error?e.message:`Invalid format`;s(t,`error`);return}if(jj(g)){l(e=>!e||e.fileName!==h?e:{...e,saving:!0});try{if(await jy.patchFields(h,g),!m())return;r?.([h]),xj(),s(o(`auth_files.prefix_proxy_saved_success`,{name:h}),`success`),await n(),m()&&p()}catch(e){if(!m())return;let t=e instanceof Error?e.message:``;s(`${o(`notification.update_failed`)}: ${t}`,`error`),l(e=>!e||e.fileName!==h?e:{...e,saving:!1})}}}}}function Ij(e){return(0,y.useMemo)(()=>{let t=new Map;return e.forEach(e=>{let n=hm(e.auth_index??e.authIndex);n&&t.set(n,bm(gm(e.recent_requests??e.recentRequests)))}),t},[e])}var Lj=[`default`,`az`,`priority`],Rj=[`all`,`enabled`,`disabled`,`problem`],zj=`authFilesPage.uiState`,Bj=`authFilesPage.compactMode`,Vj=new Set(Lj),Hj=new Set(Rj),Uj=e=>typeof e==`string`&&Vj.has(e),Wj=e=>typeof e==`string`&&Hj.has(e),Gj=e=>{if(!e)return null;let t=e.getItem(zj);if(!t)return null;let n=JSON.parse(t);return n&&typeof n==`object`?n:null},Kj=()=>{if(typeof window>`u`)return null;try{return Gj(window.localStorage)??Gj(window.sessionStorage)}catch{return null}},qj=e=>{if(!(typeof window>`u`)){try{window.localStorage.setItem(zj,JSON.stringify(e))}catch{}try{window.sessionStorage.removeItem(zj)}catch{}}},Jj=()=>{if(typeof window>`u`)return null;try{let e=window.localStorage.getItem(Bj);return e===null?null:JSON.parse(e)===!0}catch{return null}},Ote=e=>{if(!(typeof window>`u`))try{window.localStorage.setItem(Bj,JSON.stringify(e))}catch{}},Yj={page:`AuthFilesPage-module__page___JPd3G`,workbench:`AuthFilesPage-module__workbench___6lAP6`,errorBanner:`AuthFilesPage-module__errorBanner___03gC7`,grid:`AuthFilesPage-module__grid___aXe04`,gridCompact:`AuthFilesPage-module__gridCompact___jvWkO`,gridQuota:`AuthFilesPage-module__gridQuota___jeDKQ`,emptyActions:`AuthFilesPage-module__emptyActions___9Gal6`,pagination:`AuthFilesPage-module__pagination___GnfXF`,pageInfo:`AuthFilesPage-module__pageInfo___YpJQV`,configGrid:`AuthFilesPage-module__configGrid___KGRYV`},Xj=9,Zj=12,Qj=6,$j=360,eM=(e,t)=>e?`problem`:t?`disabled`:`all`,tM=e=>e===`disabledProblem`?`problem`:Wj(e)?e:null;function nM(){let{t:e}=B(),t=Jc(e=>e.showNotification),n=Im(e=>e.connectionStatus),r=rl(e=>e.resolvedTheme),i=Bh(),a=!i||i.status===`current`,o=hr(),[s,c]=(0,y.useState)(`all`),[l,u]=(0,y.useState)(`all`),[d,f]=(0,y.useState)(!1),[p,m]=(0,y.useState)(``),[h,g]=(0,y.useState)(1),[_,v]=(0,y.useState)({regular:Xj,compact:Zj}),[b,x]=(0,y.useState)(`9`),[S,C]=(0,y.useState)(`list`),[w,T]=(0,y.useState)(`default`),[E,D]=(0,y.useState)(!1),{modelsModalOpen:O,modelsLoading:k,modelsList:A,modelsFileName:j,modelsFileType:M,modelsError:N,showModels:ee,closeModelsModal:P,invalidateModels:F}=yte(),I=(0,y.useCallback)(e=>_te(F,e),[F]),{files:L,selectedFiles:R,selectionCount:te,loading:ne,refreshing:re,error:z,uploading:ie,deleting:ae,deletingAll:oe,statusUpdating:se,manualRefreshing:ce,refreshingAllCredentials:le,refreshResults:ue,closeRefreshResults:de,handleRefreshAllCredentials:fe,cooldownResetting:pe,batchStatusUpdating:me,fileInputRef:he,loadFiles:ge,handleUploadClick:_e,handleFileChange:ve,handleDelete:ye,handleDeleteAll:be,handleDownload:xe,handleManualRefresh:Se,handleCooldownReset:Ce,handleStatusToggle:we,toggleSelect:Te,selectAllVisible:Ee,invertVisibleSelection:De,deselectAll:Oe,batchDownload:ke,batchSetStatus:Ae,batchDelete:je}=vte({onFilesMutated:I}),Me=Ij(L),{excluded:Ne,excludedError:Pe,modelAlias:Fe,modelAliasError:Ie,allProviderModels:Le,loadExcluded:Re,loadModelAlias:ze,deleteExcluded:Be,deleteModelAlias:Ve,handleMappingUpdate:He,handleDeleteLink:Ue,handleToggleFork:We,handleRenameAlias:Ge,handleDeleteAlias:Ke}=bte({viewMode:S,files:L}),{prefixProxyEditor:qe,prefixProxyUpdatedText:Je,prefixProxyDirty:Ye,openPrefixProxyEditor:Xe,closePrefixProxyEditor:Ze,handlePrefixProxyChange:Qe,handlePrefixProxySave:$e}=Fj({disableControls:n!==`connected`||le,loadFiles:ge,onFilesMutated:I}),et=n!==`connected`||le,tt=ZD(String(s)),nt=BD.has(tt)?tt:null,rt=tt===`all`?`all`:nt,it=d?_.compact:_.regular,at=l===`problem`,ot=l===`disabled`,st=l===`enabled`;(0,y.useEffect)(()=>{let e=Jj();typeof e==`boolean`&&f(e);let t=Kj();if(t){typeof t.filter==`string`&&t.filter.trim()&&c(ZD(t.filter));let n=tM(t.statusFilterMode);n?u(n):(typeof t.problemOnly==`boolean`||typeof t.disabledOnly==`boolean`)&&u(eM(t.problemOnly===!0,t.disabledOnly===!0)),typeof e!=`boolean`&&typeof t.compactMode==`boolean`&&f(t.compactMode),typeof t.search==`string`&&m(t.search),typeof t.page==`number`&&Number.isFinite(t.page)&&g(Math.max(1,Math.round(t.page)));let r=typeof t.pageSize==`number`&&Number.isFinite(t.pageSize)?XD(t.pageSize):null,i=typeof t.regularPageSize==`number`&&Number.isFinite(t.regularPageSize)?XD(t.regularPageSize):r??Xj,a=typeof t.compactPageSize==`number`&&Number.isFinite(t.compactPageSize)?XD(t.compactPageSize):r??Zj;v({regular:i,compact:a}),Uj(t.sortMode)&&T(t.sortMode)}D(!0)},[]),(0,y.useEffect)(()=>{E&&(qj({filter:s,statusFilterMode:l,problemOnly:at,disabledOnly:ot,compactMode:d,search:p,page:h,pageSize:it,regularPageSize:_.regular,compactPageSize:_.compact,sortMode:w}),Ote(d))},[d,ot,s,h,it,_,at,p,w,l,E]),(0,y.useEffect)(()=>{x(String(it))},[it]);let ct=(0,y.useCallback)(e=>{v(t=>d?{...t,compact:e}:{...t,regular:e})},[d]),lt=(0,y.useCallback)(e=>{let t=e.trim();if(!t){x(String(it));return}let n=Number(t);if(!Number.isFinite(n)){x(String(it));return}let r=XD(n);ct(r),x(String(r)),g(1)},[it,ct]),ut=(0,y.useCallback)(e=>{let t=e.currentTarget.value;x(t);let n=t.trim();if(!n)return;let r=Number(n);if(!Number.isFinite(r))return;let i=Math.round(r);XD(i)===i&&(ct(i),g(1))},[ct]),dt=(0,y.useCallback)(e=>{!Uj(e)||e===w||(T(e),g(1))},[w]),ft=(0,y.useCallback)(e=>{u(e),g(1)},[]),pt=(0,y.useRef)(!1),mt=(0,y.useCallback)(async()=>{await Promise.all([ge({background:!0}),Re(),ze()])},[ge,Re,ze]);cg(mt),(0,y.useEffect)(()=>{a&&(ge(pt.current?{background:!0}:void 0),pt.current=!0,Re(),ze())},[a,ge,Re,ze]),cb(()=>{ge({background:!0}).catch(()=>{})},a?24e4:null);let ht=(0,y.useMemo)(()=>{let e=new Set([`all`]);return L.forEach(t=>{let n=ZD(String(t.type??t.provider??``));n&&e.add(n)}),Array.from(e)},[L]),gt=(0,y.useMemo)(()=>L.filter(e=>!(st&&e.disabled===!0||ot&&e.disabled!==!0||at&&!rO(e))),[ot,st,L,at]),_t=(0,y.useMemo)(()=>[{value:`all`,label:e(`auth_files.problem_filter_all`)},{value:`enabled`,label:e(`auth_files.problem_filter_enabled`)},{value:`disabled`,label:e(`auth_files.problem_filter_disabled`)},{value:`problem`,label:e(`auth_files.problem_filter_problem`)}],[e]),vt=(0,y.useMemo)(()=>[{value:`default`,label:e(`auth_files.sort_default`)},{value:`az`,label:e(`auth_files.sort_az`)},{value:`priority`,label:e(`auth_files.sort_priority`)}],[e]),yt=(0,y.useMemo)(()=>{let e={all:gt.length};return gt.forEach(t=>{let n=ZD(String(t.type??t.provider??``));n&&(e[n]=(e[n]||0)+1)}),e},[gt]),bt=p.trim(),xt=(0,y.useMemo)(()=>OO(bt),[bt]),St=(0,y.useMemo)(()=>gt.filter(e=>{let t=ZD(String(e.type??e.provider??``));return(tt===`all`||t===tt)&&AO(e,bt,xt)}),[gt,tt,bt,xt]),Ct=(0,y.useMemo)(()=>jO(St,w),[St,w]),wt=Math.max(1,Math.ceil(Ct.length/it)),Tt=Math.min(h,wt),Et=(Tt-1)*it,Dt=(0,y.useMemo)(()=>Ct.slice(Et,Et+it),[it,Ct,Et]),Ot=(0,y.useMemo)(()=>Dt.filter(e=>!yO(e)),[Dt]),kt=(0,y.useMemo)(()=>Ct.filter(e=>!yO(e)),[Ct]),At=(0,y.useMemo)(()=>Array.from(R),[R]),jt=(0,y.useMemo)(()=>L.some(e=>R.has(e.name)&&se[SO(e)]===!0),[L,R,se]),Mt=et||At.length===0||me||jt,Nt=(0,y.useMemo)(()=>L.filter(e=>e.disabled!==!0).length,[L]),Pt=(0,y.useMemo)(()=>L.filter(rO).length,[L]),[Ft,It]=(0,y.useState)(!1),Lt=!Ft&&a&&!ne&&Dt.length>0;(0,y.useEffect)(()=>{Lt&&It(!0)},[Lt]);let Rt=e=>Lt?Dt.length<=1?0:Math.round(e/(Dt.length-1)*$j):null,zt=(0,y.useCallback)(async n=>{let r=await ID(n);t(r?e(`notification.link_copied`,{defaultValue:`Copied to clipboard`}):e(`notification.copy_failed`,{defaultValue:`Copy failed`}),r?`success`:`error`)},[t,e]),Bt=(0,y.useCallback)(e=>{let t=(e||(s===`all`?``:String(s))).trim(),n=new URLSearchParams;t&&n.set(`provider`,t);let r=n.toString();o(`/auth-files/oauth-excluded${r?`?${r}`:``}`,{state:{fromAuthFiles:!0}})},[s,o]),Vt=(0,y.useCallback)(e=>{let t=(e||(s===`all`?``:String(s))).trim(),n=new URLSearchParams;t&&n.set(`provider`,t);let r=n.toString();o(`/auth-files/oauth-model-alias${r?`?${r}`:``}`,{state:{fromAuthFiles:!0}})},[s,o]),Ht=(0,y.useCallback)(()=>{c(`all`),u(`all`),m(``),g(1)},[]),Ut=st||ot?e(`auth_files.delete_filtered_result_button`):at?tt===`all`?e(`auth_files.delete_problem_button`):e(`auth_files.delete_problem_button_with_type`,{type:iO(e,tt)}):tt===`all`?e(`auth_files.delete_all_button`):`${e(`common.delete`)} ${iO(e,tt)}`,Wt=ax(),Gt=!ne&&L.length===0&&!z,Kt=!ne&&L.length>0&&Dt.length===0,qt=[Yj.grid,d?Yj.gridCompact:``,rt?Yj.gridQuota:``].filter(Boolean).join(` `);return(0,V.jsxs)(`div`,{className:Yj.page,children:[(0,V.jsx)(fte,{totalCount:L.length,activeCount:Nt,problemCount:Pt,loading:ne,refreshing:re,uploading:ie,disableControls:et,onUpload:_e,onRefresh:()=>void mt(),refreshingCredentials:le,credentialRefreshDisabled:Object.keys(ce).length>0,onRefreshCredentials:fe}),(0,V.jsx)(Jee,{results:ue,onClose:de}),(0,V.jsx)(`input`,{ref:he,type:`file`,accept:`.json,application/json`,multiple:!0,style:{display:`none`},onChange:ve}),(0,V.jsx)(gte,{files:L,statusBarCache:Me}),(0,V.jsxs)(`section`,{className:Yj.workbench,"aria-label":e(`auth_files.title_section`),children:[(0,V.jsx)(_j,{types:ht,counts:yt,active:tt,resolvedTheme:r,onChange:e=>{c(e),g(1)}}),(0,V.jsx)(Xee,{search:p,onSearchChange:e=>{m(e),g(1)},statusFilterMode:l,statusFilterOptions:_t,onStatusFilterChange:ft,sortMode:w,sortOptions:vt,onSortModeChange:dt,pageSizeInput:b,onPageSizeInputChange:ut,onPageSizeCommit:lt,compactMode:d,onCompactModeChange:f,deleteLabel:Ut,deleteDisabled:et||ne||oe||L.length===0,deleteLoading:oe,onDelete:()=>be({filter:s,problemOnly:at,disabledOnly:ot,enabledOnly:st,onResetFilterToAll:()=>c(`all`),onResetProblemOnly:()=>u(`all`),onResetDisabledOnly:()=>u(`all`),onResetEnabledOnly:()=>u(`all`)})}),z&&(0,V.jsx)(`div`,{className:Yj.errorBanner,role:`alert`,children:z}),ne?(0,V.jsx)(`div`,{className:qt,"aria-hidden":`true`,children:Array.from({length:Qj},(e,t)=>(0,V.jsx)(px,{height:206,rounded:14},t))}):Gt?(0,V.jsx)(FD,{title:e(`auth_files.empty_title`),description:e(`auth_files.empty_desc`),action:(0,V.jsxs)(`div`,{className:Yj.emptyActions,children:[(0,V.jsx)(H,{size:`sm`,onClick:_e,disabled:et||ie,children:e(`auth_files.upload_button`)}),(0,V.jsx)(H,{variant:`ghost`,size:`sm`,onClick:()=>o(`/oauth`),children:e(`auth_files.empty_oauth_link`)})]})}):Kt?(0,V.jsx)(FD,{title:e(`auth_files.search_empty_title`),description:e(`auth_files.search_empty_desc`),action:(0,V.jsx)(H,{variant:`secondary`,size:`sm`,onClick:Ht,children:e(`auth_files.no_results_clear`)})}):(0,V.jsx)(`div`,{className:qt,children:Dt.map((e,t)=>(0,V.jsx)(VA,{file:e,compact:d,selected:R.has(e.name),resolvedTheme:r,disableControls:et,deleting:ae,statusUpdating:se,manualRefreshing:ce,cooldownResetting:pe,quotaFilterType:rt,statusBarCache:Me,entranceDelayMs:Rt(t),onShowModels:ee,onDownload:xe,onManualRefresh:Se,onCooldownReset:Ce,onOpenPrefixProxyEditor:Xe,onDelete:ye,onToggleStatus:we,onToggleSelect:Te},Om(e)))}),!ne&&Ct.length>it&&(0,V.jsxs)(`div`,{className:Yj.pagination,children:[(0,V.jsx)(H,{variant:`secondary`,size:`sm`,onClick:()=>g(Math.max(1,Tt-1)),disabled:Tt<=1,children:e(`auth_files.pagination_prev`)}),(0,V.jsx)(`div`,{className:Yj.pageInfo,children:e(`auth_files.pagination_info`,{current:Tt,total:wt,count:Ct.length})}),(0,V.jsx)(H,{variant:`secondary`,size:`sm`,onClick:()=>g(Math.min(wt,Tt+1)),disabled:Tt>=wt,children:e(`auth_files.pagination_next`)})]})]}),(0,V.jsxs)(`div`,{className:Yj.configGrid,ref:Wt,children:[(0,V.jsx)(ete,{disableControls:et,excludedError:Pe,excluded:Ne,onRetry:Re,onAdd:()=>Bt(),onEdit:Bt,onDelete:Be}),(0,V.jsx)(ute,{disableControls:et,viewMode:S,onViewModeChange:C,onRetry:ze,onAdd:()=>Vt(),onEditProvider:Vt,onDeleteProvider:Ve,modelAliasError:Ie,modelAlias:Fe,allProviderModels:Le,onUpdate:He,onDeleteLink:Ue,onToggleFork:We,onRenameAlias:Ge,onDeleteAlias:Ke})]}),(0,V.jsx)(Yee,{open:O,fileName:j,fileType:M,loading:k,error:N,models:A,excluded:Ne,onClose:P,onCopyText:zt}),(0,V.jsx)(Kee,{disableControls:et,editor:qe,updatedText:Je,dirty:Ye,onClose:Ze,onCopyText:zt,onSave:$e,onChange:Qe}),(0,V.jsx)($ee,{selectionCount:te,selectablePageCount:Ot.length,selectableFilteredCount:kt.length,disableControls:et,batchStatusDisabled:Mt,onSelectPage:()=>Ee(Dt),onSelectFiltered:()=>Ee(Ct),onInvertPage:()=>De(Dt),onDeselectAll:Oe,onDownload:()=>void ke(At),onEnable:()=>Ae(At,!0),onDisable:()=>Ae(At,!1),onDelete:()=>je(At)})]})}function rM({title:e,extra:t,children:n,className:r}){return(0,V.jsxs)(`div`,{className:r?`card ${r}`:`card`,children:[(e||t)&&(0,V.jsxs)(`div`,{className:`card-header`,children:[(0,V.jsx)(`div`,{className:`title`,children:e}),t]}),n]})}function iM({label:e,value:t,onChange:n,options:r,placeholder:i,disabled:a,hint:o,error:s,className:c=``,wrapperClassName:l=``,wrapperStyle:u,id:d,rightElement:f}){let[p,m]=(0,y.useState)(!1),[h,g]=(0,y.useState)(-1),_=(0,y.useRef)(null),v=(0,y.useRef)(null),b=(0,y.useRef)(null),[x,C]=(0,y.useState)(null),w=r.map(e=>typeof e==`string`?{value:e,label:e}:{value:e.value,label:e.label||e.value}).filter(e=>{let n=t.toLowerCase();return e.value.toLowerCase().includes(n)||e.label&&e.label.toLowerCase().includes(n)}),T=p&&w.length>0&&!a;(0,y.useEffect)(()=>{let e=e=>{let t=e.target;_.current?.contains(t)||b.current?.contains(t)||m(!1)};return document.addEventListener(`mousedown`,e),()=>document.removeEventListener(`mousedown`,e)},[]),(0,y.useLayoutEffect)(()=>{if(!T||!v.current)return;let e=()=>{if(!v.current)return;let e=v.current.getBoundingClientRect(),t=window.innerHeight-e.bottom-14,n=t<200&&e.top>t;C({position:`fixed`,...n?{bottom:window.innerHeight-e.top+6}:{top:e.bottom+6},left:e.left,width:e.width,maxHeight:Math.max(0,Math.min(200,n?e.top-14:t)),zIndex:2010})};return e(),window.addEventListener(`resize`,e),window.addEventListener(`scroll`,e,!0),()=>{window.removeEventListener(`resize`,e),window.removeEventListener(`scroll`,e,!0)}},[T]);let E=e=>{n(e.target.value),m(!0),g(-1)},D=e=>{n(e),m(!1)};return(0,V.jsxs)(`div`,{className:`form-group ${l}`,ref:_,style:u,children:[e&&(0,V.jsx)(`label`,{htmlFor:d,children:e}),(0,V.jsxs)(`div`,{style:{position:`relative`},ref:v,children:[(0,V.jsx)(`input`,{id:d,className:`input ${c}`.trim(),value:t,onChange:E,onFocus:()=>m(!0),onKeyDown:e=>{if(!a)if(e.key===`ArrowDown`){if(e.preventDefault(),!p){m(!0);return}g(e=>e<w.length-1?e+1:e)}else e.key===`ArrowUp`?(e.preventDefault(),g(e=>e>0?e-1:0)):e.key===`Enter`?p&&h>=0&&h<w.length?(e.preventDefault(),D(w[h].value)):p&&(e.preventDefault(),m(!1)):(e.key===`Escape`||e.key===`Tab`)&&m(!1)},placeholder:i,disabled:a,autoComplete:`off`,style:{paddingRight:32}}),(0,V.jsxs)(`div`,{style:{position:`absolute`,right:8,top:`50%`,transform:`translateY(-50%)`,display:`flex`,alignItems:`center`,pointerEvents:a?`none`:`auto`,cursor:`pointer`,height:`100%`},onClick:()=>!a&&m(!p),children:[f,(0,V.jsx)(Rs,{size:16,style:{opacity:.5,marginLeft:4}})]}),T&&x&&typeof document<`u`&&(0,S.createPortal)((0,V.jsx)(`div`,{ref:b,className:`autocomplete-dropdown`,style:{backgroundColor:`var(--bg-secondary)`,border:`1px solid var(--border-color)`,borderRadius:`var(--radius-md)`,overflowY:`auto`,boxShadow:`0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06)`,...x},children:w.map((e,t)=>(0,V.jsxs)(`div`,{onClick:()=>D(e.value),style:{padding:`8px 12px`,cursor:`pointer`,backgroundColor:t===h?`var(--bg-tertiary)`:`transparent`,color:`var(--text-primary)`,display:`flex`,flexDirection:`column`,fontSize:`0.9rem`},onMouseEnter:()=>g(t),children:[(0,V.jsx)(`span`,{style:{fontWeight:500},children:e.value}),e.label&&e.label!==e.value&&(0,V.jsx)(`span`,{style:{fontSize:`0.85em`,color:`var(--text-secondary)`},children:e.label})]},`${e.value}-${t}`))}),document.body)]}),o&&(0,V.jsx)(`div`,{className:`hint`,children:o}),s&&(0,V.jsx)(`div`,{className:`error-box`,children:s})]})}var aM={pageContent:`OAuthEditor-module__pageContent___KhyTE`,topBar:`OAuthEditor-module__topBar___O54Zv`,intro:`OAuthEditor-module__intro___pkLWH`,introIcon:`OAuthEditor-module__introIcon___zSWDt`,introTitle:`OAuthEditor-module__introTitle___JJfIk`,description:`OAuthEditor-module__description___JNHXt`,settingsCard:`OAuthEditor-module__settingsCard___oD0oO`,providerSection:`OAuthEditor-module__providerSection___sKS6n`,editorBody:`OAuthEditor-module__editorBody___lfyRP`,providerRow:`OAuthEditor-module__providerRow___e8WbX`,sectionHeading:`OAuthEditor-module__sectionHeading___62u8j`,stepNumber:`OAuthEditor-module__stepNumber___n5Jb1`,headingCopy:`OAuthEditor-module__headingCopy___P027H`,sectionTitle:`OAuthEditor-module__sectionTitle___ZaRnA`,providerControl:`OAuthEditor-module__providerControl___XKz9X`,providerOptions:`OAuthEditor-module__providerOptions___M9iXe`,providerOption:`OAuthEditor-module__providerOption___X-VEa`,providerCheck:`OAuthEditor-module__providerCheck___wsZTa`,providerOptionActive:`OAuthEditor-module__providerOptionActive___EDVCH`,editorHeader:`OAuthEditor-module__editorHeader___NQeT0`,countBadge:`OAuthEditor-module__countBadge___kFyI-`,emptyModels:`OAuthEditor-module__emptyModels___r23-E`,catalogHint:`OAuthEditor-module__catalogHint___7WhaP`,mappingsBody:`OAuthEditor-module__mappingsBody___xAAeQ`,mappingRow:`OAuthEditor-module__mappingRow___rA-nC`,mappingNumber:`OAuthEditor-module__mappingNumber___-ubV5`,mappingFields:`OAuthEditor-module__mappingFields___g-veK`,modelField:`OAuthEditor-module__modelField___357K0`,modelInput:`OAuthEditor-module__modelInput___DF4Cc`,mappingSeparator:`OAuthEditor-module__mappingSeparator___APbcu`,mappingFooter:`OAuthEditor-module__mappingFooter___QeH-o`,removeMapping:`OAuthEditor-module__removeMapping___zXsnB`};function oM({provider:e,options:t,onChange:n,disabled:r,translationPrefix:i}){let{t:a}=B(),o=(0,y.useId)(),s=rl(e=>e.resolvedTheme);return(0,V.jsx)(rM,{className:aM.settingsCard,children:(0,V.jsxs)(`div`,{className:aM.providerSection,children:[(0,V.jsxs)(`div`,{className:aM.providerRow,children:[(0,V.jsxs)(`div`,{className:aM.sectionHeading,children:[(0,V.jsx)(`span`,{className:aM.stepNumber,"aria-hidden":`true`,children:`01`}),(0,V.jsxs)(`div`,{className:aM.headingCopy,children:[(0,V.jsx)(`label`,{className:aM.sectionTitle,htmlFor:o,children:a(`${i}.provider_label`)}),(0,V.jsx)(`p`,{className:aM.description,children:a(`${i}.provider_hint`)})]})]}),(0,V.jsx)(iM,{id:o,placeholder:a(`${i}.provider_placeholder`),value:e,onChange:n,options:t,disabled:r,wrapperClassName:aM.providerControl})]}),t.length>0&&(0,V.jsx)(`div`,{className:aM.providerOptions,role:`group`,"aria-label":a(`${i}.provider_label`),children:t.map(t=>{let i=ZD(e)===ZD(t),o=oO(t,s);return(0,V.jsxs)(`button`,{type:`button`,className:`${aM.providerOption} ${i?aM.providerOptionActive:``}`,"aria-pressed":i,onClick:()=>n(t),disabled:r,children:[o?(0,V.jsx)(`img`,{src:o,alt:``}):(0,V.jsx)(Fs,{size:16,"aria-hidden":`true`}),(0,V.jsx)(`span`,{children:iO(a,t)}),(0,V.jsx)(Hs,{size:14,className:aM.providerCheck,"aria-hidden":`true`})]},t)})})]})})}var sM={container:`SecondaryScreenShell-module__container___9DAwq`,topBar:`SecondaryScreenShell-module__topBar___vHzq4`,topBarTitle:`SecondaryScreenShell-module__topBarTitle___Q8LCy`,backButton:`SecondaryScreenShell-module__backButton___d6Zgy`,backIcon:`SecondaryScreenShell-module__backIcon___R8Iyn`,backText:`SecondaryScreenShell-module__backText___CODk7`,rightSlot:`SecondaryScreenShell-module__rightSlot___ZvWJR`,loadingState:`SecondaryScreenShell-module__loadingState___4Jbsa`,content:`SecondaryScreenShell-module__content___nVk3R`},cM=(0,y.forwardRef)(function({title:e,onBack:t,backLabel:n=`Back`,backAriaLabel:r,rightAction:i,isLoading:a=!1,loadingLabel:o=`Loading...`,className:s=``,contentClassName:c=``,topBarClassName:l=``,children:u},d){let f=[sM.container,s].filter(Boolean).join(` `),p=[sM.content,c].filter(Boolean).join(` `),m=typeof e==`string`?e:void 0,h=r??n;return(0,V.jsxs)(`div`,{className:f,ref:d,children:[(0,V.jsxs)(`div`,{className:[sM.topBar,l].filter(Boolean).join(` `),children:[t?(0,V.jsxs)(H,{variant:`ghost`,size:`sm`,onClick:t,className:sM.backButton,"aria-label":h,children:[(0,V.jsx)(`span`,{className:sM.backIcon,children:(0,V.jsx)(zs,{size:18})}),(0,V.jsx)(`span`,{className:sM.backText,children:n})]}):(0,V.jsx)(`div`,{}),(0,V.jsx)(`div`,{className:sM.topBarTitle,title:m,children:e}),(0,V.jsx)(`div`,{className:sM.rightSlot,children:i})]}),a?(0,V.jsxs)(`div`,{className:sM.loadingState,children:[(0,V.jsx)(CO,{size:16}),(0,V.jsx)(`span`,{children:o})]}):(0,V.jsx)(`div`,{className:p,children:u})]})}),lM=28,uM=90,dM=1.2;function fM({enabled:e=!0,edgeSize:t=lM,threshold:n=uM,onBack:r}){let i=(0,y.useRef)(null),a=(0,y.useRef)(null);return(0,y.useEffect)(()=>{if(!e)return;let o=i.current;if(!o)return;let s=()=>{a.current=null},c=e=>{let t=a.current;if(!t?.active||e.pointerId!==t.pointerId)return;let n=e.clientX-t.startX,r=e.clientY-t.startY;Math.abs(r)>Math.abs(n)*dM&&s()},l=e=>{let t=a.current;if(!t?.active||e.pointerId!==t.pointerId)return;let i=e.clientX-t.startX,o=e.clientY-t.startY,c=Math.abs(i)>Math.abs(o)*dM;s(),i>=n&&c&&r()},u=e=>{let t=a.current;t?.active&&e.pointerId===t.pointerId&&s()},d=e=>{e.pointerType===`touch`&&e.isPrimary&&(e.clientX>t||(a.current={pointerId:e.pointerId,startX:e.clientX,startY:e.clientY,active:!0}))};return o.addEventListener(`pointerdown`,d,{passive:!0}),window.addEventListener(`pointermove`,c,{passive:!0}),window.addEventListener(`pointerup`,l,{passive:!0}),window.addEventListener(`pointercancel`,u,{passive:!0}),()=>{o.removeEventListener(`pointerdown`,d),window.removeEventListener(`pointermove`,c),window.removeEventListener(`pointerup`,l),window.removeEventListener(`pointercancel`,u)}},[t,e,r,n]),i}var pM=e=>JSON.stringify(Array.from(new Set(e),e=>e.trim()).filter(Boolean).sort()),mM=e=>JSON.stringify(e.map(e=>({name:e.name??``,alias:e.alias??``,fork:e.fork===!0,forceMapping:typeof e.forceMapping==`boolean`?e.forceMapping:void 0})).filter(e=>e.name!==``||e.alias!==``||e.fork!==!0||e.forceMapping!==void 0)),hM=(e,t,n,r)=>ZD(e)!==ZD(t)||n!==r;function gM(){let{t:e}=B(),t=hr(),n=fr(),{showConfirmation:r,showNotification:i}=Jc(),a=Im(e=>e.connectionStatus)!==`connected`,[o,s]=ia(),c=o.get(`provider`)??``,[l]=(0,y.useState)(()=>ZD(c)),[u,d]=(0,y.useState)(c),[f,p]=(0,y.useState)([]),[m,h]=(0,y.useState)({}),[g,_]=(0,y.useState)({}),[v,b]=(0,y.useState)(!0),[x,S]=(0,y.useState)(null),[C,w]=(0,y.useState)(!1),[T,E]=(0,y.useState)(!1),D=(0,y.useRef)(0),[O,k]=(0,y.useState)(new Set),[A,j]=(0,y.useState)([]),[M,N]=(0,y.useState)(!1),[ee,P]=(0,y.useState)(null),[F,I]=(0,y.useState)(!1);(0,y.useEffect)(()=>{d(c)},[c]);let L=(0,y.useMemo)(()=>{let e=new Set;return Object.keys(m).forEach(t=>e.add(t)),Object.keys(g).forEach(t=>e.add(t)),f.forEach(t=>{typeof t.type==`string`&&e.add(t.type),typeof t.provider==`string`&&e.add(t.provider)}),$D(e)},[m,f,g]),R=(0,y.useMemo)(()=>ZD(u),[u]),te=(0,y.useMemo)(()=>R?Object.prototype.hasOwnProperty.call(m,R):!1,[m,R]),ne=(0,y.useMemo)(()=>pM(WT(m[R]??[])),[m,R]),re=(0,y.useMemo)(()=>WT(O),[O]),z=(0,y.useMemo)(()=>pM(re),[re]),ie=ne!==z,ae=(0,y.useMemo)(()=>A.map(e=>({id:e.id,displayName:e.display_name})),[A]),oe=M?`loading`:ee===`unsupported`?`unavailable`:`ready`,se=hM(l,u,ne,z),ce=(0,y.useMemo)(()=>({title:e(`common.unsaved_changes_title`),message:e(`common.unsaved_changes_message`),confirmText:e(`common.leave`),cancelText:e(`common.stay`)}),[e]),{allowNextNavigation:le,allowNavigationTo:ue}=gw({shouldBlock:se,dialog:ce}),de=(0,y.useMemo)(()=>te?e(`oauth_excluded.edit_title`,{provider:u.trim()||R}):e(`oauth_excluded.add_title`),[te,u,R,e]),fe=(0,y.useCallback)(()=>{if(n.state?.fromAuthFiles){t(-1);return}t(`/auth-files`,{replace:!0})},[n.state,t]),pe=fM({onBack:fe});(0,y.useEffect)(()=>{let e=e=>{e.key===`Escape`&&fe()};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[fe]);let me=(0,y.useCallback)(async()=>{let e=++D.current;b(!0),S(null),w(!1),E(!1);try{let[t,n,r]=await Promise.allSettled([jy.list(),jy.getOauthExcludedModels(),jy.getOauthModelAlias()]);if(e!==D.current)return;if(t.status===`fulfilled`&&p(t.value?.files??[]),r.status===`fulfilled`&&_(r.value??{}),n.status===`fulfilled`){h(n.value??{}),w(!0);return}let i=n.reason;if((typeof i==`object`&&i&&`status`in i?i.status:void 0)===404){E(!0);return}S(Oc(i))}catch(t){e===D.current&&S(Oc(t))}finally{e===D.current&&b(!1)}},[]);(0,y.useEffect)(()=>(me(),()=>{D.current+=1}),[me]),(0,y.useEffect)(()=>{if(!R){k(new Set);return}let e=m[R]??[];k(new Set(WT(e)))},[m,R]),(0,y.useEffect)(()=>{if(!R||T){j([]),P(null),N(!1);return}let t=!1;return j([]),N(!0),P(null),jy.getModelDefinitions(R).then(e=>{t||j(e)}).catch(n=>{if(t)return;let r=typeof n==`object`&&n&&`status`in n?n.status:void 0;if(r===400||r===404){j([]),P(`unsupported`);return}let a=n instanceof Error?n.message:``;i(`${e(`notification.load_failed`)}: ${a}`,`error`)}).finally(()=>{t||N(!1)}),()=>{t=!0}},[T,R,i,e]);let he=(0,y.useCallback)(e=>{d(e);let t=new URLSearchParams(o),r=e.trim();r?t.set(`provider`,r):t.delete(`provider`);let i=t.toString();ue(`${n.pathname}${i?`?${i}`:``}${n.hash}`),s(t,{replace:!0})},[ue,n.hash,n.pathname,o,s]),ge=(0,y.useCallback)(e=>{if(!ie||ZD(e)===R){he(e);return}r({...ce,variant:`danger`,onConfirm:()=>he(e)})},[he,ie,R,r,ce]),_e=(0,y.useCallback)(e=>{k(new Set(e))},[]),ve=(0,y.useCallback)(async()=>{let t=ZD(u);if(!t){i(e(`oauth_excluded.provider_required`),`error`);return}let n=re;I(!0);try{n.length?await jy.saveOauthExcludedModels(t,n):te&&await jy.deleteOauthExcludedEntry(t),i(e(`oauth_excluded.save_success`),`success`),le(),fe()}catch(t){let n=t instanceof Error?t.message:``;i(`${e(`oauth_excluded.save_failed`)}: ${n}`,`error`)}finally{I(!1)}},[le,re,fe,te,u,i,e]),ye=!a&&!F&&C&&!T&&x===null;return(0,V.jsx)(cM,{ref:pe,title:de,onBack:fe,backLabel:e(`common.back`),backAriaLabel:e(`common.back`),contentClassName:aM.pageContent,topBarClassName:aM.topBar,rightAction:(0,V.jsx)(H,{size:`sm`,onClick:ve,loading:F,disabled:!ye,children:e(`oauth_excluded.save`)}),isLoading:v,loadingLabel:e(`common.loading`),children:T?(0,V.jsx)(rM,{children:(0,V.jsx)(FD,{title:e(`oauth_excluded.upgrade_required_title`),description:e(`oauth_excluded.upgrade_required_desc`)})}):x===null?(0,V.jsxs)(V.Fragment,{children:[(0,V.jsxs)(`div`,{className:aM.intro,children:[(0,V.jsx)(`span`,{className:aM.introIcon,children:(0,V.jsx)(Ws,{size:22,"aria-hidden":`true`})}),(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`h1`,{className:aM.introTitle,children:e(`oauth_excluded.title`)}),(0,V.jsx)(`p`,{className:aM.description,children:e(`oauth_excluded.editor_description`)})]})]}),(0,V.jsx)(oM,{provider:u,options:L,onChange:ge,disabled:a||F,translationPrefix:`oauth_excluded`}),(0,V.jsxs)(rM,{className:aM.settingsCard,children:[(0,V.jsxs)(`div`,{className:aM.editorHeader,children:[(0,V.jsxs)(`div`,{className:aM.sectionHeading,children:[(0,V.jsx)(`span`,{className:aM.stepNumber,"aria-hidden":`true`,children:`02`}),(0,V.jsxs)(`div`,{className:aM.headingCopy,children:[(0,V.jsx)(`h2`,{className:aM.sectionTitle,id:`oauth-excluded-models-label`,children:e(`oauth_excluded.models_label`)}),(0,V.jsx)(`p`,{className:aM.description,children:e(`oauth_excluded.models_hint`)})]})]}),R&&(0,V.jsx)(`span`,{className:aM.countBadge,children:e(`excluded_models.trigger_summary_rules`,{n:re.length})})]}),(0,V.jsx)(`div`,{className:aM.editorBody,children:R?(0,V.jsx)(oE,{value:re,onChange:_e,candidates:ae,catalogState:oe,disabled:a||F,labelledBy:`oauth-excluded-models-label`}):(0,V.jsxs)(`div`,{className:aM.emptyModels,children:[(0,V.jsx)(Fs,{size:24,"aria-hidden":`true`}),e(`oauth_excluded.provider_required`)]})})]})]}):(0,V.jsx)(rM,{children:(0,V.jsx)(FD,{title:e(`notification.refresh_failed`),description:x||e(`notification.refresh_failed`),action:(0,V.jsx)(H,{variant:`secondary`,size:`sm`,onClick:()=>void me(),children:e(`common.refresh`)})})})})}function _M({entry:e,index:t,options:n,disabled:r,canRemove:i,onChange:a,onRemove:o}){let{t:s}=B(),c=(0,y.useId)(),l=s(`oauth_model_alias.mapping_row`,{number:t+1});return(0,V.jsxs)(`div`,{className:aM.mappingRow,role:`group`,"aria-label":l,children:[(0,V.jsx)(`span`,{className:aM.mappingNumber,"aria-hidden":`true`,children:String(t+1).padStart(2,`0`)}),(0,V.jsxs)(`div`,{className:aM.mappingFields,children:[(0,V.jsx)(iM,{id:`${c}-source`,label:s(`oauth_model_alias.alias_name_placeholder`),wrapperClassName:aM.modelField,className:aM.modelInput,placeholder:s(`oauth_model_alias.alias_name_placeholder`),value:e.name,onChange:e=>a(`name`,e),disabled:r,options:n}),(0,V.jsx)(`span`,{className:aM.mappingSeparator,"aria-hidden":`true`,children:`→`}),(0,V.jsxs)(`div`,{className:aM.modelField,children:[(0,V.jsx)(`label`,{htmlFor:`${c}-alias`,children:s(`oauth_model_alias.alias_placeholder`)}),(0,V.jsx)(`input`,{id:`${c}-alias`,className:`input ${aM.modelInput}`,placeholder:s(`oauth_model_alias.alias_placeholder`),value:e.alias,onChange:e=>a(`alias`,e.target.value),disabled:r,autoComplete:`off`,spellCheck:!1})]})]}),(0,V.jsxs)(`div`,{className:aM.mappingFooter,children:[(0,V.jsx)($C,{label:s(`oauth_model_alias.alias_fork_label`),labelPosition:`left`,checked:!!e.fork,onChange:e=>a(`fork`,e),disabled:r}),(0,V.jsx)(H,{variant:`ghost`,size:`sm`,className:aM.removeMapping,onClick:o,disabled:r||!i,title:s(`oauth_model_alias.remove_mapping`,{number:t+1}),"aria-label":s(`oauth_model_alias.remove_mapping`,{number:t+1}),children:(0,V.jsx)(Os,{size:15,"aria-hidden":`true`})})]})]})}var vM=()=>({id:Ec(),name:``,alias:``,fork:!0}),kte=e=>!Array.isArray(e)||e.length===0?[vM()]:e.map(e=>({id:Ec(),name:e.name??``,alias:e.alias??``,fork:!!e.fork,forceMapping:e.forceMapping}));function Ate(){let{t:e}=B(),t=hr(),n=fr(),{showConfirmation:r,showNotification:i}=Jc(),a=Im(e=>e.connectionStatus)!==`connected`,[o,s]=ia(),c=o.get(`provider`)??``,[l]=(0,y.useState)(()=>ZD(c)),[u,d]=(0,y.useState)(c),[f,p]=(0,y.useState)([]),[m,h]=(0,y.useState)({}),[g,_]=(0,y.useState)({}),[v,b]=(0,y.useState)(!0),[x,S]=(0,y.useState)(null),[C,w]=(0,y.useState)(!1),[T,E]=(0,y.useState)(!1),D=(0,y.useRef)(0),[O,k]=(0,y.useState)([vM()]),[A,j]=(0,y.useState)([]),[M,N]=(0,y.useState)(!1),[ee,P]=(0,y.useState)(null),[F,I]=(0,y.useState)(!1);(0,y.useEffect)(()=>{d(c)},[c]);let L=(0,y.useMemo)(()=>{let e=new Set;return Object.keys(m).forEach(t=>e.add(t)),Object.keys(g).forEach(t=>e.add(t)),f.forEach(t=>{typeof t.type==`string`&&e.add(t.type),typeof t.provider==`string`&&e.add(t.provider)}),$D(e)},[m,f,g]),R=(0,y.useMemo)(()=>ZD(u),[u]),te=(0,y.useMemo)(()=>R?Object.prototype.hasOwnProperty.call(g,R):!1,[g,R]),ne=(0,y.useMemo)(()=>mM(g[R]??[]),[g,R]),re=(0,y.useMemo)(()=>mM(O),[O]),z=ne!==re,ie=hM(l,u,ne,re),ae=(0,y.useMemo)(()=>({title:e(`common.unsaved_changes_title`),message:e(`common.unsaved_changes_message`),confirmText:e(`common.leave`),cancelText:e(`common.stay`)}),[e]),{allowNextNavigation:oe,allowNavigationTo:se}=gw({shouldBlock:ie,dialog:ae}),ce=te?e(`oauth_model_alias.edit_title`,{provider:u.trim()||R}):e(`oauth_model_alias.add_title`),le=(0,y.useMemo)(()=>u.trim()?M?e(`oauth_model_alias.model_source_loading`):ee===`unsupported`?e(`oauth_model_alias.model_source_unsupported`):e(`oauth_model_alias.model_source_loaded`,{count:A.length}):e(`oauth_model_alias.provider_hint`),[ee,A.length,M,u,e]),ue=(0,y.useCallback)(()=>{if(n.state?.fromAuthFiles){t(-1);return}t(`/auth-files`,{replace:!0})},[n.state,t]),de=fM({onBack:ue});(0,y.useEffect)(()=>{let e=e=>{e.key===`Escape`&&ue()};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[ue]);let fe=(0,y.useCallback)(async()=>{let e=++D.current;b(!0),S(null),w(!1),E(!1);try{let[t,n,r]=await Promise.allSettled([jy.list(),jy.getOauthExcludedModels(),jy.getOauthModelAlias()]);if(e!==D.current)return;if(t.status===`fulfilled`&&p(t.value?.files??[]),n.status===`fulfilled`&&h(n.value??{}),r.status===`fulfilled`){_(r.value??{}),w(!0);return}let i=r.reason;if((typeof i==`object`&&i&&`status`in i?i.status:void 0)===404){E(!0);return}S(Oc(i))}catch(t){e===D.current&&S(Oc(t))}finally{e===D.current&&b(!1)}},[]);(0,y.useEffect)(()=>(fe(),()=>{D.current+=1}),[fe]),(0,y.useEffect)(()=>{if(!R){k([vM()]);return}let e=g[R]??[];k(kte(e))},[g,R]),(0,y.useEffect)(()=>{if(!R||T){j([]),P(null),N(!1);return}let t=!1;return N(!0),P(null),jy.getModelDefinitions(R).then(e=>{t||j(e)}).catch(n=>{if(t)return;let r=typeof n==`object`&&n&&`status`in n?n.status:void 0;if(r===400||r===404){j([]),P(`unsupported`);return}let a=n instanceof Error?n.message:``;i(`${e(`notification.load_failed`)}: ${a}`,`error`)}).finally(()=>{t||N(!1)}),()=>{t=!0}},[T,R,i,e]);let pe=(0,y.useCallback)(e=>{d(e);let t=new URLSearchParams(o),r=e.trim();r?t.set(`provider`,r):t.delete(`provider`);let i=t.toString();se(`${n.pathname}${i?`?${i}`:``}${n.hash}`),s(t,{replace:!0})},[se,n.hash,n.pathname,o,s]),me=(0,y.useCallback)(e=>{if(!z||ZD(e)===R){pe(e);return}r({...ae,variant:`danger`,onConfirm:()=>pe(e)})},[pe,z,R,r,ae]),he=(0,y.useCallback)((e,t,n)=>{k(r=>r.map((r,i)=>i===e?{...r,[t]:n}:r))},[]),ge=(0,y.useCallback)(()=>{k(e=>[...e,vM()])},[]),_e=(0,y.useCallback)(e=>{k(t=>{let n=t.filter((t,n)=>n!==e);return n.length?n:[vM()]})},[]),ve=(0,y.useCallback)(async()=>{let t=ZD(u);if(!t){i(e(`oauth_model_alias.provider_required`),`error`);return}let n=new Set,r=!1,a=O.map(e=>{let t=String(e.name??``).trim(),i=String(e.alias??``).trim();if(!t||!i)return null;let a=i.toLowerCase();if(n.has(a))return r=!0,null;n.add(a);let o={name:t,alias:i};return e.fork&&(o.fork=!0),typeof e.forceMapping==`boolean`&&(o.forceMapping=e.forceMapping),o}).filter(Boolean);if(r){i(e(`oauth_model_alias.duplicate_alias`),`error`);return}I(!0);try{a.length?await jy.saveOauthModelAlias(t,a):te&&await jy.deleteOauthModelAlias(t),i(e(`oauth_model_alias.save_success`),`success`),oe(),ue()}catch(t){let n=t instanceof Error?t.message:``;i(`${e(`oauth_model_alias.save_failed`)}: ${n}`,`error`)}finally{I(!1)}},[oe,ue,te,O,u,i,e]),ye=!a&&!F&&C&&!T&&x===null;return(0,V.jsx)(cM,{ref:de,title:ce,onBack:ue,backLabel:e(`common.back`),backAriaLabel:e(`common.back`),contentClassName:aM.pageContent,topBarClassName:aM.topBar,rightAction:(0,V.jsx)(H,{size:`sm`,onClick:ve,loading:F,disabled:!ye,children:e(`oauth_model_alias.save`)}),isLoading:v,loadingLabel:e(`common.loading`),children:T?(0,V.jsx)(rM,{children:(0,V.jsx)(FD,{title:e(`oauth_model_alias.upgrade_required_title`),description:e(`oauth_model_alias.upgrade_required_desc`)})}):x===null?(0,V.jsxs)(V.Fragment,{children:[(0,V.jsxs)(`div`,{className:aM.intro,children:[(0,V.jsx)(`span`,{className:aM.introIcon,children:(0,V.jsx)(Fs,{size:22,"aria-hidden":`true`})}),(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`h1`,{className:aM.introTitle,children:e(`oauth_model_alias.title`)}),(0,V.jsx)(`p`,{className:aM.description,children:e(`oauth_model_alias.editor_description`)})]})]}),(0,V.jsx)(oM,{provider:u,options:L,onChange:me,disabled:a||F,translationPrefix:`oauth_model_alias`}),(0,V.jsxs)(rM,{className:aM.settingsCard,children:[(0,V.jsxs)(`div`,{className:aM.editorHeader,children:[(0,V.jsxs)(`div`,{className:aM.sectionHeading,children:[(0,V.jsx)(`span`,{className:aM.stepNumber,"aria-hidden":`true`,children:`02`}),(0,V.jsxs)(`div`,{className:aM.headingCopy,children:[(0,V.jsx)(`h2`,{className:aM.sectionTitle,children:e(`oauth_model_alias.alias_label`)}),(0,V.jsx)(`p`,{className:aM.description,children:e(`oauth_model_alias.mapping_hint`)})]})]}),(0,V.jsxs)(H,{variant:`secondary`,size:`sm`,onClick:ge,disabled:a||F||T,children:[(0,V.jsx)(js,{size:14,"aria-hidden":`true`}),e(`oauth_model_alias.add_alias`)]})]}),(0,V.jsxs)(`div`,{className:aM.catalogHint,children:[(0,V.jsx)(ws,{size:15,"aria-hidden":`true`}),(0,V.jsx)(`p`,{className:aM.description,children:le})]}),(0,V.jsx)(`div`,{className:aM.mappingsBody,children:O.map((e,t)=>(0,V.jsx)(_M,{entry:e,index:t,options:A.map(e=>({value:e.id,label:e.display_name&&e.display_name!==e.id?e.display_name:void 0})),disabled:a||F,canRemove:O.length>1,onChange:(e,n)=>he(t,e,n),onRemove:()=>_e(t)},e.id))})]})]}):(0,V.jsx)(rM,{children:(0,V.jsx)(FD,{title:e(`notification.refresh_failed`),description:x||e(`notification.refresh_failed`),action:(0,V.jsx)(H,{variant:`secondary`,size:`sm`,onClick:()=>void fe(),children:e(`common.refresh`)})})})})}var yM=`plugin-resources-refresh`,bM=()=>{window.dispatchEvent(new Event(yM))},xM=e=>e.metadata?.name.trim()||e.id,SM=(e,t)=>`/plugin-pages/${encodeURIComponent(e)}/${t}`,CM=(e,t)=>{let n=e.trim();if(!n)return``;if(/^(https?:|data:|blob:)/i.test(n)||!n.startsWith(`/`))return n;let r=ep(t);return r?`${r}${n}`:n},wM=e=>{let t=e.trim();return t?/^https?:\/\//i.test(t)?t:`https://github.com/${t.replace(/^\/+/,``)}`:``},TM=`https://github.com/router-for-me/`,EM=`official`,DM=e=>{let t=e.trim();if(!t)return``;let[n=``,r=``]=(/^https?:\/\/[^/]+\/(.+)$/i.exec(t)?.[1]??t).replace(/^\/+/,``).split(`/`);return n?r?`${n}/${r.replace(/\.git$/i,``)}`:n:``},OM=e=>wM(e).toLowerCase().startsWith(TM),kM=e=>e.sourceId.trim().toLowerCase()===`official`&&OM(e.repository),AM=e=>e.sourceId.trim().toLowerCase()===`official`||e.sourceName.trim().toLowerCase()===EM,jM=e=>DM(e.repository)||e.id,MM=e=>e.flatMap(e=>{if(!e.effectiveEnabled)return[];let t=xM(e),n=e.logo||e.metadata?.logo||``;return e.menus.map((r,i)=>{let a=r.path.trim();if(!a)return null;let o=r.menu.trim();return{pluginID:e.id,pluginTitle:t,pluginLogo:n,menuIndex:i,menu:{...r,path:a},label:o||t,description:r.description.trim()||t,route:SM(e.id,i)}}).filter(e=>!!e)});function NM(e){let t=new Map;return{begin:n=>{t.get(n)?.invalidate();let r,i=new AbortController,a={signal:i.signal,isCurrent:()=>t.get(n)===a,invalidate:()=>{r!==void 0&&e.clearTimeout(r),r=void 0,a.isCurrent()&&t.delete(n),i.abort()},schedule:(t,n)=>{a.isCurrent()&&(r!==void 0&&e.clearTimeout(r),r=e.setTimeout(()=>{r=void 0,a.isCurrent()&&t()},n))},poll:(e,t,n,r)=>{let i=async()=>{try{let n=await e();if(!a.isCurrent())return;t(n)&&a.schedule(()=>void i(),r)}catch(e){a.isCurrent()&&n(e)}};a.schedule(()=>void i(),r)}};return t.set(n,a),a},get:e=>t.get(e),invalidateAll:()=>{for(let e of t.values())e.invalidate()}}}function PM(e,t){let n;try{n=new URL(e.trim())}catch{return`invalid`}let r=n.searchParams;if(![`http:`,`https:`].includes(n.protocol)||r.getAll(`state`).length!==1||!r.get(`state`)?.trim()||![`code`,`error`,`error_description`].some(e=>r.get(e)?.trim()))return`invalid`;if(!t||r.get(`state`)!==t)return`state_mismatch`}var FM={container:`OAuthPage-module__container___LCCdH`,cardTitle:`OAuthPage-module__cardTitle___yFaP0`,cardTitleIcon:`OAuthPage-module__cardTitleIcon___eAnql`,cardTitleIconFallback:`OAuthPage-module__cardTitleIconFallback___FCoi8`,pageTitle:`OAuthPage-module__pageTitle___BQQ2z`,content:`OAuthPage-module__content___Phg9V`,providerSection:`OAuthPage-module__providerSection___bIxOF`,providerList:`OAuthPage-module__providerList___lmT4T`,sectionTitle:`OAuthPage-module__sectionTitle___8gdP9`,featuredCard:`OAuthPage-module__featuredCard___oKu32`,featuredActions:`OAuthPage-module__featuredActions___FEuj7`,recommendedBadge:`OAuthPage-module__recommendedBadge___Qwsjm`,featuredHint:`OAuthPage-module__featuredHint___UZb9s`,cardContent:`OAuthPage-module__cardContent___1sXLA`,cardHint:`OAuthPage-module__cardHint___ttOpd`,cardHintSecondary:`OAuthPage-module__cardHintSecondary___tWM17`,oauthSection:`OAuthPage-module__oauthSection___1olLq`,oauthGrid:`OAuthPage-module__oauthGrid___wjAyh`,oauthCard:`OAuthPage-module__oauthCard___CYTnC`,oauthStatus:`OAuthPage-module__oauthStatus___h7bbL`,success:`OAuthPage-module__success___UHta0`,error:`OAuthPage-module__error___057CD`,waiting:`OAuthPage-module__waiting___CbNSk`,callbackSection:`OAuthPage-module__callbackSection___8kA31`,callbackActions:`OAuthPage-module__callbackActions___wtkMI`,authUrlBox:`OAuthPage-module__authUrlBox___Iu1d4`,authUrlLabel:`OAuthPage-module__authUrlLabel___mYFJB`,authUrlValue:`OAuthPage-module__authUrlValue___axvUJ`,authUrlActions:`OAuthPage-module__authUrlActions___venPj`,successActions:`OAuthPage-module__successActions___wHpp9`,geminiProjectField:`OAuthPage-module__geminiProjectField___g456A`,formItem:`OAuthPage-module__formItem___Bgt9S`,formItemLabel:`OAuthPage-module__formItemLabel___QZFrG`,filePicker:`OAuthPage-module__filePicker___NmFjy`,fileName:`OAuthPage-module__fileName___9ZbQI`,fileNamePlaceholder:`OAuthPage-module__fileNamePlaceholder___WHjj4`,connectionBox:`OAuthPage-module__connectionBox___Gwo4r`,connectionLabel:`OAuthPage-module__connectionLabel___cJMrf`,keyValueList:`OAuthPage-module__keyValueList___lEOY0`,keyValueItem:`OAuthPage-module__keyValueItem___XOwWB`,keyValueKey:`OAuthPage-module__keyValueKey___WF-VN`,keyValueValue:`OAuthPage-module__keyValueValue___m2I-C`};function IM(e){if(Dc(e))return typeof e.status==`number`?e.status:void 0}var LM=[{kind:`builtin`,id:`meta`,titleKey:`auth_login.meta_oauth_title`,icon:Gx},{kind:`builtin`,id:`kimi`,titleKey:`auth_login.kimi_oauth_title`,icon:{light:iS,dark:rS}},{kind:`builtin`,id:`kimi-ai`,titleKey:`auth_login.kimi_ai_oauth_title`,icon:{light:iS,dark:rS}},{kind:`builtin`,id:`codex`,titleKey:`auth_login.codex_oauth_title`,icon:Wx},{kind:`builtin`,id:`anthropic`,titleKey:`auth_login.anthropic_oauth_title`,icon:Ux},{kind:`builtin`,id:`antigravity`,titleKey:`auth_login.antigravity_oauth_title`,icon:LD},{kind:`builtin`,id:`xai`,titleKey:`auth_login.xai_oauth_title`,icon:{light:tS,dark:nS}},{kind:`builtin`,id:`devin`,titleKey:`auth_login.devin_oauth_title`,icon:{light:Kx,dark:qx}}],RM=new Set(LM.map(e=>e.id)),zM=new Set([`codex`,`anthropic`,`antigravity`,`xai`,`devin`]),BM=`http://127.0.0.1:56121/callback`,VM=5e3,HM=e=>e.replace(`-`,`_`),UM=(e,t)=>`auth_login.${HM(e)}_${t}`,WM=(e,t)=>typeof e==`string`?e:e[t];function GM({src:e}){let[t,n]=(0,y.useState)(!1);return e&&!t?(0,V.jsx)(`img`,{src:e,alt:``,className:FM.cardTitleIcon,onError:()=>n(!0)}):(0,V.jsx)(`span`,{className:FM.cardTitleIconFallback,"aria-hidden":`true`,children:(0,V.jsx)(Ss,{size:18})})}function KM({provider:e,theme:t}){return e.kind===`plugin`?(0,V.jsx)(GM,{src:e.icon}):(0,V.jsx)(`img`,{src:WM(e.icon,t),alt:``,className:FM.cardTitleIcon})}var qM=(e,t)=>{let n=new Set(RM);return e.flatMap(e=>{let r=e.oauthProvider;return!e.supportsOAuth||!e.effectiveEnabled||!r||n.has(r)?[]:(n.add(r),[{kind:`plugin`,id:r,title:xM(e),icon:CM(e.logo||e.metadata?.logo||``,t)}])})},JM=e=>{try{return new URL(e),!0}catch{return!1}},YM=e=>{let t=e.trim();if(!t)return null;let n=t.indexOf(`?`),r=t.indexOf(`#`),i=n>=0?t.slice(n+1):r>=0?t.slice(r+1):t;return/(^|[&#?])(code|state|error)=/i.test(i)?new URLSearchParams(i.replace(/^[?#]/,``)):null},XM=e=>{let t=e.trim();return(t.match(/\bcode\s*[:=]\s*([^\s&]+)/i)?.[1]??t).trim()},ZM=(e,t)=>{let n=e.trim();if(!n)return null;if(JM(n))return n;let r=YM(n);if(r){let e=r.get(`code`)?.trim(),n=r.get(`error`)?.trim(),i=r.get(`error_description`)?.trim(),a=r.get(`state`)?.trim()||t?.trim();if(!a)return null;let o=new URL(BM);return o.searchParams.set(`state`,a),e&&o.searchParams.set(`code`,e),n&&o.searchParams.set(`error`,n),i&&o.searchParams.set(`error_description`,i),o.toString()}let i=XM(n),a=t?.trim();if(!i||!a)return null;let o=new URL(BM);return o.searchParams.set(`code`,i),o.searchParams.set(`state`,a),o.toString()},QM=(e,t,n)=>e===`xai`?ZM(t,n):t.trim();function $M(){let{t:e}=B(),t=hr(),n=Im(e=>e.apiBase),{showNotification:r}=Jc(),i=rl(e=>e.resolvedTheme),[a,o]=(0,y.useState)({}),[s,c]=(0,y.useState)([]),[l,u]=(0,y.useState)({fileName:``,location:``,loading:!1}),d=(0,y.useRef)(NM({setTimeout:(e,t)=>window.setTimeout(e,t),clearTimeout:e=>window.clearTimeout(e)})),f=(0,y.useRef)(null),p=(0,y.useCallback)(()=>{d.current.invalidateAll()},[]);(0,y.useEffect)(()=>{let e=Im.subscribe((e,t)=>{(e.apiBase!==t.apiBase||e.managementKey!==t.managementKey||e.isAuthenticated!==t.isAuthenticated)&&(p(),o({}))});return()=>{e(),p()}},[p]),(0,y.useEffect)(()=>{let e=!1;return(async()=>{try{let t=await ib.list();e||c(qM(t.plugins,n))}catch{e||c([])}})(),()=>{e=!0}},[n]);let m=(0,y.useMemo)(()=>[...LM,...s],[s]),h=t=>t.kind===`plugin`?e(`auth_login.plugin_oauth_title`,{name:t.title}):e(t.titleKey),g=(t,n)=>t.kind===`plugin`?e(`auth_login.plugin_${n}`,{name:t.title}):e(UM(t.id,n)),_=(t,n)=>{let r=m.find(e=>e.id===t);return r?g(r,n):e(UM(t,n))},v=(e,t)=>{o(n=>({...n,[e]:{...n[e]??{},...t}}))},b=e=>{d.current.get(e)?.invalidate(),o(t=>({...t,[e]:{}}))},x=e=>{let t=d.current.begin(e);xj(),v(e,{url:void 0,state:void 0,status:`success`,error:void 0,polling:!1,cancelling:!1,cancelError:void 0,callbackUrl:``,callbackSubmitting:!1,callbackStatus:void 0,callbackError:void 0}),t.schedule(()=>{b(e)},VM)},S=(e,t,n)=>{n.poll(()=>Py.getAuthStatus(t,n.signal),t=>(t.status===`ok`?(x(e),r(_(e,`oauth_status_success`),`success`)):t.status===`error`&&(e===`devin`&&(n.invalidate(),v(e,{url:void 0,state:void 0,callbackUrl:``,callbackSubmitting:!1,callbackStatus:void 0,callbackError:void 0})),v(e,{status:`error`,error:t.error,polling:!1}),r(`${_(e,`oauth_status_error`)} ${t.error||``}`,`error`)),t.status===`wait`),t=>{v(e,{status:`error`,error:Oc(t),polling:!1})},3e3)},C=async t=>{let n=a[t]?.state;if(t!==`devin`||!n||a[t]?.cancelling)return;let i=d.current.begin(t);v(t,{cancelling:!0,cancelError:void 0,polling:!0,callbackSubmitting:!1,callbackStatus:void 0,callbackError:void 0});try{let a=await Py.cancelSession(n,i.signal);if(!i.isCurrent())return;if(a.cancelled){b(t),r(e(`auth_login.devin_oauth_cancelled`),`success`);return}}catch(n){if(!i.isCurrent())return;let a=Oc(n);v(t,{cancelError:a}),r(`${e(`auth_login.devin_oauth_cancel_error`)} ${a}`,`error`)}v(t,{cancelling:!1,status:`waiting`,error:void 0}),S(t,n,i)},w=async t=>{if(t===`devin`&&a[t]?.state)return;let n=d.current.begin(t);v(t,{url:void 0,userCode:void 0,state:void 0,status:`waiting`,polling:!0,cancelling:!1,cancelError:void 0,error:void 0,callbackStatus:void 0,callbackError:void 0,callbackUrl:``,callbackSubmitting:!1});try{let i=await Py.startAuth(t,n.signal);if(!n.isCurrent())return;if(!i.state){let n=e(`auth_login.missing_state`);v(t,{url:i.url,state:void 0,status:`error`,error:n,polling:!1}),r(n,`error`);return}v(t,{url:i.url,userCode:i.user_code,state:i.state,status:`waiting`,polling:!0}),S(t,i.state,n)}catch(e){if(!n.isCurrent())return;let i=Oc(e);v(t,{status:`error`,error:i,polling:!1}),r(`${_(t,`oauth_start_error`)}${i?` ${i}`:``}`,`error`)}},T=async t=>{if(!t)return;let n=await ID(t);r(e(n?`notification.link_copied`:`notification.copy_failed`),n?`success`:`error`)},E=async t=>{let n=d.current.get(t);if(!n?.isCurrent()||t===`devin`&&(a[t]?.cancelling||a[t]?.status!==`waiting`))return;let i=(a[t]?.callbackUrl||``).trim();if(!i){r(e(t===`xai`?`auth_login.xai_callback_required`:`auth_login.oauth_callback_required`),`warning`);return}if(t===`devin`){let n=PM(i,a[t]?.state);if(n){r(e(`auth_login.devin_callback_${n}`),`warning`);return}}let o=QM(t,i,a[t]?.state);if(!o){r(e(t===`xai`?`auth_login.xai_callback_state_missing`:`auth_login.missing_state`),`warning`);return}v(t,{callbackSubmitting:!0,callbackStatus:void 0,callbackError:void 0});try{if(await Py.submitCallback(t,o,n.signal),!n.isCurrent())return;v(t,{callbackSubmitting:!1,callbackStatus:`success`}),r(e(`auth_login.oauth_callback_success`),`success`)}catch(i){if(!n.isCurrent())return;let a=IM(i),o=Oc(i),s=a===404?e(`auth_login.oauth_callback_upgrade_hint`,{defaultValue:`Please update CLI Proxy API or check the connection.`}):o||void 0;v(t,{callbackSubmitting:!1,callbackStatus:`error`,callbackError:s});let c=s?`${e(`auth_login.oauth_callback_error`)} ${s}`:e(`auth_login.oauth_callback_error`);r(c,`error`)}},D=()=>{f.current?.click()},O=t=>{let n=t.target.files?.[0];if(n){if(!n.name.endsWith(`.json`)){r(e(`vertex_import.file_required`),`warning`),t.target.value=``;return}u(e=>({...e,file:n,fileName:n.name,error:void 0,result:void 0})),t.target.value=``}},k=async()=>{if(!l.file){let t=e(`vertex_import.file_required`);u(e=>({...e,error:t})),r(t,`warning`);return}let t=l.location.trim();u(e=>({...e,loading:!0,error:void 0,result:void 0}));try{let n=await Mee.importCredential(l.file,t||void 0),i={projectId:n.project_id,email:n.email,location:n.location,authFile:n[`auth-file`]??n.auth_file};u(e=>({...e,loading:!1,result:i})),xj(),r(e(`vertex_import.success`),`success`)}catch(t){let n=Oc(t);u(t=>({...t,loading:!1,error:n||e(`notification.upload_failed`)}));let i=n?`${e(`notification.upload_failed`)}: ${n}`:e(`notification.upload_failed`);r(i,`error`)}},A=(n,r=!1)=>{let o=a[n.id]||{},s=r&&n.kind===`builtin`&&[`kimi`,`kimi-ai`].includes(n.id),c=(n.kind===`plugin`||zM.has(n.id))&&!!o.url,l=o.status===`success`?e(`auth_login.login_another_account`):g(n,`oauth_button`),u=[`status-badge`,o.status===`success`?`success`:``,o.status===`error`?`error`:``].filter(Boolean).join(` `);return(0,V.jsx)(rM,{className:r?FM.featuredCard:void 0,title:(0,V.jsxs)(`span`,{className:FM.cardTitle,children:[(0,V.jsx)(KM,{provider:n,theme:i}),(0,V.jsx)(`span`,{children:h(n)})]}),extra:s?(0,V.jsxs)(`div`,{className:FM.featuredActions,children:[(0,V.jsx)(H,{onClick:()=>window.open(n.id===`kimi-ai`?yS:vS,`_blank`,`noopener,noreferrer`),children:e(`auth_login.kimi_sign_up_button`)}),(0,V.jsx)(H,{onClick:()=>w(n.id),loading:o.polling,children:l})]}):(0,V.jsx)(H,{onClick:()=>w(n.id),loading:o.polling,disabled:n.id===`devin`&&!!o.state,children:l}),children:(0,V.jsxs)(`div`,{className:FM.cardContent,children:[(0,V.jsx)(`div`,{className:r?FM.featuredHint:FM.cardHint,children:g(n,`oauth_hint`)}),o.url&&(0,V.jsxs)(`div`,{className:FM.authUrlBox,children:[(0,V.jsx)(`div`,{className:FM.authUrlLabel,children:g(n,`oauth_url_label`)}),(0,V.jsx)(`div`,{className:FM.authUrlValue,children:o.url}),o.userCode&&(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`div`,{className:FM.authUrlLabel,children:e(`auth_login.device_code_label`)}),(0,V.jsx)(`div`,{className:FM.authUrlValue,children:o.userCode}),(0,V.jsx)(H,{variant:`secondary`,size:`sm`,onClick:()=>T(o.userCode),children:e(`auth_login.device_code_copy`)})]}),(0,V.jsxs)(`div`,{className:FM.authUrlActions,children:[(0,V.jsx)(H,{variant:`secondary`,size:`sm`,onClick:()=>T(o.url),children:g(n,`copy_link`)}),(0,V.jsx)(H,{variant:`secondary`,size:`sm`,onClick:()=>window.open(o.url,`_blank`,`noopener,noreferrer`),children:g(n,`open_link`)}),n.id===`devin`&&o.state&&(0,V.jsx)(H,{variant:`secondary`,size:`sm`,onClick:()=>C(n.id),loading:o.cancelling,children:e(`auth_login.devin_oauth_cancel`)})]}),n.id===`devin`&&o.state&&o.status===`error`&&(0,V.jsx)(`div`,{className:FM.cardHintSecondary,children:e(`auth_login.devin_oauth_retry_hint`)}),o.cancelError&&(0,V.jsxs)(`div`,{className:`status-badge error`,children:[e(`auth_login.devin_oauth_cancel_error`),` `,o.cancelError]})]}),c&&(0,V.jsxs)(`div`,{className:FM.callbackSection,children:[(0,V.jsx)(ds,{label:e(n.id===`xai`?`auth_login.xai_callback_label`:`auth_login.oauth_callback_label`),hint:e(n.id===`xai`?`auth_login.xai_callback_hint`:n.id===`devin`?`auth_login.devin_callback_hint`:`auth_login.oauth_callback_hint`),disabled:n.id===`devin`&&(o.cancelling||o.status!==`waiting`),value:o.callbackUrl||``,onChange:e=>v(n.id,{callbackUrl:e.target.value,callbackStatus:void 0,callbackError:void 0}),placeholder:e(n.id===`xai`?`auth_login.xai_callback_placeholder`:n.id===`devin`?`auth_login.devin_callback_placeholder`:`auth_login.oauth_callback_placeholder`)}),(0,V.jsx)(`div`,{className:FM.callbackActions,children:(0,V.jsx)(H,{variant:`secondary`,size:`sm`,onClick:()=>E(n.id),loading:o.callbackSubmitting,disabled:n.id===`devin`&&(o.cancelling||o.status!==`waiting`),children:e(`auth_login.oauth_callback_button`)})}),o.callbackStatus===`success`&&o.status===`waiting`&&(0,V.jsx)(`div`,{className:`status-badge success`,children:e(`auth_login.oauth_callback_status_success`)}),o.callbackStatus===`error`&&(0,V.jsxs)(`div`,{className:`status-badge error`,children:[e(`auth_login.oauth_callback_status_error`),` `,o.callbackError||``]})]}),o.status&&o.status!==`idle`&&(0,V.jsx)(`div`,{className:u,children:o.status===`success`?g(n,`oauth_status_success`):o.status===`error`?`${g(n,`oauth_status_error`)} ${o.error||``}`:g(n,`oauth_status_waiting`)}),o.status===`success`&&(0,V.jsx)(`div`,{className:FM.successActions,children:(0,V.jsx)(H,{variant:`secondary`,size:`sm`,onClick:()=>t(`/auth-files`),children:e(`auth_login.view_auth_files`)})})]})},n.id)},j=m.filter(e=>[`kimi`,`kimi-ai`].includes(e.id)),M=m.filter(e=>![`kimi`,`kimi-ai`].includes(e.id));return(0,V.jsxs)(`div`,{className:FM.container,children:[(0,V.jsx)(`h1`,{className:FM.pageTitle,children:e(`nav.oauth`,{defaultValue:`OAuth`})}),(0,V.jsxs)(`div`,{className:FM.content,children:[(0,V.jsx)(`section`,{className:FM.providerSection,children:(0,V.jsx)(`div`,{className:FM.providerList,children:j.map(e=>A(e,!0))})}),(0,V.jsx)(`section`,{className:FM.providerSection,children:(0,V.jsx)(`div`,{className:FM.providerList,children:M.map(e=>A(e))})}),(0,V.jsxs)(`section`,{className:FM.providerSection,children:[(0,V.jsx)(`h2`,{className:FM.sectionTitle,children:e(`auth_login.other_login_methods`)}),(0,V.jsx)(rM,{title:(0,V.jsxs)(`span`,{className:FM.cardTitle,children:[(0,V.jsx)(`img`,{src:Zx,alt:``,className:FM.cardTitleIcon}),e(`vertex_import.title`)]}),extra:(0,V.jsx)(H,{onClick:k,loading:l.loading,children:e(`vertex_import.import_button`)}),children:(0,V.jsxs)(`div`,{className:FM.cardContent,children:[(0,V.jsx)(`div`,{className:FM.cardHint,children:e(`vertex_import.description`)}),(0,V.jsx)(ds,{label:e(`vertex_import.location_label`),hint:e(`vertex_import.location_hint`),value:l.location,onChange:e=>u(t=>({...t,location:e.target.value})),placeholder:e(`vertex_import.location_placeholder`)}),(0,V.jsxs)(`div`,{className:FM.formItem,children:[(0,V.jsx)(`label`,{className:FM.formItemLabel,children:e(`vertex_import.file_label`)}),(0,V.jsxs)(`div`,{className:FM.filePicker,children:[(0,V.jsx)(H,{variant:`secondary`,size:`sm`,onClick:D,children:e(`vertex_import.choose_file`)}),(0,V.jsx)(`div`,{className:`${FM.fileName} ${l.fileName?``:FM.fileNamePlaceholder}`.trim(),children:l.fileName||e(`vertex_import.file_placeholder`)})]}),(0,V.jsx)(`div`,{className:FM.cardHintSecondary,children:e(`vertex_import.file_hint`)}),(0,V.jsx)(`input`,{ref:f,type:`file`,accept:`.json,application/json`,style:{display:`none`},onChange:O})]}),l.error&&(0,V.jsx)(`div`,{className:`status-badge error`,children:l.error}),l.result&&(0,V.jsxs)(`div`,{className:FM.connectionBox,children:[(0,V.jsx)(`div`,{className:FM.connectionLabel,children:e(`vertex_import.result_title`)}),(0,V.jsxs)(`div`,{className:FM.keyValueList,children:[l.result.projectId&&(0,V.jsxs)(`div`,{className:FM.keyValueItem,children:[(0,V.jsx)(`span`,{className:FM.keyValueKey,children:e(`vertex_import.result_project`)}),(0,V.jsx)(`span`,{className:FM.keyValueValue,children:l.result.projectId})]}),l.result.email&&(0,V.jsxs)(`div`,{className:FM.keyValueItem,children:[(0,V.jsx)(`span`,{className:FM.keyValueKey,children:e(`vertex_import.result_email`)}),(0,V.jsx)(`span`,{className:FM.keyValueValue,children:l.result.email})]}),l.result.location&&(0,V.jsxs)(`div`,{className:FM.keyValueItem,children:[(0,V.jsx)(`span`,{className:FM.keyValueKey,children:e(`vertex_import.result_location`)}),(0,V.jsx)(`span`,{className:FM.keyValueValue,children:l.result.location})]}),l.result.authFile&&(0,V.jsxs)(`div`,{className:FM.keyValueItem,children:[(0,V.jsx)(`span`,{className:FM.keyValueKey,children:e(`vertex_import.result_file`)}),(0,V.jsx)(`span`,{className:FM.keyValueValue,children:l.result.authFile})]})]})]})]})})]})]})]})}var eN={header:`QuotaHeader-module__header___FQh-X`,copy:`QuotaHeader-module__copy___hYH3x`,title:`QuotaHeader-module__title___X-zzl`,meta:`QuotaHeader-module__meta___vypl5`,metaDot:`QuotaHeader-module__metaDot___oelCy`,metaTotal:`QuotaHeader-module__metaTotal___5Tdcc`,metaLoaded:`QuotaHeader-module__metaLoaded___5XtFO`,metaMuted:`QuotaHeader-module__metaMuted___ofGDe`,metaAttention:`QuotaHeader-module__metaAttention___vgrfI`,actions:`QuotaHeader-module__actions___dPTDc`,primaryAction:`QuotaHeader-module__primaryAction___wLlcP`,spinning:`QuotaHeader-module__spinning___JcwhP`,"quota-spin":`QuotaHeader-module__quota-spin___ZMw-y`,quotaSpin:`QuotaHeader-module__quota-spin___ZMw-y`};function tN(e){let{totalCount:t,loadedCount:n,attentionCount:r,refreshing:i,disableControls:a,onRefreshAll:o}=e,{t:s}=B(),c=sx(n);return(0,V.jsxs)(`header`,{className:eN.header,children:[(0,V.jsxs)(`div`,{className:eN.copy,children:[(0,V.jsx)(`h1`,{className:eN.title,"data-reveal":!0,children:s(`quota_management.title`)}),(0,V.jsxs)(`p`,{className:eN.meta,"data-reveal":!0,children:[(0,V.jsx)(`span`,{className:eN.metaTotal,children:s(`quota_management.meta_credentials`,{count:t})}),(0,V.jsx)(`span`,{className:eN.metaDot,"aria-hidden":`true`,children:`·`}),(0,V.jsx)(`span`,{className:n>0?eN.metaLoaded:eN.metaMuted,children:s(`quota_management.meta_loaded`,{count:c})}),r>0&&(0,V.jsxs)(V.Fragment,{children:[(0,V.jsx)(`span`,{className:eN.metaDot,"aria-hidden":`true`,children:`·`}),(0,V.jsx)(`span`,{className:eN.metaAttention,children:s(`quota_management.meta_attention`,{count:r})})]})]})]}),(0,V.jsx)(`div`,{className:eN.actions,"data-reveal":!0,children:(0,V.jsxs)(`button`,{type:`button`,className:eN.primaryAction,onClick:o,disabled:a||i,children:[(0,V.jsx)(Ts,{size:14,className:i?eN.spinning:void 0}),s(`quota_management.refresh_all_credentials`)]})})]})}var nN=[`claude`,`antigravity`,`codex`,`xai`,`kimi`,`devin`,`meta`],rN=[`default`,`soonest`],iN={antigravity:LO.filterFn,claude:lk.filterFn,codex:Vk.filterFn,devin:kk.filterFn,kimi:nA.filterFn,meta:Xk.filterFn,xai:hA.filterFn};function aN(e,t,n,r,i){return!i&&!r&&e===t&&n===t}var oN=e=>nN.find(t=>iN[t](e))??null;function sN(e){let t=new Map(nN.map(e=>[e,[]]));for(let n of e){let e=oN(n);e&&t.get(e)?.push({file:n,type:e})}return nN.flatMap(e=>t.get(e)??[])}function cN(e,t){return t===`all`?e:e.filter(e=>e.type===t)}function lN(e,t){let n=t.trim().toLowerCase();return n?e.filter(({file:e})=>[e.name,e.email].some(e=>typeof e==`string`&&e.toLowerCase().includes(n))):e}function uN(e,t,n){return t===`soonest`?e.map((e,t)=>({entry:e,index:t,atMs:n(e)})).sort((e,t)=>e.atMs===null&&t.atMs===null?e.index-t.index:e.atMs===null?1:t.atMs===null?-1:e.atMs-t.atMs||e.index-t.index).map(e=>e.entry):[...e]}function dN(e){let t={all:e.length};for(let e of nN)t[e]=0;for(let n of e)t[n.type]+=1;return t}var fN=(e,t,n)=>!e||t||n;function pN(e,t,n){let r=Math.max(1,Math.ceil(e.length/n)),i=Math.min(Math.max(1,t),r),a=(i-1)*n;return{pageItems:e.slice(a,a+n),currentPage:i,totalPages:r}}var mN=`https://api.anthropic.com`,hN=`cedar_ember`,gN=`/api/oauth/usage?cedar_ember=1&skip_spend=1`,_N=`/api/oauth/profile`,vN=25e3,yN=/^[a-z0-9_-]{1,40}$/,bN=/^[A-Za-z0-9_-]{1,64}$/,xN=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i,SN=[`five_hour`,`seven_day`,`seven_day_overage_included`],CN=[`reset`,`already_used`,`not_limited`,`cooldown`,`ineligible`,`unavailable`],wN=class extends Error{constructor(e){super(`Anthropic reset-grant read failed (${e})`),cp(this,`code`,void 0),this.code=e,this.name=`AnthropicResetGrantError`}},TN=class extends Error{constructor(){super(`Anthropic reset-grant claim outcome is unknown`),this.name=`AnthropicResetGrantUnknownOutcome`}},EN=new Set([`config_off`,`tier`,`seat`,`mobile`,`surface`,`cli_version`,`no_grant`,`tenure`,`other_experiment`,`unavailable`,`unknown`]);function DN(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function ON(e){return typeof e==`number`&&Number.isInteger(e)&&e>=0}function kN(e){if(e==null)return null;if(!(typeof e!=`string`||Number.isNaN(Date.parse(e))))return e}function AN(e,t){return e==null?t:typeof e==`boolean`?e:void 0}function jN(e){return typeof e==`string`?e.replace(/[\u0000-\u001f\u007f-\u009f]/g,` `).replace(/\s+/g,` `).trim().slice(0,120):``}function MN(e){if(e==null)return[];if(Array.isArray(e))return SN.filter(t=>e.includes(t))}function NN(e){let t={};if(!DN(e))return t;for(let n of SN){let r=e[n];typeof r==`number`&&Number.isInteger(r)&&r>=0&&r<=100&&(t[n]=r)}return t}function PN(e){if(!DN(e))return null;let{id:t,resets_total:n,resets_left:r}=e;if(typeof t!=`string`||!yN.test(t)||!ON(n)||!ON(r)||r>n)return null;let i=kN(e.starts_at),a=kN(e.ends_at),o=MN(e.clears),s=AN(e.paused,!1),c=AN(e.usable_now,!1),l=AN(e.use_requires_limit,!0);return i===void 0||a===void 0||o===void 0||s===void 0||c===void 0||l===void 0?null:{id:t,label:jN(e.label),resetsTotal:n,resetsLeft:r,startsAt:i,endsAt:a,clears:o,paused:s,usableNow:c,useRequiresLimit:l,percentUsed:NN(e.percent_used)}}function FN(e){if(!DN(e)||typeof e.eligible!=`boolean`)return null;let t=e.grants??[];if(!Array.isArray(t))return null;let n=[],r=new Set;for(let e of t){let t=PN(e);if(!t||r.has(t.id))return null;r.add(t.id),n.push(t)}let i=e.ineligible_reason;if(i!=null&&typeof i!=`string`)return null;let a=AN(e.at_limit,!1),o=kN(e.weekly_resets_at),s=kN(e.cooldown_until);if(a===void 0||o===void 0||s===void 0)return null;let c=e.next_grant_id;return{eligible:e.eligible,ineligibleReason:typeof i==`string`?EN.has(i)?i:`unknown`:null,atLimit:a,grants:n,nextGrantId:typeof c==`string`&&r.has(c)?c:null,weeklyResetsAt:o,cooldownUntil:s}}function IN(e,t){if(!e.eligible)return`ineligible`;let n=e.grants.find(e=>e.id===t);return n?n.paused?`paused`:n.usableNow?n.resetsLeft<=0?`exhausted`:n.useRequiresLimit&&!e.atLimit?`not_limited`:null:`not_usable`:`unknown_grant`}async function LN(e,t){let n=await qp.request({authIndex:e,method:`GET`,url:mN+t,header:{...kg}},{timeout:12e3});if(n.statusCode<200||n.statusCode>=300||!DN(n.body))throw new wN(`upstream`);return n.body}async function RN(e){let t=FN((await LN(e,gN)).cedar_ember);if(!t)throw new wN(`malformed`);return t}async function zN(e){let t=await LN(e,_N),n=DN(t.organization)?t.organization.uuid:void 0;if(typeof n!=`string`||!xN.test(n))throw new wN(`malformed`);return n.toLowerCase()}async function BN(e,t,n,r){if(!xN.test(t)||!yN.test(n)||!bN.test(r))throw new wN(`malformed`);try{let i=await qp.request({authIndex:e,method:`POST`,url:`${mN}/api/organizations/${t}/reset_rate_limits`,header:{...kg},data:JSON.stringify({program:hN,grant_id:n,request_id:r})},{timeout:vN});if(i.statusCode===429)return`rate_limited`;if(i.statusCode===401||i.statusCode===403)return`auth_error`;let a=DN(i.body)?i.body.result:void 0;if(i.statusCode>=200&&i.statusCode<300&&typeof a==`string`&&CN.includes(a))return a}catch{}throw new TN}var VN={revision:()=>W.getConnectionRevision(),readStatus:RN,readOrganization:zN,claim:BN,now:()=>Date.now(),requestId:()=>crypto.randomUUID()};function HN(e=VN){let t=e.revision(),n=new Map,r=new Set,i=()=>(t!==e.revision()&&(t=e.revision(),n.clear(),r.clear()),t);return{inspect(e){return i(),n.get(e)},async run(t,a,o){let s=i(),c=()=>{if(e.revision()!==s)throw Error(`session`)};if(r.has(t))throw Error(`busy`);r.add(t);try{let r=n.get(t);if(r?.code&&(r=void 0),r&&(r.grantId!==o||e.now()-r.createdAt>=6e5))throw Error(`expired`);let i=!!r,s=await e.readOrganization(a);if(c(),r&&r.organization!==s)throw Error(`identity`);if(!r){let i=await e.readStatus(a);c();let l=i.grants.find(e=>e.id===o),u=e.now();if(IN(i,o)||!l||l.startsAt&&Date.parse(l.startsAt)>u||l.endsAt&&Date.parse(l.endsAt)<=u||i.cooldownUntil&&Date.parse(i.cooldownUntil)>u)throw Error(`blocked`);r={grantId:o,organization:s,requestId:e.requestId(),createdAt:u},n.set(t,r)}if(c(),i&&e.now()-r.createdAt>=6e5)throw Error(`expired`);let l=await e.claim(a,s,o,r.requestId);return c(),(!i||l===`reset`||l===`already_used`)&&(r.code=l),{code:l,unresolved:!r.code}}finally{e.revision()===s&&r.delete(t)}}}}var UN=HN();function WN(e,t){if(e.cooldownUntil&&Date.parse(e.cooldownUntil)>t)return;let n=e.grants.filter(n=>!IN(e,n.id)&&(!n.startsAt||Date.parse(n.startsAt)<=t)&&(!n.endsAt||Date.parse(n.endsAt)>t));return n.find(t=>t.id===e.nextGrantId)??n.sort((e,t)=>e.id<t.id?-1:+(e.id>t.id))[0]}function GN(e,t,n,r,i){let{t:a}=B(),o=Im(e=>e.connectionStatus),[s]=(0,y.useState)(()=>W.getConnectionRevision()),c=o===`connected`&&s===W.getConnectionRevision(),l=Jc(e=>e.showConfirmation),u=Jc(e=>e.showNotification),d=hk(),f=n_(e.auth_index??e.authIndex),p=JSON.stringify([e.name,f]),[m,h]=(0,y.useState)(null),[g,_]=(0,y.useState)(!1),[v,b]=(0,y.useState)(``),[x,S]=(0,y.useState)(0),C=(0,y.useRef)(!1),w=(0,y.useRef)(0);(0,y.useEffect)(()=>{let e=++w.current;if(h(null),!t||n||!c||!f)return;let r=!1,i=()=>!r&&e===w.current&&s===W.getConnectionRevision();return RN(f).then(e=>{i()&&(h(e),b(``))},()=>{i()&&b(`read_error`)}),()=>{r=!0,w.current+=1}},[f,p,t,n,c,s,r,x]);let T=UN.inspect(p),E=T&&!T.code?T:void 0,D=!!(E&&d-E.createdAt>=6e5),O=E?.grantId??(m?WN(m,d)?.id:void 0),k=n||!c||!f||g||D||!O;return{count:m?.grants.reduce((e,t)=>e+t.resetsLeft,0)??null,busy:g,blocked:k,confirm:()=>{if(k||C.current||!O||!f)return;let t=w.current,n=()=>s===W.getConnectionRevision()&&t===w.current;l({title:a(`claude_reset.title`),message:a(E?`claude_reset.retry_confirm`:`claude_reset.confirm_text`,{name:e.name}),confirmText:a(E?`claude_reset.retry`:`claude_reset.confirm`),variant:`primary`,onConfirm:async()=>{if(!(!n()||C.current||Im.getState().connectionStatus!==`connected`)){C.current=!0,_(!0);try{let e=await UN.run(p,f,O);if(!n())return;u(a(`claude_reset.${e.unresolved?`unknown`:e.code}`),!e.unresolved&&(e.code===`reset`||e.code===`already_used`)?`success`:`error`)}catch{if(!n())return;let e=UN.inspect(p);u(a(`claude_reset.${e&&!e.code?`unknown`:`blocked`}`),`error`)}finally{C.current=!1,_(!1),S(e=>e+1),n()&&i()}}}})},message:E?D?`expired`:`unknown`:v,buttonLabel:E?`retry`:`use`}}var KN={quotaRow:`QuotaBody-module__quotaRow___-JMVn`,quotaRowHeader:`QuotaBody-module__quotaRowHeader___n2wsn`,quotaModel:`QuotaBody-module__quotaModel___wBOTG`,quotaMeta:`QuotaBody-module__quotaMeta___CiLdu`,quotaPercent:`QuotaBody-module__quotaPercent___osiSO`,quotaReset:`QuotaBody-module__quotaReset___Y0Tf1`,quotaResetRelative:`QuotaBody-module__quotaResetRelative___JNYK9`,quotaResetRelativeSoon:`QuotaBody-module__quotaResetRelativeSoon___v6MAB`,quotaAmount:`QuotaBody-module__quotaAmount___h-5qY`,quotaMessage:`QuotaBody-module__quotaMessage___IiV5-`,quotaBar:`QuotaBody-module__quotaBar___eDsVI`,quotaBarFill:`QuotaBody-module__quotaBarFill___PAoP7`,"quota-meter-fill":`QuotaBody-module__quota-meter-fill___3Udkp`,quotaMeterFill:`QuotaBody-module__quota-meter-fill___3Udkp`,quotaBarFillHigh:`QuotaBody-module__quotaBarFillHigh___B1-wA`,quotaBarFillMedium:`QuotaBody-module__quotaBarFillMedium___B53dC`,quotaBarFillLow:`QuotaBody-module__quotaBarFillLow___gX3vN`,antigravityQuotaGroup:`QuotaBody-module__antigravityQuotaGroup___Eala9`,antigravityQuotaGroupHeader:`QuotaBody-module__antigravityQuotaGroupHeader___Innz6`,antigravityQuotaGroupTitle:`QuotaBody-module__antigravityQuotaGroupTitle___gG6fV`,antigravityQuotaGroupDescription:`QuotaBody-module__antigravityQuotaGroupDescription___I9BdI`,codexPlan:`QuotaBody-module__codexPlan___yquoE`,codexPlanItem:`QuotaBody-module__codexPlanItem___HqY0k`,codexPlanLabel:`QuotaBody-module__codexPlanLabel___2-GjA`,codexPlanValue:`QuotaBody-module__codexPlanValue___x0NdC`,codexResetCredits:`QuotaBody-module__codexResetCredits___jS3Iz`,codexResetCreditsTitle:`QuotaBody-module__codexResetCreditsTitle___M-xya`,codexResetCreditRow:`QuotaBody-module__codexResetCreditRow___pYGVe`,codexResetCreditRowSoon:`QuotaBody-module__codexResetCreditRowSoon___cBM9U`,codexResetCreditLabel:`QuotaBody-module__codexResetCreditLabel___Ahtkh`,codexResetCreditTime:`QuotaBody-module__codexResetCreditTime___jLiPP`,codexResetCreditsError:`QuotaBody-module__codexResetCreditsError___D8Nqz`,codexPlanSeparator:`QuotaBody-module__codexPlanSeparator___7Kus9`,premiumPlanValue:`QuotaBody-module__premiumPlanValue___vsqQ-`,elitePlanValue:`QuotaBody-module__elitePlanValue___yF4r4`,eliteLiquid:`QuotaBody-module__eliteLiquid___RMX2Q`,eliteBreathe:`QuotaBody-module__eliteBreathe___9ZW9s`,eliteSheen:`QuotaBody-module__eliteSheen___41NZk`},qN={card:`QuotaCard-module__card___gsSw0`,cardEnter:`QuotaCard-module__cardEnter___UF7tD`,"quota-card-in":`QuotaCard-module__quota-card-in___GedV-`,quotaCardIn:`QuotaCard-module__quota-card-in___GedV-`,head:`QuotaCard-module__head___vJx5a`,iconWrap:`QuotaCard-module__iconWrap___xTv0M`,icon:`QuotaCard-module__icon___5ZUbX`,iconFallback:`QuotaCard-module__iconFallback___i6gvn`,fileName:`QuotaCard-module__fileName___1QWup`,body:`QuotaCard-module__body___QvXLv`,idleBody:`QuotaCard-module__idleBody___-LVRC`,idleGlyph:`QuotaCard-module__idleGlyph___-MyUb`,idleHint:`QuotaCard-module__idleHint___ki8K6`,skeleton:`QuotaCard-module__skeleton___itY8q`,skeletonRow:`QuotaCard-module__skeletonRow___I4TdX`,skeletonLabel:`QuotaCard-module__skeletonLabel___y0Wxn`,skeletonTrack:`QuotaCard-module__skeletonTrack___GfCHZ`,"quota-skeleton-sweep":`QuotaCard-module__quota-skeleton-sweep___mYYkB`,quotaSkeletonSweep:`QuotaCard-module__quota-skeleton-sweep___mYYkB`,srOnly:`QuotaCard-module__srOnly___LVxLF`,errorStrip:`QuotaCard-module__errorStrip___XvHgW`,actionRow:`QuotaCard-module__actionRow___mzLCF`,actionPill:`QuotaCard-module__actionPill___GQddc`,spinning:`QuotaCard-module__spinning___bpwYE`,"quota-card-spin":`QuotaCard-module__quota-card-spin___PpW3V`,quotaCardSpin:`QuotaCard-module__quota-card-spin___PpW3V`},JN=NO(KN,`QuotaBody.module.scss`);function jte(e){let{entry:t,quota:n,resolvedTheme:r,canRefresh:i,resetting:a,entranceDelayMs:o,onRefresh:s,onReset:c}=e,{t:l}=B(),u=TA[t.type],d=t.file,f=km(d),[p]=(0,y.useState)(o??null),m=p===null?void 0:{"--card-delay":`${p}ms`},h=n?.status??`idle`,g=h===`loading`,_=GN(d,t.type===`claude`&&h!==`idle`,!i||g||a,n,s),v=oO(t.type,r),b=iO(l,t.type),x=Jg(l,n?.errorStatus,n?.error||l(`common.unknown_error`)),S=h===`success`&&!!u.resetQuota&&n!==void 0&&!!u.canResetQuota?.(n);return(0,V.jsxs)(`article`,{className:`${qN.card} ${p===null?``:qN.cardEnter}`,style:m,children:[(0,V.jsxs)(`header`,{className:qN.head,children:[(0,V.jsx)(`span`,{className:qN.iconWrap,title:b,style:cO(t.type)?{background:lO(r)}:void 0,children:v?(0,V.jsx)(`img`,{src:v,alt:``,className:qN.icon}):(0,V.jsx)(`span`,{className:qN.iconFallback,children:b.slice(0,1).toUpperCase()})}),(0,V.jsx)(`span`,{className:qN.fileName,title:f,children:f})]}),(0,V.jsxs)(`div`,{className:qN.body,children:[t.type===`claude`&&h===`success`&&(0,V.jsxs)(V.Fragment,{children:[(0,V.jsx)(`div`,{className:JN.codexPlan,children:(0,V.jsxs)(`span`,{className:JN.codexPlanItem,children:[(0,V.jsx)(`span`,{className:JN.codexPlanLabel,children:l(`claude_reset.remaining`)}),(0,V.jsx)(`span`,{className:JN.codexPlanValue,children:_.count??`--`})]})}),_.message&&(0,V.jsx)(`div`,{role:`status`,className:JN.codexResetCreditsError,children:l(`claude_reset.${_.message}`)})]}),h===`idle`?(0,V.jsxs)(`button`,{type:`button`,className:qN.idleBody,onClick:s,disabled:!i,children:[(0,V.jsx)(Ts,{size:15,"aria-hidden":`true`,className:qN.idleGlyph}),(0,V.jsx)(`span`,{className:qN.idleHint,children:l(`${u.i18nPrefix}.idle`)})]}):g?(0,V.jsxs)(`div`,{className:qN.skeleton,"aria-busy":`true`,children:[(0,V.jsx)(`span`,{className:qN.srOnly,children:l(`${u.i18nPrefix}.loading`)}),[0,1].map(e=>(0,V.jsxs)(`div`,{className:qN.skeletonRow,"aria-hidden":`true`,children:[(0,V.jsx)(`span`,{className:qN.skeletonLabel}),(0,V.jsx)(`span`,{className:qN.skeletonTrack})]},e))]}):h===`error`?(0,V.jsx)(`div`,{className:qN.errorStrip,role:`alert`,children:l(`${u.i18nPrefix}.load_failed`,{message:x})}):n?(0,V.jsx)(u.Body,{quota:n,classes:JN}):(0,V.jsx)(`div`,{className:qN.idleHint,children:l(`${u.i18nPrefix}.idle`)})]}),h!==`idle`&&(0,V.jsxs)(`footer`,{className:qN.actionRow,children:[t.type===`claude`&&(0,V.jsxs)(`button`,{type:`button`,className:qN.actionPill,disabled:_.blocked,onClick:_.confirm,title:l(`claude_reset.${_.buttonLabel}`),children:[(0,V.jsx)(Ts,{size:13,className:_.busy?qN.spinning:void 0}),l(`claude_reset.${_.buttonLabel}`)]}),S&&(0,V.jsxs)(`button`,{type:`button`,className:qN.actionPill,onClick:c,disabled:!i||g||a,title:l(`codex_quota.reset_button`),children:[(0,V.jsx)(Ts,{size:13,className:a?qN.spinning:void 0}),l(`codex_quota.reset_button`)]}),(0,V.jsxs)(`button`,{type:`button`,className:qN.actionPill,onClick:s,disabled:fN(i,g,a||_.busy),title:l(`auth_files.quota_refresh_hint`),children:[(0,V.jsx)(Ts,{size:13,className:g?qN.spinning:void 0}),l(`auth_files.quota_refresh_single`)]})]})]})}var Mte={weekly:14,session:3},YN=5;function Nte(e,t,n,r){if(!Number.isFinite(e)||!(t>0)||!(r>n)||Math.ceil((r-n)/t)+2>1e3)return[];let i=e+Math.ceil((n-e)/t)*t,a=[];for(;i-t<r;)a.push({startMs:i-t,endMs:i}),i+=t;return a}function XN(e){let t=new Date(e);return t.setHours(0,0,0,0),t.getTime()}function Pte(e){let t=new Date(XN(e));return t.setDate(t.getDate()-t.getDay()),t.getTime()}function Fte(e,t,n){let r=Mte[e],i=new Date(e===`weekly`?Pte(n):XN(n));i.setDate(i.getDate()+t*(e===`weekly`?7:1));let a=i.getTime(),o=new Date(a);return o.setDate(o.getDate()+r),{startMs:a,endMs:o.getTime(),days:r}}function Ite(e,t,n,r,i){let a=e.periodHours;if(e.anchorMs===null||!a||i===`session`&&a!==YN)return[];let o=n-t;if(o<=0)return[];let s=e=>(e-t)/o*100;return Nte(e.anchorMs,a*w_,t,n).map(t=>{let n=Math.max(0,s(t.startMs)),i=Math.min(100,s(t.endMs));if(i<=0||n>=100||i<=n)return null;let a=t.endMs<=r?`past`:t.startMs<=r?`live`:`next`;return{startMs:t.startMs,endMs:t.endMs,leftPercent:n,widthPercent:i-n,state:a,remaining:a===`live`&&t.endMs===e.anchorMs?e.remaining:null}}).filter(e=>e!==null)}function Lte(e,t,n,r){let i=n-t;return i<=0?[]:e.resetCredits.filter(e=>e.expiresAtMs>r&&e.expiresAtMs>=t&&e.expiresAtMs<n).map(e=>({...e,leftPercent:(e.expiresAtMs-t)/i*100}))}function ZN(e,t){let n=e.filter(e=>typeof e.resetAtMs==`number`&&Number.isFinite(e.resetAtMs));if(n.length===0)return null;let r=e=>typeof e.periodHours==`number`&&e.periodHours>0?e.periodHours:0,i=t===void 0?n:n.filter(e=>r(e)<=t);return(i.length>0?i:n).reduce((e,t)=>{let n=r(t)-r(e);return n===0?t.resetAtMs<e.resetAtMs?t:e:n>0?t:e})}function QN(e){return e.anchorMs!==null}var $N=e=>Math.min(100,Math.max(0,e));function eP(e){let{name:t,displayName:n,provider:r,quota:i,maxPeriodHours:a}=e,o={name:t,displayName:n,provider:r,anchorMs:null,periodHours:null,remaining:null,limits:[],resetCredits:[]};if(!i||i.status!==`success`)return o;if(r===`claude`||r===`codex`){let e=(i.windows??[]).filter(e=>typeof e.resetAtMs==`number`),t=a!==void 0&&a<=YN?`five-hour`:`weekly`,n=(r===`codex`?e.find(e=>e.id===t&&typeof e.periodHours==`number`&&e.periodHours>0&&(a===void 0||e.periodHours<=a)):void 0)??ZN(e,a);if(!n)return o;let s=r===`codex`?(i.rateLimitResetCredits??[]).filter(e=>e.status===`available`).map(e=>{let t=new Date(e.expiresAt??``).getTime();if(!Number.isFinite(t))return null;let n=new Date(e.grantedAt??``).getTime();return{id:e.id??``,grantedAtMs:Number.isFinite(n)?n:null,expiresAtMs:t}}).filter(e=>e!==null):[];return{...o,anchorMs:n.resetAtMs??null,periodHours:n.periodHours??null,remaining:typeof n.usedPercent==`number`?$N(100-n.usedPercent):null,limits:e.filter(e=>typeof e.usedPercent==`number`).map(e=>({label:e.label??``,remaining:$N(100-e.usedPercent)})),resetCredits:s}}if(r===`devin`){let e=i.windows??[],t=ZN(e,a);return t?{...o,anchorMs:t.resetAtMs,periodHours:t.periodHours,remaining:t.remainingPercent,limits:e.filter(e=>e.remainingPercent!==null).map(e=>({label:e.label??e.id,remaining:e.remainingPercent}))}:o}if(r===`xai`){let e=i.billing;if(!e||e.periodType!==`weekly`||typeof e.resetAtMs!=`number`||!Number.isFinite(e.resetAtMs))return o;let t=typeof e.usagePercent==`number`?$N(100-e.usagePercent):null;return{...o,anchorMs:e.resetAtMs,periodHours:e.periodHours??168,remaining:t,limits:(e.productUsage??[]).map(e=>({label:e.product??``,remaining:typeof e.usagePercent==`number`?$N(100-e.usagePercent):null})).filter(e=>e.remaining!==null)}}if(r===`antigravity`){let e=(i.groups??[]).flatMap(e=>e.buckets??[]).filter(e=>typeof e.resetAtMs==`number`),t=ZN(e,a);if(!t)return o;let n=e=>typeof e.remainingFraction==`number`?$N(Math.round(e.remainingFraction*100)):null;return{...o,anchorMs:t.resetAtMs??null,periodHours:t.periodHours??null,remaining:n(t),limits:e.map(e=>({label:e.label??``,remaining:n(e)})).filter(e=>e.remaining!==null)}}if(r===`kimi`){let e=(i.rows??[]).filter(e=>typeof e.resetAtMs==`number`),t=ZN(e,a);if(!t)return o;let n=e=>e.limit>0?$N(Math.round((e.limit-e.used)/e.limit*100)):null;return{...o,anchorMs:t.resetAtMs??null,periodHours:t.periodHours??null,remaining:n(t),limits:e.map(e=>({label:e.label??``,remaining:n(e)})).filter(e=>e.remaining!==null)}}if(r===`meta`){let e=(i.data?.windows??[]).map(e=>({...e,durationMinutes:e.id===`weekly`?10080:e.durationMinutes})).filter(e=>typeof e.resetAt==`number`&&Number.isFinite(e.resetAt)&&typeof e.durationMinutes==`number`&&Number.isFinite(e.durationMinutes)&&e.durationMinutes>0).map(e=>({...e,resetAtMs:e.resetAt*1e3,periodHours:e.durationMinutes/60})),t=ZN(e,a);if(!t)return o;let n=e=>typeof e.usedPercent==`number`&&Number.isFinite(e.usedPercent)?$N(100-e.usedPercent):null;return{...o,anchorMs:t.resetAtMs,periodHours:t.periodHours,remaining:n(t),limits:e.map(e=>({label:`meta_quota.${e.id}`,remaining:n(e)})).filter(e=>e.remaining!==null)}}return o}var tP={timeline:`QuotaTimeline-module__timeline___WCTXL`,head:`QuotaTimeline-module__head___u4fSV`,title:`QuotaTimeline-module__title___2Z27g`,range:`QuotaTimeline-module__range___XLn9W`,controls:`QuotaTimeline-module__controls___PqNbq`,nav:`QuotaTimeline-module__nav___QxfPe`,modes:`QuotaTimeline-module__modes___7xT9o`,chart:`QuotaTimeline-module__chart___N7OxP`,empty:`QuotaTimeline-module__empty___0HP5I`,axis:`QuotaTimeline-module__axis___C3EoC`,lane:`QuotaTimeline-module__lane___zSZC1`,axisLabel:`QuotaTimeline-module__axisLabel___w0acY`,axisCells:`QuotaTimeline-module__axisCells___8KfD4`,axisCell:`QuotaTimeline-module__axisCell___10NSx`,axisWeekday:`QuotaTimeline-module__axisWeekday___lkS5X`,axisDate:`QuotaTimeline-module__axisDate___bxHvj`,laneHead:`QuotaTimeline-module__laneHead___t0-03`,laneTop:`QuotaTimeline-module__laneTop___I3-LV`,laneDot:`QuotaTimeline-module__laneDot___sSNpR`,laneName:`QuotaTimeline-module__laneName___26MaX`,lanePeriod:`QuotaTimeline-module__lanePeriod___7d5MF`,laneLimits:`QuotaTimeline-module__laneLimits___wbA3K`,laneLimit:`QuotaTimeline-module__laneLimit___GD2aZ`,track:`QuotaTimeline-module__track___f0X5S`,trackGrid:`QuotaTimeline-module__trackGrid___cIq61`,nowLine:`QuotaTimeline-module__nowLine___W7b6l`,window:`QuotaTimeline-module__window___Cpst9`,windowLive:`QuotaTimeline-module__windowLive___w4cNY`,windowNext:`QuotaTimeline-module__windowNext___R6YYa`,windowPast:`QuotaTimeline-module__windowPast___CLBpt`,windowFill:`QuotaTimeline-module__windowFill___57KH0`,windowLabel:`QuotaTimeline-module__windowLabel___dWzzW`,resetCreditTick:`QuotaTimeline-module__resetCreditTick___M4yxP`,laneIdle:`QuotaTimeline-module__laneIdle___-tEF7`,legend:`QuotaTimeline-module__legend___dtxWe`,legendItem:`QuotaTimeline-module__legendItem___3YQO3`,swatch:`QuotaTimeline-module__swatch___PdVZj`,swatchLive:`QuotaTimeline-module__swatchLive___wxYVr`,swatchNext:`QuotaTimeline-module__swatchNext___whozo`,swatchPast:`QuotaTimeline-module__swatchPast___UAzz6`,swatchCredit:`QuotaTimeline-module__swatchCredit___NBXlO`,legendNote:`QuotaTimeline-module__legendNote___W36HQ`},nP=[`sun`,`mon`,`tue`,`wed`,`thu`,`fri`,`sat`],rP=e=>String(e).padStart(2,`0`),iP=e=>{let t=new Date(e);return`${rP(t.getMonth()+1)}/${rP(t.getDate())}`},aP=e=>{let t=new Date(e);return`${rP(t.getHours())}:${rP(t.getMinutes())}`};function oP({entries:e,quotaFor:t,displayNameFor:n,resolvedTheme:r,now:i,initialMode:a=`weekly`,initialOffset:o=0}){let{t:s}=B(),[c,l]=(0,y.useState)(a),[u,d]=(0,y.useState)(o),f=hk(i===void 0),p=i??f,m=(0,y.useMemo)(()=>Fte(c,u,p),[c,u,p]),h=s(`quota_management.windows_today`,{defaultValue:`Today`}),g=u===0?h:iP(m.startMs),_=(0,y.useMemo)(()=>e.map(e=>({name:Om(e.file),displayName:e.type===`devin`?km(e.file):n(e.file.name),provider:e.type,quota:t(e)})),[e,t,n]),v=(0,y.useMemo)(()=>_.some(e=>QN(eP(e))),[_]),b=(0,y.useMemo)(()=>_.map(e=>eP({...e,maxPeriodHours:c===`session`?5:m.days*24})).filter(e=>QN(e)&&(c!==`session`||e.periodHours===5)),[_,c,m.days]),x=(0,y.useMemo)(()=>{let e=c===`session`,t=e?m.days*4:m.days,n=(m.endMs-m.startMs)/t,r=new Date(p).setHours(0,0,0,0);return Array.from({length:t},(t,i)=>{let a=m.startMs+i*n,o=new Date(a),c=!e||o.getHours()===0;return{at:a,isDayStart:c,isToday:new Date(a).setHours(0,0,0,0)===r,isWeekend:o.getDay()===0||o.getDay()===6,weekday:s(`quota_management.weekday_${nP[o.getDay()]}`,{defaultValue:nP[o.getDay()]}),label:c?iP(a):`${rP(o.getHours())}:00`}})},[c,m,p,s]),S=p>=m.startMs&&p<m.endMs?(p-m.startMs)/(m.endMs-m.startMs)*100:null;return v?(0,V.jsxs)(`section`,{className:tP.timeline,children:[(0,V.jsxs)(`header`,{className:tP.head,children:[(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`h2`,{className:tP.title,children:s(`quota_management.windows_title`,{defaultValue:`Quota windows`})}),(0,V.jsxs)(`p`,{className:tP.range,children:[iP(m.startMs),` – `,iP(m.endMs-T_),` · `,c===`weekly`?s(`quota_management.windows_span_weekly`,{defaultValue:`two weeks`}):s(`quota_management.windows_span_session`,{defaultValue:`three days`}),u===0&&` · ${s(`quota_management.windows_current`,{defaultValue:`current`})}`]})]}),(0,V.jsxs)(`div`,{className:tP.controls,children:[(0,V.jsxs)(`div`,{className:tP.nav,children:[(0,V.jsx)(`button`,{type:`button`,onClick:()=>d(e=>e-1),"aria-label":s(`quota_management.windows_prev`,{defaultValue:`Previous`}),children:`‹`}),(0,V.jsx)(`button`,{type:`button`,onClick:()=>d(0),disabled:u===0,"aria-label":h,title:u===0?void 0:h,children:g}),(0,V.jsx)(`button`,{type:`button`,onClick:()=>d(e=>e+1),"aria-label":s(`quota_management.windows_next`,{defaultValue:`Next`}),children:`›`})]}),(0,V.jsx)(`div`,{className:tP.modes,role:`group`,children:[`weekly`,`session`].map(e=>(0,V.jsx)(`button`,{type:`button`,"aria-pressed":c===e,onClick:()=>{l(e),d(0)},children:e===`weekly`?s(`quota_management.windows_mode_weekly`,{defaultValue:`Weekly`}):s(`quota_management.windows_mode_session`,{defaultValue:`5-hour`})},e))})]})]}),(0,V.jsx)(`div`,{className:tP.chart,children:b.length===0?(0,V.jsx)(`div`,{className:tP.empty,role:`status`,children:s(`quota_management.windows_empty_session`,{defaultValue:`No credentials on this page report a 5-hour quota window.`})}):(0,V.jsxs)(V.Fragment,{children:[(0,V.jsxs)(`div`,{className:tP.axis,children:[(0,V.jsx)(`div`,{className:tP.axisLabel,children:s(`quota_management.windows_credential`,{defaultValue:`Credential`})}),(0,V.jsx)(`div`,{className:tP.axisCells,children:x.map(e=>(0,V.jsxs)(`div`,{className:tP.axisCell,"data-today":+!!e.isToday,"data-weekend":+!!e.isWeekend,"data-daystart":+!!e.isDayStart,children:[(0,V.jsx)(`span`,{className:tP.axisWeekday,children:e.isDayStart?e.weekday:``}),(0,V.jsx)(`span`,{className:tP.axisDate,children:e.label})]},e.at))})]}),b.map(e=>(0,V.jsx)(sP,{lane:e,span:m,now:p,mode:c,cells:x,nowPercent:S,resolvedTheme:r},e.name))]})}),b.length>0&&(0,V.jsxs)(`footer`,{className:tP.legend,children:[(0,V.jsxs)(`span`,{className:tP.legendItem,children:[(0,V.jsx)(`span`,{className:`${tP.swatch} ${tP.swatchLive}`}),s(`quota_management.windows_legend_current`,{defaultValue:`current window`})]}),(0,V.jsxs)(`span`,{className:tP.legendItem,children:[(0,V.jsx)(`span`,{className:`${tP.swatch} ${tP.swatchNext}`}),s(`quota_management.windows_legend_upcoming`,{defaultValue:`upcoming`})]}),(0,V.jsxs)(`span`,{className:tP.legendItem,children:[(0,V.jsx)(`span`,{className:`${tP.swatch} ${tP.swatchPast}`}),s(`quota_management.windows_legend_elapsed`,{defaultValue:`elapsed`})]}),(0,V.jsxs)(`span`,{className:tP.legendItem,children:[(0,V.jsx)(`span`,{className:tP.swatchCredit}),s(`quota_management.windows_legend_reset_credit`,{defaultValue:`manual reset expiry`})]}),(0,V.jsx)(`span`,{className:tP.legendNote,children:c===`weekly`?s(`quota_management.windows_note_weekly`,{defaultValue:`Each bar is one full quota window, drawn from when it opened to when it resets. Lanes ending together compete for the same days.`}):s(`quota_management.windows_note_session`,{defaultValue:`Each bar is one 5-hour window. Only credentials with a window counting down can be projected; the rest stay empty rather than invented.`})})]})]}):null}function sP({lane:e,span:t,now:n,mode:r,cells:i,nowPercent:a,resolvedTheme:o}){let{t:s,i18n:c}=B(),l=(0,y.useMemo)(()=>Ite(e,t.startMs,t.endMs,n,r),[e,t,n,r]),u=(0,y.useMemo)(()=>Lte(e,t.startMs,t.endMs,n),[e,t,n]),d=bg[e.provider]||bg.unknown,f=o===`dark`&&d.dark?d.dark:d.light,p=r===`session`?`5h`:e.periodHours?e.periodHours<24?`${Math.round(e.periodHours)}h`:`${Math.round(e.periodHours/24)}d`:``;return(0,V.jsxs)(`div`,{className:tP.lane,style:{"--provider-accent":f.text},children:[(0,V.jsxs)(`div`,{className:tP.laneHead,children:[(0,V.jsxs)(`div`,{className:tP.laneTop,children:[(0,V.jsx)(`span`,{className:tP.laneDot}),(0,V.jsx)(`span`,{className:tP.laneName,title:e.displayName,children:e.displayName}),p&&(0,V.jsx)(`span`,{className:tP.lanePeriod,children:p})]}),(0,V.jsx)(`div`,{className:tP.laneLimits,children:e.limits.map(t=>(0,V.jsxs)(`span`,{className:tP.laneLimit,children:[e.provider===`meta`?s(t.label):t.label,` `,(0,V.jsxs)(`b`,{children:[t.remaining,`%`]})]},t.label))})]}),(0,V.jsxs)(`div`,{className:tP.track,children:[(0,V.jsx)(`div`,{className:tP.trackGrid,children:i.map(e=>(0,V.jsx)(`span`,{"data-weekend":+!!e.isWeekend,"data-daystart":+!!e.isDayStart},e.at))}),a!==null&&(0,V.jsx)(`div`,{className:tP.nowLine,style:{left:`${a}%`}}),l.length===0?(0,V.jsx)(`span`,{className:tP.laneIdle,children:s(`quota_management.windows_idle`,{defaultValue:`no window counting down`})}):l.map(t=>{let n=t.widthPercent>(r===`session`?4.5:9),i=r===`session`?aP(t.endMs):`${iP(t.endMs)} ${aP(t.endMs)}`;return(0,V.jsxs)(`div`,{className:`${tP.window} ${tP[`window${cP(t.state)}`]}`,style:{left:`${t.leftPercent}%`,width:`${t.widthPercent}%`},title:`${e.displayName}\n${iP(t.startMs)} ${aP(t.startMs)} → ${iP(t.endMs)} ${aP(t.endMs)}${t.remaining===null?``:`\n${t.remaining}% remaining`}`,children:[t.remaining!==null&&(0,V.jsx)(`span`,{className:tP.windowFill,style:{width:`${100-t.remaining}%`}}),n&&(0,V.jsxs)(`span`,{className:tP.windowLabel,children:[t.remaining===null?``:`${t.remaining}% · `,i]})]},t.startMs)}),u.map((e,t)=>{let r=s(`quota_management.windows_credit_granted`,{defaultValue:`Granted`}),i=s(`quota_management.windows_credit_expires`,{defaultValue:`Expires`}),a=[s(`quota_management.windows_reset_credit`,{defaultValue:`Manual reset`}),e.grantedAtMs===null?null:`${r}: ${iP(e.grantedAtMs)} ${aP(e.grantedAtMs)}`,`${i}: ${iP(e.expiresAtMs)} ${aP(e.expiresAtMs)}`,k_(e.expiresAtMs,n,c.resolvedLanguage)].filter(e=>e!==null).join(`
`);return(0,V.jsx)(`span`,{className:tP.resetCreditTick,style:{left:`${e.leftPercent}%`},title:a,role:`img`,"aria-label":a.split(`
`).join(`, `)},e.id||`${e.expiresAtMs}-${t}`)})]})]})}var cP=e=>e.charAt(0).toUpperCase()+e.slice(1);function lP(e,t,n){let r=(0,y.useRef)(new Set),i=Mm(e=>e.cacheGeneration),a=Mm(e=>e.fileGenerations);(0,y.useEffect)(()=>{if(t)return;let o=e.filter(({type:e,file:t})=>{if(e!==`devin`)return!1;let n=JSON.stringify([i,a[t.name]??0,t.name,t.authIndex]);return r.current.has(n)?!1:(r.current.add(n),Mm.getState().devinQuota[Om(t)]?.status!==`loading`)});o.length>0&&n(o)},[t,e,a,n,i])}async function uP(e,t,n,r,i){if(!e.enrichQuota)return;let a=Om(t);if(e.storeSelector(Mm.getState())[a]!==r)return;let o=Nm(t.name);try{let s=await e.enrichQuota(t,n,i);if(s===n)return;Pm(o,()=>{let t=Mm.getState()[e.storeSetter];t(t=>t[a]===r?{...t,[a]:e.buildSuccessState(s)}:t)})}catch{}}var dP=(e,t)=>DA(e)[Om(t)];function fP(e){let{t}=B(),n=Jc(e=>e.showNotification),r=Jc(e=>e.showConfirmation),[i,a]=(0,y.useState)(null);return{resettingQuotaName:i,refreshQuota:(0,y.useCallback)(async(r,a)=>{if(e||r.disabled)return;let o=Om(r);if(i===o||dP(a,r)?.status===`loading`)return;let s=Nm(r.name),c=EA(a);c(e=>({...e,[o]:a.buildLoadingState()}));try{let e=await a.fetchQuota(r,t);Pm(s,()=>{let i=a.buildSuccessState(e);c(e=>({...e,[o]:i})),uP(a,r,e,i,t),n(t(`auth_files.quota_refresh_success`,{name:r.name}),`success`)})}catch(e){let i=e instanceof Error?e.message:t(`common.unknown_error`),l=I_(e);Pm(s,()=>{c(e=>({...e,[o]:a.buildErrorState(i,l)})),n(t(`auth_files.quota_refresh_failed`,{name:r.name,message:i}),`error`)})}},[e,i,n,t]),resetQuota:(0,y.useCallback)((o,s)=>{let c=s.resetQuota;if(!c||e||o.disabled)return;let l=Om(o);dP(s,o)?.status!==`loading`&&i!==l&&r({title:t(`codex_quota.reset_confirm_title`),message:t(`codex_quota.reset_confirm_message`,{name:o.name}),confirmText:t(`codex_quota.reset_confirm_button`),variant:`primary`,onConfirm:async()=>{let e=Nm(o.name),r=EA(s);a(l);try{let i=await c(o,t);Pm(e,()=>{r(e=>({...e,[l]:s.buildSuccessState(i)})),n(t(`codex_quota.reset_success`,{name:o.name}),`success`)})}catch(r){let i=r instanceof Error?r.message:t(`common.unknown_error`);Pm(e,()=>{n(t(`codex_quota.reset_failed`,{name:o.name,message:i}),`error`)})}finally{a(e=>e===l?null:e)}}})},[e,i,r,n,t])}}function pP(){let{t:e}=B(),[t,n]=(0,y.useState)(!1),r=(0,y.useRef)(!1),i=(0,y.useRef)(0);return{batchLoading:t,loadQuota:(0,y.useCallback)(async t=>{if(r.current||t.length===0)return;r.current=!0;let a=++i.current,o=Nm();n(!0);try{let n=new Map;t.forEach(e=>{let t=n.get(e.type)??[];t.push(e),n.set(e.type,t)}),await Promise.all(Array.from(n.entries()).map(async([t,n])=>{let r=TA[t],s=EA(r);Pm(o,()=>{s(e=>{let t={...e};return n.forEach(({file:e})=>{t[Om(e)]=r.buildLoadingState()}),t})});let c=await Promise.all(n.map(async({file:t})=>{let n=Om(t);try{let i=await r.fetchQuota(t,e);return{name:t.name,cacheKey:n,status:`success`,data:i}}catch(r){let i=r instanceof Error?r.message:e(`common.unknown_error`);return{name:t.name,cacheKey:n,status:`error`,error:i,errorStatus:I_(r)}}}));if(a!==i.current)return;let l=new Map;s(t=>{let n={...t};return c.forEach(t=>{Pm(o,()=>{n[t.cacheKey]=t.status===`success`?r.buildSuccessState(t.data):r.buildErrorState(t.error||e(`common.unknown_error`),t.errorStatus),l.set(t.cacheKey,n[t.cacheKey])},t.name)}),n}),c.forEach((t,i)=>{let a=l.get(t.cacheKey);t.status===`success`&&a&&uP(r,n[i].file,t.data,a,e)})}))}finally{a===i.current&&(n(!1),r.current=!1)}},[e])}}var mP=`quotaPage.uiState`,hP=new Set([`all`,...nN]),gP=new Set(rN),_P=e=>typeof e==`string`&&hP.has(e),vP=e=>typeof e==`string`&&gP.has(e),yP=()=>{if(typeof window>`u`)return null;try{let e=window.sessionStorage.getItem(mP);if(!e)return null;let t=JSON.parse(e);return!t||typeof t!=`object`?null:{tab:_P(t.tab)?t.tab:void 0,sortMode:vP(t.sortMode)?t.sortMode:void 0}}catch{return null}},bP=e=>{if(!(typeof window>`u`))try{let t={...yP(),...e};window.sessionStorage.setItem(mP,JSON.stringify(t))}catch{}},xP={page:`QuotaPage-module__page___EOaHV`,workbench:`QuotaPage-module__workbench___M9KKY`,tabsRow:`QuotaPage-module__tabsRow___99BHL`,toolbar:`QuotaPage-module__toolbar___2FkSA`,search:`QuotaPage-module__search___oaOF7`,searchIcon:`QuotaPage-module__searchIcon___zPMsU`,searchInput:`QuotaPage-module__searchInput___LYPbu`,clearSearch:`QuotaPage-module__clearSearch___Z7cm5`,sort:`QuotaPage-module__sort___AM-bE`,errorBanner:`QuotaPage-module__errorBanner___Fm4sj`,grid:`QuotaPage-module__grid___veEj-`,pagination:`QuotaPage-module__pagination___qj1Ew`,pageInfo:`QuotaPage-module__pageInfo___QnjRe`},SP=[`all`,...nN],CP=6,wP=e=>e;function TP(){let{t:e}=B(),t=Im(e=>e.connectionStatus),n=rl(e=>e.resolvedTheme),[r,i]=(0,y.useState)([]),[a,o]=(0,y.useState)(!0),[s,c]=(0,y.useState)(``),[l,u]=(0,y.useState)(()=>yP()?.tab??`all`),[d,f]=(0,y.useState)(()=>yP()?.sortMode??`default`),[p,m]=(0,y.useState)(1),[h,g]=(0,y.useState)(``),_=(0,y.useRef)(null),v=ox(),b=t!==`connected`,x=Mm(e=>e.cacheGeneration),[S,C]=(0,y.useState)(null),w=(0,y.useRef)(0),T=(0,y.useCallback)(async()=>{let n=++w.current;if(t!==`connected`){i([]),C(null),o(!1);return}let r=()=>n===w.current&&x===Mm.getState().cacheGeneration;o(!0),c(``);try{let e=await jy.list();if(!r())return;i(e?.files||[]),C(x)}catch(t){if(!r())return;let n=t instanceof Error?t.message:e(`notification.refresh_failed`);c(n)}finally{r()&&o(!1)}},[t,x,e]);cg(T),(0,y.useEffect)(()=>(T(),()=>{w.current+=1}),[T]);let E=Mm(e=>e.antigravityQuota),D=Mm(e=>e.claudeQuota),O=Mm(e=>e.codexQuota),k=Mm(e=>e.devinQuota),A=Mm(e=>e.kimiQuota),j=Mm(e=>e.metaQuota),M=Mm(e=>e.xaiQuota),N=(0,y.useMemo)(()=>({antigravity:E,claude:D,codex:O,devin:k,kimi:A,meta:j,xai:M}),[E,D,O,k,A,j,M]),ee=(0,y.useCallback)(e=>N[e.type][Om(e.file)],[N]),P=hk(d!=="default"),F=d==="default"?0:P,I=(0,y.useMemo)(()=>sN(r),[r]),L=(0,y.useMemo)(()=>dN(I),[I]),R=(0,y.useMemo)(()=>lN(cN(I,l),h),[I,l,h]),te=(0,y.useCallback)(e=>{g(e),m(1)},[]),ne=(0,y.useCallback)(e=>KO(e.type,ee(e),F),[ee,F]),re=(0,y.useMemo)(()=>uN(R,d,ne),[R,d,ne]),{pageItems:z,currentPage:ie,totalPages:ae}=(0,y.useMemo)(()=>pN(re,p,20),[re,p]),oe=(0,y.useCallback)(e=>{u(e),m(1),bP({tab:e})},[]),se=(0,y.useCallback)(e=>{f(e),m(1),bP({sortMode:e})},[]),ce=(0,y.useMemo)(()=>rN.map(t=>({value:t,label:e(`quota_management.sort_${t}`)})),[e]),{loadedCount:le,attentionCount:ue}=(0,y.useMemo)(()=>{let e=0,t=0;return I.forEach(n=>{let r=N[n.type][Om(n.file)]?.status;r===`success`?e+=1:r===`error`&&(t+=1)}),{loadedCount:e,attentionCount:t}},[I,N]);(0,y.useEffect)(()=>{if(a||s||S!==x)return;let e=new Map(nN.map(e=>[e,new Set]));I.forEach(t=>e.get(t.type)?.add(Om(t.file))),nN.forEach(t=>{let n=e.get(t)??new Set;EA(TA[t])(e=>{let t=Object.keys(e).filter(e=>!n.has(e));if(t.length===0)return e;let r={...e};return t.forEach(e=>delete r[e]),r})})},[I,s,S,a,x]);let{batchLoading:de,loadQuota:fe}=pP(),{resettingQuotaName:pe,refreshQuota:me,resetQuota:he}=fP(b),ge=(0,y.useRef)(null),_e=(0,y.useRef)(a),ve=(0,y.useCallback)(()=>{b||(ge.current=x,T())},[b,T,x]);(0,y.useEffect)(()=>{let e=_e.current;_e.current=a;let t=ge.current;if(t!==null){if(t!==x){ge.current=null;return}a||!e||(ge.current=null,aN(t,x,S,!!s,b)&&fe(z))}},[b,s,S,a,fe,z,x]),lP(z,b||a||de||!!s||S!==x,fe);let ye=!b&&!a&&S===x,[be,xe]=(0,y.useState)(!1),Se=!be&&!a&&z.length>0;(0,y.useEffect)(()=>{Se&&xe(!0)},[Se]);let Ce=e=>Se?z.length<=1?0:Math.round(e/(z.length-1)*360):null,we=!a&&R.length===0;return(0,V.jsxs)(`div`,{className:xP.page,ref:v,children:[(0,V.jsx)(tN,{totalCount:I.length,loadedCount:le,attentionCount:ue,refreshing:a||de,disableControls:b,onRefreshAll:ve}),(0,V.jsxs)(`section`,{className:xP.workbench,children:[(0,V.jsx)(`div`,{className:xP.tabsRow,"data-reveal":!0,children:(0,V.jsx)(_j,{types:SP,counts:L,active:l,resolvedTheme:n,onChange:oe})}),(0,V.jsxs)(`div`,{className:xP.toolbar,children:[(0,V.jsxs)(`div`,{className:xP.search,children:[(0,V.jsx)(Bs,{size:16,className:xP.searchIcon,"aria-hidden":`true`}),(0,V.jsx)(`input`,{ref:_,className:xP.searchInput,type:`search`,value:h,onChange:e=>te(e.target.value),placeholder:e(`quota_management.search_placeholder`),"aria-label":e(`quota_management.search_label`)}),h&&(0,V.jsx)(`button`,{type:`button`,className:xP.clearSearch,"aria-label":e(`quota_management.search_clear`),title:e(`quota_management.search_clear`),onClick:()=>{te(``),_.current?.focus()},children:(0,V.jsx)(Vs,{size:14,"aria-hidden":`true`})})]}),(0,V.jsx)(`div`,{className:xP.sort,children:(0,V.jsx)(_c,{value:d,options:ce,onChange:se,ariaLabel:e(`quota_management.sort_label`),size:`sm`})})]}),s&&(0,V.jsx)(`div`,{className:xP.errorBanner,role:`alert`,children:s}),a?(0,V.jsx)(`div`,{className:xP.grid,"aria-hidden":`true`,children:Array.from({length:CP},(e,t)=>(0,V.jsx)(px,{height:168,rounded:14},t))}):we?(0,V.jsx)(FD,{title:h.trim()?e(`quota_management.search_empty_title`):e(l===`all`?`quota_management.empty_title`:`${TA[l].i18nPrefix}.empty_title`),description:h.trim()?e(`quota_management.search_empty_desc`):e(l===`all`?`quota_management.empty_desc`:`${TA[l].i18nPrefix}.empty_desc`),action:h.trim()?(0,V.jsx)(H,{variant:`secondary`,size:`sm`,onClick:()=>te(``),children:e(`quota_management.search_clear`)}):l===`all`?void 0:(0,V.jsx)(H,{variant:`secondary`,size:`sm`,onClick:()=>oe(`all`),children:e(`auth_files.filter_all`)})}):(0,V.jsx)(`div`,{className:xP.grid,children:z.map((e,t)=>(0,V.jsx)(jte,{entry:e,quota:ee(e),resolvedTheme:n,canRefresh:ye&&!e.file.disabled,resetting:pe===Om(e.file),entranceDelayMs:Ce(t),onRefresh:()=>void me(e.file,TA[e.type]),onReset:()=>he(e.file,TA[e.type])},`${e.type}:${Om(e.file)}`))}),!a&&R.length>20&&(0,V.jsxs)(`div`,{className:xP.pagination,children:[(0,V.jsx)(H,{variant:`secondary`,size:`sm`,onClick:()=>m(Math.max(1,ie-1)),disabled:ie<=1,children:e(`auth_files.pagination_prev`)}),(0,V.jsx)(`div`,{className:xP.pageInfo,children:e(`auth_files.pagination_info`,{current:ie,total:ae,count:R.length})}),(0,V.jsx)(H,{variant:`secondary`,size:`sm`,onClick:()=>m(Math.min(ae,ie+1)),disabled:ie>=ae,children:e(`auth_files.pagination_next`)})]}),(0,V.jsx)(oP,{entries:z,quotaFor:ee,displayNameFor:wP,resolvedTheme:n})]})]})}var EP={page:`PluginResourcePage-module__page___Worp1`,frame:`PluginResourcePage-module__frame___vFTLX`,stateShell:`PluginResourcePage-module__stateShell___mvcAO`,statusPanel:`PluginResourcePage-module__statusPanel___hLEe6`},DP=(e,t)=>Dc(e)&&e.status===t,OP=(e=``)=>{try{return decodeURIComponent(e)}catch{return e}},kP=(e=``)=>{let t=Number.parseInt(e,10);return Number.isInteger(t)&&t>=0?t:-1};function AP(){let{t:e}=B(),t=yr(),n=Im(e=>e.connectionStatus),r=Im(e=>e.apiBase),[i,a]=(0,y.useState)(null),[o,s]=(0,y.useState)(!0),[c,l]=(0,y.useState)(``),u=n===`connected`,d=(0,y.useMemo)(()=>OP(t.pluginId),[t.pluginId]),f=(0,y.useMemo)(()=>kP(t.menuIndex),[t.menuIndex]),p=(0,y.useCallback)(async()=>{if(!u){s(!1),l(e(`notification.connection_required`));return}s(!0),l(``);try{let e=await ib.list();a(e)}catch(t){l(DP(t,404)?e(`plugin_management.unsupported_backend`):Oc(t,e(`plugin_resource.load_failed`)))}finally{s(!1)}},[u,e]);cg(p,u),(0,y.useEffect)(()=>{p()},[p]),(0,y.useEffect)(()=>(window.addEventListener(yM,p),()=>{window.removeEventListener(yM,p)}),[p]);let m=(0,y.useMemo)(()=>MM(i?.plugins??[]).find(e=>e.pluginID===d&&e.menuIndex===f),[i?.plugins,f,d]),h=m?CM(m.menu.path,r):``;return(0,V.jsx)(`div`,{className:EP.page,children:o?(0,V.jsx)(`div`,{className:EP.stateShell,children:(0,V.jsx)(`div`,{className:EP.statusPanel,children:e(`common.loading`)})}):c?(0,V.jsx)(`div`,{className:EP.stateShell,children:(0,V.jsx)(FD,{title:e(`plugin_resource.unavailable`),description:c})}):m?h?(0,V.jsx)(`iframe`,{className:EP.frame,src:h,title:m.label,referrerPolicy:`no-referrer`,allow:`clipboard-read; clipboard-write`}):(0,V.jsx)(`div`,{className:EP.stateShell,children:(0,V.jsx)(FD,{title:e(`plugin_resource.empty_src`),description:e(`plugin_resource.empty_src_desc`)})}):(0,V.jsx)(`div`,{className:EP.stateShell,children:(0,V.jsx)(FD,{title:e(`plugin_resource.not_found`),description:e(`plugin_resource.not_found_desc`)})})})}var jP=e=>e.type.trim().toLowerCase(),MP=e=>{if(e==null)return``;try{return JSON.stringify(e,null,2)}catch{return String(e)}},NP=(e,t)=>{let n=jP(e);return n===`boolean`?t===!0:n===`array`||n===`object`?MP(t):t==null?``:String(t)};function PP(e,t){let n=typeof t.enabled==`boolean`?t.enabled:e.enabled,r=typeof t.priority==`number`||typeof t.priority==`string`?String(t.priority):`0`,i={};return e.configFields.forEach(e=>{i[e.name]=NP(e,t[e.name])}),{enabled:n,priority:r,values:i,errors:{},enabledTouched:!1,priorityTouched:!1,touchedFields:{}}}var FP=(e,t,n,r,i)=>{try{let a=JSON.parse(e);if(t===`array`&&!Array.isArray(a)){i[n]=r(`plugin_management.expected_array`);return}if(t===`object`&&!Dc(a)){i[n]=r(`plugin_management.expected_object`);return}return a}catch{i[n]=r(`plugin_management.invalid_json`);return}};function IP(e,t,n){let r={},i={};if(e.enabledTouched&&(i.enabled=e.enabled),e.priorityTouched){let t=e.priority.trim();t?/^-?\d+$/.test(t)?i.priority=Number.parseInt(t,10):r.priority=n(`plugin_management.invalid_priority`):i.priority=0}return t.forEach(t=>{if(!e.touchedFields[t.name])return;let a=jP(t),o=e.values[t.name];if(a===`boolean`){i[t.name]=o===!0;return}let s=typeof o==`string`?o.trim():``;if(!s){i[t.name]=null;return}if(a===`enum`){if(t.enumValues.length>0&&!t.enumValues.includes(s)){r[t.name]=n(`plugin_management.invalid_enum`);return}i[t.name]=s;return}if(a===`number`){let e=Number(s);if(!Number.isFinite(e)){r[t.name]=n(`plugin_management.invalid_number`);return}i[t.name]=e;return}if(a===`integer`){if(!/^-?\d+$/.test(s)){r[t.name]=n(`plugin_management.invalid_integer`);return}i[t.name]=Number.parseInt(s,10);return}if(a===`array`||a===`object`){let e=FP(s,a,t.name,n,r);r[t.name]||(i[t.name]=e);return}i[t.name]=s}),{patch:i,errors:r}}var LP=15e3,RP=500,zP=e=>new Promise(t=>{window.setTimeout(t,e)});async function BP(e,t,n=LP,r=RP){let i=Date.now()+n,a=await ib.list();for(;;){let n=a.plugins.find(t=>t.id===e)??null;if(n&&t(n,a))return{response:a,plugin:n,timedOut:!1};if(Date.now()>=i)return{response:a,plugin:n,timedOut:!0};await zP(Math.min(r,Math.max(0,i-Date.now()))),a=await ib.list()}}async function VP(e,t,n,r=LP,i=RP){let a=Date.now()+r,o=await ab.list();for(;;){let r=o.plugins.find(n=>n.id===e&&(!t||n.sourceId===t))??null;if(r&&n(r,o))return{response:o,plugin:r,timedOut:!1};if(Date.now()>=a)return{response:o,plugin:r,timedOut:!0};await zP(Math.min(i,Math.max(0,a-Date.now()))),o=await ab.list()}}var HP=(e,t)=>{let n=e.logo.trim()||e.metadata?.logo.trim();if(n)return n;let r=e.metadata?.githubRepository.trim(),i=e=>wM(e).replace(/\/+$/,``).replace(/\.git$/i,``).toLowerCase(),a=t.filter(t=>t.id===e.id&&(!r||i(t.repository)===i(r)));return a.length===1?a[0].logo.trim():``},UP={page:`PluginsPage-module__page___CvQ2C`,pageHeader:`PluginsPage-module__pageHeader___QAQJM`,title:`PluginsPage-module__title___kbWp2`,description:`PluginsPage-module__description___rS8P3`,errorBox:`PluginsPage-module__errorBox___CXInm`,warningBox:`PluginsPage-module__warningBox___XGq99`,statusBar:`PluginsPage-module__statusBar___-NeAi`,statusPill:`PluginsPage-module__statusPill___KsCzj`,statusDot:`PluginsPage-module__statusDot___sWBOV`,statusDotOn:`PluginsPage-module__statusDotOn___7cgF3`,statusDotOff:`PluginsPage-module__statusDotOff___biyeH`,statusLabel:`PluginsPage-module__statusLabel___OJVc7`,statusValue:`PluginsPage-module__statusValue___wqQgp`,statusPathValue:`PluginsPage-module__statusPathValue___SCblH`,statusDivider:`PluginsPage-module__statusDivider___fJexN`,toolbar:`PluginsPage-module__toolbar___-cit2`,pluginList:`PluginsPage-module__pluginList___Jk4FJ`,pluginRow:`PluginsPage-module__pluginRow___-y4iX`,logoBox:`PluginsPage-module__logoBox___9Hy-r`,pluginInfo:`PluginsPage-module__pluginInfo___ODdnV`,pluginName:`PluginsPage-module__pluginName___uX3d7`,pluginId:`PluginsPage-module__pluginId___SjbKJ`,pluginMeta:`PluginsPage-module__pluginMeta___xa89L`,metaItem:`PluginsPage-module__metaItem___05Mg9`,metaPath:`PluginsPage-module__metaPath___JUDWR`,metaDot:`PluginsPage-module__metaDot___FpFyv`,badgeRow:`PluginsPage-module__badgeRow___USdlO`,badge:`PluginsPage-module__badge___2k1PE`,badgeSuccess:`PluginsPage-module__badgeSuccess___1yPJW`,badgeWarning:`PluginsPage-module__badgeWarning___ADHL9`,badgeMuted:`PluginsPage-module__badgeMuted___f-Gd9`,rowActions:`PluginsPage-module__rowActions___LvMkv`,iconLink:`PluginsPage-module__iconLink___ofzv1`,skeletonRow:`PluginsPage-module__skeletonRow___BCdYy`,skeletonAvatar:`PluginsPage-module__skeletonAvatar___qfNzu`,skeletonPulse:`PluginsPage-module__skeletonPulse___FskV9`,skeletonText:`PluginsPage-module__skeletonText___PKTOA`,skeletonLine:`PluginsPage-module__skeletonLine___91eQ6`,sheetFooter:`PluginsPage-module__sheetFooter___IZQM-`,configForm:`PluginsPage-module__configForm___acXwo`,formSection:`PluginsPage-module__formSection___J8eP4`,fieldRow:`PluginsPage-module__fieldRow___-q2Wa`,fieldText:`PluginsPage-module__fieldText___KkAH-`,fieldLabel:`PluginsPage-module__fieldLabel___3on7I`,fieldDescription:`PluginsPage-module__fieldDescription___JEDFJ`,fieldHint:`PluginsPage-module__fieldHint___MyVVK`,formField:`PluginsPage-module__formField___-MDet`,textarea:`PluginsPage-module__textarea___DVGj3`,fieldError:`PluginsPage-module__fieldError___ekayR`,emptyConfig:`PluginsPage-module__emptyConfig___lkfig`};function WP({src:e}){let[t,n]=(0,y.useState)(!1);return e&&!t?(0,V.jsx)(`img`,{src:e,alt:``,onError:()=>n(!0)}):(0,V.jsx)(Ss,{size:18})}var GP=(e,t)=>Dc(e)&&e.status===t,KP=e=>Dc(e)&&e.restart_required===!0,qP=e=>Dc(e)&&(KP(e.details)||KP(e.data));function JP(){let{t:e}=B(),t=hr(),n=Im(e=>e.connectionStatus),r=Im(e=>e.apiBase),i=Im(e=>e.managementKey),a=Bp(e=>e.clearCache),o=Jc(e=>e.showNotification),s=Jc(e=>e.showConfirmation),[c,l]=(0,y.useState)(null),[u,d]=(0,y.useState)(null),[f,p]=(0,y.useState)(``),[m,h]=(0,y.useState)(!0),[g,_]=(0,y.useState)(``),[v,b]=(0,y.useState)(null),[x,S]=(0,y.useState)(null),[C,w]=(0,y.useState)(``),[T,E]=(0,y.useState)(``),[D,O]=(0,y.useState)(``),k=(0,y.useRef)(0),A=n===`connected`,j=(0,y.useCallback)(async()=>{if(!A){h(!1),_(e(`notification.connection_required`));return}h(!0),_(``);try{let e=await ib.list();l(e)}catch(t){_(GP(t,404)?e(`plugin_management.unsupported_backend`):Oc(t,e(`plugin_management.load_failed`)))}finally{h(!1)}},[A,e]),M=(0,y.useCallback)(async(e,t)=>{let n=await BP(e,(e,n)=>t?!n.pluginsEnabled||e.registered&&e.effectiveEnabled:!e.effectiveEnabled);return l(n.response),t&&!n.response.pluginsEnabled?`globalDisabled`:n.timedOut?`timeout`:`ready`},[]);cg(j,A),(0,y.useEffect)(()=>{j()},[j]),(0,y.useEffect)(()=>{if(d(null),!A||!c)return;let e=!1;return ab.list().then(t=>{e||d({apiBase:r,managementKey:i,entries:t.plugins})},()=>{}),()=>{e=!0}},[A,r,i,c]);let N=A&&u?.apiBase===r&&u.managementKey===i?u.entries:[],ee=(0,y.useMemo)(()=>{let e=c?.plugins??[];return{discovered:e.length,registered:e.filter(e=>e.registered).length,configured:e.filter(e=>e.configured).length,effective:e.filter(e=>e.effectiveEnabled).length}},[c?.plugins]),P=(0,y.useMemo)(()=>{let e=f.trim().toLowerCase(),t=c?.plugins??[];return e?t.filter(t=>[t.id,t.path,t.metadata?.name,t.metadata?.author,t.metadata?.version,t.metadata?.githubRepository,...t.menus.map(e=>`${e.menu} ${e.path} ${e.description}`)].filter(Boolean).join(` `).toLowerCase().includes(e)):t},[c?.plugins,f]),F=(0,y.useCallback)(e=>CM(e,r),[r]),I=async t=>{if(D||C||T)return;let n=k.current+1;k.current=n,O(t.id),b(t),S(null);try{let e=await ib.getConfig(t.id);if(k.current!==n)return;S(PP(t,e))}catch(t){if(k.current!==n)return;b(null),S(null),o(GP(t,404)?e(`plugin_management.config_not_found`):`${e(`plugin_management.config_load_failed`)}: ${Oc(t,e(`plugin_management.config_load_failed`))}`,`error`)}finally{k.current===n&&O(``)}},L=()=>{C||D||T||(b(null),S(null))},R=e=>{S(t=>t&&e(t))},te=async(t,n)=>{if(!T){w(t.id);try{await ib.updateEnabled(t.id,n),a();let r=await M(t.id,n);r===`ready`?(bM(),o(e(`plugin_management.toggle_success`),`success`)):o(e(r===`globalDisabled`?`plugin_management.global_disabled_hint`:`plugin_management.runtime_pending`),`warning`)}catch(t){o(`${e(`plugin_management.toggle_failed`)}: ${Oc(t,e(`plugin_management.toggle_failed`))}`,`error`)}finally{w(``)}}},ne=t=>{if(!A||C||D||T)return;let n=xM(t);s({title:e(`plugin_management.delete_confirm_title`),message:e(`plugin_management.delete_confirm_message`,{name:n,id:t.id}),variant:`danger`,confirmText:e(`plugin_management.delete_plugin`),onConfirm:async()=>{E(t.id),w(t.id);try{let n=await ib.deletePlugin(t.id);a(),v?.id===t.id&&(b(null),S(null)),await j(),bM(),o(e(`plugin_management.delete_success`),`success`),n.restartRequired&&o(e(`plugin_management.delete_restart_required`),`warning`)}catch(t){let n=qP(t),r=e(n?`plugin_management.delete_restart_required`:`plugin_management.delete_failed`);o(`${e(`plugin_management.delete_failed`)}: ${Oc(t,r)}`,n?`warning`:`error`)}finally{E(``),w(``)}}})},re=async()=>{if(!v||!x||D||C||T)return;let{patch:t,errors:n}=IP(x,v.configFields,e);if(Object.keys(n).length>0){S({...x,errors:n}),o(e(`plugin_management.validation_failed`),`warning`);return}if(Object.keys(t).length===0){b(null),S(null),o(e(`plugin_management.save_success`),`success`);return}w(v.id);try{await ib.patchConfig(v.id,t),a();let n=typeof t.enabled==`boolean`&&t.enabled!==v.enabled?await M(v.id,t.enabled===!0):await j().then(()=>`ready`);n===`ready`&&bM(),b(null),S(null),n===`ready`?o(e(`plugin_management.save_success`),`success`):o(e(n===`globalDisabled`?`plugin_management.global_disabled_hint`:`plugin_management.runtime_pending`),`warning`)}catch(t){o(`${e(`plugin_management.save_failed`)}: ${Oc(t,e(`plugin_management.save_failed`))}`,`error`)}finally{w(``)}},z=e=>t=>{let n=t.target.value;R(t=>({...t,values:{...t.values,[e]:n},errors:{...t.errors,[e]:``},touchedFields:{...t.touchedFields,[e]:!0}}))},ie=(e,t)=>{R(n=>({...n,values:{...n.values,[e]:t},errors:{...n.errors,[e]:``},touchedFields:{...n.touchedFields,[e]:!0}}))},ae=e=>{let t=e.target.value;R(e=>({...e,priority:t,errors:{...e.errors,priority:``},priorityTouched:!0}))},oe=t=>{if(!x)return null;let n=jP(t),r=x.values[t.name],i=typeof r==`string`?r:``,a=x.errors[t.name];return n===`boolean`?(0,V.jsxs)(`div`,{className:UP.fieldRow,children:[(0,V.jsxs)(`div`,{className:UP.fieldText,children:[(0,V.jsx)(`div`,{className:UP.fieldLabel,children:t.name}),t.description?(0,V.jsx)(`div`,{className:UP.fieldDescription,children:t.description}):null]}),(0,V.jsx)($C,{checked:r===!0,onChange:e=>ie(t.name,e),ariaLabel:t.name})]},t.name):n===`enum`&&t.enumValues.length>0?(0,V.jsxs)(`div`,{className:UP.formField,children:[(0,V.jsx)(`label`,{htmlFor:`plugin-field-${t.name}`,children:t.name}),(0,V.jsx)(_c,{id:`plugin-field-${t.name}`,value:i,options:t.enumValues.map(e=>({value:e,label:e})),onChange:e=>R(n=>({...n,values:{...n.values,[t.name]:e},errors:{...n.errors,[t.name]:``},touchedFields:{...n.touchedFields,[t.name]:!0}})),placeholder:e(`plugin_management.select_placeholder`)}),t.description?(0,V.jsx)(`div`,{className:UP.fieldHint,children:t.description}):null,a?(0,V.jsx)(`div`,{className:UP.fieldError,children:a}):null]},t.name):n===`array`||n===`object`?(0,V.jsxs)(`div`,{className:UP.formField,children:[(0,V.jsx)(`label`,{htmlFor:`plugin-field-${t.name}`,children:t.name}),(0,V.jsx)(`textarea`,{id:`plugin-field-${t.name}`,className:UP.textarea,value:i,onChange:z(t.name),placeholder:n===`array`?`[]`:`{}`,spellCheck:!1}),t.description?(0,V.jsx)(`div`,{className:UP.fieldHint,children:t.description}):null,a?(0,V.jsx)(`div`,{className:UP.fieldError,children:a}):null]},t.name):(0,V.jsx)(ds,{id:`plugin-field-${t.name}`,label:t.name,value:i,onChange:z(t.name),inputMode:n===`integer`||n===`number`?`decimal`:void 0,hint:t.description||void 0,error:a||void 0},t.name)},se=!!(v&&C===v.id);return(0,V.jsxs)(`div`,{className:UP.page,children:[(0,V.jsxs)(`div`,{className:UP.pageHeader,children:[(0,V.jsx)(`h1`,{className:UP.title,children:e(`plugin_management.title`)}),(0,V.jsx)(`p`,{className:UP.description,children:e(`plugin_management.description`)})]}),g?(0,V.jsx)(`div`,{className:UP.errorBox,children:g}):null,c&&!c.pluginsEnabled?(0,V.jsx)(`div`,{className:UP.warningBox,children:e(`plugin_management.global_disabled_hint`)}):null,c?(0,V.jsxs)(`div`,{className:UP.statusBar,children:[(0,V.jsxs)(`div`,{className:UP.statusPill,children:[(0,V.jsx)(`span`,{className:`${UP.statusDot} ${c.pluginsEnabled?UP.statusDotOn:UP.statusDotOff}`}),(0,V.jsx)(`span`,{className:UP.statusLabel,children:e(`plugin_management.global_status`)}),(0,V.jsx)(`span`,{className:UP.statusValue,children:c.pluginsEnabled?e(`plugin_management.global_enabled`):e(`plugin_management.global_disabled`)})]}),(0,V.jsx)(`span`,{className:UP.statusDivider}),(0,V.jsxs)(`div`,{className:UP.statusPill,children:[(0,V.jsx)(`span`,{className:UP.statusLabel,children:e(`plugin_management.plugins_dir`)}),(0,V.jsx)(`span`,{className:`${UP.statusValue} ${UP.statusPathValue}`,title:c.pluginsDir||`plugins`,children:c.pluginsDir||`plugins`})]}),(0,V.jsx)(`span`,{className:UP.statusDivider}),(0,V.jsxs)(`div`,{className:UP.statusPill,children:[(0,V.jsx)(`span`,{className:UP.statusLabel,children:e(`plugin_management.discovered`)}),(0,V.jsx)(`span`,{className:UP.statusValue,children:ee.discovered})]}),(0,V.jsx)(`span`,{className:UP.statusDivider}),(0,V.jsxs)(`div`,{className:UP.statusPill,children:[(0,V.jsx)(`span`,{className:UP.statusLabel,children:e(`plugin_management.effective`)}),(0,V.jsxs)(`span`,{className:UP.statusValue,children:[ee.effective,`/`,ee.registered]})]})]}):null,(0,V.jsxs)(`div`,{className:UP.toolbar,children:[(0,V.jsx)(ds,{type:`search`,value:f,onChange:e=>p(e.target.value),placeholder:e(`plugin_management.search_placeholder`),"aria-label":e(`plugin_management.search_label`),rightElement:(0,V.jsx)(Bs,{size:16})}),(0,V.jsxs)(H,{variant:`secondary`,size:`sm`,onClick:j,disabled:!A||m||!!(C||T),loading:m,children:[(0,V.jsx)(Ts,{size:16}),e(`plugin_management.refresh`)]}),(0,V.jsxs)(H,{variant:`secondary`,size:`sm`,onClick:()=>t(`/plugin-store`),children:[(0,V.jsx)(rc,{size:16}),e(`plugin_store.title`)]})]}),m?(0,V.jsx)(`div`,{className:UP.pluginList,children:Array.from({length:4},(e,t)=>(0,V.jsxs)(`div`,{className:UP.skeletonRow,children:[(0,V.jsx)(`div`,{className:UP.skeletonAvatar}),(0,V.jsxs)(`div`,{className:UP.skeletonText,children:[(0,V.jsx)(`div`,{className:UP.skeletonLine}),(0,V.jsx)(`div`,{className:UP.skeletonLine})]})]},t))}):P.length===0?(0,V.jsx)(FD,{title:e(`plugin_management.no_plugins`),description:e(`plugin_management.no_plugins_desc`),action:(0,V.jsxs)(H,{variant:`secondary`,size:`sm`,onClick:j,disabled:!A,children:[(0,V.jsx)(Ts,{size:16}),e(`plugin_management.refresh`)]})}):(0,V.jsx)(`div`,{className:UP.pluginList,children:P.map(t=>{let n=F(HP(t,N)),r=t.metadata?.githubRepository.trim(),i=D===t.id,a=T===t.id,o=!!(C||D||T),s=t.metadata?.version,c=t.metadata?.author;return(0,V.jsxs)(`article`,{className:UP.pluginRow,children:[(0,V.jsx)(`div`,{className:UP.logoBox,"aria-hidden":`true`,children:(0,V.jsx)(WP,{src:n},n)}),(0,V.jsxs)(`div`,{className:UP.pluginInfo,children:[(0,V.jsxs)(`div`,{className:UP.pluginName,children:[(0,V.jsx)(`h2`,{children:xM(t)}),(0,V.jsxs)(`div`,{className:UP.badgeRow,children:[(0,V.jsx)(`span`,{className:t.effectiveEnabled?UP.badgeSuccess:UP.badgeMuted,children:t.effectiveEnabled?e(`plugin_management.status_effective`):e(`plugin_management.status_inactive`)}),(0,V.jsx)(`span`,{className:t.registered?UP.badge:UP.badgeWarning,children:t.registered?e(`plugin_management.registered`):e(`plugin_management.not_registered`)}),(0,V.jsx)(`span`,{className:t.configured?UP.badge:UP.badgeMuted,children:t.configured?e(`plugin_management.configured`):e(`plugin_management.not_configured`)}),t.supportsOAuth?(0,V.jsx)(`span`,{className:UP.badge,children:e(`plugin_management.oauth`)}):null]})]}),(0,V.jsx)(`span`,{className:UP.pluginId,children:t.id}),s||c||t.path?(0,V.jsxs)(`div`,{className:UP.pluginMeta,children:[s?(0,V.jsx)(`span`,{className:UP.metaItem,children:(0,V.jsx)(`strong`,{children:s})}):null,s&&c?(0,V.jsx)(`span`,{className:UP.metaDot,"aria-hidden":`true`}):null,c?(0,V.jsx)(`span`,{className:UP.metaItem,children:c}):null,(s||c)&&t.path?(0,V.jsx)(`span`,{className:UP.metaDot,"aria-hidden":`true`}):null,t.path?(0,V.jsx)(`span`,{className:`${UP.metaItem} ${UP.metaPath}`,title:t.path,children:t.path}):null]}):null]}),(0,V.jsxs)(`div`,{className:UP.rowActions,children:[(0,V.jsx)($C,{checked:t.enabled,onChange:e=>te(t,e),disabled:!A||o,ariaLabel:e(`plugin_management.enabled`)}),(0,V.jsxs)(H,{variant:`secondary`,size:`sm`,onClick:()=>I(t),disabled:!A||o,loading:i,children:[(0,V.jsx)(xs,{size:14}),e(`plugin_management.edit_config`)]}),(0,V.jsxs)(H,{variant:`danger`,size:`sm`,onClick:()=>ne(t),disabled:!A||o,loading:a,title:e(`plugin_management.delete_plugin`),"aria-label":e(`plugin_management.delete_plugin`),children:[(0,V.jsx)(Os,{size:14}),e(`plugin_management.delete_plugin`)]}),r?(0,V.jsx)(`a`,{className:UP.iconLink,href:r,target:`_blank`,rel:`noreferrer`,title:e(`plugin_management.open_repository`),"aria-label":e(`plugin_management.open_repository`),children:(0,V.jsx)(Ys,{size:14})}):null]})]},t.id)})}),(0,V.jsx)(RT,{open:!!(v&&x),onClose:L,size:`lg`,title:v?e(`plugin_management.config_title`,{name:xM(v)}):e(`plugin_management.edit_config`),description:v?.id,closeDisabled:se,footer:(0,V.jsxs)(`div`,{className:UP.sheetFooter,children:[(0,V.jsx)(H,{variant:`secondary`,onClick:L,disabled:se,children:e(`common.cancel`)}),(0,V.jsx)(H,{onClick:re,loading:se,children:e(`common.save`)})]}),children:x&&v?(0,V.jsxs)(`div`,{className:UP.configForm,children:[(0,V.jsxs)(`section`,{className:UP.formSection,children:[(0,V.jsx)(`h3`,{children:e(`plugin_management.base_settings`)}),(0,V.jsxs)(`div`,{className:UP.fieldRow,children:[(0,V.jsxs)(`div`,{className:UP.fieldText,children:[(0,V.jsx)(`div`,{className:UP.fieldLabel,children:e(`plugin_management.enabled`)}),(0,V.jsx)(`div`,{className:UP.fieldDescription,children:e(`plugin_management.enabled_hint`)})]}),(0,V.jsx)($C,{checked:x.enabled,onChange:e=>R(t=>({...t,enabled:e,enabledTouched:!0})),ariaLabel:e(`plugin_management.enabled`)})]}),(0,V.jsx)(ds,{label:e(`plugin_management.priority`),value:x.priority,onChange:ae,inputMode:`numeric`,error:x.errors.priority||void 0})]}),(0,V.jsxs)(`section`,{className:UP.formSection,children:[(0,V.jsx)(`h3`,{children:e(`plugin_management.config_fields`)}),v.configFields.length>0?v.configFields.map(e=>oe(e)):(0,V.jsx)(`div`,{className:UP.emptyConfig,children:e(`plugin_management.no_config_fields`)})]})]}):null})]})}var YP={gateModal:`PluginInstallGateModal-module__gateModal___ue7KG`,identity:`PluginInstallGateModal-module__identity___cMUhh`,logoBox:`PluginInstallGateModal-module__logoBox___if1mL`,name:`PluginInstallGateModal-module__name___EUXHi`,slug:`PluginInstallGateModal-module__slug___nUy93`,repoLink:`PluginInstallGateModal-module__repoLink___YkOrf`,source:`PluginInstallGateModal-module__source___nEQCo`,warningBanner:`PluginInstallGateModal-module__warningBanner___NeGNY`,effects:`PluginInstallGateModal-module__effects___3sPvx`,untrustedAlert:`PluginInstallGateModal-module__untrustedAlert___qDVbK`,untrustedText:`PluginInstallGateModal-module__untrustedText___oIwKQ`,originGrid:`PluginInstallGateModal-module__originGrid___YoESL`,confirmBlock:`PluginInstallGateModal-module__confirmBlock___L2Vcd`,confirmPrompt:`PluginInstallGateModal-module__confirmPrompt___zS8uB`,confirmHint:`PluginInstallGateModal-module__confirmHint___ZYG8r`};function XP({src:e}){let[t,n]=(0,y.useState)(!1);return e&&!t?(0,V.jsx)(`img`,{src:e,alt:``,onError:()=>n(!0)}):(0,V.jsx)(Ss,{size:26})}function ZP({open:e,entry:t,isUpdate:n,installing:r,onClose:i,onConfirm:a}){let{t:o}=B(),s=Im(e=>e.apiBase),[c,l]=(0,y.useState)(1),[u,d]=(0,y.useState)(``),[f,p]=(0,y.useState)(!1);if(e!==f&&(p(e),e&&(l(1),d(``))),!t)return null;let m=t.name||t.id,h=DM(t.repository),g=wM(t.repository),_=h||t.id,v=jM(t),b=CM(t.logo,s),x=t.sourceName||t.sourceUrl,S=AM(t)?o(`plugin_store.cli_proxy_api_source`):x,C=u.trim()===v,w=()=>{r||i()},T=async()=>{try{await a()}catch{}},E=(0,V.jsxs)(`div`,{className:YP.identity,children:[(0,V.jsx)(`div`,{className:YP.logoBox,"aria-hidden":`true`,children:(0,V.jsx)(XP,{src:b})}),(0,V.jsx)(`h3`,{className:YP.name,children:m}),g?(0,V.jsxs)(`a`,{className:YP.repoLink,href:g,target:`_blank`,rel:`noreferrer`,title:o(`plugin_store.open_repository`),"aria-label":o(`plugin_store.open_repository`),children:[(0,V.jsx)(`span`,{children:_}),(0,V.jsx)(Xs,{size:12})]}):(0,V.jsx)(`p`,{className:YP.slug,children:_}),S?(0,V.jsx)(`p`,{className:YP.source,children:o(`plugin_store.source_name`,{source:S})}):null]}),D,O;return c===1?(D=E,O=(0,V.jsx)(H,{variant:`secondary`,fullWidth:!0,onClick:()=>l(2),children:o(`plugin_store.gate_step1_action`)})):c===2?(D=(0,V.jsxs)(V.Fragment,{children:[E,(0,V.jsxs)(`div`,{className:YP.warningBanner,children:[(0,V.jsx)(Ns,{size:18}),(0,V.jsx)(`span`,{children:o(`plugin_store.gate_warning`)})]}),(0,V.jsxs)(`ul`,{className:YP.effects,children:[(0,V.jsx)(`li`,{children:o(`plugin_store.gate_effect_runs_code`)}),(0,V.jsx)(`li`,{children:o(`plugin_store.gate_effect_no_review`)}),(0,V.jsx)(`li`,{children:o(`plugin_store.gate_effect_restart`)})]}),(0,V.jsxs)(`div`,{className:YP.untrustedAlert,children:[(0,V.jsx)(`p`,{className:YP.untrustedText,children:o(`plugin_store.gate_untrusted_alert`)}),(0,V.jsxs)(`dl`,{className:YP.originGrid,children:[(0,V.jsx)(`dt`,{children:o(`plugin_store.gate_repository_label`)}),(0,V.jsx)(`dd`,{children:h||t.repository||`—`}),(0,V.jsx)(`dt`,{children:o(`plugin_store.gate_source_label`)}),(0,V.jsx)(`dd`,{children:S||`—`})]})]})]}),O=(0,V.jsx)(H,{variant:`secondary`,fullWidth:!0,onClick:()=>l(3),children:o(`plugin_store.gate_step2_action`)})):(D=(0,V.jsxs)(V.Fragment,{children:[E,(0,V.jsxs)(`div`,{className:YP.confirmBlock,children:[(0,V.jsx)(`label`,{className:YP.confirmPrompt,htmlFor:`plugin-gate-confirm`,children:o(`plugin_store.gate_step3_prompt`,{token:v})}),(0,V.jsx)(ds,{id:`plugin-gate-confirm`,value:u,onChange:e=>d(e.target.value),autoComplete:`off`,spellCheck:!1,disabled:r,"aria-label":o(`plugin_store.gate_step3_prompt`,{token:v})}),(0,V.jsx)(`p`,{className:YP.confirmHint,children:o(`plugin_store.gate_step3_hint`)})]})]}),O=(0,V.jsx)(H,{variant:`danger`,fullWidth:!0,onClick:T,disabled:!C||r,loading:r,children:o(`plugin_store.gate_step3_action`)})),(0,V.jsx)($m,{open:e,onClose:w,title:o(n?`plugin_store.gate_title_update`:`plugin_store.gate_title`,{name:m}),closeDisabled:r,footer:O,width:520,className:YP.gateModal,children:D})}var QP=`https://api.github.com`,$P=new Set([`github.com`,`www.github.com`]),eF=50,tF=e=>e.trim().toLowerCase()===`github-release`,nF=e=>e.replace(/\.git$/i,``),rF=e=>{let t=e.trim();if(!t)return``;if(/^https?:\/\//i.test(t))try{let e=new URL(t);if(!$P.has(e.hostname.toLowerCase()))return``;let[n=``,r=``]=e.pathname.replace(/^\/+/,``).split(`/`);return!n||!r?``:`${n}/${nF(r)}`}catch{return``}let[n=``,r=``]=t.replace(/^github\.com\//i,``).replace(/^\/+/,``).split(`/`);return!n||!r?``:`${n}/${nF(r)}`},iF=e=>{let t=rF(e);return t?`https://github.com/${t}/releases`:``},aF=e=>{let t=e.trim();return!!t&&/^[A-Za-z0-9][A-Za-z0-9._+-]{0,127}$/.test(t)},oF=e=>Array.isArray(e)?e.map(e=>Dc(e)&&typeof e.name==`string`?e.name.trim():``).filter(Boolean):[],sF=e=>{if(!Dc(e)||typeof e.tag_name!=`string`)return null;let t=e.tag_name.trim();return t?{tagName:t,name:typeof e.name==`string`?e.name.trim():``,publishedAt:typeof e.published_at==`string`?e.published_at:``,prerelease:e.prerelease===!0,htmlUrl:typeof e.html_url==`string`?e.html_url.trim():``,assetNames:oF(e.assets)}:null},cF=async e=>{let t=rF(e);if(!t)throw Error(`Repository is not a GitHub repository`);let n=await qp.request({method:`GET`,url:`${QP}/repos/${t}/releases?per_page=${eF}`,header:{Accept:`application/vnd.github+json`,"X-GitHub-Api-Version":`2022-11-28`}});if(n.statusCode<200||n.statusCode>=300)throw Error(Kp(n));if(!Array.isArray(n.body))throw Error(`GitHub releases response is not a list`);return n.body.map(sF).filter(e=>!!e)},q={page:`PluginStorePage-module__page___rN2vB`,pageHeader:`PluginStorePage-module__pageHeader___a5hmM`,title:`PluginStorePage-module__title___QkQ1O`,description:`PluginStorePage-module__description___r173b`,errorBox:`PluginStorePage-module__errorBox___wObm5`,warningBox:`PluginStorePage-module__warningBox___m3Ra1`,sourceErrorList:`PluginStorePage-module__sourceErrorList___yirmz`,securityBanner:`PluginStorePage-module__securityBanner___OtvY-`,securityBannerText:`PluginStorePage-module__securityBannerText___eDLQ1`,statusBar:`PluginStorePage-module__statusBar___b8rzI`,statusPill:`PluginStorePage-module__statusPill___AN7oF`,statusDot:`PluginStorePage-module__statusDot___llMK6`,statusDotOn:`PluginStorePage-module__statusDotOn___cQMJQ`,statusDotOff:`PluginStorePage-module__statusDotOff___auyTL`,statusLabel:`PluginStorePage-module__statusLabel___0CDXB`,statusValue:`PluginStorePage-module__statusValue___Buecx`,statusPathValue:`PluginStorePage-module__statusPathValue___gU-aN`,statusDivider:`PluginStorePage-module__statusDivider___0N7N9`,toolbar:`PluginStorePage-module__toolbar___Z-Caf`,filterChips:`PluginStorePage-module__filterChips___IS9vp`,filterChip:`PluginStorePage-module__filterChip___GUJrG`,filterChipActive:`PluginStorePage-module__filterChipActive___ej1JK`,filterChipCount:`PluginStorePage-module__filterChipCount___YmS7u`,cardGrid:`PluginStorePage-module__cardGrid___fnYwp`,card:`PluginStorePage-module__card___T-2ZC`,cardHeader:`PluginStorePage-module__cardHeader___ApM1k`,logoBox:`PluginStorePage-module__logoBox___h82gm`,cardTitleBlock:`PluginStorePage-module__cardTitleBlock___6IWjb`,cardTitle:`PluginStorePage-module__cardTitle___iD68r`,cardId:`PluginStorePage-module__cardId___W5pBu`,cardBadges:`PluginStorePage-module__cardBadges___mWJO0`,badge:`PluginStorePage-module__badge___4g24a`,badgeSuccess:`PluginStorePage-module__badgeSuccess___wg0Ot`,badgeWarning:`PluginStorePage-module__badgeWarning___xHNML`,badgeUntrusted:`PluginStorePage-module__badgeUntrusted___Wjoz1`,cardDesc:`PluginStorePage-module__cardDesc___jQ-NX`,cardDescBlock:`PluginStorePage-module__cardDescBlock___yUsqR`,cardDescExpanded:`PluginStorePage-module__cardDescExpanded___A3Tfg`,cardDescToggle:`PluginStorePage-module__cardDescToggle___zYFf8`,cardMeta:`PluginStorePage-module__cardMeta___vVo9C`,metaItem:`PluginStorePage-module__metaItem___kRo15`,metaDot:`PluginStorePage-module__metaDot___MB3Eg`,tagRow:`PluginStorePage-module__tagRow___E6-yD`,tag:`PluginStorePage-module__tag___HqCio`,cardFooter:`PluginStorePage-module__cardFooter___2L0tU`,cardActions:`PluginStorePage-module__cardActions___Ks10I`,cardLinks:`PluginStorePage-module__cardLinks___SkIwi`,iconLink:`PluginStorePage-module__iconLink___Bv605`,installOptions:`PluginStorePage-module__installOptions___OLaer`,installMessage:`PluginStorePage-module__installMessage___j08Jl`,installVersionField:`PluginStorePage-module__installVersionField___O2EFR`,installVersionLabel:`PluginStorePage-module__installVersionLabel___9EWCy`,installVersionModes:`PluginStorePage-module__installVersionModes___kzcLd`,installVersionMode:`PluginStorePage-module__installVersionMode___0bb7i`,installVersionModeActive:`PluginStorePage-module__installVersionModeActive___Zvnf2`,installVersionModeDisabled:`PluginStorePage-module__installVersionModeDisabled___f34mS`,installVersionModeText:`PluginStorePage-module__installVersionModeText___7Md-1`,installVersionPanel:`PluginStorePage-module__installVersionPanel___--Okp`,installVersionHint:`PluginStorePage-module__installVersionHint___0KAz6`,installVersionWarning:`PluginStorePage-module__installVersionWarning___fmxUK`,installVersionCheckbox:`PluginStorePage-module__installVersionCheckbox___JnlKK`,installReleaseLink:`PluginStorePage-module__installReleaseLink___TE77I`,installDialogActions:`PluginStorePage-module__installDialogActions___ea-PN`,skeletonCard:`PluginStorePage-module__skeletonCard___QXKVq`,skeletonHeader:`PluginStorePage-module__skeletonHeader___joNtm`,skeletonAvatar:`PluginStorePage-module__skeletonAvatar___bmFWM`,skeletonPulse:`PluginStorePage-module__skeletonPulse___TfDaw`,skeletonText:`PluginStorePage-module__skeletonText___JE5Eo`,skeletonLine:`PluginStorePage-module__skeletonLine___Nyb3e`,skeletonBody:`PluginStorePage-module__skeletonBody___Zy7HX`},lF=e=>Dc(e)&&typeof e.status==`number`?e.status:void 0,uF=e=>{if(!Dc(e)||!Dc(e.details))return``;let t=e.details.message;return typeof t==`string`?t.trim():``},dF=2,fF=e=>e.name||e.id,pF=e=>e.storeId||e.id,mF=e=>`plugin-store-desc-${encodeURIComponent(e)}`,hF=e=>e.trim().replace(/^v/i,``),gF=e=>{let t=e.trim();return t?/^v/i.test(t)?t:`v${t}`:``},_F=(e,t)=>hF(e)===hF(t),vF=e=>e.trim().split(`-`).map(e=>e&&`${e[0].toUpperCase()}${e.slice(1)}`).join(` `),yF=new Map,bF=(e,t)=>{if(!e)return``;let n=new Date(e);return Number.isNaN(n.getTime())?``:new Intl.DateTimeFormat(t,{year:`numeric`,month:`2-digit`,day:`2-digit`}).format(n)};function xF({src:e}){let[t,n]=(0,y.useState)(!1);return e&&!t?(0,V.jsx)(`img`,{src:e,alt:``,onError:()=>n(!0)}):(0,V.jsx)(Ss,{size:18})}function SF({entry:e,isUpdate:t,version:n,installing:r,onVersionChange:i,onClose:a,onConfirm:o}){let{i18n:s,t:c}=B(),[l,u]=(0,y.useState)(`latest`),[d,f]=(0,y.useState)(!1),[p,m]=(0,y.useState)([]),[h,g]=(0,y.useState)(!1),[_,v]=(0,y.useState)(``),[b,x]=(0,y.useState)(``),S=e?pF(e):``,C=e?.repository??``,w=e?tF(e.installType):!1,T=e&&w?iF(e.repository):``,E=S?`${S}|${C.trim()}|${e?.installType.trim().toLowerCase()??``}`:``;if(E!==b){let e=E?yF.get(E):void 0;x(E),u(`latest`),f(!1),m(e??[]),v(S&&w&&!T?c(`plugin_store.install_version_non_github`):``),g(!!(S&&w&&T&&!e))}(0,y.useEffect)(()=>{if(!S||!w||!T||yF.has(E))return;let e=!0;return cF(C).then(t=>{e&&(yF.set(E,t),m(t))}).catch(t=>{e&&v(Oc(t,c(`plugin_store.install_versions_load_failed`)))}).finally(()=>{e&&g(!1)}),()=>{e=!1}},[S,C,E,T,w,c]);let D=(0,y.useMemo)(()=>p.filter(e=>!e.prerelease),[p]),O=(0,y.useMemo)(()=>d?p:p.filter(e=>!e.prerelease),[p,d]),k=D[0]??p[0]??null,A=(0,y.useMemo)(()=>O.map(e=>{let t=[e.name&&e.name!==e.tagName?`${e.tagName} - ${e.name}`:e.tagName,bF(e.publishedAt,s.language),e.prerelease?c(`plugin_store.install_version_prerelease_badge`):``,e.assetNames.length>0?c(`plugin_store.install_version_assets_count`,{count:e.assetNames.length}):``].filter(Boolean);return{value:e.tagName,label:t.join(` · `)}}),[s.language,c,O]);if((0,y.useEffect)(()=>{if(!(!w||l!==`release`)){if(O.length===0){n&&i(``);return}O.some(e=>e.tagName===n)||i(O[0].tagName)}},[i,w,n,l,O]),!e)return null;let j=c(t?`plugin_store.update_confirm_title`:`plugin_store.install_confirm_title`),M=!w||l===`latest`?``:n.trim(),N=M||e.version,ee=N?`${fF(e)} ${gF(N)}`:fF(e),P=c(t?`plugin_store.update_confirm_message`:`plugin_store.install_confirm_message`,{target:ee}),F=e.version?gF(e.version):k?gF(k.tagName):c(`plugin_store.install_version_latest`),I=p.some(e=>e.prerelease),L=r||h&&p.length===0,R=w&&l===`manual`&&!!n.trim()&&!aF(n),te=!!M&&!!e.installedVersion&&_F(e.installedVersion,M),ne=w&&l===`release`&&!M||w&&l===`manual`&&!aF(n)||te,re=e=>{if(!r&&!(!w&&e!==`latest`)){if(u(e),e===`latest`){i(``);return}if(e===`release`){i(O[0]?.tagName??``);return}i(``)}},z=()=>{r||a()};return(0,V.jsx)($m,{open:!!e,onClose:z,title:j,closeDisabled:r,children:(0,V.jsxs)(`div`,{className:q.installOptions,children:[(0,V.jsx)(`p`,{className:q.installMessage,children:P}),(0,V.jsxs)(`div`,{className:q.installVersionField,children:[(0,V.jsx)(`span`,{className:q.installVersionLabel,id:`plugin-store-install-version-mode`,children:c(`plugin_store.install_version_label`)}),(0,V.jsxs)(`div`,{className:q.installVersionModes,role:`radiogroup`,"aria-labelledby":`plugin-store-install-version-mode`,children:[(0,V.jsxs)(`label`,{className:`${q.installVersionMode} ${l===`latest`?q.installVersionModeActive:``} ${r?q.installVersionModeDisabled:``}`,children:[(0,V.jsx)(`input`,{type:`radio`,name:`plugin-store-install-version-mode`,checked:l===`latest`,onChange:()=>re(`latest`),disabled:r}),(0,V.jsxs)(`span`,{className:q.installVersionModeText,children:[(0,V.jsx)(`strong`,{children:c(`plugin_store.install_version_latest_mode`)}),(0,V.jsx)(`small`,{children:c(`plugin_store.install_version_latest_hint`,{version:F})})]})]}),w?(0,V.jsxs)(V.Fragment,{children:[(0,V.jsxs)(`label`,{className:`${q.installVersionMode} ${l===`release`?q.installVersionModeActive:``} ${L?q.installVersionModeDisabled:``}`,children:[(0,V.jsx)(`input`,{type:`radio`,name:`plugin-store-install-version-mode`,checked:l===`release`,onChange:()=>re(`release`),disabled:L}),(0,V.jsxs)(`span`,{className:q.installVersionModeText,children:[(0,V.jsx)(`strong`,{children:c(`plugin_store.install_version_release_mode`)}),(0,V.jsx)(`small`,{children:c(h?`plugin_store.install_versions_loading`:`plugin_store.install_version_release_hint`)})]})]}),(0,V.jsxs)(`label`,{className:`${q.installVersionMode} ${l===`manual`?q.installVersionModeActive:``} ${r?q.installVersionModeDisabled:``}`,children:[(0,V.jsx)(`input`,{type:`radio`,name:`plugin-store-install-version-mode`,checked:l===`manual`,onChange:()=>re(`manual`),disabled:r}),(0,V.jsxs)(`span`,{className:q.installVersionModeText,children:[(0,V.jsx)(`strong`,{children:c(`plugin_store.install_version_manual_mode`)}),(0,V.jsx)(`small`,{children:c(`plugin_store.install_version_manual_hint`)})]})]})]}):null]}),w&&l===`release`?(0,V.jsxs)(`div`,{className:q.installVersionPanel,children:[_?(0,V.jsxs)(`p`,{className:q.installVersionWarning,children:[c(`plugin_store.install_versions_load_failed`),`: `,_]}):null,!h&&!_&&p.length===0?(0,V.jsx)(`p`,{className:q.installVersionHint,children:c(`plugin_store.install_versions_empty`)}):null,!h&&!_&&p.length>0&&O.length===0?(0,V.jsx)(`p`,{className:q.installVersionHint,children:c(`plugin_store.install_versions_only_prerelease`)}):null,(0,V.jsx)(_c,{value:n,options:A,onChange:i,placeholder:c(`plugin_store.install_version_release_placeholder`),disabled:r||h||A.length===0,ariaLabel:c(`plugin_store.install_version_release_select`)}),I?(0,V.jsxs)(`label`,{className:q.installVersionCheckbox,children:[(0,V.jsx)(`input`,{type:`checkbox`,checked:d,onChange:e=>f(e.target.checked),disabled:r}),(0,V.jsx)(`span`,{children:c(`plugin_store.install_version_show_prerelease`)})]}):null]}):null,w&&l===`manual`?(0,V.jsxs)(`div`,{className:q.installVersionPanel,children:[(0,V.jsx)(ds,{id:`plugin-store-install-version`,value:n,onChange:e=>i(e.target.value),placeholder:c(`plugin_store.install_version_manual_placeholder`),disabled:r,autoComplete:`off`,spellCheck:!1,"aria-invalid":R}),R?(0,V.jsx)(`p`,{className:q.installVersionWarning,children:c(`plugin_store.install_version_manual_error`)}):null]}):null,te?(0,V.jsx)(`p`,{className:q.installVersionWarning,children:c(`plugin_store.install_version_current_selected`,{version:gF(e.installedVersion)})}):null,w&&T?(0,V.jsxs)(`a`,{className:q.installReleaseLink,href:T,target:`_blank`,rel:`noreferrer`,children:[c(`plugin_store.install_version_releases_link`),(0,V.jsx)(Xs,{size:12})]}):null]}),(0,V.jsxs)(`div`,{className:q.installDialogActions,children:[(0,V.jsx)(H,{variant:`ghost`,onClick:z,disabled:r,children:c(`common.cancel`)}),(0,V.jsx)(H,{variant:kM(e)?`primary`:`danger`,onClick:o,disabled:ne,loading:r,children:c(t?`plugin_store.update`:`plugin_store.install`)})]})]})})}function CF(){let{t:e}=B(),t=hr(),n=Im(e=>e.connectionStatus),r=Im(e=>e.apiBase),i=Bp(e=>e.clearCache),a=Jc(e=>e.showNotification),[o,s]=(0,y.useState)(null),[c,l]=(0,y.useState)(!0),[u,d]=(0,y.useState)(null),[f,p]=(0,y.useState)(``),[m,h]=(0,y.useState)(`all`),[g,_]=(0,y.useState)(``),[v,b]=(0,y.useState)([]),[x,S]=(0,y.useState)([]),[C,w]=(0,y.useState)([]),T=(0,y.useRef)({}),[E,D]=(0,y.useState)(!1),[O,k]=(0,y.useState)(null),[A,j]=(0,y.useState)(!1),[M,N]=(0,y.useState)(``),[ee,P]=(0,y.useState)(null),[F,I]=(0,y.useState)(!1),[L,R]=(0,y.useState)(``),te=n===`connected`,ne=(0,y.useCallback)(async()=>{if(!te){l(!1),d({kind:`generic`,message:e(`notification.connection_required`)});return}l(!0),d(null);try{let e=await ab.list();s(e)}catch(t){let n=lF(t);if(n===404)d({kind:`unsupported`,message:e(`plugin_store.unsupported_backend`)});else if(n===502){let n=uF(t);d({kind:`registry`,message:n?`${e(`plugin_store.registry_failed`)}: ${n}`:e(`plugin_store.registry_failed`)})}else d({kind:`generic`,message:Oc(t,e(`plugin_store.load_failed`))})}finally{l(!1)}},[te,e]);cg(ne,te),(0,y.useEffect)(()=>{ne()},[ne]);let re=(0,y.useMemo)(()=>{let e=o?.plugins??[],t=e.filter(e=>e.installed).length;return{total:e.length,installed:t,notInstalled:e.length-t,updates:e.filter(e=>e.installed&&e.updateAvailable).length}},[o?.plugins]),z=(0,y.useMemo)(()=>{let e=(o?.plugins??[]).filter(e=>m===`installed`?e.installed:m===`notInstalled`?!e.installed:m!==`updates`||e.installed&&e.updateAvailable),t=f.trim().toLowerCase();return t?e.filter(e=>[e.id,e.name,e.description,e.author,e.repository,e.sourceName,e.sourceUrl,e.license,...e.tags].filter(Boolean).join(` `).toLowerCase().includes(t)):e},[o?.plugins,f,m]),ie=[{key:`all`,label:e(`plugin_store.filter_all`),count:re.total},{key:`installed`,label:e(`plugin_store.filter_installed`),count:re.installed},{key:`notInstalled`,label:e(`plugin_store.filter_not_installed`),count:re.notInstalled},{key:`updates`,label:e(`plugin_store.filter_updates`),count:re.updates}],ae=v.map(e=>{let t=o?.plugins.find(t=>pF(t)===e);return t?fF(t):e}),oe=!!f.trim()||m!==`all`,se=(0,y.useMemo)(()=>new Set(x),[x]),ce=(0,y.useMemo)(()=>new Set(C),[C]),le=(0,y.useCallback)((e,t)=>{t?T.current[e]=t:delete T.current[e]},[]),ue=(0,y.useCallback)(()=>{let e=Object.entries(T.current).filter(([,e])=>{if(!e)return!1;let t=window.getComputedStyle(e),n=Number.parseFloat(t.lineHeight);return!Number.isFinite(n)||n<=0?e.scrollHeight>e.clientHeight+1:e.scrollHeight>n*dF+1}).map(([e])=>e);w(t=>t.length===e.length&&t.every(t=>e.includes(t))?t:e)},[]);(0,y.useEffect)(()=>{let e=window.requestAnimationFrame(ue);return()=>{window.cancelAnimationFrame(e)}},[ue,z]),(0,y.useEffect)(()=>{let e=()=>{window.requestAnimationFrame(ue)};return window.addEventListener(`resize`,e),()=>{window.removeEventListener(`resize`,e)}},[ue]);let de=(0,y.useCallback)(e=>{S(t=>t.includes(e)?t.filter(t=>t!==e):[...t,e])},[]),fe=(0,y.useCallback)(async(t,n,r=``)=>{let o=pF(t),c=n?`plugin_store.update_failed`:`plugin_store.install_failed`,l=r.trim();_(o);try{let r=await ab.install(t.id,{sourceId:t.sourceId||void 0,version:l||void 0});i();let c=r.sourceId||t.sourceId,u=await VP(t.id,c,e=>e.installed&&e.configured&&(!l||_F(e.installedVersion,l)));if(s(u.response),u.timedOut||!u.plugin?.installed||!u.plugin.configured){a(e(`plugin_store.status_pending`),`warning`);return}if(r.restartRequired){b(e=>e.includes(o)?e:[...e,o]),a(e(n?`plugin_store.update_success`:`plugin_store.install_success`),`success`),a(e(`plugin_store.restart_required_notice`),`warning`);return}if(!u.response.pluginsEnabled){a(e(n?`plugin_store.update_success`:`plugin_store.install_success`),`success`),a(e(`plugin_store.global_disabled_hint`),`warning`);return}if(u.plugin.enabled){let n=await VP(t.id,c,e=>e.registered&&e.effectiveEnabled);if(s(n.response),n.timedOut||!n.plugin?.registered||!n.plugin.effectiveEnabled){a(e(`plugin_store.registration_pending`),`warning`);return}bM()}a(e(n?`plugin_store.update_success`:`plugin_store.install_success`),`success`)}catch(t){throw a(`${e(c)}: ${Oc(t,e(c))}`,`error`),t}finally{_(``)}},[i,a,e]),pe=e=>{let t=e.installed&&e.updateAvailable;P(e),I(t),R(``)},me=(0,y.useCallback)(()=>{g||(P(null),R(``))},[g]),he=(0,y.useCallback)(async()=>{if(!ee)return;let e=L.trim();if(!kM(ee)){k(ee),j(F),N(e),D(!0),P(null),R(``);return}try{await fe(ee,F,e),P(null),R(``)}catch{}},[ee,F,L,fe]),ge=(0,y.useCallback)(async()=>{O&&(await fe(O,A,M),D(!1),N(``))},[O,A,M,fe]),_e=(0,y.useCallback)(()=>{D(!1),N(``)},[]),ve=n=>{let i=pF(n),a=CM(n.logo,r),o=wM(n.repository),s=/^https?:\/\//i.test(n.homepage)?n.homepage:``,c=n.installed&&n.updateAvailable,l=kM(n),u=c&&n.installedVersion&&n.version?e(`plugin_store.version_arrow`,{from:n.installedVersion,to:n.version}):n.installed&&n.installedVersion?`v${n.installedVersion}`:n.version?`v${n.version}`:``,d=AM(n)?e(`plugin_store.cli_proxy_api_source`):n.sourceName,f=[u,d?e(`plugin_store.source_name`,{source:d}):``,n.author,n.license].filter(Boolean),p=g===i,m=!!g,h=n.authRequired&&!n.authConfigured,_=se.has(i),v=ce.has(i),y=mF(i),b=n.installType?vF(n.installType):``,x=n.platforms.length>0?e(`plugin_store.platforms`,{platforms:n.platforms.map(e=>`${e.goos}/${e.goarch}`).join(`, `)}):``,S=n.authRequired?n.authConfigured?e(`plugin_store.auth_configured`):e(`plugin_store.auth_required`):``,C=!te||h||m&&!p,w=h?e(`plugin_store.auth_required_hint`):void 0;return(0,V.jsxs)(`article`,{className:q.card,children:[(0,V.jsxs)(`div`,{className:q.cardHeader,children:[(0,V.jsx)(`div`,{className:q.logoBox,"aria-hidden":`true`,children:(0,V.jsx)(xF,{src:a})}),(0,V.jsxs)(`div`,{className:q.cardTitleBlock,children:[(0,V.jsx)(`h2`,{className:q.cardTitle,children:fF(n)}),(0,V.jsx)(`span`,{className:q.cardId,children:n.id})]}),(0,V.jsxs)(`div`,{className:q.cardBadges,children:[l?null:(0,V.jsxs)(`span`,{className:q.badgeUntrusted,children:[(0,V.jsx)(Ns,{size:11}),e(`plugin_store.badge_untrusted`)]}),c?(0,V.jsx)(`span`,{className:q.badgeWarning,children:e(`plugin_store.badge_update`)}):n.installed?(0,V.jsx)(`span`,{className:q.badgeSuccess,children:e(`plugin_store.badge_installed`)}):null,n.installed&&n.effectiveEnabled?(0,V.jsx)(`span`,{className:q.badge,children:e(`plugin_store.badge_effective`)}):null,n.authRequired?(0,V.jsx)(`span`,{className:n.authConfigured?q.badge:q.badgeWarning,children:S}):null]})]}),n.description?(0,V.jsxs)(`div`,{className:q.cardDescBlock,children:[(0,V.jsx)(`p`,{id:y,ref:e=>le(i,e),className:`${q.cardDesc} ${_?q.cardDescExpanded:``}`,children:n.description}),v?(0,V.jsx)(`button`,{type:`button`,className:q.cardDescToggle,onClick:()=>de(i),"aria-expanded":_,"aria-controls":y,children:e(_?`plugin_store.description_show_less`:`plugin_store.description_show_more`)}):null]}):null,f.length>0||b||x?(0,V.jsxs)(`div`,{className:q.cardMeta,children:[b?(0,V.jsx)(`span`,{className:q.metaItem,children:e(`plugin_store.install_type`,{type:b})}):null,x?(0,V.jsx)(`span`,{className:q.metaItem,children:x}):null,f.map((e,t)=>(0,V.jsxs)(`span`,{className:q.metaItem,children:[t>0?(0,V.jsx)(`span`,{className:q.metaDot,"aria-hidden":`true`}):null,t===0&&u?(0,V.jsx)(`strong`,{children:e}):e]},`${i}-meta-${t}`))]}):null,n.tags.length>0?(0,V.jsx)(`div`,{className:q.tagRow,children:n.tags.map(e=>(0,V.jsx)(`span`,{className:q.tag,children:e},`${i}-tag-${e}`))}):null,(0,V.jsxs)(`div`,{className:q.cardFooter,children:[(0,V.jsx)(`div`,{className:q.cardActions,children:n.installed?(0,V.jsxs)(V.Fragment,{children:[n.updateAvailable?(0,V.jsxs)(H,{size:`sm`,onClick:()=>pe(n),disabled:C,loading:p,title:w,children:[(0,V.jsx)(Ts,{size:14}),e(`plugin_store.update`)]}):null,(0,V.jsxs)(H,{variant:`secondary`,size:`sm`,onClick:()=>t(`/plugins`),children:[(0,V.jsx)(xs,{size:14}),e(`plugin_store.manage`)]})]}):(0,V.jsxs)(H,{size:`sm`,onClick:()=>pe(n),disabled:C,loading:p,title:w,children:[(0,V.jsx)(Es,{size:14}),e(`plugin_store.install`)]})}),(0,V.jsxs)(`div`,{className:q.cardLinks,children:[o?(0,V.jsx)(`a`,{className:q.iconLink,href:o,target:`_blank`,rel:`noreferrer`,title:e(`plugin_store.open_repository`),"aria-label":e(`plugin_store.open_repository`),children:(0,V.jsx)(Ys,{size:14})}):null,s?(0,V.jsx)(`a`,{className:q.iconLink,href:s,target:`_blank`,rel:`noreferrer`,title:e(`plugin_store.open_homepage`),"aria-label":e(`plugin_store.open_homepage`),children:(0,V.jsx)(Xs,{size:14})}):null]})]})]},i)};return(0,V.jsxs)(`div`,{className:q.page,children:[(0,V.jsxs)(`div`,{className:q.pageHeader,children:[(0,V.jsx)(`h1`,{className:q.title,children:e(`plugin_store.title`)}),(0,V.jsx)(`p`,{className:q.description,children:e(`plugin_store.description`)})]}),(0,V.jsxs)(`div`,{className:q.securityBanner,role:`note`,children:[(0,V.jsx)(bs,{size:20}),(0,V.jsxs)(`div`,{className:q.securityBannerText,children:[(0,V.jsx)(`strong`,{children:e(`plugin_store.security_banner_title`)}),(0,V.jsx)(`p`,{children:e(`plugin_store.security_banner_text`)})]})]}),u?(0,V.jsxs)(`div`,{className:q.errorBox,children:[(0,V.jsx)(`span`,{children:u.message}),u.kind===`unsupported`?null:(0,V.jsx)(H,{variant:`secondary`,size:`sm`,onClick:ne,disabled:c,children:e(`plugin_store.retry`)})]}):null,o?.sourceErrors.length?(0,V.jsxs)(`div`,{className:q.warningBox,children:[(0,V.jsx)(`strong`,{children:e(`plugin_store.source_errors_title`)}),(0,V.jsx)(`ul`,{className:q.sourceErrorList,children:o.sourceErrors.map((e,t)=>(0,V.jsxs)(`li`,{children:[(0,V.jsx)(`span`,{children:e.sourceName||e.sourceUrl||e.sourceId}),e.message?(0,V.jsx)(`small`,{children:e.message}):null]},`${e.sourceId}-${e.sourceUrl}-${t}`))})]}):null,o&&!o.pluginsEnabled?(0,V.jsx)(`div`,{className:q.warningBox,children:e(`plugin_store.global_disabled_hint`)}):null,ae.length>0?(0,V.jsx)(`div`,{className:q.warningBox,children:e(`plugin_store.restart_required_banner`,{plugins:ae.join(`, `)})}):null,o?(0,V.jsxs)(`div`,{className:q.statusBar,children:[(0,V.jsxs)(`div`,{className:q.statusPill,children:[(0,V.jsx)(`span`,{className:`${q.statusDot} ${o.pluginsEnabled?q.statusDotOn:q.statusDotOff}`}),(0,V.jsx)(`span`,{className:q.statusLabel,children:e(`plugin_store.global_status`)}),(0,V.jsx)(`span`,{className:q.statusValue,children:o.pluginsEnabled?e(`plugin_store.global_enabled`):e(`plugin_store.global_disabled`)})]}),(0,V.jsx)(`span`,{className:q.statusDivider}),(0,V.jsxs)(`div`,{className:q.statusPill,children:[(0,V.jsx)(`span`,{className:q.statusLabel,children:e(`plugin_store.plugins_dir`)}),(0,V.jsx)(`span`,{className:`${q.statusValue} ${q.statusPathValue}`,title:o.pluginsDir||`plugins`,children:o.pluginsDir||`plugins`})]}),(0,V.jsx)(`span`,{className:q.statusDivider}),(0,V.jsxs)(`div`,{className:q.statusPill,children:[(0,V.jsx)(`span`,{className:q.statusLabel,children:e(`plugin_store.stat_available`)}),(0,V.jsx)(`span`,{className:q.statusValue,children:re.total})]})]}):null,(0,V.jsxs)(`div`,{className:q.toolbar,children:[(0,V.jsx)(ds,{type:`search`,value:f,onChange:e=>p(e.target.value),placeholder:e(`plugin_store.search_placeholder`),"aria-label":e(`plugin_store.search_label`),rightElement:(0,V.jsx)(Bs,{size:16})}),(0,V.jsxs)(H,{variant:`secondary`,size:`sm`,onClick:ne,disabled:!te||c,loading:c,children:[(0,V.jsx)(Ts,{size:16}),e(`plugin_store.refresh`)]})]}),(0,V.jsx)(`div`,{className:q.filterChips,role:`group`,"aria-label":e(`plugin_store.filter_label`),children:ie.map(e=>(0,V.jsxs)(`button`,{type:`button`,className:`${q.filterChip} ${m===e.key?q.filterChipActive:``}`,onClick:()=>h(e.key),"aria-pressed":m===e.key,children:[e.label,(0,V.jsx)(`span`,{className:q.filterChipCount,children:e.count})]},e.key))}),c?(0,V.jsx)(`div`,{className:q.cardGrid,children:Array.from({length:6},(e,t)=>(0,V.jsxs)(`div`,{className:q.skeletonCard,children:[(0,V.jsxs)(`div`,{className:q.skeletonHeader,children:[(0,V.jsx)(`div`,{className:q.skeletonAvatar}),(0,V.jsxs)(`div`,{className:q.skeletonText,children:[(0,V.jsx)(`div`,{className:q.skeletonLine}),(0,V.jsx)(`div`,{className:q.skeletonLine})]})]}),(0,V.jsx)(`div`,{className:q.skeletonBody})]},t))}):z.length===0?u?null:re.total===0?(0,V.jsx)(FD,{title:e(`plugin_store.no_plugins`),description:e(`plugin_store.no_plugins_desc`),action:(0,V.jsxs)(H,{variant:`secondary`,size:`sm`,onClick:ne,disabled:!te,children:[(0,V.jsx)(Ts,{size:16}),e(`plugin_store.refresh`)]})}):(0,V.jsx)(FD,{title:e(`plugin_store.no_matches`),description:e(`plugin_store.no_matches_desc`),action:oe?(0,V.jsx)(H,{variant:`secondary`,size:`sm`,onClick:()=>{p(``),h(`all`)},children:e(`plugin_store.clear_filters`)}):void 0}):(0,V.jsx)(`div`,{className:q.cardGrid,children:z.map(e=>ve(e))}),(0,V.jsx)(ZP,{open:E,entry:O,isUpdate:A,installing:O?g===pF(O):!1,onClose:_e,onConfirm:ge}),(0,V.jsx)(SF,{entry:ee,isUpdate:F,version:L,installing:ee?g===pF(ee):!1,onVersionChange:R,onClose:me,onConfirm:he})]})}function wF(e){let[t,n]=(0,y.useState)(()=>window.matchMedia(e).matches);return(0,y.useEffect)(()=>{let t=window.matchMedia(e),r=e=>{n(e.matches)};return r({matches:t.matches}),t.addEventListener(`change`,r),()=>t.removeEventListener(`change`,r)},[e]),t}var TF=Symbol.for(`yaml.alias`),EF=Symbol.for(`yaml.document`),DF=Symbol.for(`yaml.map`),OF=Symbol.for(`yaml.pair`),kF=Symbol.for(`yaml.scalar`),AF=Symbol.for(`yaml.seq`),jF=Symbol.for(`yaml.node.type`),MF=e=>!!e&&typeof e==`object`&&e[jF]===TF,NF=e=>!!e&&typeof e==`object`&&e[jF]===EF,PF=e=>!!e&&typeof e==`object`&&e[jF]===DF,FF=e=>!!e&&typeof e==`object`&&e[jF]===OF,IF=e=>!!e&&typeof e==`object`&&e[jF]===kF,LF=e=>!!e&&typeof e==`object`&&e[jF]===AF;function RF(e){if(e&&typeof e==`object`)switch(e[jF]){case DF:case AF:return!0}return!1}function zF(e){if(e&&typeof e==`object`)switch(e[jF]){case TF:case DF:case kF:case AF:return!0}return!1}var BF=e=>(IF(e)||RF(e))&&!!e.anchor,VF=Symbol(`break visit`),HF=Symbol(`skip children`),UF=Symbol(`remove node`);function WF(e,t){let n=JF(t);NF(e)?GF(null,e.contents,n,Object.freeze([e]))===UF&&(e.contents=null):GF(null,e,n,Object.freeze([]))}WF.BREAK=VF,WF.SKIP=HF,WF.REMOVE=UF;function GF(e,t,n,r){let i=YF(e,t,n,r);if(zF(i)||FF(i))return XF(e,r,i),GF(e,i,n,r);if(typeof i!=`symbol`){if(RF(t)){r=Object.freeze(r.concat(t));for(let e=0;e<t.items.length;++e){let i=GF(e,t.items[e],n,r);if(typeof i==`number`)e=i-1;else if(i===VF)return VF;else i===UF&&(t.items.splice(e,1),--e)}}else if(FF(t)){r=Object.freeze(r.concat(t));let e=GF(`key`,t.key,n,r);if(e===VF)return VF;e===UF&&(t.key=null);let i=GF(`value`,t.value,n,r);if(i===VF)return VF;i===UF&&(t.value=null)}}return i}async function KF(e,t){let n=JF(t);NF(e)?await qF(null,e.contents,n,Object.freeze([e]))===UF&&(e.contents=null):await qF(null,e,n,Object.freeze([]))}KF.BREAK=VF,KF.SKIP=HF,KF.REMOVE=UF;async function qF(e,t,n,r){let i=await YF(e,t,n,r);if(zF(i)||FF(i))return XF(e,r,i),qF(e,i,n,r);if(typeof i!=`symbol`){if(RF(t)){r=Object.freeze(r.concat(t));for(let e=0;e<t.items.length;++e){let i=await qF(e,t.items[e],n,r);if(typeof i==`number`)e=i-1;else if(i===VF)return VF;else i===UF&&(t.items.splice(e,1),--e)}}else if(FF(t)){r=Object.freeze(r.concat(t));let e=await qF(`key`,t.key,n,r);if(e===VF)return VF;e===UF&&(t.key=null);let i=await qF(`value`,t.value,n,r);if(i===VF)return VF;i===UF&&(t.value=null)}}return i}function JF(e){return typeof e==`object`&&(e.Collection||e.Node||e.Value)?Object.assign({Alias:e.Node,Map:e.Node,Scalar:e.Node,Seq:e.Node},e.Value&&{Map:e.Value,Scalar:e.Value,Seq:e.Value},e.Collection&&{Map:e.Collection,Seq:e.Collection},e):e}function YF(e,t,n,r){if(typeof n==`function`)return n(e,t,r);if(PF(t))return n.Map?.(e,t,r);if(LF(t))return n.Seq?.(e,t,r);if(FF(t))return n.Pair?.(e,t,r);if(IF(t))return n.Scalar?.(e,t,r);if(MF(t))return n.Alias?.(e,t,r)}function XF(e,t,n){let r=t[t.length-1];if(RF(r))r.items[e]=n;else if(FF(r))e===`key`?r.key=n:r.value=n;else if(NF(r))r.contents=n;else{let e=MF(r)?`alias`:`scalar`;throw Error(`Cannot replace node with ${e} parent`)}}var ZF={"!":`%21`,",":`%2C`,"[":`%5B`,"]":`%5D`,"{":`%7B`,"}":`%7D`},QF=e=>e.replace(/[!,[\]{}]/g,e=>ZF[e]),$F=class e{constructor(t,n){this.docStart=null,this.docEnd=!1,this.yaml=Object.assign({},e.defaultYaml,t),this.tags=Object.assign({},e.defaultTags,n)}clone(){let t=new e(this.yaml,this.tags);return t.docStart=this.docStart,t}atDocument(){let t=new e(this.yaml,this.tags);switch(this.yaml.version){case`1.1`:this.atNextDocument=!0;break;case`1.2`:this.atNextDocument=!1,this.yaml={explicit:e.defaultYaml.explicit,version:`1.2`},this.tags=Object.assign({},e.defaultTags);break}return t}add(t,n){this.atNextDocument&&(this.yaml={explicit:e.defaultYaml.explicit,version:`1.1`},this.tags=Object.assign({},e.defaultTags),this.atNextDocument=!1);let r=t.trim().split(/[ \t]+/),i=r.shift();switch(i){case`%TAG`:{if(r.length!==2&&(n(0,`%TAG directive should contain exactly two parts`),r.length<2))return!1;let[e,t]=r;return this.tags[e]=t,!0}case`%YAML`:{if(this.yaml.explicit=!0,r.length!==1)return n(0,`%YAML directive should contain exactly one part`),!1;let[e]=r;if(e===`1.1`||e===`1.2`)return this.yaml.version=e,!0;{let t=/^\d+\.\d+$/.test(e);return n(6,`Unsupported YAML version ${e}`,t),!1}}default:return n(0,`Unknown directive ${i}`,!0),!1}}tagName(e,t){if(e===`!`)return`!`;if(e[0]!==`!`)return t(`Not a valid tag: ${e}`),null;if(e[1]===`<`){let n=e.slice(2,-1);return n===`!`||n===`!!`?(t(`Verbatim tags aren't resolved, so ${e} is invalid.`),null):(e[e.length-1]!==`>`&&t(`Verbatim tags must end with a >`),n)}let[,n,r]=e.match(/^(.*!)([^!]*)$/s);r||t(`The ${e} tag has no suffix`);let i=this.tags[n];if(i)try{return i+decodeURIComponent(r)}catch(e){return t(String(e)),null}return n===`!`?e:(t(`Could not resolve tag: ${e}`),null)}tagString(e){for(let[t,n]of Object.entries(this.tags))if(e.startsWith(n))return t+QF(e.substring(n.length));return e[0]===`!`?e:`!<${e}>`}toString(e){let t=this.yaml.explicit?[`%YAML ${this.yaml.version||`1.2`}`]:[],n=Object.entries(this.tags),r;if(e&&n.length>0&&zF(e.contents)){let t={};WF(e.contents,(e,n)=>{zF(n)&&n.tag&&(t[n.tag]=!0)}),r=Object.keys(t)}else r=[];for(let[i,a]of n)i===`!!`&&a===`tag:yaml.org,2002:`||(!e||r.some(e=>e.startsWith(a)))&&t.push(`%TAG ${i} ${a}`);return t.join(`
`)}};$F.defaultYaml={explicit:!1,version:`1.2`},$F.defaultTags={"!!":`tag:yaml.org,2002:`};function eI(e){if(/[\x00-\x19\s,[\]{}]/.test(e)){let t=`Anchor must not contain whitespace or control characters: ${JSON.stringify(e)}`;throw Error(t)}return!0}function tI(e){let t=new Set;return WF(e,{Value(e,n){n.anchor&&t.add(n.anchor)}}),t}function nI(e,t){for(let n=1;;++n){let r=`${e}${n}`;if(!t.has(r))return r}}function rI(e,t){let n=[],r=new Map,i=null;return{onAnchor:r=>{n.push(r),i??(i=tI(e));let a=nI(t,i);return i.add(a),a},setAnchors:()=>{for(let e of n){let t=r.get(e);if(typeof t==`object`&&t.anchor&&(IF(t.node)||RF(t.node)))t.node.anchor=t.anchor;else{let t=Error(`Failed to resolve repeated object (this should not happen)`);throw t.source=e,t}}},sourceObjects:r}}function iI(e,t,n,r){if(r&&typeof r==`object`)if(Array.isArray(r))for(let t=0,n=r.length;t<n;++t){let n=r[t],i=iI(e,r,String(t),n);i===void 0?delete r[t]:i!==n&&(r[t]=i)}else if(r instanceof Map)for(let t of Array.from(r.keys())){let n=r.get(t),i=iI(e,r,t,n);i===void 0?r.delete(t):i!==n&&r.set(t,i)}else if(r instanceof Set)for(let t of Array.from(r)){let n=iI(e,r,t,t);n===void 0?r.delete(t):n!==t&&(r.delete(t),r.add(n))}else for(let[t,n]of Object.entries(r)){let i=iI(e,r,t,n);i===void 0?delete r[t]:i!==n&&(r[t]=i)}return e.call(t,n,r)}function aI(e,t,n){if(Array.isArray(e))return e.map((e,t)=>aI(e,String(t),n));if(e&&typeof e.toJSON==`function`){if(!n||!BF(e))return e.toJSON(t,n);let r={aliasCount:0,count:1,res:void 0};n.anchors.set(e,r),n.onCreate=e=>{r.res=e,delete n.onCreate};let i=e.toJSON(t,n);return n.onCreate&&n.onCreate(i),i}return typeof e==`bigint`&&!n?.keep?Number(e):e}var oI=class{constructor(e){Object.defineProperty(this,jF,{value:e})}clone(){let e=Object.create(Object.getPrototypeOf(this),Object.getOwnPropertyDescriptors(this));return this.range&&(e.range=this.range.slice()),e}toJS(e,{mapAsMap:t,maxAliasCount:n,onAnchor:r,reviver:i}={}){if(!NF(e))throw TypeError(`A document argument is required`);let a={anchors:new Map,doc:e,keep:!0,mapAsMap:t===!0,mapKeyWarned:!1,maxAliasCount:typeof n==`number`?n:100},o=aI(this,``,a);if(typeof r==`function`)for(let{count:e,res:t}of a.anchors.values())r(t,e);return typeof i==`function`?iI(i,{"":o},``,o):o}},sI=class extends oI{constructor(e){super(TF),this.source=e,Object.defineProperty(this,"tag",{set(){throw Error(`Alias nodes cannot have tags`)}})}resolve(e,t){if(t?.maxAliasCount===0)throw ReferenceError(`Alias resolution is disabled`);let n;t?.aliasResolveCache?n=t.aliasResolveCache:(n=[],WF(e,{Node:(e,t)=>{(MF(t)||BF(t))&&n.push(t)}}),t&&(t.aliasResolveCache=n));let r;for(let e of n){if(e===this)break;e.anchor===this.source&&(r=e)}return r}toJSON(e,t){if(!t)return{source:this.source};let{anchors:n,doc:r,maxAliasCount:i}=t,a=this.resolve(r,t);if(!a){let e=`Unresolved alias (the anchor must be set before the alias): ${this.source}`;throw ReferenceError(e)}let o=n.get(a);if(o||(aI(a,null,t),o=n.get(a)),o?.res===void 0)throw ReferenceError(`This should not happen: Alias anchor was not resolved?`);if(i>=0&&(o.count+=1,o.aliasCount===0&&(o.aliasCount=cI(r,a,n)),o.count*o.aliasCount>i))throw ReferenceError(`Excessive alias count indicates a resource exhaustion attack`);return o.res}toString(e,t,n){let r=`*${this.source}`;if(e){if(eI(this.source),e.options.verifyAliasOrder&&!e.anchors.has(this.source)){let e=`Unresolved alias (the anchor must be set before the alias): ${this.source}`;throw Error(e)}if(e.implicitKey)return`${r} `}return r}};function cI(e,t,n){if(MF(t)){let r=t.resolve(e),i=n&&r&&n.get(r);return i?i.count*i.aliasCount:0}else if(RF(t)){let r=0;for(let i of t.items){let t=cI(e,i,n);t>r&&(r=t)}return r}else if(FF(t)){let r=cI(e,t.key,n),i=cI(e,t.value,n);return Math.max(r,i)}return 1}var lI=e=>!e||typeof e!=`function`&&typeof e!=`object`,uI=class extends oI{constructor(e){super(kF),this.value=e}toJSON(e,t){return t?.keep?this.value:aI(this.value,e,t)}toString(){return String(this.value)}};uI.BLOCK_FOLDED=`BLOCK_FOLDED`,uI.BLOCK_LITERAL=`BLOCK_LITERAL`,uI.PLAIN=`PLAIN`,uI.QUOTE_DOUBLE=`QUOTE_DOUBLE`,uI.QUOTE_SINGLE=`QUOTE_SINGLE`;var dI=`tag:yaml.org,2002:`;function fI(e,t,n){if(t){let e=n.filter(e=>e.tag===t),r=e.find(e=>!e.format)??e[0];if(!r)throw Error(`Tag ${t} not found`);return r}return n.find(t=>t.identify?.(e)&&!t.format)}function pI(e,t,n){if(NF(e)&&(e=e.contents),zF(e))return e;if(FF(e)){let t=n.schema[DF].createNode?.(n.schema,null,n);return t.items.push(e),t}(e instanceof String||e instanceof Number||e instanceof Boolean||typeof BigInt<`u`&&e instanceof BigInt)&&(e=e.valueOf());let{aliasDuplicateObjects:r,onAnchor:i,onTagObj:a,schema:o,sourceObjects:s}=n,c;if(r&&e&&typeof e==`object`){if(c=s.get(e),c)return c.anchor??(c.anchor=i(e)),new sI(c.anchor);c={anchor:null,node:null},s.set(e,c)}t?.startsWith(`!!`)&&(t=dI+t.slice(2));let l=fI(e,t,o.tags);if(!l){if(e&&typeof e.toJSON==`function`&&(e=e.toJSON()),!e||typeof e!=`object`){let t=new uI(e);return c&&(c.node=t),t}l=e instanceof Map?o[DF]:Symbol.iterator in Object(e)?o[AF]:o[DF]}a&&(a(l),delete n.onTagObj);let u=l?.createNode?l.createNode(n.schema,e,n):typeof l?.nodeClass?.from==`function`?l.nodeClass.from(n.schema,e,n):new uI(e);return t?u.tag=t:l.default||(u.tag=l.tag),c&&(c.node=u),u}function mI(e,t,n){let r=n;for(let e=t.length-1;e>=0;--e){let n=t[e];if(typeof n==`number`&&Number.isInteger(n)&&n>=0){let e=[];e[n]=r,r=e}else r=new Map([[n,r]])}return pI(r,void 0,{aliasDuplicateObjects:!1,keepUndefined:!1,onAnchor:()=>{throw Error(`This should not happen, please report a bug.`)},schema:e,sourceObjects:new Map})}var hI=e=>e==null||typeof e==`object`&&!!e[Symbol.iterator]().next().done,gI=class extends oI{constructor(e,t){super(e),Object.defineProperty(this,"schema",{value:t,configurable:!0,enumerable:!1,writable:!0})}clone(e){let t=Object.create(Object.getPrototypeOf(this),Object.getOwnPropertyDescriptors(this));return e&&(t.schema=e),t.items=t.items.map(t=>zF(t)||FF(t)?t.clone(e):t),this.range&&(t.range=this.range.slice()),t}addIn(e,t){if(hI(e))this.add(t);else{let[n,...r]=e,i=this.get(n,!0);if(RF(i))i.addIn(r,t);else if(i===void 0&&this.schema)this.set(n,mI(this.schema,r,t));else throw Error(`Expected YAML collection at ${n}. Remaining path: ${r}`)}}deleteIn(e){let[t,...n]=e;if(n.length===0)return this.delete(t);let r=this.get(t,!0);if(RF(r))return r.deleteIn(n);throw Error(`Expected YAML collection at ${t}. Remaining path: ${n}`)}getIn(e,t){let[n,...r]=e,i=this.get(n,!0);return r.length===0?!t&&IF(i)?i.value:i:RF(i)?i.getIn(r,t):void 0}hasAllNullValues(e){return this.items.every(t=>{if(!FF(t))return!1;let n=t.value;return n==null||e&&IF(n)&&n.value==null&&!n.commentBefore&&!n.comment&&!n.tag})}hasIn(e){let[t,...n]=e;if(n.length===0)return this.has(t);let r=this.get(t,!0);return RF(r)?r.hasIn(n):!1}setIn(e,t){let[n,...r]=e;if(r.length===0)this.set(n,t);else{let e=this.get(n,!0);if(RF(e))e.setIn(r,t);else if(e===void 0&&this.schema)this.set(n,mI(this.schema,r,t));else throw Error(`Expected YAML collection at ${n}. Remaining path: ${r}`)}}},_I=e=>e.replace(/^(?!$)(?: $)?/gm,`#`);function vI(e,t){return/^\n+$/.test(e)?e.substring(1):t?e.replace(/^(?! *$)/gm,t):e}var yI=(e,t,n)=>e.endsWith(`
`)?vI(n,t):n.includes(`
`)?`
`+vI(n,t):(e.endsWith(` `)?``:` `)+n,bI=`flow`,xI=`block`,SI=`quoted`;function CI(e,t,n=`flow`,{indentAtStart:r,lineWidth:i=80,minContentWidth:a=20,onFold:o,onOverflow:s}={}){if(!i||i<0)return e;i<a&&(a=0);let c=Math.max(1+a,1+i-t.length);if(e.length<=c)return e;let l=[],u={},d=i-t.length;typeof r==`number`&&(r>i-Math.max(2,a)?l.push(0):d=i-r);let f,p,m=!1,h=-1,g=-1,_=-1;n===`block`&&(h=wI(e,h,t.length),h!==-1&&(d=h+c));for(let r;r=e[h+=1];){if(n===`quoted`&&r===`\\`){switch(g=h,e[h+1]){case`x`:h+=3;break;case`u`:h+=5;break;case`U`:h+=9;break;default:h+=1}_=h}if(r===`
`)n===`block`&&(h=wI(e,h,t.length)),d=h+t.length+c,f=void 0;else{if(r===` `&&p&&p!==` `&&p!==`
`&&p!==` `){let t=e[h+1];t&&t!==` `&&t!==`
`&&t!==` `&&(f=h)}if(h>=d)if(f)l.push(f),d=f+c,f=void 0;else if(n===`quoted`){for(;p===` `||p===` `;)p=r,r=e[h+=1],m=!0;let t=h>_+1?h-2:g-1;if(u[t])return e;l.push(t),u[t]=!0,d=t+c,f=void 0}else m=!0}p=r}if(m&&s&&s(),l.length===0)return e;o&&o();let v=e.slice(0,l[0]);for(let r=0;r<l.length;++r){let i=l[r],a=l[r+1]||e.length;i===0?v=`\n${t}${e.slice(0,a)}`:(n===`quoted`&&u[i]&&(v+=`${e[i]}\\`),v+=`\n${t}${e.slice(i+1,a)}`)}return v}function wI(e,t,n){let r=t,i=t+1,a=e[i];for(;a===` `||a===` `;)if(t<i+n)a=e[++t];else{do a=e[++t];while(a&&a!==`
`);r=t,i=t+1,a=e[i]}return r}var TI=(e,t)=>({indentAtStart:t?e.indent.length:e.indentAtStart,lineWidth:e.options.lineWidth,minContentWidth:e.options.minContentWidth}),EI=e=>/^(%|---|\.\.\.)/m.test(e);function DI(e,t,n){if(!t||t<0)return!1;let r=t-n,i=e.length;if(i<=r)return!1;for(let t=0,n=0;t<i;++t)if(e[t]===`
`){if(t-n>r)return!0;if(n=t+1,i-n<=r)return!1}return!0}function OI(e,t){let n=JSON.stringify(e);if(t.options.doubleQuotedAsJSON)return n;let{implicitKey:r}=t,i=t.options.doubleQuotedMinMultiLineLength,a=t.indent||(EI(e)?` `:``),o=``,s=0;for(let e=0,t=n[e];t;t=n[++e])if(t===` `&&n[e+1]===`\\`&&n[e+2]===`n`&&(o+=n.slice(s,e)+`\\ `,e+=1,s=e,t=`\\`),t===`\\`)switch(n[e+1]){case`u`:{o+=n.slice(s,e);let t=n.substr(e+2,4);switch(t){case`0000`:o+=`\\0`;break;case`0007`:o+=`\\a`;break;case`000b`:o+=`\\v`;break;case`001b`:o+=`\\e`;break;case`0085`:o+=`\\N`;break;case`00a0`:o+=`\\_`;break;case`2028`:o+=`\\L`;break;case`2029`:o+=`\\P`;break;default:t.substr(0,2)===`00`?o+=`\\x`+t.substr(2):o+=n.substr(e,6)}e+=5,s=e+1}break;case`n`:if(r||n[e+2]===`"`||n.length<i)e+=1;else{for(o+=n.slice(s,e)+`
`;n[e+2]===`\\`&&n[e+3]===`n`&&n[e+4]!==`"`;)o+=`
`,e+=2;o+=a,n[e+2]===` `&&(o+=`\\`),e+=1,s=e+1}break;default:e+=1}return o=s?o+n.slice(s):n,r?o:CI(o,a,SI,TI(t,!1))}function kI(e,t){if(t.options.singleQuote===!1||t.implicitKey&&e.includes(`
`)||/[ \t]\n|\n[ \t]/.test(e))return OI(e,t);let n=t.indent||(EI(e)?` `:``),r=`'`+e.replace(/'/g,`''`).replace(/\n+/g,`$&\n${n}`)+`'`;return t.implicitKey?r:CI(r,n,bI,TI(t,!1))}function AI(e,t){let{singleQuote:n}=t.options,r;if(n===!1)r=OI;else{let t=e.includes(`"`),i=e.includes(`'`);r=t&&!i?kI:i&&!t?OI:n?kI:OI}return r(e,t)}var jI;try{jI=RegExp(`(^|(?<!
))
+(?!
|$)`,`g`)}catch{jI=/\n+(?!\n|$)/g}function MI({comment:e,type:t,value:n},r,i,a){let{blockQuote:o,commentString:s,lineWidth:c}=r.options;if(!o||/\n[\t ]+$/.test(n))return AI(n,r);let l=r.indent||(r.forceBlockIndent||EI(n)?` `:``),u=o===`literal`?!0:o===`folded`||t===uI.BLOCK_FOLDED?!1:t===uI.BLOCK_LITERAL||!DI(n,c,l.length);if(!n)return u?`|
`:`>
`;let d,f;for(f=n.length;f>0;--f){let e=n[f-1];if(e!==`
`&&e!==` `&&e!==` `)break}let p=n.substring(f),m=p.indexOf(`
`);m===-1?d=`-`:n===p||m!==p.length-1?(d=`+`,a&&a()):d=``,p&&(n=n.slice(0,-p.length),p[p.length-1]===`
`&&(p=p.slice(0,-1)),p=p.replace(jI,`$&${l}`));let h=!1,g,_=-1;for(g=0;g<n.length;++g){let e=n[g];if(e===` `)h=!0;else if(e===`
`)_=g;else break}let v=n.substring(0,_<g?_+1:g);v&&(n=n.substring(v.length),v=v.replace(/\n+/g,`$&${l}`));let y=(h?l?`2`:`1`:``)+d;if(e&&(y+=` `+s(e.replace(/ ?[\r\n]+/g,` `)),i&&i()),!u){let e=n.replace(/\n+/g,`
$&`).replace(/(?:^|\n)([\t ].*)(?:([\n\t ]*)\n(?![\n\t ]))?/g,`$1$2`).replace(/\n+/g,`$&${l}`),i=!1,a=TI(r,!0);o!==`folded`&&t!==uI.BLOCK_FOLDED&&(a.onOverflow=()=>{i=!0});let s=CI(`${v}${e}${p}`,l,xI,a);if(!i)return`>${y}\n${l}${s}`}return n=n.replace(/\n+/g,`$&${l}`),`|${y}\n${l}${v}${n}${p}`}function NI(e,t,n,r){let{type:i,value:a}=e,{actualString:o,implicitKey:s,indent:c,indentStep:l,inFlow:u}=t;if(s&&a.includes(`
`)||u&&/[[\]{},]/.test(a))return AI(a,t);if(/^[\n\t ,[\]{}#&*!|>'"%@`]|^[?-]$|^[?-][ \t]|[\n:][ \t]|[ \t]\n|[\n\t ]#|[\n\t :]$/.test(a))return s||u||!a.includes(`
`)?AI(a,t):MI(e,t,n,r);if(!s&&!u&&i!==uI.PLAIN&&a.includes(`
`))return MI(e,t,n,r);if(EI(a)){if(c===``)return t.forceBlockIndent=!0,MI(e,t,n,r);if(s&&c===l)return AI(a,t)}let d=a.replace(/\n+/g,`$&\n${c}`);if(o){let e=e=>e.default&&e.tag!==`tag:yaml.org,2002:str`&&e.test?.test(d),{compat:n,tags:r}=t.doc.schema;if(r.some(e)||n?.some(e))return AI(a,t)}return s?d:CI(d,c,bI,TI(t,!1))}function PI(e,t,n,r){let{implicitKey:i,inFlow:a}=t,o=typeof e.value==`string`?e:Object.assign({},e,{value:String(e.value)}),{type:s}=e;s!==uI.QUOTE_DOUBLE&&/[\x00-\x08\x0b-\x1f\x7f-\x9f\u{D800}-\u{DFFF}]/u.test(o.value)&&(s=uI.QUOTE_DOUBLE);let c=e=>{switch(e){case uI.BLOCK_FOLDED:case uI.BLOCK_LITERAL:return i||a?AI(o.value,t):MI(o,t,n,r);case uI.QUOTE_DOUBLE:return OI(o.value,t);case uI.QUOTE_SINGLE:return kI(o.value,t);case uI.PLAIN:return NI(o,t,n,r);default:return null}},l=c(s);if(l===null){let{defaultKeyType:e,defaultStringType:n}=t.options,r=i&&e||n;if(l=c(r),l===null)throw Error(`Unsupported default string type ${r}`)}return l}function FI(e,t){let n=Object.assign({blockQuote:!0,commentString:_I,defaultKeyType:null,defaultStringType:`PLAIN`,directives:null,doubleQuotedAsJSON:!1,doubleQuotedMinMultiLineLength:40,falseStr:`false`,flowCollectionPadding:!0,indentSeq:!0,lineWidth:80,minContentWidth:20,nullStr:`null`,simpleKeys:!1,singleQuote:null,trailingComma:!1,trueStr:`true`,verifyAliasOrder:!0},e.schema.toStringOptions,t),r;switch(n.collectionStyle){case`block`:r=!1;break;case`flow`:r=!0;break;default:r=null}return{anchors:new Set,doc:e,flowCollectionPadding:n.flowCollectionPadding?` `:``,indent:``,indentStep:typeof n.indent==`number`?` `.repeat(n.indent):` `,inFlow:r,options:n}}function II(e,t){if(t.tag){let n=e.filter(e=>e.tag===t.tag);if(n.length>0)return n.find(e=>e.format===t.format)??n[0]}let n,r;if(IF(t)){r=t.value;let i=e.filter(e=>e.identify?.(r));if(i.length>1){let e=i.filter(e=>e.test);e.length>0&&(i=e)}n=i.find(e=>e.format===t.format)??i.find(e=>!e.format)}else r=t,n=e.find(e=>e.nodeClass&&r instanceof e.nodeClass);if(!n){let e=r?.constructor?.name??(r===null?`null`:typeof r);throw Error(`Tag not resolved for ${e} value`)}return n}function LI(e,t,{anchors:n,doc:r}){if(!r.directives)return``;let i=[],a=(IF(e)||RF(e))&&e.anchor;a&&eI(a)&&(n.add(a),i.push(`&${a}`));let o=e.tag??(t.default?null:t.tag);return o&&i.push(r.directives.tagString(o)),i.join(` `)}function RI(e,t,n,r){if(FF(e))return e.toString(t,n,r);if(MF(e)){if(t.doc.directives)return e.toString(t);if(t.resolvedAliases?.has(e))throw TypeError(`Cannot stringify circular structure without alias nodes`);t.resolvedAliases?t.resolvedAliases.add(e):t.resolvedAliases=new Set([e]),e=e.resolve(t.doc)}let i,a=zF(e)?e:t.doc.createNode(e,{onTagObj:e=>i=e});i??(i=II(t.doc.schema.tags,a));let o=LI(a,i,t);o.length>0&&(t.indentAtStart=(t.indentAtStart??0)+o.length+1);let s=typeof i.stringify==`function`?i.stringify(a,t,n,r):IF(a)?PI(a,t,n,r):a.toString(t,n,r);return o?IF(a)||s[0]===`{`||s[0]===`[`?`${o} ${s}`:`${o}\n${t.indent}${s}`:s}function zI({key:e,value:t},n,r,i){let{allNullValues:a,doc:o,indent:s,indentStep:c,options:{commentString:l,indentSeq:u,simpleKeys:d}}=n,f=zF(e)&&e.comment||null;if(d){if(f)throw Error(`With simple keys, key nodes cannot have comments`);if(RF(e)||!zF(e)&&typeof e==`object`)throw Error(`With simple keys, collection cannot be used as a key value`)}let p=!d&&(!e||f&&t==null&&!n.inFlow||RF(e)||(IF(e)?e.type===uI.BLOCK_FOLDED||e.type===uI.BLOCK_LITERAL:typeof e==`object`));n=Object.assign({},n,{allNullValues:!1,implicitKey:!p&&(d||!a),indent:s+c});let m=!1,h=!1,g=RI(e,n,()=>m=!0,()=>h=!0);if(!p&&!n.inFlow&&g.length>1024){if(d)throw Error(`With simple keys, single line scalar must not span more than 1024 characters`);p=!0}if(n.inFlow){if(a||t==null)return m&&r&&r(),g===``?`?`:p?`? ${g}`:g}else if(a&&!d||t==null&&p)return g=`? ${g}`,f&&!m?g+=yI(g,n.indent,l(f)):h&&i&&i(),g;m&&(f=null),p?(f&&(g+=yI(g,n.indent,l(f))),g=`? ${g}\n${s}:`):(g=`${g}:`,f&&(g+=yI(g,n.indent,l(f))));let _,v,y;zF(t)?(_=!!t.spaceBefore,v=t.commentBefore,y=t.comment):(_=!1,v=null,y=null,t&&typeof t==`object`&&(t=o.createNode(t))),n.implicitKey=!1,!p&&!f&&IF(t)&&(n.indentAtStart=g.length+1),h=!1,!u&&c.length>=2&&!n.inFlow&&!p&&LF(t)&&!t.flow&&!t.tag&&!t.anchor&&(n.indent=n.indent.substring(2));let b=!1,x=RI(t,n,()=>b=!0,()=>h=!0),S=` `;if(f||_||v){if(S=_?`
`:``,v){let e=l(v);S+=`\n${vI(e,n.indent)}`}x===``&&!n.inFlow?S===`
`&&y&&(S=`
`):S+=`\n${n.indent}`}else if(!p&&RF(t)){let e=x[0],r=x.indexOf(`
`),i=r!==-1,a=n.inFlow??t.flow??t.items.length===0;if(i||!a){let t=!1;if(i&&(e===`&`||e===`!`)){let n=x.indexOf(` `);e===`&`&&n!==-1&&n<r&&x[n+1]===`!`&&(n=x.indexOf(` `,n+1)),(n===-1||r<n)&&(t=!0)}t||(S=`\n${n.indent}`)}}else(x===``||x[0]===`
`)&&(S=``);return g+=S+x,n.inFlow?b&&r&&r():y&&!b?g+=yI(g,n.indent,l(y)):h&&i&&i(),g}function BI(e,t){(e===`debug`||e===`warn`)&&console.warn(t)}var VI=`<<`,HI={identify:e=>e===VI||typeof e==`symbol`&&e.description===VI,default:`key`,tag:`tag:yaml.org,2002:merge`,test:/^<<$/,resolve:()=>Object.assign(new uI(Symbol(VI)),{addToJSMap:WI}),stringify:()=>VI},UI=(e,t)=>(HI.identify(t)||IF(t)&&(!t.type||t.type===uI.PLAIN)&&HI.identify(t.value))&&e?.doc.schema.tags.some(e=>e.tag===HI.tag&&e.default);function WI(e,t,n){let r=KI(e,n);if(LF(r))for(let n of r.items)GI(e,t,n);else if(Array.isArray(r))for(let n of r)GI(e,t,n);else GI(e,t,r)}function GI(e,t,n){let r=KI(e,n);if(!PF(r))throw Error(`Merge sources must be maps or map aliases`);let i=r.toJSON(null,e,Map);for(let[e,n]of i)t instanceof Map?t.has(e)||t.set(e,n):t instanceof Set?t.add(e):Object.prototype.hasOwnProperty.call(t,e)||Object.defineProperty(t,e,{value:n,writable:!0,enumerable:!0,configurable:!0});return t}function KI(e,t){return e&&MF(t)?t.resolve(e.doc,e):t}function qI(e,t,{key:n,value:r}){if(zF(n)&&n.addToJSMap)n.addToJSMap(e,t,r);else if(UI(e,n))WI(e,t,r);else{let i=aI(n,``,e);if(t instanceof Map)t.set(i,aI(r,i,e));else if(t instanceof Set)t.add(i);else{let a=JI(n,i,e),o=aI(r,a,e);a in t?Object.defineProperty(t,a,{value:o,writable:!0,enumerable:!0,configurable:!0}):t[a]=o}}return t}function JI(e,t,n){if(t===null)return``;if(typeof t!=`object`)return String(t);if(zF(e)&&n?.doc){let t=FI(n.doc,{});t.anchors=new Set;for(let e of n.anchors.keys())t.anchors.add(e.anchor);t.inFlow=!0,t.inStringifyKey=!0;let r=e.toString(t);if(!n.mapKeyWarned){let e=JSON.stringify(r);e.length>40&&(e=e.substring(0,36)+`..."`),BI(n.doc.options.logLevel,`Keys with collection values will be stringified due to JS Object restrictions: ${e}. Set mapAsMap: true to use object keys.`),n.mapKeyWarned=!0}return r}return JSON.stringify(t)}function YI(e,t,n){return new XI(pI(e,void 0,n),pI(t,void 0,n))}var XI=class e{constructor(e,t=null){Object.defineProperty(this,jF,{value:OF}),this.key=e,this.value=t}clone(t){let{key:n,value:r}=this;return zF(n)&&(n=n.clone(t)),zF(r)&&(r=r.clone(t)),new e(n,r)}toJSON(e,t){return qI(t,t?.mapAsMap?new Map:{},this)}toString(e,t,n){return e?.doc?zI(this,e,t,n):JSON.stringify(this)}};function ZI(e,t,n){return(t.inFlow??e.flow?$I:QI)(e,t,n)}function QI({comment:e,items:t},n,{blockItemPrefix:r,flowChars:i,itemIndent:a,onChompKeep:o,onComment:s}){let{indent:c,options:{commentString:l}}=n,u=Object.assign({},n,{indent:a,type:null}),d=!1,f=[];for(let e=0;e<t.length;++e){let i=t[e],o=null;if(zF(i))!d&&i.spaceBefore&&f.push(``),eL(n,f,i.commentBefore,d),i.comment&&(o=i.comment);else if(FF(i)){let e=zF(i.key)?i.key:null;e&&(!d&&e.spaceBefore&&f.push(``),eL(n,f,e.commentBefore,d))}d=!1;let s=RI(i,u,()=>o=null,()=>d=!0);o&&(s+=yI(s,a,l(o))),d&&o&&(d=!1),f.push(r+s)}let p;if(f.length===0)p=i.start+i.end;else{p=f[0];for(let e=1;e<f.length;++e){let t=f[e];p+=t?`\n${c}${t}`:`
`}}return e?(p+=`
`+vI(l(e),c),s&&s()):d&&o&&o(),p}function $I({items:e},t,{flowChars:n,itemIndent:r}){let{indent:i,indentStep:a,flowCollectionPadding:o,options:{commentString:s}}=t;r+=a;let c=Object.assign({},t,{indent:r,inFlow:!0,type:null}),l=!1,u=0,d=[];for(let n=0;n<e.length;++n){let i=e[n],a=null;if(zF(i))i.spaceBefore&&d.push(``),eL(t,d,i.commentBefore,!1),i.comment&&(a=i.comment);else if(FF(i)){let e=zF(i.key)?i.key:null;e&&(e.spaceBefore&&d.push(``),eL(t,d,e.commentBefore,!1),e.comment&&(l=!0));let n=zF(i.value)?i.value:null;n?(n.comment&&(a=n.comment),n.commentBefore&&(l=!0)):i.value==null&&e?.comment&&(a=e.comment)}a&&(l=!0);let o=RI(i,c,()=>a=null);l||(l=d.length>u||o.includes(`
`)),n<e.length-1?o+=`,`:t.options.trailingComma&&(t.options.lineWidth>0&&(l||(l=d.reduce((e,t)=>e+t.length+2,2)+(o.length+2)>t.options.lineWidth)),l&&(o+=`,`)),a&&(o+=yI(o,r,s(a))),d.push(o),u=d.length}let{start:f,end:p}=n;if(d.length===0)return f+p;if(!l){let e=d.reduce((e,t)=>e+t.length+2,2);l=t.options.lineWidth>0&&e>t.options.lineWidth}if(l){let e=f;for(let t of d)e+=t?`\n${a}${i}${t}`:`
`;return`${e}\n${i}${p}`}else return`${f}${o}${d.join(` `)}${o}${p}`}function eL({indent:e,options:{commentString:t}},n,r,i){if(r&&i&&(r=r.replace(/^\n+/,``)),r){let i=vI(t(r),e);n.push(i.trimStart())}}function tL(e,t){let n=IF(t)?t.value:t;for(let r of e)if(FF(r)&&(r.key===t||r.key===n||IF(r.key)&&r.key.value===n))return r}var nL=class extends gI{static get tagName(){return`tag:yaml.org,2002:map`}constructor(e){super(DF,e),this.items=[]}static from(e,t,n){let{keepUndefined:r,replacer:i}=n,a=new this(e),o=(e,o)=>{if(typeof i==`function`)o=i.call(t,e,o);else if(Array.isArray(i)&&!i.includes(e))return;(o!==void 0||r)&&a.items.push(YI(e,o,n))};if(t instanceof Map)for(let[e,n]of t)o(e,n);else if(t&&typeof t==`object`)for(let e of Object.keys(t))o(e,t[e]);return typeof e.sortMapEntries==`function`&&a.items.sort(e.sortMapEntries),a}add(e,t){let n;n=FF(e)?e:!e||typeof e!=`object`||!(`key`in e)?new XI(e,e?.value):new XI(e.key,e.value);let r=tL(this.items,n.key),i=this.schema?.sortMapEntries;if(r){if(!t)throw Error(`Key ${n.key} already set`);IF(r.value)&&lI(n.value)?r.value.value=n.value:r.value=n.value}else if(i){let e=this.items.findIndex(e=>i(n,e)<0);e===-1?this.items.push(n):this.items.splice(e,0,n)}else this.items.push(n)}delete(e){let t=tL(this.items,e);return t?this.items.splice(this.items.indexOf(t),1).length>0:!1}get(e,t){let n=tL(this.items,e)?.value;return(!t&&IF(n)?n.value:n)??void 0}has(e){return!!tL(this.items,e)}set(e,t){this.add(new XI(e,t),!0)}toJSON(e,t,n){let r=n?new n:t?.mapAsMap?new Map:{};t?.onCreate&&t.onCreate(r);for(let e of this.items)qI(t,r,e);return r}toString(e,t,n){if(!e)return JSON.stringify(this);for(let e of this.items)if(!FF(e))throw Error(`Map items must all be pairs; found ${JSON.stringify(e)} instead`);return!e.allNullValues&&this.hasAllNullValues(!1)&&(e=Object.assign({},e,{allNullValues:!0})),ZI(this,e,{blockItemPrefix:``,flowChars:{start:`{`,end:`}`},itemIndent:e.indent||``,onChompKeep:n,onComment:t})}},rL={collection:`map`,default:!0,nodeClass:nL,tag:`tag:yaml.org,2002:map`,resolve(e,t){return PF(e)||t(`Expected a mapping for this tag`),e},createNode:(e,t,n)=>nL.from(e,t,n)},iL=class extends gI{static get tagName(){return`tag:yaml.org,2002:seq`}constructor(e){super(AF,e),this.items=[]}add(e){this.items.push(e)}delete(e){let t=aL(e);return typeof t==`number`&&this.items.splice(t,1).length>0}get(e,t){let n=aL(e);if(typeof n!=`number`)return;let r=this.items[n];return!t&&IF(r)?r.value:r}has(e){let t=aL(e);return typeof t==`number`&&t<this.items.length}set(e,t){let n=aL(e);if(typeof n!=`number`)throw Error(`Expected a valid index, not ${e}.`);let r=this.items[n];IF(r)&&lI(t)?r.value=t:this.items[n]=t}toJSON(e,t){let n=[];t?.onCreate&&t.onCreate(n);let r=0;for(let e of this.items)n.push(aI(e,String(r++),t));return n}toString(e,t,n){return e?ZI(this,e,{blockItemPrefix:`- `,flowChars:{start:`[`,end:`]`},itemIndent:(e.indent||``)+` `,onChompKeep:n,onComment:t}):JSON.stringify(this)}static from(e,t,n){let{replacer:r}=n,i=new this(e);if(t&&Symbol.iterator in Object(t)){let e=0;for(let a of t){if(typeof r==`function`){let n=t instanceof Set?a:String(e++);a=r.call(t,n,a)}i.items.push(pI(a,void 0,n))}}return i}};function aL(e){let t=IF(e)?e.value:e;return t&&typeof t==`string`&&(t=Number(t)),typeof t==`number`&&Number.isInteger(t)&&t>=0?t:null}var oL={collection:`seq`,default:!0,nodeClass:iL,tag:`tag:yaml.org,2002:seq`,resolve(e,t){return LF(e)||t(`Expected a sequence for this tag`),e},createNode:(e,t,n)=>iL.from(e,t,n)},sL={identify:e=>typeof e==`string`,default:!0,tag:`tag:yaml.org,2002:str`,resolve:e=>e,stringify(e,t,n,r){return t=Object.assign({actualString:!0},t),PI(e,t,n,r)}},cL={identify:e=>e==null,createNode:()=>new uI(null),default:!0,tag:`tag:yaml.org,2002:null`,test:/^(?:~|[Nn]ull|NULL)?$/,resolve:()=>new uI(null),stringify:({source:e},t)=>typeof e==`string`&&cL.test.test(e)?e:t.options.nullStr},lL={identify:e=>typeof e==`boolean`,default:!0,tag:`tag:yaml.org,2002:bool`,test:/^(?:[Tt]rue|TRUE|[Ff]alse|FALSE)$/,resolve:e=>new uI(e[0]===`t`||e[0]===`T`),stringify({source:e,value:t},n){return e&&lL.test.test(e)&&t===(e[0]===`t`||e[0]===`T`)?e:t?n.options.trueStr:n.options.falseStr}};function uL({format:e,minFractionDigits:t,tag:n,value:r}){if(typeof r==`bigint`)return String(r);let i=typeof r==`number`?r:Number(r);if(!isFinite(i))return isNaN(i)?`.nan`:i<0?`-.inf`:`.inf`;let a=Object.is(r,-0)?`-0`:JSON.stringify(r);if(!e&&t&&(!n||n===`tag:yaml.org,2002:float`)&&/^-?\d/.test(a)&&!a.includes(`e`)){let e=a.indexOf(`.`);e<0&&(e=a.length,a+=`.`);let n=t-(a.length-e-1);for(;n-->0;)a+=`0`}return a}var dL={identify:e=>typeof e==`number`,default:!0,tag:`tag:yaml.org,2002:float`,test:/^(?:[-+]?\.(?:inf|Inf|INF)|\.nan|\.NaN|\.NAN)$/,resolve:e=>e.slice(-3).toLowerCase()===`nan`?NaN:e[0]===`-`?-1/0:1/0,stringify:uL},fL={identify:e=>typeof e==`number`,default:!0,tag:`tag:yaml.org,2002:float`,format:`EXP`,test:/^[-+]?(?:\.[0-9]+|[0-9]+(?:\.[0-9]*)?)[eE][-+]?[0-9]+$/,resolve:e=>parseFloat(e),stringify(e){let t=Number(e.value);return isFinite(t)?t.toExponential():uL(e)}},pL={identify:e=>typeof e==`number`,default:!0,tag:`tag:yaml.org,2002:float`,test:/^[-+]?(?:\.[0-9]+|[0-9]+\.[0-9]*)$/,resolve(e){let t=new uI(parseFloat(e)),n=e.indexOf(`.`);return n!==-1&&e[e.length-1]===`0`&&(t.minFractionDigits=e.length-n-1),t},stringify:uL},mL=e=>typeof e==`bigint`||Number.isInteger(e),hL=(e,t,n,{intAsBigInt:r})=>r?BigInt(e):parseInt(e.substring(t),n);function gL(e,t,n){let{value:r}=e;return mL(r)&&r>=0?n+r.toString(t):uL(e)}var _L={identify:e=>mL(e)&&e>=0,default:!0,tag:`tag:yaml.org,2002:int`,format:`OCT`,test:/^0o[0-7]+$/,resolve:(e,t,n)=>hL(e,2,8,n),stringify:e=>gL(e,8,`0o`)},vL={identify:mL,default:!0,tag:`tag:yaml.org,2002:int`,test:/^[-+]?[0-9]+$/,resolve:(e,t,n)=>hL(e,0,10,n),stringify:uL},yL={identify:e=>mL(e)&&e>=0,default:!0,tag:`tag:yaml.org,2002:int`,format:`HEX`,test:/^0x[0-9a-fA-F]+$/,resolve:(e,t,n)=>hL(e,2,16,n),stringify:e=>gL(e,16,`0x`)},bL=[rL,oL,sL,cL,lL,_L,vL,yL,dL,fL,pL];function xL(e){return typeof e==`bigint`||Number.isInteger(e)}var SL=({value:e})=>JSON.stringify(e),Rte=[{identify:e=>typeof e==`string`,default:!0,tag:`tag:yaml.org,2002:str`,resolve:e=>e,stringify:SL},{identify:e=>e==null,createNode:()=>new uI(null),default:!0,tag:`tag:yaml.org,2002:null`,test:/^null$/,resolve:()=>null,stringify:SL},{identify:e=>typeof e==`boolean`,default:!0,tag:`tag:yaml.org,2002:bool`,test:/^true$|^false$/,resolve:e=>e===`true`,stringify:SL},{identify:xL,default:!0,tag:`tag:yaml.org,2002:int`,test:/^-?(?:0|[1-9][0-9]*)$/,resolve:(e,t,{intAsBigInt:n})=>n?BigInt(e):parseInt(e,10),stringify:({value:e})=>xL(e)?e.toString():JSON.stringify(e)},{identify:e=>typeof e==`number`,default:!0,tag:`tag:yaml.org,2002:float`,test:/^-?(?:0|[1-9][0-9]*)(?:\.[0-9]*)?(?:[eE][-+]?[0-9]+)?$/,resolve:e=>parseFloat(e),stringify:SL}],zte=[rL,oL].concat(Rte,{default:!0,tag:``,test:/^/,resolve(e,t){return t(`Unresolved plain scalar ${JSON.stringify(e)}`),e}}),CL={identify:e=>e instanceof Uint8Array,default:!1,tag:`tag:yaml.org,2002:binary`,resolve(e,t){if(typeof atob==`function`){let t=atob(e.replace(/[\n\r]/g,``)),n=new Uint8Array(t.length);for(let e=0;e<t.length;++e)n[e]=t.charCodeAt(e);return n}else return t(`This environment does not support reading binary tags; either Buffer or atob is required`),e},stringify({comment:e,type:t,value:n},r,i,a){if(!n)return``;let o=n,s;if(typeof btoa==`function`){let e=``;for(let t=0;t<o.length;++t)e+=String.fromCharCode(o[t]);s=btoa(e)}else throw Error(`This environment does not support writing binary tags; either Buffer or btoa is required`);if(t??(t=uI.BLOCK_LITERAL),t!==uI.QUOTE_DOUBLE){let e=Math.max(r.options.lineWidth-r.indent.length,r.options.minContentWidth),n=Math.ceil(s.length/e),i=Array(n);for(let t=0,r=0;t<n;++t,r+=e)i[t]=s.substr(r,e);s=i.join(t===uI.BLOCK_LITERAL?`
`:` `)}return PI({comment:e,type:t,value:s},r,i,a)}};function wL(e,t){if(LF(e))for(let n=0;n<e.items.length;++n){let r=e.items[n];if(!FF(r)){if(PF(r)){r.items.length>1&&t(`Each pair must have its own sequence indicator`);let e=r.items[0]||new XI(new uI(null));if(r.commentBefore&&(e.key.commentBefore=e.key.commentBefore?`${r.commentBefore}\n${e.key.commentBefore}`:r.commentBefore),r.comment){let t=e.value??e.key;t.comment=t.comment?`${r.comment}\n${t.comment}`:r.comment}r=e}e.items[n]=FF(r)?r:new XI(r)}}else t(`Expected a sequence for this tag`);return e}function TL(e,t,n){let{replacer:r}=n,i=new iL(e);i.tag=`tag:yaml.org,2002:pairs`;let a=0;if(t&&Symbol.iterator in Object(t))for(let e of t){typeof r==`function`&&(e=r.call(t,String(a++),e));let o,s;if(Array.isArray(e))if(e.length===2)o=e[0],s=e[1];else throw TypeError(`Expected [key, value] tuple: ${e}`);else if(e&&e instanceof Object){let t=Object.keys(e);if(t.length===1)o=t[0],s=e[o];else throw TypeError(`Expected tuple with one key, not ${t.length} keys`)}else o=e;i.items.push(YI(o,s,n))}return i}var EL={collection:`seq`,default:!1,tag:`tag:yaml.org,2002:pairs`,resolve:wL,createNode:TL},DL=class e extends iL{constructor(){super(),this.add=nL.prototype.add.bind(this),this.delete=nL.prototype.delete.bind(this),this.get=nL.prototype.get.bind(this),this.has=nL.prototype.has.bind(this),this.set=nL.prototype.set.bind(this),this.tag=e.tag}toJSON(e,t){if(!t)return super.toJSON(e);let n=new Map;t?.onCreate&&t.onCreate(n);for(let e of this.items){let r,i;if(FF(e)?(r=aI(e.key,``,t),i=aI(e.value,r,t)):r=aI(e,``,t),n.has(r))throw Error(`Ordered maps must not include duplicate keys`);n.set(r,i)}return n}static from(e,t,n){let r=TL(e,t,n),i=new this;return i.items=r.items,i}};DL.tag=`tag:yaml.org,2002:omap`;var OL={collection:`seq`,identify:e=>e instanceof Map,nodeClass:DL,default:!1,tag:`tag:yaml.org,2002:omap`,resolve(e,t){let n=wL(e,t),r=[];for(let{key:e}of n.items)IF(e)&&(r.includes(e.value)?t(`Ordered maps must not include duplicate keys: ${e.value}`):r.push(e.value));return Object.assign(new DL,n)},createNode:(e,t,n)=>DL.from(e,t,n)};function kL({value:e,source:t},n){return t&&(e?AL:jL).test.test(t)?t:e?n.options.trueStr:n.options.falseStr}var AL={identify:e=>e===!0,default:!0,tag:`tag:yaml.org,2002:bool`,test:/^(?:Y|y|[Yy]es|YES|[Tt]rue|TRUE|[Oo]n|ON)$/,resolve:()=>new uI(!0),stringify:kL},jL={identify:e=>e===!1,default:!0,tag:`tag:yaml.org,2002:bool`,test:/^(?:N|n|[Nn]o|NO|[Ff]alse|FALSE|[Oo]ff|OFF)$/,resolve:()=>new uI(!1),stringify:kL},Bte={identify:e=>typeof e==`number`,default:!0,tag:`tag:yaml.org,2002:float`,test:/^(?:[-+]?\.(?:inf|Inf|INF)|\.nan|\.NaN|\.NAN)$/,resolve:e=>e.slice(-3).toLowerCase()===`nan`?NaN:e[0]===`-`?-1/0:1/0,stringify:uL},Vte={identify:e=>typeof e==`number`,default:!0,tag:`tag:yaml.org,2002:float`,format:`EXP`,test:/^[-+]?(?:[0-9][0-9_]*)?(?:\.[0-9_]*)?[eE][-+]?[0-9]+$/,resolve:e=>parseFloat(e.replace(/_/g,``)),stringify(e){let t=Number(e.value);return isFinite(t)?t.toExponential():uL(e)}},Hte={identify:e=>typeof e==`number`,default:!0,tag:`tag:yaml.org,2002:float`,test:/^[-+]?(?:[0-9][0-9_]*)?\.[0-9_]*$/,resolve(e){let t=new uI(parseFloat(e.replace(/_/g,``))),n=e.indexOf(`.`);if(n!==-1){let r=e.substring(n+1).replace(/_/g,``);r[r.length-1]===`0`&&(t.minFractionDigits=r.length)}return t},stringify:uL},ML=e=>typeof e==`bigint`||Number.isInteger(e);function NL(e,t,n,{intAsBigInt:r}){let i=e[0];if((i===`-`||i===`+`)&&(t+=1),e=e.substring(t).replace(/_/g,``),r){switch(n){case 2:e=`0b${e}`;break;case 8:e=`0o${e}`;break;case 16:e=`0x${e}`;break}let t=BigInt(e);return i===`-`?BigInt(-1)*t:t}let a=parseInt(e,n);return i===`-`?-1*a:a}function PL(e,t,n){let{value:r}=e;if(ML(r)){let e=r.toString(t);return r<0?`-`+n+e.substr(1):n+e}return uL(e)}var Ute={identify:ML,default:!0,tag:`tag:yaml.org,2002:int`,format:`BIN`,test:/^[-+]?0b[0-1_]+$/,resolve:(e,t,n)=>NL(e,2,2,n),stringify:e=>PL(e,2,`0b`)},Wte={identify:ML,default:!0,tag:`tag:yaml.org,2002:int`,format:`OCT`,test:/^[-+]?0[0-7_]+$/,resolve:(e,t,n)=>NL(e,1,8,n),stringify:e=>PL(e,8,`0`)},Gte={identify:ML,default:!0,tag:`tag:yaml.org,2002:int`,test:/^[-+]?[0-9][0-9_]*$/,resolve:(e,t,n)=>NL(e,0,10,n),stringify:uL},Kte={identify:ML,default:!0,tag:`tag:yaml.org,2002:int`,format:`HEX`,test:/^[-+]?0x[0-9a-fA-F_]+$/,resolve:(e,t,n)=>NL(e,2,16,n),stringify:e=>PL(e,16,`0x`)},FL=class e extends nL{constructor(t){super(t),this.tag=e.tag}add(e){let t;t=FF(e)?e:e&&typeof e==`object`&&`key`in e&&`value`in e&&e.value===null?new XI(e.key,null):new XI(e,null),tL(this.items,t.key)||this.items.push(t)}get(e,t){let n=tL(this.items,e);return!t&&FF(n)?IF(n.key)?n.key.value:n.key:n}set(e,t){if(typeof t!=`boolean`)throw Error(`Expected boolean value for set(key, value) in a YAML set, not ${typeof t}`);let n=tL(this.items,e);n&&!t?this.items.splice(this.items.indexOf(n),1):!n&&t&&this.items.push(new XI(e))}toJSON(e,t){return super.toJSON(e,t,Set)}toString(e,t,n){if(!e)return JSON.stringify(this);if(this.hasAllNullValues(!0))return super.toString(Object.assign({},e,{allNullValues:!0}),t,n);throw Error(`Set items must all have null values`)}static from(e,t,n){let{replacer:r}=n,i=new this(e);if(t&&Symbol.iterator in Object(t))for(let e of t)typeof r==`function`&&(e=r.call(t,e,e)),i.items.push(YI(e,null,n));return i}};FL.tag=`tag:yaml.org,2002:set`;var IL={collection:`map`,identify:e=>e instanceof Set,nodeClass:FL,default:!1,tag:`tag:yaml.org,2002:set`,createNode:(e,t,n)=>FL.from(e,t,n),resolve(e,t){if(PF(e)){if(e.hasAllNullValues(!0))return Object.assign(new FL,e);t(`Set items must all have null values`)}else t(`Expected a mapping for this tag`);return e}};function LL(e,t){let n=e[0],r=n===`-`||n===`+`?e.substring(1):e,i=e=>t?BigInt(e):Number(e),a=r.replace(/_/g,``).split(`:`).reduce((e,t)=>e*i(60)+i(t),i(0));return n===`-`?i(-1)*a:a}function RL(e){let{value:t}=e,n=e=>e;if(typeof t==`bigint`)n=e=>BigInt(e);else if(isNaN(t)||!isFinite(t))return uL(e);let r=``;t<0&&(r=`-`,t*=n(-1));let i=n(60),a=[t%i];return t<60?a.unshift(0):(t=(t-a[0])/i,a.unshift(t%i),t>=60&&(t=(t-a[0])/i,a.unshift(t))),r+a.map(e=>String(e).padStart(2,`0`)).join(`:`).replace(/000000\d*$/,``)}var zL={identify:e=>typeof e==`bigint`||Number.isInteger(e),default:!0,tag:`tag:yaml.org,2002:int`,format:`TIME`,test:/^[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+$/,resolve:(e,t,{intAsBigInt:n})=>LL(e,n),stringify:RL},BL={identify:e=>typeof e==`number`,default:!0,tag:`tag:yaml.org,2002:float`,format:`TIME`,test:/^[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+\.[0-9_]*$/,resolve:e=>LL(e,!1),stringify:RL},VL={identify:e=>e instanceof Date,default:!0,tag:`tag:yaml.org,2002:timestamp`,test:RegExp(`^([0-9]{4})-([0-9]{1,2})-([0-9]{1,2})(?:(?:t|T|[ \\t]+)([0-9]{1,2}):([0-9]{1,2}):([0-9]{1,2}(\\.[0-9]+)?)(?:[ \\t]*(Z|[-+][012]?[0-9](?::[0-9]{2})?))?)?$`),resolve(e){let t=e.match(VL.test);if(!t)throw Error(`!!timestamp expects a date, starting with yyyy-mm-dd`);let[,n,r,i,a,o,s]=t.map(Number),c=t[7]?Number((t[7]+`00`).substr(1,3)):0,l=Date.UTC(n,r-1,i,a||0,o||0,s||0,c),u=t[8];if(u&&u!==`Z`){let e=LL(u,!1);Math.abs(e)<30&&(e*=60),l-=6e4*e}return new Date(l)},stringify:({value:e})=>e?.toISOString().replace(/(T00:00:00)?\.000Z$/,``)??``},HL=[rL,oL,sL,cL,AL,jL,Ute,Wte,Gte,Kte,Bte,Vte,Hte,CL,HI,OL,EL,IL,zL,BL,VL],UL=new Map([[`core`,bL],[`failsafe`,[rL,oL,sL]],[`json`,zte],[`yaml11`,HL],[`yaml-1.1`,HL]]),WL={binary:CL,bool:lL,float:pL,floatExp:fL,floatNaN:dL,floatTime:BL,int:vL,intHex:yL,intOct:_L,intTime:zL,map:rL,merge:HI,null:cL,omap:OL,pairs:EL,seq:oL,set:IL,timestamp:VL},qte={"tag:yaml.org,2002:binary":CL,"tag:yaml.org,2002:merge":HI,"tag:yaml.org,2002:omap":OL,"tag:yaml.org,2002:pairs":EL,"tag:yaml.org,2002:set":IL,"tag:yaml.org,2002:timestamp":VL};function GL(e,t,n){let r=UL.get(t);if(r&&!e)return n&&!r.includes(HI)?r.concat(HI):r.slice();let i=r;if(!i)if(Array.isArray(e))i=[];else{let e=Array.from(UL.keys()).filter(e=>e!==`yaml11`).map(e=>JSON.stringify(e)).join(`, `);throw Error(`Unknown schema "${t}"; use one of ${e} or define customTags array`)}if(Array.isArray(e))for(let t of e)i=i.concat(t);else typeof e==`function`&&(i=e(i.slice()));return n&&(i=i.concat(HI)),i.reduce((e,t)=>{let n=typeof t==`string`?WL[t]:t;if(!n){let e=JSON.stringify(t),n=Object.keys(WL).map(e=>JSON.stringify(e)).join(`, `);throw Error(`Unknown custom tag ${e}; use one of ${n}`)}return e.includes(n)||e.push(n),e},[])}var Jte=(e,t)=>e.key<t.key?-1:+(e.key>t.key),Yte=class e{constructor({compat:e,customTags:t,merge:n,resolveKnownTags:r,schema:i,sortMapEntries:a,toStringDefaults:o}){this.compat=Array.isArray(e)?GL(e,`compat`):e?GL(null,e):null,this.name=typeof i==`string`&&i||`core`,this.knownTags=r?qte:{},this.tags=GL(t,this.name,n),this.toStringOptions=o??null,Object.defineProperty(this,DF,{value:rL}),Object.defineProperty(this,kF,{value:sL}),Object.defineProperty(this,AF,{value:oL}),this.sortMapEntries=typeof a==`function`?a:a===!0?Jte:null}clone(){let t=Object.create(e.prototype,Object.getOwnPropertyDescriptors(this));return t.tags=this.tags.slice(),t}};function Xte(e,t){let n=[],r=t.directives===!0;if(t.directives!==!1&&e.directives){let t=e.directives.toString(e);t?(n.push(t),r=!0):e.directives.docStart&&(r=!0)}r&&n.push(`---`);let i=FI(e,t),{commentString:a}=i.options;if(e.commentBefore){n.length!==1&&n.unshift(``);let t=a(e.commentBefore);n.unshift(vI(t,``))}let o=!1,s=null;if(e.contents){if(zF(e.contents)){if(e.contents.spaceBefore&&r&&n.push(``),e.contents.commentBefore){let t=a(e.contents.commentBefore);n.push(vI(t,``))}i.forceBlockIndent=!!e.comment,s=e.contents.comment}let t=s?void 0:()=>o=!0,c=RI(e.contents,i,()=>s=null,t);s&&(c+=yI(c,``,a(s))),(c[0]===`|`||c[0]===`>`)&&n[n.length-1]===`---`?n[n.length-1]=`--- ${c}`:n.push(c)}else n.push(RI(e.contents,i));if(e.directives?.docEnd)if(e.comment){let t=a(e.comment);t.includes(`
`)?(n.push(`...`),n.push(vI(t,``))):n.push(`... ${t}`)}else n.push(`...`);else{let t=e.comment;t&&o&&(t=t.replace(/^\n+/,``)),t&&((!o||s)&&n[n.length-1]!==``&&n.push(``),n.push(vI(a(t),``)))}return n.join(`
`)+`
`}var KL=class e{constructor(e,t,n){this.commentBefore=null,this.comment=null,this.errors=[],this.warnings=[],Object.defineProperty(this,jF,{value:EF});let r=null;typeof t==`function`||Array.isArray(t)?r=t:n===void 0&&t&&(n=t,t=void 0);let i=Object.assign({intAsBigInt:!1,keepSourceTokens:!1,logLevel:`warn`,prettyErrors:!0,strict:!0,stringKeys:!1,uniqueKeys:!0,version:`1.2`},n);this.options=i;let{version:a}=i;n?._directives?(this.directives=n._directives.atDocument(),this.directives.yaml.explicit&&(a=this.directives.yaml.version)):this.directives=new $F({version:a}),this.setSchema(a,n),this.contents=e===void 0?null:this.createNode(e,r,n)}clone(){let t=Object.create(e.prototype,{[jF]:{value:EF}});return t.commentBefore=this.commentBefore,t.comment=this.comment,t.errors=this.errors.slice(),t.warnings=this.warnings.slice(),t.options=Object.assign({},this.options),this.directives&&(t.directives=this.directives.clone()),t.schema=this.schema.clone(),t.contents=zF(this.contents)?this.contents.clone(t.schema):this.contents,this.range&&(t.range=this.range.slice()),t}add(e){qL(this.contents)&&this.contents.add(e)}addIn(e,t){qL(this.contents)&&this.contents.addIn(e,t)}createAlias(e,t){if(!e.anchor){let n=tI(this);e.anchor=!t||n.has(t)?nI(t||`a`,n):t}return new sI(e.anchor)}createNode(e,t,n){let r;if(typeof t==`function`)e=t.call({"":e},``,e),r=t;else if(Array.isArray(t)){let e=t.filter(e=>typeof e==`number`||e instanceof String||e instanceof Number).map(String);e.length>0&&(t=t.concat(e)),r=t}else n===void 0&&t&&(n=t,t=void 0);let{aliasDuplicateObjects:i,anchorPrefix:a,flow:o,keepUndefined:s,onTagObj:c,tag:l}=n??{},{onAnchor:u,setAnchors:d,sourceObjects:f}=rI(this,a||`a`),p={aliasDuplicateObjects:i??!0,keepUndefined:s??!1,onAnchor:u,onTagObj:c,replacer:r,schema:this.schema,sourceObjects:f},m=pI(e,l,p);return o&&RF(m)&&(m.flow=!0),d(),m}createPair(e,t,n={}){return new XI(this.createNode(e,null,n),this.createNode(t,null,n))}delete(e){return qL(this.contents)?this.contents.delete(e):!1}deleteIn(e){return hI(e)?this.contents==null?!1:(this.contents=null,!0):qL(this.contents)?this.contents.deleteIn(e):!1}get(e,t){return RF(this.contents)?this.contents.get(e,t):void 0}getIn(e,t){return hI(e)?!t&&IF(this.contents)?this.contents.value:this.contents:RF(this.contents)?this.contents.getIn(e,t):void 0}has(e){return RF(this.contents)?this.contents.has(e):!1}hasIn(e){return hI(e)?this.contents!==void 0:RF(this.contents)?this.contents.hasIn(e):!1}set(e,t){this.contents==null?this.contents=mI(this.schema,[e],t):qL(this.contents)&&this.contents.set(e,t)}setIn(e,t){hI(e)?this.contents=t:this.contents==null?this.contents=mI(this.schema,Array.from(e),t):qL(this.contents)&&this.contents.setIn(e,t)}setSchema(e,t={}){typeof e==`number`&&(e=String(e));let n;switch(e){case`1.1`:this.directives?this.directives.yaml.version=`1.1`:this.directives=new $F({version:`1.1`}),n={resolveKnownTags:!1,schema:`yaml-1.1`};break;case`1.2`:case`next`:this.directives?this.directives.yaml.version=e:this.directives=new $F({version:e}),n={resolveKnownTags:!0,schema:`core`};break;case null:this.directives&&delete this.directives,n=null;break;default:{let t=JSON.stringify(e);throw Error(`Expected '1.1', '1.2' or null as first argument, but found: ${t}`)}}if(t.schema instanceof Object)this.schema=t.schema;else if(n)this.schema=new Yte(Object.assign(n,t));else throw Error(`With a null YAML version, the { schema: Schema } option is required`)}toJS({json:e,jsonArg:t,mapAsMap:n,maxAliasCount:r,onAnchor:i,reviver:a}={}){let o={anchors:new Map,doc:this,keep:!e,mapAsMap:n===!0,mapKeyWarned:!1,maxAliasCount:typeof r==`number`?r:100},s=aI(this.contents,t??``,o);if(typeof i==`function`)for(let{count:e,res:t}of o.anchors.values())i(t,e);return typeof a==`function`?iI(a,{"":s},``,s):s}toJSON(e,t){return this.toJS({json:!0,jsonArg:e,mapAsMap:!1,onAnchor:t})}toString(e={}){if(this.errors.length>0)throw Error(`Document with errors cannot be stringified`);if(`indent`in e&&(!Number.isInteger(e.indent)||Number(e.indent)<=0)){let t=JSON.stringify(e.indent);throw Error(`"indent" option must be a positive integer, not ${t}`)}return Xte(this,e)}};function qL(e){if(RF(e))return!0;throw Error(`Expected a YAML collection as document contents`)}var JL=class extends Error{constructor(e,t,n,r){super(),this.name=e,this.code=n,this.message=r,this.pos=t}},YL=class extends JL{constructor(e,t,n){super(`YAMLParseError`,e,t,n)}},XL=class extends JL{constructor(e,t,n){super(`YAMLWarning`,e,t,n)}},ZL=(e,t)=>n=>{if(n.pos[0]===-1)return;n.linePos=n.pos.map(e=>t.linePos(e));let{line:r,col:i}=n.linePos[0];n.message+=` at line ${r}, column ${i}`;let a=i-1,o=e.substring(t.lineStarts[r-1],t.lineStarts[r]).replace(/[\n\r]+$/,``);if(a>=60&&o.length>80){let e=Math.min(a-39,o.length-79);o=`…`+o.substring(e),a-=e-1}if(o.length>80&&(o=o.substring(0,79)+`…`),r>1&&/^ *$/.test(o.substring(0,a))){let n=e.substring(t.lineStarts[r-2],t.lineStarts[r-1]);n.length>80&&(n=n.substring(0,79)+`…
`),o=n+o}if(/[^ ]/.test(o)){let e=1,t=n.linePos[1];t?.line===r&&t.col>i&&(e=Math.max(1,Math.min(t.col-i,80-a)));let s=` `.repeat(a)+`^`.repeat(e);n.message+=`:\n\n${o}\n${s}\n`}};function QL(e,{flow:t,indicator:n,next:r,offset:i,onError:a,parentIndent:o,startOnNewline:s}){let c=!1,l=s,u=s,d=``,f=``,p=!1,m=!1,h=null,g=null,_=null,v=null,y=null,b=null,x=null;for(let i of e)switch(m&&(i.type!==`space`&&i.type!==`newline`&&i.type!==`comma`&&a(i.offset,`MISSING_CHAR`,`Tags and anchors must be separated from the next token by white space`),m=!1),h&&(l&&i.type!==`comment`&&i.type!==`newline`&&a(h,`TAB_AS_INDENT`,`Tabs are not allowed as indentation`),h=null),i.type){case`space`:!t&&(n!==`doc-start`||r?.type!==`flow-collection`)&&i.source.includes(` `)&&(h=i),u=!0;break;case`comment`:{u||a(i,`MISSING_CHAR`,`Comments must be separated from other tokens by white space characters`);let e=i.source.substring(1)||` `;d?d+=f+e:d=e,f=``,l=!1;break}case`newline`:l?d?d+=i.source:(!b||n!==`seq-item-ind`)&&(c=!0):f+=i.source,l=!0,p=!0,(g||_)&&(v=i),u=!0;break;case`anchor`:g&&a(i,`MULTIPLE_ANCHORS`,`A node can have at most one anchor`),i.source.endsWith(`:`)&&a(i.offset+i.source.length-1,`BAD_ALIAS`,`Anchor ending in : is ambiguous`,!0),g=i,x??(x=i.offset),l=!1,u=!1,m=!0;break;case`tag`:_&&a(i,`MULTIPLE_TAGS`,`A node can have at most one tag`),_=i,x??(x=i.offset),l=!1,u=!1,m=!0;break;case n:(g||_)&&a(i,`BAD_PROP_ORDER`,`Anchors and tags must be after the ${i.source} indicator`),b&&a(i,`UNEXPECTED_TOKEN`,`Unexpected ${i.source} in ${t??`collection`}`),b=i,l=n===`seq-item-ind`||n===`explicit-key-ind`,u=!1;break;case`comma`:if(t){y&&a(i,`UNEXPECTED_TOKEN`,`Unexpected , in ${t}`),y=i,l=!1,u=!1;break}default:a(i,`UNEXPECTED_TOKEN`,`Unexpected ${i.type} token`),l=!1,u=!1}let S=e[e.length-1],C=S?S.offset+S.source.length:i;return m&&r&&r.type!==`space`&&r.type!==`newline`&&r.type!==`comma`&&(r.type!==`scalar`||r.source!==``)&&a(r.offset,`MISSING_CHAR`,`Tags and anchors must be separated from the next token by white space`),h&&(l&&h.indent<=o||r?.type===`block-map`||r?.type===`block-seq`)&&a(h,`TAB_AS_INDENT`,`Tabs are not allowed as indentation`),{comma:y,found:b,spaceBefore:c,comment:d,hasNewline:p,anchor:g,tag:_,newlineAfterProp:v,end:C,start:x??C}}function $L(e){if(!e)return null;switch(e.type){case`alias`:case`scalar`:case`double-quoted-scalar`:case`single-quoted-scalar`:if(e.source.includes(`
`))return!0;if(e.end){for(let t of e.end)if(t.type===`newline`)return!0}return!1;case`flow-collection`:for(let t of e.items){for(let e of t.start)if(e.type===`newline`)return!0;if(t.sep){for(let e of t.sep)if(e.type===`newline`)return!0}if($L(t.key)||$L(t.value))return!0}return!1;default:return!0}}function eR(e,t,n){if(t?.type===`flow-collection`){let r=t.end[0];r.indent===e&&(r.source===`]`||r.source===`}`)&&$L(t)&&n(r,`BAD_INDENT`,`Flow end indicator should be more indented than parent`,!0)}}function tR(e,t,n){let{uniqueKeys:r}=e.options;if(r===!1)return!1;let i=typeof r==`function`?r:(e,t)=>e===t||IF(e)&&IF(t)&&e.value===t.value;return t.some(e=>i(e.key,n))}var nR=`All mapping items must start at the same column`;function rR({composeNode:e,composeEmptyNode:t},n,r,i,a){let o=new((a?.nodeClass)??nL)(n.schema);n.atRoot&&(n.atRoot=!1);let s=r.offset,c=null;for(let a of r.items){let{start:l,key:u,sep:d,value:f}=a,p=QL(l,{indicator:`explicit-key-ind`,next:u??d?.[0],offset:s,onError:i,parentIndent:r.indent,startOnNewline:!0}),m=!p.found;if(m){if(u&&(u.type===`block-seq`?i(s,`BLOCK_AS_IMPLICIT_KEY`,`A block sequence may not be used as an implicit map key`):`indent`in u&&u.indent!==r.indent&&i(s,`BAD_INDENT`,nR)),!p.anchor&&!p.tag&&!d){c=p.end,p.comment&&(o.comment?o.comment+=`
`+p.comment:o.comment=p.comment);continue}(p.newlineAfterProp||$L(u))&&i(u??l[l.length-1],`MULTILINE_IMPLICIT_KEY`,`Implicit keys need to be on a single line`)}else p.found?.indent!==r.indent&&i(s,`BAD_INDENT`,nR);n.atKey=!0;let h=p.end,g=u?e(n,u,p,i):t(n,h,l,null,p,i);n.schema.compat&&eR(r.indent,u,i),n.atKey=!1,tR(n,o.items,g)&&i(h,`DUPLICATE_KEY`,`Map keys must be unique`);let _=QL(d??[],{indicator:`map-value-ind`,next:f,offset:g.range[2],onError:i,parentIndent:r.indent,startOnNewline:!u||u.type===`block-scalar`});if(s=_.end,_.found){m&&(f?.type===`block-map`&&!_.hasNewline&&i(s,`BLOCK_AS_IMPLICIT_KEY`,`Nested mappings are not allowed in compact mappings`),n.options.strict&&p.start<_.found.offset-1024&&i(g.range,`KEY_OVER_1024_CHARS`,`The : indicator must be at most 1024 chars after the start of an implicit block mapping key`));let c=f?e(n,f,_,i):t(n,s,d,null,_,i);n.schema.compat&&eR(r.indent,f,i),s=c.range[2];let l=new XI(g,c);n.options.keepSourceTokens&&(l.srcToken=a),o.items.push(l)}else{m&&i(g.range,`MISSING_CHAR`,`Implicit map keys need to be followed by map values`),_.comment&&(g.comment?g.comment+=`
`+_.comment:g.comment=_.comment);let e=new XI(g);n.options.keepSourceTokens&&(e.srcToken=a),o.items.push(e)}}return c&&c<s&&i(c,`IMPOSSIBLE`,`Map comment with trailing content`),o.range=[r.offset,s,c??s],o}function iR({composeNode:e,composeEmptyNode:t},n,r,i,a){let o=new((a?.nodeClass)??iL)(n.schema);n.atRoot&&(n.atRoot=!1),n.atKey&&(n.atKey=!1);let s=r.offset,c=null;for(let{start:a,value:l}of r.items){let u=QL(a,{indicator:`seq-item-ind`,next:l,offset:s,onError:i,parentIndent:r.indent,startOnNewline:!0});if(!u.found)if(u.anchor||u.tag||l)l?.type===`block-seq`?i(u.end,`BAD_INDENT`,`All sequence items must start at the same column`):i(s,`MISSING_CHAR`,`Sequence item without - indicator`);else{c=u.end,u.comment&&(o.comment=u.comment);continue}let d=l?e(n,l,u,i):t(n,u.end,a,null,u,i);n.schema.compat&&eR(r.indent,l,i),s=d.range[2],o.items.push(d)}return o.range=[r.offset,s,c??s],o}function aR(e,t,n,r){let i=``;if(e){let a=!1,o=``;for(let s of e){let{source:e,type:c}=s;switch(c){case`space`:a=!0;break;case`comment`:{n&&!a&&r(s,`MISSING_CHAR`,`Comments must be separated from other tokens by white space characters`);let t=e.substring(1)||` `;i?i+=o+t:i=t,o=``;break}case`newline`:i&&(o+=e),a=!0;break;default:r(s,`UNEXPECTED_TOKEN`,`Unexpected ${c} at node end`)}t+=e.length}}return{comment:i,offset:t}}var oR=`Block collections are not allowed within flow collections`,sR=e=>e&&(e.type===`block-map`||e.type===`block-seq`);function cR({composeNode:e,composeEmptyNode:t},n,r,i,a){let o=r.start.source===`{`,s=o?`flow map`:`flow sequence`,c=new((a?.nodeClass)??(o?nL:iL))(n.schema);c.flow=!0;let l=n.atRoot;l&&(n.atRoot=!1),n.atKey&&(n.atKey=!1);let u=r.offset+r.start.source.length;for(let a=0;a<r.items.length;++a){let l=r.items[a],{start:d,key:f,sep:p,value:m}=l,h=QL(d,{flow:s,indicator:`explicit-key-ind`,next:f??p?.[0],offset:u,onError:i,parentIndent:r.indent,startOnNewline:!1});if(!h.found){if(!h.anchor&&!h.tag&&!p&&!m){a===0&&h.comma?i(h.comma,`UNEXPECTED_TOKEN`,`Unexpected , in ${s}`):a<r.items.length-1&&i(h.start,`UNEXPECTED_TOKEN`,`Unexpected empty item in ${s}`),h.comment&&(c.comment?c.comment+=`
`+h.comment:c.comment=h.comment),u=h.end;continue}!o&&n.options.strict&&$L(f)&&i(f,`MULTILINE_IMPLICIT_KEY`,`Implicit keys of flow sequence pairs need to be on a single line`)}if(a===0)h.comma&&i(h.comma,`UNEXPECTED_TOKEN`,`Unexpected , in ${s}`);else if(h.comma||i(h.start,`MISSING_CHAR`,`Missing , between ${s} items`),h.comment){let e=``;loop:for(let t of d)switch(t.type){case`comma`:case`space`:break;case`comment`:e=t.source.substring(1);break loop;default:break loop}if(e){let t=c.items[c.items.length-1];FF(t)&&(t=t.value??t.key),t.comment?t.comment+=`
`+e:t.comment=e,h.comment=h.comment.substring(e.length+1)}}if(!o&&!p&&!h.found){let r=m?e(n,m,h,i):t(n,h.end,p,null,h,i);c.items.push(r),u=r.range[2],sR(m)&&i(r.range,`BLOCK_IN_FLOW`,oR)}else{n.atKey=!0;let a=h.end,g=f?e(n,f,h,i):t(n,a,d,null,h,i);sR(f)&&i(g.range,`BLOCK_IN_FLOW`,oR),n.atKey=!1;let _=QL(p??[],{flow:s,indicator:`map-value-ind`,next:m,offset:g.range[2],onError:i,parentIndent:r.indent,startOnNewline:!1});if(_.found){if(!o&&!h.found&&n.options.strict){if(p)for(let e of p){if(e===_.found)break;if(e.type===`newline`){i(e,`MULTILINE_IMPLICIT_KEY`,`Implicit keys of flow sequence pairs need to be on a single line`);break}}h.start<_.found.offset-1024&&i(_.found,`KEY_OVER_1024_CHARS`,`The : indicator must be at most 1024 chars after the start of an implicit flow sequence key`)}}else m&&(`source`in m&&m.source?.[0]===`:`?i(m,`MISSING_CHAR`,`Missing space after : in ${s}`):i(_.start,`MISSING_CHAR`,`Missing , or : between ${s} items`));let v=m?e(n,m,_,i):_.found?t(n,_.end,p,null,_,i):null;v?sR(m)&&i(v.range,`BLOCK_IN_FLOW`,oR):_.comment&&(g.comment?g.comment+=`
`+_.comment:g.comment=_.comment);let y=new XI(g,v);if(n.options.keepSourceTokens&&(y.srcToken=l),o){let e=c;tR(n,e.items,g)&&i(a,`DUPLICATE_KEY`,`Map keys must be unique`),e.items.push(y)}else{let e=new nL(n.schema);e.flow=!0,e.items.push(y);let t=(v??g).range;e.range=[g.range[0],t[1],t[2]],c.items.push(e)}u=v?v.range[2]:_.end}}let d=o?`}`:`]`,[f,...p]=r.end,m=u;if(f?.source===d)m=f.offset+f.source.length;else{let e=s[0].toUpperCase()+s.substring(1),t=l?`${e} must end with a ${d}`:`${e} in block collection must be sufficiently indented and end with a ${d}`;i(u,l?`MISSING_CHAR`:`BAD_INDENT`,t),f&&f.source.length!==1&&p.unshift(f)}if(p.length>0){let e=aR(p,m,n.options.strict,i);e.comment&&(c.comment?c.comment+=`
`+e.comment:c.comment=e.comment),c.range=[r.offset,m,e.offset]}else c.range=[r.offset,m,m];return c}function lR(e,t,n,r,i,a){let o=n.type===`block-map`?rR(e,t,n,r,a):n.type===`block-seq`?iR(e,t,n,r,a):cR(e,t,n,r,a),s=o.constructor;return i===`!`||i===s.tagName?(o.tag=s.tagName,o):(i&&(o.tag=i),o)}function uR(e,t,n,r,i){let a=r.tag,o=a?t.directives.tagName(a.source,e=>i(a,`TAG_RESOLVE_FAILED`,e)):null;if(n.type===`block-seq`){let{anchor:e,newlineAfterProp:t}=r,n=e&&a?e.offset>a.offset?e:a:e??a;n&&(!t||t.offset<n.offset)&&i(n,`MISSING_CHAR`,`Missing newline after block sequence props`)}let s=n.type===`block-map`?`map`:n.type===`block-seq`?`seq`:n.start.source===`{`?`map`:`seq`;if(!a||!o||o===`!`||o===nL.tagName&&s===`map`||o===iL.tagName&&s===`seq`)return lR(e,t,n,i,o);let c=t.schema.tags.find(e=>e.tag===o&&e.collection===s);if(!c){let r=t.schema.knownTags[o];if(r?.collection===s)t.schema.tags.push(Object.assign({},r,{default:!1})),c=r;else return r?i(a,`BAD_COLLECTION_TYPE`,`${r.tag} used for ${s} collection, but expects ${r.collection??`scalar`}`,!0):i(a,`TAG_RESOLVE_FAILED`,`Unresolved tag: ${o}`,!0),lR(e,t,n,i,o)}let l=lR(e,t,n,i,o,c),u=c.resolve?.(l,e=>i(a,`TAG_RESOLVE_FAILED`,e),t.options)??l,d=zF(u)?u:new uI(u);return d.range=l.range,d.tag=o,c?.format&&(d.format=c.format),d}function dR(e,t,n){let r=t.offset,i=fR(t,e.options.strict,n);if(!i)return{value:``,type:null,comment:``,range:[r,r,r]};let a=i.mode===`>`?uI.BLOCK_FOLDED:uI.BLOCK_LITERAL,o=t.source?pR(t.source):[],s=o.length;for(let e=o.length-1;e>=0;--e){let t=o[e][1];if(t===``||t===`\r`)s=e;else break}if(s===0){let e=i.chomp===`+`&&o.length>0?`
`.repeat(Math.max(1,o.length-1)):``,n=r+i.length;return t.source&&(n+=t.source.length),{value:e,type:a,comment:i.comment,range:[r,n,n]}}let c=t.indent+i.indent,l=t.offset+i.length,u=0;for(let t=0;t<s;++t){let[r,a]=o[t];if(a===``||a===`\r`)i.indent===0&&r.length>c&&(c=r.length);else{r.length<c&&n(l+r.length,`MISSING_CHAR`,`Block scalars with more-indented leading empty lines must use an explicit indentation indicator`),i.indent===0&&(c=r.length),u=t,c===0&&!e.atRoot&&n(l,`BAD_INDENT`,`Block scalar values in collections must be indented`);break}l+=r.length+a.length+1}for(let e=o.length-1;e>=s;--e)o[e][0].length>c&&(s=e+1);let d=``,f=``,p=!1;for(let e=0;e<u;++e)d+=o[e][0].slice(c)+`
`;for(let e=u;e<s;++e){let[t,r]=o[e];l+=t.length+r.length+1;let s=r[r.length-1]===`\r`;if(s&&(r=r.slice(0,-1)),r&&t.length<c){let e=`Block scalar lines must not be less indented than their ${i.indent?`explicit indentation indicator`:`first line`}`;n(l-r.length-(s?2:1),`BAD_INDENT`,e),t=``}a===uI.BLOCK_LITERAL?(d+=f+t.slice(c)+r,f=`
`):t.length>c||r[0]===` `?(f===` `?f=`
`:!p&&f===`
`&&(f=`
`),d+=f+t.slice(c)+r,f=`
`,p=!0):r===``?f===`
`?d+=`
`:f=`
`:(d+=f+r,f=` `,p=!1)}switch(i.chomp){case`-`:break;case`+`:for(let e=s;e<o.length;++e)d+=`
`+o[e][0].slice(c);d[d.length-1]!==`
`&&(d+=`
`);break;default:d+=`
`}let m=r+i.length+t.source.length;return{value:d,type:a,comment:i.comment,range:[r,m,m]}}function fR({offset:e,props:t},n,r){if(t[0].type!==`block-scalar-header`)return r(t[0],`IMPOSSIBLE`,`Block scalar header not found`),null;let{source:i}=t[0],a=i[0],o=0,s=``,c=-1;for(let t=1;t<i.length;++t){let n=i[t];if(!s&&(n===`-`||n===`+`))s=n;else{let r=Number(n);!o&&r?o=r:c===-1&&(c=e+t)}}c!==-1&&r(c,`UNEXPECTED_TOKEN`,`Block scalar header includes extra characters: ${i}`);let l=!1,u=``,d=i.length;for(let e=1;e<t.length;++e){let i=t[e];switch(i.type){case`space`:l=!0;case`newline`:d+=i.source.length;break;case`comment`:n&&!l&&r(i,`MISSING_CHAR`,`Comments must be separated from other tokens by white space characters`),d+=i.source.length,u=i.source.substring(1);break;case`error`:r(i,`UNEXPECTED_TOKEN`,i.message),d+=i.source.length;break;default:{r(i,`UNEXPECTED_TOKEN`,`Unexpected token in block scalar header: ${i.type}`);let e=i.source;e&&typeof e==`string`&&(d+=e.length)}}}return{mode:a,indent:o,chomp:s,comment:u,length:d}}function pR(e){let t=e.split(/\n( *)/),n=t[0],r=n.match(/^( *)/),i=[r?.[1]?[r[1],n.slice(r[1].length)]:[``,n]];for(let e=1;e<t.length;e+=2)i.push([t[e],t[e+1]]);return i}function mR(e,t,n){let{offset:r,type:i,source:a,end:o}=e,s,c,l=(e,t,i)=>n(r+e,t,i);switch(i){case`scalar`:s=uI.PLAIN,c=hR(a,l);break;case`single-quoted-scalar`:s=uI.QUOTE_SINGLE,c=gR(a,l);break;case`double-quoted-scalar`:s=uI.QUOTE_DOUBLE,c=vR(a,l);break;default:return n(e,`UNEXPECTED_TOKEN`,`Expected a flow scalar value, but found: ${i}`),{value:``,type:null,comment:``,range:[r,r+a.length,r+a.length]}}let u=r+a.length,d=aR(o,u,t,n);return{value:c,type:s,comment:d.comment,range:[r,u,d.offset]}}function hR(e,t){let n=``;switch(e[0]){case` `:n=`a tab character`;break;case`,`:n=`flow indicator character ,`;break;case`%`:n=`directive indicator character %`;break;case`|`:case`>`:n=`block scalar indicator ${e[0]}`;break;case`@`:case"`":n=`reserved character ${e[0]}`;break}return n&&t(0,`BAD_SCALAR_START`,`Plain value cannot start with ${n}`),_R(e)}function gR(e,t){return(e[e.length-1]!==`'`||e.length===1)&&t(e.length,`MISSING_CHAR`,`Missing closing 'quote`),_R(e.slice(1,-1)).replace(/''/g,`'`)}function _R(e){let t,n;try{t=RegExp(`(.*?)(?<![ ])[ ]*\r?
`,`sy`),n=RegExp(`[ ]*(.*?)(?:(?<![ ])[ ]*)?\r?
`,`sy`)}catch{t=/(.*?)[ \t]*\r?\n/sy,n=/[ \t]*(.*?)[ \t]*\r?\n/sy}let r=t.exec(e);if(!r)return e;let i=r[1],a=` `,o=t.lastIndex;for(n.lastIndex=o;r=n.exec(e);)r[1]===``?a===`
`?i+=a:a=`
`:(i+=a+r[1],a=` `),o=n.lastIndex;let s=/[ \t]*(.*)/sy;return s.lastIndex=o,r=s.exec(e),i+a+(r?.[1]??``)}function vR(e,t){let n=``;for(let r=1;r<e.length-1;++r){let i=e[r];if(!(i===`\r`&&e[r+1]===`
`))if(i===`
`){let{fold:t,offset:i}=yR(e,r);n+=t,r=i}else if(i===`\\`){let i=e[++r],a=bR[i];if(a)n+=a;else if(i===`
`)for(i=e[r+1];i===` `||i===` `;)i=e[++r+1];else if(i===`\r`&&e[r+1]===`
`)for(i=e[++r+1];i===` `||i===` `;)i=e[++r+1];else if(i===`x`||i===`u`||i===`U`){let a=i===`x`?2:i===`u`?4:8;n+=xR(e,r+1,a,t),r+=a}else{let i=e.substr(r-1,2);t(r-1,`BAD_DQ_ESCAPE`,`Invalid escape sequence ${i}`),n+=i}}else if(i===` `||i===` `){let t=r,a=e[r+1];for(;a===` `||a===` `;)a=e[++r+1];a!==`
`&&!(a===`\r`&&e[r+2]===`
`)&&(n+=r>t?e.slice(t,r+1):i)}else n+=i}return(e[e.length-1]!==`"`||e.length===1)&&t(e.length,`MISSING_CHAR`,`Missing closing "quote`),n}function yR(e,t){let n=``,r=e[t+1];for(;(r===` `||r===` `||r===`
`||r===`\r`)&&!(r===`\r`&&e[t+2]!==`
`);)r===`
`&&(n+=`
`),t+=1,r=e[t+1];return n||(n=` `),{fold:n,offset:t}}var bR={0:`\0`,a:`\x07`,b:`\b`,e:`\x1B`,f:`\f`,n:`
`,r:`\r`,t:` `,v:`\v`,N:`…`,_:`\xA0`,L:`\u2028`,P:`\u2029`," ":` `,'"':`"`,"/":`/`,"\\":`\\`," ":` `};function xR(e,t,n,r){let i=e.substr(t,n),a=i.length===n&&/^[0-9a-fA-F]+$/.test(i)?parseInt(i,16):NaN;try{return String.fromCodePoint(a)}catch{let i=e.substr(t-2,n+2);return r(t-2,`BAD_DQ_ESCAPE`,`Invalid escape sequence ${i}`),i}}function SR(e,t,n,r){let{value:i,type:a,comment:o,range:s}=t.type===`block-scalar`?dR(e,t,r):mR(t,e.options.strict,r),c=n?e.directives.tagName(n.source,e=>r(n,`TAG_RESOLVE_FAILED`,e)):null,l;l=e.options.stringKeys&&e.atKey?e.schema[kF]:c?CR(e.schema,i,c,n,r):t.type===`scalar`?wR(e,i,t,r):e.schema[kF];let u;try{let a=l.resolve(i,e=>r(n??t,`TAG_RESOLVE_FAILED`,e),e.options);u=IF(a)?a:new uI(a)}catch(e){let a=e instanceof Error?e.message:String(e);r(n??t,`TAG_RESOLVE_FAILED`,a),u=new uI(i)}return u.range=s,u.source=i,a&&(u.type=a),c&&(u.tag=c),l.format&&(u.format=l.format),o&&(u.comment=o),u}function CR(e,t,n,r,i){if(n===`!`)return e[kF];let a=[];for(let t of e.tags)if(!t.collection&&t.tag===n)if(t.default&&t.test)a.push(t);else return t;for(let e of a)if(e.test?.test(t))return e;let o=e.knownTags[n];return o&&!o.collection?(e.tags.push(Object.assign({},o,{default:!1,test:void 0})),o):(i(r,`TAG_RESOLVE_FAILED`,`Unresolved tag: ${n}`,n!==`tag:yaml.org,2002:str`),e[kF])}function wR({atKey:e,directives:t,schema:n},r,i,a){let o=n.tags.find(t=>(t.default===!0||e&&t.default===`key`)&&t.test?.test(r))||n[kF];if(n.compat){let e=n.compat.find(e=>e.default&&e.test?.test(r))??n[kF];o.tag!==e.tag&&a(i,`TAG_RESOLVE_FAILED`,`Value may be parsed as either ${t.tagString(o.tag)} or ${t.tagString(e.tag)}`,!0)}return o}function TR(e,t,n){if(t){n??(n=t.length);for(let r=n-1;r>=0;--r){let n=t[r];switch(n.type){case`space`:case`comment`:case`newline`:e-=n.source.length;continue}for(n=t[++r];n?.type===`space`;)e+=n.source.length,n=t[++r];break}}return e}var ER={composeNode:DR,composeEmptyNode:OR};function DR(e,t,n,r){let i=e.atKey,{spaceBefore:a,comment:o,anchor:s,tag:c}=n,l,u=!0;switch(t.type){case`alias`:l=kR(e,t,r),(s||c)&&r(t,`ALIAS_PROPS`,`An alias node must not specify any properties`);break;case`scalar`:case`single-quoted-scalar`:case`double-quoted-scalar`:case`block-scalar`:l=SR(e,t,c,r),s&&(l.anchor=s.source.substring(1));break;case`block-map`:case`block-seq`:case`flow-collection`:try{l=uR(ER,e,t,n,r),s&&(l.anchor=s.source.substring(1))}catch(e){r(t,`RESOURCE_EXHAUSTION`,e instanceof Error?e.message:String(e))}break;default:r(t,`UNEXPECTED_TOKEN`,t.type===`error`?t.message:`Unsupported token (type: ${t.type})`),u=!1}return l??(l=OR(e,t.offset,void 0,null,n,r)),s&&l.anchor===``&&r(s,`BAD_ALIAS`,`Anchor cannot be an empty string`),i&&e.options.stringKeys&&(!IF(l)||typeof l.value!=`string`||l.tag&&l.tag!==`tag:yaml.org,2002:str`)&&r(c??t,`NON_STRING_KEY`,`With stringKeys, all keys must be strings`),a&&(l.spaceBefore=!0),o&&(t.type===`scalar`&&t.source===``?l.comment=o:l.commentBefore=o),e.options.keepSourceTokens&&u&&(l.srcToken=t),l}function OR(e,t,n,r,{spaceBefore:i,comment:a,anchor:o,tag:s,end:c},l){let u=SR(e,{type:`scalar`,offset:TR(t,n,r),indent:-1,source:``},s,l);return o&&(u.anchor=o.source.substring(1),u.anchor===``&&l(o,`BAD_ALIAS`,`Anchor cannot be an empty string`)),i&&(u.spaceBefore=!0),a&&(u.comment=a,u.range[2]=c),u}function kR({options:e},{offset:t,source:n,end:r},i){let a=new sI(n.substring(1));a.source===``&&i(t,`BAD_ALIAS`,`Alias cannot be an empty string`),a.source.endsWith(`:`)&&i(t+n.length-1,`BAD_ALIAS`,`Alias ending in : is ambiguous`,!0);let o=t+n.length,s=aR(r,o,e.strict,i);return a.range=[t,o,s.offset],s.comment&&(a.comment=s.comment),a}function AR(e,t,{offset:n,start:r,value:i,end:a},o){let s=new KL(void 0,Object.assign({_directives:t},e)),c={atKey:!1,atRoot:!0,directives:s.directives,options:s.options,schema:s.schema},l=QL(r,{indicator:`doc-start`,next:i??a?.[0],offset:n,onError:o,parentIndent:0,startOnNewline:!0});l.found&&(s.directives.docStart=!0,i&&(i.type===`block-map`||i.type===`block-seq`)&&!l.hasNewline&&o(l.end,`MISSING_CHAR`,`Block collection cannot start on same line with directives-end marker`)),s.contents=i?DR(c,i,l,o):OR(c,l.end,r,null,l,o);let u=s.contents.range[2],d=aR(a,u,!1,o);return d.comment&&(s.comment=d.comment),s.range=[n,u,d.offset],s}function jR(e){if(typeof e==`number`)return[e,e+1];if(Array.isArray(e))return e.length===2?e:[e[0],e[1]];let{offset:t,source:n}=e;return[t,t+(typeof n==`string`?n.length:1)]}function MR(e){let t=``,n=!1,r=!1;for(let i=0;i<e.length;++i){let a=e[i];switch(a[0]){case`#`:t+=(t===``?``:r?`
`:`
`)+(a.substring(1)||` `),n=!0,r=!1;break;case`%`:e[i+1]?.[0]!==`#`&&(i+=1),n=!1;break;default:n||(r=!0),n=!1}}return{comment:t,afterEmptyLine:r}}var NR=class{constructor(e={}){this.doc=null,this.atDirectives=!1,this.prelude=[],this.errors=[],this.warnings=[],this.onError=(e,t,n,r)=>{let i=jR(e);r?this.warnings.push(new XL(i,t,n)):this.errors.push(new YL(i,t,n))},this.directives=new $F({version:e.version||`1.2`}),this.options=e}decorate(e,t){let{comment:n,afterEmptyLine:r}=MR(this.prelude);if(n){let i=e.contents;if(t)e.comment=e.comment?`${e.comment}\n${n}`:n;else if(r||e.directives.docStart||!i)e.commentBefore=n;else if(RF(i)&&!i.flow&&i.items.length>0){let e=i.items[0];FF(e)&&(e=e.key);let t=e.commentBefore;e.commentBefore=t?`${n}\n${t}`:n}else{let e=i.commentBefore;i.commentBefore=e?`${n}\n${e}`:n}}if(t){for(let t=0;t<this.errors.length;++t)e.errors.push(this.errors[t]);for(let t=0;t<this.warnings.length;++t)e.warnings.push(this.warnings[t])}else e.errors=this.errors,e.warnings=this.warnings;this.prelude=[],this.errors=[],this.warnings=[]}streamInfo(){return{comment:MR(this.prelude).comment,directives:this.directives,errors:this.errors,warnings:this.warnings}}*compose(e,t=!1,n=-1){for(let t of e)yield*this.next(t);yield*this.end(t,n)}*next(e){switch(e.type){case`directive`:this.directives.add(e.source,(t,n,r)=>{let i=jR(e);i[0]+=t,this.onError(i,`BAD_DIRECTIVE`,n,r)}),this.prelude.push(e.source),this.atDirectives=!0;break;case`document`:{let t=AR(this.options,this.directives,e,this.onError);this.atDirectives&&!t.directives.docStart&&this.onError(e,`MISSING_CHAR`,`Missing directives-end/doc-start indicator line`),this.decorate(t,!1),this.doc&&(yield this.doc),this.doc=t,this.atDirectives=!1;break}case`byte-order-mark`:case`space`:break;case`comment`:case`newline`:this.prelude.push(e.source);break;case`error`:{let t=e.source?`${e.message}: ${JSON.stringify(e.source)}`:e.message,n=new YL(jR(e),`UNEXPECTED_TOKEN`,t);this.atDirectives||!this.doc?this.errors.push(n):this.doc.errors.push(n);break}case`doc-end`:{if(!this.doc){this.errors.push(new YL(jR(e),`UNEXPECTED_TOKEN`,`Unexpected doc-end without preceding document`));break}this.doc.directives.docEnd=!0;let t=aR(e.end,e.offset+e.source.length,this.doc.options.strict,this.onError);if(this.decorate(this.doc,!0),t.comment){let e=this.doc.comment;this.doc.comment=e?`${e}\n${t.comment}`:t.comment}this.doc.range[2]=t.offset;break}default:this.errors.push(new YL(jR(e),`UNEXPECTED_TOKEN`,`Unsupported token ${e.type}`))}}*end(e=!1,t=-1){if(this.doc)this.decorate(this.doc,!0),yield this.doc,this.doc=null;else if(e){let e=new KL(void 0,Object.assign({_directives:this.directives},this.options));this.atDirectives&&this.onError(t,`MISSING_CHAR`,`Missing directives-end indicator line`),e.range=[0,t,t],this.decorate(e,!1),yield e}}},PR=Symbol(`break visit`),FR=Symbol(`skip children`),IR=Symbol(`remove item`);function LR(e,t){`type`in e&&e.type===`document`&&(e={start:e.start,value:e.value}),RR(Object.freeze([]),e,t)}LR.BREAK=PR,LR.SKIP=FR,LR.REMOVE=IR,LR.itemAtPath=(e,t)=>{let n=e;for(let[e,r]of t){let t=n?.[e];if(t&&`items`in t)n=t.items[r];else return}return n},LR.parentCollection=(e,t)=>{let n=LR.itemAtPath(e,t.slice(0,-1)),r=t[t.length-1][0],i=n?.[r];if(i&&`items`in i)return i;throw Error(`Parent collection not found`)};function RR(e,t,n){let r=n(t,e);if(typeof r==`symbol`)return r;for(let i of[`key`,`value`]){let a=t[i];if(a&&`items`in a){for(let t=0;t<a.items.length;++t){let r=RR(Object.freeze(e.concat([[i,t]])),a.items[t],n);if(typeof r==`number`)t=r-1;else if(r===PR)return PR;else r===IR&&(a.items.splice(t,1),--t)}typeof r==`function`&&i===`key`&&(r=r(t,e))}}return typeof r==`function`?r(t,e):r}function zR(e){switch(e){case``:return`byte-order-mark`;case``:return`doc-mode`;case``:return`flow-error-end`;case``:return`scalar`;case`---`:return`doc-start`;case`...`:return`doc-end`;case``:case`
`:case`\r
`:return`newline`;case`-`:return`seq-item-ind`;case`?`:return`explicit-key-ind`;case`:`:return`map-value-ind`;case`{`:return`flow-map-start`;case`}`:return`flow-map-end`;case`[`:return`flow-seq-start`;case`]`:return`flow-seq-end`;case`,`:return`comma`}switch(e[0]){case` `:case` `:return`space`;case`#`:return`comment`;case`%`:return`directive-line`;case`*`:return`alias`;case`&`:return`anchor`;case`!`:return`tag`;case`'`:return`single-quoted-scalar`;case`"`:return`double-quoted-scalar`;case`|`:case`>`:return`block-scalar-header`}return null}function BR(e){switch(e){case void 0:case` `:case`
`:case`\r`:case` `:return!0;default:return!1}}var VR=new Set(`0123456789ABCDEFabcdef`),HR=new Set(`0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-#;/?:@&=+$_.!~*'()`),UR=new Set(`,[]{}`),WR=new Set(` ,[]{}
\r `),GR=e=>!e||WR.has(e),KR=class{constructor(){this.atEnd=!1,this.blockScalarIndent=-1,this.blockScalarKeep=!1,this.buffer=``,this.flowKey=!1,this.flowLevel=0,this.indentNext=0,this.indentValue=0,this.lineEndPos=null,this.next=null,this.pos=0}*lex(e,t=!1){if(e){if(typeof e!=`string`)throw TypeError(`source is not a string`);this.buffer=this.buffer?this.buffer+e:e,this.lineEndPos=null}this.atEnd=!t;let n=this.next??`stream`;for(;n&&(t||this.hasChars(1));)n=yield*this.parseNext(n)}atLineEnd(){let e=this.pos,t=this.buffer[e];for(;t===` `||t===` `;)t=this.buffer[++e];return!t||t===`#`||t===`
`||t===`\r`&&this.buffer[e+1]===`
`}charAt(e){return this.buffer[this.pos+e]}continueScalar(e){let t=this.buffer[e];if(this.indentNext>0){let n=0;for(;t===` `;)t=this.buffer[++n+e];if(t===`\r`){let t=this.buffer[n+e+1];if(t===`
`||!t&&!this.atEnd)return e+n+1}return t===`
`||n>=this.indentNext||!t&&!this.atEnd?e+n:-1}if(t===`-`||t===`.`){let t=this.buffer.substr(e,3);if((t===`---`||t===`...`)&&BR(this.buffer[e+3]))return-1}return e}getLine(){let e=this.lineEndPos;return(typeof e!=`number`||e!==-1&&e<this.pos)&&(e=this.buffer.indexOf(`
`,this.pos),this.lineEndPos=e),e===-1?this.atEnd?this.buffer.substring(this.pos):null:(this.buffer[e-1]===`\r`&&--e,this.buffer.substring(this.pos,e))}hasChars(e){return this.pos+e<=this.buffer.length}setNext(e){return this.buffer=this.buffer.substring(this.pos),this.pos=0,this.lineEndPos=null,this.next=e,null}peek(e){return this.buffer.substr(this.pos,e)}*parseNext(e){switch(e){case`stream`:return yield*this.parseStream();case`line-start`:return yield*this.parseLineStart();case`block-start`:return yield*this.parseBlockStart();case`doc`:return yield*this.parseDocument();case`flow`:return yield*this.parseFlowCollection();case`quoted-scalar`:return yield*this.parseQuotedScalar();case`block-scalar`:return yield*this.parseBlockScalar();case`plain-scalar`:return yield*this.parsePlainScalar()}}*parseStream(){let e=this.getLine();if(e===null)return this.setNext(`stream`);if(e[0]===``&&(yield*this.pushCount(1),e=e.substring(1)),e[0]===`%`){let t=e.length,n=e.indexOf(`#`);for(;n!==-1;){let r=e[n-1];if(r===` `||r===` `){t=n-1;break}else n=e.indexOf(`#`,n+1)}for(;;){let n=e[t-1];if(n===` `||n===` `)--t;else break}let r=(yield*this.pushCount(t))+(yield*this.pushSpaces(!0));return yield*this.pushCount(e.length-r),this.pushNewline(),`stream`}if(this.atLineEnd()){let t=yield*this.pushSpaces(!0);return yield*this.pushCount(e.length-t),yield*this.pushNewline(),`stream`}return yield``,yield*this.parseLineStart()}*parseLineStart(){let e=this.charAt(0);if(!e&&!this.atEnd)return this.setNext(`line-start`);if(e===`-`||e===`.`){if(!this.atEnd&&!this.hasChars(4))return this.setNext(`line-start`);let e=this.peek(3);if((e===`---`||e===`...`)&&BR(this.charAt(3)))return yield*this.pushCount(3),this.indentValue=0,this.indentNext=0,e===`---`?`doc`:`stream`}return this.indentValue=yield*this.pushSpaces(!1),this.indentNext>this.indentValue&&!BR(this.charAt(1))&&(this.indentNext=this.indentValue),yield*this.parseBlockStart()}*parseBlockStart(){let[e,t]=this.peek(2);if(!t&&!this.atEnd)return this.setNext(`block-start`);if((e===`-`||e===`?`||e===`:`)&&BR(t)){let e=(yield*this.pushCount(1))+(yield*this.pushSpaces(!0));return this.indentNext=this.indentValue+1,this.indentValue+=e,`block-start`}return`doc`}*parseDocument(){yield*this.pushSpaces(!0);let e=this.getLine();if(e===null)return this.setNext(`doc`);let t=yield*this.pushIndicators();switch(e[t]){case`#`:yield*this.pushCount(e.length-t);case void 0:return yield*this.pushNewline(),yield*this.parseLineStart();case`{`:case`[`:return yield*this.pushCount(1),this.flowKey=!1,this.flowLevel=1,`flow`;case`}`:case`]`:return yield*this.pushCount(1),`doc`;case`*`:return yield*this.pushUntil(GR),`doc`;case`"`:case`'`:return yield*this.parseQuotedScalar();case`|`:case`>`:return t+=yield*this.parseBlockScalarHeader(),t+=yield*this.pushSpaces(!0),yield*this.pushCount(e.length-t),yield*this.pushNewline(),yield*this.parseBlockScalar();default:return yield*this.parsePlainScalar()}}*parseFlowCollection(){let e,t,n=-1;do e=yield*this.pushNewline(),e>0?(t=yield*this.pushSpaces(!1),this.indentValue=n=t):t=0,t+=yield*this.pushSpaces(!0);while(e+t>0);let r=this.getLine();if(r===null)return this.setNext(`flow`);if((n!==-1&&n<this.indentNext&&r[0]!==`#`||n===0&&(r.startsWith(`---`)||r.startsWith(`...`))&&BR(r[3]))&&!(n===this.indentNext-1&&this.flowLevel===1&&(r[0]===`]`||r[0]===`}`)))return this.flowLevel=0,yield``,yield*this.parseLineStart();let i=0;for(;r[i]===`,`;)i+=yield*this.pushCount(1),i+=yield*this.pushSpaces(!0),this.flowKey=!1;switch(i+=yield*this.pushIndicators(),r[i]){case void 0:return`flow`;case`#`:return yield*this.pushCount(r.length-i),`flow`;case`{`:case`[`:return yield*this.pushCount(1),this.flowKey=!1,this.flowLevel+=1,`flow`;case`}`:case`]`:return yield*this.pushCount(1),this.flowKey=!0,--this.flowLevel,this.flowLevel?`flow`:`doc`;case`*`:return yield*this.pushUntil(GR),`flow`;case`"`:case`'`:return this.flowKey=!0,yield*this.parseQuotedScalar();case`:`:{let e=this.charAt(1);if(this.flowKey||BR(e)||e===`,`)return this.flowKey=!1,yield*this.pushCount(1),yield*this.pushSpaces(!0),`flow`}default:return this.flowKey=!1,yield*this.parsePlainScalar()}}*parseQuotedScalar(){let e=this.charAt(0),t=this.buffer.indexOf(e,this.pos+1);if(e===`'`)for(;t!==-1&&this.buffer[t+1]===`'`;)t=this.buffer.indexOf(`'`,t+2);else for(;t!==-1;){let e=0;for(;this.buffer[t-1-e]===`\\`;)e+=1;if(e%2==0)break;t=this.buffer.indexOf(`"`,t+1)}let n=this.buffer.substring(0,t),r=n.indexOf(`
`,this.pos);if(r!==-1){for(;r!==-1;){let e=this.continueScalar(r+1);if(e===-1)break;r=n.indexOf(`
`,e)}r!==-1&&(t=r-(n[r-1]===`\r`?2:1))}if(t===-1){if(!this.atEnd)return this.setNext(`quoted-scalar`);t=this.buffer.length}return yield*this.pushToIndex(t+1,!1),this.flowLevel?`flow`:`doc`}*parseBlockScalarHeader(){this.blockScalarIndent=-1,this.blockScalarKeep=!1;let e=this.pos;for(;;){let t=this.buffer[++e];if(t===`+`)this.blockScalarKeep=!0;else if(t>`0`&&t<=`9`)this.blockScalarIndent=Number(t)-1;else if(t!==`-`)break}return yield*this.pushUntil(e=>BR(e)||e===`#`)}*parseBlockScalar(){let e=this.pos-1,t=0,n;loop:for(let r=this.pos;n=this.buffer[r];++r)switch(n){case` `:t+=1;break;case`
`:e=r,t=0;break;case`\r`:{let e=this.buffer[r+1];if(!e&&!this.atEnd)return this.setNext(`block-scalar`);if(e===`
`)break}default:break loop}if(!n&&!this.atEnd)return this.setNext(`block-scalar`);if(t>=this.indentNext){this.blockScalarIndent===-1?this.indentNext=t:this.indentNext=this.blockScalarIndent+(this.indentNext===0?1:this.indentNext);do{let t=this.continueScalar(e+1);if(t===-1)break;e=this.buffer.indexOf(`
`,t)}while(e!==-1);if(e===-1){if(!this.atEnd)return this.setNext(`block-scalar`);e=this.buffer.length}}let r=e+1;for(n=this.buffer[r];n===` `;)n=this.buffer[++r];if(n===` `){for(;n===` `||n===` `||n===`\r`||n===`
`;)n=this.buffer[++r];e=r-1}else if(!this.blockScalarKeep)do{let n=e-1,r=this.buffer[n];r===`\r`&&(r=this.buffer[--n]);let i=n;for(;r===` `;)r=this.buffer[--n];if(r===`
`&&n>=this.pos&&n+1+t>i)e=n;else break}while(!0);return yield``,yield*this.pushToIndex(e+1,!0),yield*this.parseLineStart()}*parsePlainScalar(){let e=this.flowLevel>0,t=this.pos-1,n=this.pos-1,r;for(;r=this.buffer[++n];)if(r===`:`){let r=this.buffer[n+1];if(BR(r)||e&&UR.has(r))break;t=n}else if(BR(r)){let i=this.buffer[n+1];if(r===`\r`&&(i===`
`?(n+=1,r=`
`,i=this.buffer[n+1]):t=n),i===`#`||e&&UR.has(i))break;if(r===`
`){let e=this.continueScalar(n+1);if(e===-1)break;n=Math.max(n,e-2)}}else{if(e&&UR.has(r))break;t=n}return!r&&!this.atEnd?this.setNext(`plain-scalar`):(yield``,yield*this.pushToIndex(t+1,!0),e?`flow`:`doc`)}*pushCount(e){return e>0?(yield this.buffer.substr(this.pos,e),this.pos+=e,e):0}*pushToIndex(e,t){let n=this.buffer.slice(this.pos,e);return n?(yield n,this.pos+=n.length,n.length):(t&&(yield``),0)}*pushIndicators(){let e=0;loop:for(;;){switch(this.charAt(0)){case`!`:e+=yield*this.pushTag(),e+=yield*this.pushSpaces(!0);continue loop;case`&`:e+=yield*this.pushUntil(GR),e+=yield*this.pushSpaces(!0);continue loop;case`-`:case`?`:case`:`:{let t=this.flowLevel>0,n=this.charAt(1);if(BR(n)||t&&UR.has(n)){t?this.flowKey&&(this.flowKey=!1):this.indentNext=this.indentValue+1,e+=yield*this.pushCount(1),e+=yield*this.pushSpaces(!0);continue loop}}}break loop}return e}*pushTag(){if(this.charAt(1)===`<`){let e=this.pos+2,t=this.buffer[e];for(;!BR(t)&&t!==`>`;)t=this.buffer[++e];return yield*this.pushToIndex(t===`>`?e+1:e,!1)}else{let e=this.pos+1,t=this.buffer[e];for(;t;)if(HR.has(t))t=this.buffer[++e];else if(t===`%`&&VR.has(this.buffer[e+1])&&VR.has(this.buffer[e+2]))t=this.buffer[e+=3];else break;return yield*this.pushToIndex(e,!1)}}*pushNewline(){let e=this.buffer[this.pos];return e===`
`?yield*this.pushCount(1):e===`\r`&&this.charAt(1)===`
`?yield*this.pushCount(2):0}*pushSpaces(e){let t=this.pos-1,n;do n=this.buffer[++t];while(n===` `||e&&n===` `);let r=t-this.pos;return r>0&&(yield this.buffer.substr(this.pos,r),this.pos=t),r}*pushUntil(e){let t=this.pos,n=this.buffer[t];for(;!e(n);)n=this.buffer[++t];return yield*this.pushToIndex(t,!1)}},qR=class{constructor(){this.lineStarts=[],this.addNewLine=e=>this.lineStarts.push(e),this.linePos=e=>{let t=0,n=this.lineStarts.length;for(;t<n;){let r=t+n>>1;this.lineStarts[r]<e?t=r+1:n=r}if(this.lineStarts[t]===e)return{line:t+1,col:1};if(t===0)return{line:0,col:e};let r=this.lineStarts[t-1];return{line:t,col:e-r+1}}}};function JR(e,t){for(let n=0;n<e.length;++n)if(e[n].type===t)return!0;return!1}function YR(e){for(let t=0;t<e.length;++t)switch(e[t].type){case`space`:case`comment`:case`newline`:break;default:return t}return-1}function XR(e){switch(e?.type){case`alias`:case`scalar`:case`single-quoted-scalar`:case`double-quoted-scalar`:case`flow-collection`:return!0;default:return!1}}function ZR(e){switch(e.type){case`document`:return e.start;case`block-map`:{let t=e.items[e.items.length-1];return t.sep??t.start}case`block-seq`:return e.items[e.items.length-1].start;default:return[]}}function QR(e){if(e.length===0)return[];let t=e.length;loop:for(;--t>=0;)switch(e[t].type){case`doc-start`:case`explicit-key-ind`:case`map-value-ind`:case`seq-item-ind`:case`newline`:break loop}for(;e[++t]?.type===`space`;);return e.splice(t,e.length)}function $R(e,t){if(t.length<1e5)Array.prototype.push.apply(e,t);else for(let n=0;n<t.length;++n)e.push(t[n])}function ez(e){if(e.start.type===`flow-seq-start`)for(let t of e.items)t.sep&&!t.value&&!JR(t.start,`explicit-key-ind`)&&!JR(t.sep,`map-value-ind`)&&(t.key&&(t.value=t.key),delete t.key,XR(t.value)?t.value.end?$R(t.value.end,t.sep):t.value.end=t.sep:$R(t.start,t.sep),delete t.sep)}var tz=class{constructor(e){this.atNewLine=!0,this.atScalar=!1,this.indent=0,this.offset=0,this.onKeyLine=!1,this.stack=[],this.source=``,this.type=``,this.lexer=new KR,this.onNewLine=e}*parse(e,t=!1){this.onNewLine&&this.offset===0&&this.onNewLine(0);for(let n of this.lexer.lex(e,t))yield*this.next(n);t||(yield*this.end())}*next(e){if(this.source=e,this.atScalar){this.atScalar=!1,yield*this.step(),this.offset+=e.length;return}let t=zR(e);if(!t){let t=`Not a YAML token: ${e}`;yield*this.pop({type:`error`,offset:this.offset,message:t,source:e}),this.offset+=e.length}else if(t===`scalar`)this.atNewLine=!1,this.atScalar=!0,this.type=`scalar`;else{switch(this.type=t,yield*this.step(),t){case`newline`:this.atNewLine=!0,this.indent=0,this.onNewLine&&this.onNewLine(this.offset+e.length);break;case`space`:this.atNewLine&&e[0]===` `&&(this.indent+=e.length);break;case`explicit-key-ind`:case`map-value-ind`:case`seq-item-ind`:this.atNewLine&&(this.indent+=e.length);break;case`doc-mode`:case`flow-error-end`:return;default:this.atNewLine=!1}this.offset+=e.length}}*end(){for(;this.stack.length>0;)yield*this.pop()}get sourceToken(){return{type:this.type,offset:this.offset,indent:this.indent,source:this.source}}*step(){let e=this.peek(1);if(this.type===`doc-end`&&e?.type!==`doc-end`){for(;this.stack.length>0;)yield*this.pop();this.stack.push({type:`doc-end`,offset:this.offset,source:this.source});return}if(!e)return yield*this.stream();switch(e.type){case`document`:return yield*this.document(e);case`alias`:case`scalar`:case`single-quoted-scalar`:case`double-quoted-scalar`:return yield*this.scalar(e);case`block-scalar`:return yield*this.blockScalar(e);case`block-map`:return yield*this.blockMap(e);case`block-seq`:return yield*this.blockSequence(e);case`flow-collection`:return yield*this.flowCollection(e);case`doc-end`:return yield*this.documentEnd(e)}yield*this.pop()}peek(e){return this.stack[this.stack.length-e]}*pop(e){let t=e??this.stack.pop();if(!t)yield{type:`error`,offset:this.offset,source:``,message:`Tried to pop an empty stack`};else if(this.stack.length===0)yield t;else{let e=this.peek(1);switch(t.type===`block-scalar`?t.indent=`indent`in e?e.indent:0:t.type===`flow-collection`&&e.type===`document`&&(t.indent=0),t.type===`flow-collection`&&ez(t),e.type){case`document`:e.value=t;break;case`block-scalar`:e.props.push(t);break;case`block-map`:{let n=e.items[e.items.length-1];if(n.value){e.items.push({start:[],key:t,sep:[]}),this.onKeyLine=!0;return}else if(n.sep)n.value=t;else{Object.assign(n,{key:t,sep:[]}),this.onKeyLine=!n.explicitKey;return}break}case`block-seq`:{let n=e.items[e.items.length-1];n.value?e.items.push({start:[],value:t}):n.value=t;break}case`flow-collection`:{let n=e.items[e.items.length-1];!n||n.value?e.items.push({start:[],key:t,sep:[]}):n.sep?n.value=t:Object.assign(n,{key:t,sep:[]});return}default:yield*this.pop(),yield*this.pop(t)}if((e.type===`document`||e.type===`block-map`||e.type===`block-seq`)&&(t.type===`block-map`||t.type===`block-seq`)){let n=t.items[t.items.length-1];n&&!n.sep&&!n.value&&n.start.length>0&&YR(n.start)===-1&&(t.indent===0||n.start.every(e=>e.type!==`comment`||e.indent<t.indent))&&(e.type===`document`?e.end=n.start:e.items.push({start:n.start}),t.items.splice(-1,1))}}}*stream(){switch(this.type){case`directive-line`:yield{type:`directive`,offset:this.offset,source:this.source};return;case`byte-order-mark`:case`space`:case`comment`:case`newline`:yield this.sourceToken;return;case`doc-mode`:case`doc-start`:{let e={type:`document`,offset:this.offset,start:[]};this.type===`doc-start`&&e.start.push(this.sourceToken),this.stack.push(e);return}}yield{type:`error`,offset:this.offset,message:`Unexpected ${this.type} token in YAML stream`,source:this.source}}*document(e){if(e.value)return yield*this.lineEnd(e);switch(this.type){case`doc-start`:YR(e.start)===-1?e.start.push(this.sourceToken):(yield*this.pop(),yield*this.step());return;case`anchor`:case`tag`:case`space`:case`comment`:case`newline`:e.start.push(this.sourceToken);return}let t=this.startBlockValue(e);t?this.stack.push(t):yield{type:`error`,offset:this.offset,message:`Unexpected ${this.type} token in YAML document`,source:this.source}}*scalar(e){if(this.type===`map-value-ind`){let t=QR(ZR(this.peek(2))),n;e.end?(n=e.end,n.push(this.sourceToken),delete e.end):n=[this.sourceToken];let r={type:`block-map`,offset:e.offset,indent:e.indent,items:[{start:t,key:e,sep:n}]};this.onKeyLine=!0,this.stack[this.stack.length-1]=r}else yield*this.lineEnd(e)}*blockScalar(e){switch(this.type){case`space`:case`comment`:case`newline`:e.props.push(this.sourceToken);return;case`scalar`:if(e.source=this.source,this.atNewLine=!0,this.indent=0,this.onNewLine){let e=this.source.indexOf(`
`)+1;for(;e!==0;)this.onNewLine(this.offset+e),e=this.source.indexOf(`
`,e)+1}yield*this.pop();break;default:yield*this.pop(),yield*this.step()}}*blockMap(e){let t=e.items[e.items.length-1];switch(this.type){case`newline`:if(this.onKeyLine=!1,t.value){let n=`end`in t.value?t.value.end:void 0;(Array.isArray(n)?n[n.length-1]:void 0)?.type===`comment`?n?.push(this.sourceToken):e.items.push({start:[this.sourceToken]})}else t.sep?t.sep.push(this.sourceToken):t.start.push(this.sourceToken);return;case`space`:case`comment`:if(t.value)e.items.push({start:[this.sourceToken]});else if(t.sep)t.sep.push(this.sourceToken);else{if(this.atIndentedComment(t.start,e.indent)){let n=e.items[e.items.length-2]?.value?.end;if(Array.isArray(n)){$R(n,t.start),n.push(this.sourceToken),e.items.pop();return}}t.start.push(this.sourceToken)}return}if(this.indent>=e.indent){let n=!this.onKeyLine&&this.indent===e.indent,r=n&&(t.sep||t.explicitKey)&&this.type!==`seq-item-ind`,i=[];if(r&&t.sep&&!t.value){let n=[];for(let r=0;r<t.sep.length;++r){let i=t.sep[r];switch(i.type){case`newline`:n.push(r);break;case`space`:break;case`comment`:i.indent>e.indent&&(n.length=0);break;default:n.length=0}}n.length>=2&&(i=t.sep.splice(n[1]))}switch(this.type){case`anchor`:case`tag`:r||t.value?(i.push(this.sourceToken),e.items.push({start:i}),this.onKeyLine=!0):t.sep?t.sep.push(this.sourceToken):t.start.push(this.sourceToken);return;case`explicit-key-ind`:!t.sep&&!t.explicitKey?(t.start.push(this.sourceToken),t.explicitKey=!0):r||t.value?(i.push(this.sourceToken),e.items.push({start:i,explicitKey:!0})):this.stack.push({type:`block-map`,offset:this.offset,indent:this.indent,items:[{start:[this.sourceToken],explicitKey:!0}]}),this.onKeyLine=!0;return;case`map-value-ind`:if(t.explicitKey)if(!t.sep)if(JR(t.start,`newline`))Object.assign(t,{key:null,sep:[this.sourceToken]});else{let e=QR(t.start);this.stack.push({type:`block-map`,offset:this.offset,indent:this.indent,items:[{start:e,key:null,sep:[this.sourceToken]}]})}else if(t.value)e.items.push({start:[],key:null,sep:[this.sourceToken]});else if(JR(t.sep,`map-value-ind`))this.stack.push({type:`block-map`,offset:this.offset,indent:this.indent,items:[{start:i,key:null,sep:[this.sourceToken]}]});else if(XR(t.key)&&!JR(t.sep,`newline`)){let e=QR(t.start),n=t.key,r=t.sep;r.push(this.sourceToken),delete t.key,delete t.sep,this.stack.push({type:`block-map`,offset:this.offset,indent:this.indent,items:[{start:e,key:n,sep:r}]})}else i.length>0?t.sep=t.sep.concat(i,this.sourceToken):t.sep.push(this.sourceToken);else t.sep?t.value||r?e.items.push({start:i,key:null,sep:[this.sourceToken]}):JR(t.sep,`map-value-ind`)?this.stack.push({type:`block-map`,offset:this.offset,indent:this.indent,items:[{start:[],key:null,sep:[this.sourceToken]}]}):t.sep.push(this.sourceToken):Object.assign(t,{key:null,sep:[this.sourceToken]});this.onKeyLine=!0;return;case`alias`:case`scalar`:case`single-quoted-scalar`:case`double-quoted-scalar`:{let n=this.flowScalar(this.type);r||t.value?(e.items.push({start:i,key:n,sep:[]}),this.onKeyLine=!0):t.sep?this.stack.push(n):(Object.assign(t,{key:n,sep:[]}),this.onKeyLine=!0);return}default:{let r=this.startBlockValue(e);if(r){if(r.type===`block-seq`){if(!t.explicitKey&&t.sep&&!JR(t.sep,`newline`)){yield*this.pop({type:`error`,offset:this.offset,message:`Unexpected block-seq-ind on same line with key`,source:this.source});return}}else n&&e.items.push({start:i});this.stack.push(r);return}}}}yield*this.pop(),yield*this.step()}*blockSequence(e){let t=e.items[e.items.length-1];switch(this.type){case`newline`:if(t.value){let n=`end`in t.value?t.value.end:void 0;(Array.isArray(n)?n[n.length-1]:void 0)?.type===`comment`?n?.push(this.sourceToken):e.items.push({start:[this.sourceToken]})}else t.start.push(this.sourceToken);return;case`space`:case`comment`:if(t.value)e.items.push({start:[this.sourceToken]});else{if(this.atIndentedComment(t.start,e.indent)){let n=e.items[e.items.length-2]?.value?.end;if(Array.isArray(n)){$R(n,t.start),n.push(this.sourceToken),e.items.pop();return}}t.start.push(this.sourceToken)}return;case`anchor`:case`tag`:if(t.value||this.indent<=e.indent)break;t.start.push(this.sourceToken);return;case`seq-item-ind`:if(this.indent!==e.indent)break;t.value||JR(t.start,`seq-item-ind`)?e.items.push({start:[this.sourceToken]}):t.start.push(this.sourceToken);return}if(this.indent>e.indent){let t=this.startBlockValue(e);if(t){this.stack.push(t);return}}yield*this.pop(),yield*this.step()}*flowCollection(e){let t=e.items[e.items.length-1];if(this.type===`flow-error-end`){let e;do yield*this.pop(),e=this.peek(1);while(e?.type===`flow-collection`)}else if(e.end.length===0){switch(this.type){case`comma`:case`explicit-key-ind`:!t||t.sep?e.items.push({start:[this.sourceToken]}):t.start.push(this.sourceToken);return;case`map-value-ind`:!t||t.value?e.items.push({start:[],key:null,sep:[this.sourceToken]}):t.sep?t.sep.push(this.sourceToken):Object.assign(t,{key:null,sep:[this.sourceToken]});return;case`space`:case`comment`:case`newline`:case`anchor`:case`tag`:!t||t.value?e.items.push({start:[this.sourceToken]}):t.sep?t.sep.push(this.sourceToken):t.start.push(this.sourceToken);return;case`alias`:case`scalar`:case`single-quoted-scalar`:case`double-quoted-scalar`:{let n=this.flowScalar(this.type);!t||t.value?e.items.push({start:[],key:n,sep:[]}):t.sep?this.stack.push(n):Object.assign(t,{key:n,sep:[]});return}case`flow-map-end`:case`flow-seq-end`:e.end.push(this.sourceToken);return}let n=this.startBlockValue(e);n?this.stack.push(n):(yield*this.pop(),yield*this.step())}else{let t=this.peek(2);if(t.type===`block-map`&&(this.type===`map-value-ind`&&t.indent===e.indent||this.type===`newline`&&!t.items[t.items.length-1].sep))yield*this.pop(),yield*this.step();else if(this.type===`map-value-ind`&&t.type!==`flow-collection`){let n=QR(ZR(t));ez(e);let r=e.end.splice(1,e.end.length);r.push(this.sourceToken);let i={type:`block-map`,offset:e.offset,indent:e.indent,items:[{start:n,key:e,sep:r}]};this.onKeyLine=!0,this.stack[this.stack.length-1]=i}else yield*this.lineEnd(e)}}flowScalar(e){if(this.onNewLine){let e=this.source.indexOf(`
`)+1;for(;e!==0;)this.onNewLine(this.offset+e),e=this.source.indexOf(`
`,e)+1}return{type:e,offset:this.offset,indent:this.indent,source:this.source}}startBlockValue(e){switch(this.type){case`alias`:case`scalar`:case`single-quoted-scalar`:case`double-quoted-scalar`:return this.flowScalar(this.type);case`block-scalar-header`:return{type:`block-scalar`,offset:this.offset,indent:this.indent,props:[this.sourceToken],source:``};case`flow-map-start`:case`flow-seq-start`:return{type:`flow-collection`,offset:this.offset,indent:this.indent,start:this.sourceToken,items:[],end:[]};case`seq-item-ind`:return{type:`block-seq`,offset:this.offset,indent:this.indent,items:[{start:[this.sourceToken]}]};case`explicit-key-ind`:{this.onKeyLine=!0;let t=QR(ZR(e));return t.push(this.sourceToken),{type:`block-map`,offset:this.offset,indent:this.indent,items:[{start:t,explicitKey:!0}]}}case`map-value-ind`:{this.onKeyLine=!0;let t=QR(ZR(e));return{type:`block-map`,offset:this.offset,indent:this.indent,items:[{start:t,key:null,sep:[this.sourceToken]}]}}}return null}atIndentedComment(e,t){return this.type!==`comment`||this.indent<=t?!1:e.every(e=>e.type===`newline`||e.type===`space`)}*documentEnd(e){this.type!==`doc-mode`&&(e.end?e.end.push(this.sourceToken):e.end=[this.sourceToken],this.type===`newline`&&(yield*this.pop()))}*lineEnd(e){switch(this.type){case`comma`:case`doc-start`:case`doc-end`:case`flow-seq-end`:case`flow-map-end`:case`map-value-ind`:yield*this.pop(),yield*this.step();break;case`newline`:this.onKeyLine=!1;default:e.end?e.end.push(this.sourceToken):e.end=[this.sourceToken],this.type===`newline`&&(yield*this.pop())}}};function nz(e){let t=e.prettyErrors!==!1;return{lineCounter:e.lineCounter||t&&new qR||null,prettyErrors:t}}function rz(e,t={}){let{lineCounter:n,prettyErrors:r}=nz(t),i=new tz(n?.addNewLine),a=new NR(t),o=null;for(let t of a.compose(i.parse(e),!0,e.length))if(!o)o=t;else if(o.options.logLevel!==`silent`){o.errors.push(new YL(t.range.slice(0,2),`MULTIPLE_DOCS`,`Source contains multiple documents; please use YAML.parseAllDocuments()`));break}return r&&n&&(o.errors.forEach(ZL(e,n)),o.warnings.forEach(ZL(e,n))),o}function iz(e,t,n){let r;typeof t==`function`?r=t:n===void 0&&t&&typeof t==`object`&&(n=t);let i=rz(e,n);if(!i)return null;if(i.warnings.forEach(e=>BI(i.options.logLevel,e)),i.errors.length>0){if(i.options.logLevel!==`silent`)throw i.errors[0];i.errors=[]}return i.toJS(Object.assign({reviver:r},n))}var az=()=>typeof globalThis.crypto?.randomUUID==`function`?globalThis.crypto.randomUUID():`${Date.now().toString(36)}_${Math.random().toString(36).slice(2,10)}`,oz={trustedProxies:[],discoveryEnabled:!1,discoveryServiceName:``,discoveryServiceType:``,discoverySubtypes:[],discoveryInterfacesInclude:[],discoveryInterfacesExclude:[],discoveryAuthRequired:!0,discoveryAdvertiseManagement:!1,routingSessionAffinitySubagents:!0,saveCooldownStatus:!1,transientErrorCooldownSeconds:``,videoResultAuthCacheTTL:``,claudeHeaderTimezone:``,claudeModelLevelCooling:!1,claudeDisableCloakMode:!1,claudeCodeDisableCloakingModelList:!1,codexDisableCloaking:!1,codexModelLevelCooling:!1,codexStreamBootstrapBuffering:!1,codexStreamBootstrapTimeout:``,codexOptimizeMultiAgentV2:!1,codexOrphanDelegationCompatibility:!1,codexResponseSteering:!1,antigravityConnectionPoolEnabled:!1,antigravityConnectionPoolIdleTimeout:``,antigravityConnectionPoolMaxIdleConnsPerHost:``,xaiInjectXSearch:!1,codexLiveMediaRelayEnabled:!1,codexLiveMediaRelayMaxSessions:``,codexLiveMediaRelayDisablePrivateRemoteIPs:!1,codexLiveMediaRelayPublicIP:``,codexLiveMediaRelayUDPPortMin:``,codexLiveMediaRelayUDPPortMax:``,codexLiveMediaRelayICEServers:[],host:``,port:``,tlsEnable:!1,tlsCert:``,tlsKey:``,rmAllowRemote:!1,rmSecretKey:``,rmDisableControlPanel:!1,rmDisableAutoUpdatePanel:!1,rmPanelRepo:``,authDir:``,apiKeysText:``,pluginsEnabled:!1,pluginStoreSources:[],pluginStoreAuth:[],debug:!1,commercialMode:!1,loggingToFile:!1,logsMaxTotalSizeMb:``,errorLogsMaxFiles:``,usageStatisticsEnabled:!1,redisUsageQueueRetentionSeconds:``,proxyUrl:``,forceModelPrefix:!1,passthroughHeaders:!1,requestRetry:``,maxRetryCredentials:``,maxRetryInterval:``,disableCooling:!1,disableImageGeneration:`false`,gptImage2BaseModel:``,authAutoRefreshWorkers:``,quotaSwitchProject:!1,quotaSwitchPreviewModel:!1,quotaAntigravityCredits:!1,routingStrategy:`round-robin`,routingSessionAffinity:!1,routingSessionAffinityTTL:``,wsAuth:!0,antigravitySensitiveWords:[],devinSensitiveWords:[],antigravitySignatureCacheEnabled:!0,antigravitySignatureBypassStrict:!1,claudeHeaderUserAgent:``,claudeHeaderPackageVersion:``,claudeHeaderRuntimeVersion:``,claudeHeaderOs:``,claudeHeaderArch:``,claudeHeaderTimeout:``,claudeHeaderStabilizeDeviceProfile:!1,codexHeaderUserAgent:``,codexHeaderBetaFeatures:``,payloadDefaultRules:[],payloadDefaultRawRules:[],payloadOverrideRules:[],payloadOverrideRawRules:[],payloadFilterRules:[],streaming:{keepaliveSeconds:``,bootstrapRetries:``,nonstreamKeepaliveInterval:``}},sz=e=>typeof e==`object`&&!!e&&!Array.isArray(e),cz=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),lz=()=>Object.create(null);function uz(e){let t=rz(e,{intAsBigInt:!0});if(t.errors.length||t.warnings.length)throw Error(`Invalid configuration YAML: ${[...t.errors,...t.warnings][0].message}`);let n=new Set;function r(e){if(e===null||typeof e==`string`||typeof e==`boolean`)return e;if(typeof e==`bigint`){let t=Number(e);if(!Number.isSafeInteger(t))throw Error(`Configuration integer is not JSON-safe`);return t}if(typeof e==`number`&&Number.isFinite(e))return e;if(typeof e!=`object`||!e||n.has(e))throw Error(`Configuration must contain only JSON-representable values`);n.add(e);try{if(Array.isArray(e))return e.map(r);if(e instanceof Map){let t=lz();for(let[n,i]of e){if(typeof n!=`string`)throw Error(`Configuration map keys must be strings`);t[n]=r(i)}return t}throw Error(`Configuration must contain only JSON-representable values`)}finally{n.delete(e)}}let i=r(t.toJS({mapAsMap:!0,maxAliasCount:100}));if(!sz(i))throw Error(`Configuration root must be a map`);return i}function dz(e,t){return e===t?!0:Array.isArray(e)&&Array.isArray(t)?e.length===t.length&&e.every((e,n)=>dz(e,t[n])):sz(e)&&sz(t)?Object.keys(e).length===Object.keys(t).length&&Object.keys(e).every(n=>cz(t,n)&&dz(e[n],t[n])):!1}function fz(e){if(!e.length||e.some(e=>!e||e===`.`||e===`..`||e.includes(`/`)||e.includes(`\\`)||Array.from(e).some(e=>e.charCodeAt(0)<32||e.charCodeAt(0)===127)))throw Error(`Configuration field path cannot be safely represented`);return`/config/${e.map(e=>encodeURIComponent(e)).join(`/`)}`}function pz(e,t){let n=uz(e),r=uz(t),i=[],a=[];function o(e,t){if(sz(e)&&Object.keys(e).length)for(let n of Object.keys(e))o(e[n],[...t,n]);else fz(t),i.push(t)}function s(e,t,n){let r=lz();for(let r of Object.keys(e))cz(t,r)||o(e[r],[...n,r]);for(let i of Object.keys(t))if(!(cz(e,i)&&dz(e[i],t[i])))if(cz(e,i)&&sz(e[i])&&sz(t[i])){if(Object.keys(t[i]).length===0){let e=[...n,i];fz(e),a.push(e);continue}let o=s(e[i],t[i],[...n,i]);Object.keys(o).length&&(r[i]=o)}else r[i]=t[i];return r}return{patch:s(n,r,[]),deletions:i,...a.length?{emptyMaps:a}:{}}}var mz=class extends Error{constructor(e){super(`Configuration list changed concurrently: ${e.join(`.`)}`),cp(this,`path`,void 0),this.path=e,this.name=`ConfigDraftConflictError`}};function hz(e,t,n,r){let i=uz(e),a=uz(t),o=uz(n),s=(e,t)=>t.reduce((e,t)=>sz(e)&&cz(e,t)?e[t]:void 0,e),c=(e,t,n,r)=>{if(Array.isArray(e)||Array.isArray(t)){if(!dz(n,e)&&!dz(n,t))throw new mz(r);return}let l=new Set([...Object.keys(sz(e)?e:{}),...Object.keys(sz(t)?t:{})]);for(let e of l){let t=[...r,e],n=s(i,t),l=s(a,t);dz(n,l)||c(n,l,s(o,t),t)}};if(r)for(let e of r)c(s(i,e),s(a,e),s(o,e),e);else c(i,a,o,[])}function gz(e,t,n){let r=pz(e,t);hz(e,t,n);let i=rz(n),a=e=>{for(let t=1;t<e.length;t+=1){let n=e.slice(0,t);PF(i.getIn(n,!0))||i.setIn(n,i.createNode({}))}},o=(e,t)=>{for(let[n,r]of Object.entries(e)){let e=[...t,n];a(e),sz(r)?(PF(i.getIn(e,!0))||i.setIn(e,i.createNode({})),o(r,e)):i.setIn(e,i.createNode(r))}};o(r.patch,[]);for(let e of r.emptyMaps??[])a(e),i.setIn(e,i.createNode({}));for(let e of r.deletions)if(i.hasIn(e)){i.deleteIn(e);for(let t=e.length-1;t>0;--t){let n=e.slice(0,t),r=i.getIn(n,!0);if(!PF(r)||r.items.length>0)break;i.deleteIn(n)}}return i.toString({indent:2,lineWidth:120,minContentWidth:0})}function _z(e){return Object.keys(e.patch).length>0||e.deletions.length>0||!!e.emptyMaps?.length}async function vz(e,t){let n=()=>{if(W.getConnectionRevision()!==t)throw Error(`Connection changed while saving configuration`)},r=e.deletions.map(fz),i=(e.emptyMaps??[]).map(fz);if(n(),Object.keys(e.patch).length)try{await W.patch(`/config`,e.patch)}finally{n()}for(let e of i){n();try{await W.put(e,{})}finally{n()}}for(let e of r){n();try{await W.delete(e)}catch(e){if(!e||typeof e!=`object`||!(`status`in e)||e.status!==404)throw e}finally{n()}}}function yz(e,t){if(typeof e==`boolean`)return e;switch(e){case`y`:case`Y`:case`yes`:case`Yes`:case`YES`:case`on`:case`On`:case`ON`:return!0;case`n`:case`N`:case`no`:case`No`:case`NO`:case`off`:case`Off`:case`OFF`:return!1;default:return t}}var bz=[{key:`routingSessionAffinitySubagents`,path:`routing.session-affinity-subagents`.split(`.`),kind:`boolean`},{key:`saveCooldownStatus`,path:`routing.cooldown.save-cooldown-status`.split(`.`),kind:`boolean`},{key:`transientErrorCooldownSeconds`,path:`routing.cooldown.transient-error-cooldown-seconds`.split(`.`),kind:`integer`},{key:`videoResultAuthCacheTTL`,path:`multimedia.video-result-auth-cache-ttl`.split(`.`),kind:`string`},{key:`claudeHeaderTimezone`,path:`oauth.providers.claude.header-defaults.timezone`.split(`.`),kind:`string`},{key:`claudeModelLevelCooling`,path:`oauth.providers.claude.model-level-cooling`.split(`.`),kind:`boolean`},{key:`claudeDisableCloakMode`,path:`oauth.providers.claude.disable-claude-cloak-mode`.split(`.`),kind:`boolean`},{key:`claudeCodeDisableCloakingModelList`,path:`oauth.providers.claude.claude-code.disable-cloaking-model-list`.split(`.`),kind:`boolean`},{key:`codexDisableCloaking`,path:`oauth.providers.codex.disable-codex-cloaking`.split(`.`),kind:`boolean`},{key:`codexModelLevelCooling`,path:`oauth.providers.codex.model-level-cooling`.split(`.`),kind:`boolean`},{key:`codexStreamBootstrapBuffering`,path:`oauth.providers.codex.stream-bootstrap-buffering`.split(`.`),kind:`boolean`},{key:`codexStreamBootstrapTimeout`,path:`oauth.providers.codex.stream-bootstrap-timeout`.split(`.`),kind:`string`},{key:`codexOptimizeMultiAgentV2`,path:`oauth.providers.codex.optimize-multi-agent-v2`.split(`.`),kind:`boolean`},{key:`codexOrphanDelegationCompatibility`,path:`oauth.providers.codex.orphan-delegation-compatibility`.split(`.`),kind:`boolean`},{key:`codexResponseSteering`,path:`oauth.providers.codex.response-steering`.split(`.`),kind:`boolean`},{key:`antigravityConnectionPoolEnabled`,path:`oauth.providers.antigravity.connection-pool.enabled`.split(`.`),kind:`boolean`},{key:`antigravityConnectionPoolIdleTimeout`,path:`oauth.providers.antigravity.connection-pool.idle-conn-timeout`.split(`.`),kind:`string`},{key:`antigravityConnectionPoolMaxIdleConnsPerHost`,path:`oauth.providers.antigravity.connection-pool.max-idle-conns-per-host`.split(`.`),kind:`integer`},{key:`xaiInjectXSearch`,path:`oauth.providers.xai.inject-x-search`.split(`.`),kind:`boolean`},{key:`codexLiveMediaRelayEnabled`,path:`oauth.providers.codex.live-media-relay.enabled`.split(`.`),kind:`boolean`},{key:`codexLiveMediaRelayMaxSessions`,path:`oauth.providers.codex.live-media-relay.max-sessions`.split(`.`),kind:`integer`},{key:`codexLiveMediaRelayDisablePrivateRemoteIPs`,path:`oauth.providers.codex.live-media-relay.disable-private-remote-ips`.split(`.`),kind:`boolean`},{key:`codexLiveMediaRelayPublicIP`,path:`oauth.providers.codex.live-media-relay.public-ip`.split(`.`),kind:`string`},{key:`codexLiveMediaRelayUDPPortMin`,path:`oauth.providers.codex.live-media-relay.udp-port-min`.split(`.`),kind:`integer`},{key:`codexLiveMediaRelayUDPPortMax`,path:`oauth.providers.codex.live-media-relay.udp-port-max`.split(`.`),kind:`integer`}],xz=`codexLiveMediaRelayICEServers`,Sz=[`oauth`,`providers`,`codex`,`live-media-relay`,`ice-servers`];function Cz(e){let t={};for(let{key:n,path:r,kind:i}of bz){let a=e.getIn(r);Object.assign(t,{[n]:i===`boolean`?yz(a,oz[n]):String(a??``)})}let n=e.getIn(Sz,!0);return t[xz]=LF(n)?n.items.map((e,t)=>{let n=PF(e)?e.toJSON():{};return{id:`ice-${t}`,urlsText:Array.isArray(n.urls)?n.urls.join(`
`):``,username:String(n.username??``),credential:String(n.credential??``)}}):[],t}function wz(e,t){for(let n=1;n<t.length;n++){let r=t.slice(0,n);PF(e.getIn(r,!0))||e.setIn(r,e.createNode({}))}}var Tz=e=>e.split(`
`).map(e=>e.trim()).filter(Boolean);function Ez(e,t,n){for(let{key:r,path:i,kind:a}of bz){if(!n.has(r))continue;let o=t[r];if(typeof o==`string`&&!o.trim()){e.deleteIn(i);continue}a===`integer`&&(!/^-?\d+$/.test(String(o).trim())||!Number.isSafeInteger(Number(o)))||(wz(e,i),e.setIn(i,a===`integer`?Number(o):o))}}function Dz(e,t,n,r,i,a){let o=rz(t),s=o.getIn(Sz,!0),c=new Map(r.map((e,t)=>[e.id,LF(s)?s.items[t]:void 0])),l=i.map(e=>{let t=c.get(e.id),n=PF(t)?t:o.createNode({}),i=r.find(t=>t.id===e.id);for(let[t,r,a]of[[`urls`,Tz(e.urlsText),i?.urlsText===e.urlsText],[`username`,e.username,i?.username===e.username],[`credential`,e.credential,i?.credential===e.credential]]){if(a)continue;let e=n.get(t,!0);if(IF(e)&&typeof r==`string`)e.value=r;else{let i=o.createNode(r);(PF(e)||LF(e)||IF(e))&&(i.comment=e.comment,i.commentBefore=e.commentBefore,i.spaceBefore=e.spaceBefore),n.set(t,i)}}return n});if(wz(o,Sz),LF(s)){let e=s.items[0];PF(e)&&(e.commentBefore=s.commentBefore),s.items=l,s.commentBefore=l[0]?.commentBefore,l[0]&&(l[0].commentBefore=void 0)}else o.setIn(Sz,o.createNode(l));let u=o.toString();a&&hz(n,u,e.toString(),[Sz]),wz(e,Sz),e.setIn(Sz,o.getIn(Sz,!0))}function Oz(e){if(/^[+-]?0$/.test(e))return 0;if(!/^[+-]?(?:(?:\d+(?:\.\d*)?|\.\d+)(?:ns|us|µs|μs|ms|s|m|h))+$/.test(e))return;let t={ns:1n,us:1000n,µs:1000n,μs:1000n,ms:1000000n,s:1000000000n,m:60000000000n,h:3600000000000n},n=0n;for(let r of e.matchAll(/(\d+(?:\.\d*)?|\.\d+)(ns|us|µs|μs|ms|s|m|h)/g)){let[e,i=``]=r[1].split(`.`),a=t[r[2]];n+=BigInt(e||`0`)*a,i&&(n+=BigInt(i)*a/10n**BigInt(i.length))}let r=e.startsWith(`-`);if(!(n>(r?9223372036854775808n:9223372036854775807n)))return Number(r?-n:n)/1e9}function kz(e){if(!e.includes(`:`))return/^(?:0|[1-9]\d{0,2})(?:\.(?:0|[1-9]\d{0,2})){3}$/.test(e)&&e.split(`.`).every(e=>Number(e)<=255);if(!/^[\da-fA-F:.]+$/.test(e)||e.includes(`.`)&&!kz(e.slice(e.lastIndexOf(`:`)+1)))return!1;try{return new URL(`http://[${e}]/`).hostname.startsWith(`[`)}catch{return!1}}function Az(e,t){let n={transientErrorCooldownSeconds:void 0,videoResultAuthCacheTTL:void 0,claudeHeaderTimezone:void 0,codexStreamBootstrapTimeout:void 0,antigravityConnectionPoolIdleTimeout:void 0,antigravityConnectionPoolMaxIdleConnsPerHost:void 0,codexLiveMediaRelayMaxSessions:void 0,codexLiveMediaRelayPublicIP:void 0,codexLiveMediaRelayUDPPortMin:void 0,codexLiveMediaRelayUDPPortMax:void 0,codexLiveMediaRelayICEServers:void 0};for(let{key:t,kind:r}of bz){let i=String(e[t]).trim();if(!i||r!==`integer`)continue;let a=t===`transientErrorCooldownSeconds`||t===`antigravityConnectionPoolMaxIdleConnsPerHost`||t===`codexLiveMediaRelayMaxSessions`&&!e.codexLiveMediaRelayEnabled;(!/^-?\d+$/.test(i)||!Number.isSafeInteger(Number(i))||!a&&Number(i)<0)&&Object.assign(n,{[t]:a?`integer`:`non_negative_integer`})}for(let r of[`videoResultAuthCacheTTL`,`antigravityConnectionPoolIdleTimeout`,`codexStreamBootstrapTimeout`]){if(t&&!t.has(r))continue;let i=e[r].trim();if(!i)continue;let a=r===`codexStreamBootstrapTimeout`;if(a&&/^(none|unlimited|disabled|off|never)$/i.test(i))continue;let o=a&&/^\+?\d+$/.test(i)&&Number(i)<=9223372036?Number(i):Oz(i);o===void 0||a&&o<0?n[r]=`invalid_duration`:r===`videoResultAuthCacheTTL`&&o<=0&&(n[r]=`positive_duration`)}let r=e.claudeHeaderTimezone.trim();if(r&&r!==`Local`)try{if(/^[+-]/.test(r))throw Error(`Not an IANA timezone`);new Intl.DateTimeFormat(`en`,{timeZone:r})}catch{n.claudeHeaderTimezone=`invalid_timezone`}for(let t of[`codexLiveMediaRelayUDPPortMin`,`codexLiveMediaRelayUDPPortMax`]){let r=e[t].trim();r&&(!/^\d+$/.test(r)||Number(r)>65535)&&(n[t]=`integer_range_0_65535`)}if(!e.codexLiveMediaRelayEnabled)return n;let i=e.codexLiveMediaRelayPublicIP.trim();i&&!kz(i)&&(n.codexLiveMediaRelayPublicIP=`invalid_ip`);let a=Number(e.codexLiveMediaRelayUDPPortMin.trim()),o=Number(e.codexLiveMediaRelayUDPPortMax.trim());return!n.codexLiveMediaRelayUDPPortMin&&!n.codexLiveMediaRelayUDPPortMax&&(a===0!=(o===0)||a>o?n.codexLiveMediaRelayUDPPortMin=n.codexLiveMediaRelayUDPPortMax=`udp_port_pair`:a&&!n.codexLiveMediaRelayMaxSessions&&o-a+1<(Number(e.codexLiveMediaRelayMaxSessions)||32)*2&&(n.codexLiveMediaRelayUDPPortMin=n.codexLiveMediaRelayUDPPortMax=`udp_port_capacity`)),e.codexLiveMediaRelayICEServers.some(e=>{let t=Tz(e.urlsText);return!t.length||t.some(e=>{if(!/^(stun|stuns|turn|turns):/i.test(e)||/\s|%(?![\da-f]{2})/i.test(e))return!0;try{return new URL(e),!1}catch{return!0}})})&&(n[xz]=`invalid_ice_servers`),n}var jz=[{key:`trustedProxies`,path:[`server`,`trusted-proxies`],kind:`list`},{key:`discoveryEnabled`,path:[`server`,`discovery`,`enabled`],kind:`boolean`},{key:`discoveryServiceName`,path:[`server`,`discovery`,`service-name`],kind:`string`},{key:`discoveryServiceType`,path:[`server`,`discovery`,`service-type`],kind:`string`},{key:`discoverySubtypes`,path:[`server`,`discovery`,`subtypes`],kind:`list`},{key:`discoveryInterfacesInclude`,path:[`server`,`discovery`,`interfaces`,`include`],kind:`list`},{key:`discoveryInterfacesExclude`,path:[`server`,`discovery`,`interfaces`,`exclude`],kind:`list`},{key:`discoveryAuthRequired`,path:[`server`,`discovery`,`auth-required`],kind:`boolean`},{key:`discoveryAdvertiseManagement`,path:[`server`,`discovery`,`advertise-management`],kind:`boolean`}],Mz=e=>e.map(e=>e.trim()).filter(Boolean);function Nz(e){let t={};for(let{key:n,path:r,kind:i}of jz){let a=e.getIn(r);Object.assign(t,{[n]:i===`list`?LF(a)?Mz(a.items.flatMap(e=>IF(e)&&typeof e.value==`string`?[e.value]:[])):[]:i===`boolean`?yz(a,oz[n]):typeof a==`string`?a:oz[n]})}return t}function Pz(e,t){for(let n=1;n<t.length;n++){let r=t.slice(0,n),i=e.getIn(r,!0);if(!PF(i)){let t=e.createNode({});(IF(i)||LF(i))&&(t.comment=i.comment,t.commentBefore=i.commentBefore,t.spaceBefore=i.spaceBefore),e.setIn(r,t)}}}function Fz(e,t,n,r,i,a){let o=rz(r),s=e.toString();for(let{key:r,path:c,kind:l}of jz){if(!n.has(r))continue;let u=t[r];if(l===`list`&&Array.isArray(u)){let t=o.getIn(c,!0),n=LF(t)?t:o.createNode([]),r=[...n.items];n.items=Mz(u).map(e=>{let t=r.findIndex(t=>IF(t)&&t.value===e);return t<0?o.createNode(e):r.splice(t,1)[0]}),Pz(o,c),o.setIn(c,n),a&&hz(i,o.toString(),s,[c]),Pz(e,c),e.setIn(c,n)}else{Pz(e,c);let t=e.getIn(c,!0),n=typeof u==`string`?u.trim():u;IF(t)?t.value=n:e.setIn(c,n)}}}function Iz(e){return/^(?:0|[1-9]\d{0,2})(?:\.(?:0|[1-9]\d{0,2})){3}$/.test(e)&&e.split(`.`).every(e=>Number(e)<=255)}function Lz(e){if(!e.includes(`:`)||!/^[\da-fA-F:.]+$/.test(e)||e.includes(`.`)&&!Iz(e.slice(e.lastIndexOf(`:`)+1)))return!1;try{return new URL(`http://[${e}]/`).hostname.startsWith(`[`)}catch{return!1}}function Rz(e){let t=e.trim().split(`/`);if(t.length>2)return!1;let[n,r]=t,i=n.includes(`:`);return(i?Lz(n):Iz(n))?r===void 0||/^\d+$/.test(r)&&Number(r)<=(i?128:32):!1}function zz(e){let t=e.discoveryServiceType.trim();return{trustedProxies:Mz(e.trustedProxies).every(Rz)?void 0:`invalid_trusted_proxies`,discoveryServiceType:!e.discoveryEnabled||!t||/^_[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,13}[a-zA-Z0-9])?\._tcp$/.test(t)?void 0:`invalid_discovery_service_type`}}function Bz(e){return typeof e!=`object`||!e||Array.isArray(e)?null:e}function Vz(e){if(!Array.isArray(e))return``;let t=[];for(let n of e){let e=typeof n==`string`?n.trim():``;e&&t.push(e)}return t.join(`
`)}function Hz(e,t){return e.hasIn(t)}function Uz(e,t){PF(e.getIn(t,!0))||e.setIn(t,e.createNode({}))}function Wz(e,t){let n=e.getIn(t,!0);PF(n)&&n.items.length===0&&Gz(e,t)}function Gz(e,t){e.deleteIn(t),t.length>1&&Wz(e,t.slice(0,-1))}function Kz(e,t,n){e.setIn(t,n)}function qz(e,t,n){let r=typeof n==`string`?n:``;if(r.trim()!==``){e.setIn(t,r);return}Hz(e,t)&&e.setIn(t,``)}function Jz(e,t,n){let r=n.map(e=>e.trim()).filter(Boolean);if(r.length>0){e.setIn(t,r);return}Hz(e,t)&&Gz(e,t)}function Yz(e,t,n){let r=(typeof n==`string`?n:``).trim();if(r===``){Hz(e,t)&&Gz(e,t);return}if(!/^-?\d+$/.test(r))return;let i=Number(r);if(Number.isSafeInteger(i)){e.setIn(t,i);return}}function Xz(e,t,n){if(n===`chat`||n===`passthrough`){e.setIn(t,n);return}if(n===`true`){e.setIn(t,!0);return}Hz(e,t)&&e.setIn(t,!1)}var Zz=[`payloadDefaultRules`,`payloadDefaultRawRules`,`payloadOverrideRules`,`payloadOverrideRawRules`,`payloadFilterRules`],Qz=[`default`,`default-raw`,`override`,`override-raw`,`filter`];function $z(e){return Zz.some(t=>e.has(t))}function eB(e){let t=e.trim();if(t)return/^-?\d+$/.test(t)&&Number.isSafeInteger(Number(t))?void 0:`integer`}function tB(e){return eB(e)?`non_negative_integer`:Number(e.trim())>=0?void 0:`non_negative_integer`}function nB(e){let t=e.trim();if(!t)return;if(!/^\d+$/.test(t))return`port_range`;let n=Number(t);return n>=1&&n<=65535?void 0:`port_range`}function rB(e){let t=e.trim();if(!t)return;if(!/^\d+$/.test(t))return`integer_range_1_3600`;let n=Number(t);return n>=1&&n<=3600?void 0:`integer_range_1_3600`}function iB(e,t){return{...Az(e,t),...zz(e),port:nB(e.port),errorLogsMaxFiles:tB(e.errorLogsMaxFiles),logsMaxTotalSizeMb:tB(e.logsMaxTotalSizeMb),redisUsageQueueRetentionSeconds:rB(e.redisUsageQueueRetentionSeconds),requestRetry:tB(e.requestRetry),maxRetryCredentials:eB(e.maxRetryCredentials),maxRetryInterval:eB(e.maxRetryInterval),authAutoRefreshWorkers:eB(e.authAutoRefreshWorkers),"streaming.keepaliveSeconds":eB(e.streaming.keepaliveSeconds),"streaming.bootstrapRetries":eB(e.streaming.bootstrapRetries),"streaming.nonstreamKeepaliveInterval":eB(e.streaming.nonstreamKeepaliveInterval)}}function aB(e){let t=e.value.trim();switch(e.valueType){case`number`:{if(!t)return`payload_invalid_number`;let e=Number(t);return Number.isFinite(e)?void 0:`payload_invalid_number`}case`boolean`:{let e=t.toLowerCase();return e===`true`||e===`false`?void 0:`payload_invalid_boolean`}case`json`:if(!t)return`payload_invalid_json`;try{JSON.parse(e.value);return}catch{return`payload_invalid_json`}default:return}}function oB(e){return e.some(e=>e.params.some(e=>!!aB(e))||e.models.some(e=>(e.match??[]).some(e=>!!aB(e))||(e.notMatch??[]).some(e=>!!aB(e))))}function sB(e){return typeof structuredClone==`function`?structuredClone(e):JSON.parse(JSON.stringify(e))}function cB(e,t){if(e===t)return!0;if(e.length!==t.length)return!1;for(let n=0;n<e.length;n+=1){let r=e[n],i=t[n];if(!r||!i||r.id!==i.id||r.name!==i.name||r.protocol!==i.protocol||r.fromProtocol!==i.fromProtocol||!uB(r.headers,i.headers)||!lB(r.match??[],i.match??[])||!lB(r.notMatch??[],i.notMatch??[])||!dB(r.exist,i.exist)||!dB(r.notExist,i.notExist))return!1}return!0}function lB(e,t){if(e===t)return!0;if(e.length!==t.length)return!1;for(let n=0;n<e.length;n+=1){let r=e[n],i=t[n];if(!r||!i||r.id!==i.id||r.path!==i.path||r.valueType!==i.valueType||r.value!==i.value)return!1}return!0}function uB(e,t){let n=e??[],r=t??[];if(n===r)return!0;if(n.length!==r.length)return!1;for(let e=0;e<n.length;e+=1){let t=n[e],i=r[e];if(!t||!i||t.id!==i.id||t.name!==i.name||t.value!==i.value)return!1}return!0}function dB(e,t){let n=e??[],r=t??[];if(n===r)return!0;if(n.length!==r.length)return!1;for(let e=0;e<n.length;e+=1)if(n[e]!==r[e])return!1;return!0}function fB(e,t){let n=e??[],r=t??[];if(n===r)return!0;if(n.length!==r.length)return!1;for(let e=0;e<n.length;e+=1){let t=n[e],i=r[e];if(!t||!i||t.match!==i.match||t.type!==i.type||t.tokenEnv!==i.tokenEnv||t.usernameEnv!==i.usernameEnv||t.passwordEnv!==i.passwordEnv||t.headerName!==i.headerName||t.headerValueEnv!==i.headerValueEnv||t.allowInsecure!==i.allowInsecure||!dB(t.applyTo,i.applyTo))return!1}return!0}function pB(e,t){if(e===t)return!0;if(e.length!==t.length)return!1;for(let n=0;n<e.length;n+=1){let r=e[n],i=t[n];if(!r||!i||r.id!==i.id||!cB(r.models,i.models)||!lB(r.params,i.params))return!1}return!0}function mB(e,t){if(e===t)return!0;if(e.length!==t.length)return!1;for(let n=0;n<e.length;n+=1){let r=e[n],i=t[n];if(!r||!i||r.id!==i.id||!cB(r.models,i.models)||r.params.length!==i.params.length)return!1;for(let e=0;e<r.params.length;e+=1)if(r.params[e]!==i.params[e])return!1}return!0}function hB(e){if(typeof e==`number`)return{valueType:`number`,value:String(e)};if(typeof e==`boolean`)return{valueType:`boolean`,value:String(e)};if(e===null||typeof e==`object`)try{return{valueType:`json`,value:JSON.stringify(e,null,2)??`null`}}catch{return{valueType:`json`,value:String(e)}}return{valueType:`string`,value:String(e??``)}}function gB(e){if(typeof e==`string`)return e;try{return JSON.stringify(e,null,2)??``}catch{return String(e??``)}}function _B(e){if(typeof e==`string`)return e.trim()?e:void 0}function vB(e){let t=String(e??``).trim().toLowerCase();return[`weighted-round-robin`,`weightedroundrobin`,`wrr`].includes(t)?`weighted-round-robin`:[`fill-first`,`fillfirst`,`ff`].includes(t)?`fill-first`:`round-robin`}function yB(e){if(e===!0)return`true`;if(typeof e==`string`){let t=e.trim().toLowerCase();if(t===`true`)return`true`;if(t===`chat`)return`chat`;if(t===`passthrough`)return`passthrough`}return`false`}function bB(e,t){let n=Bz(e);return n?Object.entries(n).map(([e,n],r)=>({id:`${t}-header-${r}`,name:e,value:String(n??``)})):[]}function xB(e,t){if(!Array.isArray(e))return[];let n=[];return e.forEach((e,r)=>{let i=Bz(e);if(!i){typeof e==`string`&&n.push({id:`${t}-condition-${r}-0`,path:e,valueType:`string`,value:``});return}Object.entries(i).forEach(([e,i],a)=>{let o=hB(i);n.push({id:`${t}-condition-${r}-${a}`,path:e,valueType:o.valueType,value:o.value})})}),n}function SB(e){return Array.isArray(e)?e.map(e=>String(e??``).trim()).filter(Boolean):[]}var CB=[`none`,`bearer`,`basic`,`header`,`github-token`],wB=[`registry`,`metadata`,`artifact`];function TB(e){let t=String(e??``).trim().toLowerCase();return CB.includes(t)?t:`none`}function EB(e){return SB(e).map(e=>e.toLowerCase()).filter(e=>wB.includes(e))}function DB(e){return Array.isArray(e)?e.map((e,t)=>{let n=Bz(e);if(!n)return null;let r=typeof n.match==`string`?n.match:``,i={id:`plugin-store-auth-${t}`,match:r,applyTo:EB(n[`apply-to`]??n.apply_to),type:TB(n.type),tokenEnv:typeof n[`token-env`]==`string`?n[`token-env`]:``,usernameEnv:typeof n[`username-env`]==`string`?n[`username-env`]:``,passwordEnv:typeof n[`password-env`]==`string`?n[`password-env`]:``,headerName:typeof n[`header-name`]==`string`?n[`header-name`]:``,headerValueEnv:typeof n[`header-value-env`]==`string`?n[`header-value-env`]:``,allowInsecure:!!(n[`allow-insecure`]??n.allow_insecure)};return i.match.trim()||i.type!==`none`||i.applyTo.length>0||i.tokenEnv.trim()||i.usernameEnv.trim()||i.passwordEnv.trim()||i.headerName.trim()||i.headerValueEnv.trim()||i.allowInsecure?i:null}).filter(e=>!!e):[]}function OB(e,t){return Array.isArray(e)?e.map((e,n)=>{let r=Bz(e),i=typeof e==`string`?e:r?.name??r?.id??``,a=typeof i==`string`?i:String(i??``),o=`${t}-${n}`;return{id:o,name:a,protocol:_B(r?.protocol),fromProtocol:_B(r?.[`from-protocol`]),headers:bB(r?.headers,o),match:xB(r?.match,`${o}-match`),notMatch:xB(r?.[`not-match`],`${o}-not-match`),exist:SB(r?.exist),notExist:SB(r?.[`not-exist`])}}):[]}function kB(e){return Array.isArray(e)?e.map((e,t)=>{let n=Bz(e)??{},r=OB(n.models,`model-${t}`),i=Bz(n.params),a=i?Object.entries(i).map(([e,n],r)=>{let i=hB(n);return{id:`param-${t}-${r}`,path:e,valueType:i.valueType,value:i.value}}):[];return{id:`payload-rule-${t}`,models:r,params:a}}):[]}function AB(e){return Array.isArray(e)?e.map((e,t)=>{let n=Bz(e)??{},r=OB(n.models,`filter-model-${t}`),i=n.params,a=Array.isArray(i)?i.map(String):[];return{id:`payload-filter-rule-${t}`,models:r,params:a}}):[]}function jB(e){return Array.isArray(e)?e.map((e,t)=>{let n=Bz(e)??{},r=OB(n.models,`raw-model-${t}`),i=Bz(n.params),a=i?Object.entries(i).map(([e,n],r)=>({id:`raw-param-${t}-${r}`,path:e,valueType:`json`,value:gB(n)})):[];return{id:`payload-raw-rule-${t}`,models:r,params:a}}):[]}function MB(e){if(e.valueType===`number`){let t=Number(e.value);return Number.isFinite(t)?t:e.value}if(e.valueType===`boolean`)return e.value===`true`;if(e.valueType===`json`)try{return JSON.parse(e.value)}catch{return e.value}return e.value}function NB(e){return(e??[]).map(e=>e.trim()).filter(Boolean)}function PB(e){return e.map(e=>{let t=e.match.trim();if(!t)return null;let n={match:t,type:e.type},r=NB(e.applyTo);return r.length>0&&(n[`apply-to`]=r),e.tokenEnv.trim()&&(n[`token-env`]=e.tokenEnv.trim()),e.usernameEnv.trim()&&(n[`username-env`]=e.usernameEnv.trim()),e.passwordEnv.trim()&&(n[`password-env`]=e.passwordEnv.trim()),e.headerName.trim()&&(n[`header-name`]=e.headerName.trim()),e.headerValueEnv.trim()&&(n[`header-value-env`]=e.headerValueEnv.trim()),e.allowInsecure&&(n[`allow-insecure`]=!0),n}).filter(e=>!!e)}function FB(e,t){return e.items.find(e=>String(IF(e.key)?e.key.value:e.key)===t)}function IB(e,t){return e?(t.comment=e.comment,t.commentBefore=e.commentBefore,t.spaceBefore=e.spaceBefore,t):t}function LB(e,t,n){if(IF(t.value)&&(typeof n!=`object`||!n)){t.value.value=n;return}t.value=IB(t.value&&typeof t.value==`object`?t.value:void 0,e.createNode(n))}function RB(e,t,n,r){let i=FB(t,n);i?LB(e,i,r):t.items.push(e.createPair(n,r))}function zB(e,t){let n=FB(e,t);n&&e.items.splice(e.items.indexOf(n),1)}function BB(e,t,n){let r=FB(t,n);if(r&&PF(r.value))return r.value;let i=e.createNode({});if(!PF(i))throw Error(`Expected YAML map`);return r?r.value=IB(r.value&&typeof r.value==`object`?r.value:void 0,i):t.items.push(e.createPair(n,i)),i}function VB(e,t,n){let r=FB(t,n);if(r&&LF(r.value))return r.value;let i=e.createNode([]);if(!LF(i))throw Error(`Expected YAML sequence`);return r?r.value=IB(r.value&&typeof r.value==`object`?r.value:void 0,i):t.items.push(e.createPair(n,i)),i}function HB(e,t){let n=[...e.items],r=new Map;n.forEach((t,n)=>{r.set(t,n===0?e.commentBefore:t.commentBefore)}),t.forEach(e=>{e.commentBefore=r.get(e)}),e.items=t,e.commentBefore=t.length>0?t[0].commentBefore:void 0,t[0]&&(t[0].commentBefore=void 0)}function UB(e,t,n,r,i){let a=NB(i);if(a.length===0){zB(t,n);return}let o=VB(e,t,n),s=(r??[]).map((e,t)=>({value:e.trim(),index:t})),c=new Set;HB(o,a.map(t=>{let n=s.find(e=>e.value===t&&!c.has(e.index)),r=n?o.items[n.index]:void 0;return n&&c.add(n.index),IF(r)?(r.value=t,r):e.createNode(t)}))}function WB(e,t){let n=[...e.items],r=new Map;n.forEach((t,n)=>{let i=t.key&&typeof t.key==`object`?t.key:void 0;r.set(t,n===0?e.commentBefore:i?.commentBefore)}),t.forEach(e=>{let t=e.key&&typeof e.key==`object`?e.key:void 0;t&&(t.commentBefore=r.get(e))}),e.items=t;let i=t[0]?.key,a=i&&typeof i==`object`?i:void 0;e.commentBefore=a?.commentBefore,a&&(a.commentBefore=void 0)}function GB(e,t,n,r,i,a){let o=new Map;n.forEach(e=>{let n=FB(t,i(e));n&&o.set(e.id,n)});let s=new Set(n.map(e=>i(e))),c=r.filter(e=>i(e).trim()),l=new Set(c.map(e=>i(e).trim())),u=c.map(t=>{let n=i(t).trim(),r=o.get(t.id)??e.createPair(n,a(t));return IF(r.key)?r.key.value=n:r.key=e.createNode(n),LB(e,r,a(t)),r}),d=t.items.filter(e=>{let t=String(IF(e.key)?e.key.value:e.key);return!s.has(t)&&!l.has(t)});WB(t,[...u,...d])}function KB(e,t,n,r,i){if(JSON.stringify(r??[])===JSON.stringify(i??[]))return;let a=(i??[]).filter(e=>e.path.trim());if(a.length===0){zB(t,n);return}let o=VB(e,t,n),s=[];o.items.forEach((t,n)=>{if(PF(t))Object.keys(t.toJSON()).forEach(r=>{let i=FB(t,r);if(!i)return;let a=e.createNode({});a.flow=t.flow,a.items=[i],i===t.items[0]&&(a.commentBefore=n===0?o.commentBefore:t.commentBefore,a.spaceBefore=t.spaceBefore),i===t.items[t.items.length-1]&&(a.comment=t.comment),s.push(a)});else if(IF(t)&&typeof t.value==`string`){let r=e.createNode({[t.value]:``});IB(t,r),n===0&&(r.commentBefore=o.commentBefore),s.push(r)}});let c=new Map((r??[]).map((e,t)=>[e.id,s[t]])),l=new Map((r??[]).map(e=>[e.id,e])),u=a.map(t=>{let n=c.get(t.id)??e.createNode({}),r=l.get(t.id),i=n.items[0];return i?(IF(i.key)?i.key.value=t.path.trim():i.key=e.createNode(t.path.trim()),(r?.value!==t.value||r?.valueType!==t.valueType)&&LB(e,i,MB(t))):n.items.push(e.createPair(t.path.trim(),MB(t))),n});o.items=u,o.commentBefore=u[0]?.commentBefore,u[0]&&(u[0].commentBefore=void 0)}function qB(e,t,n,r){let i=r.filter(e=>e.name.trim()),a=VB(e,t,`models`),o=new Map(n.map((e,t)=>[e.id,a.items[t]]));HB(a,i.map(t=>{let r=o.get(t.id),i=PF(r)?r:e.createNode({}),a=n.find(e=>e.id===t.id);RB(e,i,`name`,t.name.trim()),t.protocol?RB(e,i,`protocol`,t.protocol):zB(i,`protocol`),t.fromProtocol?RB(e,i,`from-protocol`,t.fromProtocol):zB(i,`from-protocol`);let s=t.headers?.filter(e=>e.name.trim())??[];return s.length?GB(e,BB(e,i,`headers`),a?.headers??[],s,e=>e.name,e=>e.value):zB(i,`headers`),KB(e,i,`match`,a?.match,t.match),KB(e,i,`not-match`,a?.notMatch,t.notMatch),UB(e,i,`exist`,a?.exist,t.exist),UB(e,i,`not-exist`,a?.notExist,t.notExist),i}))}function JB(e,t,n,r,i){let a=e.getIn([`requests`,`payload`],!0);if(!PF(a))throw Error(`Expected payload map`);let o=r.filter(e=>e.models.some(e=>e.name.trim()));if(o.length===0){zB(a,t);return}let s=VB(e,a,t),c=new Map(n.map((e,t)=>[e.id,s.items[t]]));HB(s,o.map(t=>{let r=c.get(t.id),a=PF(r)?r:e.createNode({}),o=n.find(e=>e.id===t.id);return qB(e,a,o?.models??[],t.models),GB(e,BB(e,a,`params`),o?.params??[],t.params,e=>e.path,e=>i?e.value:MB(e)),a}))}function YB(e,t,n){let r=e.getIn([`requests`,`payload`],!0);if(!PF(r))throw Error(`Expected payload map`);let i=n.filter(e=>e.models.some(e=>e.name.trim()));if(i.length===0){zB(r,`filter`);return}let a=VB(e,r,`filter`),o=new Map(t.map((e,t)=>[e.id,a.items[t]]));HB(a,i.map(n=>{let r=o.get(n.id),i=PF(r)?r:e.createNode({}),a=t.find(e=>e.id===n.id);return qB(e,i,a?.models??[],n.models),UB(e,i,`params`,a?.params,n.params),i}))}function XB(e){return JSON.stringify(e,(e,t)=>e===`id`?void 0:t)}function ZB(e,t,n,r=e=>e){let i=new Set(e.map((e,t)=>t)),a=new Map;for(let r of[XB,n])t.forEach((t,n)=>{if(a.has(n))return;let o=r(t),s=[...i].find(t=>r(e[t])===o);s!==void 0&&(a.set(n,s),i.delete(s))});return t.map((t,n)=>{let i=a.get(n),o=i===void 0?void 0:e[i];return r({...t,id:o?.id??`rebase-new-${t.id}`},o)})}function QB(e,t){let n=(e,t)=>ZB(t,e,e=>e.path);return ZB(t,e,e=>JSON.stringify([e.name,e.protocol,e.fromProtocol]),(e,t)=>({...e,headers:ZB(t?.headers??[],e.headers??[],e=>e.name),match:n(e.match??[],t?.match??[]),notMatch:n(e.notMatch??[],t?.notMatch??[])}))}function $B(e,t){let n=e=>JSON.stringify(e.models.map(e=>[e.name,e.protocol,e.fromProtocol])),r=(e,t)=>ZB(e,t,n,(e,t)=>({...e,models:QB(e.models,t?.models??[]),params:ZB(t?.params??[],e.params,e=>e.path)}));return{...t,[xz]:ZB(e[xz],t[xz],e=>e.urlsText),payloadDefaultRules:r(e.payloadDefaultRules,t.payloadDefaultRules),payloadDefaultRawRules:r(e.payloadDefaultRawRules,t.payloadDefaultRawRules),payloadOverrideRules:r(e.payloadOverrideRules,t.payloadOverrideRules),payloadOverrideRawRules:r(e.payloadOverrideRawRules,t.payloadOverrideRawRules),payloadFilterRules:ZB(e.payloadFilterRules,t.payloadFilterRules,n,(e,t)=>({...e,models:QB(e.models,t?.models??[])})),pluginStoreAuth:ZB(e.pluginStoreAuth,t.pluginStoreAuth,e=>e.match)}}function eV(){let e=sB(oz);return{baselineYaml:`{}`,visualValues:e,baselineValues:sB(e),dirtyFields:new Set,visualParseError:null,rebasedPayload:null}}function tV(e,t){let n={...e,...t};return t.streaming&&(n.streaming={...e.streaming,...t.streaming}),n}function nV(e,t,n,r){let i=new Set(e),a=(e,t)=>{t?i.delete(e):i.add(e)},o=e=>{Object.prototype.hasOwnProperty.call(t,e)&&a(e,n[e]===r[e])};if(jz.forEach(({key:e})=>{Object.prototype.hasOwnProperty.call(t,e)&&a(e,JSON.stringify(n[e])===JSON.stringify(r[e]))}),bz.forEach(({key:e})=>o(e)),Object.prototype.hasOwnProperty.call(t,`codexLiveMediaRelayICEServers`)&&a(xz,XB(n[xz])===XB(r[xz])),`rmDisableAutoUpdatePanel.errorLogsMaxFiles.usageStatisticsEnabled.redisUsageQueueRetentionSeconds.pluginsEnabled.passthroughHeaders.disableCooling.disableImageGeneration.gptImage2BaseModel.authAutoRefreshWorkers.antigravitySignatureCacheEnabled.antigravitySignatureBypassStrict.claudeHeaderUserAgent.claudeHeaderPackageVersion.claudeHeaderRuntimeVersion.claudeHeaderOs.claudeHeaderArch.claudeHeaderTimeout.claudeHeaderStabilizeDeviceProfile.codexHeaderUserAgent.codexHeaderBetaFeatures.host.port.tlsEnable.tlsCert.tlsKey.rmAllowRemote.rmSecretKey.rmDisableControlPanel.rmPanelRepo.authDir.apiKeysText.debug.commercialMode.loggingToFile.logsMaxTotalSizeMb.proxyUrl.forceModelPrefix.requestRetry.maxRetryCredentials.maxRetryInterval.wsAuth.quotaSwitchProject.quotaSwitchPreviewModel.quotaAntigravityCredits.routingStrategy.routingSessionAffinity.routingSessionAffinityTTL`.split(`.`).forEach(o),Object.prototype.hasOwnProperty.call(t,`pluginStoreSources`)&&a(`pluginStoreSources`,dB(n.pluginStoreSources,r.pluginStoreSources)),Object.prototype.hasOwnProperty.call(t,`antigravitySensitiveWords`)&&a(`antigravitySensitiveWords`,dB(n.antigravitySensitiveWords,r.antigravitySensitiveWords)),Object.prototype.hasOwnProperty.call(t,`devinSensitiveWords`)&&a(`devinSensitiveWords`,dB(n.devinSensitiveWords,r.devinSensitiveWords)),Object.prototype.hasOwnProperty.call(t,`pluginStoreAuth`)&&a(`pluginStoreAuth`,fB(n.pluginStoreAuth,r.pluginStoreAuth)),Object.prototype.hasOwnProperty.call(t,`payloadDefaultRules`)&&a(`payloadDefaultRules`,pB(n.payloadDefaultRules,r.payloadDefaultRules)),Object.prototype.hasOwnProperty.call(t,`payloadDefaultRawRules`)&&a(`payloadDefaultRawRules`,pB(n.payloadDefaultRawRules,r.payloadDefaultRawRules)),Object.prototype.hasOwnProperty.call(t,`payloadOverrideRules`)&&a(`payloadOverrideRules`,pB(n.payloadOverrideRules,r.payloadOverrideRules)),Object.prototype.hasOwnProperty.call(t,`payloadOverrideRawRules`)&&a(`payloadOverrideRawRules`,pB(n.payloadOverrideRawRules,r.payloadOverrideRawRules)),Object.prototype.hasOwnProperty.call(t,`payloadFilterRules`)&&a(`payloadFilterRules`,mB(n.payloadFilterRules,r.payloadFilterRules)),t.streaming){let e=t.streaming;Object.prototype.hasOwnProperty.call(e,`keepaliveSeconds`)&&a(`streaming.keepaliveSeconds`,n.streaming.keepaliveSeconds===r.streaming.keepaliveSeconds),Object.prototype.hasOwnProperty.call(e,`bootstrapRetries`)&&a(`streaming.bootstrapRetries`,n.streaming.bootstrapRetries===r.streaming.bootstrapRetries),Object.prototype.hasOwnProperty.call(e,`nonstreamKeepaliveInterval`)&&a(`streaming.nonstreamKeepaliveInterval`,n.streaming.nonstreamKeepaliveInterval===r.streaming.nonstreamKeepaliveInterval)}return i}function rV(e,t){switch(t.type){case`load_success`:return{baselineYaml:t.yaml,visualValues:t.values,baselineValues:sB(t.values),rebasedPayload:null,dirtyFields:new Set,visualParseError:null};case`rebase_success`:{let e=$B(t.baseline,t.draft);return{baselineYaml:t.serverYaml,visualValues:e,baselineValues:t.baseline,rebasedPayload:{yaml:t.draftYaml,serverYaml:t.serverYaml,values:sB(e)},dirtyFields:nV(new Set,e,e,t.baseline),visualParseError:null}}case`load_error`:return{...e,visualParseError:t.error};case`set_values`:{let n=tV(e.visualValues,t.values),r=nV(e.dirtyFields,t.values,n,e.baselineValues);return{...e,visualValues:n,dirtyFields:r}}default:return e}}function iV(e){let t=rz(e);if(t.errors.length>0)throw Error(t.errors[0]?.message??`Invalid YAML`);let n=Bz(iz(e)||{})??{},r=Bz(n?.server),i=Bz(n?.routing),a=Bz(i?.retry),o=Bz(i?.cooldown),s=Bz(n?.requests),c=Bz(n?.oauth),l=Bz(c?.providers),u=Bz(l?.aistudio),d=Bz(l?.codex),f=Bz(l?.claude),p=Bz(l?.antigravity),m=Bz(n?.multimedia),h=Bz(n?.observability),g=Bz(h?.logs),_=Bz(h?.usage),v=Bz(r?.tls),y=Bz(n.management),b=Bz(n[`quota-exceeded`]),x=Bz(n.routing),S=Bz(s?.payload),C=Bz(s?.streaming),w=Bz(n.plugins),T=Bz(l?.antigravity),E=Bz(l?.devin),D=Bz(f?.[`header-defaults`]),O=Bz(d?.[`header-defaults`]);return{...Cz(t),...Nz(t),host:typeof r?.host==`string`?r?.host:``,port:String(r?.port??``),tlsEnable:!!v?.enable,tlsCert:typeof v?.cert==`string`?v.cert:``,tlsKey:typeof v?.key==`string`?v.key:``,rmAllowRemote:!!y?.[`allow-remote`],rmSecretKey:typeof y?.[`secret-key`]==`string`?y[`secret-key`]:``,rmDisableControlPanel:!!y?.[`disable-control-panel`],rmDisableAutoUpdatePanel:!!y?.[`disable-auto-update-panel`],rmPanelRepo:typeof y?.[`panel-github-repository`]==`string`?y[`panel-github-repository`]:``,authDir:typeof c?.[`auth-dir`]==`string`?c?.[`auth-dir`]:``,apiKeysText:Vz(Bz(n.access)?.[`api-keys`]),pluginsEnabled:!!w?.enabled,pluginStoreSources:SB(w?.[`store-sources`]),pluginStoreAuth:DB(w?.[`store-auth`]),debug:!!g?.debug,commercialMode:!!r?.[`commercial-mode`],loggingToFile:!!g?.[`logging-to-file`],logsMaxTotalSizeMb:String(g?.[`logs-max-total-size-mb`]??``),errorLogsMaxFiles:String(g?.[`error-logs-max-files`]??``),usageStatisticsEnabled:!!_?.[`usage-statistics-enabled`],redisUsageQueueRetentionSeconds:String(_?.[`redis-usage-queue-retention-seconds`]??``),proxyUrl:typeof s?.[`proxy-url`]==`string`?s?.[`proxy-url`]:``,forceModelPrefix:!!i?.[`force-model-prefix`],passthroughHeaders:!!s?.[`passthrough-headers`],requestRetry:String(a?.[`request-retry`]??``),maxRetryCredentials:String(a?.[`max-retry-credentials`]??``),maxRetryInterval:String(a?.[`max-retry-interval`]??``),disableCooling:!!o?.[`disable-cooling`],disableImageGeneration:yB(m?.[`disable-image-generation`]),gptImage2BaseModel:typeof m?.[`gpt-image-2-base-model`]==`string`?m?.[`gpt-image-2-base-model`]:``,authAutoRefreshWorkers:String(c?.[`auth-auto-refresh-workers`]??``),wsAuth:!!(u?.[`ws-auth`]??oz.wsAuth),antigravitySensitiveWords:SB(T?.[`sensitive-words`]),devinSensitiveWords:SB(E?.[`sensitive-words`]),antigravitySignatureCacheEnabled:!!(p?.[`signature-cache-enabled`]??!0),antigravitySignatureBypassStrict:!!p?.[`signature-bypass-strict`],claudeHeaderUserAgent:typeof D?.[`user-agent`]==`string`?D[`user-agent`]:``,claudeHeaderPackageVersion:typeof D?.[`package-version`]==`string`?D[`package-version`]:``,claudeHeaderRuntimeVersion:typeof D?.[`runtime-version`]==`string`?D[`runtime-version`]:``,claudeHeaderOs:typeof D?.os==`string`?D.os:``,claudeHeaderArch:typeof D?.arch==`string`?D.arch:``,claudeHeaderTimeout:typeof D?.timeout==`string`?D.timeout:``,claudeHeaderStabilizeDeviceProfile:!!D?.[`stabilize-device-profile`],codexHeaderUserAgent:typeof O?.[`user-agent`]==`string`?O[`user-agent`]:``,codexHeaderBetaFeatures:typeof O?.[`beta-features`]==`string`?O[`beta-features`]:``,quotaSwitchProject:!!(b?.[`switch-project`]??oz.quotaSwitchProject),quotaSwitchPreviewModel:!!(b?.[`switch-preview-model`]??oz.quotaSwitchPreviewModel),quotaAntigravityCredits:!!(T?.[`antigravity-credits`]??!1),routingStrategy:vB(x?.strategy),routingSessionAffinity:!!x?.[`session-affinity`],routingSessionAffinityTTL:typeof x?.[`session-affinity-ttl`]==`string`?x[`session-affinity-ttl`]:``,payloadDefaultRules:kB(S?.default),payloadDefaultRawRules:jB(S?.[`default-raw`]),payloadOverrideRules:kB(S?.override),payloadOverrideRawRules:jB(S?.[`override-raw`]),payloadFilterRules:AB(S?.filter),streaming:{keepaliveSeconds:String(C?.[`keepalive-seconds`]??``),bootstrapRetries:String(C?.[`bootstrap-retries`]??``),nonstreamKeepaliveInterval:String(s?.[`nonstream-keepalive-interval`]??``)}}}function aV(){let[e,t]=(0,y.useReducer)(rV,void 0,eV),{visualValues:n,baselineValues:r,baselineYaml:i,visualParseError:a,dirtyFields:o,rebasedPayload:s}=e;return{visualValues:n,visualDirty:o.size>0,visualDirtyFields:o,visualParseError:a,visualValidationErrors:(0,y.useMemo)(()=>iB(n,o),[n,o]),visualHasPayloadValidationErrors:(0,y.useMemo)(()=>oB(n.payloadDefaultRules)||oB(n.payloadDefaultRawRules)||oB(n.payloadOverrideRules)||oB(n.payloadOverrideRawRules),[n.payloadDefaultRules,n.payloadDefaultRawRules,n.payloadOverrideRules,n.payloadOverrideRawRules]),loadVisualValuesFromYaml:(0,y.useCallback)(e=>{try{let n=iV(e);return t({type:`load_success`,values:n,yaml:e}),{ok:!0}}catch(e){let n=e instanceof Error?e.message:`Invalid YAML`;return t({type:`load_error`,error:n}),{ok:!1,error:n}}},[]),rebaseVisualValuesFromYaml:(0,y.useCallback)((e,n)=>{try{let r=iV(e),i=iV(n);return t({type:`rebase_success`,baseline:r,draft:i,draftYaml:n,serverYaml:e}),{ok:!0}}catch(e){return{ok:!1,error:e instanceof Error?e.message:`Invalid YAML`}}},[]),applyVisualChangesToYaml:(0,y.useCallback)((e,t=`server`)=>{try{let a=rz(e);if(a.errors.length>0)return e;PF(a.contents)||(a.contents=a.createNode({}));let c=s?.values??r;if(s&&$z(o)){let e=rz(s.yaml);Zz.forEach((t,n)=>{if(!o.has(t))return;let r=[`requests`,`payload`,Qz[n]],i=e.getIn(r,!0);i?(Uz(a,[`requests`]),Uz(a,[`requests`,`payload`]),a.setIn(r,i)):a.hasIn(r)&&Gz(a,r)})}let l=n;Ez(a,l,o),Fz(a,l,o,s?.yaml??i,s?.serverYaml??i,t===`server`),o.has(`codexLiveMediaRelayICEServers`)&&Dz(a,s?.yaml??i,s?.serverYaml??i,c[xz],l[xz],t===`server`);let u=o.has(`pluginStoreAuth`),d=a.getIn([`routing`],!0);if(IF(d)&&d.value===null&&[`forceModelPrefix`,`requestRetry`,`maxRetryCredentials`,`maxRetryInterval`,`disableCooling`,`routingStrategy`,`routingSessionAffinity`,`routingSessionAffinityTTL`].some(e=>o.has(e))&&Uz(a,[`routing`]),o.has(`host`)&&qz(a,[`server`,`host`],l.host),o.has(`port`)&&Yz(a,[`server`,`port`],l.port),(o.has(`tlsEnable`)||o.has(`tlsCert`)||o.has(`tlsKey`))&&(Uz(a,[`server`,`tls`]),o.has(`tlsEnable`)&&Kz(a,[`server`,`tls`,`enable`],l.tlsEnable),o.has(`tlsCert`)&&qz(a,[`server`,`tls`,`cert`],l.tlsCert),o.has(`tlsKey`)&&qz(a,[`server`,`tls`,`key`],l.tlsKey),Wz(a,[`server`,`tls`])),(o.has(`rmAllowRemote`)||o.has(`rmSecretKey`)||o.has(`rmDisableControlPanel`)||o.has(`rmDisableAutoUpdatePanel`)||o.has(`rmPanelRepo`))&&(Uz(a,[`management`]),o.has(`rmAllowRemote`)&&Kz(a,[`management`,`allow-remote`],l.rmAllowRemote),o.has(`rmSecretKey`)&&qz(a,[`management`,`secret-key`],l.rmSecretKey),o.has(`rmDisableControlPanel`)&&Kz(a,[`management`,`disable-control-panel`],l.rmDisableControlPanel),o.has(`rmDisableAutoUpdatePanel`)&&Kz(a,[`management`,`disable-auto-update-panel`],l.rmDisableAutoUpdatePanel),o.has(`rmPanelRepo`)&&qz(a,[`management`,`panel-github-repository`],l.rmPanelRepo),Wz(a,[`management`])),o.has(`authDir`)&&qz(a,[`oauth`,`auth-dir`],l.authDir),o.has(`apiKeysText`)){let e=l.apiKeysText.split(`
`).map(e=>e.trim()).filter(Boolean);e.length>0?a.setIn([`access`,`api-keys`],e):Hz(a,[`access`,`api-keys`])&&a.deleteIn([`access`,`api-keys`])}if(o.has(`pluginsEnabled`)||o.has(`pluginStoreSources`)||u){if(Uz(a,[`plugins`]),o.has(`pluginsEnabled`)&&Kz(a,[`plugins`,`enabled`],l.pluginsEnabled),o.has(`pluginStoreSources`)&&Jz(a,[`plugins`,`store-sources`],l.pluginStoreSources),u){let e=PB(l.pluginStoreAuth);e.length>0?a.setIn([`plugins`,`store-auth`],e):Hz(a,[`plugins`,`store-auth`])&&a.deleteIn([`plugins`,`store-auth`])}Wz(a,[`plugins`])}if(o.has(`debug`)&&Kz(a,[`observability`,`logs`,`debug`],l.debug),o.has(`commercialMode`)&&Kz(a,[`server`,`commercial-mode`],l.commercialMode),o.has(`loggingToFile`)&&Kz(a,[`observability`,`logs`,`logging-to-file`],l.loggingToFile),o.has(`logsMaxTotalSizeMb`)&&Yz(a,[`observability`,`logs`,`logs-max-total-size-mb`],l.logsMaxTotalSizeMb),o.has(`errorLogsMaxFiles`)&&Yz(a,[`observability`,`logs`,`error-logs-max-files`],l.errorLogsMaxFiles),o.has(`usageStatisticsEnabled`)&&Kz(a,[`observability`,`usage`,`usage-statistics-enabled`],l.usageStatisticsEnabled),o.has(`redisUsageQueueRetentionSeconds`)&&Yz(a,[`observability`,`usage`,`redis-usage-queue-retention-seconds`],l.redisUsageQueueRetentionSeconds),o.has(`proxyUrl`)&&qz(a,[`requests`,`proxy-url`],l.proxyUrl),o.has(`forceModelPrefix`)&&Kz(a,[`routing`,`force-model-prefix`],l.forceModelPrefix),o.has(`passthroughHeaders`)&&Kz(a,[`requests`,`passthrough-headers`],l.passthroughHeaders),o.has(`requestRetry`)&&Yz(a,[`routing`,`retry`,`request-retry`],l.requestRetry),o.has(`maxRetryCredentials`)&&Yz(a,[`routing`,`retry`,`max-retry-credentials`],l.maxRetryCredentials),o.has(`maxRetryInterval`)&&Yz(a,[`routing`,`retry`,`max-retry-interval`],l.maxRetryInterval),o.has(`disableCooling`)&&Kz(a,[`routing`,`cooldown`,`disable-cooling`],l.disableCooling),o.has(`disableImageGeneration`)&&Xz(a,[`multimedia`,`disable-image-generation`],l.disableImageGeneration),o.has(`gptImage2BaseModel`)&&qz(a,[`multimedia`,`gpt-image-2-base-model`],l.gptImage2BaseModel),o.has(`authAutoRefreshWorkers`)&&Yz(a,[`oauth`,`auth-auto-refresh-workers`],l.authAutoRefreshWorkers),o.has(`wsAuth`)&&Kz(a,[`oauth`,`providers`,`aistudio`,`ws-auth`],l.wsAuth),o.has(`antigravitySensitiveWords`)&&(Uz(a,[`oauth`,`providers`,`antigravity`]),Jz(a,[`oauth`,`providers`,`antigravity`,`sensitive-words`],l.antigravitySensitiveWords),Wz(a,[`oauth`,`providers`,`antigravity`])),o.has(`devinSensitiveWords`)){Uz(a,[`oauth`,`providers`,`devin`]);let e=a.getIn([`oauth`,`providers`,`devin`],!0);PF(e)&&UB(a,e,`sensitive-words`,r.devinSensitiveWords,l.devinSensitiveWords),Wz(a,[`oauth`,`providers`,`devin`])}o.has(`antigravitySignatureCacheEnabled`)&&(Hz(a,[`oauth`,`providers`,`antigravity`,`signature-cache-enabled`])||!l.antigravitySignatureCacheEnabled)&&a.setIn([`oauth`,`providers`,`antigravity`,`signature-cache-enabled`],l.antigravitySignatureCacheEnabled),o.has(`antigravitySignatureBypassStrict`)&&Kz(a,[`oauth`,`providers`,`antigravity`,`signature-bypass-strict`],l.antigravitySignatureBypassStrict),(o.has(`claudeHeaderUserAgent`)||o.has(`claudeHeaderPackageVersion`)||o.has(`claudeHeaderRuntimeVersion`)||o.has(`claudeHeaderOs`)||o.has(`claudeHeaderArch`)||o.has(`claudeHeaderTimeout`)||o.has(`claudeHeaderStabilizeDeviceProfile`))&&(Uz(a,[`oauth`,`providers`,`claude`,`header-defaults`]),o.has(`claudeHeaderUserAgent`)&&qz(a,[`oauth`,`providers`,`claude`,`header-defaults`,`user-agent`],l.claudeHeaderUserAgent),o.has(`claudeHeaderPackageVersion`)&&qz(a,[`oauth`,`providers`,`claude`,`header-defaults`,`package-version`],l.claudeHeaderPackageVersion),o.has(`claudeHeaderRuntimeVersion`)&&qz(a,[`oauth`,`providers`,`claude`,`header-defaults`,`runtime-version`],l.claudeHeaderRuntimeVersion),o.has(`claudeHeaderOs`)&&qz(a,[`oauth`,`providers`,`claude`,`header-defaults`,`os`],l.claudeHeaderOs),o.has(`claudeHeaderArch`)&&qz(a,[`oauth`,`providers`,`claude`,`header-defaults`,`arch`],l.claudeHeaderArch),o.has(`claudeHeaderTimeout`)&&qz(a,[`oauth`,`providers`,`claude`,`header-defaults`,`timeout`],l.claudeHeaderTimeout),o.has(`claudeHeaderStabilizeDeviceProfile`)&&Kz(a,[`oauth`,`providers`,`claude`,`header-defaults`,`stabilize-device-profile`],l.claudeHeaderStabilizeDeviceProfile),Wz(a,[`oauth`,`providers`,`claude`,`header-defaults`])),(o.has(`codexHeaderUserAgent`)||o.has(`codexHeaderBetaFeatures`))&&(Uz(a,[`oauth`,`providers`,`codex`,`header-defaults`]),o.has(`codexHeaderUserAgent`)&&qz(a,[`oauth`,`providers`,`codex`,`header-defaults`,`user-agent`],l.codexHeaderUserAgent),o.has(`codexHeaderBetaFeatures`)&&qz(a,[`oauth`,`providers`,`codex`,`header-defaults`,`beta-features`],l.codexHeaderBetaFeatures),Wz(a,[`oauth`,`providers`,`codex`,`header-defaults`])),(o.has(`quotaSwitchProject`)||o.has(`quotaSwitchPreviewModel`)||o.has(`quotaAntigravityCredits`))&&(Uz(a,[`quota-exceeded`]),o.has(`quotaSwitchProject`)&&a.setIn([`quota-exceeded`,`switch-project`],l.quotaSwitchProject),o.has(`quotaSwitchPreviewModel`)&&a.setIn([`quota-exceeded`,`switch-preview-model`],l.quotaSwitchPreviewModel),o.has(`quotaAntigravityCredits`)&&a.setIn([`oauth`,`providers`,`antigravity`,`antigravity-credits`],l.quotaAntigravityCredits),Wz(a,[`quota-exceeded`])),(o.has(`routingStrategy`)||o.has(`routingSessionAffinity`)||o.has(`routingSessionAffinityTTL`))&&(Uz(a,[`routing`]),o.has(`routingStrategy`)&&a.setIn([`routing`,`strategy`],l.routingStrategy),o.has(`routingSessionAffinity`)&&Kz(a,[`routing`,`session-affinity`],l.routingSessionAffinity),o.has(`routingSessionAffinityTTL`)&&qz(a,[`routing`,`session-affinity-ttl`],l.routingSessionAffinityTTL),Wz(a,[`routing`]));let f=typeof l.streaming?.keepaliveSeconds==`string`?l.streaming.keepaliveSeconds:``,p=typeof l.streaming?.bootstrapRetries==`string`?l.streaming.bootstrapRetries:``,m=typeof l.streaming?.nonstreamKeepaliveInterval==`string`?l.streaming.nonstreamKeepaliveInterval:``;(o.has(`streaming.keepaliveSeconds`)||o.has(`streaming.bootstrapRetries`))&&(Uz(a,[`requests`,`streaming`]),o.has(`streaming.keepaliveSeconds`)&&Yz(a,[`requests`,`streaming`,`keepalive-seconds`],f),o.has(`streaming.bootstrapRetries`)&&Yz(a,[`requests`,`streaming`,`bootstrap-retries`],p),Wz(a,[`requests`,`streaming`])),o.has(`streaming.nonstreamKeepaliveInterval`)&&Yz(a,[`requests`,`nonstream-keepalive-interval`],m),$z(o)&&(Uz(a,[`requests`,`payload`]),o.has(`payloadDefaultRules`)&&JB(a,`default`,c.payloadDefaultRules,l.payloadDefaultRules,!1),o.has(`payloadDefaultRawRules`)&&JB(a,`default-raw`,c.payloadDefaultRawRules,l.payloadDefaultRawRules,!0),o.has(`payloadOverrideRules`)&&JB(a,`override`,c.payloadOverrideRules,l.payloadOverrideRules,!1),o.has(`payloadOverrideRawRules`)&&JB(a,`override-raw`,c.payloadOverrideRawRules,l.payloadOverrideRawRules,!0),o.has(`payloadFilterRules`)&&YB(a,c.payloadFilterRules,l.payloadFilterRules),Wz(a,[`requests`,`payload`]));let h=a.toString({indent:2,lineWidth:120,minContentWidth:0});if(t===`server`&&s&&$z(o)){let t=Zz.flatMap((e,t)=>o.has(e)?[[`requests`,`payload`,Qz[t]]]:[]);hz(s.serverYaml,h,e,t)}return h}catch(t){if(t instanceof mz)throw t;return e}},[r,i,o,n,s]),setVisualValues:(0,y.useCallback)(e=>{t({type:`set_values`,values:e})},[])}}var oV=[{value:``,labelKey:`config_management.visual.payload_rules.provider_default`,defaultLabel:`Default`},{value:`openai`,labelKey:`config_management.visual.payload_rules.provider_openai`,defaultLabel:`OpenAI`},{value:`openai-response`,labelKey:`config_management.visual.payload_rules.provider_openai_response`,defaultLabel:`OpenAI Response`},{value:`gemini`,labelKey:`config_management.visual.payload_rules.provider_gemini`,defaultLabel:`Gemini`},{value:`claude`,labelKey:`config_management.visual.payload_rules.provider_claude`,defaultLabel:`Claude`},{value:`codex`,labelKey:`config_management.visual.payload_rules.provider_codex`,defaultLabel:`Codex`},{value:`antigravity`,labelKey:`config_management.visual.payload_rules.provider_antigravity`,defaultLabel:`Antigravity`}],sV=[{value:`string`,labelKey:`config_management.visual.payload_rules.value_type_string`,defaultLabel:`String`},{value:`number`,labelKey:`config_management.visual.payload_rules.value_type_number`,defaultLabel:`Number`},{value:`boolean`,labelKey:`config_management.visual.payload_rules.value_type_boolean`,defaultLabel:`Boolean`},{value:`json`,labelKey:`config_management.visual.payload_rules.value_type_json`,defaultLabel:`JSON`}],cV=[`connectivity`,`network`,`logging`,`quota`,`streaming`,`advanced`,`payload`],lV=[`common`,...cV],uV={connectivity:`01`,network:`02`,logging:`03`,quota:`04`,streaming:`05`,advanced:`06`,payload:`07`},dV={common:ms,connectivity:hs,network:Fs,logging:Cs,quota:qs,streaming:Ks,advanced:bs,payload:Qs},fV=[`host`,`port`,`apiKeys`,`proxyUrl`,`debug`,`loggingToFile`,`quotaSwitchProject`,`quotaSwitchPreviewModel`],pV={connectivity:[`port`,`trustedProxies`,`discoveryServiceType`],network:[`requestRetry`,`maxRetryCredentials`,`maxRetryInterval`,`authAutoRefreshWorkers`,`transientErrorCooldownSeconds`,`videoResultAuthCacheTTL`],logging:[`errorLogsMaxFiles`,`logsMaxTotalSizeMb`,`redisUsageQueueRetentionSeconds`],quota:[],streaming:[`streaming.keepaliveSeconds`,`streaming.bootstrapRetries`,`streaming.nonstreamKeepaliveInterval`],advanced:[`claudeHeaderTimezone`,`codexStreamBootstrapTimeout`,`antigravityConnectionPoolIdleTimeout`,`antigravityConnectionPoolMaxIdleConnsPerHost`,`codexLiveMediaRelayMaxSessions`,`codexLiveMediaRelayPublicIP`,`codexLiveMediaRelayUDPPortMin`,`codexLiveMediaRelayUDPPortMax`,`codexLiveMediaRelayICEServers`],payload:[]},mV={routingSessionAffinitySubagents:[`routingSessionAffinitySubagents`],saveCooldownStatus:[`saveCooldownStatus`],transientErrorCooldownSeconds:[`transientErrorCooldownSeconds`],videoResultAuthCacheTTL:[`videoResultAuthCacheTTL`],claudeHeaderTimezone:[`claudeHeaderTimezone`],claudeModelLevelCooling:[`claudeModelLevelCooling`],claudeDisableCloakMode:[`claudeDisableCloakMode`],claudeCodeDisableCloakingModelList:[`claudeCodeDisableCloakingModelList`],codexDisableCloaking:[`codexDisableCloaking`],codexModelLevelCooling:[`codexModelLevelCooling`],codexStreamBootstrapBuffering:[`codexStreamBootstrapBuffering`],codexStreamBootstrapTimeout:[`codexStreamBootstrapTimeout`],codexOptimizeMultiAgentV2:[`codexOptimizeMultiAgentV2`],codexOrphanDelegationCompatibility:[`codexOrphanDelegationCompatibility`],codexResponseSteering:[`codexResponseSteering`],antigravityConnectionPoolEnabled:[`antigravityConnectionPoolEnabled`],antigravityConnectionPoolIdleTimeout:[`antigravityConnectionPoolIdleTimeout`],antigravityConnectionPoolMaxIdleConnsPerHost:[`antigravityConnectionPoolMaxIdleConnsPerHost`],xaiInjectXSearch:[`xaiInjectXSearch`],codexLiveMediaRelayEnabled:[`codexLiveMediaRelayEnabled`],codexLiveMediaRelayMaxSessions:[`codexLiveMediaRelayMaxSessions`],codexLiveMediaRelayDisablePrivateRemoteIPs:[`codexLiveMediaRelayDisablePrivateRemoteIPs`],codexLiveMediaRelayPublicIP:[`codexLiveMediaRelayPublicIP`],codexLiveMediaRelayUDPPortMin:[`codexLiveMediaRelayUDPPortMin`],codexLiveMediaRelayUDPPortMax:[`codexLiveMediaRelayUDPPortMax`],codexLiveMediaRelayICEServers:[`codexLiveMediaRelayICEServers`],trustedProxies:[`trustedProxies`],discoveryEnabled:[`discoveryEnabled`],discoveryServiceName:[`discoveryServiceName`],discoveryServiceType:[`discoveryServiceType`],discoverySubtypes:[`discoverySubtypes`],discoveryInterfacesInclude:[`discoveryInterfacesInclude`],discoveryInterfacesExclude:[`discoveryInterfacesExclude`],discoveryAuthRequired:[`discoveryAuthRequired`],discoveryAdvertiseManagement:[`discoveryAdvertiseManagement`],host:[`host`],port:[`port`],authDir:[`authDir`],apiKeys:[`apiKeysText`],tlsEnable:[`tlsEnable`],tlsCert:[`tlsCert`],tlsKey:[`tlsKey`],rmAllowRemote:[`rmAllowRemote`],rmDisableControlPanel:[`rmDisableControlPanel`],rmDisableAutoUpdatePanel:[`rmDisableAutoUpdatePanel`],rmSecretKey:[`rmSecretKey`],rmPanelRepo:[`rmPanelRepo`],proxyUrl:[`proxyUrl`],requestRetry:[`requestRetry`],maxRetryCredentials:[`maxRetryCredentials`],maxRetryInterval:[`maxRetryInterval`],authAutoRefreshWorkers:[`authAutoRefreshWorkers`],routingStrategy:[`routingStrategy`],disableImageGeneration:[`disableImageGeneration`],gptImage2BaseModel:[`gptImage2BaseModel`],routingSessionAffinityTTL:[`routingSessionAffinityTTL`],forceModelPrefix:[`forceModelPrefix`],passthroughHeaders:[`passthroughHeaders`],disableCooling:[`disableCooling`],routingSessionAffinity:[`routingSessionAffinity`],wsAuth:[`wsAuth`],debug:[`debug`],commercialMode:[`commercialMode`],loggingToFile:[`loggingToFile`],logsMaxTotalSizeMb:[`logsMaxTotalSizeMb`],errorLogsMaxFiles:[`errorLogsMaxFiles`],redisUsageQueueRetentionSeconds:[`redisUsageQueueRetentionSeconds`],usageStatisticsEnabled:[`usageStatisticsEnabled`],quotaSwitchProject:[`quotaSwitchProject`],quotaSwitchPreviewModel:[`quotaSwitchPreviewModel`],quotaAntigravityCredits:[`quotaAntigravityCredits`],streamingKeepaliveSeconds:[`streaming.keepaliveSeconds`],streamingBootstrapRetries:[`streaming.bootstrapRetries`],streamingNonstreamKeepalive:[`streaming.nonstreamKeepaliveInterval`],pluginsEnabled:[`pluginsEnabled`],pluginStoreSources:[`pluginStoreSources`],pluginStoreAuth:[`pluginStoreAuth`],antigravitySensitiveWords:[`antigravitySensitiveWords`],devinSensitiveWords:[`devinSensitiveWords`],antigravitySignatureCacheEnabled:[`antigravitySignatureCacheEnabled`],antigravitySignatureBypassStrict:[`antigravitySignatureBypassStrict`],claudeHeaderUserAgent:[`claudeHeaderUserAgent`],claudeHeaderPackageVersion:[`claudeHeaderPackageVersion`],claudeHeaderRuntimeVersion:[`claudeHeaderRuntimeVersion`],claudeHeaderOs:[`claudeHeaderOs`],claudeHeaderArch:[`claudeHeaderArch`],claudeHeaderTimeout:[`claudeHeaderTimeout`],claudeHeaderStabilizeDeviceProfile:[`claudeHeaderStabilizeDeviceProfile`],codexHeaderUserAgent:[`codexHeaderUserAgent`],codexHeaderBetaFeatures:[`codexHeaderBetaFeatures`],payloadDefaultRules:[`payloadDefaultRules`],payloadDefaultRawRules:[`payloadDefaultRawRules`],payloadOverrideRules:[`payloadOverrideRules`],payloadOverrideRawRules:[`payloadOverrideRawRules`],payloadFilterRules:[`payloadFilterRules`]},hV=e=>`config-tab-${e}`,gV=e=>`config-panel-${e}`,_V=`config-management:tab`,vV=`config-management:section`,yV=`config-management:editor-mode`,bV=e=>`cfg-field-${e}`,J=e=>`config_management.visual.${e}`,xV=[{fieldId:`routingSessionAffinitySubagents`,sectionId:`network`,labelKey:J(`additions.routingSessionAffinitySubagents.label`),hintKey:J(`additions.routingSessionAffinitySubagents.hint`),yamlKeys:[`routing`,`session-affinity-subagents`]},{fieldId:`saveCooldownStatus`,sectionId:`network`,labelKey:J(`additions.saveCooldownStatus.label`),hintKey:J(`additions.saveCooldownStatus.hint`),yamlKeys:[`routing`,`cooldown`,`save-cooldown-status`]},{fieldId:`transientErrorCooldownSeconds`,sectionId:`network`,labelKey:J(`additions.transientErrorCooldownSeconds.label`),hintKey:J(`additions.transientErrorCooldownSeconds.hint`),yamlKeys:[`routing`,`cooldown`,`transient-error-cooldown-seconds`]},{fieldId:`videoResultAuthCacheTTL`,sectionId:`network`,labelKey:J(`additions.videoResultAuthCacheTTL.label`),hintKey:J(`additions.videoResultAuthCacheTTL.hint`),yamlKeys:[`multimedia`,`video-result-auth-cache-ttl`]},{fieldId:`claudeHeaderTimezone`,sectionId:`advanced`,labelKey:J(`additions.claudeHeaderTimezone.label`),hintKey:J(`additions.claudeHeaderTimezone.hint`),yamlKeys:[`oauth`,`providers`,`claude`,`header-defaults`,`timezone`]},{fieldId:`claudeModelLevelCooling`,sectionId:`advanced`,labelKey:J(`additions.claudeModelLevelCooling.label`),hintKey:J(`additions.claudeModelLevelCooling.hint`),yamlKeys:[`oauth`,`providers`,`claude`,`model-level-cooling`]},{fieldId:`claudeDisableCloakMode`,sectionId:`advanced`,labelKey:J(`additions.claudeDisableCloakMode.label`),hintKey:J(`additions.claudeDisableCloakMode.hint`),yamlKeys:[`oauth`,`providers`,`claude`,`disable-claude-cloak-mode`]},{fieldId:`claudeCodeDisableCloakingModelList`,sectionId:`advanced`,labelKey:J(`additions.claudeCodeDisableCloakingModelList.label`),hintKey:J(`additions.claudeCodeDisableCloakingModelList.hint`),yamlKeys:[`oauth`,`providers`,`claude`,`claude-code`,`disable-cloaking-model-list`]},{fieldId:`codexDisableCloaking`,sectionId:`advanced`,labelKey:J(`additions.codexDisableCloaking.label`),hintKey:J(`additions.codexDisableCloaking.hint`),yamlKeys:[`oauth`,`providers`,`codex`,`disable-codex-cloaking`]},{fieldId:`codexModelLevelCooling`,sectionId:`advanced`,labelKey:J(`additions.codexModelLevelCooling.label`),hintKey:J(`additions.codexModelLevelCooling.hint`),yamlKeys:[`oauth`,`providers`,`codex`,`model-level-cooling`]},{fieldId:`codexStreamBootstrapBuffering`,sectionId:`advanced`,labelKey:J(`additions.codexStreamBootstrapBuffering.label`),hintKey:J(`additions.codexStreamBootstrapBuffering.hint`),yamlKeys:[`oauth`,`providers`,`codex`,`stream-bootstrap-buffering`]},{fieldId:`codexStreamBootstrapTimeout`,sectionId:`advanced`,labelKey:J(`additions.codexStreamBootstrapTimeout.label`),hintKey:J(`additions.codexStreamBootstrapTimeout.hint`),yamlKeys:[`oauth`,`providers`,`codex`,`stream-bootstrap-timeout`]},{fieldId:`codexOptimizeMultiAgentV2`,sectionId:`advanced`,labelKey:J(`additions.codexOptimizeMultiAgentV2.label`),hintKey:J(`additions.codexOptimizeMultiAgentV2.hint`),yamlKeys:[`oauth`,`providers`,`codex`,`optimize-multi-agent-v2`]},{fieldId:`codexOrphanDelegationCompatibility`,sectionId:`advanced`,labelKey:J(`additions.codexOrphanDelegationCompatibility.label`),hintKey:J(`additions.codexOrphanDelegationCompatibility.hint`),yamlKeys:[`oauth`,`providers`,`codex`,`orphan-delegation-compatibility`]},{fieldId:`codexResponseSteering`,sectionId:`advanced`,labelKey:J(`additions.codexResponseSteering.label`),hintKey:J(`additions.codexResponseSteering.hint`),yamlKeys:[`oauth`,`providers`,`codex`,`response-steering`]},{fieldId:`antigravityConnectionPoolEnabled`,sectionId:`advanced`,labelKey:J(`additions.antigravityConnectionPoolEnabled.label`),hintKey:J(`additions.antigravityConnectionPoolEnabled.hint`),yamlKeys:[`oauth`,`providers`,`antigravity`,`connection-pool`,`enabled`]},{fieldId:`antigravityConnectionPoolIdleTimeout`,sectionId:`advanced`,labelKey:J(`additions.antigravityConnectionPoolIdleTimeout.label`),hintKey:J(`additions.antigravityConnectionPoolIdleTimeout.hint`),yamlKeys:[`oauth`,`providers`,`antigravity`,`connection-pool`,`idle-conn-timeout`]},{fieldId:`antigravityConnectionPoolMaxIdleConnsPerHost`,sectionId:`advanced`,labelKey:J(`additions.antigravityConnectionPoolMaxIdleConnsPerHost.label`),hintKey:J(`additions.antigravityConnectionPoolMaxIdleConnsPerHost.hint`),yamlKeys:[`oauth`,`providers`,`antigravity`,`connection-pool`,`max-idle-conns-per-host`]},{fieldId:`xaiInjectXSearch`,sectionId:`advanced`,labelKey:J(`additions.xaiInjectXSearch.label`),hintKey:J(`additions.xaiInjectXSearch.hint`),yamlKeys:[`oauth`,`providers`,`xai`,`inject-x-search`]},{fieldId:`codexLiveMediaRelayEnabled`,sectionId:`advanced`,labelKey:J(`additions.codexLiveMediaRelayEnabled.label`),hintKey:J(`additions.codexLiveMediaRelayEnabled.hint`),yamlKeys:[`oauth`,`providers`,`codex`,`live-media-relay`,`enabled`]},{fieldId:`codexLiveMediaRelayMaxSessions`,sectionId:`advanced`,labelKey:J(`additions.codexLiveMediaRelayMaxSessions.label`),hintKey:J(`additions.codexLiveMediaRelayMaxSessions.hint`),yamlKeys:[`oauth`,`providers`,`codex`,`live-media-relay`,`max-sessions`]},{fieldId:`codexLiveMediaRelayDisablePrivateRemoteIPs`,sectionId:`advanced`,labelKey:J(`additions.codexLiveMediaRelayDisablePrivateRemoteIPs.label`),hintKey:J(`additions.codexLiveMediaRelayDisablePrivateRemoteIPs.hint`),yamlKeys:[`oauth`,`providers`,`codex`,`live-media-relay`,`disable-private-remote-ips`]},{fieldId:`codexLiveMediaRelayPublicIP`,sectionId:`advanced`,labelKey:J(`additions.codexLiveMediaRelayPublicIP.label`),hintKey:J(`additions.codexLiveMediaRelayPublicIP.hint`),yamlKeys:[`oauth`,`providers`,`codex`,`live-media-relay`,`public-ip`]},{fieldId:`codexLiveMediaRelayUDPPortMin`,sectionId:`advanced`,labelKey:J(`additions.codexLiveMediaRelayUDPPortMin.label`),hintKey:J(`additions.codexLiveMediaRelayUDPPortMin.hint`),yamlKeys:[`oauth`,`providers`,`codex`,`live-media-relay`,`udp-port-min`]},{fieldId:`codexLiveMediaRelayUDPPortMax`,sectionId:`advanced`,labelKey:J(`additions.codexLiveMediaRelayUDPPortMax.label`),hintKey:J(`additions.codexLiveMediaRelayUDPPortMax.hint`),yamlKeys:[`oauth`,`providers`,`codex`,`live-media-relay`,`udp-port-max`]},{fieldId:`codexLiveMediaRelayICEServers`,sectionId:`advanced`,labelKey:J(`additions.codexLiveMediaRelayICEServers.label`),hintKey:J(`additions.codexLiveMediaRelayICEServers.hint`),yamlKeys:[`oauth`,`providers`,`codex`,`live-media-relay`,`ice-servers`],keywords:[`stun`,`turn`,`urls`,`username`,`credential`]},{fieldId:`trustedProxies`,sectionId:`connectivity`,labelKey:J(`serverExtras.trustedProxies.label`),hintKey:J(`serverExtras.trustedProxies.hint`),yamlKeys:[`server`,`trusted-proxies`]},{fieldId:`discoveryEnabled`,sectionId:`connectivity`,labelKey:J(`serverExtras.discoveryEnabled.label`),hintKey:J(`serverExtras.discoveryEnabled.hint`),yamlKeys:[`server`,`discovery`,`enabled`]},{fieldId:`discoveryServiceName`,sectionId:`connectivity`,labelKey:J(`serverExtras.discoveryServiceName.label`),hintKey:J(`serverExtras.discoveryServiceName.hint`),yamlKeys:[`server`,`discovery`,`service-name`]},{fieldId:`discoveryServiceType`,sectionId:`connectivity`,labelKey:J(`serverExtras.discoveryServiceType.label`),hintKey:J(`serverExtras.discoveryServiceType.hint`),yamlKeys:[`server`,`discovery`,`service-type`]},{fieldId:`discoverySubtypes`,sectionId:`connectivity`,labelKey:J(`serverExtras.discoverySubtypes.label`),hintKey:J(`serverExtras.discoverySubtypes.hint`),yamlKeys:[`server`,`discovery`,`subtypes`]},{fieldId:`discoveryInterfacesInclude`,sectionId:`connectivity`,labelKey:J(`serverExtras.discoveryInterfacesInclude.label`),hintKey:J(`serverExtras.discoveryInterfacesInclude.hint`),yamlKeys:[`server`,`discovery`,`interfaces`,`include`]},{fieldId:`discoveryInterfacesExclude`,sectionId:`connectivity`,labelKey:J(`serverExtras.discoveryInterfacesExclude.label`),hintKey:J(`serverExtras.discoveryInterfacesExclude.hint`),yamlKeys:[`server`,`discovery`,`interfaces`,`exclude`]},{fieldId:`discoveryAuthRequired`,sectionId:`connectivity`,labelKey:J(`serverExtras.discoveryAuthRequired.label`),hintKey:J(`serverExtras.discoveryAuthRequired.hint`),yamlKeys:[`server`,`discovery`,`auth-required`]},{fieldId:`discoveryAdvertiseManagement`,sectionId:`connectivity`,labelKey:J(`serverExtras.discoveryAdvertiseManagement.label`),hintKey:J(`serverExtras.discoveryAdvertiseManagement.hint`),yamlKeys:[`server`,`discovery`,`advertise-management`]},{fieldId:`host`,sectionId:`connectivity`,labelKey:J(`sections.server.host`),yamlKeys:[`server`,`host`]},{fieldId:`port`,sectionId:`connectivity`,labelKey:J(`sections.server.port`),yamlKeys:[`server`,`port`]},{fieldId:`authDir`,sectionId:`connectivity`,labelKey:J(`sections.auth.auth_dir`),hintKey:J(`sections.auth.auth_dir_hint`),yamlKeys:[`oauth`,`auth-dir`]},{fieldId:`apiKeys`,sectionId:`connectivity`,labelKey:J(`api_keys.label`),yamlKeys:[`access`,`api-keys`],keywords:[`api key`,`apikey`,`token`]},{fieldId:`tlsEnable`,sectionId:`connectivity`,labelKey:J(`sections.tls.enable`),hintKey:J(`sections.tls.enable_desc`),yamlKeys:[`server`,`tls`],keywords:[`tls`,`ssl`,`https`]},{fieldId:`tlsCert`,sectionId:`connectivity`,labelKey:J(`sections.tls.cert`),yamlKeys:[`server`,`tls`,`cert`],keywords:[`tls`,`ssl`,`certificate`]},{fieldId:`tlsKey`,sectionId:`connectivity`,labelKey:J(`sections.tls.key`),yamlKeys:[`server`,`tls`,`key`],keywords:[`tls`,`ssl`,`private key`]},{fieldId:`rmAllowRemote`,sectionId:`connectivity`,labelKey:J(`sections.remote.allow_remote`),hintKey:J(`sections.remote.allow_remote_desc`),yamlKeys:[`management`,`allow-remote`]},{fieldId:`rmDisableControlPanel`,sectionId:`connectivity`,labelKey:J(`sections.remote.disable_panel`),yamlKeys:[`management`,`disable-control-panel`]},{fieldId:`rmDisableAutoUpdatePanel`,sectionId:`connectivity`,labelKey:J(`sections.remote.disable_auto_update_panel`),yamlKeys:[`management`,`disable-auto-update-panel`]},{fieldId:`rmSecretKey`,sectionId:`connectivity`,labelKey:J(`sections.remote.secret_key`),yamlKeys:[`management`,`secret-key`]},{fieldId:`rmPanelRepo`,sectionId:`connectivity`,labelKey:J(`sections.remote.panel_repo`),yamlKeys:[`management`,`panel-github-repository`]},{fieldId:`proxyUrl`,sectionId:`network`,labelKey:J(`sections.network.proxy_url`),yamlKeys:[`requests`,`proxy-url`]},{fieldId:`requestRetry`,sectionId:`network`,labelKey:J(`sections.network.request_retry`),yamlKeys:[`routing`,`retry`,`request-retry`]},{fieldId:`maxRetryCredentials`,sectionId:`network`,labelKey:J(`sections.network.max_retry_credentials`),hintKey:J(`sections.network.max_retry_credentials_hint`),yamlKeys:[`routing`,`retry`,`max-retry-credentials`]},{fieldId:`maxRetryInterval`,sectionId:`network`,labelKey:J(`sections.network.max_retry_interval`),hintKey:J(`sections.network.max_retry_interval_hint`),yamlKeys:[`routing`,`retry`,`max-retry-interval`]},{fieldId:`authAutoRefreshWorkers`,sectionId:`network`,labelKey:J(`sections.network.auth_auto_refresh_workers`),hintKey:J(`sections.network.auth_auto_refresh_workers_hint`),yamlKeys:[`oauth`,`auth-auto-refresh-workers`]},{fieldId:`routingStrategy`,sectionId:`network`,labelKey:J(`sections.network.routing_strategy`),hintKey:J(`sections.network.routing_strategy_hint`),yamlKeys:[`routing`,`strategy`],keywords:[`round-robin`,`weighted-round-robin`,`wrr`,`fill-first`]},{fieldId:`disableImageGeneration`,sectionId:`network`,labelKey:J(`sections.network.disable_image_generation`),hintKey:J(`sections.network.disable_image_generation_hint`),yamlKeys:[`multimedia`,`disable-image-generation`],keywords:[`false`,`true`,`chat`,`passthrough`]},{fieldId:`gptImage2BaseModel`,sectionId:`network`,labelKey:J(`sections.network.gpt_image_2_base_model`),hintKey:J(`sections.network.gpt_image_2_base_model_hint`),yamlKeys:[`multimedia`,`gpt-image-2-base-model`]},{fieldId:`routingSessionAffinityTTL`,sectionId:`network`,labelKey:J(`sections.network.session_affinity_ttl`),yamlKeys:[`routing`,`session-affinity-ttl`]},{fieldId:`forceModelPrefix`,sectionId:`network`,labelKey:J(`sections.network.force_model_prefix`),hintKey:J(`sections.network.force_model_prefix_desc`),yamlKeys:[`routing`,`force-model-prefix`]},{fieldId:`passthroughHeaders`,sectionId:`network`,labelKey:J(`sections.network.passthrough_headers`),hintKey:J(`sections.network.passthrough_headers_desc`),yamlKeys:[`requests`,`passthrough-headers`]},{fieldId:`disableCooling`,sectionId:`network`,labelKey:J(`sections.network.disable_cooling`),hintKey:J(`sections.network.disable_cooling_desc`),yamlKeys:[`routing`,`cooldown`,`disable-cooling`]},{fieldId:`routingSessionAffinity`,sectionId:`network`,labelKey:J(`sections.network.session_affinity`),yamlKeys:[`routing`,`session-affinity`]},{fieldId:`wsAuth`,sectionId:`network`,labelKey:J(`sections.network.ws_auth`),hintKey:J(`sections.network.ws_auth_desc`),yamlKeys:[`oauth`,`providers`,`aistudio`,`ws-auth`],keywords:[`websocket`]},{fieldId:`debug`,sectionId:`logging`,labelKey:J(`sections.system.debug`),hintKey:J(`sections.system.debug_desc`),yamlKeys:[`observability`,`logs`,`debug`]},{fieldId:`commercialMode`,sectionId:`logging`,labelKey:J(`sections.system.commercial_mode`),hintKey:J(`sections.system.commercial_mode_desc`),yamlKeys:[`server`,`commercial-mode`]},{fieldId:`loggingToFile`,sectionId:`logging`,labelKey:J(`sections.system.logging_to_file`),hintKey:J(`sections.system.logging_to_file_desc`),yamlKeys:[`observability`,`logs`,`logging-to-file`]},{fieldId:`logsMaxTotalSizeMb`,sectionId:`logging`,labelKey:J(`sections.system.logs_max_size`),yamlKeys:[`observability`,`logs`,`logs-max-total-size-mb`]},{fieldId:`errorLogsMaxFiles`,sectionId:`logging`,labelKey:J(`sections.system.error_logs_max_files`),yamlKeys:[`observability`,`logs`,`error-logs-max-files`]},{fieldId:`redisUsageQueueRetentionSeconds`,sectionId:`logging`,labelKey:J(`sections.system.redis_usage_retention`),hintKey:J(`sections.system.redis_usage_retention_hint`),yamlKeys:[`observability`,`usage`,`redis-usage-queue-retention-seconds`]},{fieldId:`usageStatisticsEnabled`,sectionId:`logging`,labelKey:J(`sections.system.usage_statistics_enabled`),hintKey:J(`sections.system.usage_statistics_enabled_desc`),yamlKeys:[`observability`,`usage`,`usage-statistics-enabled`]},{fieldId:`quotaSwitchProject`,sectionId:`quota`,labelKey:J(`sections.quota.switch_project`),hintKey:J(`sections.quota.switch_project_desc`),yamlKeys:[`quota-exceeded`,`switch-project`]},{fieldId:`quotaSwitchPreviewModel`,sectionId:`quota`,labelKey:J(`sections.quota.switch_preview_model`),hintKey:J(`sections.quota.switch_preview_model_desc`),yamlKeys:[`quota-exceeded`,`switch-preview-model`]},{fieldId:`quotaAntigravityCredits`,sectionId:`quota`,labelKey:J(`sections.quota.antigravity_credits`),yamlKeys:[`oauth`,`providers`,`antigravity`,`antigravity-credits`]},{fieldId:`streamingKeepaliveSeconds`,sectionId:`streaming`,labelKey:J(`sections.streaming.keepalive_seconds`),hintKey:J(`sections.streaming.keepalive_hint`),yamlKeys:[`requests`,`streaming`,`keepalive-seconds`]},{fieldId:`streamingBootstrapRetries`,sectionId:`streaming`,labelKey:J(`sections.streaming.bootstrap_retries`),hintKey:J(`sections.streaming.bootstrap_hint`),yamlKeys:[`requests`,`streaming`,`bootstrap-retries`]},{fieldId:`streamingNonstreamKeepalive`,sectionId:`streaming`,labelKey:J(`sections.streaming.nonstream_keepalive`),hintKey:J(`sections.streaming.nonstream_keepalive_hint`),yamlKeys:[`requests`,`nonstream-keepalive-interval`]},{fieldId:`pluginsEnabled`,sectionId:`advanced`,labelKey:J(`sections.system.plugins_enabled`),hintKey:J(`sections.system.plugins_enabled_desc`),yamlKeys:[`plugins`]},{fieldId:`pluginStoreSources`,sectionId:`advanced`,labelKey:J(`sections.system.plugin_store_sources`),hintKey:J(`sections.system.plugin_store_sources_hint`),yamlKeys:[`plugins`,`store-sources`]},{fieldId:`pluginStoreAuth`,sectionId:`advanced`,labelKey:J(`sections.system.plugin_store_auth`),hintKey:J(`sections.system.plugin_store_auth_hint`),yamlKeys:[`plugins`,`store-auth`]},{fieldId:`antigravitySensitiveWords`,sectionId:`advanced`,labelKey:J(`sections.system.antigravity_sensitive_words`),hintKey:J(`sections.system.antigravity_sensitive_words_desc`),yamlKeys:[`oauth`,`providers`,`antigravity`,`sensitive-words`],keywords:[`antigravity`,`obfuscate`,`zero-width`]},{fieldId:`devinSensitiveWords`,sectionId:`advanced`,labelKey:J(`sections.system.devin_sensitive_words`),hintKey:J(`sections.system.devin_sensitive_words_desc`),yamlKeys:[`oauth`,`providers`,`devin`,`sensitive-words`],keywords:[`devin`,`system prompt`,`remove line`,`obfuscate`,`zero-width`]},{fieldId:`antigravitySignatureCacheEnabled`,sectionId:`advanced`,labelKey:J(`sections.system.antigravity_signature_cache`),hintKey:J(`sections.system.antigravity_signature_cache_desc`),yamlKeys:[`oauth`,`providers`,`antigravity`,`signature-cache-enabled`]},{fieldId:`antigravitySignatureBypassStrict`,sectionId:`advanced`,labelKey:J(`sections.system.antigravity_signature_strict`),hintKey:J(`sections.system.antigravity_signature_strict_desc`),yamlKeys:[`oauth`,`providers`,`antigravity`,`signature-bypass-strict`]},{fieldId:`claudeHeaderUserAgent`,sectionId:`advanced`,labelKey:J(`sections.headers.user_agent`),qualifierKey:J(`sections.headers.claude_title`),yamlKeys:[`oauth`,`providers`,`claude`,`header-defaults`,`user-agent`],keywords:[`claude`]},{fieldId:`claudeHeaderPackageVersion`,sectionId:`advanced`,labelKey:J(`sections.headers.package_version`),qualifierKey:J(`sections.headers.claude_title`),yamlKeys:[`oauth`,`providers`,`claude`,`header-defaults`,`package-version`],keywords:[`claude`]},{fieldId:`claudeHeaderRuntimeVersion`,sectionId:`advanced`,labelKey:J(`sections.headers.runtime_version`),qualifierKey:J(`sections.headers.claude_title`),yamlKeys:[`oauth`,`providers`,`claude`,`header-defaults`,`runtime-version`],keywords:[`claude`]},{fieldId:`claudeHeaderOs`,sectionId:`advanced`,labelKey:J(`sections.headers.os`),qualifierKey:J(`sections.headers.claude_title`),yamlKeys:[`oauth`,`providers`,`claude`,`header-defaults`,`os`],keywords:[`claude`]},{fieldId:`claudeHeaderArch`,sectionId:`advanced`,labelKey:J(`sections.headers.arch`),qualifierKey:J(`sections.headers.claude_title`),yamlKeys:[`oauth`,`providers`,`claude`,`header-defaults`,`arch`],keywords:[`claude`]},{fieldId:`claudeHeaderTimeout`,sectionId:`advanced`,labelKey:J(`sections.headers.timeout`),qualifierKey:J(`sections.headers.claude_title`),yamlKeys:[`oauth`,`providers`,`claude`,`header-defaults`,`timeout`],keywords:[`claude`]},{fieldId:`claudeHeaderStabilizeDeviceProfile`,sectionId:`advanced`,labelKey:J(`sections.headers.stabilize_device`),qualifierKey:J(`sections.headers.claude_title`),hintKey:J(`sections.headers.stabilize_device_desc`),yamlKeys:[`oauth`,`providers`,`claude`,`header-defaults`,`stabilize-device-profile`],keywords:[`claude`]},{fieldId:`codexHeaderUserAgent`,sectionId:`advanced`,labelKey:J(`sections.headers.user_agent`),qualifierKey:J(`sections.headers.codex_title`),yamlKeys:[`oauth`,`providers`,`codex`,`header-defaults`,`user-agent`],keywords:[`codex`]},{fieldId:`codexHeaderBetaFeatures`,sectionId:`advanced`,labelKey:J(`sections.headers.beta_features`),qualifierKey:J(`sections.headers.codex_title`),yamlKeys:[`oauth`,`providers`,`codex`,`header-defaults`,`beta-features`],keywords:[`codex`]},{fieldId:`payloadDefaultRules`,yamlKeys:[`requests`,`payload`,`default`],sectionId:`payload`,labelKey:J(`sections.payload.default_rules`),hintKey:J(`sections.payload.default_rules_desc`),keywords:[`payload`,`rule`]},{fieldId:`payloadDefaultRawRules`,yamlKeys:[`requests`,`payload`,`default-raw`],sectionId:`payload`,labelKey:J(`sections.payload.default_raw_rules`),hintKey:J(`sections.payload.default_raw_rules_desc`),keywords:[`payload`,`rule`,`json`]},{fieldId:`payloadOverrideRules`,yamlKeys:[`requests`,`payload`,`override`],sectionId:`payload`,labelKey:J(`sections.payload.override_rules`),hintKey:J(`sections.payload.override_rules_desc`),keywords:[`payload`,`rule`]},{fieldId:`payloadOverrideRawRules`,yamlKeys:[`requests`,`payload`,`override-raw`],sectionId:`payload`,labelKey:J(`sections.payload.override_raw_rules`),hintKey:J(`sections.payload.override_raw_rules_desc`),keywords:[`payload`,`rule`,`json`]},{fieldId:`payloadFilterRules`,yamlKeys:[`requests`,`payload`,`filter`],sectionId:`payload`,labelKey:J(`sections.payload.filter_rules`),hintKey:J(`sections.payload.filter_rules_desc`),keywords:[`payload`,`rule`,`filter`]}],SV=8;function CV(e){if(e)return xV.find(t=>t.fieldId===e)}function wV(e,t){let n=e.trim().toLowerCase();if(!n)return[];let r=[];for(let e of xV){let i=t(e.labelKey).toLowerCase(),a=e.qualifierKey?t(e.qualifierKey).toLowerCase():``,o=e.hintKey?t(e.hintKey).toLowerCase():``,s=(e.yamlKeys??[]).join(`.`).toLowerCase(),c=(e.keywords??[]).join(` `).toLowerCase(),l=1/0;i.startsWith(n)?l=0:i.includes(n)?l=1:a.includes(n)||c.includes(n)?l=2:s.includes(n)?l=3:o.includes(n)&&(l=4),Number.isFinite(l)&&r.push({entry:e,score:l})}return r.sort((e,t)=>e.score-t.score),r.slice(0,SV).map(e=>e.entry)}var TV=xV.length,EV=(()=>{let e=new Map;for(let[t,n]of Object.entries(mV))for(let r of n)e.set(r,t);return e})(),DV=new Map(xV.map(e=>[e.fieldId,e.sectionId])),OV=new Set(fV),kV=new Set(fV.flatMap(e=>[...mV[e]??[]]));function AV(e){let t=new Set;for(let n of e){let e=EV.get(n);if(!e)continue;let r=DV.get(e);r&&t.add(r),OV.has(e)&&t.add(`common`)}return t}function jV(e,t){let n=Object.fromEntries(lV.map(e=>[e,0]));for(let t of cV)n[t]=pV[t].reduce((t,n)=>t+ +!!e?.[n],0);return t&&(n.payload+=1),n.common=Object.entries(e??{}).reduce((e,[t,n])=>e+(n&&kV.has(t)?1:0),0),n}function MV(e,t){return Object.values(e??{}).filter(Boolean).length+ +!!t}function NV(e){return e.disconnected?{key:`disconnected`,labelKey:`config_management.status_disconnected`,shortLabelKey:`config_management.status_disconnected_short`,tone:`muted`}:e.loading?{key:`loading`,labelKey:`config_management.status_loading`,shortLabelKey:`config_management.status_loading_short`,tone:`busy`}:e.loadFailed?{key:`load_failed`,labelKey:`config_management.status_load_failed`,shortLabelKey:`config_management.status_load_failed_short`,tone:`error`}:e.yamlError?{key:`yaml_error`,labelKey:`config_management.visual_mode_unavailable`,shortLabelKey:`config_management.visual_mode_unavailable_short`,tone:`error`}:e.validationBlocked?{key:`validation_blocked`,labelKey:`config_management.visual.validation.validation_blocked`,shortLabelKey:`config_management.validation_blocked_short`,tone:`error`}:e.saving?{key:`saving`,labelKey:`config_management.status_saving`,shortLabelKey:`config_management.status_saving_short`,tone:`busy`}:e.dirty?{key:`dirty`,labelKey:`config_management.status_dirty`,shortLabelKey:`config_management.status_dirty_short`,tone:`warning`}:{key:`synced`,labelKey:`config_management.status_loaded`,shortLabelKey:`config_management.status_loaded_short`,tone:`ok`}}function PV(e){let t=[{key:`fields`,labelKey:`config_management.meta_fields`,count:e.fieldCount,tone:`muted`}],{status:n}=e;return n.key===`disconnected`||n.key===`loading`||n.key===`load_failed`||n.key===`saving`?(t.push({key:n.key,labelKey:n.labelKey,tone:n.tone===`busy`?`muted`:n.tone}),t):(n.key===`yaml_error`&&t.push({key:n.key,labelKey:n.shortLabelKey,tone:`error`}),e.sourceDirty?t.push({key:`dirty_source`,labelKey:`config_management.meta_dirty_source`,tone:`warning`}):e.dirtyCount>0&&t.push({key:`dirty`,labelKey:`config_management.meta_dirty`,count:e.dirtyCount,tone:`warning`}),e.errorCount>0&&t.push({key:`errors`,labelKey:`config_management.meta_errors`,count:e.errorCount,tone:`error`}),n.key===`synced`&&t.push({key:n.key,labelKey:`config_management.meta_synced`,tone:`ok`}),t)}function FV(e){return e===`source`?`source`:`visual`}function IV(e){return e!==null&&lV.includes(e)?e:`common`}function LV(e){try{let t=iz(e);if(!t||typeof t!=`object`||Array.isArray(t))return!1;let n=t.server;return!n||typeof n!=`object`||Array.isArray(n)?!1:!!n[`commercial-mode`]}catch{return!1}}function RV(e,t){let n=e=>{try{let t=iz(e);if(!t||typeof t!=`object`||Array.isArray(t))return[];let n=t.server;if(!n||typeof n!=`object`||Array.isArray(n))return[];let r=n[`trusted-proxies`];return Array.isArray(r)?[...new Set(r.filter(e=>typeof e==`string`))].sort():[]}catch{return[]}};return JSON.stringify(n(e))!==JSON.stringify(n(t))}function zV(e){try{return rz(e).toString({indent:2,lineWidth:120,minContentWidth:0})}catch{return e}}function BV(e,t,n,r,i){if(n){if(r===`source`)return t;throw Error(`Unsaved source edits must be saved or discarded before visual editing`)}return i(e)}function VV(e,t){return e||t!==null}function HV({mode:e,visualDirty:t,visualParseError:n,loadVisualValuesFromYaml:r,rebaseVisualValuesFromYaml:i,applyVisualChangesToYaml:a}){let{t:o}=B(),s=Jc(e=>e.showNotification),c=Jc(e=>e.showConfirmation),[l,u]=(0,y.useState)(``),[d,f]=(0,y.useState)(!0),[p,m]=(0,y.useState)(!1),[h,g]=(0,y.useState)(!1),[_,v]=(0,y.useState)(``),[b,x]=(0,y.useState)(!1),[S,C]=(0,y.useState)(!1),[w,T]=(0,y.useState)(``),[E,D]=(0,y.useState)(``),[O,k]=(0,y.useState)(``),[A,j]=(0,y.useState)(`visual`),[M,N]=(0,y.useState)(null),ee=(0,y.useRef)(null),P=(0,y.useRef)(0),F=(0,y.useCallback)(()=>{let e=++P.current,t=W.getConnectionRevision();return{revision:t,isCurrent:()=>e===P.current&&t===W.getConnectionRevision()}},[]),I=b||t,L=(0,y.useCallback)(async()=>{let e=F();f(!0),v(``);try{let t=await yv.fetchConfigYaml();if(!e.isCurrent())return;u(t),g(!1),x(!1),C(!1),T(t),D(t),k(t),r(t)}catch(t){if(!e.isCurrent())return;let n=t instanceof Error?t.message:o(`notification.refresh_failed`);v(n)}finally{e.isCurrent()&&f(!1)}},[F,r,o]);(0,y.useEffect)(()=>(L(),()=>{P.current+=1}),[L]);let R=(0,y.useCallback)(e=>{let t=gz(O,E,e),n=i(e,t);if(!n.ok)throw Error(n.error);return u(e),k(e),T(e),D(t),g(!1),t},[E,O,i]),te=(0,y.useCallback)(async()=>{if(!S||p)return;let e=F();if(ee.current!==e.revision)return;let t=!1;m(!0);try{let n=await yv.fetchConfigYaml();if(!e.isCurrent())return;if(n!==O){let e=b?E:a(n),t=A===`visual`?pz(n,e):null;N(t);let i=b?n:zV(n);k(n),T(i),D(e),(t?!_z(t):i===e)&&(x(!1),C(!1),u(n),r(n),s(o(`config_management.diff.no_changes`),`info`));return}let i=LV(n)!==LV(E),c=RV(n,E);if(A===`visual`&&!M||(t=!0,A===`visual`&&M?await vz(M,e.revision):await yv.saveConfigYaml(E),!e.isCurrent()))return;Bp.getState().clearCache();let l=await yv.fetchConfigYaml();if(!e.isCurrent())return;x(!1),g(!1),C(!1),u(l),T(l),D(l),k(l),r(l);try{Bp.getState().clearCache(),await Bp.getState().fetchConfig(!0)}catch(t){if(!e.isCurrent())return;let n=t instanceof Error?t.message:typeof t==`string`?t:``;s(`${o(`notification.refresh_failed`)}${n?`: ${n}`:``}`,`error`)}if(!e.isCurrent())return;s(o(`config_management.save_success`),`success`),i&&s(o(`notification.commercial_mode_restart_required`),`warning`),c&&s(o(`notification.trusted_proxies_restart_required`),`warning`)}catch(n){if(!e.isCurrent())return;let r=n instanceof mz?o(`config_management.concurrent_list_conflict`,{path:n.path.join(`.`)}):n instanceof Error?n.message:``;if(t&&A===`visual`){C(!1),g(!0),Bp.getState().clearCache(),s(`${o(`config_management.precise_save_incomplete`)}: ${r}`,`error`);try{let t=await yv.fetchConfigYaml();if(!e.isCurrent())return;R(t),LV(O)!==LV(t)&&s(o(`notification.commercial_mode_restart_required`),`warning`),RV(O,t)&&s(o(`notification.trusted_proxies_restart_required`),`warning`)}catch(t){if(!e.isCurrent())return;s(t instanceof mz?o(`config_management.concurrent_list_conflict`,{path:t.path.join(`.`)}):o(`config_management.precise_save_recovery_required`),`error`)}if(!e.isCurrent())return;try{await Bp.getState().fetchConfig(!0)}catch{}}else s(`${o(`notification.save_failed`)}: ${r}`,`error`)}finally{e.isCurrent()&&m(!1)}},[a,F,S,p,r,E,A,M,R,b,O,s,o]),ne=(0,y.useCallback)(async()=>{if(p||S)return;if(e===`visual`&&b){s(o(`config_management.source_changes_before_visual`),`warning`);return}if(e===`visual`&&n){s(o(`config_management.visual_mode_save_blocked`),`error`);return}let t=F();m(!0);try{let n=await yv.fetchConfigYaml();if(!t.isCurrent())return;if(e===`visual`||!b){let e=rz(n);if(e.errors.length>0){s(o(`config_management.visual_mode_latest_yaml_invalid`,{message:e.errors[0]?.message??o(`config_management.visual_mode_save_blocked`)}),`error`);return}}let i=h?R(n):BV(n,l,b,e,a),c=n;b||(c=zV(n));let d=e===`visual`?pz(n,i):null;if(d?!_z(d):c===i){x(!1),u(n),T(n),D(i),k(n),r(n),s(o(`config_management.diff.no_changes`),`info`);return}T(c),D(i),k(n),j(e),N(d),ee.current=t.revision,C(!0)}catch(e){if(!t.isCurrent())return;let n=e instanceof mz?o(`config_management.concurrent_list_conflict`,{path:e.path.join(`.`)}):e instanceof Error?e.message:``;s(`${o(`notification.save_failed`)}: ${n}`,`error`)}finally{t.isCurrent()&&m(!1)}},[a,F,S,p,l,b,h,R,r,e,s,o,n]),re=(0,y.useCallback)(e=>{u(e)},[]),z=(0,y.useCallback)(e=>{u(e),x(!0)},[]),ie=(0,y.useCallback)(()=>{if(!I){L();return}c({title:o(`common.unsaved_changes_title`),message:o(`config_management.reload_confirm_message`),confirmText:o(`config_management.reload`),cancelText:o(`common.cancel`),variant:`danger`,onConfirm:async()=>{await L()}})},[I,L,c,o]);return{content:l,syncContentFromVisual:re,loading:d,saving:p,recoveryRequired:h,error:_,sourceDirty:b,isDirty:I,diffModalOpen:S,serverYaml:w,mergedYaml:E,loadConfig:L,handleSave:ne,handleConfirmSave:te,handleChange:z,handleReload:ie,handleDiscard:(0,y.useCallback)(()=>{if(I){if(h){ie();return}c({title:o(`common.unsaved_changes_title`),message:o(`config_management.discard_confirm_message`),confirmText:o(`config_management.actions.discard`),cancelText:o(`common.cancel`),variant:`danger`,onConfirm:()=>{u(O),x(!1),C(!1),T(O),D(O),r(O)}})}},[ie,I,r,O,h,c,o]),closeDiff:(0,y.useCallback)(()=>C(!1),[])}}var UV={fieldsRoot:`Field-module__fieldsRoot___8o0aC`,toggleRow:`Field-module__toggleRow___n6yLc`,toggleCopy:`Field-module__toggleCopy___J1wWT`,toggleTitle:`Field-module__toggleTitle___7gVIF`,toggleDescription:`Field-module__toggleDescription___MWMUN`,fieldGrid:`Field-module__fieldGrid___BsdAF`,fieldStack:`Field-module__fieldStack___Bt7pD`,divider:`Field-module__divider___q7u-7`,fieldAnchor:`Field-module__fieldAnchor___OUIEI`,fieldAnchorWide:`Field-module__fieldAnchorWide___tPUlq`,fieldSponsorHint:`Field-module__fieldSponsorHint___sZFDJ`,fieldSponsorSpacer:`Field-module__fieldSponsorSpacer___W-es0`,fieldSponsorLink:`Field-module__fieldSponsorLink___AGeOB`,fieldSponsorLogo:`Field-module__fieldSponsorLogo___6uaQw`,fieldHighlightActive:`Field-module__fieldHighlightActive___q1OQx`,"config-field-highlight":`Field-module__config-field-highlight___N5Rac`,configFieldHighlight:`Field-module__config-field-highlight___N5Rac`,group:`Field-module__group___KJbtB`,groupHeader:`Field-module__groupHeader___JXTr-`,groupTitle:`Field-module__groupTitle___YoSVI`,groupDescription:`Field-module__groupDescription___V2lRJ`,fieldShell:`Field-module__fieldShell___lOmzl`,fieldLabel:`Field-module__fieldLabel___SP5r6`,fieldControl:`Field-module__fieldControl___DPtZb`,fieldHint:`Field-module__fieldHint___Co12l`,inlinePill:`Field-module__inlinePill___8-GKa`},WV=UV.fieldHighlightActive,GV=UV.fieldsRoot;function KV({title:e,description:t,checked:n,disabled:r,onChange:i}){return(0,V.jsxs)(`div`,{className:UV.toggleRow,children:[(0,V.jsxs)(`div`,{className:UV.toggleCopy,children:[(0,V.jsx)(`div`,{className:UV.toggleTitle,children:e}),t?(0,V.jsx)(`div`,{className:UV.toggleDescription,children:t}):null]}),(0,V.jsx)($C,{checked:n,onChange:i,disabled:r,ariaLabel:e})]})}function qV({children:e}){return(0,V.jsx)(`div`,{className:UV.fieldGrid,children:e})}function JV({children:e}){return(0,V.jsx)(`div`,{className:UV.fieldStack,children:e})}function YV(){return(0,V.jsx)(`div`,{className:UV.divider})}function Y({fieldId:e,wide:t=!1,children:n}){return(0,V.jsx)(`div`,{id:bV(e),className:`${UV.fieldAnchor} ${t?UV.fieldAnchorWide:``}`,children:n})}function XV({title:e,description:t,children:n}){return(0,V.jsxs)(`div`,{className:UV.group,children:[e?(0,V.jsxs)(`div`,{className:UV.groupHeader,children:[(0,V.jsx)(`h3`,{className:UV.groupTitle,children:e}),t?(0,V.jsx)(`p`,{className:UV.groupDescription,children:t}):null]}):null,n]})}function ZV({title:e}){return(0,V.jsx)(`div`,{className:UV.groupHeader,children:(0,V.jsx)(`h3`,{className:UV.groupTitle,children:e})})}function QV({label:e,labelId:t,htmlFor:n,hint:r,hintId:i,error:a,errorId:o,children:s}){return(0,V.jsxs)(`div`,{className:UV.fieldShell,children:[(0,V.jsx)(`label`,{id:t,htmlFor:n,className:UV.fieldLabel,children:e}),s,a?(0,V.jsx)(`div`,{id:o,className:`error-box`,children:a}):null,r?(0,V.jsx)(`div`,{id:i,className:UV.fieldHint,children:r}):null]})}function $V({id:e,children:t}){return(0,V.jsx)(`div`,{id:e,className:UV.fieldHint,children:t})}function eH({children:e}){return(0,V.jsx)(`div`,{className:UV.fieldControl,children:e})}function tH({children:e}){return(0,V.jsx)(`span`,{className:UV.inlinePill,children:e})}function nH({values:e,setActiveSection:t}){let[n,r]=(0,y.useState)(null),i=(0,y.useRef)(null),a=(0,y.useRef)(null),o=(0,y.useRef)(null),s=(0,y.useCallback)(e=>{t(e.sectionId),r({fieldId:e.fieldId,sectionId:e.sectionId})},[t]);return(0,y.useEffect)(()=>{if(!n||i.current===n)return;i.current=n;let{fieldId:t}=n,r=(t===`tlsCert`||t===`tlsKey`)&&!e.tlsEnable?`tlsEnable`:t,s=e=>{let t=document.getElementById(bV(r));if(!t){e>0&&requestAnimationFrame(()=>s(e-1));return}let n=t.closest(`details`)??t.querySelector(`details`);n&&!n.open&&(n.open=!0),a.current!==null&&(clearTimeout(a.current),o.current?.classList.remove(WV)),t.scrollIntoView({behavior:ix()?`auto`:`smooth`,block:`center`,inline:`nearest`}),t.classList.add(WV),o.current=t,a.current=window.setTimeout(()=>{t.classList.remove(WV),a.current=null,o.current=null},1800)};requestAnimationFrame(()=>s(1))},[n,e.tlsEnable]),(0,y.useEffect)(()=>()=>{a.current!==null&&clearTimeout(a.current)},[]),{jumpToField:s}}function rH(){let e=(0,y.useRef)(null),[t,n]=(0,y.useState)(``),[r,i]=(0,y.useState)({current:0,total:0}),[a,o]=(0,y.useState)(``),s=(0,y.useCallback)((t,n=`next`)=>{if(!t||!e.current?.view)return;let r=e.current.view,a=r.state.doc.toString(),o=[],s=t.toLowerCase(),c=a.toLowerCase(),l=0;for(;l<c.length;){let e=c.indexOf(s,l);if(e===-1)break;o.push(e),l=e+1}if(o.length===0){i({current:0,total:0});return}let u=r.state.selection.main,d=n===`prev`?u.from:u.to,f=0;if(n===`next`)for(let e=0;e<o.length;e++){if(o[e]>d){f=e;break}e===o.length-1&&(f=0)}else for(let e=o.length-1;e>=0;e--){if(o[e]<d){f=e;break}e===0&&(f=o.length-1)}let p=o[f];i({current:f+1,total:o.length}),r.dispatch({selection:{anchor:p,head:p+t.length},scrollIntoView:!0}),r.focus()},[]),c=(0,y.useCallback)(e=>{n(e),e?i({current:0,total:0}):(i({current:0,total:0}),o(``))},[]),l=(0,y.useCallback)((e=`next`)=>{t&&(o(t),s(t,e))},[t,s]);return{editorRef:e,searchQuery:t,searchResults:r,lastSearchedQuery:a,handleSearchChange:c,executeSearch:l,handleSearchKeyDown:(0,y.useCallback)(e=>{e.key===`Enter`&&(e.preventDefault(),l(e.shiftKey?`prev`:`next`))},[l]),handlePrevMatch:(0,y.useCallback)(()=>{a&&s(a,`prev`)},[a,s]),handleNextMatch:(0,y.useCallback)(()=>{a&&s(a,`next`)},[a,s])}}var iH={header:`ConfigHeader-module__header___M4wX-`,copy:`ConfigHeader-module__copy___l-QBQ`,title:`ConfigHeader-module__title___-cK3B`,meta:`ConfigHeader-module__meta___dVz1n`,metaDot:`ConfigHeader-module__metaDot___K51ko`,metaMuted:`ConfigHeader-module__metaMuted___oITta`,metaWarning:`ConfigHeader-module__metaWarning___cUkRg`,metaError:`ConfigHeader-module__metaError___zJK2-`,metaOk:`ConfigHeader-module__metaOk___MD6Cm`,actions:`ConfigHeader-module__actions___Dvt-b`,ghostAction:`ConfigHeader-module__ghostAction___WaXy7`,spinning:`ConfigHeader-module__spinning___KK4Wt`,"config-header-spin":`ConfigHeader-module__config-header-spin___EPV5i`,configHeaderSpin:`ConfigHeader-module__config-header-spin___EPV5i`};function aH({meta:e,reloadDisabled:t,reloading:n,onReload:r,extraActions:i}){let{t:a}=B(),o={muted:iH.metaMuted,warning:iH.metaWarning,error:iH.metaError,ok:iH.metaOk};return(0,V.jsxs)(`header`,{className:iH.header,children:[(0,V.jsxs)(`div`,{className:iH.copy,children:[(0,V.jsx)(`h1`,{className:iH.title,"data-reveal":!0,children:a(`config_management.title`)}),(0,V.jsx)(`p`,{className:iH.meta,"data-reveal":!0,children:e.map((e,t)=>(0,V.jsxs)(y.Fragment,{children:[t>0?(0,V.jsx)(`span`,{className:iH.metaDot,"aria-hidden":`true`,children:`·`}):null,(0,V.jsx)(`span`,{className:o[e.tone],children:e.count===void 0?a(e.labelKey):a(e.labelKey,{count:e.count})})]},e.key))})]}),(0,V.jsxs)(`div`,{className:iH.actions,"data-reveal":!0,children:[i,(0,V.jsxs)(`button`,{type:`button`,className:iH.ghostAction,onClick:r,disabled:t,children:[(0,V.jsx)(Ts,{size:14,className:n?iH.spinning:void 0}),a(`config_management.reload`)]})]})]})}var oH={searchBox:`ConfigSearch-module__searchBox___Fifjj`,searchControl:`ConfigSearch-module__searchControl___X1kcu`,searchIcon:`ConfigSearch-module__searchIcon___scYBP`,searchResults:`ConfigSearch-module__searchResults___hUNGK`,"config-search-in":`ConfigSearch-module__config-search-in___g05RZ`,configSearchIn:`ConfigSearch-module__config-search-in___g05RZ`,searchResultItem:`ConfigSearch-module__searchResultItem___Bl0WK`,searchResultItemActive:`ConfigSearch-module__searchResultItemActive___wwJ6v`,searchResultLabel:`ConfigSearch-module__searchResultLabel___8m98B`,searchResultQualifier:`ConfigSearch-module__searchResultQualifier___9KaMz`,searchResultSection:`ConfigSearch-module__searchResultSection___erZIc`,searchEmpty:`ConfigSearch-module__searchEmpty___boZgd`};function sH({disabled:e=!1,onJump:t}){let{t:n}=B(),[r,i]=(0,y.useState)(``),[a,o]=(0,y.useState)(!1),[s,c]=(0,y.useState)(0),l=(0,y.useId)(),u=(0,y.useRef)(null),d=(0,y.useRef)(null),f=(0,y.useMemo)(()=>wV(r,n),[r,n]),p=a&&!!r.trim(),m=f.length>0?Math.min(Math.max(s,0),f.length-1):-1,h=e=>{o(!1),t(e)};return(0,y.useEffect)(()=>{if(!a)return;let e=e=>{d.current&&!d.current.contains(e.target)&&o(!1)};return document.addEventListener(`mousedown`,e),()=>document.removeEventListener(`mousedown`,e)},[a]),(0,y.useEffect)(()=>{!p||m<0||(u.current?.querySelector(`[data-result-index="${m}"]`))?.scrollIntoView({block:`nearest`})},[m,p]),(0,V.jsxs)(`div`,{className:oH.searchBox,ref:d,children:[(0,V.jsx)(ds,{className:oH.searchControl,placeholder:n(`config_management.visual.search.placeholder`),"aria-label":n(`config_management.visual.search.placeholder`),role:`combobox`,"aria-autocomplete":`list`,"aria-expanded":p,"aria-controls":p?l:void 0,"aria-activedescendant":p&&m>=0?`${l}-opt-${m}`:void 0,value:r,disabled:e,onChange:e=>{i(e.target.value),o(!0),c(0)},onFocus:()=>o(!0),onKeyDown:e=>{if(!e.nativeEvent.isComposing){if(e.key===`Escape`){o(!1);return}if(e.key===`ArrowDown`){if(e.preventDefault(),!p){o(!0);return}if(f.length===0)return;c((m+1)%f.length);return}if(e.key===`ArrowUp`){if(e.preventDefault(),!p){o(!0);return}if(f.length===0)return;c(m<=0?f.length-1:m-1);return}e.key===`Enter`&&p&&f.length>0&&(e.preventDefault(),h(f[m]??f[0]))}},rightElement:(0,V.jsx)(`span`,{className:oH.searchIcon,"aria-hidden":`true`,children:(0,V.jsx)(Bs,{size:16})})}),p?(0,V.jsx)(`div`,{className:oH.searchResults,role:`listbox`,id:l,"aria-label":n(`config_management.visual.search.placeholder`),ref:u,children:f.length>0?f.map((e,t)=>(0,V.jsxs)(`button`,{type:`button`,role:`option`,id:`${l}-opt-${t}`,"data-result-index":t,tabIndex:-1,"aria-selected":t===m,className:`${oH.searchResultItem} ${t===m?oH.searchResultItemActive:``}`,onMouseEnter:()=>c(t),onClick:()=>h(e),children:[(0,V.jsxs)(`span`,{className:oH.searchResultLabel,children:[n(e.labelKey),e.qualifierKey?(0,V.jsx)(`span`,{className:oH.searchResultQualifier,children:n(e.qualifierKey)}):null]}),(0,V.jsx)(`span`,{className:oH.searchResultSection,children:n(`config_management.visual.sections.${e.sectionId}.title`)})]},e.fieldId)):(0,V.jsx)(`div`,{className:oH.searchEmpty,children:n(`config_management.visual.search.no_results`)})}):null]})}var cH={tabs:`ConfigTabs-module__tabs___k0STP`,tab:`ConfigTabs-module__tab___phNMq`,tabActive:`ConfigTabs-module__tabActive___oqWmm`,tabGlyph:`ConfigTabs-module__tabGlyph___m7l9d`,tabLabel:`ConfigTabs-module__tabLabel___nOp9i`,tabBadge:`ConfigTabs-module__tabBadge___-B1W5`,tabDirtyDot:`ConfigTabs-module__tabDirtyDot___0tB-q`};function lH({active:e,errorCounts:t,dirtyTabs:n,disabled:r=!1,onChange:i}){let{t:a}=B(),o=(0,y.useRef)(null),s=(0,y.useRef)({});(0,y.useEffect)(()=>{let t=o.current,n=s.current[e];!t||!n||t.scrollWidth<=t.clientWidth||n.scrollIntoView({behavior:ix()?`auto`:`smooth`,block:`nearest`,inline:`center`})},[e]);let c=t=>{let n=lV.length,r=lV.indexOf(e),a=-1;if(t.key===`ArrowRight`?a=(r+1)%n:t.key===`ArrowLeft`?a=(r-1+n)%n:t.key===`Home`?a=0:t.key===`End`&&(a=n-1),a<0)return;t.preventDefault();let o=lV[a];i(o),s.current[o]?.focus()};return(0,V.jsx)(`div`,{className:cH.tabs,role:`tablist`,"aria-label":a(`config_management.title`),ref:o,children:lV.map(o=>{let l=dV[o],u=e===o,d=t[o]??0,f=n.has(o),p=a(`config_management.visual.sections.${o}.title`),m=[p,d>0?a(`config_management.meta_errors`,{count:d}):null,f?a(`config_management.status_dirty_short`):null].filter(Boolean).join(`, `);return(0,V.jsxs)(`button`,{ref:e=>{s.current[o]=e},type:`button`,role:`tab`,id:hV(o),"aria-selected":u,"aria-controls":gV(o),"aria-label":m,tabIndex:u?0:-1,className:`${cH.tab} ${u?cH.tabActive:``}`,disabled:r,onClick:()=>i(o),onKeyDown:c,children:[(0,V.jsx)(l,{size:15,className:cH.tabGlyph}),(0,V.jsx)(`span`,{className:cH.tabLabel,children:p}),d>0?(0,V.jsx)(`span`,{className:cH.tabBadge,"aria-hidden":`true`,children:d}):null,f?(0,V.jsx)(`span`,{className:cH.tabDirtyDot,"aria-hidden":`true`}):null]},o)})})}function uH(e){if(e<768)return!1;for(let t=0,n=yH.length;;){let r=t+n>>1;if(e<yH[r])n=r;else if(e>=bH[r])t=r+1;else return!0;if(t==n)return!1}}function dH(e){return e>=127462&&e<=127487}function fH(e,t,n=!0,r=!0){return(n?pH:mH)(e,t,r)}function pH(e,t,n){if(t==e.length)return t;t&&gH(e.charCodeAt(t))&&_H(e.charCodeAt(t-1))&&t--;let r=hH(e,t);for(t+=vH(r);t<e.length;){let i=hH(e,t);if(r==xH||i==xH||n&&uH(i))t+=vH(i),r=i;else if(dH(i)){let n=0,r=t-2;for(;r>=0&&dH(hH(e,r));)n++,r-=2;if(n%2==0)break;t+=2}else break}return t}function mH(e,t,n){for(;t>0;){let r=pH(e,t-2,n);if(r<t)return r;t--}return 0}function hH(e,t){let n=e.charCodeAt(t);if(!_H(n)||t+1==e.length)return n;let r=e.charCodeAt(t+1);return gH(r)?(n-55296<<10)+(r-56320)+65536:n}function gH(e){return e>=56320&&e<57344}function _H(e){return e>=55296&&e<56320}function vH(e){return e<65536?1:2}var yH,bH,xH,SH=o((()=>{yH=[],bH=[],(()=>{let e=`lc,34,7n,7,7b,19,,,,2,,2,,,20,b,1c,l,g,,2t,7,2,6,2,2,,4,z,,u,r,2j,b,1m,9,9,,o,4,,9,,3,,5,17,3,3b,f,,w,1j,,,,4,8,4,,3,7,a,2,t,,1m,,,,2,4,8,,9,,a,2,q,,2,2,1l,,4,2,4,2,2,3,3,,u,2,3,,b,2,1l,,4,5,,2,4,,k,2,m,6,,,1m,,,2,,4,8,,7,3,a,2,u,,1n,,,,c,,9,,14,,3,,1l,3,5,3,,4,7,2,b,2,t,,1m,,2,,2,,3,,5,2,7,2,b,2,s,2,1l,2,,,2,4,8,,9,,a,2,t,,20,,4,,2,3,,,8,,29,,2,7,c,8,2q,,2,9,b,6,22,2,r,,,,,,1j,e,,5,,2,5,b,,10,9,,2u,4,,6,,2,2,2,p,2,4,3,g,4,d,,2,2,6,,f,,jj,3,qa,3,t,3,t,2,u,2,1s,2,,7,8,,2,b,9,,19,3,3b,2,y,,3a,3,4,2,9,,6,3,63,2,2,,1m,,,7,,,,,2,8,6,a,2,,1c,h,1r,4,1c,7,,,5,,14,9,c,2,w,4,2,2,,3,1k,,,2,3,,,3,1m,8,2,2,48,3,,d,,7,4,,6,,3,2,5i,1m,,5,ek,,5f,x,2da,3,3x,,2o,w,fe,6,2x,2,n9w,4,,a,w,2,28,2,7k,,3,,4,,p,2,5,,47,2,q,i,d,,12,8,p,b,1a,3,1c,,2,4,2,2,13,,1v,6,2,2,2,2,c,,8,,1b,,1f,,,3,2,2,5,2,,,16,2,8,,6m,,2,,4,,fn4,,kh,g,g,g,a6,2,gt,,6a,,45,5,1ae,3,,2,5,4,14,3,4,,4l,2,fx,4,ar,2,49,b,4w,,1i,f,1k,3,1d,4,2,2,1x,3,10,5,,8,1q,,c,2,1g,9,a,4,2,,2n,3,2,,,2,6,,4g,,3,8,l,2,1l,2,,,,,m,,e,7,3,5,5f,8,2,3,,,n,,29,,2,6,,,2,,,2,,2,6j,,2,4,6,2,,2,r,2,2d,8,2,,,2,2y,,,,2,6,,,2t,3,2,4,,5,77,9,,2,6t,,a,2,,,4,,40,4,2,2,4,,w,a,14,6,2,4,8,,9,6,2,3,1a,d,,2,ba,7,,6,,,2a,m,2,7,,2,,2,3e,6,3,,,2,,7,,,20,2,3,,,,9n,2,f0b,5,1n,7,t4,,1r,4,29,,f5k,2,43q,,,3,4,5,8,8,2,7,u,4,44,3,1iz,1j,4,1e,8,,e,,m,5,,f,11s,7,,h,2,7,,2,,5,79,7,c5,4,15s,7,31,7,240,5,gx7k,2o,3k,6o`.split(`,`).map(e=>e?parseInt(e,36):1);for(let t=0,n=0;t<e.length;t++)(t%2?bH:yH).push(n+=e[t])})(),xH=8205}));function CH(e){let t=-1;for(let n of e)t+=n.length+1;return t}function wH(e,t,n=0,r=1e9){for(let i=0,a=0,o=!0;a<e.length&&i<=r;a++){let s=e[a],c=i+s.length;c>=n&&(c>r&&(s=s.slice(0,r-i)),i<n&&(s=s.slice(n-i)),o?(t[t.length-1]+=s,o=!1):t.push(s)),i=c+1}return t}function TH(e,t,n){return wH(e,[``],t,n)}function EH(e,t,n){return t=Math.max(0,Math.min(e.length,t)),[t,Math.max(t,Math.min(e.length,n))]}function DH(e,t,n=!0,r=!0){return fH(e,t,n,r)}function OH(e){return e>=56320&&e<57344}function kH(e){return e>=55296&&e<56320}function AH(e,t){let n=e.charCodeAt(t);if(!kH(n)||t+1==e.length)return n;let r=e.charCodeAt(t+1);return OH(r)?(n-55296<<10)+(r-56320)+65536:n}function jH(e){return e<=65535?String.fromCharCode(e):(e-=65536,String.fromCharCode((e>>10)+55296,(e&1023)+56320))}function MH(e){return e<65536?1:2}function NH(e,t,n,r=!1){if(t==0&&n<=0)return;let i=e.length-2;i>=0&&n<=0&&n==e[i+1]?e[i]+=t:i>=0&&t==0&&e[i]==0?e[i+1]+=n:r?(e[i]+=t,e[i+1]+=n):e.push(t,n)}function PH(e,t,n){if(n.length==0)return;let r=t.length-2>>1;if(r<e.length)e[e.length-1]=e[e.length-1].append(n);else{for(;e.length<r;)e.push(mU.empty);e.push(n)}}function FH(e,t,n){let r=e.inserted;for(let i=0,a=0,o=0;o<e.sections.length;){let s=e.sections[o++],c=e.sections[o++];if(c<0)i+=s,a+=s;else{let l=i,u=a,d=mU.empty;for(;l+=s,u+=c,c&&r&&(d=d.append(r[o-2>>1])),!(n||o==e.sections.length||e.sections[o+1]<0);)s=e.sections[o++],c=e.sections[o++];t(i,l,a,u,d),i=l,a=u}}}function IH(e,t,n,r=!1){let i=[],a=r?[]:null,o=new TU(e),s=new TU(t);for(let e=-1;;)if(o.done&&s.len||s.done&&o.len)throw Error(`Mismatched change set lengths`);else if(o.ins==-1&&s.ins==-1){let e=Math.min(o.len,s.len);NH(i,e,-1),o.forward(e),s.forward(e)}else if(s.ins>=0&&(o.ins<0||e==o.i||o.off==0&&(s.len<o.len||s.len==o.len&&!n))){let t=s.len;for(NH(i,s.ins,-1);t;){let n=Math.min(o.len,t);o.ins>=0&&e<o.i&&o.len<=n&&(NH(i,0,o.ins),a&&PH(a,i,o.text),e=o.i),o.forward(n),t-=n}s.next()}else if(o.ins>=0){let t=0,n=o.len;for(;n;)if(s.ins==-1){let e=Math.min(n,s.len);t+=e,n-=e,s.forward(e)}else if(s.ins==0&&s.len<n)n-=s.len,s.next();else break;NH(i,t,e<o.i?o.ins:0),a&&e<o.i&&PH(a,i,o.text),e=o.i,o.forward(o.len-n)}else if(o.done&&s.done)return a?wU.createSet(i,a):CU.create(i);else throw Error(`Mismatched change set lengths`)}function LH(e,t,n=!1){let r=[],i=n?[]:null,a=new TU(e),o=new TU(t);for(let e=!1;;)if(a.done&&o.done)return i?wU.createSet(r,i):CU.create(r);else if(a.ins==0)NH(r,a.len,0,e),a.next();else if(o.len==0&&!o.done)NH(r,0,o.ins,e),i&&PH(i,r,o.text),o.next();else if(a.done||o.done)throw Error(`Mismatched change set lengths`);else{let t=Math.min(a.len2,o.len),n=r.length;if(a.ins==-1){let n=o.ins==-1?-1:o.off?0:o.ins;NH(r,t,n,e),i&&n&&PH(i,r,o.text)}else o.ins==-1?(NH(r,a.off?0:a.len,t,e),i&&PH(i,r,a.textBit(t))):(NH(r,a.off?0:a.len,o.off?0:o.ins,e),i&&!o.off&&PH(i,r,o.text));e=(a.ins>t||o.ins>=0&&o.len>t)&&(e||r.length>n),a.forward2(t),o.forward(t)}}function RH(e,t){for(let n of e.ranges)if(n.to>t)throw RangeError(`Selection points outside of document`)}function zH(e,t){return e==t||e.length==t.length&&e.every((e,n)=>e===t[n])}function BH(e,t,n){if(e.length!=t.length)return!1;for(let r=0;r<e.length;r++)if(!n(e[r],t[r]))return!1;return!0}function VH(e,t){let n=!1;for(let r of t)GH(e,r)&1&&(n=!0);return n}function HH(e,t,n){let r=n.map(t=>e[t.id]),i=n.map(e=>e.type),a=r.filter(e=>!(e&1)),o=e[t.id]>>1;function s(e){let n=[];for(let t=0;t<r.length;t++){let a=KH(e,r[t]);if(i[t]==2)for(let e of a)n.push(e);else n.push(a)}return t.combine(n)}return{create(e){for(let t of r)GH(e,t);return e.values[o]=s(e),1},update(e,n){if(!VH(e,a))return 0;let r=s(e);return t.compare(r,e.values[o])?0:(e.values[o]=r,1)},reconfigure(e,i){let a=VH(e,r),c=i.config.facets[t.id],l=i.facet(t);if(c&&!a&&zH(n,c))return e.values[o]=l,0;let u=s(e);return t.compare(u,l)?(e.values[o]=l,0):(e.values[o]=u,1)}}}function UH(e){return t=>new PU(t,e)}function WH(e,t,n){let r=[[],[],[],[],[]],i=new Map;function a(e,o){let s=i.get(e);if(s!=null){if(s<=o)return;let t=r[s].indexOf(e);t>-1&&r[s].splice(t,1),e instanceof IU&&n.delete(e.compartment)}if(i.set(e,o),Array.isArray(e))for(let t of e)a(t,o);else if(e instanceof IU){if(n.has(e.compartment))throw RangeError(`Duplicate use of compartment in extensions`);let r=t.get(e.compartment)||e.inner;n.set(e.compartment,r),a(r,o)}else if(e instanceof PU)a(e.inner,e.prec);else if(e instanceof jU)r[o].push(e),e.provides&&a(e.provides,o);else if(e instanceof kU)r[o].push(e),e.facet.extensions&&a(e.facet.extensions,MU.default);else{let t=e.extension;if(!t)throw Error(`Unrecognized extension value in extension set (${e}). This sometimes happens because multiple instances of @codemirror/state are loaded, breaking instanceof checks.`);a(t,o)}}return a(e,MU.default),r.reduce((e,t)=>e.concat(t))}function GH(e,t){if(t&1)return 2;let n=t>>1,r=e.status[n];if(r==4)throw Error(`Cyclic dependency between fields and/or facets`);if(r&2)return r;e.status[n]=4;let i=e.computeSlot(e,e.config.dynamicSlots[n]);return e.status[n]=2|i}function KH(e,t){return t&1?e.config.staticValues[t>>1]:e.values[t>>1]}function qH(e,t){let n=[];for(let r=0,i=0;;){let a,o;if(r<e.length&&(i==t.length||t[i]>=e[r]))a=e[r++],o=e[r++];else if(i<t.length)a=t[i++],o=t[i++];else return n;!n.length||n[n.length-1]<a?n.push(a,o):n[n.length-1]<o&&(n[n.length-1]=o)}}function JH(e,t,n){let r,i,a;return n?(r=t.changes,i=wU.empty(t.changes.length),a=e.changes.compose(t.changes)):(r=t.changes.map(e.changes),i=e.changes.mapDesc(t.changes,!0),a=e.changes.compose(r)),{changes:a,selection:t.selection?t.selection.map(i):e.selection?.map(r),effects:JU.mapEffects(e.effects,r).concat(JU.mapEffects(t.effects,i)),annotations:e.annotations.length?e.annotations.concat(t.annotations):t.annotations,scrollIntoView:e.scrollIntoView||t.scrollIntoView}}function YH(e,t,n){let r=t.selection,i=$H(t.annotations);return t.userEvent&&(i=i.concat(YU.userEvent.of(t.userEvent))),{changes:t.changes instanceof wU?t.changes:wU.of(t.changes||[],n,e.facet(BU)),selection:r&&(r instanceof X?r:X.single(r.anchor,r.head)),effects:$H(t.effects),annotations:i,scrollIntoView:!!t.scrollIntoView}}function XH(e,t,n){let r=YH(e,t.length?t[0]:{},e.doc.length);t.length&&t[0].filter===!1&&(n=!1);for(let i=1;i<t.length;i++){t[i].filter===!1&&(n=!1);let a=!!t[i].sequential;r=JH(r,YH(e,t[i],a?r.changes.newLength:e.doc.length),a)}let i=YU.create(e,r.changes,r.selection,r.effects,r.annotations,r.scrollIntoView);return QH(n?ZH(i):i)}function ZH(e){let t=e.startState,n=!0;for(let r of t.facet(VU)){let t=r(e);if(t===!1){n=!1;break}Array.isArray(t)&&(n=n===!0?t:qH(n,t))}if(n!==!0){let r,i;if(n===!1)i=e.changes.invertedDesc,r=wU.empty(t.doc.length);else{let t=e.changes.filter(n);r=t.changes,i=t.filtered.mapDesc(t.changes).invertedDesc}e=YU.create(t,r,e.selection&&e.selection.map(i),JU.mapEffects(e.effects,i),e.annotations,e.scrollIntoView)}let r=t.facet(HU);for(let n=r.length-1;n>=0;n--){let i=r[n](e);e=i instanceof YU?i:Array.isArray(i)&&i.length==1&&i[0]instanceof YU?i[0]:XH(t,$H(i),!1)}return e}function QH(e){let t=e.startState,n=t.facet(UU),r=e;for(let i=n.length-1;i>=0;i--){let a=n[i](e);a&&Object.keys(a).length&&(r=JH(r,YH(t,a,e.changes.newLength),!0))}return r==e?e:YU.create(t,e.changes,e.selection,r.effects,r.annotations,r.scrollIntoView)}function $H(e){return e==null?XU:Array.isArray(e)?e:[e]}function eU(e){if($U)return $U.test(e);for(let t=0;t<e.length;t++){let n=e[t];if(/\w/.test(n)||n>`€`&&(n.toUpperCase()!=n.toLowerCase()||QU.test(n)))return!0}return!1}function tU(e){return t=>{if(!/\S/.test(t))return ZU.Space;if(eU(t))return ZU.Word;for(let n=0;n<e.length;n++)if(t.indexOf(e[n])>-1)return ZU.Word;return ZU.Other}}function nU(e,t,n={}){let r={};for(let t of e)for(let e of Object.keys(t)){let i=t[e],a=r[e];if(a===void 0)r[e]=i;else if(!(a===i||i===void 0))if(Object.hasOwnProperty.call(n,e))r[e]=n[e](a,i);else throw Error(`Config merge conflict for field `+e)}for(let e in t)r[e]===void 0&&(r[e]=t[e]);return r}function rU(e,t){return e.from-t.from||e.value.startSide-t.value.startSide}function iU(e){if(e.length>1)for(let t=e[0],n=1;n<e.length;n++){let r=e[n];if(rU(t,r)>0)return e.slice().sort(rU);t=r}return e}function aU(e,t,n){let r=new Map;for(let t of e)for(let e=0;e<t.chunk.length;e++)t.chunk[e].maxPoint<=0&&r.set(t.chunk[e],t.chunkPos[e]);let i=new Set;for(let e of t)for(let t=0;t<e.chunk.length;t++){let a=r.get(e.chunk[t]);a!=null&&(n?n.mapPos(a):a)==e.chunkPos[t]&&!n?.touchesRange(a,a+e.chunk[t].length)&&i.add(e.chunk[t])}return i}function oU(e,t){for(let n=e[t];;){let r=(t<<1)+1;if(r>=e.length)break;let i=e[r];if(r+1<e.length&&i.compare(e[r+1])>=0&&(i=e[r+1],r++),n.compare(i)<0)break;e[r]=n,e[t]=i,t=r}}function sU(e,t,n,r,i,a){e.goto(t),n.goto(r);let o=r+i,s=r,c=r-t;for(;;){let t=e.to+c-n.to,r=t||e.endSide-n.endSide,i=r<0?e.to+c:n.to,l=Math.min(i,o);if(e.point||n.point?e.point&&n.point&&(e.point==n.point||e.point.eq(n.point))&&cU(e.activeForPoint(e.to),n.activeForPoint(n.to))||a.comparePoint(s,l,e.point,n.point):l>s&&!cU(e.active,n.active)&&a.compareRange(s,l,e.active,n.active),i>o)break;(t||e.openEnd!=n.openEnd)&&a.boundChange&&a.boundChange(i),s=i,r<=0&&e.next(),r>=0&&n.next()}}function cU(e,t){if(e.length!=t.length)return!1;for(let n=0;n<e.length;n++)if(e[n]!=t[n]&&!e[n].eq(t[n]))return!1;return!0}function lU(e,t){for(let n=t,r=e.length-1;n<r;n++)e[n]=e[n+1];e.pop()}function uU(e,t,n){for(let n=e.length-1;n>=t;n--)e[n+1]=e[n];e[t]=n}function dU(e,t){let n=-1,r=1e9;for(let i=0;i<t.length;i++)(t[i]-r||e[i].endSide-e[n].endSide)<0&&(n=i,r=t[i]);return n}function fU(e,t,n=e.length){let r=0;for(let i=0;i<n&&i<e.length;)e.charCodeAt(i)==9?(r+=t-r%t,i++):(r++,i=DH(e,i));return r}function pU(e,t,n,r){for(let r=0,i=0;;){if(i>=t)return r;if(r==e.length)break;i+=e.charCodeAt(r)==9?n-i%n:1,r=DH(e,r)}return r===!0?-1:e.length}var mU,hU,gU,_U,vU,yU,bU,xU,SU,CU,wU,TU,EU,X,DU,OU,kU,AU,jU,MU,NU,PU,FU,IU,LU,RU,zU,BU,VU,HU,UU,WU,GU,KU,qU,JU,YU,XU,ZU,QU,$U,eW,tW,nW,rW,iW,aW,oW,sW,cW,lW=o((()=>{SH(),mU=class e{lineAt(e){if(e<0||e>this.length)throw RangeError(`Invalid position ${e} in document of length ${this.length}`);return this.lineInner(e,!1,1,0)}line(e){if(e<1||e>this.lines)throw RangeError(`Invalid line number ${e} in ${this.lines}-line document`);return this.lineInner(e,!0,1,0)}replace(e,t,n){[e,t]=EH(this,e,t);let r=[];return this.decompose(0,e,r,2),n.length&&n.decompose(0,n.length,r,3),this.decompose(t,this.length,r,1),gU.from(r,this.length-(t-e)+n.length)}append(e){return this.replace(this.length,this.length,e)}slice(e,t=this.length){[e,t]=EH(this,e,t);let n=[];return this.decompose(e,t,n,0),gU.from(n,t-e)}eq(e){if(e==this)return!0;if(e.length!=this.length||e.lines!=this.lines)return!1;let t=this.scanIdentical(e,1),n=this.length-this.scanIdentical(e,-1),r=new _U(this),i=new _U(e);for(let e=t,a=t;;){if(r.next(e),i.next(e),e=0,r.lineBreak!=i.lineBreak||r.done!=i.done||r.value!=i.value)return!1;if(a+=r.value.length,r.done||a>=n)return!0}}iter(e=1){return new _U(this,e)}iterRange(e,t=this.length){return new vU(this,e,t)}iterLines(e,t){let n;if(e==null)n=this.iter();else{t??(t=this.lines+1);let r=this.line(e).from;n=this.iterRange(r,Math.max(r,t==this.lines+1?this.length:t<=1?0:this.line(t-1).to))}return new yU(n)}toString(){return this.sliceString(0)}toJSON(){let e=[];return this.flatten(e),e}constructor(){}static of(t){if(t.length==0)throw RangeError(`A document must have at least one line`);return t.length==1&&!t[0]?e.empty:t.length<=32?new hU(t):gU.from(hU.split(t,[]))}},hU=class e extends mU{constructor(e,t=CH(e)){super(),this.text=e,this.length=t}get lines(){return this.text.length}get children(){return null}lineInner(e,t,n,r){for(let i=0;;i++){let a=this.text[i],o=r+a.length;if((t?n:o)>=e)return new bU(r,o,n,a);r=o+1,n++}}decompose(t,n,r,i){let a=t<=0&&n>=this.length?this:new e(TH(this.text,t,n),Math.min(n,this.length)-Math.max(0,t));if(i&1){let t=r.pop(),n=wH(a.text,t.text.slice(),0,a.length);if(n.length<=32)r.push(new e(n,t.length+a.length));else{let t=n.length>>1;r.push(new e(n.slice(0,t)),new e(n.slice(t)))}}else r.push(a)}replace(t,n,r){if(!(r instanceof e))return super.replace(t,n,r);[t,n]=EH(this,t,n);let i=wH(this.text,wH(r.text,TH(this.text,0,t)),n),a=this.length+r.length-(n-t);return i.length<=32?new e(i,a):gU.from(e.split(i,[]),a)}sliceString(e,t=this.length,n=`
`){[e,t]=EH(this,e,t);let r=``;for(let i=0,a=0;i<=t&&a<this.text.length;a++){let o=this.text[a],s=i+o.length;i>e&&a&&(r+=n),e<s&&t>i&&(r+=o.slice(Math.max(0,e-i),t-i)),i=s+1}return r}flatten(e){for(let t of this.text)e.push(t)}scanIdentical(){return 0}static split(t,n){let r=[],i=-1;for(let a of t)r.push(a),i+=a.length+1,r.length==32&&(n.push(new e(r,i)),r=[],i=-1);return i>-1&&n.push(new e(r,i)),n}},gU=class e extends mU{constructor(e,t){super(),this.children=e,this.length=t,this.lines=0;for(let t of e)this.lines+=t.lines}lineInner(e,t,n,r){for(let i=0;;i++){let a=this.children[i],o=r+a.length,s=n+a.lines-1;if((t?s:o)>=e)return a.lineInner(e,t,n,r);r=o+1,n=s+1}}decompose(e,t,n,r){for(let i=0,a=0;a<=t&&i<this.children.length;i++){let o=this.children[i],s=a+o.length;if(e<=s&&t>=a){let i=r&(a<=e|(s>=t?2:0));a>=e&&s<=t&&!i?n.push(o):o.decompose(e-a,t-a,n,i)}a=s+1}}replace(t,n,r){if([t,n]=EH(this,t,n),r.lines<this.lines)for(let i=0,a=0;i<this.children.length;i++){let o=this.children[i],s=a+o.length;if(t>=a&&n<=s){let c=o.replace(t-a,n-a,r),l=this.lines-o.lines+c.lines;if(c.lines<l>>4&&c.lines>l>>6){let a=this.children.slice();return a[i]=c,new e(a,this.length-(n-t)+r.length)}return super.replace(a,s,c)}a=s+1}return super.replace(t,n,r)}sliceString(e,t=this.length,n=`
`){[e,t]=EH(this,e,t);let r=``;for(let i=0,a=0;i<this.children.length&&a<=t;i++){let o=this.children[i],s=a+o.length;a>e&&i&&(r+=n),e<s&&t>a&&(r+=o.sliceString(e-a,t-a,n)),a=s+1}return r}flatten(e){for(let t of this.children)t.flatten(e)}scanIdentical(t,n){if(!(t instanceof e))return 0;let r=0,[i,a,o,s]=n>0?[0,0,this.children.length,t.children.length]:[this.children.length-1,t.children.length-1,-1,-1];for(;;i+=n,a+=n){if(i==o||a==s)return r;let e=this.children[i],c=t.children[a];if(e!=c)return r+e.scanIdentical(c,n);r+=e.length+1}}static from(t,n=t.reduce((e,t)=>e+t.length+1,-1)){let r=0;for(let e of t)r+=e.lines;if(r<32){let e=[];for(let n of t)n.flatten(e);return new hU(e,n)}let i=Math.max(32,r>>5),a=i<<1,o=i>>1,s=[],c=0,l=-1,u=[];function d(t){let n;if(t.lines>a&&t instanceof e)for(let e of t.children)d(e);else t.lines>o&&(c>o||!c)?(f(),s.push(t)):t instanceof hU&&c&&(n=u[u.length-1])instanceof hU&&t.lines+n.lines<=32?(c+=t.lines,l+=t.length+1,u[u.length-1]=new hU(n.text.concat(t.text),n.length+1+t.length)):(c+t.lines>i&&f(),c+=t.lines,l+=t.length+1,u.push(t))}function f(){c!=0&&(s.push(u.length==1?u[0]:e.from(u,l)),l=-1,c=u.length=0)}for(let e of t)d(e);return f(),s.length==1?s[0]:new e(s,n)}},mU.empty=new hU([``],0),_U=class{constructor(e,t=1){this.dir=t,this.done=!1,this.lineBreak=!1,this.value=``,this.nodes=[e],this.offsets=[t>0?1:(e instanceof hU?e.text.length:e.children.length)<<1]}nextInner(e,t){for(this.done=this.lineBreak=!1;;){let n=this.nodes.length-1,r=this.nodes[n],i=this.offsets[n],a=i>>1,o=r instanceof hU?r.text.length:r.children.length;if(a==(t>0?o:0)){if(n==0)return this.done=!0,this.value=``,this;t>0&&this.offsets[n-1]++,this.nodes.pop(),this.offsets.pop()}else if((i&1)==(t>0?0:1)){if(this.offsets[n]+=t,e==0)return this.lineBreak=!0,this.value=`
`,this;e--}else if(r instanceof hU){let i=r.text[a+(t<0?-1:0)];if(this.offsets[n]+=t,i.length>Math.max(0,e))return this.value=e==0?i:t>0?i.slice(e):i.slice(0,i.length-e),this;e-=i.length}else{let i=r.children[a+(t<0?-1:0)];e>i.length?(e-=i.length,this.offsets[n]+=t):(t<0&&this.offsets[n]--,this.nodes.push(i),this.offsets.push(t>0?1:(i instanceof hU?i.text.length:i.children.length)<<1))}}}next(e=0){return e<0&&(this.nextInner(-e,-this.dir),e=this.value.length),this.nextInner(e,this.dir)}},vU=class{constructor(e,t,n){this.value=``,this.done=!1,this.cursor=new _U(e,t>n?-1:1),this.pos=t>n?e.length:0,this.from=Math.min(t,n),this.to=Math.max(t,n)}nextInner(e,t){if(t<0?this.pos<=this.from:this.pos>=this.to)return this.value=``,this.done=!0,this;e+=Math.max(0,t<0?this.pos-this.to:this.from-this.pos);let n=t<0?this.pos-this.from:this.to-this.pos;e>n&&(e=n),n-=e;let{value:r}=this.cursor.next(e);return this.pos+=(r.length+e)*t,this.value=r.length<=n?r:t<0?r.slice(r.length-n):r.slice(0,n),this.done=!this.value,this}next(e=0){return e<0?e=Math.max(e,this.from-this.pos):e>0&&(e=Math.min(e,this.to-this.pos)),this.nextInner(e,this.cursor.dir)}get lineBreak(){return this.cursor.lineBreak&&this.value!=``}},yU=class{constructor(e){this.inner=e,this.afterBreak=!0,this.value=``,this.done=!1}next(e=0){let{done:t,lineBreak:n,value:r}=this.inner.next(e);return t&&this.afterBreak?(this.value=``,this.afterBreak=!1):t?(this.done=!0,this.value=``):n?this.afterBreak?this.value=``:(this.afterBreak=!0,this.next()):(this.value=r,this.afterBreak=!1),this}get lineBreak(){return!1}},typeof Symbol<`u`&&(mU.prototype[Symbol.iterator]=function(){return this.iter()},_U.prototype[Symbol.iterator]=vU.prototype[Symbol.iterator]=yU.prototype[Symbol.iterator]=function(){return this}),bU=class{constructor(e,t,n,r){this.from=e,this.to=t,this.number=n,this.text=r}get length(){return this.to-this.from}},xU=/\r\n?|\n/,SU=(function(e){return e[e.Simple=0]=`Simple`,e[e.TrackDel=1]=`TrackDel`,e[e.TrackBefore=2]=`TrackBefore`,e[e.TrackAfter=3]=`TrackAfter`,e})(SU||(SU={})),CU=class e{constructor(e){this.sections=e}get length(){let e=0;for(let t=0;t<this.sections.length;t+=2)e+=this.sections[t];return e}get newLength(){let e=0;for(let t=0;t<this.sections.length;t+=2){let n=this.sections[t+1];e+=n<0?this.sections[t]:n}return e}get empty(){return this.sections.length==0||this.sections.length==2&&this.sections[1]<0}iterGaps(e){for(let t=0,n=0,r=0;t<this.sections.length;){let i=this.sections[t++],a=this.sections[t++];a<0?(e(n,r,i),r+=i):r+=a,n+=i}}iterChangedRanges(e,t=!1){FH(this,e,t)}get invertedDesc(){let t=[];for(let e=0;e<this.sections.length;){let n=this.sections[e++],r=this.sections[e++];r<0?t.push(n,r):t.push(r,n)}return new e(t)}composeDesc(e){return this.empty?e:e.empty?this:LH(this,e)}mapDesc(e,t=!1){return e.empty?this:IH(this,e,t)}mapPos(e,t=-1,n=SU.Simple){let r=0,i=0;for(let a=0;a<this.sections.length;){let o=this.sections[a++],s=this.sections[a++],c=r+o;if(s<0){if(c>e)return i+(e-r);i+=o}else{if(n!=SU.Simple&&c>=e&&(n==SU.TrackDel&&r<e&&c>e||n==SU.TrackBefore&&r<e||n==SU.TrackAfter&&c>e))return null;if(c>e||c==e&&t<0&&!o)return e==r||t<0?i:i+s;i+=s}r=c}if(e>r)throw RangeError(`Position ${e} is out of range for changeset of length ${r}`);return i}touchesRange(e,t=e){for(let n=0,r=0;n<this.sections.length&&r<=t;){let i=this.sections[n++],a=this.sections[n++],o=r+i;if(a>=0&&r<=t&&o>=e)return r<e&&o>t?`cover`:!0;r=o}return!1}toString(){let e=``;for(let t=0;t<this.sections.length;){let n=this.sections[t++],r=this.sections[t++];e+=(e?` `:``)+n+(r>=0?`:`+r:``)}return e}toJSON(){return this.sections}static fromJSON(t){if(!Array.isArray(t)||t.length%2||t.some(e=>typeof e!=`number`))throw RangeError(`Invalid JSON representation of ChangeDesc`);return new e(t)}static create(t){return new e(t)}},wU=class e extends CU{constructor(e,t){super(e),this.inserted=t}apply(e){if(this.length!=e.length)throw RangeError(`Applying change set to a document with the wrong length`);return FH(this,(t,n,r,i,a)=>e=e.replace(r,r+(n-t),a),!1),e}mapDesc(e,t=!1){return IH(this,e,t,!0)}invert(t){let n=this.sections.slice(),r=[];for(let e=0,i=0;e<n.length;e+=2){let a=n[e],o=n[e+1];if(o>=0){n[e]=o,n[e+1]=a;let s=e>>1;for(;r.length<s;)r.push(mU.empty);r.push(a?t.slice(i,i+a):mU.empty)}i+=a}return new e(n,r)}compose(e){return this.empty?e:e.empty?this:LH(this,e,!0)}map(e,t=!1){return e.empty?this:IH(this,e,t,!0)}iterChanges(e,t=!1){FH(this,e,t)}get desc(){return CU.create(this.sections)}filter(t){let n=[],r=[],i=[],a=new TU(this);done:for(let e=0,o=0;;){let s=e==t.length?1e9:t[e++];for(;o<s||o==s&&a.len==0;){if(a.done)break done;let e=Math.min(a.len,s-o);NH(i,e,-1);let t=a.ins==-1?-1:a.off==0?a.ins:0;NH(n,e,t),t>0&&PH(r,n,a.text),a.forward(e),o+=e}let c=t[e++];for(;o<c;){if(a.done)break done;let e=Math.min(a.len,c-o);NH(n,e,-1),NH(i,e,a.ins==-1?-1:a.off==0?a.ins:0),a.forward(e),o+=e}}return{changes:new e(n,r),filtered:CU.create(i)}}toJSON(){let e=[];for(let t=0;t<this.sections.length;t+=2){let n=this.sections[t],r=this.sections[t+1];r<0?e.push(n):r==0?e.push([n]):e.push([n].concat(this.inserted[t>>1].toJSON()))}return e}static of(t,n,r){let i=[],a=[],o=0,s=null;function c(t=!1){if(!t&&!i.length)return;o<n&&NH(i,n-o,-1);let r=new e(i,a);s=s?s.compose(r.map(s)):r,i=[],a=[],o=0}function l(t){if(Array.isArray(t))for(let e of t)l(e);else if(t instanceof e){if(t.length!=n)throw RangeError(`Mismatched change set length (got ${t.length}, expected ${n})`);c(),s=s?s.compose(t.map(s)):t}else{let{from:e,to:s=e,insert:l}=t;if(e>s||e<0||s>n)throw RangeError(`Invalid change range ${e} to ${s} (in doc of length ${n})`);let u=l?typeof l==`string`?mU.of(l.split(r||xU)):l:mU.empty,d=u.length;if(e==s&&d==0)return;e<o&&c(),e>o&&NH(i,e-o,-1),NH(i,s-e,d),PH(a,i,u),o=s}}return l(t),c(!s),s}static empty(t){return new e(t?[t,-1]:[],[])}static fromJSON(t){if(!Array.isArray(t))throw RangeError(`Invalid JSON representation of ChangeSet`);let n=[],r=[];for(let e=0;e<t.length;e++){let i=t[e];if(typeof i==`number`)n.push(i,-1);else if(!Array.isArray(i)||typeof i[0]!=`number`||i.some((e,t)=>t&&typeof e!=`string`))throw RangeError(`Invalid JSON representation of ChangeSet`);else if(i.length==1)n.push(i[0],0);else{for(;r.length<e;)r.push(mU.empty);r[e]=mU.of(i.slice(1)),n.push(i[0],r[e].length)}}return new e(n,r)}static createSet(t,n){return new e(t,n)}},TU=class{constructor(e){this.set=e,this.i=0,this.next()}next(){let{sections:e}=this.set;this.i<e.length?(this.len=e[this.i++],this.ins=e[this.i++]):(this.len=0,this.ins=-2),this.off=0}get done(){return this.ins==-2}get len2(){return this.ins<0?this.len:this.ins}get text(){let{inserted:e}=this.set,t=this.i-2>>1;return t>=e.length?mU.empty:e[t]}textBit(e){let{inserted:t}=this.set,n=this.i-2>>1;return n>=t.length&&!e?mU.empty:t[n].slice(this.off,e==null?void 0:this.off+e)}forward(e){e==this.len?this.next():(this.len-=e,this.off+=e)}forward2(e){this.ins==-1?this.forward(e):e==this.ins?this.next():(this.ins-=e,this.off+=e)}},EU=class e{constructor(e,t,n){this.from=e,this.to=t,this.flags=n}get anchor(){return this.flags&32?this.to:this.from}get head(){return this.flags&32?this.from:this.to}get empty(){return this.from==this.to}get assoc(){return this.flags&8?-1:this.flags&16?1:0}get bidiLevel(){let e=this.flags&7;return e==7?null:e}get goalColumn(){let e=this.flags>>6;return e==16777215?void 0:e}map(t,n=-1){let r,i;return this.empty?r=i=t.mapPos(this.from,n):(r=t.mapPos(this.from,1),i=t.mapPos(this.to,-1)),r==this.from&&i==this.to?this:new e(r,i,this.flags)}extend(e,t=e){if(e<=this.anchor&&t>=this.anchor)return X.range(e,t);let n=Math.abs(e-this.anchor)>Math.abs(t-this.anchor)?e:t;return X.range(this.anchor,n)}eq(e,t=!1){return this.anchor==e.anchor&&this.head==e.head&&(!t||!this.empty||this.assoc==e.assoc)}toJSON(){return{anchor:this.anchor,head:this.head}}static fromJSON(e){if(!e||typeof e.anchor!=`number`||typeof e.head!=`number`)throw RangeError(`Invalid JSON representation for SelectionRange`);return X.range(e.anchor,e.head)}static create(t,n,r){return new e(t,n,r)}},X=class e{constructor(e,t){this.ranges=e,this.mainIndex=t}map(t,n=-1){return t.empty?this:e.create(this.ranges.map(e=>e.map(t,n)),this.mainIndex)}eq(e,t=!1){if(this.ranges.length!=e.ranges.length||this.mainIndex!=e.mainIndex)return!1;for(let n=0;n<this.ranges.length;n++)if(!this.ranges[n].eq(e.ranges[n],t))return!1;return!0}get main(){return this.ranges[this.mainIndex]}asSingle(){return this.ranges.length==1?this:new e([this.main],0)}addRange(t,n=!0){return e.create([t].concat(this.ranges),n?0:this.mainIndex+1)}replaceRange(t,n=this.mainIndex){let r=this.ranges.slice();return r[n]=t,e.create(r,this.mainIndex)}toJSON(){return{ranges:this.ranges.map(e=>e.toJSON()),main:this.mainIndex}}static fromJSON(t){if(!t||!Array.isArray(t.ranges)||typeof t.main!=`number`||t.main>=t.ranges.length)throw RangeError(`Invalid JSON representation for EditorSelection`);return new e(t.ranges.map(e=>EU.fromJSON(e)),t.main)}static single(t,n=t){return new e([e.range(t,n)],0)}static create(t,n=0){if(t.length==0)throw RangeError(`A selection needs at least one range`);for(let r=0,i=0;i<t.length;i++){let a=t[i];if(a.empty?a.from<=r:a.from<r)return e.normalized(t.slice(),n);r=a.to}return new e(t,n)}static cursor(e,t=0,n,r){return EU.create(e,e,(t==0?0:t<0?8:16)|(n==null?7:Math.min(6,n))|(r??16777215)<<6)}static range(e,t,n,r){let i=(n??16777215)<<6|(r==null?7:Math.min(6,r));return t<e?EU.create(t,e,48|i):EU.create(e,t,(t>e?8:0)|i)}static normalized(t,n=0){let r=t[n];t.sort((e,t)=>e.from-t.from),n=t.indexOf(r);for(let r=1;r<t.length;r++){let i=t[r],a=t[r-1];if(i.empty?i.from<=a.to:i.from<a.to){let o=a.from,s=Math.max(i.to,a.to);r<=n&&n--,t.splice(--r,2,i.anchor>i.head?e.range(s,o):e.range(o,s))}}return new e(t,n)}},DU=0,OU=class e{constructor(e,t,n,r,i){this.combine=e,this.compareInput=t,this.compare=n,this.isStatic=r,this.id=DU++,this.default=e([]),this.extensions=typeof i==`function`?i(this):i}get reader(){return this}static define(t={}){return new e(t.combine||(e=>e),t.compareInput||((e,t)=>e===t),t.compare||(t.combine?(e,t)=>e===t:zH),!!t.static,t.enables)}of(e){return new kU([],this,0,e)}compute(e,t){if(this.isStatic)throw Error(`Can't compute a static facet`);return new kU(e,this,1,t)}computeN(e,t){if(this.isStatic)throw Error(`Can't compute a static facet`);return new kU(e,this,2,t)}from(e,t){return t||(t=e=>e),this.compute([e],n=>t(n.field(e)))}},kU=class{constructor(e,t,n,r){this.dependencies=e,this.facet=t,this.type=n,this.value=r,this.id=DU++}dynamicSlot(e){let t=this.value,n=this.facet.compareInput,r=this.id,i=e[r]>>1,a=this.type==2,o=!1,s=!1,c=[];for(let t of this.dependencies)t==`doc`?o=!0:t==`selection`?s=!0:(e[t.id]??1)&1||c.push(e[t.id]);return{create(e){return e.values[i]=t(e),1},update(e,r){if(o&&r.docChanged||s&&(r.docChanged||r.selection)||VH(e,c)){let r=t(e);if(a?!BH(r,e.values[i],n):!n(r,e.values[i]))return e.values[i]=r,1}return 0},reconfigure:(e,o)=>{let s,c=o.config.address[r];if(c!=null){let r=KH(o,c);if(this.dependencies.every(t=>t instanceof OU?o.facet(t)===e.facet(t):t instanceof jU?o.field(t,!1)==e.field(t,!1):!0)||(a?BH(s=t(e),r,n):n(s=t(e),r)))return e.values[i]=r,0}else s=t(e);return e.values[i]=s,1}}}},AU=OU.define({static:!0}),jU=class e{constructor(e,t,n,r,i){this.id=e,this.createF=t,this.updateF=n,this.compareF=r,this.spec=i,this.provides=void 0}static define(t){let n=new e(DU++,t.create,t.update,t.compare||((e,t)=>e===t),t);return t.provide&&(n.provides=t.provide(n)),n}create(e){return(e.facet(AU).find(e=>e.field==this)?.create||this.createF)(e)}slot(e){let t=e[this.id]>>1;return{create:e=>(e.values[t]=this.create(e),1),update:(e,n)=>{let r=e.values[t],i=this.updateF(r,n);return this.compareF(r,i)?0:(e.values[t]=i,1)},reconfigure:(e,n)=>{let r=e.facet(AU),i=n.facet(AU),a;return(a=r.find(e=>e.field==this))&&a!=i.find(e=>e.field==this)?(e.values[t]=a.create(e),1):n.config.address[this.id]==null?(e.values[t]=this.create(e),1):(e.values[t]=n.field(this),0)}}}init(e){return[this,AU.of({field:this,create:e})]}get extension(){return this}},MU={lowest:4,low:3,default:2,high:1,highest:0},NU={highest:UH(MU.highest),high:UH(MU.high),default:UH(MU.default),low:UH(MU.low),lowest:UH(MU.lowest)},PU=class{constructor(e,t){this.inner=e,this.prec=t}},FU=class e{of(e){return new IU(this,e)}reconfigure(t){return e.reconfigure.of({compartment:this,extension:t})}get(e){return e.config.compartments.get(this)}},IU=class{constructor(e,t){this.compartment=e,this.inner=t}},LU=class e{constructor(e,t,n,r,i,a){for(this.base=e,this.compartments=t,this.dynamicSlots=n,this.address=r,this.staticValues=i,this.facets=a,this.statusTemplate=[];this.statusTemplate.length<n.length;)this.statusTemplate.push(0)}staticFacet(e){let t=this.address[e.id];return t==null?e.default:this.staticValues[t>>1]}static resolve(t,n,r){let i=[],a=Object.create(null),o=new Map;for(let e of WH(t,n,o))e instanceof jU?i.push(e):(a[e.facet.id]||(a[e.facet.id]=[])).push(e);let s=Object.create(null),c=[],l=[];for(let e of i)s[e.id]=l.length<<1,l.push(t=>e.slot(t));let u=r?.config.facets;for(let e in a){let t=a[e],n=t[0].facet,i=u&&u[e]||[];if(t.every(e=>e.type==0))if(s[n.id]=c.length<<1|1,zH(i,t))c.push(r.facet(n));else{let e=n.combine(t.map(e=>e.value));c.push(r&&n.compare(e,r.facet(n))?r.facet(n):e)}else{for(let e of t)e.type==0?(s[e.id]=c.length<<1|1,c.push(e.value)):(s[e.id]=l.length<<1,l.push(t=>e.dynamicSlot(t)));s[n.id]=l.length<<1,l.push(e=>HH(e,n,t))}}let d=l.map(e=>e(s));return new e(t,o,d,s,c,a)}},RU=OU.define(),zU=OU.define({combine:e=>e.some(e=>e),static:!0}),BU=OU.define({combine:e=>e.length?e[0]:void 0,static:!0}),VU=OU.define(),HU=OU.define(),UU=OU.define(),WU=OU.define({combine:e=>e.length?e[0]:!1}),GU=class{constructor(e,t){this.type=e,this.value=t}static define(){return new KU}},KU=class{of(e){return new GU(this,e)}},qU=class{constructor(e){this.map=e}of(e){return new JU(this,e)}},JU=class e{constructor(e,t){this.type=e,this.value=t}map(t){let n=this.type.map(this.value,t);return n===void 0?void 0:n==this.value?this:new e(this.type,n)}is(e){return this.type==e}static define(e={}){return new qU(e.map||(e=>e))}static mapEffects(e,t){if(!e.length)return e;let n=[];for(let r of e){let e=r.map(t);e&&n.push(e)}return n}},JU.reconfigure=JU.define(),JU.appendConfig=JU.define(),YU=class e{constructor(t,n,r,i,a,o){this.startState=t,this.changes=n,this.selection=r,this.effects=i,this.annotations=a,this.scrollIntoView=o,this._doc=null,this._state=null,r&&RH(r,n.newLength),a.some(t=>t.type==e.time)||(this.annotations=a.concat(e.time.of(Date.now())))}static create(t,n,r,i,a,o){return new e(t,n,r,i,a,o)}get newDoc(){return this._doc||(this._doc=this.changes.apply(this.startState.doc))}get newSelection(){return this.selection||this.startState.selection.map(this.changes)}get state(){return this._state||this.startState.applyTransaction(this),this._state}annotation(e){for(let t of this.annotations)if(t.type==e)return t.value}get docChanged(){return!this.changes.empty}get reconfigured(){return this.startState.config!=this.state.config}isUserEvent(t){let n=this.annotation(e.userEvent);return!!(n&&(n==t||n.length>t.length&&n.slice(0,t.length)==t&&n[t.length]==`.`))}},YU.time=GU.define(),YU.userEvent=GU.define(),YU.addToHistory=GU.define(),YU.remote=GU.define(),XU=[],ZU=(function(e){return e[e.Word=0]=`Word`,e[e.Space=1]=`Space`,e[e.Other=2]=`Other`,e})(ZU||(ZU={})),QU=/[\u00df\u0587\u0590-\u05f4\u0600-\u06ff\u3040-\u309f\u30a0-\u30ff\u3400-\u4db5\u4e00-\u9fcc\uac00-\ud7af]/;try{$U=RegExp(`[\\p{Alphabetic}\\p{Number}_]`,`u`)}catch{}eW=class e{constructor(e,t,n,r,i,a){this.config=e,this.doc=t,this.selection=n,this.values=r,this.status=e.statusTemplate.slice(),this.computeSlot=i,a&&(a._state=this);for(let e=0;e<this.config.dynamicSlots.length;e++)GH(this,e<<1);this.computeSlot=null}field(e,t=!0){let n=this.config.address[e.id];if(n==null){if(t)throw RangeError(`Field is not present in this state`);return}return GH(this,n),KH(this,n)}update(...e){return XH(this,e,!0)}applyTransaction(t){let n=this.config,{base:r,compartments:i}=n;for(let e of t.effects)e.is(FU.reconfigure)?(n&&(i=new Map,n.compartments.forEach((e,t)=>i.set(t,e)),n=null),i.set(e.value.compartment,e.value.extension)):e.is(JU.reconfigure)?(n=null,r=e.value):e.is(JU.appendConfig)&&(n=null,r=$H(r).concat(e.value));let a;n?a=t.startState.values.slice():(n=LU.resolve(r,i,this),a=new e(n,this.doc,this.selection,n.dynamicSlots.map(()=>null),(e,t)=>t.reconfigure(e,this),null).values);let o=t.startState.facet(zU)?t.newSelection:t.newSelection.asSingle();new e(n,t.newDoc,o,a,(e,n)=>n.update(e,t),t)}replaceSelection(e){return typeof e==`string`&&(e=this.toText(e)),this.changeByRange(t=>({changes:{from:t.from,to:t.to,insert:e},range:X.cursor(t.from+e.length)}))}changeByRange(e){let t=this.selection,n=e(t.ranges[0]),r=this.changes(n.changes),i=[n.range],a=$H(n.effects);for(let n=1;n<t.ranges.length;n++){let o=e(t.ranges[n]),s=this.changes(o.changes),c=s.map(r);for(let e=0;e<n;e++)i[e]=i[e].map(c);let l=r.mapDesc(s,!0);i.push(o.range.map(l)),r=r.compose(c),a=JU.mapEffects(a,c).concat(JU.mapEffects($H(o.effects),l))}return{changes:r,selection:X.create(i,t.mainIndex),effects:a}}changes(t=[]){return t instanceof wU?t:wU.of(t,this.doc.length,this.facet(e.lineSeparator))}toText(t){return mU.of(t.split(this.facet(e.lineSeparator)||xU))}sliceDoc(e=0,t=this.doc.length){return this.doc.sliceString(e,t,this.lineBreak)}facet(e){let t=this.config.address[e.id];return t==null?e.default:(GH(this,t),KH(this,t))}toJSON(e){let t={doc:this.sliceDoc(),selection:this.selection.toJSON()};if(e)for(let n in e){let r=e[n];r instanceof jU&&this.config.address[r.id]!=null&&(t[n]=r.spec.toJSON(this.field(e[n]),this))}return t}static fromJSON(t,n={},r){if(!t||typeof t.doc!=`string`)throw RangeError(`Invalid JSON representation for EditorState`);let i=[];if(r){for(let e in r)if(Object.prototype.hasOwnProperty.call(t,e)){let n=r[e],a=t[e];i.push(n.init(e=>n.spec.fromJSON(a,e)))}}return e.create({doc:t.doc,selection:X.fromJSON(t.selection),extensions:n.extensions?i.concat([n.extensions]):i})}static create(t={}){let n=LU.resolve(t.extensions||[],new Map),r=t.doc instanceof mU?t.doc:mU.of((t.doc||``).split(n.staticFacet(e.lineSeparator)||xU)),i=t.selection?t.selection instanceof X?t.selection:X.single(t.selection.anchor,t.selection.head):X.single(0);return RH(i,r.length),n.staticFacet(zU)||(i=i.asSingle()),new e(n,r,i,n.dynamicSlots.map(()=>null),(e,t)=>t.create(e),null)}get tabSize(){return this.facet(e.tabSize)}get lineBreak(){return this.facet(e.lineSeparator)||`
`}get readOnly(){return this.facet(WU)}phrase(t,...n){for(let n of this.facet(e.phrases))if(Object.prototype.hasOwnProperty.call(n,t)){t=n[t];break}return n.length&&(t=t.replace(/\$(\$|\d*)/g,(e,t)=>{if(t==`$`)return`$`;let r=+(t||1);return!r||r>n.length?e:n[r-1]})),t}languageDataAt(e,t,n=-1){let r=[];for(let i of this.facet(RU))for(let a of i(this,t,n))Object.prototype.hasOwnProperty.call(a,e)&&r.push(a[e]);return r}charCategorizer(e){return tU(this.languageDataAt(`wordChars`,e).join(``))}wordAt(e){let{text:t,from:n,length:r}=this.doc.lineAt(e),i=this.charCategorizer(e),a=e-n,o=e-n;for(;a>0;){let e=DH(t,a,!1);if(i(t.slice(e,a))!=ZU.Word)break;a=e}for(;o<r;){let e=DH(t,o);if(i(t.slice(o,e))!=ZU.Word)break;o=e}return a==o?null:X.range(a+n,o+n)}},eW.allowMultipleSelections=zU,eW.tabSize=OU.define({combine:e=>e.length?e[0]:4}),eW.lineSeparator=BU,eW.readOnly=WU,eW.phrases=OU.define({compare(e,t){let n=Object.keys(e),r=Object.keys(t);return n.length==r.length&&n.every(n=>e[n]==t[n])}}),eW.languageData=RU,eW.changeFilter=VU,eW.transactionFilter=HU,eW.transactionExtender=UU,FU.reconfigure=JU.define(),tW=class{eq(e){return this==e}range(e,t=e){return nW.create(e,t,this)}},tW.prototype.startSide=tW.prototype.endSide=0,tW.prototype.point=!1,tW.prototype.mapMode=SU.TrackDel,nW=class e{constructor(e,t,n){this.from=e,this.to=t,this.value=n}static create(t,n,r){return new e(t,n,r)}},rW=class e{constructor(e,t,n,r){this.from=e,this.to=t,this.value=n,this.maxPoint=r}get length(){return this.to[this.to.length-1]}findIndex(e,t,n,r=0){let i=n?this.to:this.from;for(let a=r,o=i.length;;){if(a==o)return a;let r=a+o>>1,s=i[r]-e||(n?this.value[r].endSide:this.value[r].startSide)-t;if(r==a)return s>=0?a:o;s>=0?o=r:a=r+1}}between(e,t,n,r){for(let i=this.findIndex(t,-1e9,!0),a=this.findIndex(n,1e9,!1,i);i<a;i++)if(r(this.from[i]+e,this.to[i]+e,this.value[i])===!1)return!1}map(t,n){let r=[],i=[],a=[],o=-1,s=-1;for(let e=0;e<this.value.length;e++){let c=this.value[e],l=this.from[e]+t,u=this.to[e]+t,d,f;if(l==u){let e=n.mapPos(l,c.startSide,c.mapMode);if(e==null||(d=f=e,c.startSide!=c.endSide&&(f=n.mapPos(l,c.endSide),f<d)))continue}else if(d=n.mapPos(l,c.startSide),f=n.mapPos(u,c.endSide),d>f||d==f&&c.startSide>0&&c.endSide<=0)continue;(f-d||c.endSide-c.startSide)<0||(o<0&&(o=d),c.point&&(s=Math.max(s,f-d)),r.push(c),i.push(d-o),a.push(f-o))}return{mapped:r.length?new e(i,a,r,s):null,pos:o}}},iW=class e{constructor(e,t,n,r){this.chunkPos=e,this.chunk=t,this.nextLayer=n,this.maxPoint=r}static create(t,n,r,i){return new e(t,n,r,i)}get length(){let e=this.chunk.length-1;return e<0?0:Math.max(this.chunkEnd(e),this.nextLayer.length)}get size(){if(this.isEmpty)return 0;let e=this.nextLayer.size;for(let t of this.chunk)e+=t.value.length;return e}chunkEnd(e){return this.chunkPos[e]+this.chunk[e].length}update(t){let{add:n=[],sort:r=!1,filterFrom:i=0,filterTo:a=this.length}=t,o=t.filter;if(n.length==0&&!o)return this;if(r&&(n=n.slice().sort(rU)),this.isEmpty)return n.length?e.of(n):this;let s=new oW(this,null,-1).goto(0),c=0,l=[],u=new aW;for(;s.value||c<n.length;)if(c<n.length&&(s.from-n[c].from||s.startSide-n[c].value.startSide)>=0){let e=n[c++];u.addInner(e.from,e.to,e.value)||l.push(e)}else s.rangeIndex==1&&s.chunkIndex<this.chunk.length&&(c==n.length||this.chunkEnd(s.chunkIndex)<n[c].from)&&(!o||i>this.chunkEnd(s.chunkIndex)||a<this.chunkPos[s.chunkIndex])&&u.addChunk(this.chunkPos[s.chunkIndex],this.chunk[s.chunkIndex])?s.nextChunk():((!o||i>s.to||a<s.from||o(s.from,s.to,s.value))&&(u.addInner(s.from,s.to,s.value)||l.push(nW.create(s.from,s.to,s.value))),s.next());return u.finishInner(this.nextLayer.isEmpty&&!l.length?e.empty:this.nextLayer.update({add:l,filter:o,filterFrom:i,filterTo:a}))}map(t){if(t.empty||this.isEmpty)return this;let n=[],r=[],i=-1;for(let e=0;e<this.chunk.length;e++){let a=this.chunkPos[e],o=this.chunk[e],s=t.touchesRange(a,a+o.length);if(s===!1)i=Math.max(i,o.maxPoint),n.push(o),r.push(t.mapPos(a));else if(s===!0){let{mapped:e,pos:s}=o.map(a,t);e&&(i=Math.max(i,e.maxPoint),n.push(e),r.push(s))}}let a=this.nextLayer.map(t);return n.length==0?a:new e(r,n,a||e.empty,i)}between(e,t,n){if(!this.isEmpty){for(let r=0;r<this.chunk.length;r++){let i=this.chunkPos[r],a=this.chunk[r];if(t>=i&&e<=i+a.length&&a.between(i,e-i,t-i,n)===!1)return}this.nextLayer.between(e,t,n)}}iter(e=0){return sW.from([this]).goto(e)}get isEmpty(){return this.nextLayer==this}static iter(e,t=0){return sW.from(e).goto(t)}static compare(e,t,n,r,i=-1){let a=e.filter(e=>e.maxPoint>0||!e.isEmpty&&e.maxPoint>=i),o=t.filter(e=>e.maxPoint>0||!e.isEmpty&&e.maxPoint>=i),s=aU(a,o,n),c=new cW(a,s,i),l=new cW(o,s,i);n.iterGaps((e,t,n)=>sU(c,e,l,t,n,r)),n.empty&&n.length==0&&sU(c,0,l,0,0,r)}static eq(e,t,n=0,r){r??(r=999999999);let i=e.filter(e=>!e.isEmpty&&t.indexOf(e)<0),a=t.filter(t=>!t.isEmpty&&e.indexOf(t)<0);if(i.length!=a.length)return!1;if(!i.length)return!0;let o=aU(i,a),s=new cW(i,o,0).goto(n),c=new cW(a,o,0).goto(n);for(;;){if(s.to!=c.to||!cU(s.active,c.active)||s.point&&(!c.point||!s.point.eq(c.point)))return!1;if(s.to>r)return!0;s.next(),c.next()}}static spans(e,t,n,r,i=-1){let a=new cW(e,null,i).goto(t),o=t,s=a.openStart;for(;;){let e=Math.min(a.to,n);if(a.point){let n=a.activeForPoint(a.to),i=a.pointFrom<t?n.length+1:a.point.startSide<0?n.length:Math.min(n.length,s);r.point(o,e,a.point,n,i,a.pointRank),s=Math.min(a.openEnd(e),n.length)}else e>o&&(r.span(o,e,a.active,s),s=a.openEnd(e));if(a.to>n)return s+(a.point&&a.to>n?1:0);o=a.to,a.next()}}static of(e,t=!1){let n=new aW;for(let r of e instanceof nW?[e]:t?iU(e):e)n.add(r.from,r.to,r.value);return n.finish()}static join(t){if(!t.length)return e.empty;let n=t[t.length-1];for(let r=t.length-2;r>=0;r--)for(let i=t[r];i!=e.empty;i=i.nextLayer)n=new e(i.chunkPos,i.chunk,n,Math.max(i.maxPoint,n.maxPoint));return n}},iW.empty=new iW([],[],null,-1),iW.empty.nextLayer=iW.empty,aW=class e{finishChunk(e){this.chunks.push(new rW(this.from,this.to,this.value,this.maxPoint)),this.chunkPos.push(this.chunkStart),this.chunkStart=-1,this.setMaxPoint=Math.max(this.setMaxPoint,this.maxPoint),this.maxPoint=-1,e&&(this.from=[],this.to=[],this.value=[])}constructor(){this.chunks=[],this.chunkPos=[],this.chunkStart=-1,this.last=null,this.lastFrom=-1e9,this.lastTo=-1e9,this.from=[],this.to=[],this.value=[],this.maxPoint=-1,this.setMaxPoint=-1,this.nextLayer=null}add(t,n,r){this.addInner(t,n,r)||(this.nextLayer||(this.nextLayer=new e)).add(t,n,r)}addInner(e,t,n){let r=e-this.lastTo||n.startSide-this.last.endSide;if(r<=0&&(e-this.lastFrom||n.startSide-this.last.startSide)<0)throw Error("Ranges must be added sorted by `from` position and `startSide`");return r<0?!1:(this.from.length==250&&this.finishChunk(!0),this.chunkStart<0&&(this.chunkStart=e),this.from.push(e-this.chunkStart),this.to.push(t-this.chunkStart),this.last=n,this.lastFrom=e,this.lastTo=t,this.value.push(n),n.point&&(this.maxPoint=Math.max(this.maxPoint,t-e)),!0)}addChunk(e,t){if((e-this.lastTo||t.value[0].startSide-this.last.endSide)<0)return!1;this.from.length&&this.finishChunk(!0),this.setMaxPoint=Math.max(this.setMaxPoint,t.maxPoint),this.chunks.push(t),this.chunkPos.push(e);let n=t.value.length-1;return this.last=t.value[n],this.lastFrom=t.from[n]+e,this.lastTo=t.to[n]+e,!0}finish(){return this.finishInner(iW.empty)}finishInner(e){if(this.from.length&&this.finishChunk(!1),this.chunks.length==0)return e;let t=iW.create(this.chunkPos,this.chunks,this.nextLayer?this.nextLayer.finishInner(e):e,this.setMaxPoint);return this.from=null,t}},oW=class{constructor(e,t,n,r=0){this.layer=e,this.skip=t,this.minPoint=n,this.rank=r}get startSide(){return this.value?this.value.startSide:0}get endSide(){return this.value?this.value.endSide:0}goto(e,t=-1e9){return this.chunkIndex=this.rangeIndex=0,this.gotoInner(e,t,!1),this}gotoInner(e,t,n){for(;this.chunkIndex<this.layer.chunk.length;){let t=this.layer.chunk[this.chunkIndex];if(!(this.skip&&this.skip.has(t)||this.layer.chunkEnd(this.chunkIndex)<e||t.maxPoint<this.minPoint))break;this.chunkIndex++,n=!1}if(this.chunkIndex<this.layer.chunk.length){let r=this.layer.chunk[this.chunkIndex].findIndex(e-this.layer.chunkPos[this.chunkIndex],t,!0);(!n||this.rangeIndex<r)&&this.setRangeIndex(r)}this.next()}forward(e,t){(this.to-e||this.endSide-t)<0&&this.gotoInner(e,t,!0)}next(){for(;;)if(this.chunkIndex==this.layer.chunk.length){this.from=this.to=1e9,this.value=null;break}else{let e=this.layer.chunkPos[this.chunkIndex],t=this.layer.chunk[this.chunkIndex],n=e+t.from[this.rangeIndex];if(this.from=n,this.to=e+t.to[this.rangeIndex],this.value=t.value[this.rangeIndex],this.setRangeIndex(this.rangeIndex+1),this.minPoint<0||this.value.point&&this.to-this.from>=this.minPoint)break}}setRangeIndex(e){if(e==this.layer.chunk[this.chunkIndex].value.length){if(this.chunkIndex++,this.skip)for(;this.chunkIndex<this.layer.chunk.length&&this.skip.has(this.layer.chunk[this.chunkIndex]);)this.chunkIndex++;this.rangeIndex=0}else this.rangeIndex=e}nextChunk(){this.chunkIndex++,this.rangeIndex=0,this.next()}compare(e){return this.from-e.from||this.startSide-e.startSide||this.rank-e.rank||this.to-e.to||this.endSide-e.endSide}},sW=class e{constructor(e){this.heap=e}static from(t,n=null,r=-1){let i=[];for(let e=0;e<t.length;e++)for(let a=t[e];!a.isEmpty;a=a.nextLayer)a.maxPoint>=r&&i.push(new oW(a,n,r,e));return i.length==1?i[0]:new e(i)}get startSide(){return this.value?this.value.startSide:0}goto(e,t=-1e9){for(let n of this.heap)n.goto(e,t);for(let e=this.heap.length>>1;e>=0;e--)oU(this.heap,e);return this.next(),this}forward(e,t){for(let n of this.heap)n.forward(e,t);for(let e=this.heap.length>>1;e>=0;e--)oU(this.heap,e);(this.to-e||this.value.endSide-t)<0&&this.next()}next(){if(this.heap.length==0)this.from=this.to=1e9,this.value=null,this.rank=-1;else{let e=this.heap[0];this.from=e.from,this.to=e.to,this.value=e.value,this.rank=e.rank,e.value&&e.next(),oU(this.heap,0)}}},cW=class{constructor(e,t,n){this.minPoint=n,this.active=[],this.activeTo=[],this.activeRank=[],this.minActive=-1,this.point=null,this.pointFrom=0,this.pointRank=0,this.to=-1e9,this.endSide=0,this.openStart=-1,this.cursor=sW.from(e,t,n)}goto(e,t=-1e9){return this.cursor.goto(e,t),this.active.length=this.activeTo.length=this.activeRank.length=0,this.minActive=-1,this.to=e,this.endSide=t,this.openStart=-1,this.next(),this}forward(e,t){for(;this.minActive>-1&&(this.activeTo[this.minActive]-e||this.active[this.minActive].endSide-t)<0;)this.removeActive(this.minActive);this.cursor.forward(e,t)}removeActive(e){lU(this.active,e),lU(this.activeTo,e),lU(this.activeRank,e),this.minActive=dU(this.active,this.activeTo)}addActive(e){let t=0,{value:n,to:r,rank:i}=this.cursor;for(;t<this.activeRank.length&&(i-this.activeRank[t]||r-this.activeTo[t])>0;)t++;uU(this.active,t,n),uU(this.activeTo,t,r),uU(this.activeRank,t,i),e&&uU(e,t,this.cursor.from),this.minActive=dU(this.active,this.activeTo)}next(){let e=this.to,t=this.point;this.point=null;let n=this.openStart<0?[]:null;for(;;){let r=this.minActive;if(r>-1&&(this.activeTo[r]-this.cursor.from||this.active[r].endSide-this.cursor.startSide)<0){if(this.activeTo[r]>e){this.to=this.activeTo[r],this.endSide=this.active[r].endSide;break}this.removeActive(r),n&&lU(n,r)}else if(!this.cursor.value){this.to=this.endSide=1e9;break}else if(this.cursor.from>e){this.to=this.cursor.from,this.endSide=this.cursor.startSide;break}else{let e=this.cursor.value;if(!e.point)this.addActive(n),this.cursor.next();else if(t&&this.cursor.to==this.to&&this.cursor.from<this.cursor.to)this.cursor.next();else{this.point=e,this.pointFrom=this.cursor.from,this.pointRank=this.cursor.rank,this.to=this.cursor.to,this.endSide=e.endSide,this.cursor.next(),this.forward(this.to,this.endSide);break}}}if(n){this.openStart=0;for(let t=n.length-1;t>=0&&n[t]<e;t--)this.openStart++}}activeForPoint(e){if(!this.active.length)return this.active;let t=[];for(let n=this.active.length-1;n>=0&&!(this.activeRank[n]<this.pointRank);n--)(this.activeTo[n]>e||this.activeTo[n]==e&&this.active[n].endSide>=this.point.endSide)&&t.push(this.active[n]);return t.reverse()}openEnd(e){let t=0;for(let n=this.activeTo.length-1;n>=0&&this.activeTo[n]>e;n--)t++;return t}}})),uW,dW,fW,pW,mW,hW,gW,_W=o((()=>{uW=`ͼ`,dW=typeof Symbol>`u`?`__ͼ`:Symbol.for(uW),fW=typeof Symbol>`u`?`__styleSet`+Math.floor(Math.random()*1e8):Symbol(`styleSet`),pW=typeof globalThis<`u`?globalThis:typeof window<`u`?window:{},mW=class{constructor(e,t){this.rules=[];let{finish:n}=t||{};function r(e){return/^@/.test(e)?[e]:e.split(/,\s*/)}function i(e,t,a,o){let s=[],c=/^@(\w+)\b/.exec(e[0]),l=c&&c[1]==`keyframes`;if(c&&t==null)return a.push(e[0]+`;`);for(let n in t){let o=t[n];if(/&/.test(n))i(n.split(/,\s*/).map(t=>e.map(e=>t.replace(/&/,e))).reduce((e,t)=>e.concat(t)),o,a);else if(o&&typeof o==`object`){if(!c)throw RangeError(`The value of a property (`+n+`) should be a primitive value.`);i(r(n),o,s,l)}else o!=null&&s.push(n.replace(/_.*/,``).replace(/[A-Z]/g,e=>`-`+e.toLowerCase())+`: `+o+`;`)}(s.length||l)&&a.push((n&&!c&&!o?e.map(n):e).join(`, `)+` {`+s.join(` `)+`}`)}for(let t in e)i(r(t),e[t],this.rules)}getRules(){return this.rules.join(`
`)}static newName(){let e=pW[dW]||1;return pW[dW]=e+1,uW+e.toString(36)}static mount(e,t,n){let r=e[fW],i=n&&n.nonce;r?i&&r.setNonce(i):r=new gW(e,i),r.mount(Array.isArray(t)?t:[t],e)}},hW=new Map,gW=class{constructor(e,t){let n=e.ownerDocument||e,r=n.defaultView;if(!e.head&&e.adoptedStyleSheets&&r.CSSStyleSheet){let t=hW.get(n);if(t)return e[fW]=t;this.sheet=new r.CSSStyleSheet,hW.set(n,this)}else this.styleTag=n.createElement(`style`),t&&this.styleTag.setAttribute(`nonce`,t);this.modules=[],e[fW]=this}mount(e,t){let n=this.sheet,r=0,i=0;for(let t=0;t<e.length;t++){let a=e[t],o=this.modules.indexOf(a);if(o<i&&o>-1&&(this.modules.splice(o,1),i--,o=-1),o==-1){if(this.modules.splice(i++,0,a),n)for(let e=0;e<a.rules.length;e++)n.insertRule(a.rules[e],r++)}else{for(;i<o;)r+=this.modules[i++].rules.length;r+=a.rules.length,i++}}if(n)t.adoptedStyleSheets.indexOf(this.sheet)<0&&(t.adoptedStyleSheets=[this.sheet,...t.adoptedStyleSheets]);else{let e=``;for(let t=0;t<this.modules.length;t++)e+=this.modules[t].getRules()+`
`;this.styleTag.textContent=e;let n=t.head||t;this.styleTag.parentNode!=n&&n.insertBefore(this.styleTag,n.firstChild)}}setNonce(e){this.styleTag&&this.styleTag.getAttribute(`nonce`)!=e&&this.styleTag.setAttribute(`nonce`,e)}}}));function vW(e){var t=!(xW&&e.metaKey&&e.shiftKey&&!e.ctrlKey&&!e.altKey||SW&&e.shiftKey&&e.key&&e.key.length==1||e.key==`Unidentified`)&&e.key||(e.shiftKey?bW:yW)[e.keyCode]||e.key||`Unidentified`;return t==`Esc`&&(t=`Escape`),t==`Del`&&(t=`Delete`),t==`Left`&&(t=`ArrowLeft`),t==`Up`&&(t=`ArrowUp`),t==`Right`&&(t=`ArrowRight`),t==`Down`&&(t=`ArrowDown`),t}var yW,bW,xW,SW,CW,wW=o((()=>{for(yW={8:`Backspace`,9:`Tab`,10:`Enter`,12:`NumLock`,13:`Enter`,16:`Shift`,17:`Control`,18:`Alt`,20:`CapsLock`,27:`Escape`,32:` `,33:`PageUp`,34:`PageDown`,35:`End`,36:`Home`,37:`ArrowLeft`,38:`ArrowUp`,39:`ArrowRight`,40:`ArrowDown`,44:`PrintScreen`,45:`Insert`,46:`Delete`,59:`;`,61:`=`,91:`Meta`,92:`Meta`,106:`*`,107:`+`,108:`,`,109:`-`,110:`.`,111:`/`,144:`NumLock`,145:`ScrollLock`,160:`Shift`,161:`Shift`,162:`Control`,163:`Control`,164:`Alt`,165:`Alt`,173:`-`,186:`;`,187:`=`,188:`,`,189:`-`,190:`.`,191:`/`,192:"`",219:`[`,220:`\\`,221:`]`,222:`'`},bW={48:`)`,49:`!`,50:`@`,51:`#`,52:`$`,53:`%`,54:`^`,55:`&`,56:`*`,57:`(`,59:`:`,61:`+`,173:`_`,186:`:`,187:`+`,188:`<`,189:`_`,190:`>`,191:`?`,192:`~`,219:`{`,220:`|`,221:`}`,222:`"`},xW=typeof navigator<`u`&&/Mac/.test(navigator.platform),SW=typeof navigator<`u`&&/MSIE \d|Trident\/(?:[7-9]|\d{2,})\..*rv:(\d+)/.exec(navigator.userAgent),CW=0;CW<10;CW++)yW[48+CW]=yW[96+CW]=String(CW);for(CW=1;CW<=24;CW++)yW[CW+111]=`F`+CW;for(CW=65;CW<=90;CW++)yW[CW]=String.fromCharCode(CW+32),bW[CW]=String.fromCharCode(CW);for(var e in yW)bW.hasOwnProperty(e)||(bW[e]=yW[e])}));function TW(){var e=arguments[0];typeof e==`string`&&(e=document.createElement(e));var t=1,n=arguments[1];if(n&&typeof n==`object`&&n.nodeType==null&&!Array.isArray(n)){for(var r in n)if(Object.prototype.hasOwnProperty.call(n,r)){var i=n[r];typeof i==`string`?e.setAttribute(r,i):i!=null&&(e[r]=i)}t++}for(;t<arguments.length;t++)EW(e,arguments[t]);return e}function EW(e,t){if(typeof t==`string`)e.appendChild(document.createTextNode(t));else if(t!=null)if(t.nodeType!=null)e.appendChild(t);else if(Array.isArray(t))for(var n=0;n<t.length;n++)EW(e,t[n]);else throw RangeError(`Unsupported child node: `+t)}var DW=o((()=>{}));function OW(e){let t;return t=e.nodeType==11?e.getSelection?e:e.ownerDocument:e,t.getSelection()}function kW(e,t){return t?e==t||e.contains(t.nodeType==1?t:t.parentNode):!1}function AW(e,t){if(!t.anchorNode)return!1;try{return kW(e,t.anchorNode)}catch{return!1}}function jW(e){return e.nodeType==3?UW(e,0,e.nodeValue.length).getClientRects():e.nodeType==1?e.getClientRects():[]}function MW(e,t,n,r){return n?FW(e,t,n,r,-1)||FW(e,t,n,r,1):!1}function NW(e){for(var t=0;;t++)if(e=e.previousSibling,!e)return t}function PW(e){return e.nodeType==1&&/^(DIV|P|LI|UL|OL|BLOCKQUOTE|DD|DT|H\d|SECTION|PRE)$/.test(e.nodeName)}function FW(e,t,n,r,i){for(;;){if(e==n&&t==r)return!0;if(t==(i<0?0:IW(e))){if(e.nodeName==`DIV`)return!1;let n=e.parentNode;if(!n||n.nodeType!=1)return!1;t=NW(e)+(i<0?0:1),e=n}else if(e.nodeType==1){if(e=e.childNodes[t+(i<0?-1:0)],e.nodeType==1&&e.contentEditable==`false`)return!1;t=i<0?IW(e):0}else return!1}}function IW(e){return e.nodeType==3?e.nodeValue.length:e.childNodes.length}function LW(e,t){let n=t?e.left:e.right;return{left:n,right:n,top:e.top,bottom:e.bottom}}function RW(e){let t=e.visualViewport;return t?{left:0,right:t.width,top:0,bottom:t.height}:{left:0,right:e.innerWidth,top:0,bottom:e.innerHeight}}function zW(e,t){let n=t.width/e.offsetWidth,r=t.height/e.offsetHeight;return(n>.995&&n<1.005||!isFinite(n)||Math.abs(t.width-e.offsetWidth)<1)&&(n=1),(r>.995&&r<1.005||!isFinite(r)||Math.abs(t.height-e.offsetHeight)<1)&&(r=1),{scaleX:n,scaleY:r}}function BW(e,t,n,r,i,a,o,s){let c=e.ownerDocument,l=c.defaultView||window;for(let u=e,d=!1;u&&!d;)if(u.nodeType==1){let e,f=u==c.body,p=1,m=1;if(f)e=RW(l);else{if(/^(fixed|sticky)$/.test(getComputedStyle(u).position)&&(d=!0),u.scrollHeight<=u.clientHeight&&u.scrollWidth<=u.clientWidth){u=u.assignedSlot||u.parentNode;continue}let t=u.getBoundingClientRect();({scaleX:p,scaleY:m}=zW(u,t)),e={left:t.left,right:t.left+u.clientWidth*p,top:t.top,bottom:t.top+u.clientHeight*m}}let h=0,g=0;if(i==`nearest`)t.top<e.top?(g=t.top-(e.top+o),n>0&&t.bottom>e.bottom+g&&(g=t.bottom-e.bottom+o)):t.bottom>e.bottom&&(g=t.bottom-e.bottom+o,n<0&&t.top-g<e.top&&(g=t.top-(e.top+o)));else{let r=t.bottom-t.top,a=e.bottom-e.top;g=(i==`center`&&r<=a?t.top+r/2-a/2:i==`start`||i==`center`&&n<0?t.top-o:t.bottom-a+o)-e.top}if(r==`nearest`?t.left<e.left?(h=t.left-(e.left+a),n>0&&t.right>e.right+h&&(h=t.right-e.right+a)):t.right>e.right&&(h=t.right-e.right+a,n<0&&t.left<e.left+h&&(h=t.left-(e.left+a))):h=(r==`center`?t.left+(t.right-t.left)/2-(e.right-e.left)/2:r==`start`==s?t.left-a:t.right-(e.right-e.left)+a)-e.left,h||g)if(f)l.scrollBy(h,g);else{let e=0,n=0;if(g){let e=u.scrollTop;u.scrollTop+=g/m,n=(u.scrollTop-e)*m}if(h){let t=u.scrollLeft;u.scrollLeft+=h/p,e=(u.scrollLeft-t)*p}t={left:t.left-e,top:t.top-n,right:t.right-e,bottom:t.bottom-n},e&&Math.abs(e-h)<1&&(r=`nearest`),n&&Math.abs(n-g)<1&&(i=`nearest`)}if(f)break;(t.top<e.top||t.bottom>e.bottom||t.left<e.left||t.right>e.right)&&(t={left:Math.max(t.left,e.left),right:Math.min(t.right,e.right),top:Math.max(t.top,e.top),bottom:Math.min(t.bottom,e.bottom)}),u=u.assignedSlot||u.parentNode}else if(u.nodeType==11)u=u.host;else break}function VW(e){let t=e.ownerDocument,n,r;for(let i=e.parentNode;i&&!(i==t.body||n&&r);)if(i.nodeType==1)!r&&i.scrollHeight>i.clientHeight&&(r=i),!n&&i.scrollWidth>i.clientWidth&&(n=i),i=i.assignedSlot||i.parentNode;else if(i.nodeType==11)i=i.host;else break;return{x:n,y:r}}function HW(e){if(e.setActive)return e.setActive();if(tq)return e.focus(tq);let t=[];for(let n=e;n&&(t.push(n,n.scrollTop,n.scrollLeft),n!=n.ownerDocument);n=n.parentNode);if(e.focus(tq==null?{get preventScroll(){return tq={preventScroll:!0},!0}}:void 0),!tq){tq=!1;for(let e=0;e<t.length;){let n=t[e++],r=t[e++],i=t[e++];n.scrollTop!=r&&(n.scrollTop=r),n.scrollLeft!=i&&(n.scrollLeft=i)}}}function UW(e,t,n=t){let r=nq||(nq=document.createRange());return r.setEnd(e,n),r.setStart(e,t),r}function WW(e,t,n,r){let i={key:t,code:t,keyCode:n,which:n,cancelable:!0};r&&({altKey:i.altKey,ctrlKey:i.ctrlKey,shiftKey:i.shiftKey,metaKey:i.metaKey}=r);let a=new KeyboardEvent(`keydown`,i);a.synthetic=!0,e.dispatchEvent(a);let o=new KeyboardEvent(`keyup`,i);return o.synthetic=!0,e.dispatchEvent(o),a.defaultPrevented||o.defaultPrevented}function GW(e){for(;e;){if(e&&(e.nodeType==9||e.nodeType==11&&e.host))return e;e=e.assignedSlot||e.parentNode}return null}function KW(e){for(;e.attributes.length;)e.removeAttributeNode(e.attributes[0])}function qW(e,t){let n=t.focusNode,r=t.focusOffset;if(!n||t.anchorNode!=n||t.anchorOffset!=r)return!1;for(r=Math.min(r,IW(n));;)if(r){if(n.nodeType!=1)return!1;let e=n.childNodes[r-1];e.contentEditable==`false`?r--:(n=e,r=IW(n))}else if(n==e)return!0;else r=NW(n),n=n.parentNode}function JW(e){return e.scrollTop>Math.max(1,e.scrollHeight-e.clientHeight-4)}function YW(e,t){for(let n=e,r=t;;)if(n.nodeType==3&&r>0)return{node:n,offset:r};else if(n.nodeType==1&&r>0){if(n.contentEditable==`false`)return null;n=n.childNodes[r-1],r=IW(n)}else if(n.parentNode&&!PW(n))r=NW(n),n=n.parentNode;else return null}function XW(e,t){for(let n=e,r=t;;)if(n.nodeType==3&&r<n.nodeValue.length)return{node:n,offset:r};else if(n.nodeType==1&&r<n.childNodes.length){if(n.contentEditable==`false`)return null;n=n.childNodes[r],r=0}else if(n.parentNode&&!PW(n))r=NW(n)+1,n=n.parentNode;else return null}function ZW(e){let t=e.nextSibling;return e.parentNode.removeChild(e),t}function QW(e,t,n,r,i,a,o,s,c){let{children:l}=e,u=l.length?l[t]:null,d=a.length?a[a.length-1]:null,f=d?d.breakAfter:o;if(!(t==r&&u&&!o&&!f&&a.length<2&&u.merge(n,i,a.length?d:null,n==0,s,c))){if(r<l.length){let e=l[r];e&&(i<e.length||e.breakAfter&&d?.breakAfter)?(t==r&&(e=e.split(i),i=0),!f&&d&&e.merge(0,i,d,!0,0,c)?a[a.length-1]=e:((i||e.children.length&&!e.children[0].length)&&e.merge(0,i,null,!1,0,c),a.push(e))):e?.breakAfter&&(d?d.breakAfter=1:o=1),r++}for(u&&(u.breakAfter=o,n>0&&(!o&&a.length&&u.merge(n,u.length,a[0],!1,s,0)?u.breakAfter=a.shift().breakAfter:(n<u.length||u.children.length&&u.children[u.children.length-1].length==0)&&u.merge(n,u.length,null,!1,s,0),t++));t<r&&a.length;)if(l[r-1].become(a[a.length-1]))r--,a.pop(),c=a.length?0:s;else if(l[t].become(a[0]))t++,a.shift(),s=a.length?0:c;else break;!a.length&&t&&r<l.length&&!l[t-1].breakAfter&&l[r].merge(0,0,l[t-1],!1,s,c)&&t--,(t<r||a.length)&&e.replaceChildren(t,r,a)}}function $W(e,t,n,r,i,a){let o=e.childCursor(),{i:s,off:c}=o.findPos(n,1),{i:l,off:u}=o.findPos(t,-1),d=t-n;for(let e of r)d+=e.length;e.length+=d,QW(e,l,u,s,c,r,0,i,a)}function eG(e,t,n){let r=e.nodeValue.length;t>r&&(t=r);let i=t,a=t,o=0;t==0&&n<0||t==r&&n>=0?$K.chrome||$K.gecko||(t?(i--,o=1):a<r&&(a++,o=-1)):n<0?i--:a<r&&a++;let s=UW(e,i,a).getClientRects();if(!s.length)return null;let c=s[(o?o<0:n>=0)?0:s.length-1];return $K.safari&&!o&&c.width==0&&(c=Array.prototype.find.call(s,e=>e.width)||c),o?LW(c,o<0):c||null}function tG(e,t){let n=e.dom,{children:r}=e,i=0;for(let e=0;i<r.length;i++){let a=r[i],o=e+a.length;if(!(o==e&&a.getSide()<=0)){if(t>e&&t<o&&a.dom.parentNode==n)return a.domAtPos(t-e);if(t<=e)break;e=o}}for(let e=i;e>0;e--){let t=r[e-1];if(t.dom.parentNode==n)return t.domAtPos(t.length)}for(let e=i;e<r.length;e++){let t=r[e];if(t.dom.parentNode==n)return t.domAtPos(0)}return new rq(n,0)}function nG(e,t,n){let r,{children:i}=e;n>0&&t instanceof lq&&i.length&&(r=i[i.length-1])instanceof lq&&r.mark.eq(t.mark)?nG(r,t.children[0],n-1):(i.push(t),t.setParent(e)),e.length+=t.length}function rG(e,t,n){let r=null,i=-1,a=null,o=-1;function s(e,t){for(let c=0,l=0;c<e.children.length&&l<=t;c++){let u=e.children[c],d=l+u.length;d>=t&&(u.children.length?s(u,t-l):(!a||a.isHidden&&(n>0||aG(a,u)))&&(d>t||l==d&&u.getSide()>0)?(a=u,o=t-l):(l<t||l==d&&u.getSide()<0&&!u.isHidden)&&(r=u,i=t-l)),l=d}}s(e,t);let c=(n<0?r:a)||r||a;return c?c.coordsAt(Math.max(0,c==r?i:o),n):iG(e)}function iG(e){let t=e.dom.lastChild;if(!t)return e.dom.getBoundingClientRect();let n=jW(t);return n[n.length-1]||null}function aG(e,t){let n=e.coordsAt(0,1),r=t.coordsAt(0,1);return n&&r&&r.top<n.bottom}function oG(e,t){for(let n in e)n==`class`&&t.class?t.class+=` `+e.class:n==`style`&&t.style?t.style+=`;`+e.style:t[n]=e[n];return t}function sG(e,t,n){if(e==t)return!0;e||(e=fq),t||(t=fq);let r=Object.keys(e),i=Object.keys(t);if(r.length-(n&&r.indexOf(n)>-1?1:0)!=i.length-(n&&i.indexOf(n)>-1?1:0))return!1;for(let a of r)if(a!=n&&(i.indexOf(a)==-1||e[a]!==t[a]))return!1;return!0}function cG(e,t,n){let r=!1;if(t)for(let i in t)n&&i in n||(r=!0,i==`style`?e.style.cssText=``:e.removeAttribute(i));if(n)for(let i in n)t&&t[i]==n[i]||(r=!0,i==`style`?e.style.cssText=n[i]:e.setAttribute(i,n[i]));return r}function lG(e){let t=Object.create(null);for(let n=0;n<e.attributes.length;n++){let r=e.attributes[n];t[r.name]=r.value}return t}function uG(e,t=!1){let{inclusiveStart:n,inclusiveEnd:r}=e;return n??(n=e.inclusive),r??(r=e.inclusive),{start:n??t,end:r??t}}function dG(e,t){return e==t||!!(e&&t&&e.compare(t))}function fG(e,t,n,r=0){let i=n.length-1;i>=0&&n[i]+r>=e?n[i]=Math.max(n[i],t):n.push(e,t)}function pG(e,t){for(let n of t)e=new lq(n,[e],e.length);return e}function mG(e){let t=[];for(let n=0;n<e.length;n++)t.push(1<<e[n]);return t}function hG(e){return e<=247?Dq[e]:1424<=e&&e<=1524?2:1536<=e&&e<=1785?Oq[e-1536]:1774<=e&&e<=2220?4:8192<=e&&e<=8204?256:64336<=e&&e<=65023?4:1}function gG(e,t){if(e.length!=t.length)return!1;for(let n=0;n<e.length;n++){let r=e[n],i=t[n];if(r.from!=i.from||r.to!=i.to||r.direction!=i.direction||!gG(r.inner,i.inner))return!1}return!0}function _G(e,t,n,r,i){for(let a=0;a<=r.length;a++){let o=a?r[a-1].to:t,s=a<r.length?r[a].from:n,c=a?256:i;for(let t=o,n=c,r=c;t<s;t++){let i=hG(e.charCodeAt(t));i==512?i=n:i==8&&r==4&&(i=16),Nq[t]=i==4?2:i,i&7&&(r=i),n=i}for(let e=o,t=c,r=c;e<s;e++){let i=Nq[e];if(i==128)e<s-1&&t==Nq[e+1]&&t&24?i=Nq[e]=t:Nq[e]=256;else if(i==64){let i=e+1;for(;i<s&&Nq[i]==64;)i++;let a=e&&t==8||i<n&&Nq[i]==8?r==1?1:8:256;for(let t=e;t<i;t++)Nq[t]=a;e=i-1}else i==8&&r==1&&(Nq[e]=1);t=i,i&7&&(r=i)}}}function vG(e,t,n,r,i){let a=i==1?2:1;for(let o=0,s=0,c=0;o<=r.length;o++){let l=o?r[o-1].to:t,u=o<r.length?r[o].from:n;for(let t=l,n,r,o;t<u;t++)if(r=kq[n=e.charCodeAt(t)])if(r<0){for(let e=s-3;e>=0;e-=3)if(Aq[e+1]==-r){let n=Aq[e+2],r=n&2?i:n&4?n&1?a:i:0;r&&(Nq[t]=Nq[Aq[e]]=r),s=e;break}}else if(Aq.length==189)break;else Aq[s++]=t,Aq[s++]=n,Aq[s++]=c;else if((o=Nq[t])==2||o==1){let e=o==i;c=+!e;for(let t=s-3;t>=0;t-=3){let n=Aq[t+2];if(n&2)break;if(e)Aq[t+2]|=2;else{if(n&4)break;Aq[t+2]|=4}}}}}function yG(e,t,n,r){for(let i=0,a=r;i<=n.length;i++){let o=i?n[i-1].to:e,s=i<n.length?n[i].from:t;for(let c=o;c<s;){let o=Nq[c];if(o==256){let o=c+1;for(;;)if(o==s){if(i==n.length)break;o=n[i++].to,s=i<n.length?n[i].from:t}else if(Nq[o]==256)o++;else break;let l=a==1,u=l==((o<t?Nq[o]:r)==1)?l?1:2:r;for(let t=o,r=i,a=r?n[r-1].to:e;t>c;)t==a&&(t=n[--r].from,a=r?n[r-1].to:e),Nq[--t]=u;c=o}else a=o,c++}}}function bG(e,t,n,r,i,a,o){let s=r%2?2:1;if(r%2==i%2)for(let c=t,l=0;c<n;){let t=!0,u=!1;if(l==a.length||c<a[l].from){let e=Nq[c];e!=s&&(t=!1,u=e==16)}let d=!t&&s==1?[]:null,f=t?r:r+1,p=c;run:for(;;)if(l<a.length&&p==a[l].from){if(u)break run;let m=a[l];if(!t)for(let e=m.to,t=l+1;;){if(e==n)break run;if(t<a.length&&a[t].from==e)e=a[t++].to;else if(Nq[e]==s)break run;else break}l++,d?d.push(m):(m.from>c&&o.push(new Mq(c,m.from,f)),xG(e,m.direction==Tq==!(f%2)?r:r+1,i,m.inner,m.from,m.to,o),c=m.to),p=m.to}else if(p==n||(t?Nq[p]!=s:Nq[p]==s))break;else p++;d?bG(e,c,p,r+1,i,d,o):c<p&&o.push(new Mq(c,p,f)),c=p}else for(let c=n,l=a.length;c>t;){let n=!0,u=!1;if(!l||c>a[l-1].to){let e=Nq[c-1];e!=s&&(n=!1,u=e==16)}let d=!n&&s==1?[]:null,f=n?r:r+1,p=c;run:for(;;)if(l&&p==a[l-1].to){if(u)break run;let m=a[--l];if(!n)for(let e=m.from,n=l;;){if(e==t)break run;if(n&&a[n-1].to==e)e=a[--n].from;else if(Nq[e-1]==s)break run;else break}d?d.push(m):(m.to<c&&o.push(new Mq(m.to,c,f)),xG(e,m.direction==Tq==!(f%2)?r:r+1,i,m.inner,m.from,m.to,o),c=m.from),p=m.from}else if(p==t||(n?Nq[p-1]!=s:Nq[p-1]==s))break;else p--;d?bG(e,p,c,r+1,i,d,o):p<c&&o.push(new Mq(p,c,f)),c=p}}function xG(e,t,n,r,i,a,o){let s=t%2?2:1;_G(e,i,a,r,s),vG(e,i,a,r,s),yG(i,a,r,s),bG(e,i,a,t,n,r,o)}function SG(e,t,n){if(!e)return[new Mq(0,0,+(t==Eq))];if(t==Tq&&!n.length&&!jq.test(e))return CG(e.length);if(n.length)for(;e.length>Nq.length;)Nq[Nq.length]=256;let r=[],i=t==Tq?0:1;return xG(e,i,i,n,0,e.length,r),r}function CG(e){return[new Mq(0,e,0)]}function wG(e,t,n,r,i){let a=r.head-e.from,o=Mq.find(t,a,r.bidiLevel??-1,r.assoc),s=t[o],c=s.side(i,n);if(a==c){let e=o+=i?1:-1;if(e<0||e>=t.length)return null;s=t[o=e],a=s.side(!i,n),c=s.side(i,n)}let l=DH(e.text,a,s.forward(i,n));(l<s.from||l>s.to)&&(l=c),Pq=e.text.slice(Math.min(a,l),Math.max(a,l));let u=o==(i?t.length-1:0)?null:t[o+(i?1:-1)];return u&&l==c&&u.level+ +!i<s.level?X.cursor(u.side(!i,n)+e.from,u.forward(i,n)?1:-1,u.level):X.cursor(l+e.from,s.forward(i,n)?-1:1,s.level)}function TG(e,t,n){for(let r=t;r<n;r++){let t=hG(e.charCodeAt(r));if(t==1)return Tq;if(t==2||t==4)return Eq}return Tq}function EG(e,t,n){let r=e.facet(Rq);r.length?r[0](t):window.onerror&&window.onerror(String(t),n,void 0,void 0,t)||(n?console.error(n+`:`,t):console.error(t))}function DG(e,t){let n=e.state.facet(oJ);if(!n.length)return n;let r=n.map(t=>t instanceof Function?t(e):t),i=[];return iW.spans(r,t.from,t.to,{point(){},span(e,n,r,a){let o=e-t.from,s=n-t.from,c=i;for(let e=r.length-1;e>=0;e--,a--){let n=r[e].spec.bidiIsolate,i;if(n??(n=TG(t.text,o,s)),a>0&&c.length&&(i=c[c.length-1]).to==o&&i.direction==n)i.to=s,c=i.inner;else{let e={from:o,to:s,direction:n,inner:[]};c.push(e),c=e.inner}}}}),i}function OG(e){let t=0,n=0,r=0,i=0;for(let a of e.state.facet(sJ)){let o=a(e);o&&(o.left!=null&&(t=Math.max(t,o.left)),o.right!=null&&(n=Math.max(n,o.right)),o.top!=null&&(r=Math.max(r,o.top)),o.bottom!=null&&(i=Math.max(i,o.bottom)))}return{left:t,right:n,top:r,bottom:i}}function kG(e){return e.node.nodeType==1&&e.node.firstChild&&(e.offset==0||e.node.childNodes[e.offset-1].contentEditable==`false`)&&(e.offset==e.node.childNodes.length||e.node.childNodes[e.offset].contentEditable==`false`)}function AG(e,t){let n=e.observer.selectionRange;if(!n.focusNode)return null;let r=YW(n.focusNode,n.focusOffset),i=XW(n.focusNode,n.focusOffset),a=r||i;if(i&&r&&i.node!=r.node){let t=aq.get(i.node);if(!t||t instanceof cq&&t.text!=i.node.nodeValue)a=i;else if(e.docView.lastCompositionAfterCursor){let e=aq.get(r.node);!e||e instanceof cq&&e.text!=r.node.nodeValue||(a=i)}}if(e.docView.lastCompositionAfterCursor=a!=r,!a)return null;let o=t-a.offset;return{from:o,to:o+a.node.nodeValue.length,node:a.node}}function jG(e,t,n){let r=AG(e,n);if(!r)return null;let{node:i,from:a,to:o}=r,s=i.nodeValue;if(/[\n\r]/.test(s)||e.state.doc.sliceString(r.from,r.to)!=s)return null;let c=t.invertedDesc,l=new lJ(c.mapPos(a),c.mapPos(o),a,o),u=[];for(let t=i.parentNode;;t=t.parentNode){let n=aq.get(t);if(n instanceof lq)u.push({node:t,deco:n.mark});else if(n instanceof yq||t.nodeName==`DIV`&&t.parentNode==e.contentDOM)return{range:l,text:i,marks:u,line:t};else if(t!=e.contentDOM)u.push({node:t,deco:new gq({inclusive:!0,attributes:lG(t),tagName:t.tagName.toLowerCase()})});else return null}}function MG(e,t){return e.nodeType==1?(t&&e.childNodes[t-1].contentEditable==`false`?1:0)|(t<e.childNodes.length&&e.childNodes[t].contentEditable==`false`?2:0):0}function NG(e,t,n){let r=new fJ;return iW.compare(e,t,n,r),r.changes}function PG(e,t){for(let n=e;n&&n!=t;n=n.assignedSlot||n.parentNode)if(n.nodeType==1&&n.contentEditable==`false`)return!0;return!1}function FG(e,t){let n=!1;return t&&e.iterChangedRanges((e,r)=>{e<t.to&&r>t.from&&(n=!0)}),n}function IG(e,t,n=1){let r=e.charCategorizer(t),i=e.doc.lineAt(t),a=t-i.from;if(i.length==0)return X.cursor(t);a==0?n=1:a==i.length&&(n=-1);let o=a,s=a;n<0?o=DH(i.text,a,!1):s=DH(i.text,a);let c=r(i.text.slice(o,s));for(;o>0;){let e=DH(i.text,o,!1);if(r(i.text.slice(e,o))!=c)break;o=e}for(;s<i.length;){let e=DH(i.text,s);if(r(i.text.slice(s,e))!=c)break;s=e}return X.range(o+i.from,s+i.from)}function LG(e,t){return t.left>e?t.left-e:Math.max(0,e-t.right)}function RG(e,t){return t.top>e?t.top-e:Math.max(0,e-t.bottom)}function zG(e,t){return e.top<t.bottom-1&&e.bottom>t.top+1}function BG(e,t){return t<e.top?{top:t,left:e.left,right:e.right,bottom:e.bottom}:e}function VG(e,t){return t>e.bottom?{top:e.top,left:e.left,right:e.right,bottom:t}:e}function HG(e,t,n){let r,i,a,o,s=!1,c,l,u,d;for(let f=e.firstChild;f;f=f.nextSibling){let e=jW(f);for(let p=0;p<e.length;p++){let m=e[p];i&&zG(i,m)&&(m=BG(VG(m,i.bottom),i.top));let h=LG(t,m),g=RG(n,m);if(h==0&&g==0)return f.nodeType==3?UG(f,t,n):HG(f,t,n);(!r||o>g||o==g&&a>h)&&(r=f,i=m,a=h,o=g,s=h?t<m.left?p>0:p<e.length-1:!0),h==0?n>m.bottom&&(!u||u.bottom<m.bottom)?(c=f,u=m):n<m.top&&(!d||d.top>m.top)&&(l=f,d=m):u&&zG(u,m)?u=VG(u,m.bottom):d&&zG(d,m)&&(d=BG(d,m.top))}}if(u&&u.bottom>=n?(r=c,i=u):d&&d.top<=n&&(r=l,i=d),!r)return{node:e,offset:0};let f=Math.max(i.left,Math.min(i.right,t));return r.nodeType==3?UG(r,f,n):s&&r.contentEditable!=`false`?HG(r,f,n):{node:e,offset:Array.prototype.indexOf.call(e.childNodes,r)+ +(t>=(i.left+i.right)/2)}}function UG(e,t,n){let r=e.nodeValue.length,i=-1,a=1e9,o=0;for(let s=0;s<r;s++){let r=UW(e,s,s+1).getClientRects();for(let c=0;c<r.length;c++){let l=r[c];if(l.top==l.bottom)continue;o||(o=t-l.left);let u=(l.top>n?l.top-n:n-l.bottom)-1;if(l.left-1<=t&&l.right+1>=t&&u<a){let n=t>=(l.left+l.right)/2,r=n;if($K.chrome||$K.gecko){let t=UW(e,s).getBoundingClientRect();Math.abs(t.left-l.right)<.1&&(r=!n)}if(u<=0)return{node:e,offset:s+ +!!r};i=s+ +!!r,a=u}}}return{node:e,offset:i>-1?i:o>0?e.nodeValue.length:0}}function WG(e,t,n,r=-1){let i=e.contentDOM.getBoundingClientRect(),a=i.top+e.viewState.paddingTop,o,{docHeight:s}=e.viewState,{x:c,y:l}=t,u=l-a;if(u<0)return 0;if(u>s)return e.state.doc.length;for(let t=e.viewState.heightOracle.textHeight/2,i=!1;o=e.elementAtHeight(u),o.type!=mq.Text;)for(;u=r>0?o.bottom+t:o.top-t,!(u>=0&&u<=s);){if(i)return n?null:0;i=!0,r=-r}l=a+u;let d=o.from;if(d<e.viewport.from)return e.viewport.from==0?0:n?null:GG(e,i,o,c,l);if(d>e.viewport.to)return e.viewport.to==e.state.doc.length?e.state.doc.length:n?null:GG(e,i,o,c,l);let f=e.dom.ownerDocument,p=e.root.elementFromPoint?e.root:f,m=p.elementFromPoint(c,l);m&&!e.contentDOM.contains(m)&&(m=null),m||(c=Math.max(i.left+1,Math.min(i.right-1,c)),m=p.elementFromPoint(c,l),m&&!e.contentDOM.contains(m)&&(m=null));let h,g=-1;if(m&&e.docView.nearest(m)?.isEditable!=0){if(f.caretPositionFromPoint){let e=f.caretPositionFromPoint(c,l);e&&({offsetNode:h,offset:g}=e)}else if(f.caretRangeFromPoint){let e=f.caretRangeFromPoint(c,l);e&&({startContainer:h,startOffset:g}=e)}h&&(!e.contentDOM.contains(h)||$K.safari&&qG(h,g,c)||$K.chrome&&JG(h,g,c))&&(h=void 0),h&&(g=Math.min(IW(h),g))}if(!h||!e.docView.dom.contains(h)){let t=yq.find(e.docView,d);if(!t)return u>o.top+o.height/2?o.to:o.from;({node:h,offset:g}=HG(t.dom,c,l))}let _=e.docView.nearest(h);if(!_)return null;if(_.isWidget&&_.dom?.nodeType==1){let e=_.dom.getBoundingClientRect();return t.y<e.top||t.y<=e.bottom&&t.x<=(e.left+e.right)/2?_.posAtStart:_.posAtEnd}else return _.localPosFromDOM(h,g)+_.posAtStart}function GG(e,t,n,r,i){let a=Math.round((r-t.left)*e.defaultCharacterWidth);if(e.lineWrapping&&n.height>e.defaultLineHeight*1.5){let t=e.viewState.heightOracle.textHeight,r=Math.floor((i-n.top-(e.defaultLineHeight-t)*.5)/t);a+=r*e.viewState.heightOracle.lineLength}let o=e.state.sliceDoc(n.from,n.to);return n.from+pU(o,a,e.state.tabSize)}function KG(e,t,n){let r,i=e;if(e.nodeType!=3||t!=(r=e.nodeValue.length))return!1;for(;;){let e=i.nextSibling;if(e){if(e.nodeName==`BR`)break;return!1}else{let e=i.parentNode;if(!e||e.nodeName==`DIV`)break;i=e}}return UW(e,r-1,r).getBoundingClientRect().right>n}function qG(e,t,n){return KG(e,t,n)}function JG(e,t,n){if(t!=0)return KG(e,t,n);for(let t=e;;){let e=t.parentNode;if(!e||e.nodeType!=1||e.firstChild!=t)return!1;if(e.classList.contains(`cm-line`))break;t=e}return n-(e.nodeType==1?e.getBoundingClientRect():UW(e,0,Math.max(e.nodeValue.length,1)).getBoundingClientRect()).left>5}function YG(e,t,n){let r=e.lineBlockAt(t);if(Array.isArray(r.type)){let e;for(let i of r.type){if(i.from>t)break;if(!(i.to<t)){if(i.from<t&&i.to>t)return i;(!e||i.type==mq.Text&&(e.type!=i.type||(n<0?i.from<t:i.to>t)))&&(e=i)}}return e||r}return r}function Zte(e,t,n,r){let i=YG(e,t.head,t.assoc||-1),a=!r||i.type!=mq.Text||!(e.lineWrapping||i.widgetLineBreaks)?null:e.coordsAtPos(t.assoc<0&&t.head>i.from?t.head-1:t.head);if(a){let t=e.dom.getBoundingClientRect(),r=e.textDirectionAt(i.from),o=e.posAtCoords({x:n==(r==wq.LTR)?t.right-1:t.left+1,y:(a.top+a.bottom)/2});if(o!=null)return X.cursor(o,n?-1:1)}return X.cursor(n?i.to:i.from,n?-1:1)}function XG(e,t,n,r){let i=e.state.doc.lineAt(t.head),a=e.bidiSpans(i),o=e.textDirectionAt(i.from);for(let s=t,c=null;;){let t=wG(i,a,o,s,n),l=Pq;if(!t){if(i.number==(n?e.state.doc.lines:1))return s;l=`
`,i=e.state.doc.line(i.number+(n?1:-1)),a=e.bidiSpans(i),t=e.visualLineSide(i,!n)}if(!c){if(!r)return t;c=r(l)}else if(!c(l))return s;s=t}}function Qte(e,t,n){let r=e.state.charCategorizer(t),i=r(n);return e=>{let t=r(e);return i==ZU.Space&&(i=t),i==t}}function $te(e,t,n,r){let i=t.head,a=n?1:-1;if(i==(n?e.state.doc.length:0))return X.cursor(i,t.assoc);let o=t.goalColumn,s,c=e.contentDOM.getBoundingClientRect(),l=e.coordsAtPos(i,t.assoc||-1),u=e.documentTop;if(l)o??(o=l.left-c.left),s=a<0?l.top:l.bottom;else{let t=e.viewState.lineBlockAt(i);o??(o=Math.min(c.right-c.left,e.defaultCharacterWidth*(i-t.from))),s=(a<0?t.top:t.bottom)+u}let d=c.left+o,f=r??e.viewState.heightOracle.textHeight>>1;for(let t=0;;t+=10){let n=s+(f+t)*a,r=WG(e,{x:d,y:n},!1,a);if(n<c.top||n>c.bottom||(a<0?r<i:r>i)){let t=e.docView.coordsForChar(r),i=!t||n<t.top?-1:1;return X.cursor(r,i,void 0,o)}}}function ZG(e,t,n){for(;;){let r=0;for(let i of e)i.between(t-1,t+1,(e,i,a)=>{if(t>e&&t<i){let a=r||n||(t-e<i-t?-1:1);t=a<0?e:i,r=a}});if(!r)return t}}function QG(e,t){let n=null;for(let r=0;r<t.ranges.length;r++){let i=t.ranges[r],a=null;if(i.empty){let t=ZG(e,i.from,0);t!=i.from&&(a=X.cursor(t,-1))}else{let t=ZG(e,i.from,-1),n=ZG(e,i.to,1);(t!=i.from||n!=i.to)&&(a=X.range(i.from==i.anchor?t:n,i.from==i.head?t:n))}a&&(n||(n=t.ranges.slice()),n[r]=a)}return n?X.create(n,t.mainIndex):t}function $G(e,t,n){let r=ZG(e.state.facet(aJ).map(t=>t(e)),n.from,t.head>n.from?-1:1);return r==n.from?n:X.cursor(r,r<n.from?1:-1)}function ene(e,t,n){for(;;){if(!t||n<IW(t))return!1;if(t==e)return!0;n=NW(t)+1,t=t.parentNode}}function tne(e,t){let n;for(;!(e==t||!e);e=e.nextSibling){let t=aq.get(e);if(!(t?.isWidget||e.cmIgnore))return!1;t&&(n||(n=[])).push(t)}if(n){for(let e of n)if(e.overrideDOMText?.length)return!1}return!0}function eK(e,t){let n,{newSel:r}=t,i=e.state.selection.main,a=e.inputState.lastKeyTime>Date.now()-100?e.inputState.lastKeyCode:-1;if(t.bounds){let{from:r,to:o}=t.bounds,s=i.from,c=null;(a===8||$K.android&&t.text.length<o-r)&&(s=i.to,c=`end`);let l=nK(e.state.doc.sliceString(r,o,pJ),t.text,s-r,c);l&&($K.chrome&&a==13&&l.toB==l.from+2&&t.text.slice(l.from,l.toB)==`￿￿`&&l.toB--,n={from:r+l.from,to:r+l.toA,insert:mU.of(t.text.slice(l.from,l.toB).split(pJ))})}else r&&(!e.hasFocus&&e.state.facet(Xq)||r.main.eq(i))&&(r=null);if(!n&&!r)return!1;if(!n&&t.typeOver&&!i.empty&&r&&r.main.empty?n={from:i.from,to:i.to,insert:e.state.doc.slice(i.from,i.to)}:($K.mac||$K.android)&&n&&n.from==n.to&&n.from==i.head-1&&/^\. ?$/.test(n.insert.toString())&&e.contentDOM.getAttribute(`autocorrect`)==`off`?(r&&n.insert.length==2&&(r=X.single(r.main.anchor-1,r.main.head-1)),n={from:n.from,to:n.to,insert:mU.of([n.insert.toString().replace(`.`,` `)])}):n&&n.from>=i.from&&n.to<=i.to&&(n.from!=i.from||n.to!=i.to)&&i.to-i.from-(n.to-n.from)<=4?n={from:i.from,to:i.to,insert:e.state.doc.slice(i.from,n.from).append(n.insert).append(e.state.doc.slice(n.to,i.to))}:e.state.doc.lineAt(i.from).to<i.to&&e.docView.lineHasWidget(i.to)&&e.inputState.insertingTextAt>Date.now()-50?n={from:i.from,to:i.to,insert:e.state.toText(e.inputState.insertingText)}:$K.chrome&&n&&n.from==n.to&&n.from==i.head&&n.insert.toString()==`
`&&e.lineWrapping&&(r&&(r=X.single(r.main.anchor-1,r.main.head-1)),n={from:i.from,to:i.to,insert:mU.of([` `])}),n)return tK(e,n,r,a);if(r&&!r.main.eq(i)){let t=!1,n=`select`;return e.inputState.lastSelectionTime>Date.now()-50&&(e.inputState.lastSelectionOrigin==`select`&&(t=!0),n=e.inputState.lastSelectionOrigin,n==`select.pointer`&&(r=QG(e.state.facet(aJ).map(t=>t(e)),r))),e.dispatch({selection:r,scrollIntoView:t,userEvent:n}),!0}else return!1}function tK(e,t,n,r=-1){if($K.ios&&e.inputState.flushIOSKey(t))return!0;let i=e.state.selection.main;if($K.android&&(t.to==i.to&&(t.from==i.from||t.from==i.from-1&&e.state.sliceDoc(t.from,i.from)==` `)&&t.insert.length==1&&t.insert.lines==2&&WW(e.contentDOM,`Enter`,13)||(t.from==i.from-1&&t.to==i.to&&t.insert.length==0||r==8&&t.insert.length<t.to-t.from&&t.to>i.head)&&WW(e.contentDOM,`Backspace`,8)||t.from==i.from&&t.to==i.to+1&&t.insert.length==0&&WW(e.contentDOM,`Delete`,46)))return!0;let a=t.insert.toString();e.inputState.composing>=0&&e.inputState.composing++;let o,s=()=>o||(o=nne(e,t,n));return e.state.facet(Bq).some(n=>n(e,t.from,t.to,a,s))||e.dispatch(s()),!0}function nne(e,t,n){let r,i=e.state,a=i.selection.main,o=-1;if(t.from==t.to&&t.from<a.from||t.from>a.to){let n=t.from<a.from?-1:1,r=n<0?a.from:a.to,s=ZG(i.facet(aJ).map(t=>t(e)),r,n);t.from==s&&(o=s)}if(o>-1)r={changes:t,selection:X.cursor(t.from+t.insert.length,-1)};else if(t.from>=a.from&&t.to<=a.to&&t.to-t.from>=(a.to-a.from)/3&&(!n||n.main.empty&&n.main.from==t.from+t.insert.length)&&e.inputState.composing<0){let n=a.from<t.from?i.sliceDoc(a.from,t.from):``,o=a.to>t.to?i.sliceDoc(t.to,a.to):``;r=i.replaceSelection(e.state.toText(n+t.insert.sliceString(0,void 0,e.state.lineBreak)+o))}else{let o=i.changes(t),s=n&&n.main.to<=o.newLength?n.main:void 0;if(i.selection.ranges.length>1&&(e.inputState.composing>=0||e.inputState.compositionPendingChange)&&t.to<=a.to+10&&t.to>=a.to-10){let c=e.state.sliceDoc(t.from,t.to),l,u=n&&AG(e,n.main.head);if(u){let e=t.insert.length-(t.to-t.from);l={from:u.from,to:u.to-e}}else l=e.state.doc.lineAt(a.head);let d=a.to-t.to;r=i.changeByRange(n=>{if(n.from==a.from&&n.to==a.to)return{changes:o,range:s||n.map(o)};let r=n.to-d,u=r-c.length;if(e.state.sliceDoc(u,r)!=c||r>=l.from&&u<=l.to)return{range:n};let f=i.changes({from:u,to:r,insert:t.insert}),p=n.to-a.to;return{changes:f,range:s?X.range(Math.max(0,s.anchor+p),Math.max(0,s.head+p)):n.map(f)}})}else r={changes:o,selection:s&&i.selection.replaceRange(s)}}let s=`input.type`;return(e.composing||e.inputState.compositionPendingChange&&e.inputState.compositionEndedAt>Date.now()-50)&&(e.inputState.compositionPendingChange=!1,s+=`.compose`,e.inputState.compositionFirstChange&&(s+=`.start`,e.inputState.compositionFirstChange=!1)),i.update(r,{userEvent:s,scrollIntoView:!0})}function nK(e,t,n,r){let i=Math.min(e.length,t.length),a=0;for(;a<i&&e.charCodeAt(a)==t.charCodeAt(a);)a++;if(a==i&&e.length==t.length)return null;let o=e.length,s=t.length;for(;o>0&&s>0&&e.charCodeAt(o-1)==t.charCodeAt(s-1);)o--,s--;if(r==`end`){let e=Math.max(0,a-Math.min(o,s));n-=o+e-a}if(o<a&&e.length<t.length){let e=n<=a&&n>=o?a-n:0;a-=e,s=a+(s-o),o=a}else if(s<a){let e=n<=a&&n>=s?a-n:0;a-=e,o=a+(o-s),s=a}return{from:a,toA:o,toB:s}}function rne(e){let t=[];if(e.root.activeElement!=e.contentDOM)return t;let{anchorNode:n,anchorOffset:r,focusNode:i,focusOffset:a}=e.observer.selectionRange;return n&&(t.push(new hJ(n,r)),(i!=n||a!=r)&&t.push(new hJ(i,a))),t}function ine(e,t){if(e.length==0)return null;let n=e[0].pos,r=e.length==2?e[1].pos:n;return n>-1&&r>-1?X.single(n+t,r+t):null}function rK(e,t){return(n,r)=>{try{return t.call(e,r,n)}catch(e){EG(n.state,e)}}}function ane(e){let t=Object.create(null);function n(e){return t[e]||(t[e]={observers:[],handlers:[]})}for(let t of e){let e=t.spec,r=e&&e.plugin.domEventHandlers,i=e&&e.plugin.domEventObservers;if(r)for(let e in r){let i=r[e];i&&n(e).handlers.push(rK(t.value,i))}if(i)for(let e in i){let r=i[e];r&&n(e).observers.push(rK(t.value,r))}}for(let e in CJ)n(e).handlers.push(CJ[e]);for(let e in wJ)n(e).observers.push(wJ[e]);return t}function iK(e){return Math.max(0,e)*.7+8}function one(e,t){return Math.max(Math.abs(e.clientX-t.clientX),Math.abs(e.clientY-t.clientY))}function sne(e,t){let n=e.state.facet(Fq);return n.length?n[0](t):$K.mac?t.metaKey:t.ctrlKey}function cne(e,t){let n=e.state.facet(Iq);return n.length?n[0](t):$K.mac?!t.altKey:!t.ctrlKey}function lne(e,t){let{main:n}=e.state.selection;if(n.empty)return!1;let r=OW(e.root);if(!r||r.rangeCount==0)return!0;let i=r.getRangeAt(0).getClientRects();for(let e=0;e<i.length;e++){let n=i[e];if(n.left<=t.clientX&&n.right>=t.clientX&&n.top<=t.clientY&&n.bottom>=t.clientY)return!0}return!1}function une(e,t){if(!t.bubbles)return!0;if(t.defaultPrevented)return!1;for(let n=t.target,r;n!=e.contentDOM;n=n.parentNode)if(!n||n.nodeType==11||(r=aq.get(n))&&r.ignoreEvent(t))return!1;return!0}function dne(e){let t=e.dom.parentNode;if(!t)return;let n=t.appendChild(document.createElement(`textarea`));n.style.cssText=`position: fixed; left: -10000px; top: 10px`,n.focus(),setTimeout(()=>{e.focus(),n.remove(),oK(e,n.value)},50)}function aK(e,t,n){for(let r of e.facet(t))n=r(n,e);return n}function oK(e,t){t=aK(e.state,Hq,t);let{state:n}=e,r,i=1,a=n.toText(t),o=a.lines==n.selection.ranges.length;if(jJ!=null&&n.selection.ranges.every(e=>e.empty)&&jJ==a.toString()){let e=-1;r=n.changeByRange(r=>{let s=n.doc.lineAt(r.from);if(s.from==e)return{range:r};e=s.from;let c=n.toText((o?a.line(i++).text:t)+n.lineBreak);return{changes:{from:s.from,insert:c},range:X.cursor(r.from+c.length)}})}else r=o?n.changeByRange(e=>{let t=a.line(i++);return{changes:{from:e.from,to:e.to,insert:t.text},range:X.cursor(e.from+t.length)}}):n.replaceSelection(a);e.dispatch(r,{userEvent:`input.paste`,scrollIntoView:!0})}function sK(e,t,n,r){if(r==1)return X.cursor(t,n);if(r==2)return IG(e.state,t,n);{let n=yq.find(e.docView,t),r=e.state.doc.lineAt(n?n.posAtEnd:t),i=n?n.posAtStart:r.from,a=n?n.posAtEnd:r.to;return a<e.state.doc.length&&a==r.to&&a++,X.range(i,a)}}function fne(e,t,n,r){let i=yq.find(e.docView,t);if(!i)return 1;let a=t-i.posAtStart;if(a==0)return 1;if(a==i.length)return-1;let o=i.coordsAt(a,-1);if(o&&EJ(n,r,o))return-1;let s=i.coordsAt(a,1);return s&&EJ(n,r,s)?1:o&&o.bottom>=r?-1:1}function cK(e,t){let n=e.posAtCoords({x:t.clientX,y:t.clientY},!1);return{pos:n,bias:fne(e,n,t.clientX,t.clientY)}}function lK(e){if(!DJ)return e.detail;let t=OJ,n=AJ;return OJ=e,AJ=Date.now(),kJ=!t||n>Date.now()-400&&Math.abs(t.clientX-e.clientX)<2&&Math.abs(t.clientY-e.clientY)<2?(kJ+1)%3:1}function pne(e,t){let n=cK(e,t),r=lK(t),i=e.state.selection;return{update(e){e.docChanged&&(n.pos=e.changes.mapPos(n.pos),i=i.map(e.changes))},get(t,a,o){let s=cK(e,t),c,l=sK(e,s.pos,s.bias,r);if(n.pos!=s.pos&&!a){let t=sK(e,n.pos,n.bias,r),i=Math.min(t.from,l.from),a=Math.max(t.to,l.to);l=i<l.from?X.range(i,a):X.range(a,i)}return a?i.replaceRange(i.main.extend(l.from,l.to)):o&&r==1&&i.ranges.length>1&&(c=mne(i,s.pos))?c:o?i.addRange(l):X.create([l])}}}function mne(e,t){for(let n=0;n<e.ranges.length;n++){let{from:r,to:i}=e.ranges[n];if(r<=t&&i>=t)return X.create(e.ranges.slice(0,n).concat(e.ranges.slice(n+1)),e.mainIndex==n?0:e.mainIndex-+(e.mainIndex>n))}return null}function uK(e,t,n,r){if(n=aK(e.state,Hq,n),!n)return;let i=e.posAtCoords({x:t.clientX,y:t.clientY},!1),{draggedContent:a}=e.inputState,o=r&&a&&cne(e,t)?{from:a.from,to:a.to}:null,s={from:i,insert:n},c=e.state.changes(o?[o,s]:s);e.focus(),e.dispatch({changes:c,selection:{anchor:c.mapPos(i,-1),head:c.mapPos(i,1)},userEvent:o?`move.drop`:`input.drop`}),e.inputState.draggedContent=null}function hne(e,t){let n=e.dom.parentNode;if(!n)return;let r=n.appendChild(document.createElement(`textarea`));r.style.cssText=`position: fixed; left: -10000px; top: 10px`,r.value=t,r.focus(),r.selectionEnd=t.length,r.selectionStart=0,setTimeout(()=>{r.remove(),e.focus()},50)}function gne(e){let t=[],n=[],r=!1;for(let r of e.selection.ranges)r.empty||(t.push(e.sliceDoc(r.from,r.to)),n.push(r));if(!t.length){let i=-1;for(let{from:r}of e.selection.ranges){let a=e.doc.lineAt(r);a.number>i&&(t.push(a.text),n.push({from:a.from,to:Math.min(e.doc.length,a.to+1)})),i=a.number}r=!0}return{text:aK(e,Uq,t.join(e.lineBreak)),ranges:n,linewise:r}}function dK(e,t){let n=[];for(let r of e.facet(Vq)){let i=r(e,t);i&&n.push(i)}return n.length?e.update({effects:n,annotations:MJ.of(!0)}):null}function fK(e){setTimeout(()=>{let t=e.hasFocus;if(t!=e.inputState.notifiedFocused){let n=dK(e.state,t);n?e.dispatch(n):e.update([])}},10)}function _ne(e){NJ.has(e)||(NJ.add(e),e.addEventListener(`copy`,()=>{}),e.addEventListener(`cut`,()=>{}))}function pK(){FJ=!1}function mK(e,t){return e==t?e:(e.constructor!=t.constructor&&(FJ=!0),t)}function hK(e,t){let n,r;e[t]==null&&(n=e[t-1])instanceof WJ&&(r=e[t+1])instanceof WJ&&e.splice(t-1,3,new WJ(n.length+1+r.length))}function vne(e,t,n){let r=new JJ;return iW.compare(e,t,n,r,0),r.changes}function yne(e,t){let n=e.getBoundingClientRect(),r=e.ownerDocument,i=r.defaultView||window,a=Math.max(0,n.left),o=Math.min(i.innerWidth,n.right),s=Math.max(0,n.top),c=Math.min(i.innerHeight,n.bottom);for(let t=e.parentNode;t&&t!=r.body;)if(t.nodeType==1){let n=t,r=window.getComputedStyle(n);if((n.scrollHeight>n.clientHeight||n.scrollWidth>n.clientWidth)&&r.overflow!=`visible`){let r=n.getBoundingClientRect();a=Math.max(a,r.left),o=Math.min(o,r.right),s=Math.max(s,r.top),c=Math.min(t==e.parentNode?i.innerHeight:c,r.bottom)}t=r.position==`absolute`||r.position==`fixed`?n.offsetParent:n.parentNode}else if(t.nodeType==11)t=t.host;else break;return{left:a-n.left,right:Math.max(a,o)-n.left,top:s-(n.top+t),bottom:Math.max(s,c)-(n.top+t)}}function bne(e){let t=e.getBoundingClientRect(),n=e.ownerDocument.defaultView||window;return t.left<n.innerWidth&&t.right>0&&t.top<n.innerHeight&&t.bottom>0}function xne(e,t){let n=e.getBoundingClientRect();return{left:0,right:n.right-n.left,top:t,bottom:n.bottom-(n.top+t)}}function Sne(e,t,n){let r=[],i=e,a=0;return iW.spans(n,e,t,{span(){},point(e,t){e>i&&(r.push({from:i,to:e}),a+=e-i),i=t}},20),i<t&&(r.push({from:i,to:t}),a+=t-i),{total:a,ranges:r}}function gK({total:e,ranges:t},n){if(n<=0)return t[0].from;if(n>=1)return t[t.length-1].to;let r=Math.floor(e*n);for(let e=0;;e++){let{from:n,to:i}=t[e],a=i-n;if(r<=a)return n+r;r-=a}}function _K(e,t){let n=0;for(let{from:r,to:i}of e.ranges){if(t<=i){n+=t-r;break}n+=i-r}return n/e.total}function Cne(e,t){for(let n of e)if(t(n))return n}function vK(e,t){if(t.scale==1)return e;let n=t.toDOM(e.top),r=t.toDOM(e.bottom);return new RJ(e.from,e.length,n,r-n,Array.isArray(e._content)?e._content.map(e=>vK(e,t)):e._content)}function yK(e,t,n){return new mW(t,{finish(t){return/&/.test(t)?t.replace(/&\w*/,t=>{if(t==`&`)return e;if(!n||!n[t])throw RangeError(`Unsupported selector: ${t}`);return n[t]}):e+` `+t}})}function bK(e,t,n){for(;t;){let r=aq.get(t);if(r&&r.parent==e)return r;let i=t.parentNode;t=i==e.dom?n>0?t.nextSibling:t.previousSibling:i}return null}function xK(e,t){let n=t.startContainer,r=t.startOffset,i=t.endContainer,a=t.endOffset,o=e.docView.domAtPos(e.state.selection.main.anchor);return MW(o.node,o.offset,i,a)&&([n,r,i,a]=[i,a,n,r]),{anchorNode:n,anchorOffset:r,focusNode:i,focusOffset:a}}function wne(e,t){if(t.getComposedRanges){let n=t.getComposedRanges(e.root)[0];if(n)return xK(e,n)}let n=null;function r(e){e.preventDefault(),e.stopImmediatePropagation(),n=e.getTargetRanges()[0]}return e.contentDOM.addEventListener(`beforeinput`,r,!0),e.dom.ownerDocument.execCommand(`indent`),e.contentDOM.removeEventListener(`beforeinput`,r,!0),n?xK(e,n):null}function SK(e,t,n){for(let r=e.state.facet(t),i=r.length-1;i>=0;i--){let t=r[i],a=typeof t==`function`?t(e):t;a&&oG(a,n)}return n}function Tne(e,t){let n=e.split(/-(?!$)/),r=n[n.length-1];r==`Space`&&(r=` `);let i,a,o,s;for(let e=0;e<n.length-1;++e){let r=n[e];if(/^(cmd|meta|m)$/i.test(r))s=!0;else if(/^a(lt)?$/i.test(r))i=!0;else if(/^(c|ctrl|control)$/i.test(r))a=!0;else if(/^s(hift)?$/i.test(r))o=!0;else if(/^mod$/i.test(r))t==`mac`?s=!0:a=!0;else throw Error(`Unrecognized modifier name: `+r)}return i&&(r=`Alt-`+r),a&&(r=`Ctrl-`+r),s&&(r=`Meta-`+r),o&&(r=`Shift-`+r),r}function CK(e,t,n){return t.altKey&&(e=`Alt-`+e),t.ctrlKey&&(e=`Ctrl-`+e),t.metaKey&&(e=`Meta-`+e),n!==!1&&t.shiftKey&&(e=`Shift-`+e),e}function wK(e){let t=e.facet(vY),n=yY.get(t);return n||yY.set(t,n=Dne(t.reduce((e,t)=>e.concat(t),[]))),n}function Ene(e,t,n){return TK(wK(e.state),t,e,n)}function Dne(e,t=gY){let n=Object.create(null),r=Object.create(null),i=(e,t)=>{let n=r[e];if(n==null)r[e]=t;else if(n!=t)throw Error(`Key binding `+e+` is used both as a regular binding and as a multi-stroke prefix`)},a=(e,r,a,o,s)=>{let c=n[e]||(n[e]=Object.create(null)),l=r.split(/ (?!$)/).map(e=>Tne(e,t));for(let t=1;t<l.length;t++){let n=l.slice(0,t).join(` `);i(n,!0),c[n]||(c[n]={preventDefault:!0,stopPropagation:!1,run:[t=>{let r=bY={view:t,prefix:n,scope:e};return setTimeout(()=>{bY==r&&(bY=null)},xY),!0}]})}let u=l.join(` `);i(u,!1);let d=c[u]||(c[u]={preventDefault:!1,stopPropagation:!1,run:(c._any?.run)?.slice()||[]});a&&d.run.push(a),o&&(d.preventDefault=!0),s&&(d.stopPropagation=!0)};for(let r of e){let e=r.scope?r.scope.split(` `):[`editor`];if(r.any)for(let t of e){let e=n[t]||(n[t]=Object.create(null));e._any||(e._any={preventDefault:!1,stopPropagation:!1,run:[]});let{any:i}=r;for(let t in e)e[t].run.push(e=>i(e,SY))}let i=r[t]||r.key;if(i)for(let t of e)a(t,i,r.run,r.preventDefault,r.stopPropagation),r.shift&&a(t,`Shift-`+i,r.shift,r.preventDefault,r.stopPropagation)}return n}function TK(e,t,n,r){SY=t;let i=vW(t),a=MH(AH(i,0))==i.length&&i!=` `,o=``,s=!1,c=!1,l=!1;bY&&bY.view==n&&bY.scope==r&&(o=bY.prefix+` `,bJ.indexOf(t.keyCode)<0&&(c=!0,bY=null));let u=new Set,d=e=>{if(e){for(let t of e.run)if(!u.has(t)&&(u.add(t),t(n)))return e.stopPropagation&&(l=!0),!0;e.preventDefault&&(e.stopPropagation&&(l=!0),c=!0)}return!1},f=e[r],p,m;return f&&(d(f[o+CK(i,t,!a)])?s=!0:a&&(t.altKey||t.metaKey||t.ctrlKey)&&!($K.windows&&t.ctrlKey&&t.altKey)&&!($K.mac&&t.altKey&&!(t.ctrlKey||t.metaKey))&&(p=yW[t.keyCode])&&p!=i?(d(f[o+CK(p,t,!0)])||t.shiftKey&&(m=bW[t.keyCode])!=i&&m!=p&&d(f[o+CK(m,t,!1)]))&&(s=!0):a&&t.shiftKey&&d(f[o+CK(i,t,!0)])&&(s=!0),!s&&d(f._any)&&(s=!0)),c&&(s=!0),s&&l&&t.stopPropagation(),SY=null,s}function EK(e){let t=e.scrollDOM.getBoundingClientRect();return{left:(e.textDirection==wq.LTR?t.left:t.right-e.scrollDOM.clientWidth*e.scaleX)-e.scrollDOM.scrollLeft*e.scaleX,top:t.top-e.scrollDOM.scrollTop*e.scaleY}}function DK(e,t,n,r){let i=e.coordsAtPos(t,n*2);if(!i)return r;let a=e.dom.getBoundingClientRect(),o=(i.top+i.bottom)/2,s=e.posAtCoords({x:a.left+1,y:o}),c=e.posAtCoords({x:a.right-1,y:o});return s==null||c==null?r:{from:Math.max(r.from,Math.min(s,c)),to:Math.min(r.to,Math.max(s,c))}}function One(e,t,n){if(n.to<=e.viewport.from||n.from>=e.viewport.to)return[];let r=Math.max(n.from,e.viewport.from),i=Math.min(n.to,e.viewport.to),a=e.textDirection==wq.LTR,o=e.contentDOM,s=o.getBoundingClientRect(),c=EK(e),l=o.querySelector(`.cm-line`),u=l&&window.getComputedStyle(l),d=s.left+(u?parseInt(u.paddingLeft)+Math.min(0,parseInt(u.textIndent)):0),f=s.right-(u?parseInt(u.paddingRight):0),p=YG(e,r,1),m=YG(e,i,-1),h=p.type==mq.Text?p:null,g=m.type==mq.Text?m:null;if(h&&(e.lineWrapping||p.widgetLineBreaks)&&(h=DK(e,r,1,h)),g&&(e.lineWrapping||m.widgetLineBreaks)&&(g=DK(e,i,-1,g)),h&&g&&h.from==g.from&&h.to==g.to)return v(y(n.from,n.to,h));{let t=h?y(n.from,null,h):b(p,!1),r=g?y(null,n.to,g):b(m,!0),i=[];return(h||p).to<(g||m).from-(h&&g?1:0)||p.widgetLineBreaks>1&&t.bottom+e.defaultLineHeight/2<r.top?i.push(_(d,t.bottom,f,r.top)):t.bottom<r.top&&e.elementAtHeight((t.bottom+r.top)/2).type==mq.Text&&(t.bottom=r.top=(t.bottom+r.top)/2),v(t).concat(i).concat(v(r))}function _(e,n,r,i){return new CY(t,e-c.left,n-c.top,r-e,i-n)}function v({top:e,bottom:t,horizontal:n}){let r=[];for(let i=0;i<n.length;i+=2)r.push(_(n[i],e,n[i+1],t));return r}function y(t,n,r){let i=1e9,o=-1e9,s=[];function c(t,n,c,l,u){let p=e.coordsAtPos(t,t==r.to?-2:2),m=e.coordsAtPos(c,c==r.from?2:-2);!p||!m||(i=Math.min(p.top,m.top,i),o=Math.max(p.bottom,m.bottom,o),u==wq.LTR?s.push(a&&n?d:p.left,a&&l?f:m.right):s.push(!a&&l?d:m.left,!a&&n?f:p.right))}let l=t??r.from,u=n??r.to;for(let r of e.visibleRanges)if(r.to>l&&r.from<u)for(let i=Math.max(r.from,l),a=Math.min(r.to,u);;){let r=e.state.doc.lineAt(i);for(let o of e.bidiSpans(r)){let e=o.from+r.from,s=o.to+r.from;if(e>=a)break;s>i&&c(Math.max(e,i),t==null&&e<=l,Math.min(s,a),n==null&&s>=u,o.dir)}if(i=r.to+1,i>=a)break}return s.length==0&&c(l,t==null,u,n==null,e.textDirection),{top:i,bottom:o,horizontal:s}}function b(e,t){let n=s.top+(t?e.top:e.bottom);return{top:n,bottom:n,horizontal:[]}}}function kne(e,t){return e.constructor==t.constructor&&e.eq(t)}function OK(e){return[$q.define(t=>new wY(t,e)),TY.of(e)]}function Ane(e={}){return[EY.of(e),DY,OY,kY,Gq.of(!0)]}function kK(e){return e.startState.facet(EY)!=e.state.facet(EY)}function AK(e,t){t.style.animationDuration=e.facet(EY).cursorBlinkRate+`ms`}function jne(){return[jY,MY]}function jK(e,t,n,r,i){t.lastIndex=0;for(let a=e.iterRange(n,r),o=n,s;!a.next().done;o+=a.value.length)if(!a.lineBreak)for(;s=t.exec(a.value);)i(o+s.index,s)}function Mne(e,t){let n=e.visibleRanges;if(n.length==1&&n[0].from==e.viewport.from&&n[0].to==e.viewport.to)return n;let r=[];for(let{from:i,to:a}of n)i=Math.max(e.state.doc.lineAt(i).from,i-t),a=Math.min(e.state.doc.lineAt(a).to,a+t),r.length&&r[r.length-1].to>=i?r[r.length-1].to=a:r.push({from:i,to:a});return r}function Nne(){if(LY==null&&typeof document<`u`&&document.body){let e=document.body.style;LY=(e.tabSize??e.MozTabSize)!=null}return LY||!1}function Pne(e={}){return[RY.of(e),Fne()]}function Fne(){return zY||(zY=$q.fromClass(class{constructor(e){this.view=e,this.decorations=hq.none,this.decorationCache=Object.create(null),this.decorator=this.makeDecorator(e.state.facet(RY)),this.decorations=this.decorator.createDeco(e)}makeDecorator(e){return new NY({regexp:e.specialChars,decoration:(t,n,r)=>{let{doc:i}=n.state,a=AH(t[0],0);if(a==9){let e=i.lineAt(r),t=n.state.tabSize,a=fU(e.text,t,r-e.from);return hq.replace({widget:new HY((t-a%t)*this.view.defaultCharacterWidth/this.view.scaleX)})}return this.decorationCache[a]||(this.decorationCache[a]=hq.replace({widget:new VY(e,a)}))},boundary:e.replaceTabs?void 0:/[^]/})}update(e){let t=e.state.facet(RY);e.startState.facet(RY)==t?this.decorations=this.decorator.updateDeco(e,this.decorations):(this.decorator=this.makeDecorator(t),this.decorations=this.decorator.createDeco(e.view))}},{decorations:e=>e.decorations}))}function Ine(e){return e>=32?BY:e==10?`␤`:String.fromCharCode(9216+e)}function Lne(){return WY}function Rne(e){let t=$q.fromClass(class{constructor(t){this.view=t,this.placeholder=e?hq.set([hq.widget({widget:new GY(e),side:1}).range(0)]):hq.none}get decorations(){return this.view.state.doc.length?hq.none:this.placeholder}},{decorations:e=>e.decorations});return typeof e==`string`?[t,fY.contentAttributes.of({"aria-placeholder":e})]:t}function zne(e,t,n){let r=Math.min(t.line,n.line),i=Math.max(t.line,n.line),a=[];if(t.off>KY||n.off>KY||t.col<0||n.col<0){let o=Math.min(t.off,n.off),s=Math.max(t.off,n.off);for(let t=r;t<=i;t++){let n=e.doc.line(t);n.length<=s&&a.push(X.range(n.from+o,n.to+s))}}else{let o=Math.min(t.col,n.col),s=Math.max(t.col,n.col);for(let t=r;t<=i;t++){let n=e.doc.line(t),r=pU(n.text,o,e.tabSize,!0);if(r<0)a.push(X.cursor(n.to));else{let t=pU(n.text,s,e.tabSize);a.push(X.range(n.from+r,n.from+t))}}}return a}function Bne(e,t){let n=e.coordsAtPos(e.viewport.from);return n?Math.round(Math.abs((n.left-t)/e.defaultCharacterWidth)):-1}function MK(e,t){let n=e.posAtCoords({x:t.clientX,y:t.clientY},!1),r=e.state.doc.lineAt(n),i=n-r.from,a=i>KY?-1:i==r.length?Bne(e,t.clientX):fU(r.text,e.state.tabSize,n-r.from);return{line:r.number,col:a,off:i}}function Vne(e,t){let n=MK(e,t),r=e.state.selection;return n?{update(e){if(e.docChanged){let t=e.changes.mapPos(e.startState.doc.line(n.line).from),i=e.state.doc.lineAt(t);n={line:i.number,col:n.col,off:Math.min(n.off,i.length)},r=r.map(e.changes)}},get(t,i,a){let o=MK(e,t);if(!o)return r;let s=zne(e.state,n,o);return s.length?a?X.create(s.concat(r.ranges)):X.create(s):r}}:null}function Hne(e){let t=e?.eventFilter||(e=>e.altKey&&e.button==0);return fY.mouseSelectionStyle.of((e,n)=>t(n)?Vne(e,n):null)}function Une(e={}){let[t,n]=qY[e.key||`Alt`],r=$q.fromClass(class{constructor(e){this.view=e,this.isDown=!1}set(e){this.isDown!=e&&(this.isDown=e,this.view.update([]))}},{eventObservers:{keydown(e){this.set(e.keyCode==t||n(e))},keyup(e){(e.keyCode==t||!n(e))&&this.set(!1)},mousemove(e){this.set(n(e))}}});return[r,fY.contentAttributes.of(e=>e.plugin(r)?.isDown?JY:null)]}function Wne(e){let t=e.dom.ownerDocument.documentElement;return{top:0,left:0,bottom:t.clientHeight,right:t.clientWidth}}function NK(e,t){let n=parseInt(e.style.left,10);(isNaN(n)||Math.abs(t-n)>1)&&(e.style.left=t+`px`)}function Gne(e,t){let{left:n,right:r,top:i,bottom:a}=e.getBoundingClientRect(),o;if(o=e.querySelector(`.cm-tooltip-arrow`)){let e=o.getBoundingClientRect();i=Math.min(e.top,i),a=Math.max(e.bottom,a)}return t.clientX>=n-sX&&t.clientX<=r+sX&&t.clientY>=i-sX&&t.clientY<=a+sX}function Kne(e,t,n,r,i,a){let o=e.scrollDOM.getBoundingClientRect(),s=e.documentTop+e.documentPadding.top+e.contentHeight;if(o.left>r||o.right<r||o.top>i||Math.min(o.bottom,s)<i)return!1;let c=e.posAtCoords({x:r,y:i},!1);return c>=t&&c<=n}function qne(e,t={}){let n=JU.define(),r=jU.define({create(){return[]},update(e,r){if(e.length&&(t.hideOnChange&&(r.docChanged||r.selection)?e=[]:t.hideOn&&(e=e.filter(e=>!t.hideOn(r,e))),r.docChanged)){let t=[];for(let n of e){let e=r.changes.mapPos(n.pos,-1,SU.TrackDel);if(e!=null){let i=Object.assign(Object.create(null),n);i.pos=e,i.end!=null&&(i.end=r.changes.mapPos(i.end)),t.push(i)}}e=t}for(let t of r.effects)t.is(n)&&(e=t.value),t.is(cX)&&(e=[]);return e},provide:e=>rX.from(e)});return{active:r,extension:[r,$q.define(i=>new oX(i,e,r,n,t.hoverTime||300)),aX]}}function PK(e,t){let n=e.plugin($Y);if(!n)return null;let r=n.manager.tooltips.indexOf(t);return r<0?null:n.manager.tooltipViews[r]}function FK(e,t){let n=e.plugin(uX),r=n?n.specs.indexOf(t):-1;return r>-1?n.panels[r]:null}function IK(e){let t=e.nextSibling;return e.remove(),t}function Jne(e){return[LK(),_X.of({...gX,...e})]}function LK(e){let t=[yX];return e&&e.fixed===!1&&t.push(vX.of(!0)),t}function RK(e){return Array.isArray(e)?e:[e]}function zK(e,t,n){for(;e.value&&e.from<=n;)e.from==n&&t.push(e.value),e.next()}function Yne(e,t){if(e.length!=t.length)return!1;for(let n=0;n<e.length;n++)if(!e[n].compare(t[n]))return!1;return!0}function BK(e,t){return e.state.facet(TX).formatNumber(t,e.state)}function Xne(e={}){return[TX.of(e),LK(),DX]}function VK(e){let t=9;for(;t<e;)t=t*10+9;return t}function Zne(){return kX}var HK,UK,WK,GK,KK,qK,JK,YK,XK,ZK,QK,$K,eq,tq,nq,rq,iq,aq,oq,sq,cq,lq,uq,dq,fq,pq,mq,hq,gq,_q,vq,yq,bq,xq,Sq,Cq,wq,Tq,Eq,Dq,Oq,kq,Aq,jq,Mq,Nq,Pq,Fq,Iq,Lq,Rq,zq,Bq,Vq,Hq,Uq,Wq,Gq,Kq,qq,Jq,Yq,Xq,Zq,Qq,$q,eJ,tJ,nJ,rJ,iJ,aJ,oJ,sJ,cJ,lJ,uJ,dJ,fJ,pJ,mJ,hJ,gJ,_J,vJ,yJ,bJ,xJ,SJ,CJ,wJ,TJ,EJ,DJ,OJ,kJ,AJ,jJ,MJ,NJ,PJ,FJ,IJ,LJ,RJ,zJ,BJ,VJ,HJ,UJ,WJ,GJ,KJ,qJ,JJ,YJ,XJ,ZJ,QJ,$J,eY,tY,nY,rY,iY,aY,oY,sY,cY,lY,uY,dY,fY,pY,mY,hY,gY,_Y,vY,yY,bY,xY,SY,CY,wY,TY,EY,DY,OY,kY,AY,jY,MY,NY,PY,FY,IY,LY,RY,zY,BY,VY,HY,UY,WY,GY,KY,qY,JY,YY,XY,ZY,QY,$Y,eX,tX,nX,rX,iX,aX,oX,sX,cX,lX,uX,dX,fX,pX,mX,hX,gX,_X,vX,yX,bX,xX,SX,CX,wX,TX,EX,DX,OX,kX,AX=o((()=>{lW(),_W(),wW(),HK=typeof navigator<`u`?navigator:{userAgent:``,vendor:``,platform:``},UK=typeof document<`u`?document:{documentElement:{style:{}}},WK=/Edge\/(\d+)/.exec(HK.userAgent),GK=/MSIE \d/.test(HK.userAgent),KK=/Trident\/(?:[7-9]|\d{2,})\..*rv:(\d+)/.exec(HK.userAgent),qK=!!(GK||KK||WK),JK=!qK&&/gecko\/(\d+)/i.test(HK.userAgent),YK=!qK&&/Chrome\/(\d+)/.exec(HK.userAgent),XK=`webkitFontSmoothing`in UK.documentElement.style,ZK=!qK&&/Apple Computer/.test(HK.vendor),QK=ZK&&(/Mobile\/\w+/.test(HK.userAgent)||HK.maxTouchPoints>2),$K={mac:QK||/Mac/.test(HK.platform),windows:/Win/.test(HK.platform),linux:/Linux|X11/.test(HK.platform),ie:qK,ie_version:GK?UK.documentMode||6:KK?+KK[1]:WK?+WK[1]:0,gecko:JK,gecko_version:JK?+(/Firefox\/(\d+)/.exec(HK.userAgent)||[0,0])[1]:0,chrome:!!YK,chrome_version:YK?+YK[1]:0,ios:QK,android:/Android\b/.test(HK.userAgent),webkit:XK,webkit_version:XK?+(/\bAppleWebKit\/(\d+)/.exec(HK.userAgent)||[0,0])[1]:0,safari:ZK,safari_version:ZK?+(/\bVersion\/(\d+(\.\d+)?)/.exec(HK.userAgent)||[0,0])[1]:0,tabSize:UK.documentElement.style.tabSize==null?`-moz-tab-size`:`tab-size`},eq=class{constructor(){this.anchorNode=null,this.anchorOffset=0,this.focusNode=null,this.focusOffset=0}eq(e){return this.anchorNode==e.anchorNode&&this.anchorOffset==e.anchorOffset&&this.focusNode==e.focusNode&&this.focusOffset==e.focusOffset}setRange(e){let{anchorNode:t,focusNode:n}=e;this.set(t,Math.min(e.anchorOffset,t?IW(t):0),n,Math.min(e.focusOffset,n?IW(n):0))}set(e,t,n,r){this.anchorNode=e,this.anchorOffset=t,this.focusNode=n,this.focusOffset=r}},tq=null,$K.safari&&$K.safari_version>=26&&(tq=!1),rq=class e{constructor(e,t,n=!0){this.node=e,this.offset=t,this.precise=n}static before(t,n){return new e(t.parentNode,NW(t),n)}static after(t,n){return new e(t.parentNode,NW(t)+1,n)}},iq=[],aq=class e{constructor(){this.parent=null,this.dom=null,this.flags=2}get overrideDOMText(){return null}get posAtStart(){return this.parent?this.parent.posBefore(this):0}get posAtEnd(){return this.posAtStart+this.length}posBefore(e){let t=this.posAtStart;for(let n of this.children){if(n==e)return t;t+=n.length+n.breakAfter}throw RangeError(`Invalid child in posBefore`)}posAfter(e){return this.posBefore(e)+e.length}sync(t,n){if(this.flags&2){let r=this.dom,i=null,a;for(let o of this.children){if(o.flags&7){if(!o.dom&&(a=i?i.nextSibling:r.firstChild)){let t=e.get(a);(!t||!t.parent&&t.canReuseDOM(o))&&o.reuseDOM(a)}o.sync(t,n),o.flags&=-8}if(a=i?i.nextSibling:r.firstChild,n&&!n.written&&n.node==r&&a!=o.dom&&(n.written=!0),o.dom.parentNode==r)for(;a&&a!=o.dom;)a=ZW(a);else r.insertBefore(o.dom,a);i=o.dom}for(a=i?i.nextSibling:r.firstChild,a&&n&&n.node==r&&(n.written=!0);a;)a=ZW(a)}else if(this.flags&1)for(let e of this.children)e.flags&7&&(e.sync(t,n),e.flags&=-8)}reuseDOM(e){}localPosFromDOM(t,n){let r;if(t==this.dom)r=this.dom.childNodes[n];else{let e=IW(t)==0?0:n==0?-1:1;for(;;){let n=t.parentNode;if(n==this.dom)break;e==0&&n.firstChild!=n.lastChild&&(e=t==n.firstChild?-1:1),t=n}r=e<0?t:t.nextSibling}if(r==this.dom.firstChild)return 0;for(;r&&!e.get(r);)r=r.nextSibling;if(!r)return this.length;for(let e=0,t=0;;e++){let n=this.children[e];if(n.dom==r)return t;t+=n.length+n.breakAfter}}domBoundsAround(e,t,n=0){let r=-1,i=-1,a=-1,o=-1;for(let s=0,c=n,l=n;s<this.children.length;s++){let n=this.children[s],u=c+n.length;if(c<e&&u>t)return n.domBoundsAround(e,t,c);if(u>=e&&r==-1&&(r=s,i=c),c>t&&n.dom.parentNode==this.dom){a=s,o=l;break}l=u,c=u+n.breakAfter}return{from:i,to:o<0?n+this.length:o,startDOM:(r?this.children[r-1].dom.nextSibling:null)||this.dom.firstChild,endDOM:a<this.children.length&&a>=0?this.children[a].dom:null}}markDirty(e=!1){this.flags|=2,this.markParentsDirty(e)}markParentsDirty(e){for(let t=this.parent;t;t=t.parent){if(e&&(t.flags|=2),t.flags&1)return;t.flags|=1,e=!1}}setParent(e){this.parent!=e&&(this.parent=e,this.flags&7&&this.markParentsDirty(!0))}setDOM(e){this.dom!=e&&(this.dom&&(this.dom.cmView=null),this.dom=e,e.cmView=this)}get rootView(){for(let e=this;;){let t=e.parent;if(!t)return e;e=t}}replaceChildren(e,t,n=iq){this.markDirty();for(let r=e;r<t;r++){let e=this.children[r];e.parent==this&&n.indexOf(e)<0&&e.destroy()}n.length<250?this.children.splice(e,t-e,...n):this.children=[].concat(this.children.slice(0,e),n,this.children.slice(t));for(let e=0;e<n.length;e++)n[e].setParent(this)}ignoreMutation(e){return!1}ignoreEvent(e){return!1}childCursor(e=this.length){return new oq(this.children,e,this.children.length)}childPos(e,t=1){return this.childCursor().findPos(e,t)}toString(){let e=this.constructor.name.replace(`View`,``);return e+(this.children.length?`(`+this.children.join()+`)`:this.length?`[`+(e==`Text`?this.text:this.length)+`]`:``)+(this.breakAfter?`#`:``)}static get(e){return e.cmView}get isEditable(){return!0}get isWidget(){return!1}get isHidden(){return!1}merge(e,t,n,r,i,a){return!1}become(e){return!1}canReuseDOM(e){return e.constructor==this.constructor&&!((this.flags|e.flags)&8)}getSide(){return 0}destroy(){for(let e of this.children)e.parent==this&&e.destroy();this.parent=null}},aq.prototype.breakAfter=0,oq=class{constructor(e,t,n){this.children=e,this.pos=t,this.i=n,this.off=0}findPos(e,t=1){for(;;){if(e>this.pos||e==this.pos&&(t>0||this.i==0||this.children[this.i-1].breakAfter))return this.off=e-this.pos,this;let n=this.children[--this.i];this.pos-=n.length+n.breakAfter}}},sq=256,cq=class e extends aq{constructor(e){super(),this.text=e}get length(){return this.text.length}createDOM(e){this.setDOM(e||document.createTextNode(this.text))}sync(e,t){this.dom||this.createDOM(),this.dom.nodeValue!=this.text&&(t&&t.node==this.dom&&(t.written=!0),this.dom.nodeValue=this.text)}reuseDOM(e){e.nodeType==3&&this.createDOM(e)}merge(t,n,r){return this.flags&8||r&&(!(r instanceof e)||this.length-(n-t)+r.length>sq||r.flags&8)?!1:(this.text=this.text.slice(0,t)+(r?r.text:``)+this.text.slice(n),this.markDirty(),!0)}split(t){let n=new e(this.text.slice(t));return this.text=this.text.slice(0,t),this.markDirty(),n.flags|=this.flags&8,n}localPosFromDOM(e,t){return e==this.dom?t:t?this.text.length:0}domAtPos(e){return new rq(this.dom,e)}domBoundsAround(e,t,n){return{from:n,to:n+this.length,startDOM:this.dom,endDOM:this.dom.nextSibling}}coordsAt(e,t){return eG(this.dom,e,t)}},lq=class e extends aq{constructor(e,t=[],n=0){super(),this.mark=e,this.children=t,this.length=n;for(let e of t)e.setParent(this)}setAttrs(e){if(KW(e),this.mark.class&&(e.className=this.mark.class),this.mark.attrs)for(let t in this.mark.attrs)e.setAttribute(t,this.mark.attrs[t]);return e}canReuseDOM(e){return super.canReuseDOM(e)&&!((this.flags|e.flags)&8)}reuseDOM(e){e.nodeName==this.mark.tagName.toUpperCase()&&(this.setDOM(e),this.flags|=6)}sync(e,t){this.dom?this.flags&4&&this.setAttrs(this.dom):this.setDOM(this.setAttrs(document.createElement(this.mark.tagName))),super.sync(e,t)}merge(t,n,r,i,a,o){return r&&(!(r instanceof e&&r.mark.eq(this.mark))||t&&a<=0||n<this.length&&o<=0)?!1:($W(this,t,n,r?r.children.slice():[],a-1,o-1),this.markDirty(),!0)}split(t){let n=[],r=0,i=-1,a=0;for(let e of this.children){let o=r+e.length;o>t&&n.push(r<t?e.split(t-r):e),i<0&&r>=t&&(i=a),r=o,a++}let o=this.length-t;return this.length=t,i>-1&&(this.children.length=i,this.markDirty()),new e(this.mark,n,o)}domAtPos(e){return tG(this,e)}coordsAt(e,t){return rG(this,e,t)}},uq=class e extends aq{static create(t,n,r){return new e(t,n,r)}constructor(e,t,n){super(),this.widget=e,this.length=t,this.side=n,this.prevWidget=null}split(t){let n=e.create(this.widget,this.length-t,this.side);return this.length-=t,n}sync(e){(!this.dom||!this.widget.updateDOM(this.dom,e))&&(this.dom&&this.prevWidget&&this.prevWidget.destroy(this.dom),this.prevWidget=null,this.setDOM(this.widget.toDOM(e)),this.widget.editable||(this.dom.contentEditable=`false`))}getSide(){return this.side}merge(t,n,r,i,a,o){return r&&(!(r instanceof e)||!this.widget.compare(r.widget)||t>0&&a<=0||n<this.length&&o<=0)?!1:(this.length=t+(r?r.length:0)+(this.length-n),!0)}become(t){return t instanceof e&&t.side==this.side&&this.widget.constructor==t.widget.constructor?(this.widget.compare(t.widget)||this.markDirty(!0),this.dom&&!this.prevWidget&&(this.prevWidget=this.widget),this.widget=t.widget,this.length=t.length,!0):!1}ignoreMutation(){return!0}ignoreEvent(e){return this.widget.ignoreEvent(e)}get overrideDOMText(){if(this.length==0)return mU.empty;let e=this;for(;e.parent;)e=e.parent;let{view:t}=e,n=t&&t.state.doc,r=this.posAtStart;return n?n.slice(r,r+this.length):mU.empty}domAtPos(e){return(this.length?e==0:this.side>0)?rq.before(this.dom):rq.after(this.dom,e==this.length)}domBoundsAround(){return null}coordsAt(e,t){let n=this.widget.coordsAt(this.dom,e,t);if(n)return n;let r=this.dom.getClientRects(),i=null;if(!r.length)return null;let a=this.side?this.side<0:e>0;for(let t=a?r.length-1:0;i=r[t],!(e>0?t==0:t==r.length-1||i.top<i.bottom);t+=a?-1:1);return LW(i,!a)}get isEditable(){return!1}get isWidget(){return!0}get isHidden(){return this.widget.isHidden}destroy(){super.destroy(),this.dom&&this.widget.destroy(this.dom)}},dq=class e extends aq{constructor(e){super(),this.side=e}get length(){return 0}merge(){return!1}become(t){return t instanceof e&&t.side==this.side}split(){return new e(this.side)}sync(){if(!this.dom){let e=document.createElement(`img`);e.className=`cm-widgetBuffer`,e.setAttribute(`aria-hidden`,`true`),this.setDOM(e)}}getSide(){return this.side}domAtPos(e){return this.side>0?rq.before(this.dom):rq.after(this.dom)}localPosFromDOM(){return 0}domBoundsAround(){return null}coordsAt(e){return this.dom.getBoundingClientRect()}get overrideDOMText(){return mU.empty}get isHidden(){return!0}},cq.prototype.children=uq.prototype.children=dq.prototype.children=iq,fq=Object.create(null),pq=class{eq(e){return!1}updateDOM(e,t){return!1}compare(e){return this==e||this.constructor==e.constructor&&this.eq(e)}get estimatedHeight(){return-1}get lineBreaks(){return 0}ignoreEvent(e){return!0}coordsAt(e,t,n){return null}get isHidden(){return!1}get editable(){return!1}destroy(e){}},mq=(function(e){return e[e.Text=0]=`Text`,e[e.WidgetBefore=1]=`WidgetBefore`,e[e.WidgetAfter=2]=`WidgetAfter`,e[e.WidgetRange=3]=`WidgetRange`,e})(mq||(mq={})),hq=class extends tW{constructor(e,t,n,r){super(),this.startSide=e,this.endSide=t,this.widget=n,this.spec=r}get heightRelevant(){return!1}static mark(e){return new gq(e)}static widget(e){let t=Math.max(-1e4,Math.min(1e4,e.side||0)),n=!!e.block;return t+=n&&!e.inlineOrder?t>0?3e8:-4e8:t>0?1e8:-1e8,new vq(e,t,t,n,e.widget||null,!1)}static replace(e){let t=!!e.block,n,r;if(e.isBlockGap)n=-5e8,r=4e8;else{let{start:i,end:a}=uG(e,t);n=(i?t?-3e8:-1:5e8)-1,r=(a?t?2e8:1:-6e8)+1}return new vq(e,n,r,t,e.widget||null,!0)}static line(e){return new _q(e)}static set(e,t=!1){return iW.of(e,t)}hasHeight(){return this.widget?this.widget.estimatedHeight>-1:!1}},hq.none=iW.empty,gq=class e extends hq{constructor(e){let{start:t,end:n}=uG(e);super(t?-1:5e8,n?1:-6e8,null,e),this.tagName=e.tagName||`span`,this.class=e.class||``,this.attrs=e.attributes||null}eq(t){return this==t||t instanceof e&&this.tagName==t.tagName&&(this.class||this.attrs?.class)==(t.class||t.attrs?.class)&&sG(this.attrs,t.attrs,`class`)}range(e,t=e){if(e>=t)throw RangeError(`Mark decorations may not be empty`);return super.range(e,t)}},gq.prototype.point=!1,_q=class e extends hq{constructor(e){super(-2e8,-2e8,null,e)}eq(t){return t instanceof e&&this.spec.class==t.spec.class&&sG(this.spec.attributes,t.spec.attributes)}range(e,t=e){if(t!=e)throw RangeError(`Line decoration ranges must be zero-length`);return super.range(e,t)}},_q.prototype.mapMode=SU.TrackBefore,_q.prototype.point=!0,vq=class e extends hq{constructor(e,t,n,r,i,a){super(t,n,i,e),this.block=r,this.isReplace=a,this.mapMode=r?t<=0?SU.TrackBefore:SU.TrackAfter:SU.TrackDel}get type(){return this.startSide==this.endSide?this.startSide<=0?mq.WidgetBefore:mq.WidgetAfter:mq.WidgetRange}get heightRelevant(){return this.block||!!this.widget&&(this.widget.estimatedHeight>=5||this.widget.lineBreaks>0)}eq(t){return t instanceof e&&dG(this.widget,t.widget)&&this.block==t.block&&this.startSide==t.startSide&&this.endSide==t.endSide}range(e,t=e){if(this.isReplace&&(e>t||e==t&&this.startSide>0&&this.endSide<=0))throw RangeError(`Invalid range for replacement decoration`);if(!this.isReplace&&t!=e)throw RangeError(`Widget decorations can only have zero-length ranges`);return super.range(e,t)}},vq.prototype.point=!0,yq=class e extends aq{constructor(){super(...arguments),this.children=[],this.length=0,this.prevAttrs=void 0,this.attrs=null,this.breakAfter=0}merge(t,n,r,i,a,o){if(r){if(!(r instanceof e))return!1;this.dom||r.transferDOM(this)}return i&&this.setDeco(r?r.attrs:null),$W(this,t,n,r?r.children.slice():[],a,o),!0}split(t){let n=new e;if(n.breakAfter=this.breakAfter,this.length==0)return n;let{i:r,off:i}=this.childPos(t);i&&(n.append(this.children[r].split(i),0),this.children[r].merge(i,this.children[r].length,null,!1,0,0),r++);for(let e=r;e<this.children.length;e++)n.append(this.children[e],0);for(;r>0&&this.children[r-1].length==0;)this.children[--r].destroy();return this.children.length=r,this.markDirty(),this.length=t,n}transferDOM(e){this.dom&&(this.markDirty(),e.setDOM(this.dom),e.prevAttrs=this.prevAttrs===void 0?this.attrs:this.prevAttrs,this.prevAttrs=void 0,this.dom=null)}setDeco(e){sG(this.attrs,e)||(this.dom&&(this.prevAttrs=this.attrs,this.markDirty()),this.attrs=e)}append(e,t){nG(this,e,t)}addLineDeco(e){let t=e.spec.attributes,n=e.spec.class;t&&(this.attrs=oG(t,this.attrs||{})),n&&(this.attrs=oG({class:n},this.attrs||{}))}domAtPos(e){return tG(this,e)}reuseDOM(e){e.nodeName==`DIV`&&(this.setDOM(e),this.flags|=6)}sync(e,t){this.dom?this.flags&4&&(KW(this.dom),this.dom.className=`cm-line`,this.prevAttrs=this.attrs?null:void 0):(this.setDOM(document.createElement(`div`)),this.dom.className=`cm-line`,this.prevAttrs=this.attrs?null:void 0),this.prevAttrs!==void 0&&(cG(this.dom,this.prevAttrs,this.attrs),this.dom.classList.add(`cm-line`),this.prevAttrs=void 0),super.sync(e,t);let n=this.dom.lastChild;for(;n&&aq.get(n)instanceof lq;)n=n.lastChild;if(!n||!this.length||n.nodeName!=`BR`&&aq.get(n)?.isEditable==0&&(!$K.ios||!this.children.some(e=>e instanceof cq))){let e=document.createElement(`BR`);e.cmIgnore=!0,this.dom.appendChild(e)}}measureTextSize(){if(this.children.length==0||this.length>20)return null;let e=0,t;for(let n of this.children){if(!(n instanceof cq)||/[^ -~]/.test(n.text))return null;let r=jW(n.dom);if(r.length!=1)return null;e+=r[0].width,t=r[0].height}return e?{lineHeight:this.dom.getBoundingClientRect().height,charWidth:e/this.length,textHeight:t}:null}coordsAt(e,t){let n=rG(this,e,t);if(!this.children.length&&n&&this.parent){let{heightOracle:e}=this.parent.view.viewState,t=n.bottom-n.top;if(Math.abs(t-e.lineHeight)<2&&e.textHeight<t){let r=(t-e.textHeight)/2;return{top:n.top+r,bottom:n.bottom-r,left:n.left,right:n.left}}}return n}become(t){return t instanceof e&&this.children.length==0&&t.children.length==0&&sG(this.attrs,t.attrs)&&this.breakAfter==t.breakAfter}covers(){return!0}static find(t,n){for(let r=0,i=0;r<t.children.length;r++){let a=t.children[r],o=i+a.length;if(o>=n){if(a instanceof e)return a;if(o>n)break}i=o+a.breakAfter}return null}},bq=class e extends aq{constructor(e,t,n){super(),this.widget=e,this.length=t,this.deco=n,this.breakAfter=0,this.prevWidget=null}merge(t,n,r,i,a,o){return r&&(!(r instanceof e)||!this.widget.compare(r.widget)||t>0&&a<=0||n<this.length&&o<=0)?!1:(this.length=t+(r?r.length:0)+(this.length-n),!0)}domAtPos(e){return e==0?rq.before(this.dom):rq.after(this.dom,e==this.length)}split(t){let n=this.length-t;this.length=t;let r=new e(this.widget,n,this.deco);return r.breakAfter=this.breakAfter,r}get children(){return iq}sync(e){(!this.dom||!this.widget.updateDOM(this.dom,e))&&(this.dom&&this.prevWidget&&this.prevWidget.destroy(this.dom),this.prevWidget=null,this.setDOM(this.widget.toDOM(e)),this.widget.editable||(this.dom.contentEditable=`false`))}get overrideDOMText(){return this.parent?this.parent.view.state.doc.slice(this.posAtStart,this.posAtEnd):mU.empty}domBoundsAround(){return null}become(t){return t instanceof e&&t.widget.constructor==this.widget.constructor?(t.widget.compare(this.widget)||this.markDirty(!0),this.dom&&!this.prevWidget&&(this.prevWidget=this.widget),this.widget=t.widget,this.length=t.length,this.deco=t.deco,this.breakAfter=t.breakAfter,!0):!1}ignoreMutation(){return!0}ignoreEvent(e){return this.widget.ignoreEvent(e)}get isEditable(){return!1}get isWidget(){return!0}coordsAt(e,t){return this.widget.coordsAt(this.dom,e,t)||(this.widget instanceof xq?null:LW(this.dom.getBoundingClientRect(),this.length?e==0:t<=0))}destroy(){super.destroy(),this.dom&&this.widget.destroy(this.dom)}covers(e){let{startSide:t,endSide:n}=this.deco;return t==n?!1:e<0?t<0:n>0}},xq=class extends pq{constructor(e){super(),this.height=e}toDOM(){let e=document.createElement(`div`);return e.className=`cm-gap`,this.updateDOM(e),e}eq(e){return e.height==this.height}updateDOM(e){return e.style.height=this.height+`px`,!0}get editable(){return!0}get estimatedHeight(){return this.height}ignoreEvent(){return!1}},Sq=class e{constructor(e,t,n,r){this.doc=e,this.pos=t,this.end=n,this.disallowBlockEffectsFor=r,this.content=[],this.curLine=null,this.breakAtStart=0,this.pendingBuffer=0,this.bufferMarks=[],this.atCursorPos=!0,this.openStart=-1,this.openEnd=-1,this.text=``,this.textOff=0,this.cursor=e.iter(),this.skip=t}posCovered(){if(this.content.length==0)return!this.breakAtStart&&this.doc.lineAt(this.pos).from!=this.pos;let e=this.content[this.content.length-1];return!(e.breakAfter||e instanceof bq&&e.deco.endSide<0)}getLine(){return this.curLine||(this.content.push(this.curLine=new yq),this.atCursorPos=!0),this.curLine}flushBuffer(e=this.bufferMarks){this.pendingBuffer&&(this.curLine.append(pG(new dq(-1),e),e.length),this.pendingBuffer=0)}addBlockWidget(e){this.flushBuffer(),this.curLine=null,this.content.push(e)}finish(e){this.pendingBuffer&&e<=this.bufferMarks.length?this.flushBuffer():this.pendingBuffer=0,!this.posCovered()&&!(e&&this.content.length&&this.content[this.content.length-1]instanceof bq)&&this.getLine()}buildText(e,t,n){for(;e>0;){if(this.textOff==this.text.length){let{value:t,lineBreak:n,done:r}=this.cursor.next(this.skip);if(this.skip=0,r)throw Error(`Ran out of text content when drawing inline views`);if(n){this.posCovered()||this.getLine(),this.content.length?this.content[this.content.length-1].breakAfter=1:this.breakAtStart=1,this.flushBuffer(),this.curLine=null,this.atCursorPos=!0,e--;continue}else this.text=t,this.textOff=0}let r=Math.min(this.text.length-this.textOff,e),i=Math.min(r,512);this.flushBuffer(t.slice(t.length-n)),this.getLine().append(pG(new cq(this.text.slice(this.textOff,this.textOff+i)),t),n),this.atCursorPos=!0,this.textOff+=i,e-=i,n=r<=i?0:t.length}}span(e,t,n,r){this.buildText(t-e,n,r),this.pos=t,this.openStart<0&&(this.openStart=r)}point(e,t,n,r,i,a){if(this.disallowBlockEffectsFor[a]&&n instanceof vq){if(n.block)throw RangeError(`Block decorations may not be specified via plugins`);if(t>this.doc.lineAt(this.pos).to)throw RangeError(`Decorations that replace line breaks may not be specified via plugins`)}let o=t-e;if(n instanceof vq)if(n.block)n.startSide>0&&!this.posCovered()&&this.getLine(),this.addBlockWidget(new bq(n.widget||Cq.block,o,n));else{let a=uq.create(n.widget||Cq.inline,o,o?0:n.startSide),s=this.atCursorPos&&!a.isEditable&&i<=r.length&&(e<t||n.startSide>0),c=!a.isEditable&&(e<t||i>r.length||n.startSide<=0),l=this.getLine();this.pendingBuffer==2&&!s&&!a.isEditable&&(this.pendingBuffer=0),this.flushBuffer(r),s&&(l.append(pG(new dq(1),r),i),i=r.length+Math.max(0,i-r.length)),l.append(pG(a,r),i),this.atCursorPos=c,this.pendingBuffer=c?e<t||i>r.length?1:2:0,this.pendingBuffer&&(this.bufferMarks=r.slice())}else this.doc.lineAt(this.pos).from==this.pos&&this.getLine().addLineDeco(n);o&&(this.textOff+o<=this.text.length?this.textOff+=o:(this.skip+=o-(this.text.length-this.textOff),this.text=``,this.textOff=0),this.pos=t),this.openStart<0&&(this.openStart=i)}static build(t,n,r,i,a){let o=new e(t,n,r,a);return o.openEnd=iW.spans(i,n,r,o),o.openStart<0&&(o.openStart=o.openEnd),o.finish(o.openEnd),o}},Cq=class extends pq{constructor(e){super(),this.tag=e}eq(e){return e.tag==this.tag}toDOM(){return document.createElement(this.tag)}updateDOM(e){return e.nodeName.toLowerCase()==this.tag}get isHidden(){return!0}},Cq.inline=new Cq(`span`),Cq.block=new Cq(`div`),wq=(function(e){return e[e.LTR=0]=`LTR`,e[e.RTL=1]=`RTL`,e})(wq||(wq={})),Tq=wq.LTR,Eq=wq.RTL,Dq=mG(`88888888888888888888888888888888888666888888787833333333337888888000000000000000000000000008888880000000000000000000000000088888888888888888888888888888888888887866668888088888663380888308888800000000000000000000000800000000000000000000000000000008`),Oq=mG(`4444448826627288999999999992222222222222222222222222222222222222222222222229999999999999999999994444444444644222822222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222999999949999999229989999223333333333`),kq=Object.create(null),Aq=[];for(let e of[`()`,`[]`,`{}`]){let t=e.charCodeAt(0),n=e.charCodeAt(1);kq[t]=n,kq[n]=-t}jq=/[\u0590-\u05f4\u0600-\u06ff\u0700-\u08ac\ufb50-\ufdff]/,Mq=class{get dir(){return this.level%2?Eq:Tq}constructor(e,t,n){this.from=e,this.to=t,this.level=n}side(e,t){return this.dir==t==e?this.to:this.from}forward(e,t){return e==(this.dir==t)}static find(e,t,n,r){let i=-1;for(let a=0;a<e.length;a++){let o=e[a];if(o.from<=t&&o.to>=t){if(o.level==n)return a;(i<0||(r==0?e[i].level>o.level:r<0?o.from<t:o.to>t))&&(i=a)}}if(i<0)throw RangeError(`Index out of range`);return i}},Nq=[],Pq=``,Fq=OU.define(),Iq=OU.define(),Lq=OU.define(),Rq=OU.define(),zq=OU.define(),Bq=OU.define(),Vq=OU.define(),Hq=OU.define(),Uq=OU.define(),Wq=OU.define({combine:e=>e.some(e=>e)}),Gq=OU.define({combine:e=>e.some(e=>e)}),Kq=OU.define(),qq=class e{constructor(e,t=`nearest`,n=`nearest`,r=5,i=5,a=!1){this.range=e,this.y=t,this.x=n,this.yMargin=r,this.xMargin=i,this.isSnapshot=a}map(t){return t.empty?this:new e(this.range.map(t),this.y,this.x,this.yMargin,this.xMargin,this.isSnapshot)}clip(t){return this.range.to<=t.doc.length?this:new e(X.cursor(t.doc.length),this.y,this.x,this.yMargin,this.xMargin,this.isSnapshot)}},Jq=JU.define({map:(e,t)=>e.map(t)}),Yq=JU.define(),Xq=OU.define({combine:e=>!e.length||e[0]}),Zq=0,Qq=OU.define({combine(e){return e.filter((t,n)=>{for(let r=0;r<n;r++)if(e[r].plugin==t.plugin)return!1;return!0})}}),$q=class e{constructor(e,t,n,r,i){this.id=e,this.create=t,this.domEventHandlers=n,this.domEventObservers=r,this.baseExtensions=i(this),this.extension=this.baseExtensions.concat(Qq.of({plugin:this,arg:void 0}))}of(e){return this.baseExtensions.concat(Qq.of({plugin:this,arg:e}))}static define(t,n){let{eventHandlers:r,eventObservers:i,provide:a,decorations:o}=n||{};return new e(Zq++,t,r,i,e=>{let t=[];return o&&t.push(rJ.of(t=>{let n=t.plugin(e);return n?o(n):hq.none})),a&&t.push(a(e)),t})}static fromClass(t,n){return e.define((e,n)=>new t(e,n),n)}},eJ=class{constructor(e){this.spec=e,this.mustUpdate=null,this.value=null}get plugin(){return this.spec&&this.spec.plugin}update(e){if(!this.value){if(this.spec)try{this.value=this.spec.plugin.create(e,this.spec.arg)}catch(t){EG(e.state,t,`CodeMirror plugin crashed`),this.deactivate()}}else if(this.mustUpdate){let e=this.mustUpdate;if(this.mustUpdate=null,this.value.update)try{this.value.update(e)}catch(t){if(EG(e.state,t,`CodeMirror plugin crashed`),this.value.destroy)try{this.value.destroy()}catch{}this.deactivate()}}return this}destroy(e){if(this.value?.destroy)try{this.value.destroy()}catch(t){EG(e.state,t,`CodeMirror plugin crashed`)}}deactivate(){this.spec=this.value=null}},tJ=OU.define(),nJ=OU.define(),rJ=OU.define(),iJ=OU.define(),aJ=OU.define(),oJ=OU.define(),sJ=OU.define(),cJ=OU.define(),lJ=class e{constructor(e,t,n,r){this.fromA=e,this.toA=t,this.fromB=n,this.toB=r}join(t){return new e(Math.min(this.fromA,t.fromA),Math.max(this.toA,t.toA),Math.min(this.fromB,t.fromB),Math.max(this.toB,t.toB))}addToSet(e){let t=e.length,n=this;for(;t>0;t--){let r=e[t-1];if(!(r.fromA>n.toA)){if(r.toA<n.fromA)break;n=n.join(r),e.splice(t-1,1)}}return e.splice(t,0,n),e}static extendWithRanges(t,n){if(n.length==0)return t;let r=[];for(let i=0,a=0,o=0,s=0;;i++){let c=i==t.length?null:t[i],l=o-s,u=c?c.fromB:1e9;for(;a<n.length&&n[a]<u;){let t=n[a],i=n[a+1],o=Math.max(s,t),c=Math.min(u,i);if(o<=c&&new e(o+l,c+l,o,c).addToSet(r),i>u)break;a+=2}if(!c)return r;new e(c.fromA,c.toA,c.fromB,c.toB).addToSet(r),o=c.toA,s=c.toB}}},uJ=class e{constructor(e,t,n){this.view=e,this.state=t,this.transactions=n,this.flags=0,this.startState=e.state,this.changes=wU.empty(this.startState.doc.length);for(let e of n)this.changes=this.changes.compose(e.changes);let r=[];this.changes.iterChangedRanges((e,t,n,i)=>r.push(new lJ(e,t,n,i))),this.changedRanges=r}static create(t,n,r){return new e(t,n,r)}get viewportChanged(){return(this.flags&4)>0}get viewportMoved(){return(this.flags&8)>0}get heightChanged(){return(this.flags&2)>0}get geometryChanged(){return this.docChanged||(this.flags&18)>0}get focusChanged(){return(this.flags&1)>0}get docChanged(){return!this.changes.empty}get selectionSet(){return this.transactions.some(e=>e.selection)}get empty(){return this.flags==0&&this.transactions.length==0}},dJ=class extends aq{get length(){return this.view.state.doc.length}constructor(e){super(),this.view=e,this.decorations=[],this.dynamicDecorationMap=[!1],this.domChanged=null,this.hasComposition=null,this.markedForComposition=new Set,this.editContextFormatting=hq.none,this.lastCompositionAfterCursor=!1,this.minWidth=0,this.minWidthFrom=0,this.minWidthTo=0,this.impreciseAnchor=null,this.impreciseHead=null,this.forceSelection=!1,this.lastUpdate=Date.now(),this.setDOM(e.contentDOM),this.children=[new yq],this.children[0].setParent(this),this.updateDeco(),this.updateInner([new lJ(0,0,0,e.state.doc.length)],0,null)}update(e){let t=e.changedRanges;this.minWidth>0&&t.length&&(t.every(({fromA:e,toA:t})=>t<this.minWidthFrom||e>this.minWidthTo)?(this.minWidthFrom=e.changes.mapPos(this.minWidthFrom,1),this.minWidthTo=e.changes.mapPos(this.minWidthTo,1)):this.minWidth=this.minWidthFrom=this.minWidthTo=0),this.updateEditContextFormatting(e);let n=-1;this.view.inputState.composing>=0&&!this.view.observer.editContext&&(this.domChanged?.newSel?n=this.domChanged.newSel.head:!FG(e.changes,this.hasComposition)&&!e.selectionSet&&(n=e.state.selection.main.head));let r=n>-1?jG(this.view,e.changes,n):null;if(this.domChanged=null,this.hasComposition){this.markedForComposition.clear();let{from:n,to:r}=this.hasComposition;t=new lJ(n,r,e.changes.mapPos(n,-1),e.changes.mapPos(r,1)).addToSet(t.slice())}this.hasComposition=r?{from:r.range.fromB,to:r.range.toB}:null,($K.ie||$K.chrome)&&!r&&e&&e.state.doc.lines!=e.startState.doc.lines&&(this.forceSelection=!0);let i=this.decorations,a=NG(i,this.updateDeco(),e.changes);return t=lJ.extendWithRanges(t,a),!(this.flags&7)&&t.length==0?!1:(this.updateInner(t,e.startState.doc.length,r),e.transactions.length&&(this.lastUpdate=Date.now()),!0)}updateInner(e,t,n){this.view.viewState.mustMeasureContent=!0,this.updateChildren(e,t,n);let{observer:r}=this.view;r.ignore(()=>{this.dom.style.height=this.view.viewState.contentHeight/this.view.scaleY+`px`,this.dom.style.flexBasis=this.minWidth?this.minWidth+`px`:``;let e=$K.chrome||$K.ios?{node:r.selectionRange.focusNode,written:!1}:void 0;this.sync(this.view,e),this.flags&=-8,e&&(e.written||r.selectionRange.focusNode!=e.node)&&(this.forceSelection=!0),this.dom.style.height=``}),this.markedForComposition.forEach(e=>e.flags&=-9);let i=[];if(this.view.viewport.from||this.view.viewport.to<this.view.state.doc.length)for(let e of this.children)e instanceof bq&&e.widget instanceof xq&&i.push(e.dom);r.updateGaps(i)}updateChildren(e,t,n){let r=n?n.range.addToSet(e.slice()):e,i=this.childCursor(t);for(let e=r.length-1;;e--){let t=e>=0?r[e]:null;if(!t)break;let{fromA:a,toA:o,fromB:s,toB:c}=t,l,u,d,f;if(n&&n.range.fromB<c&&n.range.toB>s){let e=Sq.build(this.view.state.doc,s,n.range.fromB,this.decorations,this.dynamicDecorationMap),t=Sq.build(this.view.state.doc,n.range.toB,c,this.decorations,this.dynamicDecorationMap);u=e.breakAtStart,d=e.openStart,f=t.openEnd;let r=this.compositionView(n);t.breakAtStart?r.breakAfter=1:t.content.length&&r.merge(r.length,r.length,t.content[0],!1,t.openStart,0)&&(r.breakAfter=t.content[0].breakAfter,t.content.shift()),e.content.length&&r.merge(0,0,e.content[e.content.length-1],!0,0,e.openEnd)&&e.content.pop(),l=e.content.concat(r).concat(t.content)}else({content:l,breakAtStart:u,openStart:d,openEnd:f}=Sq.build(this.view.state.doc,s,c,this.decorations,this.dynamicDecorationMap));let{i:p,off:m}=i.findPos(o,1),{i:h,off:g}=i.findPos(a,-1);QW(this,h,g,p,m,l,u,d,f)}n&&this.fixCompositionDOM(n)}updateEditContextFormatting(e){this.editContextFormatting=this.editContextFormatting.map(e.changes);for(let t of e.transactions)for(let e of t.effects)e.is(Yq)&&(this.editContextFormatting=e.value)}compositionView(e){let t=new cq(e.text.nodeValue);t.flags|=8;for(let{deco:n}of e.marks)t=new lq(n,[t],t.length);let n=new yq;return n.append(t,0),n}fixCompositionDOM(e){let t=(e,t)=>{t.flags|=8|!!t.children.some(e=>e.flags&7),this.markedForComposition.add(t);let n=aq.get(e);n&&n!=t&&(n.dom=null),t.setDOM(e)},n=this.childPos(e.range.fromB,1),r=this.children[n.i];t(e.line,r);for(let i=e.marks.length-1;i>=-1;i--)n=r.childPos(n.off,1),r=r.children[n.i],t(i>=0?e.marks[i].node:e.text,r)}updateSelection(e=!1,t=!1){(e||!this.view.observer.selectionRange.focusNode)&&this.view.observer.readSelectionRange();let n=this.view.root.activeElement,r=n==this.dom,i=!r&&!(this.view.state.facet(Xq)||this.dom.tabIndex>-1)&&AW(this.dom,this.view.observer.selectionRange)&&!(n&&this.dom.contains(n));if(!(r||t||i))return;let a=this.forceSelection;this.forceSelection=!1;let o=this.view.state.selection.main,s=this.moveToLine(this.domAtPos(o.anchor)),c=o.empty?s:this.moveToLine(this.domAtPos(o.head));if($K.gecko&&o.empty&&!this.hasComposition&&kG(s)){let e=document.createTextNode(``);this.view.observer.ignore(()=>s.node.insertBefore(e,s.node.childNodes[s.offset]||null)),s=c=new rq(e,0),a=!0}let l=this.view.observer.selectionRange;(a||!l.focusNode||(!MW(s.node,s.offset,l.anchorNode,l.anchorOffset)||!MW(c.node,c.offset,l.focusNode,l.focusOffset))&&!this.suppressWidgetCursorChange(l,o))&&(this.view.observer.ignore(()=>{$K.android&&$K.chrome&&this.dom.contains(l.focusNode)&&PG(l.focusNode,this.dom)&&(this.dom.blur(),this.dom.focus({preventScroll:!0}));let e=OW(this.view.root);if(e)if(o.empty){if($K.gecko){let e=MG(s.node,s.offset);if(e&&e!=3){let t=(e==1?YW:XW)(s.node,s.offset);t&&(s=new rq(t.node,t.offset))}}e.collapse(s.node,s.offset),o.bidiLevel!=null&&e.caretBidiLevel!==void 0&&(e.caretBidiLevel=o.bidiLevel)}else if(e.extend){e.collapse(s.node,s.offset);try{e.extend(c.node,c.offset)}catch{}}else{let t=document.createRange();o.anchor>o.head&&([s,c]=[c,s]),t.setEnd(c.node,c.offset),t.setStart(s.node,s.offset),e.removeAllRanges(),e.addRange(t)}i&&this.view.root.activeElement==this.dom&&(this.dom.blur(),n&&n.focus())}),this.view.observer.setSelectionRange(s,c)),this.impreciseAnchor=s.precise?null:new rq(l.anchorNode,l.anchorOffset),this.impreciseHead=c.precise?null:new rq(l.focusNode,l.focusOffset)}suppressWidgetCursorChange(e,t){return this.hasComposition&&t.empty&&MW(e.focusNode,e.focusOffset,e.anchorNode,e.anchorOffset)&&this.posFromDOM(e.focusNode,e.focusOffset)==t.head}enforceCursorAssoc(){if(this.hasComposition)return;let{view:e}=this,t=e.state.selection.main,n=OW(e.root),{anchorNode:r,anchorOffset:i}=e.observer.selectionRange;if(!n||!t.empty||!t.assoc||!n.modify)return;let a=yq.find(this,t.head);if(!a)return;let o=a.posAtStart;if(t.head==o||t.head==o+a.length)return;let s=this.coordsAt(t.head,-1),c=this.coordsAt(t.head,1);if(!s||!c||s.bottom>c.top)return;let l=this.domAtPos(t.head+t.assoc);n.collapse(l.node,l.offset),n.modify(`move`,t.assoc<0?`forward`:`backward`,`lineboundary`),e.observer.readSelectionRange();let u=e.observer.selectionRange;e.docView.posFromDOM(u.anchorNode,u.anchorOffset)!=t.from&&n.collapse(r,i)}moveToLine(e){let t=this.dom,n;if(e.node!=t)return e;for(let r=e.offset;!n&&r<t.childNodes.length;r++){let e=aq.get(t.childNodes[r]);e instanceof yq&&(n=e.domAtPos(0))}for(let r=e.offset-1;!n&&r>=0;r--){let e=aq.get(t.childNodes[r]);e instanceof yq&&(n=e.domAtPos(e.length))}return n?new rq(n.node,n.offset,!0):e}nearest(e){for(let t=e;t;){let e=aq.get(t);if(e&&e.rootView==this)return e;t=t.parentNode}return null}posFromDOM(e,t){let n=this.nearest(e);if(!n)throw RangeError(`Trying to find position for a DOM position outside of the document`);return n.localPosFromDOM(e,t)+n.posAtStart}domAtPos(e){let{i:t,off:n}=this.childCursor().findPos(e,-1);for(;t<this.children.length-1;){let e=this.children[t];if(n<e.length||e instanceof yq)break;t++,n=0}return this.children[t].domAtPos(n)}coordsAt(e,t){let n=null,r=0;for(let i=this.length,a=this.children.length-1;a>=0;a--){let o=this.children[a],s=i-o.breakAfter,c=s-o.length;if(s<e)break;if(c<=e&&(c<e||o.covers(-1))&&(s>e||o.covers(1))&&(!n||o instanceof yq&&!(n instanceof yq&&t>=0)))n=o,r=c;else if(n&&c==e&&s==e&&o instanceof bq&&Math.abs(t)<2){if(o.deco.startSide<0)break;a&&(n=null)}i=c}return n?n.coordsAt(e-r,t):null}coordsForChar(e){let{i:t,off:n}=this.childPos(e,1),r=this.children[t];if(!(r instanceof yq))return null;for(;r.children.length;){let{i:e,off:t}=r.childPos(n,1);for(;;e++){if(e==r.children.length)return null;if((r=r.children[e]).length)break}n=t}if(!(r instanceof cq))return null;let i=DH(r.text,n);if(i==n)return null;let a=UW(r.dom,n,i).getClientRects();for(let e=0;e<a.length;e++){let t=a[e];if(e==a.length-1||t.top<t.bottom&&t.left<t.right)return t}return null}measureVisibleLineHeights(e){let t=[],{from:n,to:r}=e,i=this.view.contentDOM.clientWidth,a=i>Math.max(this.view.scrollDOM.clientWidth,this.minWidth)+1,o=-1,s=this.view.textDirection==wq.LTR;for(let e=0,c=0;c<this.children.length;c++){let l=this.children[c],u=e+l.length;if(u>r)break;if(e>=n){let n=l.dom.getBoundingClientRect();if(t.push(n.height),a){let t=l.dom.lastChild,r=t?jW(t):[];if(r.length){let t=r[r.length-1],a=s?t.right-n.left:n.right-t.left;a>o&&(o=a,this.minWidth=i,this.minWidthFrom=e,this.minWidthTo=u)}}}e=u+l.breakAfter}return t}textDirectionAt(e){let{i:t}=this.childPos(e,1);return getComputedStyle(this.children[t].dom).direction==`rtl`?wq.RTL:wq.LTR}measureTextSize(){for(let e of this.children)if(e instanceof yq){let t=e.measureTextSize();if(t)return t}let e=document.createElement(`div`),t,n,r;return e.className=`cm-line`,e.style.width=`99999px`,e.style.position=`absolute`,e.textContent=`abc def ghi jkl mno pqr stu`,this.view.observer.ignore(()=>{this.dom.appendChild(e);let i=jW(e.firstChild)[0];t=e.getBoundingClientRect().height,n=i?i.width/27:7,r=i?i.height:t,e.remove()}),{lineHeight:t,charWidth:n,textHeight:r}}childCursor(e=this.length){let t=this.children.length;return t&&(e-=this.children[--t].length),new oq(this.children,e,t)}computeBlockGapDeco(){let e=[],t=this.view.viewState;for(let n=0,r=0;;r++){let i=r==t.viewports.length?null:t.viewports[r],a=i?i.from-1:this.length;if(a>n){let r=(t.lineBlockAt(a).bottom-t.lineBlockAt(n).top)/this.view.scaleY;e.push(hq.replace({widget:new xq(r),block:!0,inclusive:!0,isBlockGap:!0}).range(n,a))}if(!i)break;n=i.to+1}return hq.set(e)}updateDeco(){let e=1,t=this.view.state.facet(rJ).map(t=>(this.dynamicDecorationMap[e++]=typeof t==`function`)?t(this.view):t),n=!1,r=this.view.state.facet(iJ).map((e,t)=>{let r=typeof e==`function`;return r&&(n=!0),r?e(this.view):e});for(r.length&&(this.dynamicDecorationMap[e++]=n,t.push(iW.join(r))),this.decorations=[this.editContextFormatting,...t,this.computeBlockGapDeco(),this.view.viewState.lineGapDeco];e<this.decorations.length;)this.dynamicDecorationMap[e++]=!1;return this.decorations}scrollIntoView(e){if(e.isSnapshot){let t=this.view.viewState.lineBlockAt(e.range.head);this.view.scrollDOM.scrollTop=t.top-e.yMargin,this.view.scrollDOM.scrollLeft=e.xMargin;return}for(let t of this.view.state.facet(Kq))try{if(t(this.view,e.range,e))return!0}catch(e){EG(this.view.state,e,`scroll handler`)}let{range:t}=e,n=this.coordsAt(t.head,t.empty?t.assoc:t.head>t.anchor?-1:1),r;if(!n)return;!t.empty&&(r=this.coordsAt(t.anchor,t.anchor>t.head?-1:1))&&(n={left:Math.min(n.left,r.left),top:Math.min(n.top,r.top),right:Math.max(n.right,r.right),bottom:Math.max(n.bottom,r.bottom)});let i=OG(this.view),a={left:n.left-i.left,top:n.top-i.top,right:n.right+i.right,bottom:n.bottom+i.bottom},{offsetWidth:o,offsetHeight:s}=this.view.scrollDOM;BW(this.view.scrollDOM,a,t.head<t.anchor?-1:1,e.x,e.y,Math.max(Math.min(e.xMargin,o),-o),Math.max(Math.min(e.yMargin,s),-s),this.view.textDirection==wq.LTR)}lineHasWidget(e){let{i:t}=this.childCursor().findPos(e);if(t==this.children.length)return!1;let n=e=>e instanceof uq||e.children.some(n);return n(this.children[t])}},fJ=class{constructor(){this.changes=[]}compareRange(e,t){fG(e,t,this.changes)}comparePoint(e,t){fG(e,t,this.changes)}boundChange(e){fG(e,e,this.changes)}},pJ=`￿`,mJ=class{constructor(e,t){this.points=e,this.text=``,this.lineSeparator=t.facet(eW.lineSeparator)}append(e){this.text+=e}lineBreak(){this.text+=pJ}readRange(e,t){if(!e)return this;let n=e.parentNode;for(let r=e;;){this.findPointBefore(n,r);let e=this.text.length;this.readNode(r);let i=r.nextSibling;if(i==t)break;let a=aq.get(r),o=aq.get(i);(a&&o?a.breakAfter:(a?a.breakAfter:PW(r))||PW(i)&&(r.nodeName!=`BR`||r.cmIgnore)&&this.text.length>e)&&!tne(i,t)&&this.lineBreak(),r=i}return this.findPointBefore(n,t),this}readTextNode(e){let t=e.nodeValue;for(let n of this.points)n.node==e&&(n.pos=this.text.length+Math.min(n.offset,t.length));for(let n=0,r=this.lineSeparator?null:/\r\n?|\n/g;;){let i=-1,a=1,o;if(this.lineSeparator?(i=t.indexOf(this.lineSeparator,n),a=this.lineSeparator.length):(o=r.exec(t))&&(i=o.index,a=o[0].length),this.append(t.slice(n,i<0?t.length:i)),i<0)break;if(this.lineBreak(),a>1)for(let t of this.points)t.node==e&&t.pos>this.text.length&&(t.pos-=a-1);n=i+a}}readNode(e){if(e.cmIgnore)return;let t=aq.get(e),n=t&&t.overrideDOMText;if(n!=null){this.findPointInside(e,n.length);for(let e=n.iter();!e.next().done;)e.lineBreak?this.lineBreak():this.append(e.value)}else e.nodeType==3?this.readTextNode(e):e.nodeName==`BR`?e.nextSibling&&this.lineBreak():e.nodeType==1&&this.readRange(e.firstChild,null)}findPointBefore(e,t){for(let n of this.points)n.node==e&&e.childNodes[n.offset]==t&&(n.pos=this.text.length)}findPointInside(e,t){for(let n of this.points)(e.nodeType==3?n.node==e:e.contains(n.node))&&(n.pos=this.text.length+(ene(e,n.node,n.offset)?t:0))}},hJ=class{constructor(e,t){this.node=e,this.offset=t,this.pos=-1}},gJ=class{constructor(e,t,n,r){this.typeOver=r,this.bounds=null,this.text=``,this.domChanged=t>-1;let{impreciseHead:i,impreciseAnchor:a}=e.docView;if(e.state.readOnly&&t>-1)this.newSel=null;else if(t>-1&&(this.bounds=e.docView.domBoundsAround(t,n,0))){let t=i||a?[]:rne(e),n=new mJ(t,e.state);n.readRange(this.bounds.startDOM,this.bounds.endDOM),this.text=n.text,this.newSel=ine(t,this.bounds.from)}else{let t=e.observer.selectionRange,n=i&&i.node==t.focusNode&&i.offset==t.focusOffset||!kW(e.contentDOM,t.focusNode)?e.state.selection.main.head:e.docView.posFromDOM(t.focusNode,t.focusOffset),r=a&&a.node==t.anchorNode&&a.offset==t.anchorOffset||!kW(e.contentDOM,t.anchorNode)?e.state.selection.main.anchor:e.docView.posFromDOM(t.anchorNode,t.anchorOffset),o=e.viewport;if(($K.ios||$K.chrome)&&e.state.selection.main.empty&&n!=r&&(o.from>0||o.to<e.state.doc.length)){let t=Math.min(n,r),i=Math.max(n,r),a=o.from-t,s=o.to-i;(a==0||a==1||t==0)&&(s==0||s==-1||i==e.state.doc.length)&&(n=0,r=e.state.doc.length)}e.inputState.composing>-1&&e.state.selection.ranges.length>1?this.newSel=e.state.selection.replaceRange(X.range(r,n)):this.newSel=X.single(r,n)}}},_J=class{setSelectionOrigin(e){this.lastSelectionOrigin=e,this.lastSelectionTime=Date.now()}constructor(e){this.view=e,this.lastKeyCode=0,this.lastKeyTime=0,this.lastTouchTime=0,this.lastFocusTime=0,this.lastScrollTop=0,this.lastScrollLeft=0,this.pendingIOSKey=void 0,this.tabFocusMode=-1,this.lastSelectionOrigin=null,this.lastSelectionTime=0,this.lastContextMenu=0,this.scrollHandlers=[],this.handlers=Object.create(null),this.composing=-1,this.compositionFirstChange=null,this.compositionEndedAt=0,this.compositionPendingKey=!1,this.compositionPendingChange=!1,this.insertingText=``,this.insertingTextAt=0,this.mouseSelection=null,this.draggedContent=null,this.handleEvent=this.handleEvent.bind(this),this.notifiedFocused=e.hasFocus,$K.safari&&e.contentDOM.addEventListener(`input`,()=>null),$K.gecko&&_ne(e.contentDOM.ownerDocument)}handleEvent(e){!une(this.view,e)||this.ignoreDuringComposition(e)||e.type==`keydown`&&this.keydown(e)||(this.view.updateState==0?this.runHandlers(e.type,e):Promise.resolve().then(()=>this.runHandlers(e.type,e)))}runHandlers(e,t){let n=this.handlers[e];if(n){for(let e of n.observers)e(this.view,t);for(let e of n.handlers){if(t.defaultPrevented)break;if(e(this.view,t)){t.preventDefault();break}}}}ensureHandlers(e){let t=ane(e),n=this.handlers,r=this.view.contentDOM;for(let e in t)if(e!=`scroll`){let i=!t[e].handlers.length,a=n[e];a&&i!=!a.handlers.length&&(r.removeEventListener(e,this.handleEvent),a=null),a||r.addEventListener(e,this.handleEvent,{passive:i})}for(let e in n)e!=`scroll`&&!t[e]&&r.removeEventListener(e,this.handleEvent);this.handlers=t}keydown(e){if(this.lastKeyCode=e.keyCode,this.lastKeyTime=Date.now(),e.keyCode==9&&this.tabFocusMode>-1&&(!this.tabFocusMode||Date.now()<=this.tabFocusMode))return!0;if(this.tabFocusMode>0&&e.keyCode!=27&&bJ.indexOf(e.keyCode)<0&&(this.tabFocusMode=-1),$K.android&&$K.chrome&&!e.synthetic&&(e.keyCode==13||e.keyCode==8))return this.view.observer.delayAndroidKey(e.key,e.keyCode),!0;let t;return $K.ios&&!e.synthetic&&!e.altKey&&!e.metaKey&&((t=vJ.find(t=>t.keyCode==e.keyCode))&&!e.ctrlKey||yJ.indexOf(e.key)>-1&&e.ctrlKey&&!e.shiftKey)?(this.pendingIOSKey=t||e,setTimeout(()=>this.flushIOSKey(),250),!0):(e.keyCode!=229&&this.view.observer.forceFlush(),!1)}flushIOSKey(e){let t=this.pendingIOSKey;return!t||t.key==`Enter`&&e&&e.from<e.to&&/^\S+$/.test(e.insert.toString())?!1:(this.pendingIOSKey=void 0,WW(this.view.contentDOM,t.key,t.keyCode,t instanceof KeyboardEvent?t:void 0))}ignoreDuringComposition(e){return!/^key/.test(e.type)||e.synthetic?!1:this.composing>0?!0:$K.safari&&!$K.ios&&this.compositionPendingKey&&Date.now()-this.compositionEndedAt<100?(this.compositionPendingKey=!1,!0):!1}startMouseSelection(e){this.mouseSelection&&this.mouseSelection.destroy(),this.mouseSelection=e}update(e){this.view.observer.update(e),this.mouseSelection&&this.mouseSelection.update(e),this.draggedContent&&e.docChanged&&(this.draggedContent=this.draggedContent.map(e.changes)),e.transactions.length&&(this.lastKeyCode=this.lastSelectionTime=0)}destroy(){this.mouseSelection&&this.mouseSelection.destroy()}},vJ=[{key:`Backspace`,keyCode:8,inputType:`deleteContentBackward`},{key:`Enter`,keyCode:13,inputType:`insertParagraph`},{key:`Enter`,keyCode:13,inputType:`insertLineBreak`},{key:`Delete`,keyCode:46,inputType:`deleteContentForward`}],yJ=`dthko`,bJ=[16,17,18,20,91,92,224,225],xJ=6,SJ=class{constructor(e,t,n,r){this.view=e,this.startEvent=t,this.style=n,this.mustSelect=r,this.scrollSpeed={x:0,y:0},this.scrolling=-1,this.lastEvent=t,this.scrollParents=VW(e.contentDOM),this.atoms=e.state.facet(aJ).map(t=>t(e));let i=e.contentDOM.ownerDocument;i.addEventListener(`mousemove`,this.move=this.move.bind(this)),i.addEventListener(`mouseup`,this.up=this.up.bind(this)),this.extend=t.shiftKey,this.multiple=e.state.facet(eW.allowMultipleSelections)&&sne(e,t),this.dragging=lne(e,t)&&lK(t)==1?null:!1}start(e){this.dragging===!1&&this.select(e)}move(e){if(e.buttons==0)return this.destroy();if(this.dragging||this.dragging==null&&one(this.startEvent,e)<10)return;this.select(this.lastEvent=e);let t=0,n=0,r=0,i=0,a=this.view.win.innerWidth,o=this.view.win.innerHeight;this.scrollParents.x&&({left:r,right:a}=this.scrollParents.x.getBoundingClientRect()),this.scrollParents.y&&({top:i,bottom:o}=this.scrollParents.y.getBoundingClientRect());let s=OG(this.view);e.clientX-s.left<=r+xJ?t=-iK(r-e.clientX):e.clientX+s.right>=a-xJ&&(t=iK(e.clientX-a)),e.clientY-s.top<=i+xJ?n=-iK(i-e.clientY):e.clientY+s.bottom>=o-xJ&&(n=iK(e.clientY-o)),this.setScrollSpeed(t,n)}up(e){this.dragging??this.select(this.lastEvent),this.dragging||e.preventDefault(),this.destroy()}destroy(){this.setScrollSpeed(0,0);let e=this.view.contentDOM.ownerDocument;e.removeEventListener(`mousemove`,this.move),e.removeEventListener(`mouseup`,this.up),this.view.inputState.mouseSelection=this.view.inputState.draggedContent=null}setScrollSpeed(e,t){this.scrollSpeed={x:e,y:t},e||t?this.scrolling<0&&(this.scrolling=setInterval(()=>this.scroll(),50)):this.scrolling>-1&&(clearInterval(this.scrolling),this.scrolling=-1)}scroll(){let{x:e,y:t}=this.scrollSpeed;e&&this.scrollParents.x&&(this.scrollParents.x.scrollLeft+=e,e=0),t&&this.scrollParents.y&&(this.scrollParents.y.scrollTop+=t,t=0),(e||t)&&this.view.win.scrollBy(e,t),this.dragging===!1&&this.select(this.lastEvent)}select(e){let{view:t}=this,n=QG(this.atoms,this.style.get(e,this.extend,this.multiple));(this.mustSelect||!n.eq(t.state.selection,this.dragging===!1))&&this.view.dispatch({selection:n,userEvent:`select.pointer`}),this.mustSelect=!1}update(e){e.transactions.some(e=>e.isUserEvent(`input.type`))?this.destroy():this.style.update(e)&&setTimeout(()=>this.select(this.lastEvent),20)}},CJ=Object.create(null),wJ=Object.create(null),TJ=$K.ie&&$K.ie_version<15||$K.ios&&$K.webkit_version<604,wJ.scroll=e=>{e.inputState.lastScrollTop=e.scrollDOM.scrollTop,e.inputState.lastScrollLeft=e.scrollDOM.scrollLeft},CJ.keydown=(e,t)=>(e.inputState.setSelectionOrigin(`select`),t.keyCode==27&&e.inputState.tabFocusMode!=0&&(e.inputState.tabFocusMode=Date.now()+2e3),!1),wJ.touchstart=(e,t)=>{e.inputState.lastTouchTime=Date.now(),e.inputState.setSelectionOrigin(`select.pointer`)},wJ.touchmove=e=>{e.inputState.setSelectionOrigin(`select.pointer`)},CJ.mousedown=(e,t)=>{if(e.observer.flush(),e.inputState.lastTouchTime>Date.now()-2e3)return!1;let n=null;for(let r of e.state.facet(Lq))if(n=r(e,t),n)break;if(!n&&t.button==0&&(n=pne(e,t)),n){let r=!e.hasFocus;e.inputState.startMouseSelection(new SJ(e,t,n,r)),r&&e.observer.ignore(()=>{HW(e.contentDOM);let t=e.root.activeElement;t&&!t.contains(e.contentDOM)&&t.blur()});let i=e.inputState.mouseSelection;if(i)return i.start(t),i.dragging===!1}else e.inputState.setSelectionOrigin(`select.pointer`);return!1},EJ=(e,t,n)=>t>=n.top&&t<=n.bottom&&e>=n.left&&e<=n.right,DJ=$K.ie&&$K.ie_version<=11,OJ=null,kJ=0,AJ=0,CJ.dragstart=(e,t)=>{let{selection:{main:n}}=e.state;if(t.target.draggable){let r=e.docView.nearest(t.target);if(r&&r.isWidget){let e=r.posAtStart,t=e+r.length;(e>=n.to||t<=n.from)&&(n=X.range(e,t))}}let{inputState:r}=e;return r.mouseSelection&&(r.mouseSelection.dragging=!0),r.draggedContent=n,t.dataTransfer&&(t.dataTransfer.setData(`Text`,aK(e.state,Uq,e.state.sliceDoc(n.from,n.to))),t.dataTransfer.effectAllowed=`copyMove`),!1},CJ.dragend=e=>(e.inputState.draggedContent=null,!1),CJ.drop=(e,t)=>{if(!t.dataTransfer)return!1;if(e.state.readOnly)return!0;let n=t.dataTransfer.files;if(n&&n.length){let r=Array(n.length),i=0,a=()=>{++i==n.length&&uK(e,t,r.filter(e=>e!=null).join(e.state.lineBreak),!1)};for(let e=0;e<n.length;e++){let t=new FileReader;t.onerror=a,t.onload=()=>{/[\x00-\x08\x0e-\x1f]{2}/.test(t.result)||(r[e]=t.result),a()},t.readAsText(n[e])}return!0}else{let n=t.dataTransfer.getData(`Text`);if(n)return uK(e,t,n,!0),!0}return!1},CJ.paste=(e,t)=>{if(e.state.readOnly)return!0;e.observer.flush();let n=TJ?null:t.clipboardData;return n?(oK(e,n.getData(`text/plain`)||n.getData(`text/uri-list`)),!0):(dne(e),!1)},jJ=null,CJ.copy=CJ.cut=(e,t)=>{let{text:n,ranges:r,linewise:i}=gne(e.state);if(!n&&!i)return!1;jJ=i?n:null,t.type==`cut`&&!e.state.readOnly&&e.dispatch({changes:r,scrollIntoView:!0,userEvent:`delete.cut`});let a=TJ?null:t.clipboardData;return a?(a.clearData(),a.setData(`text/plain`,n),!0):(hne(e,n),!1)},MJ=GU.define(),wJ.focus=e=>{e.inputState.lastFocusTime=Date.now(),!e.scrollDOM.scrollTop&&(e.inputState.lastScrollTop||e.inputState.lastScrollLeft)&&(e.scrollDOM.scrollTop=e.inputState.lastScrollTop,e.scrollDOM.scrollLeft=e.inputState.lastScrollLeft),fK(e)},wJ.blur=e=>{e.observer.clearSelectionRange(),fK(e)},wJ.compositionstart=wJ.compositionupdate=e=>{e.observer.editContext||(e.inputState.compositionFirstChange??(e.inputState.compositionFirstChange=!0),e.inputState.composing<0&&(e.inputState.composing=0))},wJ.compositionend=e=>{e.observer.editContext||(e.inputState.composing=-1,e.inputState.compositionEndedAt=Date.now(),e.inputState.compositionPendingKey=!0,e.inputState.compositionPendingChange=e.observer.pendingRecords().length>0,e.inputState.compositionFirstChange=null,$K.chrome&&$K.android?e.observer.flushSoon():e.inputState.compositionPendingChange?Promise.resolve().then(()=>e.observer.flush()):setTimeout(()=>{e.inputState.composing<0&&e.docView.hasComposition&&e.update([])},50))},wJ.contextmenu=e=>{e.inputState.lastContextMenu=Date.now()},CJ.beforeinput=(e,t)=>{if((t.inputType==`insertText`||t.inputType==`insertCompositionText`)&&(e.inputState.insertingText=t.data,e.inputState.insertingTextAt=Date.now()),t.inputType==`insertReplacementText`&&e.observer.editContext){let n=t.dataTransfer?.getData(`text/plain`),r=t.getTargetRanges();if(n&&r.length){let t=r[0];return tK(e,{from:e.posAtDOM(t.startContainer,t.startOffset),to:e.posAtDOM(t.endContainer,t.endOffset),insert:e.state.toText(n)},null),!0}}let n;if($K.chrome&&$K.android&&(n=vJ.find(e=>e.inputType==t.inputType))&&(e.observer.delayAndroidKey(n.key,n.keyCode),n.key==`Backspace`||n.key==`Delete`)){let t=window.visualViewport?.height||0;setTimeout(()=>{(window.visualViewport?.height||0)>t+10&&e.hasFocus&&(e.contentDOM.blur(),e.focus())},100)}return $K.ios&&t.inputType==`deleteContentForward`&&e.observer.flushSoon(),$K.safari&&t.inputType==`insertText`&&e.inputState.composing>=0&&setTimeout(()=>wJ.compositionend(e,t),20),!1},NJ=new Set,PJ=[`pre-wrap`,`normal`,`pre-line`,`break-spaces`],FJ=!1,IJ=class{constructor(e){this.lineWrapping=e,this.doc=mU.empty,this.heightSamples={},this.lineHeight=14,this.charWidth=7,this.textHeight=14,this.lineLength=30}heightForGap(e,t){let n=this.doc.lineAt(t).number-this.doc.lineAt(e).number+1;return this.lineWrapping&&(n+=Math.max(0,Math.ceil((t-e-n*this.lineLength*.5)/this.lineLength))),this.lineHeight*n}heightForLine(e){return this.lineWrapping?(1+Math.max(0,Math.ceil((e-this.lineLength)/Math.max(1,this.lineLength-5))))*this.lineHeight:this.lineHeight}setDoc(e){return this.doc=e,this}mustRefreshForWrapping(e){return PJ.indexOf(e)>-1!=this.lineWrapping}mustRefreshForHeights(e){let t=!1;for(let n=0;n<e.length;n++){let r=e[n];r<0?n++:this.heightSamples[Math.floor(r*10)]||(t=!0,this.heightSamples[Math.floor(r*10)]=!0)}return t}refresh(e,t,n,r,i,a){let o=PJ.indexOf(e)>-1,s=Math.round(t)!=Math.round(this.lineHeight)||this.lineWrapping!=o;if(this.lineWrapping=o,this.lineHeight=t,this.charWidth=n,this.textHeight=r,this.lineLength=i,s){this.heightSamples={};for(let e=0;e<a.length;e++){let t=a[e];t<0?e++:this.heightSamples[Math.floor(t*10)]=!0}}return s}},LJ=class{constructor(e,t){this.from=e,this.heights=t,this.index=0}get more(){return this.index<this.heights.length}},RJ=class e{constructor(e,t,n,r,i){this.from=e,this.length=t,this.top=n,this.height=r,this._content=i}get type(){return typeof this._content==`number`?mq.Text:Array.isArray(this._content)?this._content:this._content.type}get to(){return this.from+this.length}get bottom(){return this.top+this.height}get widget(){return this._content instanceof vq?this._content.widget:null}get widgetLineBreaks(){return typeof this._content==`number`?this._content:0}join(t){let n=(Array.isArray(this._content)?this._content:[this]).concat(Array.isArray(t._content)?t._content:[t]);return new e(this.from,this.length+t.length,this.top,this.height+t.height,n)}},zJ=(function(e){return e[e.ByPos=0]=`ByPos`,e[e.ByHeight=1]=`ByHeight`,e[e.ByPosNoHeight=2]=`ByPosNoHeight`,e})(zJ||(zJ={})),BJ=.001,VJ=class e{constructor(e,t,n=2){this.length=e,this.height=t,this.flags=n}get outdated(){return(this.flags&2)>0}set outdated(e){this.flags=(e?2:0)|this.flags&-3}setHeight(e){this.height!=e&&(Math.abs(this.height-e)>BJ&&(FJ=!0),this.height=e)}replace(t,n,r){return e.of(r)}decomposeLeft(e,t){t.push(this)}decomposeRight(e,t){t.push(this)}applyChanges(e,t,n,r){let i=this,a=n.doc;for(let o=r.length-1;o>=0;o--){let{fromA:s,toA:c,fromB:l,toB:u}=r[o],d=i.lineAt(s,zJ.ByPosNoHeight,n.setDoc(t),0,0),f=d.to>=c?d:i.lineAt(c,zJ.ByPosNoHeight,n,0,0);for(u+=f.to-c,c=f.to;o>0&&d.from<=r[o-1].toA;)s=r[o-1].fromA,l=r[o-1].fromB,o--,s<d.from&&(d=i.lineAt(s,zJ.ByPosNoHeight,n,0,0));l+=d.from-s,s=d.from;let p=qJ.build(n.setDoc(a),e,l,u);i=mK(i,i.replace(s,c,p))}return i.updateHeight(n,0)}static empty(){return new UJ(0,0)}static of(t){if(t.length==1)return t[0];let n=0,r=t.length,i=0,a=0;for(;;)if(n==r)if(i>a*2){let e=t[n-1];e.break?t.splice(--n,1,e.left,null,e.right):t.splice(--n,1,e.left,e.right),r+=1+e.break,i-=e.size}else if(a>i*2){let e=t[r];e.break?t.splice(r,1,e.left,null,e.right):t.splice(r,1,e.left,e.right),r+=2+e.break,a-=e.size}else break;else if(i<a){let e=t[n++];e&&(i+=e.size)}else{let e=t[--r];e&&(a+=e.size)}let o=0;return t[n-1]==null?(o=1,n--):t[n]??(o=1,r++),new GJ(e.of(t.slice(0,n)),o,e.of(t.slice(r)))}},VJ.prototype.size=1,HJ=class extends VJ{constructor(e,t,n){super(e,t),this.deco=n}blockAt(e,t,n,r){return new RJ(r,this.length,n,this.height,this.deco||0)}lineAt(e,t,n,r,i){return this.blockAt(0,n,r,i)}forEachLine(e,t,n,r,i,a){e<=i+this.length&&t>=i&&a(this.blockAt(0,n,r,i))}updateHeight(e,t=0,n=!1,r){return r&&r.from<=t&&r.more&&this.setHeight(r.heights[r.index++]),this.outdated=!1,this}toString(){return`block(${this.length})`}},UJ=class e extends HJ{constructor(e,t){super(e,t,null),this.collapsed=0,this.widgetHeight=0,this.breaks=0}blockAt(e,t,n,r){return new RJ(r,this.length,n,this.height,this.breaks)}replace(t,n,r){let i=r[0];return r.length==1&&(i instanceof e||i instanceof WJ&&i.flags&4)&&Math.abs(this.length-i.length)<10?(i instanceof WJ?i=new e(i.length,this.height):i.height=this.height,this.outdated||(i.outdated=!1),i):VJ.of(r)}updateHeight(e,t=0,n=!1,r){return r&&r.from<=t&&r.more?this.setHeight(r.heights[r.index++]):(n||this.outdated)&&this.setHeight(Math.max(this.widgetHeight,e.heightForLine(this.length-this.collapsed))+this.breaks*e.lineHeight),this.outdated=!1,this}toString(){return`line(${this.length}${this.collapsed?-this.collapsed:``}${this.widgetHeight?`:`+this.widgetHeight:``})`}},WJ=class e extends VJ{constructor(e){super(e,0)}heightMetrics(e,t){let n=e.doc.lineAt(t).number,r=e.doc.lineAt(t+this.length).number,i=r-n+1,a,o=0;if(e.lineWrapping){let t=Math.min(this.height,e.lineHeight*i);a=t/i,this.length>i+1&&(o=(this.height-t)/(this.length-i-1))}else a=this.height/i;return{firstLine:n,lastLine:r,perLine:a,perChar:o}}blockAt(e,t,n,r){let{firstLine:i,lastLine:a,perLine:o,perChar:s}=this.heightMetrics(t,r);if(t.lineWrapping){let i=r+(e<t.lineHeight?0:Math.round(Math.max(0,Math.min(1,(e-n)/this.height))*this.length)),a=t.doc.lineAt(i),c=o+a.length*s,l=Math.max(n,e-c/2);return new RJ(a.from,a.length,l,c,0)}else{let r=Math.max(0,Math.min(a-i,Math.floor((e-n)/o))),{from:s,length:c}=t.doc.line(i+r);return new RJ(s,c,n+o*r,o,0)}}lineAt(e,t,n,r,i){if(t==zJ.ByHeight)return this.blockAt(e,n,r,i);if(t==zJ.ByPosNoHeight){let{from:t,to:r}=n.doc.lineAt(e);return new RJ(t,r-t,0,0,0)}let{firstLine:a,perLine:o,perChar:s}=this.heightMetrics(n,i),c=n.doc.lineAt(e),l=o+c.length*s,u=c.number-a,d=r+o*u+s*(c.from-i-u);return new RJ(c.from,c.length,Math.max(r,Math.min(d,r+this.height-l)),l,0)}forEachLine(e,t,n,r,i,a){e=Math.max(e,i),t=Math.min(t,i+this.length);let{firstLine:o,perLine:s,perChar:c}=this.heightMetrics(n,i);for(let l=e,u=r;l<=t;){let t=n.doc.lineAt(l);if(l==e){let n=t.number-o;u+=s*n+c*(e-i-n)}let r=s+c*t.length;a(new RJ(t.from,t.length,u,r,0)),u+=r,l=t.to+1}}replace(t,n,r){let i=this.length-n;if(i>0){let t=r[r.length-1];t instanceof e?r[r.length-1]=new e(t.length+i):r.push(null,new e(i-1))}if(t>0){let n=r[0];n instanceof e?r[0]=new e(t+n.length):r.unshift(new e(t-1),null)}return VJ.of(r)}decomposeLeft(t,n){n.push(new e(t-1),null)}decomposeRight(t,n){n.push(null,new e(this.length-t-1))}updateHeight(t,n=0,r=!1,i){let a=n+this.length;if(i&&i.from<=n+this.length&&i.more){let r=[],o=Math.max(n,i.from),s=-1;for(i.from>n&&r.push(new e(i.from-n-1).updateHeight(t,n));o<=a&&i.more;){let e=t.doc.lineAt(o).length;r.length&&r.push(null);let n=i.heights[i.index++];s==-1?s=n:Math.abs(n-s)>=BJ&&(s=-2);let a=new UJ(e,n);a.outdated=!1,r.push(a),o+=e+1}o<=a&&r.push(null,new e(a-o).updateHeight(t,o));let c=VJ.of(r);return(s<0||Math.abs(c.height-this.height)>=BJ||Math.abs(s-this.heightMetrics(t,n).perLine)>=BJ)&&(FJ=!0),mK(this,c)}else(r||this.outdated)&&(this.setHeight(t.heightForGap(n,n+this.length)),this.outdated=!1);return this}toString(){return`gap(${this.length})`}},GJ=class extends VJ{constructor(e,t,n){super(e.length+t+n.length,e.height+n.height,t|(e.outdated||n.outdated?2:0)),this.left=e,this.right=n,this.size=e.size+n.size}get break(){return this.flags&1}blockAt(e,t,n,r){let i=n+this.left.height;return e<i?this.left.blockAt(e,t,n,r):this.right.blockAt(e,t,i,r+this.left.length+this.break)}lineAt(e,t,n,r,i){let a=r+this.left.height,o=i+this.left.length+this.break,s=t==zJ.ByHeight?e<a:e<o,c=s?this.left.lineAt(e,t,n,r,i):this.right.lineAt(e,t,n,a,o);if(this.break||(s?c.to<o:c.from>o))return c;let l=t==zJ.ByPosNoHeight?zJ.ByPosNoHeight:zJ.ByPos;return s?c.join(this.right.lineAt(o,l,n,a,o)):this.left.lineAt(o,l,n,r,i).join(c)}forEachLine(e,t,n,r,i,a){let o=r+this.left.height,s=i+this.left.length+this.break;if(this.break)e<s&&this.left.forEachLine(e,t,n,r,i,a),t>=s&&this.right.forEachLine(e,t,n,o,s,a);else{let c=this.lineAt(s,zJ.ByPos,n,r,i);e<c.from&&this.left.forEachLine(e,c.from-1,n,r,i,a),c.to>=e&&c.from<=t&&a(c),t>c.to&&this.right.forEachLine(c.to+1,t,n,o,s,a)}}replace(e,t,n){let r=this.left.length+this.break;if(t<r)return this.balanced(this.left.replace(e,t,n),this.right);if(e>this.left.length)return this.balanced(this.left,this.right.replace(e-r,t-r,n));let i=[];e>0&&this.decomposeLeft(e,i);let a=i.length;for(let e of n)i.push(e);if(e>0&&hK(i,a-1),t<this.length){let e=i.length;this.decomposeRight(t,i),hK(i,e)}return VJ.of(i)}decomposeLeft(e,t){let n=this.left.length;if(e<=n)return this.left.decomposeLeft(e,t);t.push(this.left),this.break&&(n++,e>=n&&t.push(null)),e>n&&this.right.decomposeLeft(e-n,t)}decomposeRight(e,t){let n=this.left.length,r=n+this.break;if(e>=r)return this.right.decomposeRight(e-r,t);e<n&&this.left.decomposeRight(e,t),this.break&&e<r&&t.push(null),t.push(this.right)}balanced(e,t){return e.size>2*t.size||t.size>2*e.size?VJ.of(this.break?[e,null,t]:[e,t]):(this.left=mK(this.left,e),this.right=mK(this.right,t),this.setHeight(e.height+t.height),this.outdated=e.outdated||t.outdated,this.size=e.size+t.size,this.length=e.length+this.break+t.length,this)}updateHeight(e,t=0,n=!1,r){let{left:i,right:a}=this,o=t+i.length+this.break,s=null;return r&&r.from<=t+i.length&&r.more?s=i=i.updateHeight(e,t,n,r):i.updateHeight(e,t,n),r&&r.from<=o+a.length&&r.more?s=a=a.updateHeight(e,o,n,r):a.updateHeight(e,o,n),s?this.balanced(i,a):(this.height=this.left.height+this.right.height,this.outdated=!1,this)}toString(){return this.left+(this.break?` `:`-`)+this.right}},KJ=5,qJ=class e{constructor(e,t){this.pos=e,this.oracle=t,this.nodes=[],this.lineStart=-1,this.lineEnd=-1,this.covering=null,this.writtenTo=e}get isCovered(){return this.covering&&this.nodes[this.nodes.length-1]==this.covering}span(e,t){if(this.lineStart>-1){let e=Math.min(t,this.lineEnd),n=this.nodes[this.nodes.length-1];n instanceof UJ?n.length+=e-this.pos:(e>this.pos||!this.isCovered)&&this.nodes.push(new UJ(e-this.pos,-1)),this.writtenTo=e,t>e&&(this.nodes.push(null),this.writtenTo++,this.lineStart=-1)}this.pos=t}point(e,t,n){if(e<t||n.heightRelevant){let r=n.widget?n.widget.estimatedHeight:0,i=n.widget?n.widget.lineBreaks:0;r<0&&(r=this.oracle.lineHeight);let a=t-e;n.block?this.addBlock(new HJ(a,r,n)):(a||i||r>=KJ)&&this.addLineDeco(r,i,a)}else t>e&&this.span(e,t);this.lineEnd>-1&&this.lineEnd<this.pos&&(this.lineEnd=this.oracle.doc.lineAt(this.pos).to)}enterLine(){if(this.lineStart>-1)return;let{from:e,to:t}=this.oracle.doc.lineAt(this.pos);this.lineStart=e,this.lineEnd=t,this.writtenTo<e&&((this.writtenTo<e-1||this.nodes[this.nodes.length-1]==null)&&this.nodes.push(this.blankContent(this.writtenTo,e-1)),this.nodes.push(null)),this.pos>e&&this.nodes.push(new UJ(this.pos-e,-1)),this.writtenTo=this.pos}blankContent(e,t){let n=new WJ(t-e);return this.oracle.doc.lineAt(e).to==t&&(n.flags|=4),n}ensureLine(){this.enterLine();let e=this.nodes.length?this.nodes[this.nodes.length-1]:null;if(e instanceof UJ)return e;let t=new UJ(0,-1);return this.nodes.push(t),t}addBlock(e){this.enterLine();let t=e.deco;t&&t.startSide>0&&!this.isCovered&&this.ensureLine(),this.nodes.push(e),this.writtenTo=this.pos+=e.length,t&&t.endSide>0&&(this.covering=e)}addLineDeco(e,t,n){let r=this.ensureLine();r.length+=n,r.collapsed+=n,r.widgetHeight=Math.max(r.widgetHeight,e),r.breaks+=t,this.writtenTo=this.pos+=n}finish(e){let t=this.nodes.length==0?null:this.nodes[this.nodes.length-1];this.lineStart>-1&&!(t instanceof UJ)&&!this.isCovered?this.nodes.push(new UJ(0,-1)):(this.writtenTo<this.pos||t==null)&&this.nodes.push(this.blankContent(this.writtenTo,this.pos));let n=e;for(let e of this.nodes)e instanceof UJ&&e.updateHeight(this.oracle,n),n+=e?e.length:1;return this.nodes}static build(t,n,r,i){let a=new e(r,t);return iW.spans(n,r,i,a,0),a.finish(r)}},JJ=class{constructor(){this.changes=[]}compareRange(){}comparePoint(e,t,n,r){(e<t||n&&n.heightRelevant||r&&r.heightRelevant)&&fG(e,t,this.changes,5)}},YJ=class{constructor(e,t,n,r){this.from=e,this.to=t,this.size=n,this.displaySize=r}static same(e,t){if(e.length!=t.length)return!1;for(let n=0;n<e.length;n++){let r=e[n],i=t[n];if(r.from!=i.from||r.to!=i.to||r.size!=i.size)return!1}return!0}draw(e,t){return hq.replace({widget:new XJ(this.displaySize*(t?e.scaleY:e.scaleX),t)}).range(this.from,this.to)}},XJ=class extends pq{constructor(e,t){super(),this.size=e,this.vertical=t}eq(e){return e.size==this.size&&e.vertical==this.vertical}toDOM(){let e=document.createElement(`div`);return this.vertical?e.style.height=this.size+`px`:(e.style.width=this.size+`px`,e.style.height=`2px`,e.style.display=`inline-block`),e}get estimatedHeight(){return this.vertical?this.size:-1}},ZJ=class{constructor(e){this.state=e,this.pixelViewport={left:0,right:window.innerWidth,top:0,bottom:0},this.inView=!0,this.paddingTop=0,this.paddingBottom=0,this.contentDOMWidth=0,this.contentDOMHeight=0,this.editorHeight=0,this.editorWidth=0,this.scrollTop=0,this.scrolledToBottom=!1,this.scaleX=1,this.scaleY=1,this.scrollAnchorPos=0,this.scrollAnchorHeight=-1,this.scaler=$J,this.scrollTarget=null,this.printing=!1,this.mustMeasureContent=!0,this.defaultTextDirection=wq.LTR,this.visibleRanges=[],this.mustEnforceCursorAssoc=!1;let t=e.facet(nJ).some(e=>typeof e!=`function`&&e.class==`cm-lineWrapping`);this.heightOracle=new IJ(t),this.stateDeco=e.facet(rJ).filter(e=>typeof e!=`function`),this.heightMap=VJ.empty().applyChanges(this.stateDeco,mU.empty,this.heightOracle.setDoc(e.doc),[new lJ(0,0,0,e.doc.length)]);for(let e=0;e<2&&(this.viewport=this.getViewport(0,null),this.updateForViewport());e++);this.updateViewportLines(),this.lineGaps=this.ensureLineGaps([]),this.lineGapDeco=hq.set(this.lineGaps.map(e=>e.draw(this,!1))),this.computeVisibleRanges()}updateForViewport(){let e=[this.viewport],{main:t}=this.state.selection;for(let n=0;n<=1;n++){let r=n?t.head:t.anchor;if(!e.some(({from:e,to:t})=>r>=e&&r<=t)){let{from:t,to:n}=this.lineBlockAt(r);e.push(new QJ(t,n))}}return this.viewports=e.sort((e,t)=>e.from-t.from),this.updateScaler()}updateScaler(){let e=this.scaler;return this.scaler=this.heightMap.height<=7e6?$J:new eY(this.heightOracle,this.heightMap,this.viewports),e.eq(this.scaler)?0:2}updateViewportLines(){this.viewportLines=[],this.heightMap.forEachLine(this.viewport.from,this.viewport.to,this.heightOracle.setDoc(this.state.doc),0,0,e=>{this.viewportLines.push(vK(e,this.scaler))})}update(e,t=null){this.state=e.state;let n=this.stateDeco;this.stateDeco=this.state.facet(rJ).filter(e=>typeof e!=`function`);let r=e.changedRanges,i=lJ.extendWithRanges(r,vne(n,this.stateDeco,e?e.changes:wU.empty(this.state.doc.length))),a=this.heightMap.height,o=this.scrolledToBottom?null:this.scrollAnchorAt(this.scrollTop);pK(),this.heightMap=this.heightMap.applyChanges(this.stateDeco,e.startState.doc,this.heightOracle.setDoc(this.state.doc),i),(this.heightMap.height!=a||FJ)&&(e.flags|=2),o?(this.scrollAnchorPos=e.changes.mapPos(o.from,-1),this.scrollAnchorHeight=o.top):(this.scrollAnchorPos=-1,this.scrollAnchorHeight=a);let s=i.length?this.mapViewport(this.viewport,e.changes):this.viewport;(t&&(t.range.head<s.from||t.range.head>s.to)||!this.viewportIsAppropriate(s))&&(s=this.getViewport(0,t));let c=s.from!=this.viewport.from||s.to!=this.viewport.to;this.viewport=s,e.flags|=this.updateForViewport(),(c||!e.changes.empty||e.flags&2)&&this.updateViewportLines(),(this.lineGaps.length||this.viewport.to-this.viewport.from>4e3)&&this.updateLineGaps(this.ensureLineGaps(this.mapLineGaps(this.lineGaps,e.changes))),e.flags|=this.computeVisibleRanges(e.changes),t&&(this.scrollTarget=t),!this.mustEnforceCursorAssoc&&e.selectionSet&&e.view.lineWrapping&&e.state.selection.main.empty&&e.state.selection.main.assoc&&!e.state.facet(Gq)&&(this.mustEnforceCursorAssoc=!0)}measure(e){let t=e.contentDOM,n=window.getComputedStyle(t),r=this.heightOracle,i=n.whiteSpace;this.defaultTextDirection=n.direction==`rtl`?wq.RTL:wq.LTR;let a=this.heightOracle.mustRefreshForWrapping(i),o=t.getBoundingClientRect(),s=a||this.mustMeasureContent||this.contentDOMHeight!=o.height;this.contentDOMHeight=o.height,this.mustMeasureContent=!1;let c=0,l=0;if(o.width&&o.height){let{scaleX:e,scaleY:n}=zW(t,o);(e>.005&&Math.abs(this.scaleX-e)>.005||n>.005&&Math.abs(this.scaleY-n)>.005)&&(this.scaleX=e,this.scaleY=n,c|=16,a=s=!0)}let u=(parseInt(n.paddingTop)||0)*this.scaleY,d=(parseInt(n.paddingBottom)||0)*this.scaleY;(this.paddingTop!=u||this.paddingBottom!=d)&&(this.paddingTop=u,this.paddingBottom=d,c|=18),this.editorWidth!=e.scrollDOM.clientWidth&&(r.lineWrapping&&(s=!0),this.editorWidth=e.scrollDOM.clientWidth,c|=16);let f=e.scrollDOM.scrollTop*this.scaleY;this.scrollTop!=f&&(this.scrollAnchorHeight=-1,this.scrollTop=f),this.scrolledToBottom=JW(e.scrollDOM);let p=(this.printing?xne:yne)(t,this.paddingTop),m=p.top-this.pixelViewport.top,h=p.bottom-this.pixelViewport.bottom;this.pixelViewport=p;let g=this.pixelViewport.bottom>this.pixelViewport.top&&this.pixelViewport.right>this.pixelViewport.left;if(g!=this.inView&&(this.inView=g,g&&(s=!0)),!this.inView&&!this.scrollTarget&&!bne(e.dom))return 0;let _=o.width;if((this.contentDOMWidth!=_||this.editorHeight!=e.scrollDOM.clientHeight)&&(this.contentDOMWidth=o.width,this.editorHeight=e.scrollDOM.clientHeight,c|=16),s){let t=e.docView.measureVisibleLineHeights(this.viewport);if(r.mustRefreshForHeights(t)&&(a=!0),a||r.lineWrapping&&Math.abs(_-this.contentDOMWidth)>r.charWidth){let{lineHeight:n,charWidth:o,textHeight:s}=e.docView.measureTextSize();a=n>0&&r.refresh(i,n,o,s,Math.max(5,_/o),t),a&&(e.docView.minWidth=0,c|=16)}m>0&&h>0?l=Math.max(m,h):m<0&&h<0&&(l=Math.min(m,h)),pK();for(let n of this.viewports){let i=n.from==this.viewport.from?t:e.docView.measureVisibleLineHeights(n);this.heightMap=(a?VJ.empty().applyChanges(this.stateDeco,mU.empty,this.heightOracle,[new lJ(0,0,0,e.state.doc.length)]):this.heightMap).updateHeight(r,0,a,new LJ(n.from,i))}FJ&&(c|=2)}let v=!this.viewportIsAppropriate(this.viewport,l)||this.scrollTarget&&(this.scrollTarget.range.head<this.viewport.from||this.scrollTarget.range.head>this.viewport.to);return v&&(c&2&&(c|=this.updateScaler()),this.viewport=this.getViewport(l,this.scrollTarget),c|=this.updateForViewport()),(c&2||v)&&this.updateViewportLines(),(this.lineGaps.length||this.viewport.to-this.viewport.from>4e3)&&this.updateLineGaps(this.ensureLineGaps(a?[]:this.lineGaps,e)),c|=this.computeVisibleRanges(),this.mustEnforceCursorAssoc&&(this.mustEnforceCursorAssoc=!1,e.docView.enforceCursorAssoc()),c}get visibleTop(){return this.scaler.fromDOM(this.pixelViewport.top)}get visibleBottom(){return this.scaler.fromDOM(this.pixelViewport.bottom)}getViewport(e,t){let n=.5-Math.max(-.5,Math.min(.5,e/1e3/2)),r=this.heightMap,i=this.heightOracle,{visibleTop:a,visibleBottom:o}=this,s=new QJ(r.lineAt(a-n*1e3,zJ.ByHeight,i,0,0).from,r.lineAt(o+(1-n)*1e3,zJ.ByHeight,i,0,0).to);if(t){let{head:e}=t.range;if(e<s.from||e>s.to){let n=Math.min(this.editorHeight,this.pixelViewport.bottom-this.pixelViewport.top),a=r.lineAt(e,zJ.ByPos,i,0,0),o;o=t.y==`center`?(a.top+a.bottom)/2-n/2:t.y==`start`||t.y==`nearest`&&e<s.from?a.top:a.bottom-n,s=new QJ(r.lineAt(o-1e3/2,zJ.ByHeight,i,0,0).from,r.lineAt(o+n+1e3/2,zJ.ByHeight,i,0,0).to)}}return s}mapViewport(e,t){let n=t.mapPos(e.from,-1),r=t.mapPos(e.to,1);return new QJ(this.heightMap.lineAt(n,zJ.ByPos,this.heightOracle,0,0).from,this.heightMap.lineAt(r,zJ.ByPos,this.heightOracle,0,0).to)}viewportIsAppropriate({from:e,to:t},n=0){if(!this.inView)return!0;let{top:r}=this.heightMap.lineAt(e,zJ.ByPos,this.heightOracle,0,0),{bottom:i}=this.heightMap.lineAt(t,zJ.ByPos,this.heightOracle,0,0),{visibleTop:a,visibleBottom:o}=this;return(e==0||r<=a-Math.max(10,Math.min(-n,250)))&&(t==this.state.doc.length||i>=o+Math.max(10,Math.min(n,250)))&&r>a-2*1e3&&i<o+2*1e3}mapLineGaps(e,t){if(!e.length||t.empty)return e;let n=[];for(let r of e)t.touchesRange(r.from,r.to)||n.push(new YJ(t.mapPos(r.from),t.mapPos(r.to),r.size,r.displaySize));return n}ensureLineGaps(e,t){let n=this.heightOracle.lineWrapping,r=n?1e4:2e3,i=r>>1,a=r<<1;if(this.defaultTextDirection!=wq.LTR&&!n)return[];let o=[],s=(r,a,c,l)=>{if(a-r<i)return;let u=this.state.selection.main,d=[u.from];u.empty||d.push(u.to);for(let e of d)if(e>r&&e<a){s(r,e-10,c,l),s(e+10,a,c,l);return}let f=Cne(e,e=>e.from>=c.from&&e.to<=c.to&&Math.abs(e.from-r)<i&&Math.abs(e.to-a)<i&&!d.some(t=>e.from<t&&e.to>t));if(!f){if(a<c.to&&t&&n&&t.visibleRanges.some(e=>e.from<=a&&e.to>=a)){let e=t.moveToLineBoundary(X.cursor(a),!1,!0).head;e>r&&(a=e)}let e=this.gapSize(c,r,a,l);f=new YJ(r,a,e,n||e<2e6?e:2e6)}o.push(f)},c=t=>{if(t.length<a||t.type!=mq.Text)return;let i=Sne(t.from,t.to,this.stateDeco);if(i.total<a)return;let o=this.scrollTarget?this.scrollTarget.range.head:null,c,l;if(n){let e=r/this.heightOracle.lineLength*this.heightOracle.lineHeight,n,a;if(o!=null){let r=_K(i,o),s=((this.visibleBottom-this.visibleTop)/2+e)/t.height;n=r-s,a=r+s}else n=(this.visibleTop-t.top-e)/t.height,a=(this.visibleBottom-t.top+e)/t.height;c=gK(i,n),l=gK(i,a)}else{let n=i.total*this.heightOracle.charWidth,a=r*this.heightOracle.charWidth,s=0;if(n>2e6)for(let n of e)n.from>=t.from&&n.from<t.to&&n.size!=n.displaySize&&n.from*this.heightOracle.charWidth+s<this.pixelViewport.left&&(s=n.size-n.displaySize);let u=this.pixelViewport.left+s,d=this.pixelViewport.right+s,f,p;if(o!=null){let e=_K(i,o),t=((d-u)/2+a)/n;f=e-t,p=e+t}else f=(u-a)/n,p=(d+a)/n;c=gK(i,f),l=gK(i,p)}c>t.from&&s(t.from,c,t,i),l<t.to&&s(l,t.to,t,i)};for(let e of this.viewportLines)Array.isArray(e.type)?e.type.forEach(c):c(e);return o}gapSize(e,t,n,r){let i=_K(r,n)-_K(r,t);return this.heightOracle.lineWrapping?e.height*i:r.total*this.heightOracle.charWidth*i}updateLineGaps(e){YJ.same(e,this.lineGaps)||(this.lineGaps=e,this.lineGapDeco=hq.set(e.map(e=>e.draw(this,this.heightOracle.lineWrapping))))}computeVisibleRanges(e){let t=this.stateDeco;this.lineGaps.length&&(t=t.concat(this.lineGapDeco));let n=[];iW.spans(t,this.viewport.from,this.viewport.to,{span(e,t){n.push({from:e,to:t})},point(){}},20);let r=0;if(n.length!=this.visibleRanges.length)r=12;else for(let t=0;t<n.length&&!(r&8);t++){let i=this.visibleRanges[t],a=n[t];(i.from!=a.from||i.to!=a.to)&&(r|=4,e&&e.mapPos(i.from,-1)==a.from&&e.mapPos(i.to,1)==a.to||(r|=8))}return this.visibleRanges=n,r}lineBlockAt(e){return e>=this.viewport.from&&e<=this.viewport.to&&this.viewportLines.find(t=>t.from<=e&&t.to>=e)||vK(this.heightMap.lineAt(e,zJ.ByPos,this.heightOracle,0,0),this.scaler)}lineBlockAtHeight(e){return e>=this.viewportLines[0].top&&e<=this.viewportLines[this.viewportLines.length-1].bottom&&this.viewportLines.find(t=>t.top<=e&&t.bottom>=e)||vK(this.heightMap.lineAt(this.scaler.fromDOM(e),zJ.ByHeight,this.heightOracle,0,0),this.scaler)}scrollAnchorAt(e){let t=this.lineBlockAtHeight(e+8);return t.from>=this.viewport.from||this.viewportLines[0].top-e>200?t:this.viewportLines[0]}elementAtHeight(e){return vK(this.heightMap.blockAt(this.scaler.fromDOM(e),this.heightOracle,0,0),this.scaler)}get docHeight(){return this.scaler.toDOM(this.heightMap.height)}get contentHeight(){return this.docHeight+this.paddingTop+this.paddingBottom}},QJ=class{constructor(e,t){this.from=e,this.to=t}},$J={toDOM(e){return e},fromDOM(e){return e},scale:1,eq(e){return e==this}},eY=class e{constructor(e,t,n){let r=0,i=0,a=0;this.viewports=n.map(({from:n,to:i})=>{let a=t.lineAt(n,zJ.ByPos,e,0,0).top,o=t.lineAt(i,zJ.ByPos,e,0,0).bottom;return r+=o-a,{from:n,to:i,top:a,bottom:o,domTop:0,domBottom:0}}),this.scale=(7e6-r)/(t.height-r);for(let e of this.viewports)e.domTop=a+(e.top-i)*this.scale,a=e.domBottom=e.domTop+(e.bottom-e.top),i=e.bottom}toDOM(e){for(let t=0,n=0,r=0;;t++){let i=t<this.viewports.length?this.viewports[t]:null;if(!i||e<i.top)return r+(e-n)*this.scale;if(e<=i.bottom)return i.domTop+(e-i.top);n=i.bottom,r=i.domBottom}}fromDOM(e){for(let t=0,n=0,r=0;;t++){let i=t<this.viewports.length?this.viewports[t]:null;if(!i||e<i.domTop)return n+(e-r)/this.scale;if(e<=i.domBottom)return i.top+(e-i.domTop);n=i.bottom,r=i.domBottom}}eq(t){return t instanceof e&&this.scale==t.scale&&this.viewports.length==t.viewports.length&&this.viewports.every((e,n)=>e.from==t.viewports[n].from&&e.to==t.viewports[n].to)}},tY=OU.define({combine:e=>e.join(` `)}),nY=OU.define({combine:e=>e.indexOf(!0)>-1}),rY=mW.newName(),iY=mW.newName(),aY=mW.newName(),oY={"&light":`.`+iY,"&dark":`.`+aY},sY=yK(`.`+rY,{"&":{position:`relative !important`,boxSizing:`border-box`,"&.cm-focused":{outline:`1px dotted #212121`},display:`flex !important`,flexDirection:`column`},".cm-scroller":{display:`flex !important`,alignItems:`flex-start !important`,fontFamily:`monospace`,lineHeight:1.4,height:`100%`,overflowX:`auto`,position:`relative`,zIndex:0,overflowAnchor:`none`},".cm-content":{margin:0,flexGrow:2,flexShrink:0,display:`block`,whiteSpace:`pre`,wordWrap:`normal`,boxSizing:`border-box`,minHeight:`100%`,padding:`4px 0`,outline:`none`,"&[contenteditable=true]":{WebkitUserModify:`read-write-plaintext-only`}},".cm-lineWrapping":{whiteSpace_fallback:`pre-wrap`,whiteSpace:`break-spaces`,wordBreak:`break-word`,overflowWrap:`anywhere`,flexShrink:1},"&light .cm-content":{caretColor:`black`},"&dark .cm-content":{caretColor:`white`},".cm-line":{display:`block`,padding:`0 2px 0 6px`},".cm-layer":{position:`absolute`,left:0,top:0,contain:`size style`,"& > *":{position:`absolute`}},"&light .cm-selectionBackground":{background:`#d9d9d9`},"&dark .cm-selectionBackground":{background:`#222`},"&light.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground":{background:`#d7d4f0`},"&dark.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground":{background:`#233`},".cm-cursorLayer":{pointerEvents:`none`},"&.cm-focused > .cm-scroller > .cm-cursorLayer":{animation:`steps(1) cm-blink 1.2s infinite`},"@keyframes cm-blink":{"0%":{},"50%":{opacity:0},"100%":{}},"@keyframes cm-blink2":{"0%":{},"50%":{opacity:0},"100%":{}},".cm-cursor, .cm-dropCursor":{borderLeft:`1.2px solid black`,marginLeft:`-0.6px`,pointerEvents:`none`},".cm-cursor":{display:`none`},"&dark .cm-cursor":{borderLeftColor:`#ddd`},".cm-dropCursor":{position:`absolute`},"&.cm-focused > .cm-scroller > .cm-cursorLayer .cm-cursor":{display:`block`},".cm-iso":{unicodeBidi:`isolate`},".cm-announced":{position:`fixed`,top:`-10000px`},"@media print":{".cm-announced":{display:`none`}},"&light .cm-activeLine":{backgroundColor:`#cceeff44`},"&dark .cm-activeLine":{backgroundColor:`#99eeff33`},"&light .cm-specialChar":{color:`red`},"&dark .cm-specialChar":{color:`#f78`},".cm-gutters":{flexShrink:0,display:`flex`,height:`100%`,boxSizing:`border-box`,zIndex:200},".cm-gutters-before":{insetInlineStart:0},".cm-gutters-after":{insetInlineEnd:0},"&light .cm-gutters":{backgroundColor:`#f5f5f5`,color:`#6c6c6c`,border:`0px solid #ddd`,"&.cm-gutters-before":{borderRightWidth:`1px`},"&.cm-gutters-after":{borderLeftWidth:`1px`}},"&dark .cm-gutters":{backgroundColor:`#333338`,color:`#ccc`},".cm-gutter":{display:`flex !important`,flexDirection:`column`,flexShrink:0,boxSizing:`border-box`,minHeight:`100%`,overflow:`hidden`},".cm-gutterElement":{boxSizing:`border-box`},".cm-lineNumbers .cm-gutterElement":{padding:`0 3px 0 5px`,minWidth:`20px`,textAlign:`right`,whiteSpace:`nowrap`},"&light .cm-activeLineGutter":{backgroundColor:`#e2f2ff`},"&dark .cm-activeLineGutter":{backgroundColor:`#222227`},".cm-panels":{boxSizing:`border-box`,position:`sticky`,left:0,right:0,zIndex:300},"&light .cm-panels":{backgroundColor:`#f5f5f5`,color:`black`},"&light .cm-panels-top":{borderBottom:`1px solid #ddd`},"&light .cm-panels-bottom":{borderTop:`1px solid #ddd`},"&dark .cm-panels":{backgroundColor:`#333338`,color:`white`},".cm-dialog":{padding:`2px 19px 4px 6px`,position:`relative`,"& label":{fontSize:`80%`}},".cm-dialog-close":{position:`absolute`,top:`3px`,right:`4px`,backgroundColor:`inherit`,border:`none`,font:`inherit`,fontSize:`14px`,padding:`0`},".cm-tab":{display:`inline-block`,overflow:`hidden`,verticalAlign:`bottom`},".cm-widgetBuffer":{verticalAlign:`text-top`,height:`1em`,width:0,display:`inline`},".cm-placeholder":{color:`#888`,display:`inline-block`,verticalAlign:`top`,userSelect:`none`},".cm-highlightSpace":{backgroundImage:`radial-gradient(circle at 50% 55%, #aaa 20%, transparent 5%)`,backgroundPosition:`center`},".cm-highlightTab":{backgroundImage:`url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="200" height="20"><path stroke="%23888" stroke-width="1" fill="none" d="M1 10H196L190 5M190 15L196 10M197 4L197 16"/></svg>')`,backgroundSize:`auto 100%`,backgroundPosition:`right 90%`,backgroundRepeat:`no-repeat`},".cm-trailingSpace":{backgroundColor:`#ff332255`},".cm-button":{verticalAlign:`middle`,color:`inherit`,fontSize:`70%`,padding:`.2em 1em`,borderRadius:`1px`},"&light .cm-button":{backgroundImage:`linear-gradient(#eff1f5, #d9d9df)`,border:`1px solid #888`,"&:active":{backgroundImage:`linear-gradient(#b4b4b4, #d0d3d6)`}},"&dark .cm-button":{backgroundImage:`linear-gradient(#393939, #111)`,border:`1px solid #888`,"&:active":{backgroundImage:`linear-gradient(#111, #333)`}},".cm-textfield":{verticalAlign:`middle`,color:`inherit`,fontSize:`70%`,border:`1px solid silver`,padding:`.2em .5em`},"&light .cm-textfield":{backgroundColor:`white`},"&dark .cm-textfield":{border:`1px solid #555`,backgroundColor:`inherit`}},oY),cY={childList:!0,characterData:!0,subtree:!0,attributes:!0,characterDataOldValue:!0},lY=$K.ie&&$K.ie_version<=11,uY=class{constructor(e){this.view=e,this.active=!1,this.editContext=null,this.selectionRange=new eq,this.selectionChanged=!1,this.delayedFlush=-1,this.resizeTimeout=-1,this.queue=[],this.delayedAndroidKey=null,this.flushingAndroidKey=-1,this.lastChange=0,this.scrollTargets=[],this.intersection=null,this.resizeScroll=null,this.intersecting=!1,this.gapIntersection=null,this.gaps=[],this.printQuery=null,this.parentCheck=-1,this.dom=e.contentDOM,this.observer=new MutationObserver(t=>{for(let e of t)this.queue.push(e);($K.ie&&$K.ie_version<=11||$K.ios&&e.composing)&&t.some(e=>e.type==`childList`&&e.removedNodes.length||e.type==`characterData`&&e.oldValue.length>e.target.nodeValue.length)?this.flushSoon():this.flush()}),window.EditContext&&$K.android&&e.constructor.EDIT_CONTEXT!==!1&&!($K.chrome&&$K.chrome_version<126)&&(this.editContext=new dY(e),e.state.facet(Xq)&&(e.contentDOM.editContext=this.editContext.editContext)),lY&&(this.onCharData=e=>{this.queue.push({target:e.target,type:`characterData`,oldValue:e.prevValue}),this.flushSoon()}),this.onSelectionChange=this.onSelectionChange.bind(this),this.onResize=this.onResize.bind(this),this.onPrint=this.onPrint.bind(this),this.onScroll=this.onScroll.bind(this),window.matchMedia&&(this.printQuery=window.matchMedia(`print`)),typeof ResizeObserver==`function`&&(this.resizeScroll=new ResizeObserver(()=>{this.view.docView?.lastUpdate<Date.now()-75&&this.onResize()}),this.resizeScroll.observe(e.scrollDOM)),this.addWindowListeners(this.win=e.win),this.start(),typeof IntersectionObserver==`function`&&(this.intersection=new IntersectionObserver(e=>{this.parentCheck<0&&(this.parentCheck=setTimeout(this.listenForScroll.bind(this),1e3)),e.length>0&&e[e.length-1].intersectionRatio>0!=this.intersecting&&(this.intersecting=!this.intersecting,this.intersecting!=this.view.inView&&this.onScrollChanged(document.createEvent(`Event`)))},{threshold:[0,.001]}),this.intersection.observe(this.dom),this.gapIntersection=new IntersectionObserver(e=>{e.length>0&&e[e.length-1].intersectionRatio>0&&this.onScrollChanged(document.createEvent(`Event`))},{})),this.listenForScroll(),this.readSelectionRange()}onScrollChanged(e){this.view.inputState.runHandlers(`scroll`,e),this.intersecting&&this.view.measure()}onScroll(e){this.intersecting&&this.flush(!1),this.editContext&&this.view.requestMeasure(this.editContext.measureReq),this.onScrollChanged(e)}onResize(){this.resizeTimeout<0&&(this.resizeTimeout=setTimeout(()=>{this.resizeTimeout=-1,this.view.requestMeasure()},50))}onPrint(e){(e.type==`change`||!e.type)&&!e.matches||(this.view.viewState.printing=!0,this.view.measure(),setTimeout(()=>{this.view.viewState.printing=!1,this.view.requestMeasure()},500))}updateGaps(e){if(this.gapIntersection&&(e.length!=this.gaps.length||this.gaps.some((t,n)=>t!=e[n]))){this.gapIntersection.disconnect();for(let t of e)this.gapIntersection.observe(t);this.gaps=e}}onSelectionChange(e){let t=this.selectionChanged;if(!this.readSelectionRange()||this.delayedAndroidKey)return;let{view:n}=this,r=this.selectionRange;if(n.state.facet(Xq)?n.root.activeElement!=this.dom:!AW(this.dom,r))return;let i=r.anchorNode&&n.docView.nearest(r.anchorNode);if(i&&i.ignoreEvent(e)){t||(this.selectionChanged=!1);return}($K.ie&&$K.ie_version<=11||$K.android&&$K.chrome)&&!n.state.selection.main.empty&&r.focusNode&&MW(r.focusNode,r.focusOffset,r.anchorNode,r.anchorOffset)?this.flushSoon():this.flush(!1)}readSelectionRange(){let{view:e}=this,t=OW(e.root);if(!t)return!1;let n=$K.safari&&e.root.nodeType==11&&e.root.activeElement==this.dom&&wne(this.view,t)||t;if(!n||this.selectionRange.eq(n))return!1;let r=AW(this.dom,n);return r&&!this.selectionChanged&&e.inputState.lastFocusTime>Date.now()-200&&e.inputState.lastTouchTime<Date.now()-300&&qW(this.dom,n)?(this.view.inputState.lastFocusTime=0,e.docView.updateSelection(),!1):(this.selectionRange.setRange(n),r&&(this.selectionChanged=!0),!0)}setSelectionRange(e,t){this.selectionRange.set(e.node,e.offset,t.node,t.offset),this.selectionChanged=!1}clearSelectionRange(){this.selectionRange.set(null,0,null,0)}listenForScroll(){this.parentCheck=-1;let e=0,t=null;for(let n=this.dom;n;)if(n.nodeType==1)!t&&e<this.scrollTargets.length&&this.scrollTargets[e]==n?e++:t||(t=this.scrollTargets.slice(0,e)),t&&t.push(n),n=n.assignedSlot||n.parentNode;else if(n.nodeType==11)n=n.host;else break;if(e<this.scrollTargets.length&&!t&&(t=this.scrollTargets.slice(0,e)),t){for(let e of this.scrollTargets)e.removeEventListener(`scroll`,this.onScroll);for(let e of this.scrollTargets=t)e.addEventListener(`scroll`,this.onScroll)}}ignore(e){if(!this.active)return e();try{return this.stop(),e()}finally{this.start(),this.clear()}}start(){this.active||(this.observer.observe(this.dom,cY),lY&&this.dom.addEventListener(`DOMCharacterDataModified`,this.onCharData),this.active=!0)}stop(){this.active&&(this.active=!1,this.observer.disconnect(),lY&&this.dom.removeEventListener(`DOMCharacterDataModified`,this.onCharData))}clear(){this.processRecords(),this.queue.length=0,this.selectionChanged=!1}delayAndroidKey(e,t){if(!this.delayedAndroidKey){let e=()=>{let e=this.delayedAndroidKey;e&&(this.clearDelayedAndroidKey(),this.view.inputState.lastKeyCode=e.keyCode,this.view.inputState.lastKeyTime=Date.now(),!this.flush()&&e.force&&WW(this.dom,e.key,e.keyCode))};this.flushingAndroidKey=this.view.win.requestAnimationFrame(e)}(!this.delayedAndroidKey||e==`Enter`)&&(this.delayedAndroidKey={key:e,keyCode:t,force:this.lastChange<Date.now()-50||!!this.delayedAndroidKey?.force})}clearDelayedAndroidKey(){this.win.cancelAnimationFrame(this.flushingAndroidKey),this.delayedAndroidKey=null,this.flushingAndroidKey=-1}flushSoon(){this.delayedFlush<0&&(this.delayedFlush=this.view.win.requestAnimationFrame(()=>{this.delayedFlush=-1,this.flush()}))}forceFlush(){this.delayedFlush>=0&&(this.view.win.cancelAnimationFrame(this.delayedFlush),this.delayedFlush=-1),this.flush()}pendingRecords(){for(let e of this.observer.takeRecords())this.queue.push(e);return this.queue}processRecords(){let e=this.pendingRecords();e.length&&(this.queue=[]);let t=-1,n=-1,r=!1;for(let i of e){let e=this.readMutation(i);e&&(e.typeOver&&(r=!0),t==-1?{from:t,to:n}=e:(t=Math.min(e.from,t),n=Math.max(e.to,n)))}return{from:t,to:n,typeOver:r}}readChange(){let{from:e,to:t,typeOver:n}=this.processRecords(),r=this.selectionChanged&&AW(this.dom,this.selectionRange);if(e<0&&!r)return null;e>-1&&(this.lastChange=Date.now()),this.view.inputState.lastFocusTime=0,this.selectionChanged=!1;let i=new gJ(this.view,e,t,n);return this.view.docView.domChanged={newSel:i.newSel?i.newSel.main:null},i}flush(e=!0){if(this.delayedFlush>=0||this.delayedAndroidKey)return!1;e&&this.readSelectionRange();let t=this.readChange();if(!t)return this.view.requestMeasure(),!1;let n=this.view.state,r=eK(this.view,t);return this.view.state==n&&(t.domChanged||t.newSel&&!t.newSel.main.eq(this.view.state.selection.main))&&this.view.update([]),r}readMutation(e){let t=this.view.docView.nearest(e.target);if(!t||t.ignoreMutation(e))return null;if(t.markDirty(e.type==`attributes`),e.type==`attributes`&&(t.flags|=4),e.type==`childList`){let n=bK(t,e.previousSibling||e.target.previousSibling,-1),r=bK(t,e.nextSibling||e.target.nextSibling,1);return{from:n?t.posAfter(n):t.posAtStart,to:r?t.posBefore(r):t.posAtEnd,typeOver:!1}}else if(e.type==`characterData`)return{from:t.posAtStart,to:t.posAtEnd,typeOver:e.target.nodeValue==e.oldValue};else return null}setWindow(e){e!=this.win&&(this.removeWindowListeners(this.win),this.win=e,this.addWindowListeners(this.win))}addWindowListeners(e){e.addEventListener(`resize`,this.onResize),this.printQuery?this.printQuery.addEventListener?this.printQuery.addEventListener(`change`,this.onPrint):this.printQuery.addListener(this.onPrint):e.addEventListener(`beforeprint`,this.onPrint),e.addEventListener(`scroll`,this.onScroll),e.document.addEventListener(`selectionchange`,this.onSelectionChange)}removeWindowListeners(e){e.removeEventListener(`scroll`,this.onScroll),e.removeEventListener(`resize`,this.onResize),this.printQuery?this.printQuery.removeEventListener?this.printQuery.removeEventListener(`change`,this.onPrint):this.printQuery.removeListener(this.onPrint):e.removeEventListener(`beforeprint`,this.onPrint),e.document.removeEventListener(`selectionchange`,this.onSelectionChange)}update(e){this.editContext&&(this.editContext.update(e),e.startState.facet(Xq)!=e.state.facet(Xq)&&(e.view.contentDOM.editContext=e.state.facet(Xq)?this.editContext.editContext:null))}destroy(){var e,t,n;this.stop(),(e=this.intersection)==null||e.disconnect(),(t=this.gapIntersection)==null||t.disconnect(),(n=this.resizeScroll)==null||n.disconnect();for(let e of this.scrollTargets)e.removeEventListener(`scroll`,this.onScroll);this.removeWindowListeners(this.win),clearTimeout(this.parentCheck),clearTimeout(this.resizeTimeout),this.win.cancelAnimationFrame(this.delayedFlush),this.win.cancelAnimationFrame(this.flushingAndroidKey),this.editContext&&(this.view.contentDOM.editContext=null,this.editContext.destroy())}},dY=class{constructor(e){this.from=0,this.to=0,this.pendingContextChange=null,this.handlers=Object.create(null),this.composing=null,this.resetRange(e.state);let t=this.editContext=new window.EditContext({text:e.state.doc.sliceString(this.from,this.to),selectionStart:this.toContextPos(Math.max(this.from,Math.min(this.to,e.state.selection.main.anchor))),selectionEnd:this.toContextPos(e.state.selection.main.head)});this.handlers.textupdate=n=>{let r=e.state.selection.main,{anchor:i,head:a}=r,o=this.toEditorPos(n.updateRangeStart),s=this.toEditorPos(n.updateRangeEnd);e.inputState.composing>=0&&!this.composing&&(this.composing={contextBase:n.updateRangeStart,editorBase:o,drifted:!1});let c=s-o>n.text.length;o==this.from&&i<this.from?o=i:s==this.to&&i>this.to&&(s=i);let l=nK(e.state.sliceDoc(o,s),n.text,(c?r.from:r.to)-o,c?`end`:null);if(!l){let t=X.single(this.toEditorPos(n.selectionStart),this.toEditorPos(n.selectionEnd));t.main.eq(r)||e.dispatch({selection:t,userEvent:`select`});return}let u={from:l.from+o,to:l.toA+o,insert:mU.of(n.text.slice(l.from,l.toB).split(`
`))};if(($K.mac||$K.android)&&u.from==a-1&&/^\. ?$/.test(n.text)&&e.contentDOM.getAttribute(`autocorrect`)==`off`&&(u={from:o,to:s,insert:mU.of([n.text.replace(`.`,` `)])}),this.pendingContextChange=u,!e.state.readOnly){let t=this.to-this.from+(u.to-u.from+u.insert.length);tK(e,u,X.single(this.toEditorPos(n.selectionStart,t),this.toEditorPos(n.selectionEnd,t)))}this.pendingContextChange&&(this.revertPending(e.state),this.setSelection(e.state)),u.from<u.to&&!u.insert.length&&e.inputState.composing>=0&&!/[\\p{Alphabetic}\\p{Number}_]/.test(t.text.slice(Math.max(0,n.updateRangeStart-1),Math.min(t.text.length,n.updateRangeStart+1)))&&this.handlers.compositionend(n)},this.handlers.characterboundsupdate=n=>{let r=[],i=null;for(let t=this.toEditorPos(n.rangeStart),a=this.toEditorPos(n.rangeEnd);t<a;t++){let n=e.coordsForChar(t);i=n&&new DOMRect(n.left,n.top,n.right-n.left,n.bottom-n.top)||i||new DOMRect,r.push(i)}t.updateCharacterBounds(n.rangeStart,r)},this.handlers.textformatupdate=t=>{let n=[];for(let e of t.getTextFormats()){let t=e.underlineStyle,r=e.underlineThickness;if(!/none/i.test(t)&&!/none/i.test(r)){let i=this.toEditorPos(e.rangeStart),a=this.toEditorPos(e.rangeEnd);if(i<a){let e=`text-decoration: underline ${/^[a-z]/.test(t)?t+` `:t==`Dashed`?`dashed `:t==`Squiggle`?`wavy `:``}${/thin/i.test(r)?1:2}px`;n.push(hq.mark({attributes:{style:e}}).range(i,a))}}}e.dispatch({effects:Yq.of(hq.set(n))})},this.handlers.compositionstart=()=>{e.inputState.composing<0&&(e.inputState.composing=0,e.inputState.compositionFirstChange=!0)},this.handlers.compositionend=()=>{if(e.inputState.composing=-1,e.inputState.compositionFirstChange=null,this.composing){let{drifted:t}=this.composing;this.composing=null,t&&this.reset(e.state)}};for(let e in this.handlers)t.addEventListener(e,this.handlers[e]);this.measureReq={read:e=>{this.editContext.updateControlBounds(e.contentDOM.getBoundingClientRect());let t=OW(e.root);t&&t.rangeCount&&this.editContext.updateSelectionBounds(t.getRangeAt(0).getBoundingClientRect())}}}applyEdits(e){let t=0,n=!1,r=this.pendingContextChange;return e.changes.iterChanges((i,a,o,s,c)=>{if(n)return;let l=c.length-(a-i);if(r&&a>=r.to)if(r.from==i&&r.to==a&&r.insert.eq(c)){r=this.pendingContextChange=null,t+=l,this.to+=l;return}else r=null,this.revertPending(e.state);if(i+=t,a+=t,a<=this.from)this.from+=l,this.to+=l;else if(i<this.to){if(i<this.from||a>this.to||this.to-this.from+c.length>3e4){n=!0;return}this.editContext.updateText(this.toContextPos(i),this.toContextPos(a),c.toString()),this.to+=l}t+=l}),r&&!n&&this.revertPending(e.state),!n}update(e){let t=this.pendingContextChange,n=e.startState.selection.main;this.composing&&(this.composing.drifted||!e.changes.touchesRange(n.from,n.to)&&e.transactions.some(e=>!e.isUserEvent(`input.type`)&&e.changes.touchesRange(this.from,this.to)))?(this.composing.drifted=!0,this.composing.editorBase=e.changes.mapPos(this.composing.editorBase)):!this.applyEdits(e)||!this.rangeIsValid(e.state)?(this.pendingContextChange=null,this.reset(e.state)):(e.docChanged||e.selectionSet||t)&&this.setSelection(e.state),(e.geometryChanged||e.docChanged||e.selectionSet)&&e.view.requestMeasure(this.measureReq)}resetRange(e){let{head:t}=e.selection.main;this.from=Math.max(0,t-1e4),this.to=Math.min(e.doc.length,t+1e4)}reset(e){this.resetRange(e),this.editContext.updateText(0,this.editContext.text.length,e.doc.sliceString(this.from,this.to)),this.setSelection(e)}revertPending(e){let t=this.pendingContextChange;this.pendingContextChange=null,this.editContext.updateText(this.toContextPos(t.from),this.toContextPos(t.from+t.insert.length),e.doc.sliceString(t.from,t.to))}setSelection(e){let{main:t}=e.selection,n=this.toContextPos(Math.max(this.from,Math.min(this.to,t.anchor))),r=this.toContextPos(t.head);(this.editContext.selectionStart!=n||this.editContext.selectionEnd!=r)&&this.editContext.updateSelection(n,r)}rangeIsValid(e){let{head:t}=e.selection.main;return!(this.from>0&&t-this.from<500||this.to<e.doc.length&&this.to-t<500||this.to-this.from>1e4*3)}toEditorPos(e,t=this.to-this.from){e=Math.min(e,t);let n=this.composing;return n&&n.drifted?n.editorBase+(e-n.contextBase):e+this.from}toContextPos(e){let t=this.composing;return t&&t.drifted?t.contextBase+(e-t.editorBase):e-this.from}destroy(){for(let e in this.handlers)this.editContext.removeEventListener(e,this.handlers[e])}},fY=class e{get state(){return this.viewState.state}get viewport(){return this.viewState.viewport}get visibleRanges(){return this.viewState.visibleRanges}get inView(){return this.viewState.inView}get composing(){return!!this.inputState&&this.inputState.composing>0}get compositionStarted(){return!!this.inputState&&this.inputState.composing>=0}get root(){return this._root}get win(){return this.dom.ownerDocument.defaultView||window}constructor(e={}){this.plugins=[],this.pluginMap=new Map,this.editorAttrs={},this.contentAttrs={},this.bidiCache=[],this.destroyed=!1,this.updateState=2,this.measureScheduled=-1,this.measureRequests=[],this.contentDOM=document.createElement(`div`),this.scrollDOM=document.createElement(`div`),this.scrollDOM.tabIndex=-1,this.scrollDOM.className=`cm-scroller`,this.scrollDOM.appendChild(this.contentDOM),this.announceDOM=document.createElement(`div`),this.announceDOM.className=`cm-announced`,this.announceDOM.setAttribute(`aria-live`,`polite`),this.dom=document.createElement(`div`),this.dom.appendChild(this.announceDOM),this.dom.appendChild(this.scrollDOM),e.parent&&e.parent.appendChild(this.dom);let{dispatch:t}=e;this.dispatchTransactions=e.dispatchTransactions||t&&(e=>e.forEach(e=>t(e,this)))||(e=>this.update(e)),this.dispatch=this.dispatch.bind(this),this._root=e.root||GW(e.parent)||document,this.viewState=new ZJ(e.state||eW.create(e)),e.scrollTo&&e.scrollTo.is(Jq)&&(this.viewState.scrollTarget=e.scrollTo.value.clip(this.viewState.state)),this.plugins=this.state.facet(Qq).map(e=>new eJ(e));for(let e of this.plugins)e.update(this);this.observer=new uY(this),this.inputState=new _J(this),this.inputState.ensureHandlers(this.plugins),this.docView=new dJ(this),this.mountStyles(),this.updateAttrs(),this.updateState=0,this.requestMeasure(),document.fonts?.ready&&document.fonts.ready.then(()=>this.requestMeasure())}dispatch(...e){let t=e.length==1&&e[0]instanceof YU?e:e.length==1&&Array.isArray(e[0])?e[0]:[this.state.update(...e)];this.dispatchTransactions(t,this)}update(e){if(this.updateState!=0)throw Error(`Calls to EditorView.update are not allowed while an update is in progress`);let t=!1,n=!1,r,i=this.state;for(let t of e){if(t.startState!=i)throw RangeError(`Trying to update state with a transaction that doesn't start from the previous state.`);i=t.state}if(this.destroyed){this.viewState.state=i;return}let a=this.hasFocus,o=0,s=null;e.some(e=>e.annotation(MJ))?(this.inputState.notifiedFocused=a,o=1):a!=this.inputState.notifiedFocused&&(this.inputState.notifiedFocused=a,s=dK(i,a),s||(o=1));let c=this.observer.delayedAndroidKey,l=null;if(c?(this.observer.clearDelayedAndroidKey(),l=this.observer.readChange(),(l&&!this.state.doc.eq(i.doc)||!this.state.selection.eq(i.selection))&&(l=null)):this.observer.clear(),i.facet(eW.phrases)!=this.state.facet(eW.phrases))return this.setState(i);r=uJ.create(this,i,e),r.flags|=o;let u=this.viewState.scrollTarget;try{this.updateState=2;for(let t of e){if(u&&(u=u.map(t.changes)),t.scrollIntoView){let{main:e}=t.state.selection;u=new qq(e.empty?e:X.cursor(e.head,e.head>e.anchor?-1:1))}for(let e of t.effects)e.is(Jq)&&(u=e.value.clip(this.state))}this.viewState.update(r,u),this.bidiCache=hY.update(this.bidiCache,r.changes),r.empty||(this.updatePlugins(r),this.inputState.update(r)),t=this.docView.update(r),this.state.facet(cJ)!=this.styleModules&&this.mountStyles(),n=this.updateAttrs(),this.showAnnouncements(e),this.docView.updateSelection(t,e.some(e=>e.isUserEvent(`select.pointer`)))}finally{this.updateState=0}if(r.startState.facet(tY)!=r.state.facet(tY)&&(this.viewState.mustMeasureContent=!0),(t||n||u||this.viewState.mustEnforceCursorAssoc||this.viewState.mustMeasureContent)&&this.requestMeasure(),t&&this.docViewUpdate(),!r.empty)for(let e of this.state.facet(zq))try{e(r)}catch(e){EG(this.state,e,`update listener`)}(s||l)&&Promise.resolve().then(()=>{s&&this.state==s.startState&&this.dispatch(s),l&&!eK(this,l)&&c.force&&WW(this.contentDOM,c.key,c.keyCode)})}setState(e){if(this.updateState!=0)throw Error(`Calls to EditorView.setState are not allowed while an update is in progress`);if(this.destroyed){this.viewState.state=e;return}this.updateState=2;let t=this.hasFocus;try{for(let e of this.plugins)e.destroy(this);this.viewState=new ZJ(e),this.plugins=e.facet(Qq).map(e=>new eJ(e)),this.pluginMap.clear();for(let e of this.plugins)e.update(this);this.docView.destroy(),this.docView=new dJ(this),this.inputState.ensureHandlers(this.plugins),this.mountStyles(),this.updateAttrs(),this.bidiCache=[]}finally{this.updateState=0}t&&this.focus(),this.requestMeasure()}updatePlugins(e){let t=e.startState.facet(Qq),n=e.state.facet(Qq);if(t!=n){let r=[];for(let i of n){let n=t.indexOf(i);if(n<0)r.push(new eJ(i));else{let t=this.plugins[n];t.mustUpdate=e,r.push(t)}}for(let t of this.plugins)t.mustUpdate!=e&&t.destroy(this);this.plugins=r,this.pluginMap.clear()}else for(let t of this.plugins)t.mustUpdate=e;for(let e=0;e<this.plugins.length;e++)this.plugins[e].update(this);t!=n&&this.inputState.ensureHandlers(this.plugins)}docViewUpdate(){for(let e of this.plugins){let t=e.value;if(t&&t.docViewUpdate)try{t.docViewUpdate(this)}catch(e){EG(this.state,e,`doc view update listener`)}}}measure(e=!0){if(this.destroyed)return;if(this.measureScheduled>-1&&this.win.cancelAnimationFrame(this.measureScheduled),this.observer.delayedAndroidKey){this.measureScheduled=-1,this.requestMeasure();return}this.measureScheduled=0,e&&this.observer.forceFlush();let t=null,n=this.scrollDOM,r=n.scrollTop*this.scaleY,{scrollAnchorPos:i,scrollAnchorHeight:a}=this.viewState;Math.abs(r-this.viewState.scrollTop)>1&&(a=-1),this.viewState.scrollAnchorHeight=-1;try{for(let e=0;;e++){if(a<0)if(JW(n))i=-1,a=this.viewState.heightMap.height;else{let e=this.viewState.scrollAnchorAt(r);i=e.from,a=e.top}this.updateState=1;let o=this.viewState.measure(this);if(!o&&!this.measureRequests.length&&this.viewState.scrollTarget==null)break;if(e>5){console.warn(this.measureRequests.length?`Measure loop restarted more than 5 times`:`Viewport failed to stabilize`);break}let s=[];o&4||([this.measureRequests,s]=[s,this.measureRequests]);let c=s.map(e=>{try{return e.read(this)}catch(e){return EG(this.state,e),mY}}),l=uJ.create(this,this.state,[]),u=!1;l.flags|=o,t?t.flags|=o:t=l,this.updateState=2,l.empty||(this.updatePlugins(l),this.inputState.update(l),this.updateAttrs(),u=this.docView.update(l),u&&this.docViewUpdate());for(let e=0;e<s.length;e++)if(c[e]!=mY)try{let t=s[e];t.write&&t.write(c[e],this)}catch(e){EG(this.state,e)}if(u&&this.docView.updateSelection(!0),!l.viewportChanged&&this.measureRequests.length==0){if(this.viewState.editorHeight)if(this.viewState.scrollTarget){this.docView.scrollIntoView(this.viewState.scrollTarget),this.viewState.scrollTarget=null,a=-1;continue}else{let e=(i<0?this.viewState.heightMap.height:this.viewState.lineBlockAt(i).top)-a;if(e>1||e<-1){r+=e,n.scrollTop=r/this.scaleY,a=-1;continue}}break}}}finally{this.updateState=0,this.measureScheduled=-1}if(t&&!t.empty)for(let e of this.state.facet(zq))e(t)}get themeClasses(){return rY+` `+(this.state.facet(nY)?aY:iY)+` `+this.state.facet(tY)}updateAttrs(){let e=SK(this,tJ,{class:`cm-editor`+(this.hasFocus?` cm-focused `:` `)+this.themeClasses}),t={spellcheck:`false`,autocorrect:`off`,autocapitalize:`off`,writingsuggestions:`false`,translate:`no`,contenteditable:this.state.facet(Xq)?`true`:`false`,class:`cm-content`,style:`${$K.tabSize}: ${this.state.tabSize}`,role:`textbox`,"aria-multiline":`true`};this.state.readOnly&&(t[`aria-readonly`]=`true`),SK(this,nJ,t);let n=this.observer.ignore(()=>{let n=cG(this.contentDOM,this.contentAttrs,t),r=cG(this.dom,this.editorAttrs,e);return n||r});return this.editorAttrs=e,this.contentAttrs=t,n}showAnnouncements(t){let n=!0;for(let r of t)for(let t of r.effects)if(t.is(e.announce)){n&&(this.announceDOM.textContent=``),n=!1;let e=this.announceDOM.appendChild(document.createElement(`div`));e.textContent=t.value}}mountStyles(){this.styleModules=this.state.facet(cJ);let t=this.state.facet(e.cspNonce);mW.mount(this.root,this.styleModules.concat(sY).reverse(),t?{nonce:t}:void 0)}readMeasured(){if(this.updateState==2)throw Error(`Reading the editor layout isn't allowed during an update`);this.updateState==0&&this.measureScheduled>-1&&this.measure(!1)}requestMeasure(e){if(this.measureScheduled<0&&(this.measureScheduled=this.win.requestAnimationFrame(()=>this.measure())),e){if(this.measureRequests.indexOf(e)>-1)return;if(e.key!=null){for(let t=0;t<this.measureRequests.length;t++)if(this.measureRequests[t].key===e.key){this.measureRequests[t]=e;return}}this.measureRequests.push(e)}}plugin(e){let t=this.pluginMap.get(e);return(t===void 0||t&&t.plugin!=e)&&this.pluginMap.set(e,t=this.plugins.find(t=>t.plugin==e)||null),t&&t.update(this).value}get documentTop(){return this.contentDOM.getBoundingClientRect().top+this.viewState.paddingTop}get documentPadding(){return{top:this.viewState.paddingTop,bottom:this.viewState.paddingBottom}}get scaleX(){return this.viewState.scaleX}get scaleY(){return this.viewState.scaleY}elementAtHeight(e){return this.readMeasured(),this.viewState.elementAtHeight(e)}lineBlockAtHeight(e){return this.readMeasured(),this.viewState.lineBlockAtHeight(e)}get viewportLineBlocks(){return this.viewState.viewportLines}lineBlockAt(e){return this.viewState.lineBlockAt(e)}get contentHeight(){return this.viewState.contentHeight}moveByChar(e,t,n){return $G(this,e,XG(this,e,t,n))}moveByGroup(e,t){return $G(this,e,XG(this,e,t,t=>Qte(this,e.head,t)))}visualLineSide(e,t){let n=this.bidiSpans(e),r=this.textDirectionAt(e.from),i=n[t?n.length-1:0];return X.cursor(i.side(t,r)+e.from,i.forward(!t,r)?1:-1)}moveToLineBoundary(e,t,n=!0){return Zte(this,e,t,n)}moveVertically(e,t,n){return $G(this,e,$te(this,e,t,n))}domAtPos(e){return this.docView.domAtPos(e)}posAtDOM(e,t=0){return this.docView.posFromDOM(e,t)}posAtCoords(e,t=!0){return this.readMeasured(),WG(this,e,t)}coordsAtPos(e,t=1){this.readMeasured();let n=this.docView.coordsAt(e,t);if(!n||n.left==n.right)return n;let r=this.state.doc.lineAt(e),i=this.bidiSpans(r),a=i[Mq.find(i,e-r.from,-1,t)];return LW(n,a.dir==wq.LTR==t>0)}coordsForChar(e){return this.readMeasured(),this.docView.coordsForChar(e)}get defaultCharacterWidth(){return this.viewState.heightOracle.charWidth}get defaultLineHeight(){return this.viewState.heightOracle.lineHeight}get textDirection(){return this.viewState.defaultTextDirection}textDirectionAt(e){return!this.state.facet(Wq)||e<this.viewport.from||e>this.viewport.to?this.textDirection:(this.readMeasured(),this.docView.textDirectionAt(e))}get lineWrapping(){return this.viewState.heightOracle.lineWrapping}bidiSpans(e){if(e.length>pY)return CG(e.length);let t=this.textDirectionAt(e.from),n;for(let r of this.bidiCache)if(r.from==e.from&&r.dir==t&&(r.fresh||gG(r.isolates,n=DG(this,e))))return r.order;n||(n=DG(this,e));let r=SG(e.text,t,n);return this.bidiCache.push(new hY(e.from,e.to,t,n,!0,r)),r}get hasFocus(){return(this.dom.ownerDocument.hasFocus()||$K.safari&&this.inputState?.lastContextMenu>Date.now()-3e4)&&this.root.activeElement==this.contentDOM}focus(){this.observer.ignore(()=>{HW(this.contentDOM),this.docView.updateSelection()})}setRoot(e){this._root!=e&&(this._root=e,this.observer.setWindow((e.nodeType==9?e:e.ownerDocument).defaultView||window),this.mountStyles())}destroy(){this.root.activeElement==this.contentDOM&&this.contentDOM.blur();for(let e of this.plugins)e.destroy(this);this.plugins=[],this.inputState.destroy(),this.docView.destroy(),this.dom.remove(),this.observer.destroy(),this.measureScheduled>-1&&this.win.cancelAnimationFrame(this.measureScheduled),this.destroyed=!0}static scrollIntoView(e,t={}){return Jq.of(new qq(typeof e==`number`?X.cursor(e):e,t.y,t.x,t.yMargin,t.xMargin))}scrollSnapshot(){let{scrollTop:e,scrollLeft:t}=this.scrollDOM,n=this.viewState.scrollAnchorAt(e);return Jq.of(new qq(X.cursor(n.from),`start`,`start`,n.top-e,t,!0))}setTabFocusMode(e){e==null?this.inputState.tabFocusMode=this.inputState.tabFocusMode<0?0:-1:typeof e==`boolean`?this.inputState.tabFocusMode=e?0:-1:this.inputState.tabFocusMode!=0&&(this.inputState.tabFocusMode=Date.now()+e)}static domEventHandlers(e){return $q.define(()=>({}),{eventHandlers:e})}static domEventObservers(e){return $q.define(()=>({}),{eventObservers:e})}static theme(e,t){let n=mW.newName(),r=[tY.of(n),cJ.of(yK(`.${n}`,e))];return t&&t.dark&&r.push(nY.of(!0)),r}static baseTheme(e){return NU.lowest(cJ.of(yK(`.`+rY,e,oY)))}static findFromDOM(e){let t=e.querySelector(`.cm-content`);return(t&&aq.get(t)||aq.get(e))?.rootView?.view||null}},fY.styleModule=cJ,fY.inputHandler=Bq,fY.clipboardInputFilter=Hq,fY.clipboardOutputFilter=Uq,fY.scrollHandler=Kq,fY.focusChangeEffect=Vq,fY.perLineTextDirection=Wq,fY.exceptionSink=Rq,fY.updateListener=zq,fY.editable=Xq,fY.mouseSelectionStyle=Lq,fY.dragMovesSelection=Iq,fY.clickAddsSelectionRange=Fq,fY.decorations=rJ,fY.outerDecorations=iJ,fY.atomicRanges=aJ,fY.bidiIsolatedRanges=oJ,fY.scrollMargins=sJ,fY.darkTheme=nY,fY.cspNonce=OU.define({combine:e=>e.length?e[0]:``}),fY.contentAttributes=nJ,fY.editorAttributes=tJ,fY.lineWrapping=fY.contentAttributes.of({class:`cm-lineWrapping`}),fY.announce=JU.define(),pY=4096,mY={},hY=class e{constructor(e,t,n,r,i,a){this.from=e,this.to=t,this.dir=n,this.isolates=r,this.fresh=i,this.order=a}static update(t,n){if(n.empty&&!t.some(e=>e.fresh))return t;let r=[],i=t.length?t[t.length-1].dir:wq.LTR;for(let a=Math.max(0,t.length-10);a<t.length;a++){let o=t[a];o.dir==i&&!n.touchesRange(o.from,o.to)&&r.push(new e(n.mapPos(o.from,1),n.mapPos(o.to,-1),o.dir,o.isolates,!1,o.order))}return r}},gY=$K.mac?`mac`:$K.windows?`win`:$K.linux?`linux`:`key`,_Y=NU.default(fY.domEventHandlers({keydown(e,t){return TK(wK(t.state),e,t,`editor`)}})),vY=OU.define({enables:_Y}),yY=new WeakMap,bY=null,xY=4e3,SY=null,CY=class e{constructor(e,t,n,r,i){this.className=e,this.left=t,this.top=n,this.width=r,this.height=i}draw(){let e=document.createElement(`div`);return e.className=this.className,this.adjust(e),e}update(e,t){return t.className==this.className?(this.adjust(e),!0):!1}adjust(e){e.style.left=this.left+`px`,e.style.top=this.top+`px`,this.width!=null&&(e.style.width=this.width+`px`),e.style.height=this.height+`px`}eq(e){return this.left==e.left&&this.top==e.top&&this.width==e.width&&this.height==e.height&&this.className==e.className}static forRange(t,n,r){if(r.empty){let i=t.coordsAtPos(r.head,r.assoc||1);if(!i)return[];let a=EK(t);return[new e(n,i.left-a.left,i.top-a.top,null,i.bottom-i.top)]}else return One(t,n,r)}},wY=class{constructor(e,t){this.view=e,this.layer=t,this.drawn=[],this.scaleX=1,this.scaleY=1,this.measureReq={read:this.measure.bind(this),write:this.draw.bind(this)},this.dom=e.scrollDOM.appendChild(document.createElement(`div`)),this.dom.classList.add(`cm-layer`),t.above&&this.dom.classList.add(`cm-layer-above`),t.class&&this.dom.classList.add(t.class),this.scale(),this.dom.setAttribute(`aria-hidden`,`true`),this.setOrder(e.state),e.requestMeasure(this.measureReq),t.mount&&t.mount(this.dom,e)}update(e){e.startState.facet(TY)!=e.state.facet(TY)&&this.setOrder(e.state),(this.layer.update(e,this.dom)||e.geometryChanged)&&(this.scale(),e.view.requestMeasure(this.measureReq))}docViewUpdate(e){this.layer.updateOnDocViewUpdate!==!1&&e.requestMeasure(this.measureReq)}setOrder(e){let t=0,n=e.facet(TY);for(;t<n.length&&n[t]!=this.layer;)t++;this.dom.style.zIndex=String((this.layer.above?150:-1)-t)}measure(){return this.layer.markers(this.view)}scale(){let{scaleX:e,scaleY:t}=this.view;(e!=this.scaleX||t!=this.scaleY)&&(this.scaleX=e,this.scaleY=t,this.dom.style.transform=`scale(${1/e}, ${1/t})`)}draw(e){if(e.length!=this.drawn.length||e.some((e,t)=>!kne(e,this.drawn[t]))){let t=this.dom.firstChild,n=0;for(let r of e)r.update&&t&&r.constructor&&this.drawn[n].constructor&&r.update(t,this.drawn[n])?(t=t.nextSibling,n++):this.dom.insertBefore(r.draw(),t);for(;t;){let e=t.nextSibling;t.remove(),t=e}this.drawn=e,$K.safari&&$K.safari_version>=26&&(this.dom.style.display=this.dom.firstChild?``:`none`)}}destroy(){this.layer.destroy&&this.layer.destroy(this.dom,this.view),this.dom.remove()}},TY=OU.define(),EY=OU.define({combine(e){return nU(e,{cursorBlinkRate:1200,drawRangeCursor:!0},{cursorBlinkRate:(e,t)=>Math.min(e,t),drawRangeCursor:(e,t)=>e||t})}}),DY=OK({above:!0,markers(e){let{state:t}=e,n=t.facet(EY),r=[];for(let i of t.selection.ranges){let a=i==t.selection.main;if(i.empty||n.drawRangeCursor){let t=a?`cm-cursor cm-cursor-primary`:`cm-cursor cm-cursor-secondary`,n=i.empty?i:X.cursor(i.head,i.head>i.anchor?-1:1);for(let i of CY.forRange(e,t,n))r.push(i)}}return r},update(e,t){e.transactions.some(e=>e.selection)&&(t.style.animationName=t.style.animationName==`cm-blink`?`cm-blink2`:`cm-blink`);let n=kK(e);return n&&AK(e.state,t),e.docChanged||e.selectionSet||n},mount(e,t){AK(t.state,e)},class:`cm-cursorLayer`}),OY=OK({above:!1,markers(e){return e.state.selection.ranges.map(t=>t.empty?[]:CY.forRange(e,`cm-selectionBackground`,t)).reduce((e,t)=>e.concat(t))},update(e,t){return e.docChanged||e.selectionSet||e.viewportChanged||kK(e)},class:`cm-selectionLayer`}),kY=NU.highest(fY.theme({".cm-line":{"& ::selection, &::selection":{backgroundColor:`transparent !important`},caretColor:`transparent !important`},".cm-content":{caretColor:`transparent !important`,"& :focus":{caretColor:`initial !important`,"&::selection, & ::selection":{backgroundColor:`Highlight !important`}}}})),AY=JU.define({map(e,t){return e==null?null:t.mapPos(e)}}),jY=jU.define({create(){return null},update(e,t){return e!=null&&(e=t.changes.mapPos(e)),t.effects.reduce((e,t)=>t.is(AY)?t.value:e,e)}}),MY=$q.fromClass(class{constructor(e){this.view=e,this.cursor=null,this.measureReq={read:this.readPos.bind(this),write:this.drawCursor.bind(this)}}update(e){var t;let n=e.state.field(jY);n==null?this.cursor!=null&&((t=this.cursor)==null||t.remove(),this.cursor=null):(this.cursor||(this.cursor=this.view.scrollDOM.appendChild(document.createElement(`div`)),this.cursor.className=`cm-dropCursor`),(e.startState.field(jY)!=n||e.docChanged||e.geometryChanged)&&this.view.requestMeasure(this.measureReq))}readPos(){let{view:e}=this,t=e.state.field(jY),n=t!=null&&e.coordsAtPos(t);if(!n)return null;let r=e.scrollDOM.getBoundingClientRect();return{left:n.left-r.left+e.scrollDOM.scrollLeft*e.scaleX,top:n.top-r.top+e.scrollDOM.scrollTop*e.scaleY,height:n.bottom-n.top}}drawCursor(e){if(this.cursor){let{scaleX:t,scaleY:n}=this.view;e?(this.cursor.style.left=e.left/t+`px`,this.cursor.style.top=e.top/n+`px`,this.cursor.style.height=e.height/n+`px`):this.cursor.style.left=`-100000px`}}destroy(){this.cursor&&this.cursor.remove()}setDropPos(e){this.view.state.field(jY)!=e&&this.view.dispatch({effects:AY.of(e)})}},{eventObservers:{dragover(e){this.setDropPos(this.view.posAtCoords({x:e.clientX,y:e.clientY}))},dragleave(e){(e.target==this.view.contentDOM||!this.view.contentDOM.contains(e.relatedTarget))&&this.setDropPos(null)},dragend(){this.setDropPos(null)},drop(){this.setDropPos(null)}}}),NY=class{constructor(e){let{regexp:t,decoration:n,decorate:r,boundary:i,maxLength:a=1e3}=e;if(!t.global)throw RangeError(`The regular expression given to MatchDecorator should have its 'g' flag set`);if(this.regexp=t,r)this.addMatch=(e,t,n,i)=>r(i,n,n+e[0].length,e,t);else if(typeof n==`function`)this.addMatch=(e,t,r,i)=>{let a=n(e,t,r);a&&i(r,r+e[0].length,a)};else if(n)this.addMatch=(e,t,r,i)=>i(r,r+e[0].length,n);else throw RangeError(`Either 'decorate' or 'decoration' should be provided to MatchDecorator`);this.boundary=i,this.maxLength=a}createDeco(e){let t=new aW,n=t.add.bind(t);for(let{from:t,to:r}of Mne(e,this.maxLength))jK(e.state.doc,this.regexp,t,r,(t,r)=>this.addMatch(r,e,t,n));return t.finish()}updateDeco(e,t){let n=1e9,r=-1;return e.docChanged&&e.changes.iterChanges((t,i,a,o)=>{o>=e.view.viewport.from&&a<=e.view.viewport.to&&(n=Math.min(a,n),r=Math.max(o,r))}),e.viewportMoved||r-n>1e3?this.createDeco(e.view):r>-1?this.updateRange(e.view,t.map(e.changes),n,r):t}updateRange(e,t,n,r){for(let i of e.visibleRanges){let a=Math.max(i.from,n),o=Math.min(i.to,r);if(o>=a){let n=e.state.doc.lineAt(a),r=n.to<o?e.state.doc.lineAt(o):n,s=Math.max(i.from,n.from),c=Math.min(i.to,r.to);if(this.boundary){for(;a>n.from;a--)if(this.boundary.test(n.text[a-1-n.from])){s=a;break}for(;o<r.to;o++)if(this.boundary.test(r.text[o-r.from])){c=o;break}}let l=[],u,d=(e,t,n)=>l.push(n.range(e,t));if(n==r)for(this.regexp.lastIndex=s-n.from;(u=this.regexp.exec(n.text))&&u.index<c-n.from;)this.addMatch(u,e,u.index+n.from,d);else jK(e.state.doc,this.regexp,s,c,(t,n)=>this.addMatch(n,e,t,d));t=t.update({filterFrom:s,filterTo:c,filter:(e,t)=>e<s||t>c,add:l})}}return t}},PY=/x/.unicode==null?`g`:`gu`,FY=RegExp(`[\0-\b
--Ÿ­؜​‎‏\u2028\u2029‭‮⁦⁧⁩-]`,PY),IY={0:`null`,7:`bell`,8:`backspace`,10:`newline`,11:`vertical tab`,13:`carriage return`,27:`escape`,8203:`zero width space`,8204:`zero width non-joiner`,8205:`zero width joiner`,8206:`left-to-right mark`,8207:`right-to-left mark`,8232:`line separator`,8237:`left-to-right override`,8238:`right-to-left override`,8294:`left-to-right isolate`,8295:`right-to-left isolate`,8297:`pop directional isolate`,8233:`paragraph separator`,65279:`zero width no-break space`,65532:`object replacement`},LY=null,RY=OU.define({combine(e){let t=nU(e,{render:null,specialChars:FY,addSpecialChars:null});return(t.replaceTabs=!Nne())&&(t.specialChars=RegExp(` |`+t.specialChars.source,PY)),t.addSpecialChars&&(t.specialChars=RegExp(t.specialChars.source+`|`+t.addSpecialChars.source,PY)),t}}),zY=null,BY=`•`,VY=class extends pq{constructor(e,t){super(),this.options=e,this.code=t}eq(e){return e.code==this.code}toDOM(e){let t=Ine(this.code),n=e.state.phrase(`Control character`)+` `+(IY[this.code]||`0x`+this.code.toString(16)),r=this.options.render&&this.options.render(this.code,n,t);if(r)return r;let i=document.createElement(`span`);return i.textContent=t,i.title=n,i.setAttribute(`aria-label`,n),i.className=`cm-specialChar`,i}ignoreEvent(){return!1}},HY=class extends pq{constructor(e){super(),this.width=e}eq(e){return e.width==this.width}toDOM(){let e=document.createElement(`span`);return e.textContent=` `,e.className=`cm-tab`,e.style.width=this.width+`px`,e}ignoreEvent(){return!1}},UY=hq.line({class:`cm-activeLine`}),WY=$q.fromClass(class{constructor(e){this.decorations=this.getDeco(e)}update(e){(e.docChanged||e.selectionSet)&&(this.decorations=this.getDeco(e.view))}getDeco(e){let t=-1,n=[];for(let r of e.state.selection.ranges){let i=e.lineBlockAt(r.head);i.from>t&&(n.push(UY.range(i.from)),t=i.from)}return hq.set(n)}},{decorations:e=>e.decorations}),GY=class extends pq{constructor(e){super(),this.content=e}toDOM(e){let t=document.createElement(`span`);return t.className=`cm-placeholder`,t.style.pointerEvents=`none`,t.appendChild(typeof this.content==`string`?document.createTextNode(this.content):typeof this.content==`function`?this.content(e):this.content.cloneNode(!0)),t.setAttribute(`aria-hidden`,`true`),t}coordsAt(e){let t=e.firstChild?jW(e.firstChild):[];if(!t.length)return null;let n=window.getComputedStyle(e.parentNode),r=LW(t[0],n.direction!=`rtl`),i=parseInt(n.lineHeight);return r.bottom-r.top>i*1.5?{left:r.left,right:r.right,top:r.top,bottom:r.top+i}:r}ignoreEvent(){return!1}},KY=2e3,qY={Alt:[18,e=>!!e.altKey],Control:[17,e=>!!e.ctrlKey],Shift:[16,e=>!!e.shiftKey],Meta:[91,e=>!!e.metaKey]},JY={style:`cursor: crosshair`},YY=`-10000px`,XY=class{constructor(e,t,n,r){this.facet=t,this.createTooltipView=n,this.removeTooltipView=r,this.input=e.state.facet(t),this.tooltips=this.input.filter(e=>e);let i=null;this.tooltipViews=this.tooltips.map(e=>i=n(e,i))}update(e,t){var n;let r=e.state.facet(this.facet),i=r.filter(e=>e);if(r===this.input){for(let t of this.tooltipViews)t.update&&t.update(e);return!1}let a=[],o=t?[]:null;for(let n=0;n<i.length;n++){let r=i[n],s=-1;if(r){for(let e=0;e<this.tooltips.length;e++){let t=this.tooltips[e];t&&t.create==r.create&&(s=e)}if(s<0)a[n]=this.createTooltipView(r,n?a[n-1]:null),o&&(o[n]=!!r.above);else{let r=a[n]=this.tooltipViews[s];o&&(o[n]=t[s]),r.update&&r.update(e)}}}for(let e of this.tooltipViews)a.indexOf(e)<0&&(this.removeTooltipView(e),(n=e.destroy)==null||n.call(e));return t&&(o.forEach((e,n)=>t[n]=e),t.length=o.length),this.input=r,this.tooltips=i,this.tooltipViews=a,!0}},ZY=OU.define({combine:e=>({position:$K.ios?`absolute`:e.find(e=>e.position)?.position||`fixed`,parent:e.find(e=>e.parent)?.parent||null,tooltipSpace:e.find(e=>e.tooltipSpace)?.tooltipSpace||Wne})}),QY=new WeakMap,$Y=$q.fromClass(class{constructor(e){this.view=e,this.above=[],this.inView=!0,this.madeAbsolute=!1,this.lastTransaction=0,this.measureTimeout=-1;let t=e.state.facet(ZY);this.position=t.position,this.parent=t.parent,this.classes=e.themeClasses,this.createContainer(),this.measureReq={read:this.readMeasure.bind(this),write:this.writeMeasure.bind(this),key:this},this.resizeObserver=typeof ResizeObserver==`function`?new ResizeObserver(()=>this.measureSoon()):null,this.manager=new XY(e,nX,(e,t)=>this.createTooltip(e,t),e=>{this.resizeObserver&&this.resizeObserver.unobserve(e.dom),e.dom.remove()}),this.above=this.manager.tooltips.map(e=>!!e.above),this.intersectionObserver=typeof IntersectionObserver==`function`?new IntersectionObserver(e=>{Date.now()>this.lastTransaction-50&&e.length>0&&e[e.length-1].intersectionRatio<1&&this.measureSoon()},{threshold:[1]}):null,this.observeIntersection(),e.win.addEventListener(`resize`,this.measureSoon=this.measureSoon.bind(this)),this.maybeMeasure()}createContainer(){this.parent?(this.container=document.createElement(`div`),this.container.style.position=`relative`,this.container.className=this.view.themeClasses,this.parent.appendChild(this.container)):this.container=this.view.dom}observeIntersection(){if(this.intersectionObserver){this.intersectionObserver.disconnect();for(let e of this.manager.tooltipViews)this.intersectionObserver.observe(e.dom)}}measureSoon(){this.measureTimeout<0&&(this.measureTimeout=setTimeout(()=>{this.measureTimeout=-1,this.maybeMeasure()},50))}update(e){e.transactions.length&&(this.lastTransaction=Date.now());let t=this.manager.update(e,this.above);t&&this.observeIntersection();let n=t||e.geometryChanged,r=e.state.facet(ZY);if(r.position!=this.position&&!this.madeAbsolute){this.position=r.position;for(let e of this.manager.tooltipViews)e.dom.style.position=this.position;n=!0}if(r.parent!=this.parent){this.parent&&this.container.remove(),this.parent=r.parent,this.createContainer();for(let e of this.manager.tooltipViews)this.container.appendChild(e.dom);n=!0}else this.parent&&this.view.themeClasses!=this.classes&&(this.classes=this.container.className=this.view.themeClasses);n&&this.maybeMeasure()}createTooltip(e,t){let n=e.create(this.view),r=t?t.dom:null;if(n.dom.classList.add(`cm-tooltip`),e.arrow&&!n.dom.querySelector(`.cm-tooltip > .cm-tooltip-arrow`)){let e=document.createElement(`div`);e.className=`cm-tooltip-arrow`,n.dom.appendChild(e)}return n.dom.style.position=this.position,n.dom.style.top=YY,n.dom.style.left=`0px`,this.container.insertBefore(n.dom,r),n.mount&&n.mount(this.view),this.resizeObserver&&this.resizeObserver.observe(n.dom),n}destroy(){var e,t,n;this.view.win.removeEventListener(`resize`,this.measureSoon);for(let t of this.manager.tooltipViews)t.dom.remove(),(e=t.destroy)==null||e.call(t);this.parent&&this.container.remove(),(t=this.resizeObserver)==null||t.disconnect(),(n=this.intersectionObserver)==null||n.disconnect(),clearTimeout(this.measureTimeout)}readMeasure(){let e=1,t=1,n=!1;if(this.position==`fixed`&&this.manager.tooltipViews.length){let{dom:e}=this.manager.tooltipViews[0];if($K.safari){let t=e.getBoundingClientRect();n=Math.abs(t.top+1e4)>1||Math.abs(t.left)>1}else n=!!e.offsetParent&&e.offsetParent!=this.container.ownerDocument.body}if(n||this.position==`absolute`)if(this.parent){let n=this.parent.getBoundingClientRect();n.width&&n.height&&(e=n.width/this.parent.offsetWidth,t=n.height/this.parent.offsetHeight)}else({scaleX:e,scaleY:t}=this.view.viewState);let r=this.view.scrollDOM.getBoundingClientRect(),i=OG(this.view);return{visible:{left:r.left+i.left,top:r.top+i.top,right:r.right-i.right,bottom:r.bottom-i.bottom},parent:this.parent?this.container.getBoundingClientRect():this.view.dom.getBoundingClientRect(),pos:this.manager.tooltips.map((e,t)=>{let n=this.manager.tooltipViews[t];return n.getCoords?n.getCoords(e.pos):this.view.coordsAtPos(e.pos)}),size:this.manager.tooltipViews.map(({dom:e})=>e.getBoundingClientRect()),space:this.view.state.facet(ZY).tooltipSpace(this.view),scaleX:e,scaleY:t,makeAbsolute:n}}writeMeasure(e){if(e.makeAbsolute){this.madeAbsolute=!0,this.position=`absolute`;for(let e of this.manager.tooltipViews)e.dom.style.position=`absolute`}let{visible:t,space:n,scaleX:r,scaleY:i}=e,a=[];for(let o=0;o<this.manager.tooltips.length;o++){let s=this.manager.tooltips[o],c=this.manager.tooltipViews[o],{dom:l}=c,u=e.pos[o],d=e.size[o];if(!u||s.clip!==!1&&(u.bottom<=Math.max(t.top,n.top)||u.top>=Math.min(t.bottom,n.bottom)||u.right<Math.max(t.left,n.left)-.1||u.left>Math.min(t.right,n.right)+.1)){l.style.top=YY;continue}let f=s.arrow?c.dom.querySelector(`.cm-tooltip-arrow`):null,p=f?7:0,m=d.right-d.left,h=QY.get(c)??d.bottom-d.top,g=c.offset||tX,_=this.view.textDirection==wq.LTR,v=d.width>n.right-n.left?_?n.left:n.right-d.width:_?Math.max(n.left,Math.min(u.left-(f?14:0)+g.x,n.right-m)):Math.min(Math.max(n.left,u.left-m+(f?14:0)-g.x),n.right-m),y=this.above[o];!s.strictSide&&(y?u.top-h-p-g.y<n.top:u.bottom+h+p+g.y>n.bottom)&&y==n.bottom-u.bottom>u.top-n.top&&(y=this.above[o]=!y);let b=(y?u.top-n.top:n.bottom-u.bottom)-p;if(b<h&&c.resize!==!1){if(b<this.view.defaultLineHeight){l.style.top=YY;continue}QY.set(c,h),l.style.height=(h=b)/i+`px`}else l.style.height&&(l.style.height=``);let x=y?u.top-h-p-g.y:u.bottom+p+g.y,S=v+m;if(c.overlap!==!0)for(let e of a)e.left<S&&e.right>v&&e.top<x+h&&e.bottom>x&&(x=y?e.top-h-2-p:e.bottom+p+2);if(this.position==`absolute`?(l.style.top=(x-e.parent.top)/i+`px`,NK(l,(v-e.parent.left)/r)):(l.style.top=x/i+`px`,NK(l,v/r)),f){let e=u.left+(_?g.x:-g.x)-(v+14-7);f.style.left=e/r+`px`}c.overlap!==!0&&a.push({left:v,top:x,right:S,bottom:x+h}),l.classList.toggle(`cm-tooltip-above`,y),l.classList.toggle(`cm-tooltip-below`,!y),c.positioned&&c.positioned(e.space)}}maybeMeasure(){if(this.manager.tooltips.length&&(this.view.inView&&this.view.requestMeasure(this.measureReq),this.inView!=this.view.inView&&(this.inView=this.view.inView,!this.inView)))for(let e of this.manager.tooltipViews)e.dom.style.top=YY}},{eventObservers:{scroll(){this.maybeMeasure()}}}),eX=fY.baseTheme({".cm-tooltip":{zIndex:500,boxSizing:`border-box`},"&light .cm-tooltip":{border:`1px solid #bbb`,backgroundColor:`#f5f5f5`},"&light .cm-tooltip-section:not(:first-child)":{borderTop:`1px solid #bbb`},"&dark .cm-tooltip":{backgroundColor:`#333338`,color:`white`},".cm-tooltip-arrow":{height:`7px`,width:`14px`,position:`absolute`,zIndex:-1,overflow:`hidden`,"&:before, &:after":{content:`''`,position:`absolute`,width:0,height:0,borderLeft:`7px solid transparent`,borderRight:`7px solid transparent`},".cm-tooltip-above &":{bottom:`-7px`,"&:before":{borderTop:`7px solid #bbb`},"&:after":{borderTop:`7px solid #f5f5f5`,bottom:`1px`}},".cm-tooltip-below &":{top:`-7px`,"&:before":{borderBottom:`7px solid #bbb`},"&:after":{borderBottom:`7px solid #f5f5f5`,top:`1px`}}},"&dark .cm-tooltip .cm-tooltip-arrow":{"&:before":{borderTopColor:`#333338`,borderBottomColor:`#333338`},"&:after":{borderTopColor:`transparent`,borderBottomColor:`transparent`}}}),tX={x:0,y:0},nX=OU.define({enables:[$Y,eX]}),rX=OU.define({combine:e=>e.reduce((e,t)=>e.concat(t),[])}),iX=class e{static create(t){return new e(t)}constructor(e){this.view=e,this.mounted=!1,this.dom=document.createElement(`div`),this.dom.classList.add(`cm-tooltip-hover`),this.manager=new XY(e,rX,(e,t)=>this.createHostedView(e,t),e=>e.dom.remove())}createHostedView(e,t){let n=e.create(this.view);return n.dom.classList.add(`cm-tooltip-section`),this.dom.insertBefore(n.dom,t?t.dom.nextSibling:this.dom.firstChild),this.mounted&&n.mount&&n.mount(this.view),n}mount(e){for(let t of this.manager.tooltipViews)t.mount&&t.mount(e);this.mounted=!0}positioned(e){for(let t of this.manager.tooltipViews)t.positioned&&t.positioned(e)}update(e){this.manager.update(e)}destroy(){var e;for(let t of this.manager.tooltipViews)(e=t.destroy)==null||e.call(t)}passProp(e){let t;for(let n of this.manager.tooltipViews){let r=n[e];if(r!==void 0){if(t===void 0)t=r;else if(t!==r)return}}return t}get offset(){return this.passProp(`offset`)}get getCoords(){return this.passProp(`getCoords`)}get overlap(){return this.passProp(`overlap`)}get resize(){return this.passProp(`resize`)}},aX=nX.compute([rX],e=>{let t=e.facet(rX);return t.length===0?null:{pos:Math.min(...t.map(e=>e.pos)),end:Math.max(...t.map(e=>e.end??e.pos)),create:iX.create,above:t[0].above,arrow:t.some(e=>e.arrow)}}),oX=class{constructor(e,t,n,r,i){this.view=e,this.source=t,this.field=n,this.setHover=r,this.hoverTime=i,this.hoverTimeout=-1,this.restartTimeout=-1,this.pending=null,this.lastMove={x:0,y:0,target:e.dom,time:0},this.checkHover=this.checkHover.bind(this),e.dom.addEventListener(`mouseleave`,this.mouseleave=this.mouseleave.bind(this)),e.dom.addEventListener(`mousemove`,this.mousemove=this.mousemove.bind(this))}update(){this.pending&&(this.pending=null,clearTimeout(this.restartTimeout),this.restartTimeout=setTimeout(()=>this.startHover(),20))}get active(){return this.view.state.field(this.field)}checkHover(){if(this.hoverTimeout=-1,this.active.length)return;let e=Date.now()-this.lastMove.time;e<this.hoverTime?this.hoverTimeout=setTimeout(this.checkHover,this.hoverTime-e):this.startHover()}startHover(){clearTimeout(this.restartTimeout);let{view:e,lastMove:t}=this,n=e.docView.nearest(t.target);if(!n)return;let r,i=1;if(n instanceof uq)r=n.posAtStart;else{if(r=e.posAtCoords(t),r==null)return;let n=e.coordsAtPos(r);if(!n||t.y<n.top||t.y>n.bottom||t.x<n.left-e.defaultCharacterWidth||t.x>n.right+e.defaultCharacterWidth)return;let a=e.bidiSpans(e.state.doc.lineAt(r)).find(e=>e.from<=r&&e.to>=r),o=a&&a.dir==wq.RTL?-1:1;i=t.x<n.left?-o:o}let a=this.source(e,r,i);if(a?.then){let t=this.pending={pos:r};a.then(n=>{this.pending==t&&(this.pending=null,n&&!(Array.isArray(n)&&!n.length)&&e.dispatch({effects:this.setHover.of(Array.isArray(n)?n:[n])}))},t=>EG(e.state,t,`hover tooltip`))}else a&&!(Array.isArray(a)&&!a.length)&&e.dispatch({effects:this.setHover.of(Array.isArray(a)?a:[a])})}get tooltip(){let e=this.view.plugin($Y),t=e?e.manager.tooltips.findIndex(e=>e.create==iX.create):-1;return t>-1?e.manager.tooltipViews[t]:null}mousemove(e){this.lastMove={x:e.clientX,y:e.clientY,target:e.target,time:Date.now()},this.hoverTimeout<0&&(this.hoverTimeout=setTimeout(this.checkHover,this.hoverTime));let{active:t,tooltip:n}=this;if(t.length&&n&&!Gne(n.dom,e)||this.pending){let{pos:n}=t[0]||this.pending,r=t[0]?.end??n;(n==r?this.view.posAtCoords(this.lastMove)!=n:!Kne(this.view,n,r,e.clientX,e.clientY))&&(this.view.dispatch({effects:this.setHover.of([])}),this.pending=null)}}mouseleave(e){clearTimeout(this.hoverTimeout),this.hoverTimeout=-1;let{active:t}=this;if(t.length){let{tooltip:t}=this;t&&t.dom.contains(e.relatedTarget)?this.watchTooltipLeave(t.dom):this.view.dispatch({effects:this.setHover.of([])})}}watchTooltipLeave(e){let t=n=>{e.removeEventListener(`mouseleave`,t),this.active.length&&!this.view.dom.contains(n.relatedTarget)&&this.view.dispatch({effects:this.setHover.of([])})};e.addEventListener(`mouseleave`,t)}destroy(){clearTimeout(this.hoverTimeout),this.view.dom.removeEventListener(`mouseleave`,this.mouseleave),this.view.dom.removeEventListener(`mousemove`,this.mousemove)}},sX=4,cX=JU.define(),lX=OU.define({combine(e){let t,n;for(let r of e)t=t||r.topContainer,n=n||r.bottomContainer;return{topContainer:t,bottomContainer:n}}}),uX=$q.fromClass(class{constructor(e){this.input=e.state.facet(fX),this.specs=this.input.filter(e=>e),this.panels=this.specs.map(t=>t(e));let t=e.state.facet(lX);this.top=new dX(e,!0,t.topContainer),this.bottom=new dX(e,!1,t.bottomContainer),this.top.sync(this.panels.filter(e=>e.top)),this.bottom.sync(this.panels.filter(e=>!e.top));for(let e of this.panels)e.dom.classList.add(`cm-panel`),e.mount&&e.mount()}update(e){let t=e.state.facet(lX);this.top.container!=t.topContainer&&(this.top.sync([]),this.top=new dX(e.view,!0,t.topContainer)),this.bottom.container!=t.bottomContainer&&(this.bottom.sync([]),this.bottom=new dX(e.view,!1,t.bottomContainer)),this.top.syncClasses(),this.bottom.syncClasses();let n=e.state.facet(fX);if(n!=this.input){let t=n.filter(e=>e),r=[],i=[],a=[],o=[];for(let n of t){let t=this.specs.indexOf(n),s;t<0?(s=n(e.view),o.push(s)):(s=this.panels[t],s.update&&s.update(e)),r.push(s),(s.top?i:a).push(s)}this.specs=t,this.panels=r,this.top.sync(i),this.bottom.sync(a);for(let e of o)e.dom.classList.add(`cm-panel`),e.mount&&e.mount()}else for(let t of this.panels)t.update&&t.update(e)}destroy(){this.top.sync([]),this.bottom.sync([])}},{provide:e=>fY.scrollMargins.of(t=>{let n=t.plugin(e);return n&&{top:n.top.scrollMargin(),bottom:n.bottom.scrollMargin()}})}),dX=class{constructor(e,t,n){this.view=e,this.top=t,this.container=n,this.dom=void 0,this.classes=``,this.panels=[],this.syncClasses()}sync(e){for(let t of this.panels)t.destroy&&e.indexOf(t)<0&&t.destroy();this.panels=e,this.syncDOM()}syncDOM(){if(this.panels.length==0){this.dom&&(this.dom.remove(),this.dom=void 0);return}if(!this.dom){this.dom=document.createElement(`div`),this.dom.className=this.top?`cm-panels cm-panels-top`:`cm-panels cm-panels-bottom`,this.dom.style[this.top?`top`:`bottom`]=`0`;let e=this.container||this.view.dom;e.insertBefore(this.dom,this.top?e.firstChild:null)}let e=this.dom.firstChild;for(let t of this.panels)if(t.dom.parentNode==this.dom){for(;e!=t.dom;)e=IK(e);e=e.nextSibling}else this.dom.insertBefore(t.dom,e);for(;e;)e=IK(e)}scrollMargin(){return!this.dom||this.container?0:Math.max(0,this.top?this.dom.getBoundingClientRect().bottom-Math.max(0,this.view.scrollDOM.getBoundingClientRect().top):Math.min(innerHeight,this.view.scrollDOM.getBoundingClientRect().bottom)-this.dom.getBoundingClientRect().top)}syncClasses(){if(!(!this.container||this.classes==this.view.themeClasses)){for(let e of this.classes.split(` `))e&&this.container.classList.remove(e);for(let e of(this.classes=this.view.themeClasses).split(` `))e&&this.container.classList.add(e)}}},fX=OU.define({enables:uX}),pX=class extends tW{compare(e){return this==e||this.constructor==e.constructor&&this.eq(e)}eq(e){return!1}destroy(e){}},pX.prototype.elementClass=``,pX.prototype.toDOM=void 0,pX.prototype.mapMode=SU.TrackBefore,pX.prototype.startSide=pX.prototype.endSide=-1,pX.prototype.point=!0,mX=OU.define(),hX=OU.define(),gX={class:``,renderEmptyElements:!1,elementStyle:``,markers:()=>iW.empty,lineMarker:()=>null,widgetMarker:()=>null,lineMarkerChange:null,initialSpacer:null,updateSpacer:null,domEventHandlers:{},side:`before`},_X=OU.define(),vX=OU.define({combine:e=>e.some(e=>e)}),yX=$q.fromClass(class{constructor(e){this.view=e,this.domAfter=null,this.prevViewport=e.viewport,this.dom=document.createElement(`div`),this.dom.className=`cm-gutters cm-gutters-before`,this.dom.setAttribute(`aria-hidden`,`true`),this.dom.style.minHeight=this.view.contentHeight/this.view.scaleY+`px`,this.gutters=e.state.facet(_X).map(t=>new xX(e,t)),this.fixed=!e.state.facet(vX);for(let e of this.gutters)e.config.side==`after`?this.getDOMAfter().appendChild(e.dom):this.dom.appendChild(e.dom);this.fixed&&(this.dom.style.position=`sticky`),this.syncGutters(!1),e.scrollDOM.insertBefore(this.dom,e.contentDOM)}getDOMAfter(){return this.domAfter||(this.domAfter=document.createElement(`div`),this.domAfter.className=`cm-gutters cm-gutters-after`,this.domAfter.setAttribute(`aria-hidden`,`true`),this.domAfter.style.minHeight=this.view.contentHeight/this.view.scaleY+`px`,this.domAfter.style.position=this.fixed?`sticky`:``,this.view.scrollDOM.appendChild(this.domAfter)),this.domAfter}update(e){if(this.updateGutters(e)){let t=this.prevViewport,n=e.view.viewport,r=Math.min(t.to,n.to)-Math.max(t.from,n.from);this.syncGutters(r<(n.to-n.from)*.8)}if(e.geometryChanged){let e=this.view.contentHeight/this.view.scaleY+`px`;this.dom.style.minHeight=e,this.domAfter&&(this.domAfter.style.minHeight=e)}this.view.state.facet(vX)!=!this.fixed&&(this.fixed=!this.fixed,this.dom.style.position=this.fixed?`sticky`:``,this.domAfter&&(this.domAfter.style.position=this.fixed?`sticky`:``)),this.prevViewport=e.view.viewport}syncGutters(e){let t=this.dom.nextSibling;e&&(this.dom.remove(),this.domAfter&&this.domAfter.remove());let n=iW.iter(this.view.state.facet(mX),this.view.viewport.from),r=[],i=this.gutters.map(e=>new bX(e,this.view.viewport,-this.view.documentPadding.top));for(let e of this.view.viewportLineBlocks)if(r.length&&(r=[]),Array.isArray(e.type)){let t=!0;for(let a of e.type)if(a.type==mq.Text&&t){zK(n,r,a.from);for(let e of i)e.line(this.view,a,r);t=!1}else if(a.widget)for(let e of i)e.widget(this.view,a)}else if(e.type==mq.Text){zK(n,r,e.from);for(let t of i)t.line(this.view,e,r)}else if(e.widget)for(let t of i)t.widget(this.view,e);for(let e of i)e.finish();e&&(this.view.scrollDOM.insertBefore(this.dom,t),this.domAfter&&this.view.scrollDOM.appendChild(this.domAfter))}updateGutters(e){let t=e.startState.facet(_X),n=e.state.facet(_X),r=e.docChanged||e.heightChanged||e.viewportChanged||!iW.eq(e.startState.facet(mX),e.state.facet(mX),e.view.viewport.from,e.view.viewport.to);if(t==n)for(let t of this.gutters)t.update(e)&&(r=!0);else{r=!0;let i=[];for(let r of n){let n=t.indexOf(r);n<0?i.push(new xX(this.view,r)):(this.gutters[n].update(e),i.push(this.gutters[n]))}for(let e of this.gutters)e.dom.remove(),i.indexOf(e)<0&&e.destroy();for(let e of i)e.config.side==`after`?this.getDOMAfter().appendChild(e.dom):this.dom.appendChild(e.dom);this.gutters=i}return r}destroy(){for(let e of this.gutters)e.destroy();this.dom.remove(),this.domAfter&&this.domAfter.remove()}},{provide:e=>fY.scrollMargins.of(t=>{let n=t.plugin(e);if(!n||n.gutters.length==0||!n.fixed)return null;let r=n.dom.offsetWidth*t.scaleX,i=n.domAfter?n.domAfter.offsetWidth*t.scaleX:0;return t.textDirection==wq.LTR?{left:r,right:i}:{right:r,left:i}})}),bX=class{constructor(e,t,n){this.gutter=e,this.height=n,this.i=0,this.cursor=iW.iter(e.markers,t.from)}addElement(e,t,n){let{gutter:r}=this,i=(t.top-this.height)/e.scaleY,a=t.height/e.scaleY;if(this.i==r.elements.length){let t=new SX(e,a,i,n);r.elements.push(t),r.dom.appendChild(t.dom)}else r.elements[this.i].update(e,a,i,n);this.height=t.bottom,this.i++}line(e,t,n){let r=[];zK(this.cursor,r,t.from),n.length&&(r=r.concat(n));let i=this.gutter.config.lineMarker(e,t,r);i&&r.unshift(i);let a=this.gutter;r.length==0&&!a.config.renderEmptyElements||this.addElement(e,t,r)}widget(e,t){let n=this.gutter.config.widgetMarker(e,t.widget,t),r=n?[n]:null;for(let n of e.state.facet(hX)){let i=n(e,t.widget,t);i&&(r||(r=[])).push(i)}r&&this.addElement(e,t,r)}finish(){let e=this.gutter;for(;e.elements.length>this.i;){let t=e.elements.pop();e.dom.removeChild(t.dom),t.destroy()}}},xX=class{constructor(e,t){this.view=e,this.config=t,this.elements=[],this.spacer=null,this.dom=document.createElement(`div`),this.dom.className=`cm-gutter`+(this.config.class?` `+this.config.class:``);for(let n in t.domEventHandlers)this.dom.addEventListener(n,r=>{let i=r.target,a;if(i!=this.dom&&this.dom.contains(i)){for(;i.parentNode!=this.dom;)i=i.parentNode;let e=i.getBoundingClientRect();a=(e.top+e.bottom)/2}else a=r.clientY;let o=e.lineBlockAtHeight(a-e.documentTop);t.domEventHandlers[n](e,o,r)&&r.preventDefault()});this.markers=RK(t.markers(e)),t.initialSpacer&&(this.spacer=new SX(e,0,0,[t.initialSpacer(e)]),this.dom.appendChild(this.spacer.dom),this.spacer.dom.style.cssText+=`visibility: hidden; pointer-events: none`)}update(e){let t=this.markers;if(this.markers=RK(this.config.markers(e.view)),this.spacer&&this.config.updateSpacer){let t=this.config.updateSpacer(this.spacer.markers[0],e);t!=this.spacer.markers[0]&&this.spacer.update(e.view,0,0,[t])}let n=e.view.viewport;return!iW.eq(this.markers,t,n.from,n.to)||(this.config.lineMarkerChange?this.config.lineMarkerChange(e):!1)}destroy(){for(let e of this.elements)e.destroy()}},SX=class{constructor(e,t,n,r){this.height=-1,this.above=0,this.markers=[],this.dom=document.createElement(`div`),this.dom.className=`cm-gutterElement`,this.update(e,t,n,r)}update(e,t,n,r){this.height!=t&&(this.height=t,this.dom.style.height=t+`px`),this.above!=n&&(this.dom.style.marginTop=(this.above=n)?n+`px`:``),Yne(this.markers,r)||this.setMarkers(e,r)}setMarkers(e,t){let n=`cm-gutterElement`,r=this.dom.firstChild;for(let i=0,a=0;;){let o=a,s=i<t.length?t[i++]:null,c=!1;if(s){let e=s.elementClass;e&&(n+=` `+e);for(let e=a;e<this.markers.length;e++)if(this.markers[e].compare(s)){o=e,c=!0;break}}else o=this.markers.length;for(;a<o;){let e=this.markers[a++];if(e.toDOM){e.destroy(r);let t=r.nextSibling;r.remove(),r=t}}if(!s)break;s.toDOM&&(c?r=r.nextSibling:this.dom.insertBefore(s.toDOM(e),r)),c&&a++}this.dom.className=n,this.markers=t}destroy(){this.setMarkers(null,[])}},CX=OU.define(),wX=OU.define(),TX=OU.define({combine(e){return nU(e,{formatNumber:String,domEventHandlers:{}},{domEventHandlers(e,t){let n=Object.assign({},e);for(let e in t){let r=n[e],i=t[e];n[e]=r?(e,t,n)=>r(e,t,n)||i(e,t,n):i}return n}})}}),EX=class extends pX{constructor(e){super(),this.number=e}eq(e){return this.number==e.number}toDOM(){return document.createTextNode(this.number)}},DX=_X.compute([TX],e=>({class:`cm-lineNumbers`,renderEmptyElements:!1,markers(e){return e.state.facet(CX)},lineMarker(e,t,n){return n.some(e=>e.toDOM)?null:new EX(BK(e,e.state.doc.lineAt(t.from).number))},widgetMarker:(e,t,n)=>{for(let r of e.state.facet(wX)){let i=r(e,t,n);if(i)return i}return null},lineMarkerChange:e=>e.startState.facet(TX)!=e.state.facet(TX),initialSpacer(e){return new EX(BK(e,VK(e.state.doc.lines)))},updateSpacer(e,t){let n=BK(t.view,VK(t.view.state.doc.lines));return n==e.number?e:new EX(n)},domEventHandlers:e.facet(TX).domEventHandlers,side:`before`})),OX=new class extends pX{constructor(){super(...arguments),this.elementClass=`cm-activeLineGutter`}},kX=mX.compute([`selection`],e=>{let t=[],n=-1;for(let r of e.selection.ranges){let i=e.doc.lineAt(r.head).from;i>n&&(n=i,t.push(OX.range(i)))}return iW.of(t)})}));function jX(e,t,n,r){switch(e){case-2:return n<t;case-1:return r>=t&&n<t;case 0:return n<t&&r>t;case 1:return n<=t&&r>t;case 2:return r>t;case 4:return!0}}function MX(e,t,n,r){for(;e.from==e.to||(n<1?e.from>=t:e.from>t)||(n>-1?e.to<=t:e.to<t);){let t=!r&&e instanceof nZ&&e.index<0?null:e.parent;if(!t)return e;e=t}let i=r?0:ZX.IgnoreOverlays;if(r)for(let r=e,a=r.parent;a;r=a,a=r.parent)r instanceof nZ&&r.index<0&&a.enter(t,n,i)?.from!=r.from&&(e=a);for(;;){let r=e.enter(t,n,i);if(!r)return e;e=r}}function NX(e,t,n,r){let i=e.cursor(),a=[];if(!i.firstChild())return a;if(n!=null){for(let e=!1;!e;)if(e=i.type.is(n),!i.nextSibling())return a}for(;;){if(r!=null&&i.type.is(r))return a;if(i.type.is(t)&&a.push(i.node),!i.nextSibling())return r==null?a:[]}}function PX(e,t,n=t.length-1){for(let r=e;n>=0;r=r.parent){if(!r)return!1;if(!r.type.isAnonymous){if(t[n]&&t[n]!=r.name)return!1;n--}}return!0}function FX(e){if(!e.length)return null;let t=0,n=e[0];for(let r=1;r<e.length;r++){let i=e[r];(i.from>n.from||i.to<n.to)&&(n=i,t=r)}let r=n instanceof nZ&&n.index<0?null:n.parent,i=e.slice();return r?i[t]=r:i.splice(t,1),new aZ(i,n)}function IX(e,t,n){let r=e.resolveInner(t,n),i=null;for(let e=r instanceof nZ?r:r.context.parent;e;e=e.parent)if(e.index<0){let a=e.parent;(i||(i=[r])).push(a.resolve(t,n)),e=a}else{let a=GX.get(e.tree);if(a&&a.overlay&&a.overlay[0].from<=t&&a.overlay[a.overlay.length-1].to>=t){let o=new nZ(a.tree,a.overlay[0].from+e.from,-1,e);(i||(i=[r])).push(MX(o,t,n,!1))}}return i?FX(i):r}function LX(e){return e.children.some(e=>e instanceof eZ||!e.type.isAnonymous||LX(e))}function RX(e){let{buffer:t,nodeSet:n,maxBufferLength:r=VX,reused:i=[],minRepeatType:a=n.types.length}=e,o=Array.isArray(t)?new $X(t,t.length):t,s=n.types,c=0,l=0;function u(e,t,_,v,y,b){let{id:x,start:S,end:C,size:w}=o,T=l,E=c;if(w<0)if(o.next(),w==-1){let t=i[x];_.push(t),v.push(S-e);return}else if(w==-3){c=x;return}else if(w==-4){l=x;return}else throw RangeError(`Unrecognized record size: ${w}`);let D=s[x],O,k,A=S-e;if(C-S<=r&&(k=h(o.pos-t,y))){let t=new Uint16Array(k.size-k.skip),r=o.pos-k.size,i=t.length;for(;o.pos>r;)i=g(k.start,t,i);O=new eZ(t,C-k.start,n),A=k.start-e}else{let e=o.pos-w;o.next();let t=[],n=[],i=x>=a?x:-1,s=0,c=C;for(;o.pos>e;)i>=0&&o.id==i&&o.size>=0?(o.end<=c-r&&(p(t,n,S,s,o.end,c,i,T,E),s=t.length,c=o.end),o.next()):b>2500?d(S,e,t,n):u(S,e,t,n,i,b+1);if(i>=0&&s>0&&s<t.length&&p(t,n,S,s,S,c,i,T,E),t.reverse(),n.reverse(),i>-1&&s>0){let e=f(D,E);O=BX(D,t,n,0,t.length,0,C-S,e,e)}else O=m(D,t,n,C-S,T-C,E)}_.push(O),v.push(A)}function d(e,t,i,a){let s=[],c=0,l=-1;for(;o.pos>t;){let{id:e,start:t,end:n,size:i}=o;if(i>4)o.next();else if(l>-1&&t<l)break;else l<0&&(l=n-r),s.push(e,t,n),c++,o.next()}if(c){let t=new Uint16Array(c*4),r=s[s.length-2];for(let e=s.length-3,n=0;e>=0;e-=3)t[n++]=s[e],t[n++]=s[e+1]-r,t[n++]=s[e+2]-r,t[n++]=n;i.push(new eZ(t,s[2]-r,n)),a.push(r-e)}}function f(e,t){return(n,r,i)=>{let a=0,o=n.length-1,s,c;if(o>=0&&(s=n[o])instanceof QX){if(!o&&s.type==e&&s.length==i)return s;(c=s.prop(WX.lookAhead))&&(a=r[o]+s.length+c)}return m(e,n,r,i,a,t)}}function p(e,t,r,i,a,o,s,c,l){let u=[],d=[];for(;e.length>i;)u.push(e.pop()),d.push(t.pop()+r-a);e.push(m(n.types[s],u,d,o-a,c-o,l)),t.push(a-r)}function m(e,t,n,r,i,a,o){if(a){let e=[WX.contextHash,a];o=o?[e].concat(o):[e]}if(i>25){let e=[WX.lookAhead,i];o=o?[e].concat(o):[e]}return new QX(e,t,n,r,o)}function h(e,t){let n=o.fork(),i=0,s=0,c=0,l=n.end-r,u={size:0,start:0,skip:0};scan:for(let r=n.pos-e;n.pos>r;){let e=n.size;if(n.id==t&&e>=0){u.size=i,u.start=s,u.skip=c,c+=4,i+=4,n.next();continue}let o=n.pos-e;if(e<0||o<r||n.start<l)break;let d=n.id>=a?4:0,f=n.start;for(n.next();n.pos>o;){if(n.size<0)if(n.size==-3||n.size==-4)d+=4;else break scan;else n.id>=a&&(d+=4);n.next()}s=f,i+=e,c+=d}return(t<0||i==e)&&(u.size=i,u.start=s,u.skip=c),u.size>4?u:void 0}function g(e,t,n){let{id:r,start:i,end:s,size:u}=o;if(o.next(),u>=0&&r<a){let a=n;if(u>4){let r=o.pos-(u-4);for(;o.pos>r;)n=g(e,t,n)}t[--n]=a,t[--n]=s-e,t[--n]=i-e,t[--n]=r}else u==-3?c=r:u==-4&&(l=r);return n}let _=[],v=[];for(;o.pos>0;)u(e.start||0,e.bufferStart||0,_,v,-1,0);let y=e.length??(_.length?v[0]+_[0].length:0);return new QX(s[e.topID],_.reverse(),v.reverse(),y)}function zX(e,t){if(!e.isAnonymous||t instanceof eZ||t.type!=e)return 1;let n=sZ.get(t);if(n==null){n=1;for(let r of t.children){if(r.type!=e||!(r instanceof QX)){n=1;break}n+=zX(e,r)}sZ.set(t,n)}return n}function BX(e,t,n,r,i,a,o,s,c){let l=0;for(let n=r;n<i;n++)l+=zX(e,t[n]);let u=Math.ceil(l*1.5/8),d=[],f=[];function p(t,n,r,i,o){for(let s=r;s<i;){let r=s,l=n[s],m=zX(e,t[s]);for(s++;s<i;s++){let n=zX(e,t[s]);if(m+n>=u)break;m+=n}if(s==r+1){if(m>u){let e=t[r];p(e.children,e.positions,0,e.children.length,n[r]+o);continue}d.push(t[r])}else{let i=n[s-1]+t[s-1].length-l;d.push(BX(e,t,n,r,s,l,i,null,c))}f.push(l+o-a)}}return p(t,n,r,i,0),(s||c)(d,f,o)}var VX,HX,UX,WX,GX,KX,qX,JX,YX,XX,ZX,QX,$X,eZ,tZ,nZ,rZ,iZ,aZ,oZ,sZ,cZ,lZ,uZ,dZ=o((()=>{VX=1024,HX=0,UX=class{constructor(e,t){this.from=e,this.to=t}},WX=class{constructor(e={}){this.id=HX++,this.perNode=!!e.perNode,this.deserialize=e.deserialize||(()=>{throw Error(`This node type doesn't define a deserialize function`)}),this.combine=e.combine||null}add(e){if(this.perNode)throw RangeError(`Can't add per-node props to node types`);return typeof e!=`function`&&(e=qX.match(e)),t=>{let n=e(t);return n===void 0?null:[this,n]}}},WX.closedBy=new WX({deserialize:e=>e.split(` `)}),WX.openedBy=new WX({deserialize:e=>e.split(` `)}),WX.group=new WX({deserialize:e=>e.split(` `)}),WX.isolate=new WX({deserialize:e=>{if(e&&e!=`rtl`&&e!=`ltr`&&e!=`auto`)throw RangeError(`Invalid value for isolate: `+e);return e||`auto`}}),WX.contextHash=new WX({perNode:!0}),WX.lookAhead=new WX({perNode:!0}),WX.mounted=new WX({perNode:!0}),GX=class{constructor(e,t,n){this.tree=e,this.overlay=t,this.parser=n}static get(e){return e&&e.props&&e.props[WX.mounted.id]}},KX=Object.create(null),qX=class e{constructor(e,t,n,r=0){this.name=e,this.props=t,this.id=n,this.flags=r}static define(t){let n=t.props&&t.props.length?Object.create(null):KX,r=!!t.top|(t.skipped?2:0)|(t.error?4:0)|(t.name==null?8:0),i=new e(t.name||``,n,t.id,r);if(t.props){for(let e of t.props)if(Array.isArray(e)||(e=e(i)),e){if(e[0].perNode)throw RangeError(`Can't store a per-node prop on a node type`);n[e[0].id]=e[1]}}return i}prop(e){return this.props[e.id]}get isTop(){return(this.flags&1)>0}get isSkipped(){return(this.flags&2)>0}get isError(){return(this.flags&4)>0}get isAnonymous(){return(this.flags&8)>0}is(e){if(typeof e==`string`){if(this.name==e)return!0;let t=this.prop(WX.group);return t?t.indexOf(e)>-1:!1}return this.id==e}static match(e){let t=Object.create(null);for(let n in e)for(let r of n.split(` `))t[r]=e[n];return e=>{for(let n=e.prop(WX.group),r=-1;r<(n?n.length:0);r++){let i=t[r<0?e.name:n[r]];if(i)return i}}}},qX.none=new qX(``,Object.create(null),0,8),JX=class e{constructor(e){this.types=e;for(let t=0;t<e.length;t++)if(e[t].id!=t)throw RangeError(`Node type ids should correspond to array positions when creating a node set`)}extend(...t){let n=[];for(let e of this.types){let r=null;for(let n of t){let t=n(e);if(t){r||(r=Object.assign({},e.props));let n=t[1],i=t[0];i.combine&&i.id in r&&(n=i.combine(r[i.id],n)),r[i.id]=n}}n.push(r?new qX(e.name,r,e.id,e.flags):e)}return new e(n)}},YX=new WeakMap,XX=new WeakMap,(function(e){e[e.ExcludeBuffers=1]=`ExcludeBuffers`,e[e.IncludeAnonymous=2]=`IncludeAnonymous`,e[e.IgnoreMounts=4]=`IgnoreMounts`,e[e.IgnoreOverlays=8]=`IgnoreOverlays`})(ZX||(ZX={})),QX=class e{constructor(e,t,n,r,i){if(this.type=e,this.children=t,this.positions=n,this.length=r,this.props=null,i&&i.length){this.props=Object.create(null);for(let[e,t]of i)this.props[typeof e==`number`?e:e.id]=t}}toString(){let e=GX.get(this);if(e&&!e.overlay)return e.tree.toString();let t=``;for(let e of this.children){let n=e.toString();n&&(t&&(t+=`,`),t+=n)}return this.type.name?(/\W/.test(this.type.name)&&!this.type.isError?JSON.stringify(this.type.name):this.type.name)+(t.length?`(`+t+`)`:``):t}cursor(e=0){return new oZ(this.topNode,e)}cursorAt(e,t=0,n=0){let r=YX.get(this)||this.topNode,i=new oZ(r);return i.moveTo(e,t),YX.set(this,i._tree),i}get topNode(){return new nZ(this,0,0,null)}resolve(e,t=0){let n=MX(YX.get(this)||this.topNode,e,t,!1);return YX.set(this,n),n}resolveInner(e,t=0){let n=MX(XX.get(this)||this.topNode,e,t,!0);return XX.set(this,n),n}resolveStack(e,t=0){return IX(this,e,t)}iterate(e){let{enter:t,leave:n,from:r=0,to:i=this.length}=e,a=e.mode||0,o=(a&ZX.IncludeAnonymous)>0;for(let e=this.cursor(a|ZX.IncludeAnonymous);;){let a=!1;if(e.from<=i&&e.to>=r&&(!o&&e.type.isAnonymous||t(e)!==!1)){if(e.firstChild())continue;a=!0}for(;a&&n&&(o||!e.type.isAnonymous)&&n(e),!e.nextSibling();){if(!e.parent())return;a=!0}}}prop(e){return e.perNode?this.props?this.props[e.id]:void 0:this.type.prop(e)}get propValues(){let e=[];if(this.props)for(let t in this.props)e.push([+t,this.props[t]]);return e}balance(t={}){return this.children.length<=8?this:BX(qX.none,this.children,this.positions,0,this.children.length,0,this.length,(t,n,r)=>new e(this.type,t,n,r,this.propValues),t.makeTree||((t,n,r)=>new e(qX.none,t,n,r)))}static build(e){return RX(e)}},QX.empty=new QX(qX.none,[],[],0),$X=class e{constructor(e,t){this.buffer=e,this.index=t}get id(){return this.buffer[this.index-4]}get start(){return this.buffer[this.index-3]}get end(){return this.buffer[this.index-2]}get size(){return this.buffer[this.index-1]}get pos(){return this.index}next(){this.index-=4}fork(){return new e(this.buffer,this.index)}},eZ=class e{constructor(e,t,n){this.buffer=e,this.length=t,this.set=n}get type(){return qX.none}toString(){let e=[];for(let t=0;t<this.buffer.length;)e.push(this.childString(t)),t=this.buffer[t+3];return e.join(`,`)}childString(e){let t=this.buffer[e],n=this.buffer[e+3],r=this.set.types[t],i=r.name;if(/\W/.test(i)&&!r.isError&&(i=JSON.stringify(i)),e+=4,n==e)return i;let a=[];for(;e<n;)a.push(this.childString(e)),e=this.buffer[e+3];return i+`(`+a.join(`,`)+`)`}findChild(e,t,n,r,i){let{buffer:a}=this,o=-1;for(let s=e;s!=t&&!(jX(i,r,a[s+1],a[s+2])&&(o=s,n>0));s=a[s+3]);return o}slice(t,n,r){let i=this.buffer,a=new Uint16Array(n-t),o=0;for(let e=t,s=0;e<n;){a[s++]=i[e++],a[s++]=i[e++]-r;let n=a[s++]=i[e++]-r;a[s++]=i[e++]-t,o=Math.max(o,n)}return new e(a,o,this.set)}},tZ=class{cursor(e=0){return new oZ(this,e)}getChild(e,t=null,n=null){let r=NX(this,e,t,n);return r.length?r[0]:null}getChildren(e,t=null,n=null){return NX(this,e,t,n)}resolve(e,t=0){return MX(this,e,t,!1)}resolveInner(e,t=0){return MX(this,e,t,!0)}matchContext(e){return PX(this.parent,e)}enterUnfinishedNodesBefore(e){let t=this.childBefore(e),n=this;for(;t;){let e=t.lastChild;if(!e||e.to!=t.to)break;e.type.isError&&e.from==e.to?(n=t,t=e.prevSibling):t=e}return n}get node(){return this}get next(){return this.parent}},nZ=class e extends tZ{constructor(e,t,n,r){super(),this._tree=e,this.from=t,this.index=n,this._parent=r}get type(){return this._tree.type}get name(){return this._tree.type.name}get to(){return this.from+this._tree.length}nextChild(t,n,r,i,a=0){for(let o=this;;){for(let{children:s,positions:c}=o._tree,l=n>0?s.length:-1;t!=l;t+=n){let l=s[t],u=c[t]+o.from;if(jX(i,r,u,u+l.length)){if(l instanceof eZ){if(a&ZX.ExcludeBuffers)continue;let e=l.findChild(0,l.buffer.length,n,r-u,i);if(e>-1)return new iZ(new rZ(o,l,t,u),null,e)}else if(a&ZX.IncludeAnonymous||!l.type.isAnonymous||LX(l)){let s;if(!(a&ZX.IgnoreMounts)&&(s=GX.get(l))&&!s.overlay)return new e(s.tree,u,t,o);let c=new e(l,u,t,o);return a&ZX.IncludeAnonymous||!c.type.isAnonymous?c:c.nextChild(n<0?l.children.length-1:0,n,r,i)}}}if(a&ZX.IncludeAnonymous||!o.type.isAnonymous||(t=o.index>=0?o.index+n:n<0?-1:o._parent._tree.children.length,o=o._parent,!o))return null}}get firstChild(){return this.nextChild(0,1,0,4)}get lastChild(){return this.nextChild(this._tree.children.length-1,-1,0,4)}childAfter(e){return this.nextChild(0,1,e,2)}childBefore(e){return this.nextChild(this._tree.children.length-1,-1,e,-2)}prop(e){return this._tree.prop(e)}enter(t,n,r=0){let i;if(!(r&ZX.IgnoreOverlays)&&(i=GX.get(this._tree))&&i.overlay){let r=t-this.from;for(let{from:t,to:a}of i.overlay)if((n>0?t<=r:t<r)&&(n<0?a>=r:a>r))return new e(i.tree,i.overlay[0].from+this.from,-1,this)}return this.nextChild(0,1,t,n,r)}nextSignificantParent(){let e=this;for(;e.type.isAnonymous&&e._parent;)e=e._parent;return e}get parent(){return this._parent?this._parent.nextSignificantParent():null}get nextSibling(){return this._parent&&this.index>=0?this._parent.nextChild(this.index+1,1,0,4):null}get prevSibling(){return this._parent&&this.index>=0?this._parent.nextChild(this.index-1,-1,0,4):null}get tree(){return this._tree}toTree(){return this._tree}toString(){return this._tree.toString()}},rZ=class{constructor(e,t,n,r){this.parent=e,this.buffer=t,this.index=n,this.start=r}},iZ=class e extends tZ{get name(){return this.type.name}get from(){return this.context.start+this.context.buffer.buffer[this.index+1]}get to(){return this.context.start+this.context.buffer.buffer[this.index+2]}constructor(e,t,n){super(),this.context=e,this._parent=t,this.index=n,this.type=e.buffer.set.types[e.buffer.buffer[n]]}child(t,n,r){let{buffer:i}=this.context,a=i.findChild(this.index+4,i.buffer[this.index+3],t,n-this.context.start,r);return a<0?null:new e(this.context,this,a)}get firstChild(){return this.child(1,0,4)}get lastChild(){return this.child(-1,0,4)}childAfter(e){return this.child(1,e,2)}childBefore(e){return this.child(-1,e,-2)}prop(e){return this.type.prop(e)}enter(t,n,r=0){if(r&ZX.ExcludeBuffers)return null;let{buffer:i}=this.context,a=i.findChild(this.index+4,i.buffer[this.index+3],n>0?1:-1,t-this.context.start,n);return a<0?null:new e(this.context,this,a)}get parent(){return this._parent||this.context.parent.nextSignificantParent()}externalSibling(e){return this._parent?null:this.context.parent.nextChild(this.context.index+e,e,0,4)}get nextSibling(){let{buffer:t}=this.context,n=t.buffer[this.index+3];return n<(this._parent?t.buffer[this._parent.index+3]:t.buffer.length)?new e(this.context,this._parent,n):this.externalSibling(1)}get prevSibling(){let{buffer:t}=this.context,n=this._parent?this._parent.index+4:0;return this.index==n?this.externalSibling(-1):new e(this.context,this._parent,t.findChild(n,this.index,-1,0,4))}get tree(){return null}toTree(){let e=[],t=[],{buffer:n}=this.context,r=this.index+4,i=n.buffer[this.index+3];if(i>r){let a=n.buffer[this.index+1];e.push(n.slice(r,i,a)),t.push(0)}return new QX(this.type,e,t,this.to-this.from)}toString(){return this.context.buffer.childString(this.index)}},aZ=class{constructor(e,t){this.heads=e,this.node=t}get next(){return FX(this.heads)}},oZ=class{get name(){return this.type.name}constructor(e,t=0){if(this.mode=t,this.buffer=null,this.stack=[],this.index=0,this.bufferNode=null,e instanceof nZ)this.yieldNode(e);else{this._tree=e.context.parent,this.buffer=e.context;for(let t=e._parent;t;t=t._parent)this.stack.unshift(t.index);this.bufferNode=e,this.yieldBuf(e.index)}}yieldNode(e){return e?(this._tree=e,this.type=e.type,this.from=e.from,this.to=e.to,!0):!1}yieldBuf(e,t){this.index=e;let{start:n,buffer:r}=this.buffer;return this.type=t||r.set.types[r.buffer[e]],this.from=n+r.buffer[e+1],this.to=n+r.buffer[e+2],!0}yield(e){return e?e instanceof nZ?(this.buffer=null,this.yieldNode(e)):(this.buffer=e.context,this.yieldBuf(e.index,e.type)):!1}toString(){return this.buffer?this.buffer.buffer.childString(this.index):this._tree.toString()}enterChild(e,t,n){if(!this.buffer)return this.yield(this._tree.nextChild(e<0?this._tree._tree.children.length-1:0,e,t,n,this.mode));let{buffer:r}=this.buffer,i=r.findChild(this.index+4,r.buffer[this.index+3],e,t-this.buffer.start,n);return i<0?!1:(this.stack.push(this.index),this.yieldBuf(i))}firstChild(){return this.enterChild(1,0,4)}lastChild(){return this.enterChild(-1,0,4)}childAfter(e){return this.enterChild(1,e,2)}childBefore(e){return this.enterChild(-1,e,-2)}enter(e,t,n=this.mode){return this.buffer?n&ZX.ExcludeBuffers?!1:this.enterChild(1,e,t):this.yield(this._tree.enter(e,t,n))}parent(){if(!this.buffer)return this.yieldNode(this.mode&ZX.IncludeAnonymous?this._tree._parent:this._tree.parent);if(this.stack.length)return this.yieldBuf(this.stack.pop());let e=this.mode&ZX.IncludeAnonymous?this.buffer.parent:this.buffer.parent.nextSignificantParent();return this.buffer=null,this.yieldNode(e)}sibling(e){if(!this.buffer)return this._tree._parent?this.yield(this._tree.index<0?null:this._tree._parent.nextChild(this._tree.index+e,e,0,4,this.mode)):!1;let{buffer:t}=this.buffer,n=this.stack.length-1;if(e<0){let e=n<0?0:this.stack[n]+4;if(this.index!=e)return this.yieldBuf(t.findChild(e,this.index,-1,0,4))}else{let e=t.buffer[this.index+3];if(e<(n<0?t.buffer.length:t.buffer[this.stack[n]+3]))return this.yieldBuf(e)}return n<0&&this.yield(this.buffer.parent.nextChild(this.buffer.index+e,e,0,4,this.mode))}nextSibling(){return this.sibling(1)}prevSibling(){return this.sibling(-1)}atLastNode(e){let t,n,{buffer:r}=this;if(r){if(e>0){if(this.index<r.buffer.buffer.length)return!1}else for(let e=0;e<this.index;e++)if(r.buffer.buffer[e+3]<this.index)return!1;({index:t,parent:n}=r)}else({index:t,_parent:n}=this._tree);for(;n;{index:t,_parent:n}=n)if(t>-1)for(let r=t+e,i=e<0?-1:n._tree.children.length;r!=i;r+=e){let e=n._tree.children[r];if(this.mode&ZX.IncludeAnonymous||e instanceof eZ||!e.type.isAnonymous||LX(e))return!1}return!0}move(e,t){if(t&&this.enterChild(e,0,4))return!0;for(;;){if(this.sibling(e))return!0;if(this.atLastNode(e)||!this.parent())return!1}}next(e=!0){return this.move(1,e)}prev(e=!0){return this.move(-1,e)}moveTo(e,t=0){for(;(this.from==this.to||(t<1?this.from>=e:this.from>e)||(t>-1?this.to<=e:this.to<e))&&this.parent(););for(;this.enterChild(1,e,t););return this}get node(){if(!this.buffer)return this._tree;let e=this.bufferNode,t=null,n=0;if(e&&e.context==this.buffer)scan:for(let r=this.index,i=this.stack.length;i>=0;){for(let a=e;a;a=a._parent)if(a.index==r){if(r==this.index)return a;t=a,n=i+1;break scan}r=this.stack[--i]}for(let e=n;e<this.stack.length;e++)t=new iZ(this.buffer,t,this.stack[e]);return this.bufferNode=new iZ(this.buffer,t,this.index)}get tree(){return this.buffer?null:this._tree._tree}iterate(e,t){for(let n=0;;){let r=!1;if(this.type.isAnonymous||e(this)!==!1){if(this.firstChild()){n++;continue}this.type.isAnonymous||(r=!0)}for(;;){if(r&&t&&t(this),r=this.type.isAnonymous,!n)return;if(this.nextSibling())break;this.parent(),n--,r=!0}}}matchContext(e){if(!this.buffer)return PX(this.node.parent,e);let{buffer:t}=this.buffer,{types:n}=t.set;for(let r=e.length-1,i=this.stack.length-1;r>=0;i--){if(i<0)return PX(this._tree,e,r);let a=n[t.buffer[this.stack[i]]];if(!a.isAnonymous){if(e[r]&&e[r]!=a.name)return!1;r--}}return!0}},sZ=new WeakMap,cZ=class e{constructor(e,t,n,r,i=!1,a=!1){this.from=e,this.to=t,this.tree=n,this.offset=r,this.open=!!i|(a?2:0)}get openStart(){return(this.open&1)>0}get openEnd(){return(this.open&2)>0}static addTree(t,n=[],r=!1){let i=[new e(0,t.length,t,0,!1,r)];for(let e of n)e.to>t.length&&i.push(e);return i}static applyChanges(t,n,r=128){if(!n.length)return t;let i=[],a=1,o=t.length?t[0]:null;for(let s=0,c=0,l=0;;s++){let u=s<n.length?n[s]:null,d=u?u.fromA:1e9;if(d-c>=r)for(;o&&o.from<d;){let n=o;if(c>=n.from||d<=n.to||l){let t=Math.max(n.from,c)-l,r=Math.min(n.to,d)-l;n=t>=r?null:new e(t,r,n.tree,n.offset+l,s>0,!!u)}if(n&&i.push(n),o.to>d)break;o=a<t.length?t[a++]:null}if(!u)break;c=u.toA,l=u.toA-u.toB}return i}},lZ=class{startParse(e,t,n){return typeof e==`string`&&(e=new uZ(e)),n=n?n.length?n.map(e=>new UX(e.from,e.to)):[new UX(0,0)]:[new UX(0,e.length)],this.createParse(e,t||[],n)}parse(e,t,n){let r=this.startParse(e,t,n);for(;;){let e=r.advance();if(e)return e}}},uZ=class{constructor(e){this.string=e}get length(){return this.string.length}chunk(e){return this.string.slice(e)}get lineChunks(){return!1}read(e,t){return this.string.slice(e,t)}},new WX({perNode:!0})}));function fZ(e,t){return e.length==t.length&&e.every((e,n)=>e==t[n])}function pZ(e){let t=[[]];for(let n=0;n<e.length;n++)for(let r=0,i=t.length;r<i;r++)t.push(t[r].concat(e[n]));return t.sort((e,t)=>t.length-e.length)}function mZ(e){let t=Object.create(null);for(let n in e){let r=e[n];Array.isArray(r)||(r=[r]);for(let e of n.split(` `))if(e){let n=[],i=2,a=e;for(let t=0;;){if(a==`...`&&t>0&&t+3==e.length){i=1;break}let r=/^"(?:[^"\\]|\\.)*?"|[^\/!]+/.exec(a);if(!r)throw RangeError(`Invalid path: `+e);if(n.push(r[0]==`*`?``:r[0][0]==`"`?JSON.parse(r[0]):r[0]),t+=r[0].length,t==e.length)break;let o=e[t++];if(t==e.length&&o==`!`){i=0;break}if(o!=`/`)throw RangeError(`Invalid path: `+e);a=e.slice(t)}let o=n.length-1,s=n[o];if(!s)throw RangeError(`Invalid path: `+e);t[s]=new wZ(r,i,o>0?n.slice(0,o):null).sort(t[s])}}return CZ.add(t)}function hZ(e,t){let n=Object.create(null);for(let t of e)if(!Array.isArray(t.tag))n[t.tag.id]=t.class;else for(let e of t.tag)n[e.id]=t.class;let{scope:r,all:i=null}=t||{};return{style:e=>{let t=i;for(let r of e)for(let e of r.set){let r=n[e.id];if(r){t=t?t+` `+r:r;break}}return t},scope:r}}function gZ(e,t){let n=null;for(let r of e){let e=r.style(t);e&&(n=n?n+` `+e:e)}return n}function _Z(e,t,n,r=0,i=e.length){let a=new TZ(r,Array.isArray(t)?t:[t],n);a.highlightRange(e.cursor(),r,i,``,a.highlighters),a.flush(i)}function vZ(e){let t=e.type.prop(CZ);for(;t&&t.context&&!e.matchContext(t.context);)t=t.next;return t||null}var yZ,bZ,xZ,SZ,CZ,wZ,TZ,EZ,DZ,OZ,kZ,AZ,jZ,MZ,NZ,PZ,FZ,IZ,LZ,RZ,zZ,BZ,Z,VZ=o((()=>{dZ(),yZ=0,bZ=class e{constructor(e,t,n,r){this.name=e,this.set=t,this.base=n,this.modified=r,this.id=yZ++}toString(){let{name:e}=this;for(let t of this.modified)t.name&&(e=`${t.name}(${e})`);return e}static define(t,n){let r=typeof t==`string`?t:`?`;if(t instanceof e&&(n=t),n?.base)throw Error(`Can not derive from a modified tag`);let i=new e(r,[],null,[]);if(i.set.push(i),n)for(let e of n.set)i.set.push(e);return i}static defineModifier(e){let t=new SZ(e);return e=>e.modified.indexOf(t)>-1?e:SZ.get(e.base||e,e.modified.concat(t).sort((e,t)=>e.id-t.id))}},xZ=0,SZ=class e{constructor(e){this.name=e,this.instances=[],this.id=xZ++}static get(t,n){if(!n.length)return t;let r=n[0].instances.find(e=>e.base==t&&fZ(n,e.modified));if(r)return r;let i=[],a=new bZ(t.name,i,t,n);for(let e of n)e.instances.push(a);let o=pZ(n);for(let n of t.set)if(!n.modified.length)for(let t of o)i.push(e.get(n,t));return a}},CZ=new WX({combine(e,t){let n,r,i;for(;e||t;){if(!e||t&&e.depth>=t.depth?(i=t,t=t.next):(i=e,e=e.next),n&&n.mode==i.mode&&!i.context&&!n.context)continue;let a=new wZ(i.tags,i.mode,i.context);n?n.next=a:r=a,n=a}return r}}),wZ=class{constructor(e,t,n,r){this.tags=e,this.mode=t,this.context=n,this.next=r}get opaque(){return this.mode==0}get inherit(){return this.mode==1}sort(e){return!e||e.depth<this.depth?(this.next=e,this):(e.next=this.sort(e.next),e)}get depth(){return this.context?this.context.length:0}},wZ.empty=new wZ([],2,null),TZ=class{constructor(e,t,n){this.at=e,this.highlighters=t,this.span=n,this.class=``}startSpan(e,t){t!=this.class&&(this.flush(e),e>this.at&&(this.at=e),this.class=t)}flush(e){e>this.at&&this.class&&this.span(this.at,e,this.class)}highlightRange(e,t,n,r,i){let{type:a,from:o,to:s}=e;if(o>=n||s<=t)return;a.isTop&&(i=this.highlighters.filter(e=>!e.scope||e.scope(a)));let c=r,l=vZ(e)||wZ.empty,u=gZ(i,l.tags);if(u&&(c&&(c+=` `),c+=u,l.mode==1&&(r+=(r?` `:``)+u)),this.startSpan(Math.max(t,o),c),l.opaque)return;let d=e.tree&&e.tree.prop(WX.mounted);if(d&&d.overlay){let a=e.node.enter(d.overlay[0].from+o,1),l=this.highlighters.filter(e=>!e.scope||e.scope(d.tree.type)),u=e.firstChild();for(let f=0,p=o;;f++){let m=f<d.overlay.length?d.overlay[f]:null,h=m?m.from+o:s,g=Math.max(t,p),_=Math.min(n,h);if(g<_&&u)for(;e.from<_&&(this.highlightRange(e,g,_,r,i),this.startSpan(Math.min(_,e.to),c),!(e.to>=h||!e.nextSibling())););if(!m||h>n)break;p=m.to+o,p>t&&(this.highlightRange(a.cursor(),Math.max(t,m.from+o),Math.min(n,p),``,l),this.startSpan(Math.min(n,p),c))}u&&e.parent()}else if(e.firstChild()){d&&(r=``);do{if(e.to<=t)continue;if(e.from>=n)break;this.highlightRange(e,t,n,r,i),this.startSpan(Math.min(n,e.to),c)}while(e.nextSibling());e.parent()}}},EZ=bZ.define,DZ=EZ(),OZ=EZ(),kZ=EZ(OZ),AZ=EZ(OZ),jZ=EZ(),MZ=EZ(jZ),NZ=EZ(jZ),PZ=EZ(),FZ=EZ(PZ),IZ=EZ(),LZ=EZ(),RZ=EZ(),zZ=EZ(RZ),BZ=EZ(),Z={comment:DZ,lineComment:EZ(DZ),blockComment:EZ(DZ),docComment:EZ(DZ),name:OZ,variableName:EZ(OZ),typeName:kZ,tagName:EZ(kZ),propertyName:AZ,attributeName:EZ(AZ),className:EZ(OZ),labelName:EZ(OZ),namespace:EZ(OZ),macroName:EZ(OZ),literal:jZ,string:MZ,docString:EZ(MZ),character:EZ(MZ),attributeValue:EZ(MZ),number:NZ,integer:EZ(NZ),float:EZ(NZ),bool:EZ(jZ),regexp:EZ(jZ),escape:EZ(jZ),color:EZ(jZ),url:EZ(jZ),keyword:IZ,self:EZ(IZ),null:EZ(IZ),atom:EZ(IZ),unit:EZ(IZ),modifier:EZ(IZ),operatorKeyword:EZ(IZ),controlKeyword:EZ(IZ),definitionKeyword:EZ(IZ),moduleKeyword:EZ(IZ),operator:LZ,derefOperator:EZ(LZ),arithmeticOperator:EZ(LZ),logicOperator:EZ(LZ),bitwiseOperator:EZ(LZ),compareOperator:EZ(LZ),updateOperator:EZ(LZ),definitionOperator:EZ(LZ),typeOperator:EZ(LZ),controlOperator:EZ(LZ),punctuation:RZ,separator:EZ(RZ),bracket:zZ,angleBracket:EZ(zZ),squareBracket:EZ(zZ),paren:EZ(zZ),brace:EZ(zZ),content:PZ,heading:FZ,heading1:EZ(FZ),heading2:EZ(FZ),heading3:EZ(FZ),heading4:EZ(FZ),heading5:EZ(FZ),heading6:EZ(FZ),contentSeparator:EZ(PZ),list:EZ(PZ),quote:EZ(PZ),emphasis:EZ(PZ),strong:EZ(PZ),link:EZ(PZ),monospace:EZ(PZ),strikethrough:EZ(PZ),inserted:EZ(),deleted:EZ(),changed:EZ(),invalid:EZ(),meta:BZ,documentMeta:EZ(BZ),annotation:EZ(BZ),processingInstruction:EZ(BZ),definition:bZ.defineModifier(`definition`),constant:bZ.defineModifier(`constant`),function:bZ.defineModifier(`function`),standard:bZ.defineModifier(`standard`),local:bZ.defineModifier(`local`),special:bZ.defineModifier(`special`)};for(let e in Z){let t=Z[e];t instanceof bZ&&(t.name=e)}hZ([{tag:Z.link,class:`tok-link`},{tag:Z.heading,class:`tok-heading`},{tag:Z.emphasis,class:`tok-emphasis`},{tag:Z.strong,class:`tok-strong`},{tag:Z.keyword,class:`tok-keyword`},{tag:Z.atom,class:`tok-atom`},{tag:Z.bool,class:`tok-bool`},{tag:Z.url,class:`tok-url`},{tag:Z.labelName,class:`tok-labelName`},{tag:Z.inserted,class:`tok-inserted`},{tag:Z.deleted,class:`tok-deleted`},{tag:Z.literal,class:`tok-literal`},{tag:Z.string,class:`tok-string`},{tag:Z.number,class:`tok-number`},{tag:[Z.regexp,Z.escape,Z.special(Z.string)],class:`tok-string2`},{tag:Z.variableName,class:`tok-variableName`},{tag:Z.local(Z.variableName),class:`tok-variableName tok-local`},{tag:Z.definition(Z.variableName),class:`tok-variableName tok-definition`},{tag:Z.special(Z.variableName),class:`tok-variableName2`},{tag:Z.definition(Z.propertyName),class:`tok-propertyName tok-definition`},{tag:Z.typeName,class:`tok-typeName`},{tag:Z.namespace,class:`tok-namespace`},{tag:Z.className,class:`tok-className`},{tag:Z.macroName,class:`tok-macroName`},{tag:Z.propertyName,class:`tok-propertyName`},{tag:Z.operator,class:`tok-operator`},{tag:Z.comment,class:`tok-comment`},{tag:Z.meta,class:`tok-meta`},{tag:Z.invalid,class:`tok-invalid`},{tag:Z.punctuation,class:`tok-punctuation`}])}));function HZ(e){return OU.define({combine:e?t=>t.concat(e):void 0})}function UZ(e,t,n){let r=e.facet(VQ),i=WZ(e).topNode;if(!r||r.allowsNesting)for(let e=i;e;e=e.enter(t,n,ZX.ExcludeBuffers))e.type.isTop&&(i=e);return i}function WZ(e){let t=e.field(MQ.state,!1);return t?t.tree:QX.empty}function GZ(e,t,n){return cZ.applyChanges(e,[{fromA:t,toA:n,fromB:t,toB:n}])}function KZ(e){let t=e.facet(WQ);return t.charCodeAt(0)==9?e.tabSize*t.length:t.length}function qZ(e,t){let n=``,r=e.tabSize,i=e.facet(WQ)[0];if(i==` `){for(;t>=r;)n+=` `,t-=r;i=` `}for(let e=0;e<t;e++)n+=i;return n}function JZ(e,t){e instanceof eW&&(e=new GQ(e));for(let n of e.state.facet(UQ)){let r=n(e,t);if(r!==void 0)return r}let n=WZ(e.state);return n.length>=t?YZ(e,n,t):null}function YZ(e,t,n){let r=t.resolveStack(n),i=t.resolveInner(n,-1).resolve(n,0).enterUnfinishedNodesBefore(n);if(i!=r.node){let e=[];for(let t=i;t&&!(t.from<r.node.from||t.to>r.node.to||t.from==r.node.from&&t.type==r.node.type);t=t.parent)e.push(t);for(let t=e.length-1;t>=0;t--)r={node:e[t],next:r}}return XZ(r,e,n)}function XZ(e,t,n){for(let r=e;r;r=r.next){let e=QZ(r.node);if(e)return e(qQ.create(t,n,r))}return 0}function ZZ(e){return e.pos==e.options.simulateBreak&&e.options.simulateDoubleBreak}function QZ(e){let t=e.type.prop(KQ);if(t)return t;let n=e.firstChild,r;if(n&&(r=n.type.prop(WX.closedBy))){let t=e.lastChild,n=t&&r.indexOf(t.name)>-1;return e=>rQ(e,!0,1,void 0,n&&!ZZ(e)?t.from:void 0)}return e.parent==null?$Z:null}function $Z(){return 0}function eQ(e,t){for(let n=t;n;n=n.parent)if(e==n)return!0;return!1}function tQ(e){let t=e.node,n=t.childAfter(t.from),r=t.lastChild;if(!n)return null;let i=e.options.simulateBreak,a=e.state.doc.lineAt(n.from),o=i==null||i<=a.from?a.to:Math.min(a.to,i);for(let e=n.to;;){let i=t.childAfter(e);if(!i||i==r)return null;if(!i.type.isSkipped){if(i.from>=o)return null;let e=/^ */.exec(a.text.slice(n.to-a.from))[0].length;return{from:n.from,to:n.to+e}}e=i.to}}function nQ({closing:e,align:t=!0,units:n=1}){return r=>rQ(r,t,n,e)}function rQ(e,t,n,r,i){let a=e.textAfter,o=a.match(/^\s*/)[0].length,s=r&&a.slice(o,o+r.length)==r||i==e.pos+o,c=t?tQ(e):null;return c?s?e.column(c.from):e.column(c.to):e.baseIndent+(s?0:e.unit*n)}function iQ(){return eW.transactionFilter.of(e=>{if(!e.docChanged||!e.isUserEvent(`input.type`)&&!e.isUserEvent(`input.complete`))return e;let t=e.startState.languageDataAt(`indentOnInput`,e.startState.selection.main.head);if(!t.length)return e;let n=e.newDoc,{head:r}=e.newSelection.main,i=n.lineAt(r);if(r>i.from+JQ)return e;let a=n.sliceString(i.from,r);if(!t.some(e=>e.test(a)))return e;let{state:o}=e,s=-1,c=[];for(let{head:e}of o.selection.ranges){let t=o.doc.lineAt(e);if(t.from==s)continue;s=t.from;let n=JZ(o,t.from);if(n==null)continue;let r=/^\s*/.exec(t.text)[0],i=qZ(o,n);r!=i&&c.push({from:t.from,to:t.from+r.length,insert:i})}return c.length?[e,{changes:c,sequential:!0}]:e})}function aQ(e){let t=e.firstChild,n=e.lastChild;return t&&t.to<n.from?{from:t.to,to:n.type.isError?e.to:n.from}:null}function oQ(e,t,n){let r=WZ(e);if(r.length<n)return null;let i=r.resolveStack(n,1),a=null;for(let o=i;o;o=o.next){let i=o.node;if(i.to<=n||i.from>n)continue;if(a&&i.from<t)break;let s=i.type.prop(XQ);if(s&&(i.to<r.length-50||r.length==e.doc.length||!sQ(i))){let r=s(i,e);r&&r.from<=n&&r.from>=t&&r.to>n&&(a=r)}}return a}function sQ(e){let t=e.lastChild;return t&&t.to==e.to&&t.type.isError}function cQ(e,t,n){for(let r of e.facet(YQ)){let i=r(e,t,n);if(i)return i}return oQ(e,t,n)}function lQ(e,t){let n=t.mapPos(e.from,1),r=t.mapPos(e.to,-1);return n>=r?void 0:{from:n,to:r}}function uQ(e){let t=[];for(let{head:n}of e.state.selection.ranges)t.some(e=>e.from<=n&&e.to>=n)||t.push(e.lineBlockAt(n));return t}function dQ(e,t,n=t){let r=!1;return e.between(t,n,(e,i)=>{e<n&&i>t&&(r=!0)}),r?e.update({filterFrom:t,filterTo:n,filter:(e,r)=>e>=n||r<=t}):e}function fQ(e,t,n){var r;let i=null;return(r=e.field($Q,!1))==null||r.between(t,n,(e,t)=>{(!i||i.from>e)&&(i={from:e,to:t})}),i}function pQ(e,t,n){let r=!1;return e.between(t,t,(e,i)=>{e==t&&i==n&&(r=!0)}),r}function mQ(e,t){return e.field($Q,!1)?t:t.concat(JU.appendConfig.of(gQ()))}function hQ(e,t,n=!0){let r=e.state.doc.lineAt(t.from).number,i=e.state.doc.lineAt(t.to).number;return fY.announce.of(`${e.state.phrase(n?`Folded lines`:`Unfolded lines`)} ${r} ${e.state.phrase(`to`)} ${i}.`)}function gQ(e){let t=[$Q,d$];return e&&t.push(o$.of(e)),t}function _Q(e,t){let{state:n}=e,r=n.facet(o$),i=t=>{let n=e.lineBlockAt(e.posAtDOM(t.target)),r=fQ(e.state,n.from,n.to);r&&e.dispatch({effects:QQ.of(r)}),t.preventDefault()};if(r.placeholderDOM)return r.placeholderDOM(e,i,t);let a=document.createElement(`span`);return a.textContent=r.placeholderText,a.setAttribute(`aria-label`,n.phrase(`folded code`)),a.title=n.phrase(`unfold`),a.className=`cm-foldPlaceholder`,a.onclick=i,a}function vQ(e={}){let t={...l$,...e},n=new u$(t,!0),r=new u$(t,!1),i=$q.fromClass(class{constructor(e){this.from=e.viewport.from,this.markers=this.buildMarkers(e)}update(e){(e.docChanged||e.viewportChanged||e.startState.facet(VQ)!=e.state.facet(VQ)||e.startState.field($Q,!1)!=e.state.field($Q,!1)||WZ(e.startState)!=WZ(e.state)||t.foldingChanged(e))&&(this.markers=this.buildMarkers(e.view))}buildMarkers(e){let t=new aW;for(let i of e.viewportLineBlocks){let a=fQ(e.state,i.from,i.to)?r:cQ(e.state,i.from,i.to)?n:null;a&&t.add(i.from,i.from,a)}return t.finish()}}),{domEventHandlers:a}=t;return[i,Jne({class:`cm-foldGutter`,markers(e){return e.plugin(i)?.markers||iW.empty},initialSpacer(){return new u$(t,!1)},domEventHandlers:{...a,click:(e,t,n)=>{if(a.click&&a.click(e,t,n))return!0;let r=fQ(e.state,t.from,t.to);if(r)return e.dispatch({effects:QQ.of(r)}),!0;let i=cQ(e.state,t.from,t.to);return i?(e.dispatch({effects:ZQ.of(i)}),!0):!1}}}),gQ()]}function yQ(e){let t=e.facet(p$);return t.length?t:e.facet(m$)}function bQ(e,t){let n=[g$],r;return e instanceof f$&&(e.module&&n.push(fY.styleModule.of(e.module)),r=e.themeType),t?.fallback?n.push(m$.of(e)):r?n.push(p$.computeN([fY.darkTheme],t=>t.facet(fY.darkTheme)==(r==`dark`)?[e]:[])):n.push(p$.of(e)),n}function xQ(e){let t=[],n=e.matched?S$:C$;return t.push(n.range(e.start.from,e.start.to)),e.end&&t.push(n.range(e.end.from,e.end.to)),t}function SQ(e={}){return[x$.of(e),w$]}function CQ(e,t,n){let r=e.prop(t<0?WX.openedBy:WX.closedBy);if(r)return r;if(e.name.length==1){let r=n.indexOf(e.name);if(r>-1&&r%2==+(t<0))return[n[r+t]]}return null}function wQ(e){let t=e.type.prop(T$);return t?t(e.node):e}function TQ(e,t,n,r={}){let i=r.maxScanDistance||y$,a=r.brackets||b$,o=WZ(e),s=o.resolveInner(t,n);for(let r=s;r;r=r.parent){let i=CQ(r.type,n,a);if(i&&r.from<r.to){let o=wQ(r);if(o&&(n>0?t>=o.from&&t<o.to:t>o.from&&t<=o.to))return EQ(e,t,n,r,o,i,a)}}return DQ(e,t,n,o,s.type,i,a)}function EQ(e,t,n,r,i,a,o){let s=r.parent,c={from:i.from,to:i.to},l=0,u=s?.cursor();if(u&&(n<0?u.childBefore(r.from):u.childAfter(r.to)))do if(n<0?u.to<=r.from:u.from>=r.to){if(l==0&&a.indexOf(u.type.name)>-1&&u.from<u.to){let e=wQ(u);return{start:c,end:e?{from:e.from,to:e.to}:void 0,matched:!0}}else if(CQ(u.type,n,o))l++;else if(CQ(u.type,-n,o)){if(l==0){let e=wQ(u);return{start:c,end:e&&e.from<e.to?{from:e.from,to:e.to}:void 0,matched:!1}}l--}}while(n<0?u.prevSibling():u.nextSibling());return{start:c,matched:!1}}function DQ(e,t,n,r,i,a,o){let s=n<0?e.sliceDoc(t-1,t):e.sliceDoc(t,t+1),c=o.indexOf(s);if(c<0||c%2==0!=n>0)return null;let l={from:n<0?t-1:t,to:n>0?t+1:t},u=e.doc.iterRange(t,n>0?e.doc.length:0),d=0;for(let e=0;!u.next().done&&e<=a;){let a=u.value;n<0&&(e+=a.length);let s=t+e*n;for(let e=n>0?0:a.length-1,t=n>0?a.length:-1;e!=t;e+=n){let t=o.indexOf(a[e]);if(!(t<0||r.resolveInner(s+e,1).type!=i))if(t%2==0==n>0)d++;else if(d==1)return{start:l,end:{from:s+e,to:s+e+1},matched:t>>1==c>>1};else d--}n>0&&(e+=a.length)}return u.done?{start:l,matched:!1}:null}function OQ(e,t){O$.indexOf(e)>-1||(O$.push(e),console.warn(t))}function kQ(e,t){let n=[];for(let r of t.split(` `)){let t=[];for(let n of r.split(`.`)){let r=e[n]||Z[n];r?typeof r==`function`?t.length?t=t.map(r):OQ(n,`Modifier ${n} used at start of tag`):t.length?OQ(n,`Tag ${n} used as modifier`):t=Array.isArray(r)?r:[r]:OQ(n,`Unknown highlighting tag ${n}`)}for(let e of t)n.push(e)}if(!n.length)return 0;let r=t.replace(/ /g,`_`),i=r+` `+n.map(e=>e.id),a=k$[i];if(a)return a.id;let o=k$[i]=qX.define({id:D$.length,name:r,props:[mZ({[r]:n})]});return D$.push(o),o.id}var AQ,jQ,MQ,NQ,PQ,FQ,IQ,LQ,RQ,zQ,BQ,VQ,HQ,UQ,WQ,GQ,KQ,qQ,JQ,YQ,XQ,ZQ,QQ,$Q,e$,t$,n$,r$,i$,a$,o$,s$,c$,l$,u$,d$,f$,p$,m$,h$,g$,_$,v$,y$,b$,x$,S$,C$,w$,T$,E$,D$,O$,k$,A$,j$=o((()=>{dZ(),lW(),AX(),VZ(),_W(),AQ=new WX,jQ=new WX,MQ=class{constructor(e,t,n=[],r=``){this.data=e,this.name=r,eW.prototype.hasOwnProperty(`tree`)||Object.defineProperty(eW.prototype,"tree",{get(){return WZ(this)}}),this.parser=t,this.extension=[VQ.of(this),eW.languageData.of((e,t,n)=>{let r=UZ(e,t,n),i=r.type.prop(AQ);if(!i)return[];let a=e.facet(i),o=r.type.prop(jQ);if(o){let i=r.resolve(t-r.from,n);for(let t of o)if(t.test(i,e)){let n=e.facet(t.facet);return t.type==`replace`?n:n.concat(a)}}return a})].concat(n)}isActiveAt(e,t,n=-1){return UZ(e,t,n).type.prop(AQ)==this.data}findRegions(e){let t=e.facet(VQ);if(t?.data==this.data)return[{from:0,to:e.doc.length}];if(!t||!t.allowsNesting)return[];let n=[],r=(e,t)=>{if(e.prop(AQ)==this.data){n.push({from:t,to:t+e.length});return}let i=e.prop(WX.mounted);if(i){if(i.tree.prop(AQ)==this.data){if(i.overlay)for(let e of i.overlay)n.push({from:e.from+t,to:e.to+t});else n.push({from:t,to:t+e.length});return}else if(i.overlay){let e=n.length;if(r(i.tree,i.overlay[0].from+t),n.length>e)return}}for(let n=0;n<e.children.length;n++){let i=e.children[n];i instanceof QX&&r(i,e.positions[n]+t)}};return r(WZ(e),0),n}get allowsNesting(){return!0}},MQ.setState=JU.define(),NQ=class e extends MQ{constructor(e,t,n){super(e,t,[],n),this.parser=t}static define(t){let n=HZ(t.languageData);return new e(n,t.parser.configure({props:[AQ.add(e=>e.isTop?n:void 0)]}),t.name)}configure(t,n){return new e(this.data,this.parser.configure(t),n||this.name)}get allowsNesting(){return this.parser.hasWrappers()}},PQ=class{constructor(e){this.doc=e,this.cursorPos=0,this.string=``,this.cursor=e.iter()}get length(){return this.doc.length}syncTo(e){return this.string=this.cursor.next(e-this.cursorPos).value,this.cursorPos=e+this.string.length,this.cursorPos-this.string.length}chunk(e){return this.syncTo(e),this.string}get lineChunks(){return!0}read(e,t){let n=this.cursorPos-this.string.length;return e<n||t>=this.cursorPos?this.doc.sliceString(e,t):this.string.slice(e-n,t-n)}},FQ=null,IQ=class e{constructor(e,t,n=[],r,i,a,o,s){this.parser=e,this.state=t,this.fragments=n,this.tree=r,this.treeLen=i,this.viewport=a,this.skipped=o,this.scheduleOn=s,this.parse=null,this.tempSkipped=[]}static create(t,n,r){return new e(t,n,[],QX.empty,0,r,[],null)}startParse(){return this.parser.startParse(new PQ(this.state.doc),this.fragments)}work(e,t){return t!=null&&t>=this.state.doc.length&&(t=void 0),this.tree!=QX.empty&&this.isDone(t??this.state.doc.length)?(this.takeTree(),!0):this.withContext(()=>{if(typeof e==`number`){let t=Date.now()+e;e=()=>Date.now()>t}for(this.parse||(this.parse=this.startParse()),t!=null&&(this.parse.stoppedAt==null||this.parse.stoppedAt>t)&&t<this.state.doc.length&&this.parse.stopAt(t);;){let n=this.parse.advance();if(n)if(this.fragments=this.withoutTempSkipped(cZ.addTree(n,this.fragments,this.parse.stoppedAt!=null)),this.treeLen=this.parse.stoppedAt??this.state.doc.length,this.tree=n,this.parse=null,this.treeLen<(t??this.state.doc.length))this.parse=this.startParse();else return!0;if(e())return!1}})}takeTree(){let e,t;this.parse&&(e=this.parse.parsedPos)>=this.treeLen&&((this.parse.stoppedAt==null||this.parse.stoppedAt>e)&&this.parse.stopAt(e),this.withContext(()=>{for(;!(t=this.parse.advance()););}),this.treeLen=e,this.tree=t,this.fragments=this.withoutTempSkipped(cZ.addTree(this.tree,this.fragments,!0)),this.parse=null)}withContext(e){let t=FQ;FQ=this;try{return e()}finally{FQ=t}}withoutTempSkipped(e){for(let t;t=this.tempSkipped.pop();)e=GZ(e,t.from,t.to);return e}changes(t,n){let{fragments:r,tree:i,treeLen:a,viewport:o,skipped:s}=this;if(this.takeTree(),!t.empty){let e=[];if(t.iterChangedRanges((t,n,r,i)=>e.push({fromA:t,toA:n,fromB:r,toB:i})),r=cZ.applyChanges(r,e),i=QX.empty,a=0,o={from:t.mapPos(o.from,-1),to:t.mapPos(o.to,1)},this.skipped.length){s=[];for(let e of this.skipped){let n=t.mapPos(e.from,1),r=t.mapPos(e.to,-1);n<r&&s.push({from:n,to:r})}}}return new e(this.parser,n,r,i,a,o,s,this.scheduleOn)}updateViewport(e){if(this.viewport.from==e.from&&this.viewport.to==e.to)return!1;this.viewport=e;let t=this.skipped.length;for(let t=0;t<this.skipped.length;t++){let{from:n,to:r}=this.skipped[t];n<e.to&&r>e.from&&(this.fragments=GZ(this.fragments,n,r),this.skipped.splice(t--,1))}return this.skipped.length>=t?!1:(this.reset(),!0)}reset(){this.parse&&(this.takeTree(),this.parse=null)}skipUntilInView(e,t){this.skipped.push({from:e,to:t})}static getSkippingParser(e){return new class extends lZ{createParse(t,n,r){let i=r[0].from,a=r[r.length-1].to;return{parsedPos:i,advance(){let t=FQ;if(t){for(let e of r)t.tempSkipped.push(e);e&&(t.scheduleOn=t.scheduleOn?Promise.all([t.scheduleOn,e]):e)}return this.parsedPos=a,new QX(qX.none,[],[],a-i)},stoppedAt:null,stopAt(){}}}}}isDone(e){e=Math.min(e,this.state.doc.length);let t=this.fragments;return this.treeLen>=e&&t.length&&t[0].from==0&&t[0].to>=e}static get(){return FQ}},LQ=class e{constructor(e){this.context=e,this.tree=e.tree}apply(t){if(!t.docChanged&&this.tree==this.context.tree)return this;let n=this.context.changes(t.changes,t.state),r=this.context.treeLen==t.startState.doc.length?void 0:Math.max(t.changes.mapPos(this.context.treeLen),n.viewport.to);return n.work(20,r)||n.takeTree(),new e(n)}static init(t){let n=Math.min(3e3,t.doc.length),r=IQ.create(t.facet(VQ).parser,t,{from:0,to:n});return r.work(20,n)||r.takeTree(),new e(r)}},MQ.state=jU.define({create:LQ.init,update(e,t){for(let e of t.effects)if(e.is(MQ.setState))return e.value;return t.startState.facet(VQ)==t.state.facet(VQ)?e.apply(t):LQ.init(t.state)}}),RQ=e=>{let t=setTimeout(()=>e(),500);return()=>clearTimeout(t)},typeof requestIdleCallback<`u`&&(RQ=e=>{let t=-1,n=setTimeout(()=>{t=requestIdleCallback(e,{timeout:400})},100);return()=>t<0?clearTimeout(n):cancelIdleCallback(t)}),zQ=typeof navigator<`u`&&navigator.scheduling?.isInputPending?()=>navigator.scheduling.isInputPending():null,BQ=$q.fromClass(class{constructor(e){this.view=e,this.working=null,this.workScheduled=0,this.chunkEnd=-1,this.chunkBudget=-1,this.work=this.work.bind(this),this.scheduleWork()}update(e){let t=this.view.state.field(MQ.state).context;(t.updateViewport(e.view.viewport)||this.view.viewport.to>t.treeLen)&&this.scheduleWork(),(e.docChanged||e.selectionSet)&&(this.view.hasFocus&&(this.chunkBudget+=50),this.scheduleWork()),this.checkAsyncSchedule(t)}scheduleWork(){if(this.working)return;let{state:e}=this.view,t=e.field(MQ.state);(t.tree!=t.context.tree||!t.context.isDone(e.doc.length))&&(this.working=RQ(this.work))}work(e){this.working=null;let t=Date.now();if(this.chunkEnd<t&&(this.chunkEnd<0||this.view.hasFocus)&&(this.chunkEnd=t+3e4,this.chunkBudget=3e3),this.chunkBudget<=0)return;let{state:n,viewport:{to:r}}=this.view,i=n.field(MQ.state);if(i.tree==i.context.tree&&i.context.isDone(r+1e5))return;let a=Date.now()+Math.min(this.chunkBudget,100,e&&!zQ?Math.max(25,e.timeRemaining()-5):1e9),o=i.context.treeLen<r&&n.doc.length>r+1e3,s=i.context.work(()=>zQ&&zQ()||Date.now()>a,r+(o?0:1e5));this.chunkBudget-=Date.now()-t,(s||this.chunkBudget<=0)&&(i.context.takeTree(),this.view.dispatch({effects:MQ.setState.of(new LQ(i.context))})),this.chunkBudget>0&&!(s&&!o)&&this.scheduleWork(),this.checkAsyncSchedule(i.context)}checkAsyncSchedule(e){e.scheduleOn&&(this.workScheduled++,e.scheduleOn.then(()=>this.scheduleWork()).catch(e=>EG(this.view.state,e)).then(()=>this.workScheduled--),e.scheduleOn=null)}destroy(){this.working&&this.working()}isWorking(){return!!(this.working||this.workScheduled>0)}},{eventHandlers:{focus(){this.scheduleWork()}}}),VQ=OU.define({combine(e){return e.length?e[0]:null},enables:e=>[MQ.state,BQ,fY.contentAttributes.compute([e],t=>{let n=t.facet(e);return n&&n.name?{"data-language":n.name}:{}})]}),HQ=class{constructor(e,t=[]){this.language=e,this.support=t,this.extension=[e,t]}},UQ=OU.define(),WQ=OU.define({combine:e=>{if(!e.length)return` `;let t=e[0];if(!t||/\S/.test(t)||Array.from(t).some(e=>e!=t[0]))throw Error(`Invalid indent unit: `+JSON.stringify(e[0]));return t}}),GQ=class{constructor(e,t={}){this.state=e,this.options=t,this.unit=KZ(e)}lineAt(e,t=1){let n=this.state.doc.lineAt(e),{simulateBreak:r,simulateDoubleBreak:i}=this.options;return r!=null&&r>=n.from&&r<=n.to?i&&r==e?{text:``,from:e}:(t<0?r<e:r<=e)?{text:n.text.slice(r-n.from),from:r}:{text:n.text.slice(0,r-n.from),from:n.from}:n}textAfterPos(e,t=1){if(this.options.simulateDoubleBreak&&e==this.options.simulateBreak)return``;let{text:n,from:r}=this.lineAt(e,t);return n.slice(e-r,Math.min(n.length,e+100-r))}column(e,t=1){let{text:n,from:r}=this.lineAt(e,t),i=this.countColumn(n,e-r),a=this.options.overrideIndentation?this.options.overrideIndentation(r):-1;return a>-1&&(i+=a-this.countColumn(n,n.search(/\S|$/))),i}countColumn(e,t=e.length){return fU(e,this.state.tabSize,t)}lineIndent(e,t=1){let{text:n,from:r}=this.lineAt(e,t),i=this.options.overrideIndentation;if(i){let e=i(r);if(e>-1)return e}return this.countColumn(n,n.search(/\S|$/))}get simulatedBreak(){return this.options.simulateBreak||null}},KQ=new WX,qQ=class e extends GQ{constructor(e,t,n){super(e.state,e.options),this.base=e,this.pos=t,this.context=n}get node(){return this.context.node}static create(t,n,r){return new e(t,n,r)}get textAfter(){return this.textAfterPos(this.pos)}get baseIndent(){return this.baseIndentFor(this.node)}baseIndentFor(e){let t=this.state.doc.lineAt(e.from);for(;;){let n=e.resolve(t.from);for(;n.parent&&n.parent.from==n.from;)n=n.parent;if(eQ(n,e))break;t=this.state.doc.lineAt(n.from)}return this.lineIndent(t.from)}continue(){return XZ(this.context.next,this.base,this.pos)}},JQ=200,YQ=OU.define(),XQ=new WX,ZQ=JU.define({map:lQ}),QQ=JU.define({map:lQ}),$Q=jU.define({create(){return hq.none},update(e,t){t.isUserEvent(`delete`)&&t.changes.iterChangedRanges((t,n)=>e=dQ(e,t,n)),e=e.map(t.changes);for(let n of t.effects)if(n.is(ZQ)&&!pQ(e,n.value.from,n.value.to)){let{preparePlaceholder:r}=t.state.facet(o$),i=r?hq.replace({widget:new c$(r(t.state,n.value))}):s$;e=e.update({add:[i.range(n.value.from,n.value.to)]})}else n.is(QQ)&&(e=e.update({filter:(e,t)=>n.value.from!=e||n.value.to!=t,filterFrom:n.value.from,filterTo:n.value.to}));return t.selection&&(e=dQ(e,t.selection.main.head)),e},provide:e=>fY.decorations.from(e),toJSON(e,t){let n=[];return e.between(0,t.doc.length,(e,t)=>{n.push(e,t)}),n},fromJSON(e){if(!Array.isArray(e)||e.length%2)throw RangeError(`Invalid JSON for fold state`);let t=[];for(let n=0;n<e.length;){let r=e[n++],i=e[n++];if(typeof r!=`number`||typeof i!=`number`)throw RangeError(`Invalid JSON for fold state`);t.push(s$.range(r,i))}return hq.set(t,!0)}}),e$=e=>{for(let t of uQ(e)){let n=cQ(e.state,t.from,t.to);if(n)return e.dispatch({effects:mQ(e.state,[ZQ.of(n),hQ(e,n)])}),!0}return!1},t$=e=>{if(!e.state.field($Q,!1))return!1;let t=[];for(let n of uQ(e)){let r=fQ(e.state,n.from,n.to);r&&t.push(QQ.of(r),hQ(e,r,!1))}return t.length&&e.dispatch({effects:t}),t.length>0},n$=e=>{let{state:t}=e,n=[];for(let r=0;r<t.doc.length;){let i=e.lineBlockAt(r),a=cQ(t,i.from,i.to);a&&n.push(ZQ.of(a)),r=(a?e.lineBlockAt(a.to):i).to+1}return n.length&&e.dispatch({effects:mQ(e.state,n)}),!!n.length},r$=e=>{let t=e.state.field($Q,!1);if(!t||!t.size)return!1;let n=[];return t.between(0,e.state.doc.length,(e,t)=>{n.push(QQ.of({from:e,to:t}))}),e.dispatch({effects:n}),!0},i$=[{key:`Ctrl-Shift-[`,mac:`Cmd-Alt-[`,run:e$},{key:`Ctrl-Shift-]`,mac:`Cmd-Alt-]`,run:t$},{key:`Ctrl-Alt-[`,run:n$},{key:`Ctrl-Alt-]`,run:r$}],a$={placeholderDOM:null,preparePlaceholder:null,placeholderText:`…`},o$=OU.define({combine(e){return nU(e,a$)}}),s$=hq.replace({widget:new class extends pq{toDOM(e){return _Q(e,null)}}}),c$=class extends pq{constructor(e){super(),this.value=e}eq(e){return this.value==e.value}toDOM(e){return _Q(e,this.value)}},l$={openText:`⌄`,closedText:`›`,markerDOM:null,domEventHandlers:{},foldingChanged:()=>!1},u$=class extends pX{constructor(e,t){super(),this.config=e,this.open=t}eq(e){return this.config==e.config&&this.open==e.open}toDOM(e){if(this.config.markerDOM)return this.config.markerDOM(this.open);let t=document.createElement(`span`);return t.textContent=this.open?this.config.openText:this.config.closedText,t.title=e.state.phrase(this.open?`Fold line`:`Unfold line`),t}},d$=fY.baseTheme({".cm-foldPlaceholder":{backgroundColor:`#eee`,border:`1px solid #ddd`,color:`#888`,borderRadius:`.2em`,margin:`0 1px`,padding:`0 1px`,cursor:`pointer`},".cm-foldGutter span":{padding:`0 1px`,cursor:`pointer`}}),f$=class e{constructor(e,t){this.specs=e;let n;function r(e){let t=mW.newName();return(n||(n=Object.create(null)))[`.`+t]=e,t}let i=typeof t.all==`string`?t.all:t.all?r(t.all):void 0,a=t.scope;this.scope=a instanceof MQ?e=>e.prop(AQ)==a.data:a?e=>e==a:void 0,this.style=hZ(e.map(e=>({tag:e.tag,class:e.class||r(Object.assign({},e,{tag:null}))})),{all:i}).style,this.module=n?new mW(n):null,this.themeType=t.themeType}static define(t,n){return new e(t,n||{})}},p$=OU.define(),m$=OU.define({combine(e){return e.length?[e[0]]:null}}),h$=class{constructor(e){this.markCache=Object.create(null),this.tree=WZ(e.state),this.decorations=this.buildDeco(e,yQ(e.state)),this.decoratedTo=e.viewport.to}update(e){let t=WZ(e.state),n=yQ(e.state),r=n!=yQ(e.startState),{viewport:i}=e.view,a=e.changes.mapPos(this.decoratedTo,1);t.length<i.to&&!r&&t.type==this.tree.type&&a>=i.to?(this.decorations=this.decorations.map(e.changes),this.decoratedTo=a):(t!=this.tree||e.viewportChanged||r)&&(this.tree=t,this.decorations=this.buildDeco(e.view,n),this.decoratedTo=i.to)}buildDeco(e,t){if(!t||!this.tree.length)return hq.none;let n=new aW;for(let{from:r,to:i}of e.visibleRanges)_Z(this.tree,t,(e,t,r)=>{n.add(e,t,this.markCache[r]||(this.markCache[r]=hq.mark({class:r})))},r,i);return n.finish()}},g$=NU.high($q.fromClass(h$,{decorations:e=>e.decorations})),_$=f$.define([{tag:Z.meta,color:`#404740`},{tag:Z.link,textDecoration:`underline`},{tag:Z.heading,textDecoration:`underline`,fontWeight:`bold`},{tag:Z.emphasis,fontStyle:`italic`},{tag:Z.strong,fontWeight:`bold`},{tag:Z.strikethrough,textDecoration:`line-through`},{tag:Z.keyword,color:`#708`},{tag:[Z.atom,Z.bool,Z.url,Z.contentSeparator,Z.labelName],color:`#219`},{tag:[Z.literal,Z.inserted],color:`#164`},{tag:[Z.string,Z.deleted],color:`#a11`},{tag:[Z.regexp,Z.escape,Z.special(Z.string)],color:`#e40`},{tag:Z.definition(Z.variableName),color:`#00f`},{tag:Z.local(Z.variableName),color:`#30a`},{tag:[Z.typeName,Z.namespace],color:`#085`},{tag:Z.className,color:`#167`},{tag:[Z.special(Z.variableName),Z.macroName],color:`#256`},{tag:Z.definition(Z.propertyName),color:`#00c`},{tag:Z.comment,color:`#940`},{tag:Z.invalid,color:`#f00`}]),v$=fY.baseTheme({"&.cm-focused .cm-matchingBracket":{backgroundColor:`#328c8252`},"&.cm-focused .cm-nonmatchingBracket":{backgroundColor:`#bb555544`}}),y$=1e4,b$=`()[]{}`,x$=OU.define({combine(e){return nU(e,{afterCursor:!0,brackets:b$,maxScanDistance:y$,renderMatch:xQ})}}),S$=hq.mark({class:`cm-matchingBracket`}),C$=hq.mark({class:`cm-nonmatchingBracket`}),w$=[jU.define({create(){return hq.none},update(e,t){if(!t.docChanged&&!t.selection)return e;let n=[],r=t.state.facet(x$);for(let e of t.state.selection.ranges){if(!e.empty)continue;let i=TQ(t.state,e.head,-1,r)||e.head>0&&TQ(t.state,e.head-1,1,r)||r.afterCursor&&(TQ(t.state,e.head,1,r)||e.head<t.state.doc.length&&TQ(t.state,e.head+1,-1,r));i&&(n=n.concat(r.renderMatch(i,t.state)))}return hq.set(n,!0)},provide:e=>fY.decorations.from(e)}),v$],T$=new WX,E$=Object.create(null),D$=[qX.none],O$=[],k$=Object.create(null),A$=Object.create(null);for(let[e,t]of[[`variable`,`variableName`],[`variable-2`,`variableName.special`],[`string-2`,`string.special`],[`def`,`variableName.definition`],[`tag`,`tagName`],[`attribute`,`attributeName`],[`type`,`typeName`],[`builtin`,`variableName.standard`],[`qualifier`,`modifier`],[`error`,`invalid`],[`header`,`heading`],[`property`,`propertyName`]])A$[e]=kQ(E$,t);wq.RTL,wq.LTR}));_W(),VZ();var M$=class e{constructor(e,t,n,r){this.fromA=e,this.toA=t,this.fromB=n,this.toB=r}offset(t,n=t){return new e(this.fromA+t,this.toA+t,this.fromB+n,this.toB+n)}};function N$(e,t,n,r,i,a){if(e==r)return[];let o=U$(e,t,n,r,i,a),s=W$(e,t+o,n,r,i+o,a);t+=o,n-=s,i+=o,a-=s;let c=n-t,l=a-i;if(!c||!l)return[new M$(t,n,i,a)];if(c>l){let o=e.slice(t,n).indexOf(r.slice(i,a));if(o>-1)return[new M$(t,t+o,i,i),new M$(t+o+l,n,a,a)]}else if(l>c){let o=r.slice(i,a).indexOf(e.slice(t,n));if(o>-1)return[new M$(t,t,i,i+o),new M$(n,n,i+o+c,a)]}if(c==1||l==1)return[new M$(t,n,i,a)];let u=K$(e,t,n,r,i,a);if(u){let[o,s,c]=u;return N$(e,t,o,r,i,s).concat(N$(e,o+c,n,r,s+c,a))}return L$(e,t,n,r,i,a)}var P$=1e9,F$=0,I$=!1;function L$(e,t,n,r,i,a){let o=n-t,s=a-i;if(P$<1e9&&Math.min(o,s)>P$*16||F$>0&&Date.now()>F$)return Math.min(o,s)>P$*64?[new M$(t,n,i,a)]:q$(e,t,n,r,i,a);let c=Math.ceil((o+s)/2);z$.reset(c),B$.reset(c);let l=(n,a)=>e.charCodeAt(t+n)==r.charCodeAt(i+a),u=(t,i)=>e.charCodeAt(n-t-1)==r.charCodeAt(a-i-1),d=(o-s)%2==0?null:B$,f=d?null:z$;for(let p=0;p<c;p++){if(p>P$||F$>0&&!(p&63)&&Date.now()>F$)return q$(e,t,n,r,i,a);let m=z$.advance(p,o,s,c,d,!1,l)||B$.advance(p,o,s,c,f,!0,u);if(m)return V$(e,t,n,t+m[0],r,i,a,i+m[1])}return[new M$(t,n,i,a)]}var R$=class{constructor(){this.vec=[]}reset(e){this.len=e<<1;for(let e=0;e<this.len;e++)this.vec[e]=-1;this.vec[e+1]=0,this.start=this.end=0}advance(e,t,n,r,i,a,o){for(let s=-e+this.start;s<=e-this.end;s+=2){let c=r+s,l=s==-e||s!=e&&this.vec[c-1]<this.vec[c+1]?this.vec[c+1]:this.vec[c-1]+1,u=l-s;for(;l<t&&u<n&&o(l,u);)l++,u++;if(this.vec[c]=l,l>t)this.end+=2;else if(u>n)this.start+=2;else if(i){let e=r+(t-n)-s;if(e>=0&&e<this.len&&i.vec[e]!=-1)if(a){let n=i.vec[e];if(n>=t-l)return[n,r+n-e]}else{let n=t-i.vec[e];if(l>=n)return[l,u]}}}return null}},z$=new R$,B$=new R$;function V$(e,t,n,r,i,a,o,s){let c=!1;return!c1(e,r)&&++r==n&&(c=!0),!c1(i,s)&&++s==o&&(c=!0),c?[new M$(t,n,a,o)]:N$(e,t,r,i,a,s).concat(N$(e,r,n,i,s,o))}function H$(e,t){let n=1,r=Math.min(e,t);for(;n<r;)n<<=1;return n}function U$(e,t,n,r,i,a){if(t==n||t==a||e.charCodeAt(t)!=r.charCodeAt(i))return 0;let o=H$(n-t,a-i);for(let s=t,c=i;;){let i=s+o,l=c+o;if(i>n||l>a||e.slice(s,i)!=r.slice(c,l)){if(o==1)return s-t-+!c1(e,s);o>>=1}else if(i==n||l==a)return i-t;else s=i,c=l}}function W$(e,t,n,r,i,a){if(t==n||i==a||e.charCodeAt(n-1)!=r.charCodeAt(a-1))return 0;let o=H$(n-t,a-i);for(let s=n,c=a;;){let a=s-o,l=c-o;if(a<t||l<i||e.slice(a,s)!=r.slice(l,c)){if(o==1)return n-s-+!c1(e,s);o>>=1}else if(a==t||l==i)return n-a;else s=a,c=l}}function G$(e,t,n,r,i,a,o,s){let c=r.slice(i,a),l=null;for(;;){if(l||o<s)return l;for(let s=t+o;;){c1(e,s)||s++;let u=s+o;if(c1(e,u)||(u+=u==s+1?1:-1),u>=n)break;let d=e.slice(s,u),f=-1;for(;(f=c.indexOf(d,f+1))!=-1;){let o=U$(e,u,n,r,i+f+d.length,a),c=W$(e,t,s,r,i,i+f),p=d.length+o+c;(!l||l[2]<p)&&(l=[s-c,i+f-c,p])}s=u}if(s<0)return l;o>>=1}}function K$(e,t,n,r,i,a){let o=n-t,s=a-i;if(o<s){let o=K$(r,i,a,e,t,n);return o&&[o[1],o[0],o[2]]}return o<4||s*2<o?null:G$(e,t,n,r,i,a,Math.floor(o/4),-1)}function q$(e,t,n,r,i,a){I$=!0;let o=n-t,s=a-i,c;if(o<s){let s=G$(r,i,a,e,t,n,Math.floor(o/6),50);c=s&&[s[1],s[0],s[2]]}else c=G$(e,t,n,r,i,a,Math.floor(s/6),50);if(!c)return[new M$(t,n,i,a)];let[l,u,d]=c;return N$(e,t,l,r,i,u).concat(N$(e,l+d,n,r,u+d,a))}function J$(e,t){for(let n=1;n<e.length;n++){let r=e[n-1],i=e[n];r.toA>i.fromA-t&&r.toB>i.fromB-t&&(e[n-1]=new M$(r.fromA,i.toA,r.fromB,i.toB),e.splice(n--,1))}}function Y$(e,t,n){for(;;){J$(n,1);let r=!1;for(let i=0;i<n.length;i++){let a=n[i],o,s;(o=U$(e,a.fromA,a.toA,t,a.fromB,a.toB))&&(a=n[i]=new M$(a.fromA+o,a.toA,a.fromB+o,a.toB)),(s=W$(e,a.fromA,a.toA,t,a.fromB,a.toB))&&(a=n[i]=new M$(a.fromA,a.toA-s,a.fromB,a.toB-s));let c=a.toA-a.fromA,l=a.toB-a.fromB;if(c&&l)continue;let u=a.fromA-(i?n[i-1].toA:0),d=(i<n.length-1?n[i+1].fromA:e.length)-a.toA;if(!u||!d)continue;let f=c?e.slice(a.fromA,a.toA):t.slice(a.fromB,a.toB);u<=f.length&&e.slice(a.fromA-u,a.fromA)==f.slice(f.length-u)?(n[i]=new M$(a.fromA-u,a.toA-u,a.fromB-u,a.toB-u),r=!0):d<=f.length&&e.slice(a.toA,a.toA+d)==f.slice(0,d)&&(n[i]=new M$(a.fromA+d,a.toA+d,a.fromB+d,a.toB+d),r=!0)}if(!r)break}return n}function X$(e,t,n){for(let r=0,i=0;i<e.length;i++){let a=e[i],o=a.toA-a.fromA,s=a.toB-a.fromB;if(o&&s||o>3||s>3){let c=i==e.length-1?t.length:e[i+1].fromA,l=a.fromA-r,u=c-a.toA,d=r1(t,a.fromA,l),f=n1(t,a.toA,u),p=a.fromA-d,m=f-a.toA;if((!o||!s)&&p&&m){let l=Math.max(o,s),[u,h,g]=o?[t,a.fromA,a.toA]:[n,a.fromB,a.toB];l>p&&t.slice(d,a.fromA)==u.slice(g-p,g)?(a=e[i]=new M$(d,d+o,a.fromB-p,a.toB-p),d=a.fromA,f=n1(t,a.toA,c-a.toA)):l>m&&t.slice(a.toA,f)==u.slice(h,h+m)&&(a=e[i]=new M$(f-o,f,a.fromB+m,a.toB+m),f=a.toA,d=r1(t,a.fromA,a.fromA-r)),p=a.fromA-d,m=f-a.toA}if(p||m)a=e[i]=new M$(a.fromA-p,a.toA+m,a.fromB-p,a.toB+m);else if(!o){let t=a1(n,a.fromB,a.toB),r,o=t<0?-1:i1(n,a.toB,a.fromB);t>-1&&(r=t-a.fromB)<=u&&n.slice(a.fromB,t)==n.slice(a.toB,a.toB+r)?a=e[i]=a.offset(r):o>-1&&(r=a.toB-o)<=l&&n.slice(a.fromB-r,a.fromB)==n.slice(o,a.toB)&&(a=e[i]=a.offset(-r))}else if(!s){let n=a1(t,a.fromA,a.toA),r,o=n<0?-1:i1(t,a.toA,a.fromA);n>-1&&(r=n-a.fromA)<=u&&t.slice(a.fromA,n)==t.slice(a.toA,a.toA+r)?a=e[i]=a.offset(r):o>-1&&(r=a.toA-o)<=l&&t.slice(a.fromA-r,a.fromA)==t.slice(o,a.toA)&&(a=e[i]=a.offset(-r))}}r=a.toA}return J$(e,3),e}var Z$;try{Z$=RegExp(`[\\p{Alphabetic}\\p{Number}]`,`u`)}catch{}function Q$(e){return e>48&&e<58||e>64&&e<91||e>96&&e<123}function $$(e,t){if(t==e.length)return 0;let n=e.charCodeAt(t);return n<192?+!!Q$(n):Z$?!o1(n)||t==e.length-1?+!!Z$.test(String.fromCharCode(n)):Z$.test(e.slice(t,t+2))?2:0:0}function e1(e,t){if(!t)return 0;let n=e.charCodeAt(t-1);return n<192?+!!Q$(n):Z$?!s1(n)||t==1?+!!Z$.test(String.fromCharCode(n)):Z$.test(e.slice(t-2,t))?2:0:0}var t1=8;function n1(e,t,n){if(t==e.length||!e1(e,t))return t;for(let r=t,i=t+n,a=0;a<t1;a++){let t=$$(e,r);if(!t||r+t>i)return r;r+=t}return t}function r1(e,t,n){if(!t||!$$(e,t))return t;for(let r=t,i=t-n,a=0;a<t1;a++){let t=e1(e,r);if(!t||r-t<i)return r;r-=t}return t}function i1(e,t,n){for(;t!=n;t--)if(e.charCodeAt(t-1)==10)return t;return-1}function a1(e,t,n){for(;t!=n;t++)if(e.charCodeAt(t)==10)return t;return-1}var o1=e=>e>=55296&&e<=56319,s1=e=>e>=56320&&e<=57343;function c1(e,t){return!t||t==e.length||!o1(e.charCodeAt(t-1))||!s1(e.charCodeAt(t))}function l1(e,t,n){let r=n?.override;return r?r(e,t):(P$=(n?.scanLimit??1e9)>>1,F$=n?.timeout?Date.now()+n.timeout:0,I$=!1,Y$(e,t,N$(e,0,e.length,t,0,t.length)))}function u1(){return!I$}function d1(e,t,n){return X$(l1(e,t,n),e,t)}var f1=class e{constructor(e,t,n,r,i,a=!0){this.changes=e,this.fromA=t,this.toA=n,this.fromB=r,this.toB=i,this.precise=a}offset(t,n){return t||n?new e(this.changes,this.fromA+t,this.toA+t,this.fromB+n,this.toB+n,this.precise):this}get endA(){return Math.max(this.fromA,this.toA-1)}get endB(){return Math.max(this.fromB,this.toB-1)}static build(e,t,n){return h1(d1(e.toString(),t.toString(),n),e,t,0,0,u1())}static updateA(e,t,n,r,i){return y1(v1(e,r,!0,n.length),e,t,n,i)}static updateB(e,t,n,r,i){return y1(v1(e,r,!1,t.length),e,t,n,i)}};function p1(e,t,n,r){let i=n.lineAt(e),a=r.lineAt(t);return i.to==e&&a.to==t&&e<n.length&&t<r.length?[e+1,t+1]:[i.from,a.from]}function m1(e,t,n,r){let i=n.lineAt(e),a=r.lineAt(t);return i.from==e&&a.from==t?[e,t]:[i.to+1,a.to+1]}function h1(e,t,n,r,i,a){let o=[];for(let s=0;s<e.length;s++){let c=e[s],[l,u]=p1(c.fromA+r,c.fromB+i,t,n),[d,f]=m1(c.toA+r,c.toB+i,t,n),p=[c.offset(-l+r,-u+i)];for(;s<e.length-1;){let a=e[s+1],[o,c]=p1(a.fromA+r,a.fromB+i,t,n);if(o>d+1&&c>f+1)break;p.push(a.offset(-l+r,-u+i)),[d,f]=m1(a.toA+r,a.toB+i,t,n),s++}o.push(new f1(p,l,Math.max(l,d),u,Math.max(u,f),a))}return o}var g1=1e3;function _1(e,t,n,r){let i=0,a=e.length;for(;;){if(i==a){let r=0,a=0;i&&({toA:r,toB:a}=e[i-1]);let o=t-(n?r:a);return[r+o,a+o]}let o=i+a>>1,s=e[o],[c,l]=n?[s.fromA,s.toA]:[s.fromB,s.toB];if(c>t)a=o;else if(l<=t)i=o+1;else return r?[s.fromA,s.fromB]:[s.toA,s.toB]}}function v1(e,t,n,r){let i=[];return t.iterChangedRanges((a,o,s,c)=>{let l=0,u=n?t.length:r,d=0,f=n?r:t.length;a>g1&&([l,d]=_1(e,a-g1,n,!0)),o<t.length-g1&&([u,f]=_1(e,o+g1,n,!1));let p=c-s-(o-a),m,[h,g]=n?[p,0]:[0,p];i.length&&(m=i[i.length-1]).toA>=l?i[i.length-1]={fromA:m.fromA,fromB:m.fromB,toA:u,toB:f,diffA:m.diffA+h,diffB:m.diffB+g}:i.push({fromA:l,toA:u,fromB:d,toB:f,diffA:h,diffB:g})}),i}function y1(e,t,n,r,i){if(!e.length)return t;let a=[];for(let o=0,s=0,c=0,l=0;;o++){let u=o==e.length?null:e[o],d=u?u.fromA+s:n.length,f=u?u.fromB+c:r.length;for(;l<t.length;){let e=t[l];if(u&&(e.toA+s>d||e.toB+c>f))break;a.push(e.offset(s,c)),l++}if(!u)break;let p=u.toA+s+u.diffA,m=u.toB+c+u.diffB,h=d1(n.sliceString(d,p),r.sliceString(f,m),i);for(let e of h1(h,n,r,d,f,u1()))a.push(e);for(s+=u.diffA,c+=u.diffB;l<t.length;){let e=t[l];if(e.fromA+s>p&&e.fromB+c>m)break;l++}}return a}var b1={diffModal:`DiffModal-module__diffModal___tpgZQ`,content:`DiffModal-module__content___43wet`,emptyState:`DiffModal-module__emptyState___8pYeq`,diffContainer:`DiffModal-module__diffContainer___YueNR`,fileHeader:`DiffModal-module__fileHeader___0t0Zv`,fileIcon:`DiffModal-module__fileIcon___NgksP`,fileName:`DiffModal-module__fileName___ichM3`,fileStats:`DiffModal-module__fileStats___3utki`,statAdditions:`DiffModal-module__statAdditions___c6cRj`,statDeletions:`DiffModal-module__statDeletions___I-Twj`,statBar:`DiffModal-module__statBar___pJ2vZ`,statBlock:`DiffModal-module__statBlock___9MVNC`,statBlockAdd:`DiffModal-module__statBlockAdd___bJSBD`,statBlockDel:`DiffModal-module__statBlockDel___AfJfB`,diffBody:`DiffModal-module__diffBody___f0St8`,hunk:`DiffModal-module__hunk___SklHA`,hunkHeader:`DiffModal-module__hunkHeader___8hU-I`,hunkGutter:`DiffModal-module__hunkGutter___fqdKh`,hunkExpandIcon:`DiffModal-module__hunkExpandIcon___vuJqE`,hunkText:`DiffModal-module__hunkText___iGYPB`,diffLine:`DiffModal-module__diffLine___ps7Zs`,lineNum:`DiffModal-module__lineNum___e1BS1`,lineNumEmpty:`DiffModal-module__lineNumEmpty___No1Od`,linePrefix:`DiffModal-module__linePrefix___GCTXM`,lineText:`DiffModal-module__lineText___iOvge`,context:`DiffModal-module__context___idQYJ`,deletion:`DiffModal-module__deletion___Ssejr`,addition:`DiffModal-module__addition___UxyR6`};lW();var x1=3,S1=(e,t)=>Math.max(0,Math.min(t,e.length));function C1(e,t){let n=mU.of(e.split(`
`)),r=mU.of(t.split(`
`)),i=f1.build(n,r),a=0,o=0;return{hunks:i.map(e=>{let t=[],i=e.fromA<e.toA,s=e.fromB<e.toB,c=[];if(i){let t=n.lineAt(e.fromA).number,r=n.lineAt(e.toA-1).number;for(let e=t;e<=r;e++)c.push({num:e,text:n.line(e).text})}let l=[];if(s){let t=r.lineAt(e.fromB).number,n=r.lineAt(e.toB-1).number;for(let e=t;e<=n;e++)l.push({num:e,text:r.line(e).text})}o+=c.length,a+=l.length;let u,d,f,p;if(i)u=c[0].num-1,d=c[c.length-1].num+1;else{let t=S1(n,e.fromA),r=n.lineAt(t);e.fromA===r.from?(u=r.number-1,d=r.number):(u=r.number,d=r.number+1)}if(s)f=l[0].num-1,p=l[l.length-1].num+1;else{let t=S1(r,e.fromB),n=r.lineAt(t);e.fromB===n.from?(f=n.number-1,p=n.number):(f=n.number,p=n.number+1)}let m=Math.min(x1,Math.max(0,u),Math.max(0,f));for(let e=m;e>0;e--){let r=u-e+1,i=f-e+1;r>=1&&i>=1&&r<=n.lines&&t.push({type:`context`,oldNum:r,newNum:i,text:n.line(r).text})}for(let e of c)t.push({type:`deletion`,oldNum:e.num,newNum:null,text:e.text});for(let e of l)t.push({type:`addition`,oldNum:null,newNum:e.num,text:e.text});let h=Math.max(0,Math.min(x1,n.lines-d+1)),g=Math.max(0,Math.min(x1,r.lines-p+1)),_=Math.min(h,g);for(let e=0;e<_;e++){let i=d+e,a=p+e;i>=1&&i<=n.lines&&a>=1&&a<=r.lines&&t.push({type:`context`,oldNum:i,newNum:a,text:n.line(i).text})}let v=t.find(e=>e.oldNum!==null)?.oldNum??1,y=t.find(e=>e.newNum!==null)?.newNum??1;return{oldStart:v,oldCount:t.filter(e=>e.type!==`addition`).length,newStart:y,newCount:t.filter(e=>e.type!==`deletion`).length,lines:t}}),additions:a,deletions:o}}var w1=5;function T1({additions:e,deletions:t}){let n=e+t;if(n===0)return null;let r=Math.round(e/n*w1);return(0,V.jsx)(`span`,{className:b1.statBar,children:Array.from({length:w1},(e,t)=>(0,V.jsx)(`span`,{className:`${b1.statBlock} ${t<r?b1.statBlockAdd:b1.statBlockDel}`},t))})}function E1({open:e,original:t,modified:n,onConfirm:r,onCancel:i,loading:a=!1}){let{t:o}=B(),s=(0,y.useMemo)(()=>C1(t,n),[t,n]);return(0,V.jsx)($m,{open:e,title:o(`config_management.diff.title`),onClose:i,width:`min(1200px, 90vw)`,className:b1.diffModal,closeDisabled:a,footer:(0,V.jsxs)(V.Fragment,{children:[(0,V.jsx)(H,{variant:`secondary`,onClick:i,disabled:a,children:o(`common.cancel`)}),(0,V.jsx)(H,{onClick:r,loading:a,disabled:a,children:o(`config_management.diff.confirm`)})]}),children:(0,V.jsx)(`div`,{className:b1.content,children:s.hunks.length===0?(0,V.jsx)(`div`,{className:b1.emptyState,children:o(`config_management.diff.no_changes`)}):(0,V.jsxs)(`div`,{className:b1.diffContainer,children:[(0,V.jsxs)(`div`,{className:b1.fileHeader,children:[(0,V.jsx)(`svg`,{className:b1.fileIcon,viewBox:`0 0 16 16`,width:`16`,height:`16`,children:(0,V.jsx)(`path`,{fillRule:`evenodd`,d:`M3.75 1.5a.25.25 0 00-.25.25v11.5c0 .138.112.25.25.25h8.5a.25.25 0 00.25-.25V6H9.75A1.75 1.75 0 018 4.25V1.5H3.75zm5.75.56v2.19c0 .138.112.25.25.25h2.19L9.5 2.06zM2 1.75C2 .784 2.784 0 3.75 0h5.086c.464 0 .909.184 1.237.513l3.414 3.414c.329.328.513.773.513 1.237v8.086A1.75 1.75 0 0112.25 15h-8.5A1.75 1.75 0 012 13.25V1.75z`,fill:`currentColor`})}),(0,V.jsx)(`span`,{className:b1.fileName,children:`config.yaml`}),(0,V.jsxs)(`span`,{className:b1.fileStats,children:[(0,V.jsxs)(`span`,{className:b1.statAdditions,children:[`+`,s.additions]}),(0,V.jsxs)(`span`,{className:b1.statDeletions,children:[`-`,s.deletions]}),(0,V.jsx)(T1,{additions:s.additions,deletions:s.deletions})]})]}),(0,V.jsx)(`div`,{className:b1.diffBody,children:s.hunks.map((e,t)=>(0,V.jsxs)(`div`,{className:b1.hunk,children:[(0,V.jsxs)(`div`,{className:b1.hunkHeader,children:[(0,V.jsx)(`span`,{className:b1.hunkGutter,children:(0,V.jsx)(`svg`,{className:b1.hunkExpandIcon,viewBox:`0 0 16 16`,width:`12`,height:`12`,children:(0,V.jsx)(`path`,{d:`M8.177 1.677l2.896 2.896a.25.25 0 01-.177.427H8.75v1.25a.75.75 0 01-1.5 0V5H5.104a.25.25 0 01-.177-.427l2.896-2.896a.25.25 0 01.354 0zM7.25 11.75a.75.75 0 011.5 0V13h2.146a.25.25 0 01.177.427l-2.896 2.896a.25.25 0 01-.354 0l-2.896-2.896A.25.25 0 015.104 13H7.25v-1.25z`,fill:`currentColor`})})}),(0,V.jsx)(`span`,{className:b1.hunkGutter}),(0,V.jsxs)(`span`,{className:b1.hunkText,children:[`@@ -`,e.oldStart,`,`,e.oldCount,` +`,e.newStart,`,`,e.newCount,` @@`]})]}),e.lines.map((e,n)=>(0,V.jsxs)(`div`,{className:`${b1.diffLine} ${b1[e.type]}`,children:[(0,V.jsx)(`span`,{className:`${b1.lineNum} ${e.oldNum===null?b1.lineNumEmpty:``}`,children:e.oldNum??``}),(0,V.jsx)(`span`,{className:`${b1.lineNum} ${e.newNum===null?b1.lineNumEmpty:``}`,children:e.newNum??``}),(0,V.jsx)(`span`,{className:b1.linePrefix,children:e.type===`deletion`?`-`:e.type===`addition`?`+`:` `}),(0,V.jsx)(`code`,{className:b1.lineText,children:e.text||` `})]},`${t}-${n}`))]},t))})]})})})}var D1={container:`FloatingSaveBar-module__container___NaBSV`,bar:`FloatingSaveBar-module__bar___EyOlk`,status:`FloatingSaveBar-module__status___01LWT`,statusWarning:`FloatingSaveBar-module__statusWarning___qnA2x`,statusError:`FloatingSaveBar-module__statusError___gN2K-`,statusBusy:`FloatingSaveBar-module__statusBusy___cngKv`,statusMuted:`FloatingSaveBar-module__statusMuted___Hbq5C`,statusOk:`FloatingSaveBar-module__statusOk___jqtcN`,actionsGroup:`FloatingSaveBar-module__actionsGroup___r3pkW`,savePill:`FloatingSaveBar-module__savePill___pFnAZ`,ghostAction:`FloatingSaveBar-module__ghostAction___JqRrH`},O1=e=>1-(1-e)**4,k1=e=>e**3,A1=`translateX(-50%)`,j1=`translateX(-50%) translateY(56px)`;function M1(e){let{visible:t,statusText:n,statusTone:r,saving:i,saveDisabled:a,discardDisabled:o,onSave:s,onDiscard:c}=e,{t:l}=B(),[u,d]=(0,y.useState)(!1),f=(0,y.useRef)(null),p=(0,y.useRef)(null),m=(0,y.useRef)(t),h=(0,y.useRef)(!1);if(oj(f,`--config-action-bar-height`,u),(0,y.useEffect)(()=>{m.current=t,t&&d(!0)},[t]),(0,y.useLayoutEffect)(()=>{if(!u)return;let e=f.current;if(!e)return;let n=h.current;p.current?.stop(),p.current=null;let r=ix();if(t&&!n)r?(e.style.transform=A1,p.current=Lh(e,{opacity:[0,1]},{duration:.15,ease:`linear`,onComplete:()=>{e.style.opacity=`1`}})):p.current=Lh(e,{transform:[j1,A1],opacity:[0,1]},{duration:.28,ease:O1,onComplete:()=>{e.style.transform=A1,e.style.opacity=`1`}});else if(!t&&n){let t=()=>{m.current||d(!1)};r?(e.style.transform=A1,p.current=Lh(e,{opacity:[1,0]},{duration:.12,ease:`linear`,onComplete:t})):p.current=Lh(e,{transform:[A1,j1],opacity:[1,0]},{duration:.22,ease:k1,onComplete:t})}h.current=t},[u,t]),(0,y.useEffect)(()=>()=>{p.current?.stop(),p.current=null},[]),!u||typeof document>`u`)return null;let g={error:D1.statusError,warning:D1.statusWarning,busy:D1.statusBusy,muted:D1.statusMuted,ok:D1.statusOk};return(0,S.createPortal)((0,V.jsx)(`div`,{className:D1.container,ref:f,children:(0,V.jsxs)(`div`,{className:D1.bar,role:`group`,"aria-label":l(`config_management.status_dirty`),children:[(0,V.jsx)(`span`,{className:`${D1.status} ${g[r]}`,"aria-live":`polite`,children:n}),(0,V.jsxs)(`div`,{className:D1.actionsGroup,children:[(0,V.jsx)(`button`,{type:`button`,className:D1.ghostAction,onClick:c,disabled:o,children:l(`config_management.actions.discard`)}),(0,V.jsxs)(`button`,{type:`button`,className:D1.savePill,onClick:s,disabled:a,children:[i?(0,V.jsx)(CO,{size:14}):(0,V.jsx)(Hs,{size:15}),l(`config_management.actions.save`)]})]})]})}),document.body)}var N1={segmented:`ModeSwitch-module__segmented___Zbs7Z`,segment:`ModeSwitch-module__segment___umNdL`,segmentActive:`ModeSwitch-module__segmentActive___QcfMC`};function P1({mode:e,disabled:t=!1,onChange:n}){let{t:r}=B();return(0,V.jsxs)(`div`,{className:N1.segmented,role:`group`,"aria-label":r(`config_management.mode.label`),children:[(0,V.jsx)(`button`,{type:`button`,className:`${N1.segment} ${e===`visual`?N1.segmentActive:``}`,"aria-pressed":e===`visual`,disabled:t,onClick:()=>n(`visual`),children:r(`config_management.mode.visual`)}),(0,V.jsx)(`button`,{type:`button`,className:`${N1.segment} ${e===`source`?N1.segmentActive:``}`,"aria-pressed":e===`source`,disabled:t,onClick:()=>n(`source`),children:r(`config_management.mode.source`)})]})}var F1={searchBar:`SourcePanel-module__searchBar___K1Kqh`,searchInputWrapper:`SourcePanel-module__searchInputWrapper___hdAuH`,searchInput:`SourcePanel-module__searchInput___rMRhY`,searchRight:`SourcePanel-module__searchRight___jBxUI`,searchCount:`SourcePanel-module__searchCount___zFvTE`,searchButton:`SourcePanel-module__searchButton___7-Y3x`,searchActions:`SourcePanel-module__searchActions___dntAi`,editorWrapper:`SourcePanel-module__editorWrapper___5q2xY`};function I1(){return I1=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},I1.apply(null,arguments)}var L1=o((()=>{}));function R1(e,t){if(e==null)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.indexOf(r)!==-1)continue;n[r]=e[r]}return n}var z1=o((()=>{}));function B1(e,t){return({state:n,dispatch:r})=>{if(n.readOnly)return!1;let i=e(t,n);return i?(r(n.update(i)),!0):!1}}function V1(e,t){let n=e.languageDataAt(`commentTokens`,t,1);return n.length?n[0]:{}}function H1(e,{open:t,close:n},r,i){let a=e.sliceDoc(r-P0,r),o=e.sliceDoc(i,i+P0),s=/\s*$/.exec(a)[0].length,c=/^\s*/.exec(o)[0].length,l=a.length-s;if(a.slice(l-t.length,l)==t&&o.slice(c,c+n.length)==n)return{open:{pos:r-s,margin:s&&1},close:{pos:i+c,margin:c&&1}};let u,d;i-r<=2*P0?u=d=e.sliceDoc(r,i):(u=e.sliceDoc(r,r+P0),d=e.sliceDoc(i-P0,i));let f=/^\s*/.exec(u)[0].length,p=/\s*$/.exec(d)[0].length,m=d.length-p-n.length;return u.slice(f,f+t.length)==t&&d.slice(m,m+n.length)==n?{open:{pos:r+f+t.length,margin:+!!/\s/.test(u.charAt(f+t.length))},close:{pos:i-p-n.length,margin:+!!/\s/.test(d.charAt(m-1))}}:null}function U1(e){let t=[];for(let n of e.selection.ranges){let r=e.doc.lineAt(n.from),i=n.to<=r.to?r:e.doc.lineAt(n.to);i.from>r.from&&i.from==n.to&&(i=n.to==r.to+1?r:e.doc.lineAt(n.to-1));let a=t.length-1;a>=0&&t[a].to>r.from?t[a].to=i.to:t.push({from:r.from+/^\s*/.exec(r.text)[0].length,to:i.to})}return t}function W1(e,t,n=t.selection.ranges){let r=n.map(e=>V1(t,e.from).block);if(!r.every(e=>e))return null;let i=n.map((e,n)=>H1(t,r[n],e.from,e.to));if(e!=2&&!i.every(e=>e))return{changes:t.changes(n.map((e,t)=>i[t]?[]:[{from:e.from,insert:r[t].open+` `},{from:e.to,insert:` `+r[t].close}]))};if(e!=1&&i.some(e=>e)){let e=[];for(let t=0,n;t<i.length;t++)if(n=i[t]){let i=r[t],{open:a,close:o}=n;e.push({from:a.pos-i.open.length,to:a.pos+a.margin},{from:o.pos-o.margin,to:o.pos+i.close.length})}return{changes:e}}return null}function G1(e,t,n=t.selection.ranges){let r=[],i=-1;for(let{from:e,to:a}of n){let n=r.length,o=1e9,s=V1(t,e).line;if(s){for(let n=e;n<=a;){let c=t.doc.lineAt(n);if(c.from>i&&(e==a||a>c.from)){i=c.from;let e=/^\s*/.exec(c.text)[0].length,t=e==c.length,n=c.text.slice(e,e+s.length)==s?e:-1;e<c.text.length&&e<o&&(o=e),r.push({line:c,comment:n,token:s,indent:e,empty:t,single:!1})}n=c.to+1}if(o<1e9)for(let e=n;e<r.length;e++)r[e].indent<r[e].line.text.length&&(r[e].indent=o);r.length==n+1&&(r[n].single=!0)}}if(e!=2&&r.some(e=>e.comment<0&&(!e.empty||e.single))){let e=[];for(let{line:t,token:n,indent:i,empty:a,single:o}of r)(o||!a)&&e.push({from:t.from+i,insert:n+` `});let n=t.changes(e);return{changes:n,selection:t.selection.map(n,1)}}else if(e!=1&&r.some(e=>e.comment>=0)){let e=[];for(let{line:t,comment:n,token:i}of r)if(n>=0){let r=t.from+n,a=r+i.length;t.text[a-t.from]==` `&&a++,e.push({from:r,to:a})}return{changes:e}}return null}function K1(e={}){return[z0,R0.of(e),fY.domEventHandlers({beforeinput(e,t){let n=e.inputType==`historyUndo`?B0:e.inputType==`historyRedo`?V0:null;return n?(e.preventDefault(),n(t)):!1}})]}function q1(e,t){return function({state:n,dispatch:r}){if(!t&&n.readOnly)return!1;let i=n.field(z0,!1);if(!i)return!1;let a=i.pop(e,n,t);return a?(r(a),!0):!1}}function J1(e,t,n,r){let i=t+1>n+20?t-n-1:0,a=e.slice(i,t);return a.push(r),a}function Y1(e,t){let n=[],r=!1;return e.iterChangedRanges((e,t)=>n.push(e,t)),t.iterChangedRanges((e,t,i,a)=>{for(let e=0;e<n.length;){let t=n[e++],o=n[e++];a>=t&&i<=o&&(r=!0)}}),r}function X1(e,t){return e.ranges.length==t.ranges.length&&e.ranges.filter((e,n)=>e.empty!=t.ranges[n].empty).length===0}function Z1(e,t){return e.length?t.length?e.concat(t):e:t}function Q1(e,t){if(e.length){let n=e[e.length-1],r=n.selectionsAfter.slice(Math.max(0,n.selectionsAfter.length-K0));return r.length&&r[r.length-1].eq(t)?e:(r.push(t),J1(e,e.length-1,1e9,n.setSelAfter(r)))}else return[W0.selection([t])]}function $1(e){let t=e[e.length-1],n=e.slice();return n[e.length-1]=t.setSelAfter(t.selectionsAfter.slice(0,t.selectionsAfter.length-1)),n}function e0(e,t){if(!e.length)return e;let n=e.length,r=G0;for(;n;){let i=t0(e[n-1],t,r);if(i.changes&&!i.changes.empty||i.effects.length){let t=e.slice(0,n);return t[n-1]=i,t}else t=i.mapped,n--,r=i.selectionsAfter}return r.length?[W0.selection(r)]:G0}function t0(e,t,n){let r=Z1(e.selectionsAfter.length?e.selectionsAfter.map(e=>e.map(t)):G0,n);if(!e.changes)return W0.selection(r);let i=e.changes.map(t),a=t.mapDesc(e.changes,!0),o=e.mapped?e.mapped.composeDesc(a):a;return new W0(i,JU.mapEffects(e.effects,t),o,e.startSelection.map(a),r)}function n0(e,t){return X.create(e.ranges.map(t),e.mainIndex)}function r0(e,t){return e.update({selection:t,scrollIntoView:!0,userEvent:`select`})}function i0({state:e,dispatch:t},n){let r=n0(e.selection,n);return r.eq(e.selection,!0)?!1:(t(r0(e,r)),!0)}function a0(e,t){return X.cursor(t?e.to:e.from)}function o0(e,t){return i0(e,n=>n.empty?e.moveByChar(n,t):a0(n,t))}function s0(e){return e.textDirectionAt(e.state.selection.main.head)==wq.LTR}function c0(e,t){return i0(e,n=>n.empty?e.moveByGroup(n,t):a0(n,t))}function l0(e,t,n){if(t.type.prop(n))return!0;let r=t.to-t.from;return r&&(r>2||/[^\s,.;:]/.test(e.sliceDoc(t.from,t.to)))||t.firstChild}function u0(e,t,n){let r=WZ(e).resolveInner(t.head),i=n?WX.closedBy:WX.openedBy;for(let a=t.head;;){let t=n?r.childAfter(a):r.childBefore(a);if(!t)break;l0(e,t,i)?r=t:a=n?t.to:t.from}let a=r.type.prop(i),o,s;return s=a&&(o=n?TQ(e,r.from,1):TQ(e,r.to,-1))&&o.matched?n?o.end.to:o.end.from:n?r.to:r.from,X.cursor(s,n?-1:1)}function d0(e,t){return i0(e,n=>{if(!n.empty)return a0(n,t);let r=e.moveVertically(n,t);return r.head==n.head?e.moveToLineBoundary(n,t):r})}function f0(e){let t=e.scrollDOM.clientHeight<e.scrollDOM.scrollHeight-2,n=0,r=0,i;if(t){for(let t of e.state.facet(fY.scrollMargins)){let i=t(e);i?.top&&(n=Math.max(i?.top,n)),i?.bottom&&(r=Math.max(i?.bottom,r))}i=e.scrollDOM.clientHeight-n-r}else i=(e.dom.ownerDocument.defaultView||window).innerHeight;return{marginTop:n,marginBottom:r,selfScroll:t,height:Math.max(e.defaultLineHeight,i-5)}}function p0(e,t){let n=f0(e),{state:r}=e,i=n0(r.selection,r=>r.empty?e.moveVertically(r,t,n.height):a0(r,t));if(i.eq(r.selection))return!1;let a;if(n.selfScroll){let t=e.coordsAtPos(r.selection.main.head),o=e.scrollDOM.getBoundingClientRect(),s=o.top+n.marginTop,c=o.bottom-n.marginBottom;t&&t.top>s&&t.bottom<c&&(a=fY.scrollIntoView(i.main.head,{y:`start`,yMargin:t.top-s}))}return e.dispatch(r0(r,i),{effects:a}),!0}function m0(e,t,n){let r=e.lineBlockAt(t.head),i=e.moveToLineBoundary(t,n);if(i.head==t.head&&i.head!=(n?r.to:r.from)&&(i=e.moveToLineBoundary(t,n,!1)),!n&&i.head==r.from&&r.length){let n=/^\s*/.exec(e.state.sliceDoc(r.from,Math.min(r.from+100,r.to)))[0].length;n&&t.head!=r.from+n&&(i=X.cursor(r.from+n))}return i}function h0(e,t,n){let r=!1,i=n0(e.selection,t=>{let i=TQ(e,t.head,-1)||TQ(e,t.head,1)||t.head>0&&TQ(e,t.head-1,1)||t.head<e.doc.length&&TQ(e,t.head+1,-1);if(!i||!i.end)return t;r=!0;let a=i.start.from==t.head?i.end.to:i.end.from;return n?X.range(t.anchor,a):X.cursor(a)});return r?(t(r0(e,i)),!0):!1}function g0(e,t){let n=n0(e.state.selection,e=>{let n=t(e);return X.range(e.anchor,n.head,n.goalColumn,n.bidiLevel||void 0)});return n.eq(e.state.selection)?!1:(e.dispatch(r0(e.state,n)),!0)}function _0(e,t){return g0(e,n=>e.moveByChar(n,t))}function v0(e,t){return g0(e,n=>e.moveByGroup(n,t))}function y0(e,t){return g0(e,n=>e.moveVertically(n,t))}function b0(e,t){return g0(e,n=>e.moveVertically(n,t,f0(e).height))}function x0(e,t){let{state:n}=e,r=n.selection,i=n.selection.ranges.slice();for(let r of n.selection.ranges){let a=n.doc.lineAt(r.head);if(t?a.to<e.state.doc.length:a.from>0)for(let n=r;;){let r=e.moveVertically(n,t);if(r.head<a.from||r.head>a.to){i.some(e=>e.head==r.head)||i.push(r);break}else if(r.head==n.head)break;else n=r}}return i.length==r.ranges.length?!1:(e.dispatch(r0(n,X.create(i,i.length-1))),!0)}function S0(e,t){if(e.state.readOnly)return!1;let n=`delete.selection`,{state:r}=e,i=r.changeByRange(r=>{let{from:i,to:a}=r;if(i==a){let o=t(r);o<i?(n=`delete.backward`,o=C0(e,o,!1)):o>i&&(n=`delete.forward`,o=C0(e,o,!0)),i=Math.min(i,o),a=Math.max(a,o)}else i=C0(e,i,!1),a=C0(e,a,!0);return i==a?{range:r}:{changes:{from:i,to:a},range:X.cursor(i,i<r.head?-1:1)}});return i.changes.empty?!1:(e.dispatch(r.update(i,{scrollIntoView:!0,userEvent:n,effects:n==`delete.selection`?fY.announce.of(r.phrase(`Selection deleted`)):void 0})),!0)}function C0(e,t,n){if(e instanceof fY)for(let r of e.state.facet(fY.atomicRanges).map(t=>t(e)))r.between(t,t,(e,r)=>{e<t&&r>t&&(t=n?r:e)});return t}function w0(e){let t=[],n=-1;for(let r of e.selection.ranges){let i=e.doc.lineAt(r.from),a=e.doc.lineAt(r.to);if(!r.empty&&r.to==a.from&&(a=e.doc.lineAt(r.to-1)),n>=i.number){let e=t[t.length-1];e.to=a.to,e.ranges.push(r)}else t.push({from:i.from,to:a.to,ranges:[r]});n=a.number+1}return t}function T0(e,t,n){if(e.readOnly)return!1;let r=[],i=[];for(let t of w0(e)){if(n?t.to==e.doc.length:t.from==0)continue;let a=e.doc.lineAt(n?t.to+1:t.from-1),o=a.length+1;if(n){r.push({from:t.to,to:a.to},{from:t.from,insert:a.text+e.lineBreak});for(let n of t.ranges)i.push(X.range(Math.min(e.doc.length,n.anchor+o),Math.min(e.doc.length,n.head+o)))}else{r.push({from:a.from,to:t.from},{from:t.to,insert:e.lineBreak+a.text});for(let e of t.ranges)i.push(X.range(e.anchor-o,e.head-o))}}return r.length?(t(e.update({changes:r,scrollIntoView:!0,selection:X.create(i,e.selection.mainIndex),userEvent:`move.line`})),!0):!1}function E0(e,t,n){if(e.readOnly)return!1;let r=[];for(let t of w0(e))n?r.push({from:t.from,insert:e.doc.slice(t.from,t.to)+e.lineBreak}):r.push({from:t.to,insert:e.lineBreak+e.doc.slice(t.from,t.to)});return t(e.update({changes:r,scrollIntoView:!0,userEvent:`input.copyline`})),!0}function D0(e,t){if(/\(\)|\[\]|\{\}/.test(e.sliceDoc(t-1,t+1)))return{from:t,to:t};let n=WZ(e).resolveInner(t),r=n.childBefore(t),i=n.childAfter(t),a;return r&&i&&r.to<=t&&i.from>=t&&(a=r.type.prop(WX.closedBy))&&a.indexOf(i.name)>-1&&e.doc.lineAt(r.to).from==e.doc.lineAt(i.from).from&&!/\S/.test(e.sliceDoc(r.to,i.from))?{from:r.to,to:i.from}:null}function O0(e){return({state:t,dispatch:n})=>{if(t.readOnly)return!1;let r=t.changeByRange(n=>{let{from:r,to:i}=n,a=t.doc.lineAt(r),o=!e&&r==i&&D0(t,r);e&&(r=i=(i<=a.to?a:t.doc.lineAt(i)).to);let s=new GQ(t,{simulateBreak:r,simulateDoubleBreak:!!o}),c=JZ(s,r);for(c??(c=fU(/^\s*/.exec(t.doc.lineAt(r).text)[0],t.tabSize));i<a.to&&/\s/.test(a.text[i-a.from]);)i++;o?{from:r,to:i}=o:r>a.from&&r<a.from+100&&!/\S/.test(a.text.slice(0,r))&&(r=a.from);let l=[``,qZ(t,c)];return o&&l.push(qZ(t,s.lineIndent(a.from,-1))),{changes:{from:r,to:i,insert:mU.of(l)},range:X.cursor(r+1+l[1].length)}});return n(t.update(r,{scrollIntoView:!0,userEvent:`input`})),!0}}function k0(e,t){let n=-1;return e.changeByRange(r=>{let i=[];for(let a=r.from;a<=r.to;){let o=e.doc.lineAt(a);o.number>n&&(r.empty||r.to>o.from)&&(t(o,i,r),n=o.number),a=o.to+1}let a=e.changes(i);return{changes:i,range:X.range(a.mapPos(r.anchor,1),a.mapPos(r.head,1))}})}var A0,j0,M0,N0,P0,F0,I0,L0,R0,z0,B0,V0,H0,U0,W0,G0,K0,q0,J0,Y0,X0,Z0,Q0,$0,e2,t2,n2,r2,i2,a2,o2,s2,c2,l2,u2,d2,f2,p2,m2,h2,g2,_2,v2,y2,b2,x2,S2,C2,w2,T2,E2,D2,O2,k2,A2,j2,M2,N2,P2,F2,I2,L2,R2,z2,B2,V2,H2,U2,W2,G2,K2,q2,J2,Y2,X2,Z2,Q2,$2,e4,t4,n4,r4,i4,a4,o4,s4,c4,l4,u4,d4=o((()=>{lW(),AX(),j$(),dZ(),A0=e=>{let{state:t}=e,n=t.doc.lineAt(t.selection.main.from),r=V1(e.state,n.from);return r.line?j0(e):r.block?N0(e):!1},j0=B1(G1,0),M0=B1(W1,0),N0=B1((e,t)=>W1(e,t,U1(t)),0),P0=50,F0=GU.define(),I0=GU.define(),L0=OU.define(),R0=OU.define({combine(e){return nU(e,{minDepth:100,newGroupDelay:500,joinToEvent:(e,t)=>t},{minDepth:Math.max,newGroupDelay:Math.min,joinToEvent:(e,t)=>(n,r)=>e(n,r)||t(n,r)})}}),z0=jU.define({create(){return J0.empty},update(e,t){let n=t.state.facet(R0),r=t.annotation(F0);if(r){let i=W0.fromTransaction(t,r.selection),a=r.side,o=a==0?e.undone:e.done;return o=i?J1(o,o.length,n.minDepth,i):Q1(o,t.startState.selection),new J0(a==0?r.rest:o,a==0?o:r.rest)}let i=t.annotation(I0);if((i==`full`||i==`before`)&&(e=e.isolate()),t.annotation(YU.addToHistory)===!1)return t.changes.empty?e:e.addMapping(t.changes.desc);let a=W0.fromTransaction(t),o=t.annotation(YU.time),s=t.annotation(YU.userEvent);return a?e=e.addChanges(a,o,s,n,t):t.selection&&(e=e.addSelection(t.startState.selection,o,s,n.newGroupDelay)),(i==`full`||i==`after`)&&(e=e.isolate()),e},toJSON(e){return{done:e.done.map(e=>e.toJSON()),undone:e.undone.map(e=>e.toJSON())}},fromJSON(e){return new J0(e.done.map(W0.fromJSON),e.undone.map(W0.fromJSON))}}),B0=q1(0,!1),V0=q1(1,!1),H0=q1(0,!0),U0=q1(1,!0),W0=class e{constructor(e,t,n,r,i){this.changes=e,this.effects=t,this.mapped=n,this.startSelection=r,this.selectionsAfter=i}setSelAfter(t){return new e(this.changes,this.effects,this.mapped,this.startSelection,t)}toJSON(){return{changes:this.changes?.toJSON(),mapped:this.mapped?.toJSON(),startSelection:this.startSelection?.toJSON(),selectionsAfter:this.selectionsAfter.map(e=>e.toJSON())}}static fromJSON(t){return new e(t.changes&&wU.fromJSON(t.changes),[],t.mapped&&CU.fromJSON(t.mapped),t.startSelection&&X.fromJSON(t.startSelection),t.selectionsAfter.map(X.fromJSON))}static fromTransaction(t,n){let r=G0;for(let e of t.startState.facet(L0)){let n=e(t);n.length&&(r=r.concat(n))}return!r.length&&t.changes.empty?null:new e(t.changes.invert(t.startState.doc),r,void 0,n||t.startState.selection,G0)}static selection(t){return new e(void 0,G0,void 0,void 0,t)}},G0=[],K0=200,q0=/^(input\.type|delete)($|\.)/,J0=class e{constructor(e,t,n=0,r=void 0){this.done=e,this.undone=t,this.prevTime=n,this.prevUserEvent=r}isolate(){return this.prevTime?new e(this.done,this.undone):this}addChanges(t,n,r,i,a){let o=this.done,s=o[o.length-1];return o=s&&s.changes&&!s.changes.empty&&t.changes&&(!r||q0.test(r))&&(!s.selectionsAfter.length&&n-this.prevTime<i.newGroupDelay&&i.joinToEvent(a,Y1(s.changes,t.changes))||r==`input.type.compose`)?J1(o,o.length-1,i.minDepth,new W0(t.changes.compose(s.changes),Z1(JU.mapEffects(t.effects,s.changes),s.effects),s.mapped,s.startSelection,G0)):J1(o,o.length,i.minDepth,t),new e(o,G0,n,r)}addSelection(t,n,r,i){let a=this.done.length?this.done[this.done.length-1].selectionsAfter:G0;return a.length>0&&n-this.prevTime<i&&r==this.prevUserEvent&&r&&/^select($|\.)/.test(r)&&X1(a[a.length-1],t)?this:new e(Q1(this.done,t),this.undone,n,r)}addMapping(t){return new e(e0(this.done,t),e0(this.undone,t),this.prevTime,this.prevUserEvent)}pop(e,t,n){let r=e==0?this.done:this.undone;if(r.length==0)return null;let i=r[r.length-1],a=i.selectionsAfter[0]||t.selection;if(n&&i.selectionsAfter.length)return t.update({selection:i.selectionsAfter[i.selectionsAfter.length-1],annotations:F0.of({side:e,rest:$1(r),selection:a}),userEvent:e==0?`select.undo`:`select.redo`,scrollIntoView:!0});if(i.changes){let n=r.length==1?G0:r.slice(0,r.length-1);return i.mapped&&(n=e0(n,i.mapped)),t.update({changes:i.changes,selection:i.startSelection,effects:i.effects,annotations:F0.of({side:e,rest:n,selection:a}),filter:!1,userEvent:e==0?`undo`:`redo`,scrollIntoView:!0})}else return null}},J0.empty=new J0(G0,G0),Y0=[{key:`Mod-z`,run:B0,preventDefault:!0},{key:`Mod-y`,mac:`Mod-Shift-z`,run:V0,preventDefault:!0},{linux:`Ctrl-Shift-z`,run:V0,preventDefault:!0},{key:`Mod-u`,run:H0,preventDefault:!0},{key:`Alt-u`,mac:`Mod-Shift-u`,run:U0,preventDefault:!0}],X0=e=>o0(e,!s0(e)),Z0=e=>o0(e,s0(e)),Q0=e=>c0(e,!s0(e)),$0=e=>c0(e,s0(e)),typeof Intl<`u`&&Intl.Segmenter,e2=e=>i0(e,t=>u0(e.state,t,!s0(e))),t2=e=>i0(e,t=>u0(e.state,t,s0(e))),n2=e=>d0(e,!1),r2=e=>d0(e,!0),i2=e=>p0(e,!1),a2=e=>p0(e,!0),o2=e=>i0(e,t=>m0(e,t,!0)),s2=e=>i0(e,t=>m0(e,t,!1)),c2=e=>i0(e,t=>m0(e,t,!s0(e))),l2=e=>i0(e,t=>m0(e,t,s0(e))),u2=e=>i0(e,t=>X.cursor(e.lineBlockAt(t.head).from,1)),d2=e=>i0(e,t=>X.cursor(e.lineBlockAt(t.head).to,-1)),f2=({state:e,dispatch:t})=>h0(e,t,!1),p2=e=>_0(e,!s0(e)),m2=e=>_0(e,s0(e)),h2=e=>v0(e,!s0(e)),g2=e=>v0(e,s0(e)),_2=e=>g0(e,t=>u0(e.state,t,!s0(e))),v2=e=>g0(e,t=>u0(e.state,t,s0(e))),y2=e=>y0(e,!1),b2=e=>y0(e,!0),x2=e=>b0(e,!1),S2=e=>b0(e,!0),C2=e=>g0(e,t=>m0(e,t,!0)),w2=e=>g0(e,t=>m0(e,t,!1)),T2=e=>g0(e,t=>m0(e,t,!s0(e))),E2=e=>g0(e,t=>m0(e,t,s0(e))),D2=e=>g0(e,t=>X.cursor(e.lineBlockAt(t.head).from)),O2=e=>g0(e,t=>X.cursor(e.lineBlockAt(t.head).to)),k2=({state:e,dispatch:t})=>(t(r0(e,{anchor:0})),!0),A2=({state:e,dispatch:t})=>(t(r0(e,{anchor:e.doc.length})),!0),j2=({state:e,dispatch:t})=>(t(r0(e,{anchor:e.selection.main.anchor,head:0})),!0),M2=({state:e,dispatch:t})=>(t(r0(e,{anchor:e.selection.main.anchor,head:e.doc.length})),!0),N2=({state:e,dispatch:t})=>(t(e.update({selection:{anchor:0,head:e.doc.length},userEvent:`select`})),!0),P2=({state:e,dispatch:t})=>{let n=w0(e).map(({from:t,to:n})=>X.range(t,Math.min(n+1,e.doc.length)));return t(e.update({selection:X.create(n),userEvent:`select`})),!0},F2=({state:e,dispatch:t})=>{let n=n0(e.selection,t=>{let n=WZ(e),r=n.resolveStack(t.from,1);if(t.empty){let e=n.resolveStack(t.from,-1);e.node.from>=r.node.from&&e.node.to<=r.node.to&&(r=e)}for(let e=r;e;e=e.next){let{node:n}=e;if((n.from<t.from&&n.to>=t.to||n.to>t.to&&n.from<=t.from)&&e.next)return X.range(n.to,n.from)}return t});return n.eq(e.selection)?!1:(t(r0(e,n)),!0)},I2=e=>x0(e,!1),L2=e=>x0(e,!0),R2=({state:e,dispatch:t})=>{let n=e.selection,r=null;return n.ranges.length>1?r=X.create([n.main]):n.main.empty||(r=X.create([X.cursor(n.main.head)])),r?(t(r0(e,r)),!0):!1},z2=(e,t,n)=>S0(e,r=>{let i=r.from,{state:a}=e,o=a.doc.lineAt(i),s,c;if(n&&!t&&i>o.from&&i<o.from+200&&!/[^ \t]/.test(s=o.text.slice(0,i-o.from))){if(s[s.length-1]==` `)return i-1;let e=fU(s,a.tabSize)%KZ(a)||KZ(a);for(let t=0;t<e&&s[s.length-1-t]==` `;t++)i--;c=i}else c=DH(o.text,i-o.from,t,t)+o.from,c==i&&o.number!=(t?a.doc.lines:1)?c+=t?1:-1:!t&&/[\ufe00-\ufe0f]/.test(o.text.slice(c-o.from,i-o.from))&&(c=DH(o.text,c-o.from,!1,!1)+o.from);return c}),B2=e=>z2(e,!1,!0),V2=e=>z2(e,!0,!1),H2=(e,t)=>S0(e,n=>{let r=n.head,{state:i}=e,a=i.doc.lineAt(r),o=i.charCategorizer(r);for(let e=null;;){if(r==(t?a.to:a.from)){r==n.head&&a.number!=(t?i.doc.lines:1)&&(r+=t?1:-1);break}let s=DH(a.text,r-a.from,t)+a.from,c=a.text.slice(Math.min(r,s)-a.from,Math.max(r,s)-a.from),l=o(c);if(e!=null&&l!=e)break;(c!=` `||r!=n.head)&&(e=l),r=s}return r}),U2=e=>H2(e,!1),W2=e=>H2(e,!0),G2=e=>S0(e,t=>{let n=e.lineBlockAt(t.head).to;return t.head<n?n:Math.min(e.state.doc.length,t.head+1)}),K2=e=>S0(e,t=>{let n=e.moveToLineBoundary(t,!1).head;return t.head>n?n:Math.max(0,t.head-1)}),q2=e=>S0(e,t=>{let n=e.moveToLineBoundary(t,!0).head;return t.head<n?n:Math.min(e.state.doc.length,t.head+1)}),J2=({state:e,dispatch:t})=>{if(e.readOnly)return!1;let n=e.changeByRange(e=>({changes:{from:e.from,to:e.to,insert:mU.of([``,``])},range:X.cursor(e.from)}));return t(e.update(n,{scrollIntoView:!0,userEvent:`input`})),!0},Y2=({state:e,dispatch:t})=>{if(e.readOnly)return!1;let n=e.changeByRange(t=>{if(!t.empty||t.from==0||t.from==e.doc.length)return{range:t};let n=t.from,r=e.doc.lineAt(n),i=n==r.from?n-1:DH(r.text,n-r.from,!1)+r.from,a=n==r.to?n+1:DH(r.text,n-r.from,!0)+r.from;return{changes:{from:i,to:a,insert:e.doc.slice(n,a).append(e.doc.slice(i,n))},range:X.cursor(a)}});return n.changes.empty?!1:(t(e.update(n,{scrollIntoView:!0,userEvent:`move.character`})),!0)},X2=({state:e,dispatch:t})=>T0(e,t,!1),Z2=({state:e,dispatch:t})=>T0(e,t,!0),Q2=({state:e,dispatch:t})=>E0(e,t,!1),$2=({state:e,dispatch:t})=>E0(e,t,!0),e4=e=>{if(e.state.readOnly)return!1;let{state:t}=e,n=t.changes(w0(t).map(({from:e,to:n})=>(e>0?e--:n<t.doc.length&&n++,{from:e,to:n}))),r=n0(t.selection,t=>{let n;if(e.lineWrapping){let r=e.lineBlockAt(t.head),i=e.coordsAtPos(t.head,t.assoc||1);i&&(n=r.bottom+e.documentTop-i.bottom+e.defaultLineHeight/2)}return e.moveVertically(t,!0,n)}).map(n);return e.dispatch({changes:n,selection:r,scrollIntoView:!0,userEvent:`delete.line`}),!0},t4=O0(!1),n4=O0(!0),r4=({state:e,dispatch:t})=>{if(e.readOnly)return!1;let n=Object.create(null),r=new GQ(e,{overrideIndentation:e=>n[e]??-1}),i=k0(e,(t,i,a)=>{let o=JZ(r,t.from);if(o==null)return;/\S/.test(t.text)||(o=0);let s=/^\s*/.exec(t.text)[0],c=qZ(e,o);(s!=c||a.from<t.from+s.length)&&(n[t.from]=o,i.push({from:t.from,to:t.from+s.length,insert:c}))});return i.changes.empty||t(e.update(i,{userEvent:`indent`})),!0},i4=({state:e,dispatch:t})=>e.readOnly?!1:(t(e.update(k0(e,(t,n)=>{n.push({from:t.from,insert:e.facet(WQ)})}),{userEvent:`input.indent`})),!0),a4=({state:e,dispatch:t})=>e.readOnly?!1:(t(e.update(k0(e,(t,n)=>{let r=/^\s*/.exec(t.text)[0];if(!r)return;let i=fU(r,e.tabSize),a=0,o=qZ(e,Math.max(0,i-KZ(e)));for(;a<r.length&&a<o.length&&r.charCodeAt(a)==o.charCodeAt(a);)a++;n.push({from:t.from+a,to:t.from+r.length,insert:o.slice(a)})}),{userEvent:`delete.dedent`})),!0),o4=e=>(e.setTabFocusMode(),!0),s4=[{key:`Ctrl-b`,run:X0,shift:p2,preventDefault:!0},{key:`Ctrl-f`,run:Z0,shift:m2},{key:`Ctrl-p`,run:n2,shift:y2},{key:`Ctrl-n`,run:r2,shift:b2},{key:`Ctrl-a`,run:u2,shift:D2},{key:`Ctrl-e`,run:d2,shift:O2},{key:`Ctrl-d`,run:V2},{key:`Ctrl-h`,run:B2},{key:`Ctrl-k`,run:G2},{key:`Ctrl-Alt-h`,run:U2},{key:`Ctrl-o`,run:J2},{key:`Ctrl-t`,run:Y2},{key:`Ctrl-v`,run:a2}],c4=[{key:`ArrowLeft`,run:X0,shift:p2,preventDefault:!0},{key:`Mod-ArrowLeft`,mac:`Alt-ArrowLeft`,run:Q0,shift:h2,preventDefault:!0},{mac:`Cmd-ArrowLeft`,run:c2,shift:T2,preventDefault:!0},{key:`ArrowRight`,run:Z0,shift:m2,preventDefault:!0},{key:`Mod-ArrowRight`,mac:`Alt-ArrowRight`,run:$0,shift:g2,preventDefault:!0},{mac:`Cmd-ArrowRight`,run:l2,shift:E2,preventDefault:!0},{key:`ArrowUp`,run:n2,shift:y2,preventDefault:!0},{mac:`Cmd-ArrowUp`,run:k2,shift:j2},{mac:`Ctrl-ArrowUp`,run:i2,shift:x2},{key:`ArrowDown`,run:r2,shift:b2,preventDefault:!0},{mac:`Cmd-ArrowDown`,run:A2,shift:M2},{mac:`Ctrl-ArrowDown`,run:a2,shift:S2},{key:`PageUp`,run:i2,shift:x2},{key:`PageDown`,run:a2,shift:S2},{key:`Home`,run:s2,shift:w2,preventDefault:!0},{key:`Mod-Home`,run:k2,shift:j2},{key:`End`,run:o2,shift:C2,preventDefault:!0},{key:`Mod-End`,run:A2,shift:M2},{key:`Enter`,run:t4,shift:t4},{key:`Mod-a`,run:N2},{key:`Backspace`,run:B2,shift:B2,preventDefault:!0},{key:`Delete`,run:V2,preventDefault:!0},{key:`Mod-Backspace`,mac:`Alt-Backspace`,run:U2,preventDefault:!0},{key:`Mod-Delete`,mac:`Alt-Delete`,run:W2,preventDefault:!0},{mac:`Mod-Backspace`,run:K2,preventDefault:!0},{mac:`Mod-Delete`,run:q2,preventDefault:!0}].concat(s4.map(e=>({mac:e.key,run:e.run,shift:e.shift}))),l4=[{key:`Alt-ArrowLeft`,mac:`Ctrl-ArrowLeft`,run:e2,shift:_2},{key:`Alt-ArrowRight`,mac:`Ctrl-ArrowRight`,run:t2,shift:v2},{key:`Alt-ArrowUp`,run:X2},{key:`Shift-Alt-ArrowUp`,run:Q2},{key:`Alt-ArrowDown`,run:Z2},{key:`Shift-Alt-ArrowDown`,run:$2},{key:`Mod-Alt-ArrowUp`,run:I2},{key:`Mod-Alt-ArrowDown`,run:L2},{key:`Escape`,run:R2},{key:`Mod-Enter`,run:n4},{key:`Alt-l`,mac:`Ctrl-l`,run:P2},{key:`Mod-i`,run:F2,preventDefault:!0},{key:`Mod-[`,run:a4},{key:`Mod-]`,run:i4},{key:`Mod-Alt-\\`,run:r4},{key:`Shift-Mod-k`,run:e4},{key:`Shift-Mod-\\`,run:f2},{key:`Mod-/`,run:A0},{key:`Alt-A`,run:M0},{key:`Ctrl-m`,mac:`Shift-Alt-m`,run:o4}].concat(c4),u4={key:`Tab`,run:i4,shift:a4}}));function f4(e){try{return new RegExp(e,I4),!0}catch{return!1}}function p4(e,t){if(t>=e.length)return t;let n=e.lineAt(t),r;for(;t<n.to&&(r=n.text.charCodeAt(t-n.from))>=56320&&r<57344;)t++;return t}function m4(e){let t=TW(`input`,{class:`cm-textfield`,name:`line`,value:String(e.state.doc.lineAt(e.state.selection.main.head).number)}),n=TW(`form`,{class:`cm-gotoLine`,onkeydown:t=>{t.keyCode==27?(t.preventDefault(),e.dispatch({effects:V4.of(!1)}),e.focus()):t.keyCode==13&&(t.preventDefault(),r())},onsubmit:e=>{e.preventDefault(),r()}},TW(`label`,e.state.phrase(`Go to line`),`: `,t),` `,TW(`button`,{class:`cm-button`,type:`submit`},e.state.phrase(`go`)),TW(`button`,{name:`close`,onclick:()=>{e.dispatch({effects:V4.of(!1)}),e.focus()},"aria-label":e.state.phrase(`close`),type:`button`},[`×`]));function r(){let n=/^([+-])?(\d+)?(:\d+)?(%)?$/.exec(t.value);if(!n)return;let{state:r}=e,i=r.doc.lineAt(r.selection.main.head),[,a,o,s,c]=n,l=s?+s.slice(1):0,u=o?+o:i.number;if(o&&c){let e=u/100;a&&(e=e*(a==`-`?-1:1)+i.number/r.doc.lines),u=Math.round(r.doc.lines*e)}else o&&a&&(u=u*(a==`-`?-1:1)+i.number);let d=r.doc.line(Math.max(1,Math.min(r.doc.lines,u))),f=X.cursor(d.from+Math.max(0,Math.min(l,d.length)));e.dispatch({effects:[V4.of(!1),fY.scrollIntoView(f.from,{y:`center`})],selection:f}),e.focus()}return{dom:n}}function h4(e){let t=[X4,Y4];return e&&t.push(K4.of(e)),t}function g4(e,t,n,r){return(n==0||e(t.sliceDoc(n-1,n))!=ZU.Word)&&(r==t.doc.length||e(t.sliceDoc(r,r+1))!=ZU.Word)}function _4(e,t,n,r){return e(t.sliceDoc(n,n+1))==ZU.Word&&e(t.sliceDoc(r-1,r))==ZU.Word}function v4(e,t){let{main:n,ranges:r}=e.selection,i=e.wordAt(n.head),a=i&&i.from==n.from&&i.to==n.to;for(let n=!1,i=new P4(e.doc,t,r[r.length-1].to);;)if(i.next(),i.done){if(n)return null;i=new P4(e.doc,t,0,Math.max(0,r[r.length-1].from-1)),n=!0}else{if(n&&r.some(e=>e.from==i.value.from))continue;if(a){let t=e.wordAt(i.value.from);if(!t||t.from!=i.value.from||t.to!=i.value.to)continue}return i.value}}function y4(e){return e?[$4.of(e),w3]:w3}function b4(e,t,n,r){return new P4(t.doc,e.unquoted,n,r,e.caseSensitive?void 0:e=>e.toLowerCase(),e.wholeWord?x4(t.doc,t.charCategorizer(t.selection.main.head)):void 0)}function x4(e,t){return(n,r,i,a)=>((a>n||a+i.length<r)&&(a=Math.max(0,n-2),i=e.sliceString(a,Math.min(e.length,r+2))),(t(C4(i,n-a))!=ZU.Word||t(w4(i,n-a))!=ZU.Word)&&(t(w4(i,r-a))!=ZU.Word||t(C4(i,r-a))!=ZU.Word))}function S4(e,t,n,r){return new L4(t.doc,e.search,{ignoreCase:!e.caseSensitive,test:e.wholeWord?T4(t.charCategorizer(t.selection.main.head)):void 0},n,r)}function C4(e,t){return e.slice(DH(e,t,!1),t)}function w4(e,t){return e.slice(t,DH(e,t))}function T4(e){return(t,n,r)=>!r[0].length||(e(C4(r.input,r.index))!=ZU.Word||e(w4(r.input,r.index))!=ZU.Word)&&(e(w4(r.input,r.index+r[0].length))!=ZU.Word||e(C4(r.input,r.index+r[0].length))!=ZU.Word)}function E4(e){return t=>{let n=t.state.field(o3,!1);return n&&n.query.spec.valid?e(t,n):_3(t)}}function D4(e){return e.state.facet($4).createPanel(e)}function O4(e,t){let n=e.selection.main,r=n.empty||n.to>n.from+100?``:e.sliceDoc(n.from,n.to);if(t&&!r)return t;let i=e.facet($4);return new e3({search:t?.literal??i.literal?r:r.replace(/\n/g,`\\n`),caseSensitive:t?.caseSensitive??i.caseSensitive,literal:t?.literal??i.literal,regexp:t?.regexp??i.regexp,wholeWord:t?.wholeWord??i.wholeWord})}function k4(e){let t=FK(e,D4);return t&&t.dom.querySelector(`[main-field]`)}function A4(e){let t=k4(e);t&&t==e.root.activeElement&&t.select()}function j4(e,t){return e.state.phrase(t)}function M4(e,{from:t,to:n}){let r=e.state.doc.lineAt(t),i=e.state.doc.lineAt(n).to,a=Math.max(r.from,t-x3),o=Math.min(i,n+x3),s=e.state.sliceDoc(a,o);if(a!=r.from){for(let e=0;e<x3;e++)if(!S3.test(s[e+1])&&S3.test(s[e])){s=s.slice(e);break}}if(o!=i){for(let e=s.length-1;e>s.length-x3;e--)if(!S3.test(s[e-1])&&S3.test(s[e])){s=s.slice(0,e);break}}return fY.announce.of(`${e.state.phrase(`current match`)}. ${s} ${e.state.phrase(`on line`)} ${r.number}.`)}var N4,P4,F4,I4,L4,R4,z4,B4,V4,H4,U4,W4,G4,K4,q4,J4,Y4,X4,Z4,Q4,$4,e3,t3,n3,r3,i3,a3,o3,s3,c3,l3,u3,d3,f3,p3,m3,h3,g3,_3,v3,y3,b3,x3,S3,C3,w3,T3=o((()=>{AX(),lW(),DW(),N4=typeof String.prototype.normalize==`function`?e=>e.normalize(`NFKD`):e=>e,P4=class{constructor(e,t,n=0,r=e.length,i,a){this.test=a,this.value={from:0,to:0},this.done=!1,this.matches=[],this.buffer=``,this.bufferPos=0,this.iter=e.iterRange(n,r),this.bufferStart=n,this.normalize=i?e=>i(N4(e)):N4,this.query=this.normalize(t)}peek(){if(this.bufferPos==this.buffer.length){if(this.bufferStart+=this.buffer.length,this.iter.next(),this.iter.done)return-1;this.bufferPos=0,this.buffer=this.iter.value}return AH(this.buffer,this.bufferPos)}next(){for(;this.matches.length;)this.matches.pop();return this.nextOverlapping()}nextOverlapping(){for(;;){let e=this.peek();if(e<0)return this.done=!0,this;let t=jH(e),n=this.bufferStart+this.bufferPos;this.bufferPos+=MH(e);let r=this.normalize(t);if(r.length)for(let e=0,i=n;;e++){let a=r.charCodeAt(e),o=this.match(a,i,this.bufferPos+this.bufferStart);if(e==r.length-1){if(o)return this.value=o,this;break}i==n&&e<t.length&&t.charCodeAt(e)==a&&i++}}}match(e,t,n){let r=null;for(let t=0;t<this.matches.length;t+=2){let i=this.matches[t],a=!1;this.query.charCodeAt(i)==e&&(i==this.query.length-1?r={from:this.matches[t+1],to:n}:(this.matches[t]++,a=!0)),a||(this.matches.splice(t,2),t-=2)}return this.query.charCodeAt(0)==e&&(this.query.length==1?r={from:t,to:n}:this.matches.push(1,t)),r&&this.test&&!this.test(r.from,r.to,this.buffer,this.bufferStart)&&(r=null),r}},typeof Symbol<`u`&&(P4.prototype[Symbol.iterator]=function(){return this}),F4={from:-1,to:-1,match:/.*/.exec(``)},I4=`gm`+(/x/.unicode==null?``:`u`),L4=class{constructor(e,t,n,r=0,i=e.length){if(this.text=e,this.to=i,this.curLine=``,this.done=!1,this.value=F4,/\\[sWDnr]|\n|\r|\[\^/.test(t))return new B4(e,t,n,r,i);this.re=new RegExp(t,I4+(n?.ignoreCase?`i`:``)),this.test=n?.test,this.iter=e.iter();let a=e.lineAt(r);this.curLineStart=a.from,this.matchPos=p4(e,r),this.getLine(this.curLineStart)}getLine(e){this.iter.next(e),this.iter.lineBreak?this.curLine=``:(this.curLine=this.iter.value,this.curLineStart+this.curLine.length>this.to&&(this.curLine=this.curLine.slice(0,this.to-this.curLineStart)),this.iter.next())}nextLine(){this.curLineStart=this.curLineStart+this.curLine.length+1,this.curLineStart>this.to?this.curLine=``:this.getLine(0)}next(){for(let e=this.matchPos-this.curLineStart;;){this.re.lastIndex=e;let t=this.matchPos<=this.to&&this.re.exec(this.curLine);if(t){let n=this.curLineStart+t.index,r=n+t[0].length;if(this.matchPos=p4(this.text,r+ +(n==r)),n==this.curLineStart+this.curLine.length&&this.nextLine(),(n<r||n>this.value.to)&&(!this.test||this.test(n,r,t)))return this.value={from:n,to:r,match:t},this;e=this.matchPos-this.curLineStart}else if(this.curLineStart+this.curLine.length<this.to)this.nextLine(),e=0;else return this.done=!0,this}}},R4=new WeakMap,z4=class e{constructor(e,t){this.from=e,this.text=t}get to(){return this.from+this.text.length}static get(t,n,r){let i=R4.get(t);if(!i||i.from>=r||i.to<=n){let i=new e(n,t.sliceString(n,r));return R4.set(t,i),i}if(i.from==n&&i.to==r)return i;let{text:a,from:o}=i;return o>n&&(a=t.sliceString(n,o)+a,o=n),i.to<r&&(a+=t.sliceString(i.to,r)),R4.set(t,new e(o,a)),new e(n,a.slice(n-o,r-o))}},B4=class{constructor(e,t,n,r,i){this.text=e,this.to=i,this.done=!1,this.value=F4,this.matchPos=p4(e,r),this.re=new RegExp(t,I4+(n?.ignoreCase?`i`:``)),this.test=n?.test,this.flat=z4.get(e,r,this.chunkEnd(r+5e3))}chunkEnd(e){return e>=this.to?this.to:this.text.lineAt(e).to}next(){for(;;){let e=this.re.lastIndex=this.matchPos-this.flat.from,t=this.re.exec(this.flat.text);if(t&&!t[0]&&t.index==e&&(this.re.lastIndex=e+1,t=this.re.exec(this.flat.text)),t){let e=this.flat.from+t.index,n=e+t[0].length;if((this.flat.to>=this.to||t.index+t[0].length<=this.flat.text.length-10)&&(!this.test||this.test(e,n,t)))return this.value={from:e,to:n,match:t},this.matchPos=p4(this.text,n+ +(e==n)),this}if(this.flat.to==this.to)return this.done=!0,this;this.flat=z4.get(this.text,this.flat.from,this.chunkEnd(this.flat.from+this.flat.text.length*2))}}},typeof Symbol<`u`&&(L4.prototype[Symbol.iterator]=B4.prototype[Symbol.iterator]=function(){return this}),V4=JU.define(),H4=jU.define({create(){return!0},update(e,t){for(let n of t.effects)n.is(V4)&&(e=n.value);return e},provide:e=>fX.from(e,e=>e?m4:null)}),U4=e=>{let t=FK(e,m4);if(!t){let n=[V4.of(!0)];e.state.field(H4,!1)??n.push(JU.appendConfig.of([H4,W4])),e.dispatch({effects:n}),t=FK(e,m4)}return t&&t.dom.querySelector(`input`).select(),!0},W4=fY.baseTheme({".cm-panel.cm-gotoLine":{padding:`2px 6px 4px`,position:`relative`,"& label":{fontSize:`80%`},"& [name=close]":{position:`absolute`,top:`0`,bottom:`0`,right:`4px`,backgroundColor:`inherit`,border:`none`,font:`inherit`,padding:`0`}}}),G4={highlightWordAroundCursor:!1,minSelectionLength:1,maxMatches:100,wholeWords:!1},K4=OU.define({combine(e){return nU(e,G4,{highlightWordAroundCursor:(e,t)=>e||t,minSelectionLength:Math.min,maxMatches:Math.min})}}),q4=hq.mark({class:`cm-selectionMatch`}),J4=hq.mark({class:`cm-selectionMatch cm-selectionMatch-main`}),Y4=$q.fromClass(class{constructor(e){this.decorations=this.getDeco(e)}update(e){(e.selectionSet||e.docChanged||e.viewportChanged)&&(this.decorations=this.getDeco(e.view))}getDeco(e){let t=e.state.facet(K4),{state:n}=e,r=n.selection;if(r.ranges.length>1)return hq.none;let i=r.main,a,o=null;if(i.empty){if(!t.highlightWordAroundCursor)return hq.none;let e=n.wordAt(i.head);if(!e)return hq.none;o=n.charCategorizer(i.head),a=n.sliceDoc(e.from,e.to)}else{let e=i.to-i.from;if(e<t.minSelectionLength||e>200)return hq.none;if(t.wholeWords){if(a=n.sliceDoc(i.from,i.to),o=n.charCategorizer(i.head),!(g4(o,n,i.from,i.to)&&_4(o,n,i.from,i.to)))return hq.none}else if(a=n.sliceDoc(i.from,i.to),!a)return hq.none}let s=[];for(let r of e.visibleRanges){let e=new P4(n.doc,a,r.from,r.to);for(;!e.next().done;){let{from:r,to:a}=e.value;if((!o||g4(o,n,r,a))&&(i.empty&&r<=i.from&&a>=i.to?s.push(J4.range(r,a)):(r>=i.to||a<=i.from)&&s.push(q4.range(r,a)),s.length>t.maxMatches))return hq.none}}return hq.set(s)}},{decorations:e=>e.decorations}),X4=fY.baseTheme({".cm-selectionMatch":{backgroundColor:`#99ff7780`},".cm-searchMatch .cm-selectionMatch":{backgroundColor:`transparent`}}),Z4=({state:e,dispatch:t})=>{let{selection:n}=e,r=X.create(n.ranges.map(t=>e.wordAt(t.head)||X.cursor(t.head)),n.mainIndex);return r.eq(n)?!1:(t(e.update({selection:r})),!0)},Q4=({state:e,dispatch:t})=>{let{ranges:n}=e.selection;if(n.some(e=>e.from===e.to))return Z4({state:e,dispatch:t});let r=e.sliceDoc(n[0].from,n[0].to);if(e.selection.ranges.some(t=>e.sliceDoc(t.from,t.to)!=r))return!1;let i=v4(e,r);return i?(t(e.update({selection:e.selection.addRange(X.range(i.from,i.to),!1),effects:fY.scrollIntoView(i.to)})),!0):!1},$4=OU.define({combine(e){return nU(e,{top:!1,caseSensitive:!1,literal:!1,regexp:!1,wholeWord:!1,createPanel:e=>new b3(e),scrollToMatch:e=>fY.scrollIntoView(e)})}}),e3=class{constructor(e){this.search=e.search,this.caseSensitive=!!e.caseSensitive,this.literal=!!e.literal,this.regexp=!!e.regexp,this.replace=e.replace||``,this.valid=!!this.search&&(!this.regexp||f4(this.search)),this.unquoted=this.unquote(this.search),this.wholeWord=!!e.wholeWord}unquote(e){return this.literal?e:e.replace(/\\([nrt\\])/g,(e,t)=>t==`n`?`
`:t==`r`?`\r`:t==`t`?` `:`\\`)}eq(e){return this.search==e.search&&this.replace==e.replace&&this.caseSensitive==e.caseSensitive&&this.regexp==e.regexp&&this.wholeWord==e.wholeWord}create(){return this.regexp?new r3(this):new n3(this)}getCursor(e,t=0,n){let r=e.doc?e:eW.create({doc:e});return n??(n=r.doc.length),this.regexp?S4(this,r,t,n):b4(this,r,t,n)}},t3=class{constructor(e){this.spec=e}},n3=class extends t3{constructor(e){super(e)}nextMatch(e,t,n){let r=b4(this.spec,e,n,e.doc.length).nextOverlapping();if(r.done){let n=Math.min(e.doc.length,t+this.spec.unquoted.length);r=b4(this.spec,e,0,n).nextOverlapping()}return r.done||r.value.from==t&&r.value.to==n?null:r.value}prevMatchInRange(e,t,n){for(let r=n;;){let n=Math.max(t,r-1e4-this.spec.unquoted.length),i=b4(this.spec,e,n,r),a=null;for(;!i.nextOverlapping().done;)a=i.value;if(a)return a;if(n==t)return null;r-=1e4}}prevMatch(e,t,n){let r=this.prevMatchInRange(e,0,t);return r||(r=this.prevMatchInRange(e,Math.max(0,n-this.spec.unquoted.length),e.doc.length)),r&&(r.from!=t||r.to!=n)?r:null}getReplacement(e){return this.spec.unquote(this.spec.replace)}matchAll(e,t){let n=b4(this.spec,e,0,e.doc.length),r=[];for(;!n.next().done;){if(r.length>=t)return null;r.push(n.value)}return r}highlight(e,t,n,r){let i=b4(this.spec,e,Math.max(0,t-this.spec.unquoted.length),Math.min(n+this.spec.unquoted.length,e.doc.length));for(;!i.next().done;)r(i.value.from,i.value.to)}},r3=class extends t3{nextMatch(e,t,n){let r=S4(this.spec,e,n,e.doc.length).next();return r.done&&(r=S4(this.spec,e,0,t).next()),r.done?null:r.value}prevMatchInRange(e,t,n){for(let r=1;;r++){let i=Math.max(t,n-r*1e4),a=S4(this.spec,e,i,n),o=null;for(;!a.next().done;)o=a.value;if(o&&(i==t||o.from>i+10))return o;if(i==t)return null}}prevMatch(e,t,n){return this.prevMatchInRange(e,0,t)||this.prevMatchInRange(e,n,e.doc.length)}getReplacement(e){return this.spec.unquote(this.spec.replace).replace(/\$([$&]|\d+)/g,(t,n)=>{if(n==`&`)return e.match[0];if(n==`$`)return`$`;for(let t=n.length;t>0;t--){let r=+n.slice(0,t);if(r>0&&r<e.match.length)return e.match[r]+n.slice(t)}return t})}matchAll(e,t){let n=S4(this.spec,e,0,e.doc.length),r=[];for(;!n.next().done;){if(r.length>=t)return null;r.push(n.value)}return r}highlight(e,t,n,r){let i=S4(this.spec,e,Math.max(0,t-250),Math.min(n+250,e.doc.length));for(;!i.next().done;)r(i.value.from,i.value.to)}},i3=JU.define(),a3=JU.define(),o3=jU.define({create(e){return new s3(O4(e).create(),null)},update(e,t){for(let n of t.effects)n.is(i3)?e=new s3(n.value.create(),e.panel):n.is(a3)&&(e=new s3(e.query,n.value?D4:null));return e},provide:e=>fX.from(e,e=>e.panel)}),s3=class{constructor(e,t){this.query=e,this.panel=t}},c3=hq.mark({class:`cm-searchMatch`}),l3=hq.mark({class:`cm-searchMatch cm-searchMatch-selected`}),u3=$q.fromClass(class{constructor(e){this.view=e,this.decorations=this.highlight(e.state.field(o3))}update(e){let t=e.state.field(o3);(t!=e.startState.field(o3)||e.docChanged||e.selectionSet||e.viewportChanged)&&(this.decorations=this.highlight(t))}highlight({query:e,panel:t}){if(!t||!e.spec.valid)return hq.none;let{view:n}=this,r=new aW;for(let t=0,i=n.visibleRanges,a=i.length;t<a;t++){let{from:o,to:s}=i[t];for(;t<a-1&&s>i[t+1].from-500;)s=i[++t].to;e.highlight(n.state,o,s,(e,t)=>{let i=n.state.selection.ranges.some(n=>n.from==e&&n.to==t);r.add(e,t,i?l3:c3)})}return r.finish()}},{decorations:e=>e.decorations}),d3=E4((e,{query:t})=>{let{to:n}=e.state.selection.main,r=t.nextMatch(e.state,n,n);if(!r)return!1;let i=X.single(r.from,r.to),a=e.state.facet($4);return e.dispatch({selection:i,effects:[M4(e,r),a.scrollToMatch(i.main,e)],userEvent:`select.search`}),A4(e),!0}),f3=E4((e,{query:t})=>{let{state:n}=e,{from:r}=n.selection.main,i=t.prevMatch(n,r,r);if(!i)return!1;let a=X.single(i.from,i.to),o=e.state.facet($4);return e.dispatch({selection:a,effects:[M4(e,i),o.scrollToMatch(a.main,e)],userEvent:`select.search`}),A4(e),!0}),p3=E4((e,{query:t})=>{let n=t.matchAll(e.state,1e3);return!n||!n.length?!1:(e.dispatch({selection:X.create(n.map(e=>X.range(e.from,e.to))),userEvent:`select.search.matches`}),!0)}),m3=({state:e,dispatch:t})=>{let n=e.selection;if(n.ranges.length>1||n.main.empty)return!1;let{from:r,to:i}=n.main,a=[],o=0;for(let t=new P4(e.doc,e.sliceDoc(r,i));!t.next().done;){if(a.length>1e3)return!1;t.value.from==r&&(o=a.length),a.push(X.range(t.value.from,t.value.to))}return t(e.update({selection:X.create(a,o),userEvent:`select.search.matches`})),!0},h3=E4((e,{query:t})=>{let{state:n}=e,{from:r,to:i}=n.selection.main;if(n.readOnly)return!1;let a=t.nextMatch(n,r,r);if(!a)return!1;let o=a,s=[],c,l,u=[];o.from==r&&o.to==i&&(l=n.toText(t.getReplacement(o)),s.push({from:o.from,to:o.to,insert:l}),o=t.nextMatch(n,o.from,o.to),u.push(fY.announce.of(n.phrase(`replaced match on line $`,n.doc.lineAt(r).number)+`.`)));let d=e.state.changes(s);return o&&(c=X.single(o.from,o.to).map(d),u.push(M4(e,o)),u.push(n.facet($4).scrollToMatch(c.main,e))),e.dispatch({changes:d,selection:c,effects:u,userEvent:`input.replace`}),!0}),g3=E4((e,{query:t})=>{if(e.state.readOnly)return!1;let n=t.matchAll(e.state,1e9).map(e=>{let{from:n,to:r}=e;return{from:n,to:r,insert:t.getReplacement(e)}});if(!n.length)return!1;let r=e.state.phrase(`replaced $ matches`,n.length)+`.`;return e.dispatch({changes:n,effects:fY.announce.of(r),userEvent:`input.replace.all`}),!0}),_3=e=>{let t=e.state.field(o3,!1);if(t&&t.panel){let n=k4(e);if(n&&n!=e.root.activeElement){let r=O4(e.state,t.query.spec);r.valid&&e.dispatch({effects:i3.of(r)}),n.focus(),n.select()}}else e.dispatch({effects:[a3.of(!0),t?i3.of(O4(e.state,t.query.spec)):JU.appendConfig.of(w3)]});return!0},v3=e=>{let t=e.state.field(o3,!1);if(!t||!t.panel)return!1;let n=FK(e,D4);return n&&n.dom.contains(e.root.activeElement)&&e.focus(),e.dispatch({effects:a3.of(!1)}),!0},y3=[{key:`Mod-f`,run:_3,scope:`editor search-panel`},{key:`F3`,run:d3,shift:f3,scope:`editor search-panel`,preventDefault:!0},{key:`Mod-g`,run:d3,shift:f3,scope:`editor search-panel`,preventDefault:!0},{key:`Escape`,run:v3,scope:`editor search-panel`},{key:`Mod-Shift-l`,run:m3},{key:`Mod-Alt-g`,run:U4},{key:`Mod-d`,run:Q4,preventDefault:!0}],b3=class{constructor(e){this.view=e;let t=this.query=e.state.field(o3).query.spec;this.commit=this.commit.bind(this),this.searchField=TW(`input`,{value:t.search,placeholder:j4(e,`Find`),"aria-label":j4(e,`Find`),class:`cm-textfield`,name:`search`,form:``,"main-field":`true`,onchange:this.commit,onkeyup:this.commit}),this.replaceField=TW(`input`,{value:t.replace,placeholder:j4(e,`Replace`),"aria-label":j4(e,`Replace`),class:`cm-textfield`,name:`replace`,form:``,onchange:this.commit,onkeyup:this.commit}),this.caseField=TW(`input`,{type:`checkbox`,name:`case`,form:``,checked:t.caseSensitive,onchange:this.commit}),this.reField=TW(`input`,{type:`checkbox`,name:`re`,form:``,checked:t.regexp,onchange:this.commit}),this.wordField=TW(`input`,{type:`checkbox`,name:`word`,form:``,checked:t.wholeWord,onchange:this.commit});function n(e,t,n){return TW(`button`,{class:`cm-button`,name:e,onclick:t,type:`button`},n)}this.dom=TW(`div`,{onkeydown:e=>this.keydown(e),class:`cm-search`},[this.searchField,n(`next`,()=>d3(e),[j4(e,`next`)]),n(`prev`,()=>f3(e),[j4(e,`previous`)]),n(`select`,()=>p3(e),[j4(e,`all`)]),TW(`label`,null,[this.caseField,j4(e,`match case`)]),TW(`label`,null,[this.reField,j4(e,`regexp`)]),TW(`label`,null,[this.wordField,j4(e,`by word`)]),...e.state.readOnly?[]:[TW(`br`),this.replaceField,n(`replace`,()=>h3(e),[j4(e,`replace`)]),n(`replaceAll`,()=>g3(e),[j4(e,`replace all`)])],TW(`button`,{name:`close`,onclick:()=>v3(e),"aria-label":j4(e,`close`),type:`button`},[`×`])])}commit(){let e=new e3({search:this.searchField.value,caseSensitive:this.caseField.checked,regexp:this.reField.checked,wholeWord:this.wordField.checked,replace:this.replaceField.value});e.eq(this.query)||(this.query=e,this.view.dispatch({effects:i3.of(e)}))}keydown(e){Ene(this.view,e,`search-panel`)?e.preventDefault():e.keyCode==13&&e.target==this.searchField?(e.preventDefault(),(e.shiftKey?f3:d3)(this.view)):e.keyCode==13&&e.target==this.replaceField&&(e.preventDefault(),h3(this.view))}update(e){for(let t of e.transactions)for(let e of t.effects)e.is(i3)&&!e.value.eq(this.query)&&this.setQuery(e.value)}setQuery(e){this.query=e,this.searchField.value=e.search,this.replaceField.value=e.replace,this.caseField.checked=e.caseSensitive,this.reField.checked=e.regexp,this.wordField.checked=e.wholeWord}mount(){this.searchField.select()}get pos(){return 80}get top(){return this.view.state.facet($4).top}},x3=30,S3=/[\s\.,:;?!]/,C3=fY.baseTheme({".cm-panel.cm-search":{padding:`2px 6px 4px`,position:`relative`,"& [name=close]":{position:`absolute`,top:`0`,right:`4px`,backgroundColor:`inherit`,border:`none`,font:`inherit`,padding:0,margin:0},"& input, & button, & label":{margin:`.2em .6em .2em 0`},"& input[type=checkbox]":{marginRight:`.2em`},"& label":{fontSize:`80%`,whiteSpace:`pre`}},"&light .cm-searchMatch":{backgroundColor:`#ffff0054`},"&dark .cm-searchMatch":{backgroundColor:`#00ffff8a`},"&light .cm-searchMatch-selected":{backgroundColor:`#ff6a0054`},"&dark .cm-searchMatch-selected":{backgroundColor:`#ff00ff8a`}}),w3=[o3,NU.low(u3),C3]}));function E3(e){let t=Object.keys(e).join(``),n=/\w/.test(t);return n&&(t=t.replace(/\w/g,``)),`[${n?`\\w`:``}${t.replace(/[^\w\s]/g,`\\$&`)}]`}function D3(e){let t=Object.create(null),n=Object.create(null);for(let{label:r}of e){t[r[0]]=!0;for(let e=1;e<r.length;e++)n[r[e]]=!0}let r=E3(t)+E3(n)+`*$`;return[RegExp(`^`+r),new RegExp(r)]}function O3(e){let t=e.map(e=>typeof e==`string`?{label:e}:e),[n,r]=t.every(e=>/^\w+$/.test(e.label))?[/\w*$/,/\w+$/]:D3(t);return e=>{let i=e.matchBefore(r);return i||e.explicit?{from:i?i.from:e.pos,options:t,validFor:n}:null}}function k3(e){return e.selection.main.from}function A3(e,t){let{source:n}=e,r=t&&n[0]!=`^`,i=n[n.length-1]!=`$`;return!r&&!i?e:RegExp(`${r?`^`:``}(?:${n})${i?`$`:``}`,e.flags??(e.ignoreCase?`i`:``))}function j3(e,t,n,r){let{main:i}=e.selection,a=n-i.from,o=r-i.from;return{...e.changeByRange(s=>{if(s!=i&&n!=r&&e.sliceDoc(s.from+a,s.from+o)!=e.sliceDoc(n,r))return{range:s};let c=e.toText(t);return{changes:{from:s.from+a,to:r==i.from?s.to:s.from+o,insert:c},range:X.cursor(s.from+a+c.length)}}),scrollIntoView:!0,userEvent:`input.complete`}}function M3(e){if(!Array.isArray(e))return e;let t=u6.get(e);return t||u6.set(e,t=O3(e)),t}function N3(e,t){return e?t?e+` `+t:e:t}function P3(e,t,n,r,i,a){let o=e.textDirection==wq.RTL,s=o,c=!1,l=`top`,u,d,f=t.left-i.left,p=i.right-t.right,m=r.right-r.left,h=r.bottom-r.top;if(s&&f<Math.min(m,p)?s=!1:!s&&p<Math.min(m,f)&&(s=!0),m<=(s?f:p))u=Math.max(i.top,Math.min(n.top,i.bottom-h))-t.top,d=Math.min(400,s?f:p);else{c=!0,d=Math.min(400,(o?t.right:i.right-t.left)-30);let e=i.bottom-t.bottom;e>=h||e>t.top?u=n.bottom-t.top:(l=`bottom`,u=t.bottom-n.top)}let g=(t.bottom-t.top)/a.offsetHeight,_=(t.right-t.left)/a.offsetWidth;return{style:`${l}: ${u/g}px; max-width: ${d/_}px`,class:`cm-completionInfo-`+(c?o?`left-narrow`:`right-narrow`:s?`left`:`right`)}}function F3(e){let t=e.addToOptions.slice();return e.icons&&t.push({render(e){let t=document.createElement(`div`);return t.classList.add(`cm-completionIcon`),e.type&&t.classList.add(...e.type.split(/\s+/g).map(e=>`cm-completionIcon-`+e)),t.setAttribute(`aria-hidden`,`true`),t},position:20}),t.push({render(e,t,n,r){let i=document.createElement(`span`);i.className=`cm-completionLabel`;let a=e.displayLabel||e.label,o=0;for(let e=0;e<r.length;){let t=r[e++],n=r[e++];t>o&&i.appendChild(document.createTextNode(a.slice(o,t)));let s=i.appendChild(document.createElement(`span`));s.appendChild(document.createTextNode(a.slice(t,n))),s.className=`cm-completionMatchedText`,o=n}return o<a.length&&i.appendChild(document.createTextNode(a.slice(o))),i},position:50},{render(e){if(!e.detail)return null;let t=document.createElement(`span`);return t.className=`cm-completionDetail`,t.textContent=e.detail,t},position:80}),t.sort((e,t)=>e.position-t.position).map(e=>e.render)}function I3(e,t,n){if(e<=n)return{from:0,to:e};if(t<0&&(t=0),t<=e>>1){let e=Math.floor(t/n);return{from:e*n,to:(e+1)*n}}let r=Math.floor((e-t)/n);return{from:e-(r+1)*n,to:e-r*n}}function L3(e,t){return n=>new g6(n,e,t)}function R3(e,t){let n=e.getBoundingClientRect(),r=t.getBoundingClientRect(),i=n.height/e.offsetHeight;r.top<n.top?e.scrollTop-=(n.top-r.top)/i:r.bottom>n.bottom&&(e.scrollTop+=(r.bottom-n.bottom)/i)}function z3(e){return(e.boost||0)*100+(e.apply?10:0)+(e.info?5:0)+ +!!e.type}function B3(e,t){let n=[],r=null,i=null,a=e=>{n.push(e);let{section:t}=e.completion;if(t){r||(r=[]);let e=typeof t==`string`?t:t.name;r.some(t=>t.name==e)||r.push(typeof t==`string`?{name:e}:t)}},o=t.facet(h6);for(let r of e)if(r.hasResult()){let e=r.result.getMatch;if(r.result.filter===!1)for(let t of r.result.options)a(new c6(t,r.source,e?e(t):[],1e9-n.length));else{let n=t.sliceDoc(r.from,r.to),s,c=o.filterStrict?new m6(n):new p6(n);for(let t of r.result.options)if(s=c.match(t.label)){let n=t.displayLabel?e?e(t,s.matched):[]:s.matched,o=s.score+(t.boost||0);if(a(new c6(t,r.source,n,o)),typeof t.section==`object`&&t.section.rank===`dynamic`){let{name:e}=t.section;i||(i=Object.create(null)),i[e]=Math.max(o,i[e]||-1e9)}}}}if(r){let e=Object.create(null),t=0,a=(e,t)=>(e.rank===`dynamic`&&t.rank===`dynamic`?i[t.name]-i[e.name]:0)||(typeof e.rank==`number`?e.rank:1e9)-(typeof t.rank==`number`?t.rank:1e9)||(e.name<t.name?-1:1);for(let n of r.sort(a))t-=1e5,e[n.name]=t;for(let t of n){let{section:n}=t.completion;n&&(t.score+=e[typeof n==`string`?n:n.name])}}let s=[],c=null,l=o.compareCompletions;for(let e of n.sort((e,t)=>t.score-e.score||l(e.completion,t.completion))){let t=e.completion;!c||c.label!=t.label||c.detail!=t.detail||c.type!=null&&t.type!=null&&c.type!=t.type||c.apply!=t.apply||c.boost!=t.boost?s.push(e):z3(e.completion)>z3(c)&&(s[s.length-1]=e),c=e.completion}return s}function V3(e,t){if(e==t)return!0;for(let n=0,r=0;;){for(;n<e.length&&!e[n].hasResult();)n++;for(;r<t.length&&!t[r].hasResult();)r++;let i=n==e.length,a=r==t.length;if(i||a)return i==a;if(e[n++].result!=t[r++].result)return!1}}function H3(e,t){let n={"aria-autocomplete":`list`,"aria-haspopup":`listbox`,"aria-controls":e};return t>-1&&(n[`aria-activedescendant`]=e+`-`+t),n}function U3(e,t){if(e.isUserEvent(`input.complete`)){let n=e.annotation(l6);if(n&&t.activateOnCompletion(n))return 12}let n=e.isUserEvent(`input.type`);return n&&t.activateOnTyping?5:n?1:e.isUserEvent(`delete.backward`)?2:e.selection?8:e.docChanged?16:0}function W3(e,t,n,r){if(!e)return!1;let i=t.sliceDoc(n,r);return typeof e==`function`?e(i,n,r,t):A3(e,!0).test(i)}function G3(e,t){let n=t.completion.apply||t.completion.label,r=e.state.field(E6).active.find(e=>e.source==t.source);return r instanceof C6?(typeof n==`string`?e.dispatch({...j3(e.state,n,r.from,r.to),annotations:l6.of(t.completion)}):n(e,t.completion,r.from,r.to),!0):!1}function K3(e,t=`option`){return n=>{let r=n.state.field(E6,!1);if(!r||!r.open||r.open.disabled||Date.now()-r.open.timestamp<n.state.facet(h6).interactionDelay)return!1;let i=1,a;t==`page`&&(a=PK(n,r.open.tooltip))&&(i=Math.max(2,Math.floor(a.dom.offsetHeight/a.dom.querySelector(`li`).offsetHeight)-1));let{length:o}=r.open.options,s=r.open.selected>-1?r.open.selected+i*(e?1:-1):e?0:o-1;return s<0?s=t==`page`?0:o-1:s>=o&&(s=t==`page`?o-1:0),n.dispatch({effects:T6.of(s)}),!0}}function q3(){return[W6,V6]}function J3(e){for(let t=0;t<16;t+=2)if(H6.charCodeAt(t)==e)return H6.charAt(t+1);return jH(e<128?e:e+1)}function Y3(e,t){return e.languageDataAt(`closeBrackets`,t)[0]||R6}function X3(e,t){let n=Y3(e,e.selection.main.head),r=n.brackets||R6.brackets;for(let i of r){let a=J3(AH(i,0));if(t==i)return a==i?n6(e,i,r.indexOf(i+i+i)>-1,n):e6(e,i,a,n.before||R6.before);if(t==a&&Z3(e,e.selection.main.from))return t6(e,i,a)}return null}function Z3(e,t){let n=!1;return e.field(V6).between(0,e.doc.length,e=>{e==t&&(n=!0)}),n}function Q3(e,t){let n=e.sliceString(t,t+2);return n.slice(0,MH(AH(n,0)))}function $3(e,t){let n=e.sliceString(t-2,t);return MH(AH(n,0))==n.length?n:n.slice(1)}function e6(e,t,n,r){let i=null,a=e.changeByRange(a=>{if(!a.empty)return{changes:[{insert:t,from:a.from},{insert:n,from:a.to}],effects:z6.of(a.to+t.length),range:X.range(a.anchor+t.length,a.head+t.length)};let o=Q3(e.doc,a.head);return!o||/\s/.test(o)||r.indexOf(o)>-1?{changes:{insert:t+n,from:a.head},effects:z6.of(a.head+t.length),range:X.cursor(a.head+t.length)}:{range:i=a}});return i?null:e.update(a,{scrollIntoView:!0,userEvent:`input.type`})}function t6(e,t,n){let r=null,i=e.changeByRange(t=>t.empty&&Q3(e.doc,t.head)==n?{changes:{from:t.head,to:t.head+n.length,insert:n},range:X.cursor(t.head+n.length)}:r={range:t});return r?null:e.update(i,{scrollIntoView:!0,userEvent:`input.type`})}function n6(e,t,n,r){let i=r.stringPrefixes||R6.stringPrefixes,a=null,o=e.changeByRange(r=>{if(!r.empty)return{changes:[{insert:t,from:r.from},{insert:t,from:r.to}],effects:z6.of(r.to+t.length),range:X.range(r.anchor+t.length,r.head+t.length)};let o=r.head,s=Q3(e.doc,o),c;if(s==t){if(r6(e,o))return{changes:{insert:t+t,from:o},effects:z6.of(o+t.length),range:X.cursor(o+t.length)};if(Z3(e,o)){let r=n&&e.sliceDoc(o,o+t.length*3)==t+t+t?t+t+t:t;return{changes:{from:o,to:o+r.length,insert:r},range:X.cursor(o+r.length)}}}else if(n&&e.sliceDoc(o-2*t.length,o)==t+t&&(c=a6(e,o-2*t.length,i))>-1&&r6(e,c))return{changes:{insert:t+t+t+t,from:o},effects:z6.of(o+t.length),range:X.cursor(o+t.length)};else if(e.charCategorizer(o)(s)!=ZU.Word&&a6(e,o,i)>-1&&!i6(e,o,t,i))return{changes:{insert:t+t,from:o},effects:z6.of(o+t.length),range:X.cursor(o+t.length)};return{range:a=r}});return a?null:e.update(o,{scrollIntoView:!0,userEvent:`input.type`})}function r6(e,t){let n=WZ(e).resolveInner(t+1);return n.parent&&n.from==t}function i6(e,t,n,r){let i=WZ(e).resolveInner(t,-1),a=r.reduce((e,t)=>Math.max(e,t.length),0);for(let o=0;o<5;o++){let o=e.sliceDoc(i.from,Math.min(i.to,i.from+n.length+a)),s=o.indexOf(n);if(!s||s>-1&&r.indexOf(o.slice(0,s))>-1){let t=i.firstChild;for(;t&&t.from==i.from&&t.to-t.from>n.length+s;){if(e.sliceDoc(t.to-n.length,t.to)==n)return!1;t=t.firstChild}return!0}let c=i.to==t&&i.parent;if(!c)break;i=c}return!1}function a6(e,t,n){let r=e.charCategorizer(t);if(r(e.sliceDoc(t-1,t))!=ZU.Word)return t;for(let i of n){let n=t-i.length;if(e.sliceDoc(n,t)==i&&r(e.sliceDoc(n-1,n))!=ZU.Word)return n}return-1}function o6(e={}){return[I6,E6,h6.of(e),P6,J6,L6]}var s6,c6,l6,u6,d6,f6,p6,m6,h6,g6,_6,v6,y6,b6,x6,S6,C6,w6,T6,E6,D6,O6,k6,A6,j6,M6,N6,P6,F6,I6,L6,R6,z6,B6,V6,H6,U6,W6,G6,K6,q6,J6,Y6=o((()=>{lW(),AX(),j$(),s6=class{constructor(e,t,n,r){this.state=e,this.pos=t,this.explicit=n,this.view=r,this.abortListeners=[],this.abortOnDocChange=!1}tokenBefore(e){let t=WZ(this.state).resolveInner(this.pos,-1);for(;t&&e.indexOf(t.name)<0;)t=t.parent;return t?{from:t.from,to:this.pos,text:this.state.sliceDoc(t.from,this.pos),type:t.type}:null}matchBefore(e){let t=this.state.doc.lineAt(this.pos),n=Math.max(t.from,this.pos-250),r=t.text.slice(n-t.from,this.pos-t.from),i=r.search(A3(e,!1));return i<0?null:{from:n+i,to:this.pos,text:r.slice(i)}}get aborted(){return this.abortListeners==null}addEventListener(e,t,n){e==`abort`&&this.abortListeners&&(this.abortListeners.push(t),n&&n.onDocChange&&(this.abortOnDocChange=!0))}},c6=class{constructor(e,t,n,r){this.completion=e,this.source=t,this.match=n,this.score=r}},l6=GU.define(),u6=new WeakMap,d6=JU.define(),f6=JU.define(),p6=class{constructor(e){this.pattern=e,this.chars=[],this.folded=[],this.any=[],this.precise=[],this.byWord=[],this.score=0,this.matched=[];for(let t=0;t<e.length;){let n=AH(e,t),r=MH(n);this.chars.push(n);let i=e.slice(t,t+r),a=i.toUpperCase();this.folded.push(AH(a==i?i.toLowerCase():a,0)),t+=r}this.astral=e.length!=this.chars.length}ret(e,t){return this.score=e,this.matched=t,this}match(e){if(this.pattern.length==0)return this.ret(-100,[]);if(e.length<this.pattern.length)return null;let{chars:t,folded:n,any:r,precise:i,byWord:a}=this;if(t.length==1){let r=AH(e,0),i=MH(r),a=i==e.length?0:-100;if(r!=t[0])if(r==n[0])a+=-200;else return null;return this.ret(a,[0,i])}let o=e.indexOf(this.pattern);if(o==0)return this.ret(e.length==this.pattern.length?0:-100,[0,this.pattern.length]);let s=t.length,c=0;if(o<0){for(let i=0,a=Math.min(e.length,200);i<a&&c<s;){let a=AH(e,i);(a==t[c]||a==n[c])&&(r[c++]=i),i+=MH(a)}if(c<s)return null}let l=0,u=0,d=!1,f=0,p=-1,m=-1,h=/[a-z]/.test(e),g=!0;for(let r=0,c=Math.min(e.length,200),_=0;r<c&&u<s;){let c=AH(e,r);o<0&&(l<s&&c==t[l]&&(i[l++]=r),f<s&&(c==t[f]||c==n[f]?(f==0&&(p=r),m=r+1,f++):f=0));let v,y=c<255?c>=48&&c<=57||c>=97&&c<=122?2:+(c>=65&&c<=90):(v=jH(c))==v.toLowerCase()?v==v.toUpperCase()?0:2:1;(!r||y==1&&h||_==0&&y!=0)&&(t[u]==c||n[u]==c&&(d=!0)?a[u++]=r:a.length&&(g=!1)),_=y,r+=MH(c)}return u==s&&a[0]==0&&g?this.result(-100+(d?-200:0),a,e):f==s&&p==0?this.ret(-200-e.length+(m==e.length?0:-100),[0,m]):o>-1?this.ret(-700-e.length,[o,o+this.pattern.length]):f==s?this.ret(-900-e.length,[p,m]):u==s?this.result(-100+(d?-200:0)+-700+(g?0:-1100),a,e):t.length==2?null:this.result((r[0]?-700:0)+-200+-1100,r,e)}result(e,t,n){let r=[],i=0;for(let e of t){let t=e+(this.astral?MH(AH(n,e)):1);i&&r[i-1]==e?r[i-1]=t:(r[i++]=e,r[i++]=t)}return this.ret(e-n.length,r)}},m6=class{constructor(e){this.pattern=e,this.matched=[],this.score=0,this.folded=e.toLowerCase()}match(e){if(e.length<this.pattern.length)return null;let t=e.slice(0,this.pattern.length),n=t==this.pattern?0:t.toLowerCase()==this.folded?-200:null;return n==null?null:(this.matched=[0,t.length],this.score=n+(e.length==this.pattern.length?0:-100),this)}},h6=OU.define({combine(e){return nU(e,{activateOnTyping:!0,activateOnCompletion:()=>!1,activateOnTypingDelay:100,selectOnOpen:!0,override:null,closeOnBlur:!0,maxRenderedOptions:100,defaultKeymap:!0,tooltipClass:()=>``,optionClass:()=>``,aboveCursor:!1,icons:!0,addToOptions:[],positionInfo:P3,filterStrict:!1,compareCompletions:(e,t)=>(e.sortText||e.label).localeCompare(t.sortText||t.label),interactionDelay:75,updateSyncTime:100},{defaultKeymap:(e,t)=>e&&t,closeOnBlur:(e,t)=>e&&t,icons:(e,t)=>e&&t,tooltipClass:(e,t)=>n=>N3(e(n),t(n)),optionClass:(e,t)=>n=>N3(e(n),t(n)),addToOptions:(e,t)=>e.concat(t),filterStrict:(e,t)=>e||t})}}),g6=class{constructor(e,t,n){this.view=e,this.stateField=t,this.applyCompletion=n,this.info=null,this.infoDestroy=null,this.placeInfoReq={read:()=>this.measureInfo(),write:e=>this.placeInfo(e),key:this},this.space=null,this.currentClass=``;let r=e.state.field(t),{options:i,selected:a}=r.open,o=e.state.facet(h6);this.optionContent=F3(o),this.optionClass=o.optionClass,this.tooltipClass=o.tooltipClass,this.range=I3(i.length,a,o.maxRenderedOptions),this.dom=document.createElement(`div`),this.dom.className=`cm-tooltip-autocomplete`,this.updateTooltipClass(e.state),this.dom.addEventListener(`mousedown`,n=>{let{options:r}=e.state.field(t).open;for(let t=n.target,i;t&&t!=this.dom;t=t.parentNode)if(t.nodeName==`LI`&&(i=/-(\d+)$/.exec(t.id))&&+i[1]<r.length){this.applyCompletion(e,r[+i[1]]),n.preventDefault();return}}),this.dom.addEventListener(`focusout`,t=>{let n=e.state.field(this.stateField,!1);n&&n.tooltip&&e.state.facet(h6).closeOnBlur&&t.relatedTarget!=e.contentDOM&&e.dispatch({effects:f6.of(null)})}),this.showOptions(i,r.id)}mount(){this.updateSel()}showOptions(e,t){this.list&&this.list.remove(),this.list=this.dom.appendChild(this.createListBox(e,t,this.range)),this.list.addEventListener(`scroll`,()=>{this.info&&this.view.requestMeasure(this.placeInfoReq)})}update(e){let t=e.state.field(this.stateField),n=e.startState.field(this.stateField);if(this.updateTooltipClass(e.state),t!=n){let{options:r,selected:i,disabled:a}=t.open;(!n.open||n.open.options!=r)&&(this.range=I3(r.length,i,e.state.facet(h6).maxRenderedOptions),this.showOptions(r,t.id)),this.updateSel(),a!=n.open?.disabled&&this.dom.classList.toggle(`cm-tooltip-autocomplete-disabled`,!!a)}}updateTooltipClass(e){let t=this.tooltipClass(e);if(t!=this.currentClass){for(let e of this.currentClass.split(` `))e&&this.dom.classList.remove(e);for(let e of t.split(` `))e&&this.dom.classList.add(e);this.currentClass=t}}positioned(e){this.space=e,this.info&&this.view.requestMeasure(this.placeInfoReq)}updateSel(){let e=this.view.state.field(this.stateField),t=e.open;(t.selected>-1&&t.selected<this.range.from||t.selected>=this.range.to)&&(this.range=I3(t.options.length,t.selected,this.view.state.facet(h6).maxRenderedOptions),this.showOptions(t.options,e.id));let n=this.updateSelectedOption(t.selected);if(n){this.destroyInfo();let{completion:r}=t.options[t.selected],{info:i}=r;if(!i)return;let a=typeof i==`string`?document.createTextNode(i):i(r);if(!a)return;`then`in a?a.then(t=>{t&&this.view.state.field(this.stateField,!1)==e&&this.addInfoPane(t,r)}).catch(e=>EG(this.view.state,e,`completion info`)):(this.addInfoPane(a,r),n.setAttribute(`aria-describedby`,this.info.id))}}addInfoPane(e,t){this.destroyInfo();let n=this.info=document.createElement(`div`);if(n.className=`cm-tooltip cm-completionInfo`,n.id=`cm-completionInfo-`+Math.floor(Math.random()*65535).toString(16),e.nodeType!=null)n.appendChild(e),this.infoDestroy=null;else{let{dom:t,destroy:r}=e;n.appendChild(t),this.infoDestroy=r||null}this.dom.appendChild(n),this.view.requestMeasure(this.placeInfoReq)}updateSelectedOption(e){let t=null;for(let n=this.list.firstChild,r=this.range.from;n;n=n.nextSibling,r++)n.nodeName!=`LI`||!n.id?r--:r==e?n.hasAttribute(`aria-selected`)||(n.setAttribute(`aria-selected`,`true`),t=n):n.hasAttribute(`aria-selected`)&&(n.removeAttribute(`aria-selected`),n.removeAttribute(`aria-describedby`));return t&&R3(this.list,t),t}measureInfo(){let e=this.dom.querySelector(`[aria-selected]`);if(!e||!this.info)return null;let t=this.dom.getBoundingClientRect(),n=this.info.getBoundingClientRect(),r=e.getBoundingClientRect(),i=this.space;if(!i){let e=this.dom.ownerDocument.documentElement;i={left:0,top:0,right:e.clientWidth,bottom:e.clientHeight}}return r.top>Math.min(i.bottom,t.bottom)-10||r.bottom<Math.max(i.top,t.top)+10?null:this.view.state.facet(h6).positionInfo(this.view,t,r,n,i,this.dom)}placeInfo(e){this.info&&(e?(e.style&&(this.info.style.cssText=e.style),this.info.className=`cm-tooltip cm-completionInfo `+(e.class||``)):this.info.style.cssText=`top: -1e6px`)}createListBox(e,t,n){let r=document.createElement(`ul`);r.id=t,r.setAttribute(`role`,`listbox`),r.setAttribute(`aria-expanded`,`true`),r.setAttribute(`aria-label`,this.view.state.phrase(`Completions`)),r.addEventListener(`mousedown`,e=>{e.target==r&&e.preventDefault()});let i=null;for(let a=n.from;a<n.to;a++){let{completion:o,match:s}=e[a],{section:c}=o;if(c){let e=typeof c==`string`?c:c.name;if(e!=i&&(a>n.from||n.from==0))if(i=e,typeof c!=`string`&&c.header)r.appendChild(c.header(c));else{let t=r.appendChild(document.createElement(`completion-section`));t.textContent=e}}let l=r.appendChild(document.createElement(`li`));l.id=t+`-`+a,l.setAttribute(`role`,`option`);let u=this.optionClass(o);u&&(l.className=u);for(let e of this.optionContent){let t=e(o,this.view.state,this.view,s);t&&l.appendChild(t)}}return n.from&&r.classList.add(`cm-completionListIncompleteTop`),n.to<e.length&&r.classList.add(`cm-completionListIncompleteBottom`),r}destroyInfo(){this.info&&(this.infoDestroy&&this.infoDestroy(),this.info.remove(),this.info=null)}destroy(){this.destroyInfo()}},_6=class e{constructor(e,t,n,r,i,a){this.options=e,this.attrs=t,this.tooltip=n,this.timestamp=r,this.selected=i,this.disabled=a}setSelected(t,n){return t==this.selected||t>=this.options.length?this:new e(this.options,H3(n,t),this.tooltip,this.timestamp,t,this.disabled)}static build(t,n,r,i,a,o){if(i&&!o&&t.some(e=>e.isPending))return i.setDisabled();let s=B3(t,n);if(!s.length)return i&&t.some(e=>e.isPending)?i.setDisabled():null;let c=n.facet(h6).selectOnOpen?0:-1;if(i&&i.selected!=c&&i.selected!=-1){let e=i.options[i.selected].completion;for(let t=0;t<s.length;t++)if(s[t].completion==e){c=t;break}}return new e(s,H3(r,c),{pos:t.reduce((e,t)=>t.hasResult()?Math.min(e,t.from):e,1e8),create:D6,above:a.aboveCursor},i?i.timestamp:Date.now(),c,!1)}map(t){return new e(this.options,this.attrs,{...this.tooltip,pos:t.mapPos(this.tooltip.pos)},this.timestamp,this.selected,this.disabled)}setDisabled(){return new e(this.options,this.attrs,this.tooltip,this.timestamp,this.selected,!0)}},v6=class e{constructor(e,t,n){this.active=e,this.id=t,this.open=n}static start(){return new e(x6,`cm-ac-`+Math.floor(Math.random()*2e6).toString(36),null)}update(t){let{state:n}=t,r=n.facet(h6),i=(r.override||n.languageDataAt(`autocomplete`,k3(n)).map(M3)).map(e=>(this.active.find(t=>t.source==e)||new S6(e,+!!this.active.some(e=>e.state!=0))).update(t,r));i.length==this.active.length&&i.every((e,t)=>e==this.active[t])&&(i=this.active);let a=this.open,o=t.effects.some(e=>e.is(w6));a&&t.docChanged&&(a=a.map(t.changes)),t.selection||i.some(e=>e.hasResult()&&t.changes.touchesRange(e.from,e.to))||!V3(i,this.active)||o?a=_6.build(i,n,this.id,a,r,o):a&&a.disabled&&!i.some(e=>e.isPending)&&(a=null),!a&&i.every(e=>!e.isPending)&&i.some(e=>e.hasResult())&&(i=i.map(e=>e.hasResult()?new S6(e.source,0):e));for(let e of t.effects)e.is(T6)&&(a=a&&a.setSelected(e.value,this.id));return i==this.active&&a==this.open?this:new e(i,this.id,a)}get tooltip(){return this.open?this.open.tooltip:null}get attrs(){return this.open?this.open.attrs:this.active.length?y6:b6}},y6={"aria-autocomplete":`list`},b6={},x6=[],S6=class e{constructor(e,t,n=!1){this.source=e,this.state=t,this.explicit=n}hasResult(){return!1}get isPending(){return this.state==1}update(t,n){let r=U3(t,n),i=this;(r&8||r&16&&this.touches(t))&&(i=new e(i.source,0)),r&4&&i.state==0&&(i=new e(this.source,1)),i=i.updateFor(t,r);for(let n of t.effects)if(n.is(d6))i=new e(i.source,1,n.value);else if(n.is(f6))i=new e(i.source,0);else if(n.is(w6))for(let e of n.value)e.source==i.source&&(i=e);return i}updateFor(e,t){return this.map(e.changes)}map(e){return this}touches(e){return e.changes.touchesRange(k3(e.state))}},C6=class e extends S6{constructor(e,t,n,r,i,a){super(e,3,t),this.limit=n,this.result=r,this.from=i,this.to=a}hasResult(){return!0}updateFor(t,n){if(!(n&3))return this.map(t.changes);let r=this.result;r.map&&!t.changes.empty&&(r=r.map(r,t.changes));let i=t.changes.mapPos(this.from),a=t.changes.mapPos(this.to,1),o=k3(t.state);if(o>a||!r||n&2&&(k3(t.startState)==this.from||o<this.limit))return new S6(this.source,n&4?1:0);let s=t.changes.mapPos(this.limit);return W3(r.validFor,t.state,i,a)?new e(this.source,this.explicit,s,r,i,a):r.update&&(r=r.update(r,i,a,new s6(t.state,o,!1)))?new e(this.source,this.explicit,s,r,r.from,r.to??k3(t.state)):new S6(this.source,1,this.explicit)}map(t){return t.empty?this:(this.result.map?this.result.map(this.result,t):this.result)?new e(this.source,this.explicit,t.mapPos(this.limit),this.result,t.mapPos(this.from),t.mapPos(this.to,1)):new S6(this.source,0)}touches(e){return e.changes.touchesRange(this.from,this.to)}},w6=JU.define({map(e,t){return e.map(e=>e.map(t))}}),T6=JU.define(),E6=jU.define({create(){return v6.start()},update(e,t){return e.update(t)},provide:e=>[nX.from(e,e=>e.tooltip),fY.contentAttributes.from(e,e=>e.attrs)]}),D6=L3(E6,G3),O6=e=>{let t=e.state.field(E6,!1);return e.state.readOnly||!t||!t.open||t.open.selected<0||t.open.disabled||Date.now()-t.open.timestamp<e.state.facet(h6).interactionDelay?!1:G3(e,t.open.options[t.open.selected])},k6=e=>e.state.field(E6,!1)?(e.dispatch({effects:d6.of(!0)}),!0):!1,A6=e=>{let t=e.state.field(E6,!1);return!t||!t.active.some(e=>e.state!=0)?!1:(e.dispatch({effects:f6.of(null)}),!0)},j6=class{constructor(e,t){this.active=e,this.context=t,this.time=Date.now(),this.updates=[],this.done=void 0}},M6=50,N6=1e3,P6=$q.fromClass(class{constructor(e){this.view=e,this.debounceUpdate=-1,this.running=[],this.debounceAccept=-1,this.pendingStart=!1,this.composing=0;for(let t of e.state.field(E6).active)t.isPending&&this.startQuery(t)}update(e){let t=e.state.field(E6),n=e.state.facet(h6);if(!e.selectionSet&&!e.docChanged&&e.startState.field(E6)==t)return;let r=e.transactions.some(e=>{let t=U3(e,n);return t&8||(e.selection||e.docChanged)&&!(t&3)});for(let t=0;t<this.running.length;t++){let n=this.running[t];if(r||n.context.abortOnDocChange&&e.docChanged||n.updates.length+e.transactions.length>M6&&Date.now()-n.time>N6){for(let e of n.context.abortListeners)try{e()}catch(e){EG(this.view.state,e)}n.context.abortListeners=null,this.running.splice(t--,1)}else n.updates.push(...e.transactions)}this.debounceUpdate>-1&&clearTimeout(this.debounceUpdate),e.transactions.some(e=>e.effects.some(e=>e.is(d6)))&&(this.pendingStart=!0);let i=this.pendingStart?50:n.activateOnTypingDelay;if(this.debounceUpdate=t.active.some(e=>e.isPending&&!this.running.some(t=>t.active.source==e.source))?setTimeout(()=>this.startUpdate(),i):-1,this.composing!=0)for(let t of e.transactions)t.isUserEvent(`input.type`)?this.composing=2:this.composing==2&&t.selection&&(this.composing=3)}startUpdate(){this.debounceUpdate=-1,this.pendingStart=!1;let{state:e}=this.view,t=e.field(E6);for(let e of t.active)e.isPending&&!this.running.some(t=>t.active.source==e.source)&&this.startQuery(e);this.running.length&&t.open&&t.open.disabled&&(this.debounceAccept=setTimeout(()=>this.accept(),this.view.state.facet(h6).updateSyncTime))}startQuery(e){let{state:t}=this.view,n=k3(t),r=new s6(t,n,e.explicit,this.view),i=new j6(e,r);this.running.push(i),Promise.resolve(e.source(r)).then(e=>{i.context.aborted||(i.done=e||null,this.scheduleAccept())},e=>{this.view.dispatch({effects:f6.of(null)}),EG(this.view.state,e)})}scheduleAccept(){this.running.every(e=>e.done!==void 0)?this.accept():this.debounceAccept<0&&(this.debounceAccept=setTimeout(()=>this.accept(),this.view.state.facet(h6).updateSyncTime))}accept(){this.debounceAccept>-1&&clearTimeout(this.debounceAccept),this.debounceAccept=-1;let e=[],t=this.view.state.facet(h6),n=this.view.state.field(E6);for(let r=0;r<this.running.length;r++){let i=this.running[r];if(i.done===void 0)continue;if(this.running.splice(r--,1),i.done){let n=k3(i.updates.length?i.updates[0].startState:this.view.state),r=Math.min(n,i.done.from+ +!i.active.explicit),a=new C6(i.active.source,i.active.explicit,r,i.done,i.done.from,i.done.to??n);for(let e of i.updates)a=a.update(e,t);if(a.hasResult()){e.push(a);continue}}let a=n.active.find(e=>e.source==i.active.source);if(a&&a.isPending)if(i.done==null){let n=new S6(i.active.source,0);for(let e of i.updates)n=n.update(e,t);n.isPending||e.push(n)}else this.startQuery(a)}(e.length||n.open&&n.open.disabled)&&this.view.dispatch({effects:w6.of(e)})}},{eventHandlers:{blur(e){let t=this.view.state.field(E6,!1);if(t&&t.tooltip&&this.view.state.facet(h6).closeOnBlur){let n=t.open&&PK(this.view,t.open.tooltip);(!n||!n.dom.contains(e.relatedTarget))&&setTimeout(()=>this.view.dispatch({effects:f6.of(null)}),10)}},compositionstart(){this.composing=1},compositionend(){this.composing==3&&setTimeout(()=>this.view.dispatch({effects:d6.of(!1)}),20),this.composing=0}}}),F6=typeof navigator==`object`&&/Win/.test(navigator.platform),I6=NU.highest(fY.domEventHandlers({keydown(e,t){let n=t.state.field(E6,!1);if(!n||!n.open||n.open.disabled||n.open.selected<0||e.key.length>1||e.ctrlKey&&!(F6&&e.altKey)||e.metaKey)return!1;let r=n.open.options[n.open.selected],i=n.active.find(e=>e.source==r.source),a=r.completion.commitCharacters||i.result.commitCharacters;return a&&a.indexOf(e.key)>-1&&G3(t,r),!1}})),L6=fY.baseTheme({".cm-tooltip.cm-tooltip-autocomplete":{"& > ul":{fontFamily:`monospace`,whiteSpace:`nowrap`,overflow:`hidden auto`,maxWidth_fallback:`700px`,maxWidth:`min(700px, 95vw)`,minWidth:`250px`,maxHeight:`10em`,height:`100%`,listStyle:`none`,margin:0,padding:0,"& > li, & > completion-section":{padding:`1px 3px`,lineHeight:1.2},"& > li":{overflowX:`hidden`,textOverflow:`ellipsis`,cursor:`pointer`},"& > completion-section":{display:`list-item`,borderBottom:`1px solid silver`,paddingLeft:`0.5em`,opacity:.7}}},"&light .cm-tooltip-autocomplete ul li[aria-selected]":{background:`#17c`,color:`white`},"&light .cm-tooltip-autocomplete-disabled ul li[aria-selected]":{background:`#777`},"&dark .cm-tooltip-autocomplete ul li[aria-selected]":{background:`#347`,color:`white`},"&dark .cm-tooltip-autocomplete-disabled ul li[aria-selected]":{background:`#444`},".cm-completionListIncompleteTop:before, .cm-completionListIncompleteBottom:after":{content:`"···"`,opacity:.5,display:`block`,textAlign:`center`},".cm-tooltip.cm-completionInfo":{position:`absolute`,padding:`3px 9px`,width:`max-content`,maxWidth:`400px`,boxSizing:`border-box`,whiteSpace:`pre-line`},".cm-completionInfo.cm-completionInfo-left":{right:`100%`},".cm-completionInfo.cm-completionInfo-right":{left:`100%`},".cm-completionInfo.cm-completionInfo-left-narrow":{right:`30px`},".cm-completionInfo.cm-completionInfo-right-narrow":{left:`30px`},"&light .cm-snippetField":{backgroundColor:`#00000022`},"&dark .cm-snippetField":{backgroundColor:`#ffffff22`},".cm-snippetFieldPosition":{verticalAlign:`text-top`,width:0,height:`1.15em`,display:`inline-block`,margin:`0 -0.7px -.7em`,borderLeft:`1.4px dotted #888`},".cm-completionMatchedText":{textDecoration:`underline`},".cm-completionDetail":{marginLeft:`0.5em`,fontStyle:`italic`},".cm-completionIcon":{fontSize:`90%`,width:`.8em`,display:`inline-block`,textAlign:`center`,paddingRight:`.6em`,opacity:`0.6`,boxSizing:`content-box`},".cm-completionIcon-function, .cm-completionIcon-method":{"&:after":{content:`'ƒ'`}},".cm-completionIcon-class":{"&:after":{content:`'○'`}},".cm-completionIcon-interface":{"&:after":{content:`'◌'`}},".cm-completionIcon-variable":{"&:after":{content:`'𝑥'`}},".cm-completionIcon-constant":{"&:after":{content:`'𝐶'`}},".cm-completionIcon-type":{"&:after":{content:`'𝑡'`}},".cm-completionIcon-enum":{"&:after":{content:`'∪'`}},".cm-completionIcon-property":{"&:after":{content:`'□'`}},".cm-completionIcon-keyword":{"&:after":{content:`'🔑︎'`}},".cm-completionIcon-namespace":{"&:after":{content:`'▢'`}},".cm-completionIcon-text":{"&:after":{content:`'abc'`,fontSize:`50%`,verticalAlign:`middle`}}}),R6={brackets:[`(`,`[`,`{`,`'`,`"`],before:`)]}:;>`,stringPrefixes:[]},z6=JU.define({map(e,t){return t.mapPos(e,-1,SU.TrackAfter)??void 0}}),B6=new class extends tW{},B6.startSide=1,B6.endSide=-1,V6=jU.define({create(){return iW.empty},update(e,t){if(e=e.map(t.changes),t.selection){let n=t.state.doc.lineAt(t.selection.main.head);e=e.update({filter:e=>e>=n.from&&e<=n.to})}for(let n of t.effects)n.is(z6)&&(e=e.update({add:[B6.range(n.value,n.value+1)]}));return e}}),H6=`()[]{}<>«»»«[]{}`,U6=typeof navigator==`object`&&/Android\b/.test(navigator.userAgent),W6=fY.inputHandler.of((e,t,n,r)=>{if((U6?e.composing:e.compositionStarted)||e.state.readOnly)return!1;let i=e.state.selection.main;if(r.length>2||r.length==2&&MH(AH(r,0))==1||t!=i.from||n!=i.to)return!1;let a=X3(e.state,r);return a?(e.dispatch(a),!0):!1}),G6=({state:e,dispatch:t})=>{if(e.readOnly)return!1;let n=Y3(e,e.selection.main.head).brackets||R6.brackets,r=null,i=e.changeByRange(t=>{if(t.empty){let r=$3(e.doc,t.head);for(let i of n)if(i==r&&Q3(e.doc,t.head)==J3(AH(i,0)))return{changes:{from:t.head-i.length,to:t.head+i.length},range:X.cursor(t.head-i.length)}}return{range:r=t}});return r||t(e.update(i,{scrollIntoView:!0,userEvent:`delete.backward`})),!r},K6=[{key:`Backspace`,run:G6}],q6=[{key:`Ctrl-Space`,run:k6},{mac:"Alt-`",run:k6},{mac:`Alt-i`,run:k6},{key:`Escape`,run:A6},{key:`ArrowDown`,run:K3(!0)},{key:`ArrowUp`,run:K3(!1)},{key:`PageDown`,run:K3(!0,`page`)},{key:`PageUp`,run:K3(!1,`page`)},{key:`Enter`,run:O6}],J6=NU.highest(vY.computeN([h6],e=>e.facet(h6).defaultKeymap?[q6]:[]))}));function X6(e,t=null,n=0){let r=null;return e.between(n,1e9,(e,n,{spec:i})=>{if(!(t&&i.diagnostics.indexOf(t)<0))if(!r)r=new c8(e,n,t||i.diagnostics[0]);else if(i.diagnostics.indexOf(r.diagnostic)<0)return!1;else r=new c8(r.from,n,r.diagnostic)}),r}function Z6(e,t){let n=t.pos,r=t.end||n,i=e.state.facet(y8).hideOn(e,n,r);if(i!=null)return i;let a=e.startState.doc.lineAt(t.pos);return!!(e.effects.some(e=>e.is(u8))||e.changes.touchesRange(a.from,Math.max(a.to,r)))}function Q6(e,t){return e.field(p8,!1)?t:t.concat(JU.appendConfig.of(w8))}function $6(e,t,n){let{diagnostics:r}=e.state.field(p8),i,a=-1,o=-1;r.between(t-+(n<0),t+ +(n>0),(e,r,{spec:s})=>{if(t>=e&&t<=r&&(e==r||(t>e||n>0)&&(t<r||n<0)))return i=s.diagnostics,a=e,o=r,!1});let s=e.state.facet(y8).tooltipFilter;return i&&s&&(i=s(i,e.state)),i?{pos:a,end:o,above:e.state.doc.lineAt(a).to<o,create(){return{dom:e8(e,i)}}}:null}function e8(e,t){return TW(`ul`,{class:`cm-tooltip-lint`},t.map(t=>r8(e,t,!1)))}function t8(e,t){return e?t?(n,r)=>t(e(n,r),r):e:t}function n8(e){let t=[];if(e)actions:for(let{name:n}of e){for(let e=0;e<n.length;e++){let r=n[e];if(/[a-zA-Z]/.test(r)&&!t.some(e=>e.toLowerCase()==r.toLowerCase())){t.push(r);continue actions}}t.push(``)}return t}function r8(e,t,n){let r=n?n8(t.actions):[];return TW(`li`,{class:`cm-diagnostic cm-diagnostic-`+t.severity},TW(`span`,{class:`cm-diagnosticText`},t.renderMessage?t.renderMessage(e):t.message),t.actions?.map((n,i)=>{let a=!1,o=r=>{if(r.preventDefault(),a)return;a=!0;let i=X6(e.state.field(p8).diagnostics,t);i&&n.apply(e,i.from,i.to)},{name:s}=n,c=r[i]?s.indexOf(r[i]):-1,l=c<0?s:[s.slice(0,c),TW(`u`,s.slice(c,c+1)),s.slice(c+1)];return TW(`button`,{type:`button`,class:`cm-diagnosticAction`+(n.markClass?` `+n.markClass:``),onclick:o,onmousedown:o,"aria-label":` Action: ${s}${c<0?``:` (access key "${r[i]})"`}.`},l)}),t.source&&TW(`div`,{class:`cm-diagnosticSource`},t.source))}function i8(e,t=`viewBox="0 0 40 40"`){return`url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" ${t}>${encodeURIComponent(e)}</svg>')`}function a8(e){return i8(`<path d="m0 2.5 l2 -1.5 l1 0 l2 1.5 l1 0" stroke="${e}" fill="none" stroke-width=".7"/>`,`width="6" height="3"`)}function o8(e){return e==`error`?4:e==`warning`?3:e==`info`?2:1}function s8(e){let t=`hint`,n=1;for(let r of e){let e=o8(r.severity);e>n&&(n=e,t=r.severity)}return t}var c8,l8,u8,d8,f8,p8,m8,h8,g8,_8,v8,y8,b8,x8,S8,C8,w8,T8=o((()=>{AX(),lW(),DW(),c8=class{constructor(e,t,n){this.from=e,this.to=t,this.diagnostic=n}},l8=class e{constructor(e,t,n){this.diagnostics=e,this.panel=t,this.selected=n}static init(t,n,r){let i=r.facet(y8).markerFilter;i&&(t=i(t,r));let a=t.slice().sort((e,t)=>e.from-t.from||e.to-t.to),o=new aW,s=[],c=0,l=r.doc.iter(),u=0,d=r.doc.length;for(let e=0;;){let t=e==a.length?null:a[e];if(!t&&!s.length)break;let n,r;if(s.length)n=c,r=s.reduce((e,t)=>Math.min(e,t.to),t&&t.from>n?t.from:1e8);else{if(n=t.from,n>d)break;r=t.to,s.push(t),e++}for(;e<a.length;){let t=a[e];if(t.from==n&&(t.to>t.from||t.to==n))s.push(t),e++,r=Math.min(t.to,r);else{r=Math.min(t.from,r);break}}r=Math.min(r,d);let i=!1;if(s.some(e=>e.from==n&&(e.to==r||r==d))&&(i=n==r,!i&&r-n<10)){let e=n-(u+l.value.length);e>0&&(l.next(e),u=n);for(let e=n;;){if(e>=r){i=!0;break}if(!l.lineBreak&&u+l.value.length>e)break;e=u+l.value.length,u+=l.value.length,l.next()}}let f=s8(s);if(i)o.add(n,n,hq.widget({widget:new b8(f),diagnostics:s.slice()}));else{let e=s.reduce((e,t)=>t.markClass?e+` `+t.markClass:e,``);o.add(n,r,hq.mark({class:`cm-lintRange cm-lintRange-`+f+e,diagnostics:s.slice(),inclusiveEnd:s.some(e=>e.to>r)}))}if(c=r,c==d)break;for(let e=0;e<s.length;e++)s[e].to<=c&&s.splice(e--,1)}let f=o.finish();return new e(f,n,X6(f))}},u8=JU.define(),d8=JU.define(),f8=JU.define(),p8=jU.define({create(){return new l8(hq.none,null,null)},update(e,t){if(t.docChanged&&e.diagnostics.size){let n=e.diagnostics.map(t.changes),r=null,i=e.panel;if(e.selected){let i=t.changes.mapPos(e.selected.from,1);r=X6(n,e.selected.diagnostic,i)||X6(n,null,i)}!n.size&&i&&t.state.facet(y8).autoPanel&&(i=null),e=new l8(n,i,r)}for(let n of t.effects)if(n.is(u8)){let r=t.state.facet(y8).autoPanel?n.value.length?S8.open:null:e.panel;e=l8.init(n.value,r,t.state)}else n.is(d8)?e=new l8(e.diagnostics,n.value?S8.open:null,e.selected):n.is(f8)&&(e=new l8(e.diagnostics,e.panel,n.value));return e},provide:e=>[fX.from(e,e=>e.panel),fY.decorations.from(e,e=>e.diagnostics)]}),m8=hq.mark({class:`cm-lintRange cm-lintRange-active`}),h8=e=>{let t=e.state.field(p8,!1);(!t||!t.panel)&&e.dispatch({effects:Q6(e.state,[d8.of(!0)])});let n=FK(e,S8.open);return n&&n.dom.querySelector(`.cm-panel-lint ul`).focus(),!0},g8=e=>{let t=e.state.field(p8,!1);return!t||!t.panel?!1:(e.dispatch({effects:d8.of(!1)}),!0)},_8=e=>{let t=e.state.field(p8,!1);if(!t)return!1;let n=e.state.selection.main,r=t.diagnostics.iter(n.to+1);return!r.value&&(r=t.diagnostics.iter(0),!r.value||r.from==n.from&&r.to==n.to)?!1:(e.dispatch({selection:{anchor:r.from,head:r.to},scrollIntoView:!0}),!0)},v8=[{key:`Mod-Shift-m`,run:h8,preventDefault:!0},{key:`F8`,run:_8}],y8=OU.define({combine(e){return{sources:e.map(e=>e.source).filter(e=>e!=null),...nU(e.map(e=>e.config),{delay:750,markerFilter:null,tooltipFilter:null,needsRefresh:null,hideOn:()=>null},{delay:Math.max,markerFilter:t8,tooltipFilter:t8,needsRefresh:(e,t)=>e?t?n=>e(n)||t(n):e:t,hideOn:(e,t)=>e?t?(n,r,i)=>e(n,r,i)||t(n,r,i):e:t,autoPanel:(e,t)=>e||t})}}}),b8=class extends pq{constructor(e){super(),this.sev=e}eq(e){return e.sev==this.sev}toDOM(){return TW(`span`,{class:`cm-lintPoint cm-lintPoint-`+this.sev})}},x8=class{constructor(e,t){this.diagnostic=t,this.id=`item_`+Math.floor(Math.random()*4294967295).toString(16),this.dom=r8(e,t,!0),this.dom.id=this.id,this.dom.setAttribute(`role`,`option`)}},S8=class e{constructor(e){this.view=e,this.items=[];let t=t=>{if(t.keyCode==27)g8(this.view),this.view.focus();else if(t.keyCode==38||t.keyCode==33)this.moveSelection((this.selectedIndex-1+this.items.length)%this.items.length);else if(t.keyCode==40||t.keyCode==34)this.moveSelection((this.selectedIndex+1)%this.items.length);else if(t.keyCode==36)this.moveSelection(0);else if(t.keyCode==35)this.moveSelection(this.items.length-1);else if(t.keyCode==13)this.view.focus();else if(t.keyCode>=65&&t.keyCode<=90&&this.selectedIndex>=0){let{diagnostic:n}=this.items[this.selectedIndex],r=n8(n.actions);for(let i=0;i<r.length;i++)if(r[i].toUpperCase().charCodeAt(0)==t.keyCode){let t=X6(this.view.state.field(p8).diagnostics,n);t&&n.actions[i].apply(e,t.from,t.to)}}else return;t.preventDefault()},n=e=>{for(let t=0;t<this.items.length;t++)this.items[t].dom.contains(e.target)&&this.moveSelection(t)};this.list=TW(`ul`,{tabIndex:0,role:`listbox`,"aria-label":this.view.state.phrase(`Diagnostics`),onkeydown:t,onclick:n}),this.dom=TW(`div`,{class:`cm-panel-lint`},this.list,TW(`button`,{type:`button`,name:`close`,"aria-label":this.view.state.phrase(`close`),onclick:()=>g8(this.view)},`×`)),this.update()}get selectedIndex(){let e=this.view.state.field(p8).selected;if(!e)return-1;for(let t=0;t<this.items.length;t++)if(this.items[t].diagnostic==e.diagnostic)return t;return-1}update(){let{diagnostics:e,selected:t}=this.view.state.field(p8),n=0,r=!1,i=null,a=new Set;for(e.between(0,this.view.state.doc.length,(e,o,{spec:s})=>{for(let e of s.diagnostics){if(a.has(e))continue;a.add(e);let o=-1,s;for(let t=n;t<this.items.length;t++)if(this.items[t].diagnostic==e){o=t;break}o<0?(s=new x8(this.view,e),this.items.splice(n,0,s),r=!0):(s=this.items[o],o>n&&(this.items.splice(n,o-n),r=!0)),t&&s.diagnostic==t.diagnostic?s.dom.hasAttribute(`aria-selected`)||(s.dom.setAttribute(`aria-selected`,`true`),i=s):s.dom.hasAttribute(`aria-selected`)&&s.dom.removeAttribute(`aria-selected`),n++}});n<this.items.length&&!(this.items.length==1&&this.items[0].diagnostic.from<0);)r=!0,this.items.pop();this.items.length==0&&(this.items.push(new x8(this.view,{from:-1,to:-1,severity:`info`,message:this.view.state.phrase(`No diagnostics`)})),r=!0),i?(this.list.setAttribute(`aria-activedescendant`,i.id),this.view.requestMeasure({key:this,read:()=>({sel:i.dom.getBoundingClientRect(),panel:this.list.getBoundingClientRect()}),write:({sel:e,panel:t})=>{let n=t.height/this.list.offsetHeight;e.top<t.top?this.list.scrollTop-=(t.top-e.top)/n:e.bottom>t.bottom&&(this.list.scrollTop+=(e.bottom-t.bottom)/n)}})):this.selectedIndex<0&&this.list.removeAttribute(`aria-activedescendant`),r&&this.sync()}sync(){let e=this.list.firstChild;function t(){let t=e;e=t.nextSibling,t.remove()}for(let n of this.items)if(n.dom.parentNode==this.list){for(;e!=n.dom;)t();e=n.dom.nextSibling}else this.list.insertBefore(n.dom,e);for(;e;)t()}moveSelection(e){if(this.selectedIndex<0)return;let t=X6(this.view.state.field(p8).diagnostics,this.items[e].diagnostic);t&&this.view.dispatch({selection:{anchor:t.from,head:t.to},scrollIntoView:!0,effects:f8.of(t)})}static open(t){return new e(t)}},C8=fY.baseTheme({".cm-diagnostic":{padding:`3px 6px 3px 8px`,marginLeft:`-1px`,display:`block`,whiteSpace:`pre-wrap`},".cm-diagnostic-error":{borderLeft:`5px solid #d11`},".cm-diagnostic-warning":{borderLeft:`5px solid orange`},".cm-diagnostic-info":{borderLeft:`5px solid #999`},".cm-diagnostic-hint":{borderLeft:`5px solid #66d`},".cm-diagnosticAction":{font:`inherit`,border:`none`,padding:`2px 4px`,backgroundColor:`#444`,color:`white`,borderRadius:`3px`,marginLeft:`8px`,cursor:`pointer`},".cm-diagnosticSource":{fontSize:`70%`,opacity:.7},".cm-lintRange":{backgroundPosition:`left bottom`,backgroundRepeat:`repeat-x`,paddingBottom:`0.7px`},".cm-lintRange-error":{backgroundImage:a8(`#d11`)},".cm-lintRange-warning":{backgroundImage:a8(`orange`)},".cm-lintRange-info":{backgroundImage:a8(`#999`)},".cm-lintRange-hint":{backgroundImage:a8(`#66d`)},".cm-lintRange-active":{backgroundColor:`#ffdd9980`},".cm-tooltip-lint":{padding:0,margin:0},".cm-lintPoint":{position:`relative`,"&:after":{content:`""`,position:`absolute`,bottom:0,left:`-2px`,borderLeft:`3px solid transparent`,borderRight:`3px solid transparent`,borderBottom:`4px solid #d11`}},".cm-lintPoint-warning":{"&:after":{borderBottomColor:`orange`}},".cm-lintPoint-info":{"&:after":{borderBottomColor:`#999`}},".cm-lintPoint-hint":{"&:after":{borderBottomColor:`#66d`}},".cm-panel.cm-panel-lint":{position:`relative`,"& ul":{maxHeight:`100px`,overflowY:`auto`,"& [aria-selected]":{backgroundColor:`#ddd`,"& u":{textDecoration:`underline`}},"&:focus [aria-selected]":{background_fallback:`#bdf`,backgroundColor:`Highlight`,color_fallback:`white`,color:`HighlightText`},"& u":{textDecoration:`none`},padding:0,margin:0},"& [name=close]":{position:`absolute`,top:`0`,right:`2px`,background:`inherit`,border:`none`,font:`inherit`,padding:0,margin:0}}}),w8=[p8,fY.decorations.compute([p8],e=>{let{selected:t,panel:n}=e.field(p8);return!t||!n||t.from==t.to?hq.none:hq.set([m8.range(t.from,t.to)])}),qne($6,{hideOn:Z6}),C8]})),E8,D8=o((()=>{AX(),lW(),d4(),T3(),Y6(),j$(),T8(),E8=function(e){e===void 0&&(e={});var t=e.crosshairCursor,n=t!==void 0&&t,r=[];e.closeBracketsKeymap!==!1&&(r=r.concat(K6)),e.defaultKeymap!==!1&&(r=r.concat(l4)),e.searchKeymap!==!1&&(r=r.concat(y3)),e.historyKeymap!==!1&&(r=r.concat(Y0)),e.foldKeymap!==!1&&(r=r.concat(i$)),e.completionKeymap!==!1&&(r=r.concat(q6)),e.lintKeymap!==!1&&(r=r.concat(v8));var i=[];return e.lineNumbers!==!1&&i.push(Xne()),e.highlightActiveLineGutter!==!1&&i.push(Zne()),e.highlightSpecialChars!==!1&&i.push(Pne()),e.history!==!1&&i.push(K1()),e.foldGutter!==!1&&i.push(vQ()),e.drawSelection!==!1&&i.push(Ane()),e.dropCursor!==!1&&i.push(jne()),e.allowMultipleSelections!==!1&&i.push(eW.allowMultipleSelections.of(!0)),e.indentOnInput!==!1&&i.push(iQ()),e.syntaxHighlighting!==!1&&i.push(bQ(_$,{fallback:!0})),e.bracketMatching!==!1&&i.push(SQ()),e.closeBrackets!==!1&&i.push(q3()),e.autocompletion!==!1&&i.push(o6()),e.rectangularSelection!==!1&&i.push(Hne()),n!==!1&&i.push(Une()),e.highlightActiveLine!==!1&&i.push(Lne()),e.highlightSelectionMatches!==!1&&i.push(h4()),e.tabSize&&typeof e.tabSize==`number`&&i.push(WQ.of(` `.repeat(e.tabSize))),i.concat([vY.of(r.flat())]).filter(Boolean)}})),O8,k8,A8,j8,M8,N8,P8,F8,I8,L8,R8,z8,B8,V8,H8,U8,W8,G8,K8,q8=o((()=>{AX(),j$(),VZ(),O8=`#e5c07b`,k8=`#e06c75`,A8=`#56b6c2`,j8=`#ffffff`,M8=`#abb2bf`,N8=`#7d8799`,P8=`#61afef`,F8=`#98c379`,I8=`#d19a66`,L8=`#c678dd`,R8=`#21252b`,z8=`#2c313a`,B8=`#282c34`,V8=`#353a42`,H8=`#3E4451`,U8=`#528bff`,W8=fY.theme({"&":{color:M8,backgroundColor:B8},".cm-content":{caretColor:U8},".cm-cursor, .cm-dropCursor":{borderLeftColor:U8},"&.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground, .cm-selectionBackground, .cm-content ::selection":{backgroundColor:H8},".cm-panels":{backgroundColor:R8,color:M8},".cm-panels.cm-panels-top":{borderBottom:`2px solid black`},".cm-panels.cm-panels-bottom":{borderTop:`2px solid black`},".cm-searchMatch":{backgroundColor:`#72a1ff59`,outline:`1px solid #457dff`},".cm-searchMatch.cm-searchMatch-selected":{backgroundColor:`#6199ff2f`},".cm-activeLine":{backgroundColor:`#6699ff0b`},".cm-selectionMatch":{backgroundColor:`#aafe661a`},"&.cm-focused .cm-matchingBracket, &.cm-focused .cm-nonmatchingBracket":{backgroundColor:`#bad0f847`},".cm-gutters":{backgroundColor:B8,color:N8,border:`none`},".cm-activeLineGutter":{backgroundColor:z8},".cm-foldPlaceholder":{backgroundColor:`transparent`,border:`none`,color:`#ddd`},".cm-tooltip":{border:`none`,backgroundColor:V8},".cm-tooltip .cm-tooltip-arrow:before":{borderTopColor:`transparent`,borderBottomColor:`transparent`},".cm-tooltip .cm-tooltip-arrow:after":{borderTopColor:V8,borderBottomColor:V8},".cm-tooltip-autocomplete":{"& > ul > li[aria-selected]":{backgroundColor:z8,color:M8}}},{dark:!0}),G8=f$.define([{tag:Z.keyword,color:L8},{tag:[Z.name,Z.deleted,Z.character,Z.propertyName,Z.macroName],color:k8},{tag:[Z.function(Z.variableName),Z.labelName],color:P8},{tag:[Z.color,Z.constant(Z.name),Z.standard(Z.name)],color:I8},{tag:[Z.definition(Z.name),Z.separator],color:M8},{tag:[Z.typeName,Z.className,Z.number,Z.changed,Z.annotation,Z.modifier,Z.self,Z.namespace],color:O8},{tag:[Z.operator,Z.operatorKeyword,Z.url,Z.escape,Z.regexp,Z.link,Z.special(Z.string)],color:A8},{tag:[Z.meta,Z.comment],color:N8},{tag:Z.strong,fontWeight:`bold`},{tag:Z.emphasis,fontStyle:`italic`},{tag:Z.strikethrough,textDecoration:`line-through`},{tag:Z.link,color:N8,textDecoration:`underline`},{tag:Z.heading,fontWeight:`bold`,color:k8},{tag:[Z.atom,Z.bool,Z.special(Z.variableName)],color:I8},{tag:[Z.processingInstruction,Z.string,Z.inserted],color:F8},{tag:Z.invalid,color:j8}]),K8=[W8,bQ(G8)]})),J8,Y8=o((()=>{AX(),J8=fY.theme({"&":{backgroundColor:`#fff`}},{dark:!1})})),X8,Z8=o((()=>{d4(),D8(),AX(),q8(),lW(),Y8(),q8(),Y8(),X8=function(e){e===void 0&&(e={});var t=e,n=t.indentWithTab,r=n===void 0||n,i=t.editable,a=i===void 0||i,o=t.readOnly,s=o!==void 0&&o,c=t.theme,l=c===void 0?`light`:c,u=t.placeholder,d=u===void 0?``:u,f=t.basicSetup,p=f===void 0||f,m=[];switch(r&&m.unshift(vY.of([u4])),p&&(typeof p==`boolean`?m.unshift(E8()):m.unshift(E8(p))),d&&m.unshift(Rne(d)),l){case`light`:m.push(J8);break;case`dark`:m.push(K8);break;case`none`:break;default:m.push(l);break}return a===!1&&m.push(fY.editable.of(!1)),s&&m.push(eW.readOnly.of(!0)),[...m]}})),Q8,$8=o((()=>{Q8=e=>({line:e.state.doc.lineAt(e.state.selection.main.from),lineCount:e.state.doc.lines,lineBreak:e.state.lineBreak,length:e.state.doc.length,readOnly:e.state.readOnly,tabSize:e.state.tabSize,selection:e.state.selection,selectionAsSingle:e.state.selection.asSingle().main,ranges:e.state.selection.ranges,selectionCode:e.state.sliceDoc(e.state.selection.main.from,e.state.selection.main.to),selections:e.state.selection.ranges.map(t=>e.state.sliceDoc(t.from,t.to)),selectedText:e.state.selection.ranges.some(e=>!e.empty)})})),e5,t5,n5,r5,i5=o((()=>{e5=class{constructor(e,t){this.timeLeftMS=void 0,this.timeoutMS=void 0,this.isCancelled=!1,this.isTimeExhausted=!1,this.callbacks=[],this.timeLeftMS=t,this.timeoutMS=t,this.callbacks.push(e)}tick(){if(!this.isCancelled&&!this.isTimeExhausted&&(this.timeLeftMS--,this.timeLeftMS<=0)){this.isTimeExhausted=!0;var e=this.callbacks.slice();this.callbacks.length=0,e.forEach(e=>{try{e()}catch(e){console.error(`TimeoutLatch callback error:`,e)}})}}cancel(){this.isCancelled=!0,this.callbacks.length=0}reset(){this.timeLeftMS=this.timeoutMS,this.isCancelled=!1,this.isTimeExhausted=!1}get isDone(){return this.isCancelled||this.isTimeExhausted}},t5=class{constructor(){this.interval=null,this.latches=new Set}add(e){this.latches.add(e),this.start()}remove(e){this.latches.delete(e),this.latches.size===0&&this.stop()}start(){this.interval===null&&(this.interval=setInterval(()=>{this.latches.forEach(e=>{e.tick(),e.isDone&&this.remove(e)})},1))}stop(){this.interval!==null&&(clearInterval(this.interval),this.interval=null)}},n5=null,r5=()=>typeof window>`u`?new t5:(n5||(n5=new t5),n5)}));function Qne(e,t,n,r,i,a){if(!e&&!t&&!n&&!r&&!i&&!a)return null;var o=JSON.stringify({height:e,minHeight:t,maxHeight:n,width:r,minWidth:i,maxWidth:a});return o===o5?s5:(o5=o,s5=fY.theme({"&":{height:e,minHeight:t,maxHeight:n,width:r,minWidth:i,maxWidth:a}}),s5)}var a5,o5,s5,$ne=o((()=>{AX(),a5=fY.theme({"& .cm-scroller":{height:`100% !important`}}),o5=null,s5=null}));function ere(e){var t=e.value,n=e.selection,r=e.onChange,i=e.onStatistics,a=e.onCreateEditor,o=e.onUpdate,s=e.extensions,c=s===void 0?d5:s,l=e.autoFocus,u=e.theme,d=u===void 0?`light`:u,f=e.height,p=f===void 0?null:f,m=e.minHeight,h=m===void 0?null:m,g=e.maxHeight,_=g===void 0?null:g,v=e.width,y=v===void 0?null:v,b=e.minWidth,x=b===void 0?null:b,S=e.maxWidth,C=S===void 0?null:S,w=e.placeholder,T=w===void 0?``:w,E=e.editable,D=E===void 0||E,O=e.readOnly,k=O!==void 0&&O,A=e.indentWithTab,j=A===void 0||A,M=e.basicSetup,N=M===void 0||M,ee=e.root,P=e.initialState,F=(0,c5.useState)(),I=F[0],L=F[1],R=(0,c5.useState)(),te=R[0],ne=R[1],re=(0,c5.useState)(),z=re[0],ie=re[1],ae=(0,c5.useState)(()=>({current:null}))[0],oe=(0,c5.useState)(()=>({current:null}))[0],se=Qne(p,h,_,y,x,C),ce=fY.updateListener.of(e=>{e.docChanged&&typeof r==`function`&&!e.transactions.some(e=>e.annotation(l5))&&(ae.current?ae.current.reset():(ae.current=new e5(()=>{if(oe.current){var e=oe.current;oe.current=null,e()}ae.current=null},u5),r5().add(ae.current)),r(e.state.doc.toString(),e)),i&&i(Q8(e))}),le=X8({theme:d,editable:D,readOnly:k,placeholder:T,indentWithTab:j,basicSetup:N}),ue=[ce,...se?[se]:[],a5,...le];return o&&typeof o==`function`&&ue.push(fY.updateListener.of(o)),ue=ue.concat(c),(0,c5.useLayoutEffect)(()=>{if(I&&!z){var e={doc:t,selection:n,extensions:ue},r=P?eW.fromJSON(P.json,e,P.fields):eW.create(e);if(ie(r),!te){var i=new fY({state:r,parent:I,root:ee});ne(i),a&&a(i,r)}}return()=>{te&&(ie(void 0),ne(void 0))}},[I,z]),(0,c5.useEffect)(()=>{e.container&&L(e.container)},[e.container]),(0,c5.useEffect)(()=>()=>{te&&(te.destroy(),ne(void 0)),ae.current&&(ae.current.cancel(),ae.current=null)},[te]),(0,c5.useEffect)(()=>{l&&te&&te.focus()},[l,te]),(0,c5.useEffect)(()=>{te&&te.dispatch({effects:JU.reconfigure.of(ue)})},[d,c,p,h,_,y,x,C,T,D,k,j,N,r,o]),(0,c5.useEffect)(()=>{if(t!==void 0){var e=te?te.state.doc.toString():``;if(te&&t!==e){var n=ae.current&&!ae.current.isDone,r=()=>{te&&t!==te.state.doc.toString()&&te.dispatch({changes:{from:0,to:te.state.doc.toString().length,insert:t||``},annotations:[l5.of(!0)]})};n?oe.current=r:r()}}},[t,te]),{state:z,setState:ie,view:te,setView:ne,container:I,setContainer:L}}var c5,l5,u5,d5,f5=o((()=>{c5=u(f()),lW(),AX(),Z8(),$8(),i5(),$ne(),l5=GU.define(),u5=200,d5=[]})),p5,m5,h5,g5,tre=o((()=>{L1(),z1(),p5=u(f()),f5(),m5=us(),AX(),lW(),D8(),f5(),Z8(),$8(),h5=[`className`,`value`,`selection`,`extensions`,`onChange`,`onStatistics`,`onCreateEditor`,`onUpdate`,`autoFocus`,`theme`,`height`,`minHeight`,`maxHeight`,`width`,`minWidth`,`maxWidth`,`basicSetup`,`placeholder`,`indentWithTab`,`editable`,`readOnly`,`root`,`initialState`],g5=(0,p5.forwardRef)((e,t)=>{var n=e.className,r=e.value,i=r===void 0?``:r,a=e.selection,o=e.extensions,s=o===void 0?[]:o,c=e.onChange,l=e.onStatistics,u=e.onCreateEditor,d=e.onUpdate,f=e.autoFocus,p=e.theme,m=p===void 0?`light`:p,h=e.height,g=e.minHeight,_=e.maxHeight,v=e.width,y=e.minWidth,b=e.maxWidth,x=e.basicSetup,S=e.placeholder,C=e.indentWithTab,w=e.editable,T=e.readOnly,E=e.root,D=e.initialState,O=R1(e,h5),k=(0,p5.useRef)(null),A=ere({root:E,value:i,autoFocus:f,theme:m,height:h,minHeight:g,maxHeight:_,width:v,minWidth:y,maxWidth:b,basicSetup:x,placeholder:S,indentWithTab:C,editable:w,readOnly:T,selection:a,onChange:c,onStatistics:l,onCreateEditor:u,onUpdate:d,extensions:s,initialState:D}),j=A.state,M=A.view,N=A.container,ee=A.setContainer;(0,p5.useImperativeHandle)(t,()=>({editor:k.current,state:j,view:M}),[k,N,j,M]);var P=(0,p5.useCallback)(e=>{k.current=e,ee(e)},[ee]);if(typeof i!=`string`)throw Error(`value must be typeof string but got `+typeof i);return(0,m5.jsx)(`div`,I1({ref:P,className:(typeof m==`string`?`cm-theme-`+m:`cm-theme`)+(n?` `+n:``)},O))}),g5.displayName=`CodeMirror`}));function _5(e,t=Uint16Array){if(typeof e!=`string`)return e;let n=null;for(let r=0,i=0;r<e.length;){let a=0;for(;;){let t=e.charCodeAt(r++),n=!1;if(t==126){a=65535;break}t>=92&&t--,t>=34&&t--;let i=t-32;if(i>=46&&(i-=46,n=!0),a+=i,n)break;a*=46}n?n[i++]=a:n=new t(a)}return n}function v5(e,t,n,r,i,a){let o=0,s=1<<r,{dialect:c}=n.p.parser;scan:for(;(s&e[o])!=0;){let n=e[o+1];for(let r=o+3;r<n;r+=2)if((e[r+1]&s)>0){let n=e[r];if(c.allows(n)&&(t.token.value==-1||t.token.value==n||nre(n,t.token.value,i,a))){t.acceptToken(n);break}}let r=t.next,l=0,u=e[o+2];if(t.next<0&&u>l&&e[n+u*3-3]==65535){o=e[n+u*3-1];continue scan}for(;l<u;){let i=l+u>>1,a=n+i+(i<<1),s=e[a],c=e[a+1]||65536;if(r<s)u=i;else if(r>=c)l=i+1;else{o=e[a+2],t.advance();continue scan}}break}}function y5(e,t,n){for(let r=t,i;(i=e[r])!=65535;r++)if(i==n)return r-t;return-1}function nre(e,t,n,r){let i=y5(n,r,t);return i<0||y5(n,r,e)<i}function b5(e,t,n){let r=e.cursor(ZX.IncludeAnonymous);for(r.moveTo(t);;)if(!(n<0?r.childBefore(t):r.childAfter(t)))for(;;){if((n<0?r.to<t:r.from>t)&&!r.type.isError)return n<0?Math.max(0,Math.min(r.to-1,t-25)):Math.min(e.length,Math.max(r.from+1,t+25));if(n<0?r.prevSibling():r.nextSibling())break;if(!r.parent())return n<0?0:e.length}}function x5(e,t){for(let n=0;n<t.length;n++){let r=t[n];if(r.pos==e.pos&&r.sameState(e)){t[n].score<e.score&&(t[n]=e);return}}t.push(e)}function S5(e,t){return e[t]|e[t+1]<<16}function rre(e){let t=null;for(let n of e){let e=n.p.stoppedAt;(n.pos==n.p.stream.end||e!=null&&n.pos>e)&&n.p.parser.stateFlag(n.state,2)&&(!t||t.score<n.score)&&(t=n)}return t}function C5(e){if(e.external){let t=+!!e.extend;return(n,r)=>e.external(n,r)<<1|t}return e.get}var w5,T5,E5,D5,O5,k5,A5,j5,M5,N5,P5,F5,I5,L5,R5,z5,B5,V5,H5,U5=o((()=>{dZ(),w5=class e{constructor(e,t,n,r,i,a,o,s,c,l=0,u){this.p=e,this.stack=t,this.state=n,this.reducePos=r,this.pos=i,this.score=a,this.buffer=o,this.bufferBase=s,this.curContext=c,this.lookAhead=l,this.parent=u}toString(){return`[${this.stack.filter((e,t)=>t%3==0).concat(this.state)}]@${this.pos}${this.score?`!`+this.score:``}`}static start(t,n,r=0){let i=t.parser.context;return new e(t,[],n,r,r,0,[],0,i?new T5(i,i.start):null,0,null)}get context(){return this.curContext?this.curContext.context:null}pushState(e,t){this.stack.push(this.state,t,this.bufferBase+this.buffer.length),this.state=e}reduce(e){let t=e>>19,n=e&65535,{parser:r}=this.p,i=this.reducePos<this.pos-25&&this.setLookAhead(this.pos),a=r.dynamicPrecedence(n);if(a&&(this.score+=a),t==0){this.pushState(r.getGoto(this.state,n,!0),this.reducePos),n<r.minRepeatTerm&&this.storeNode(n,this.reducePos,this.reducePos,i?8:4,!0),this.reduceContext(n,this.reducePos);return}let o=this.stack.length-(t-1)*3-(e&262144?6:0),s=o?this.stack[o-2]:this.p.ranges[0].from,c=this.reducePos-s;c>=2e3&&!this.p.parser.nodeSet.types[n]?.isAnonymous&&(s==this.p.lastBigReductionStart?(this.p.bigReductionCount++,this.p.lastBigReductionSize=c):this.p.lastBigReductionSize<c&&(this.p.bigReductionCount=1,this.p.lastBigReductionStart=s,this.p.lastBigReductionSize=c));let l=o?this.stack[o-1]:0,u=this.bufferBase+this.buffer.length-l;if(n<r.minRepeatTerm||e&131072){let e=r.stateFlag(this.state,1)?this.pos:this.reducePos;this.storeNode(n,s,e,u+4,!0)}if(e&262144)this.state=this.stack[o];else{let e=this.stack[o-3];this.state=r.getGoto(e,n,!0)}for(;this.stack.length>o;)this.stack.pop();this.reduceContext(n,s)}storeNode(e,t,n,r=4,i=!1){if(e==0&&(!this.stack.length||this.stack[this.stack.length-1]<this.buffer.length+this.bufferBase)){let e=this,r=this.buffer.length;if(r==0&&e.parent&&(r=e.bufferBase-e.parent.bufferBase,e=e.parent),r>0&&e.buffer[r-4]==0&&e.buffer[r-1]>-1){if(t==n)return;if(e.buffer[r-2]>=t){e.buffer[r-2]=n;return}}}if(!i||this.pos==n)this.buffer.push(e,t,n,r);else{let i=this.buffer.length;if(i>0&&(this.buffer[i-4]!=0||this.buffer[i-1]<0)){let e=!1;for(let t=i;t>0&&this.buffer[t-2]>n;t-=4)if(this.buffer[t-1]>=0){e=!0;break}if(e)for(;i>0&&this.buffer[i-2]>n;)this.buffer[i]=this.buffer[i-4],this.buffer[i+1]=this.buffer[i-3],this.buffer[i+2]=this.buffer[i-2],this.buffer[i+3]=this.buffer[i-1],i-=4,r>4&&(r-=4)}this.buffer[i]=e,this.buffer[i+1]=t,this.buffer[i+2]=n,this.buffer[i+3]=r}}shift(e,t,n,r){if(e&131072)this.pushState(e&65535,this.pos);else if(e&262144)this.pos=r,this.shiftContext(t,n),t<=this.p.parser.maxNode&&this.buffer.push(t,n,r,4);else{let i=e,{parser:a}=this.p;(r>this.pos||t<=a.maxNode)&&(this.pos=r,a.stateFlag(i,1)||(this.reducePos=r)),this.pushState(i,n),this.shiftContext(t,n),t<=a.maxNode&&this.buffer.push(t,n,r,4)}}apply(e,t,n,r){e&65536?this.reduce(e):this.shift(e,t,n,r)}useNode(e,t){let n=this.p.reused.length-1;(n<0||this.p.reused[n]!=e)&&(this.p.reused.push(e),n++);let r=this.pos;this.reducePos=this.pos=r+e.length,this.pushState(t,r),this.buffer.push(n,r,this.reducePos,-1),this.curContext&&this.updateContext(this.curContext.tracker.reuse(this.curContext.context,e,this,this.p.stream.reset(this.pos-e.length)))}split(){let t=this,n=t.buffer.length;for(;n>0&&t.buffer[n-2]>t.reducePos;)n-=4;let r=t.buffer.slice(n),i=t.bufferBase+n;for(;t&&i==t.bufferBase;)t=t.parent;return new e(this.p,this.stack.slice(),this.state,this.reducePos,this.pos,this.score,r,i,this.curContext,this.lookAhead,t)}recoverByDelete(e,t){let n=e<=this.p.parser.maxNode;n&&this.storeNode(e,this.pos,t,4),this.storeNode(0,this.pos,t,n?8:4),this.pos=this.reducePos=t,this.score-=190}canShift(e){for(let t=new E5(this);;){let n=this.p.parser.stateSlot(t.state,4)||this.p.parser.hasAction(t.state,e);if(n==0)return!1;if(!(n&65536))return!0;t.reduce(n)}}recoverByInsert(e){if(this.stack.length>=300)return[];let t=this.p.parser.nextStates(this.state);if(t.length>8||this.stack.length>=120){let n=[];for(let r=0,i;r<t.length;r+=2)(i=t[r+1])!=this.state&&this.p.parser.hasAction(i,e)&&n.push(t[r],i);if(this.stack.length<120)for(let e=0;n.length<8&&e<t.length;e+=2){let r=t[e+1];n.some((e,t)=>t&1&&e==r)||n.push(t[e],r)}t=n}let n=[];for(let e=0;e<t.length&&n.length<4;e+=2){let r=t[e+1];if(r==this.state)continue;let i=this.split();i.pushState(r,this.pos),i.storeNode(0,i.pos,i.pos,4,!0),i.shiftContext(t[e],this.pos),i.reducePos=this.pos,i.score-=200,n.push(i)}return n}forceReduce(){let{parser:e}=this.p,t=e.stateSlot(this.state,5);if(!(t&65536))return!1;if(!e.validAction(this.state,t)){let n=t>>19,r=t&65535,i=this.stack.length-n*3;if(i<0||e.getGoto(this.stack[i],r,!1)<0){let e=this.findForcedReduction();if(e==null)return!1;t=e}this.storeNode(0,this.pos,this.pos,4,!0),this.score-=100}return this.reducePos=this.pos,this.reduce(t),!0}findForcedReduction(){let{parser:e}=this.p,t=[],n=(r,i)=>{if(!t.includes(r))return t.push(r),e.allActions(r,t=>{if(!(t&393216))if(t&65536){let n=(t>>19)-i;if(n>1){let r=t&65535,i=this.stack.length-n*3;if(i>=0&&e.getGoto(this.stack[i],r,!1)>=0)return n<<19|65536|r}}else{let e=n(t,i+1);if(e!=null)return e}})};return n(this.state,0)}forceAll(){for(;!this.p.parser.stateFlag(this.state,2);)if(!this.forceReduce()){this.storeNode(0,this.pos,this.pos,4,!0);break}return this}get deadEnd(){if(this.stack.length!=3)return!1;let{parser:e}=this.p;return e.data[e.stateSlot(this.state,1)]==65535&&!e.stateSlot(this.state,4)}restart(){this.storeNode(0,this.pos,this.pos,4,!0),this.state=this.stack[0],this.stack.length=0}sameState(e){if(this.state!=e.state||this.stack.length!=e.stack.length)return!1;for(let t=0;t<this.stack.length;t+=3)if(this.stack[t]!=e.stack[t])return!1;return!0}get parser(){return this.p.parser}dialectEnabled(e){return this.p.parser.dialect.flags[e]}shiftContext(e,t){this.curContext&&this.updateContext(this.curContext.tracker.shift(this.curContext.context,e,this,this.p.stream.reset(t)))}reduceContext(e,t){this.curContext&&this.updateContext(this.curContext.tracker.reduce(this.curContext.context,e,this,this.p.stream.reset(t)))}emitContext(){let e=this.buffer.length-1;(e<0||this.buffer[e]!=-3)&&this.buffer.push(this.curContext.hash,this.pos,this.pos,-3)}emitLookAhead(){let e=this.buffer.length-1;(e<0||this.buffer[e]!=-4)&&this.buffer.push(this.lookAhead,this.pos,this.pos,-4)}updateContext(e){if(e!=this.curContext.context){let t=new T5(this.curContext.tracker,e);t.hash!=this.curContext.hash&&this.emitContext(),this.curContext=t}}setLookAhead(e){return e<=this.lookAhead?!1:(this.emitLookAhead(),this.lookAhead=e,!0)}close(){this.curContext&&this.curContext.tracker.strict&&this.emitContext(),this.lookAhead>0&&this.emitLookAhead()}},T5=class{constructor(e,t){this.tracker=e,this.context=t,this.hash=e.strict?e.hash(t):0}},E5=class{constructor(e){this.start=e,this.state=e.state,this.stack=e.stack,this.base=this.stack.length}reduce(e){let t=e&65535,n=e>>19;n==0?(this.stack==this.start.stack&&(this.stack=this.stack.slice()),this.stack.push(this.state,0,0),this.base+=3):this.base-=(n-1)*3;let r=this.start.p.parser.getGoto(this.stack[this.base-3],t,!0);this.state=r}},D5=class e{constructor(e,t,n){this.stack=e,this.pos=t,this.index=n,this.buffer=e.buffer,this.index==0&&this.maybeNext()}static create(t,n=t.bufferBase+t.buffer.length){return new e(t,n,n-t.bufferBase)}maybeNext(){let e=this.stack.parent;e!=null&&(this.index=this.stack.bufferBase-e.bufferBase,this.stack=e,this.buffer=e.buffer)}get id(){return this.buffer[this.index-4]}get start(){return this.buffer[this.index-3]}get end(){return this.buffer[this.index-2]}get size(){return this.buffer[this.index-1]}next(){this.index-=4,this.pos-=4,this.index==0&&this.maybeNext()}fork(){return new e(this.stack,this.pos,this.index)}},O5=class{constructor(){this.start=-1,this.value=-1,this.end=-1,this.extended=-1,this.lookAhead=0,this.mask=0,this.context=0}},k5=new O5,A5=class{constructor(e,t){this.input=e,this.ranges=t,this.chunk=``,this.chunkOff=0,this.chunk2=``,this.chunk2Pos=0,this.next=-1,this.token=k5,this.rangeIndex=0,this.pos=this.chunkPos=t[0].from,this.range=t[0],this.end=t[t.length-1].to,this.readNext()}resolveOffset(e,t){let n=this.range,r=this.rangeIndex,i=this.pos+e;for(;i<n.from;){if(!r)return null;let e=this.ranges[--r];i-=n.from-e.to,n=e}for(;t<0?i>n.to:i>=n.to;){if(r==this.ranges.length-1)return null;let e=this.ranges[++r];i+=e.from-n.to,n=e}return i}clipPos(e){if(e>=this.range.from&&e<this.range.to)return e;for(let t of this.ranges)if(t.to>e)return Math.max(e,t.from);return this.end}peek(e){let t=this.chunkOff+e,n,r;if(t>=0&&t<this.chunk.length)n=this.pos+e,r=this.chunk.charCodeAt(t);else{let t=this.resolveOffset(e,1);if(t==null)return-1;if(n=t,n>=this.chunk2Pos&&n<this.chunk2Pos+this.chunk2.length)r=this.chunk2.charCodeAt(n-this.chunk2Pos);else{let e=this.rangeIndex,t=this.range;for(;t.to<=n;)t=this.ranges[++e];this.chunk2=this.input.chunk(this.chunk2Pos=n),n+this.chunk2.length>t.to&&(this.chunk2=this.chunk2.slice(0,t.to-n)),r=this.chunk2.charCodeAt(0)}}return n>=this.token.lookAhead&&(this.token.lookAhead=n+1),r}acceptToken(e,t=0){let n=t?this.resolveOffset(t,-1):this.pos;if(n==null||n<this.token.start)throw RangeError(`Token end out of bounds`);this.token.value=e,this.token.end=n}acceptTokenTo(e,t){this.token.value=e,this.token.end=t}getChunk(){if(this.pos>=this.chunk2Pos&&this.pos<this.chunk2Pos+this.chunk2.length){let{chunk:e,chunkPos:t}=this;this.chunk=this.chunk2,this.chunkPos=this.chunk2Pos,this.chunk2=e,this.chunk2Pos=t,this.chunkOff=this.pos-this.chunkPos}else{this.chunk2=this.chunk,this.chunk2Pos=this.chunkPos;let e=this.input.chunk(this.pos),t=this.pos+e.length;this.chunk=t>this.range.to?e.slice(0,this.range.to-this.pos):e,this.chunkPos=this.pos,this.chunkOff=0}}readNext(){return this.chunkOff>=this.chunk.length&&(this.getChunk(),this.chunkOff==this.chunk.length)?this.next=-1:this.next=this.chunk.charCodeAt(this.chunkOff)}advance(e=1){for(this.chunkOff+=e;this.pos+e>=this.range.to;){if(this.rangeIndex==this.ranges.length-1)return this.setDone();e-=this.range.to-this.pos,this.range=this.ranges[++this.rangeIndex],this.pos=this.range.from}return this.pos+=e,this.pos>=this.token.lookAhead&&(this.token.lookAhead=this.pos+1),this.readNext()}setDone(){return this.pos=this.chunkPos=this.end,this.range=this.ranges[this.rangeIndex=this.ranges.length-1],this.chunk=``,this.next=-1}reset(e,t){if(t?(this.token=t,t.start=e,t.lookAhead=e+1,t.value=t.extended=-1):this.token=k5,this.pos!=e){if(this.pos=e,e==this.end)return this.setDone(),this;for(;e<this.range.from;)this.range=this.ranges[--this.rangeIndex];for(;e>=this.range.to;)this.range=this.ranges[++this.rangeIndex];e>=this.chunkPos&&e<this.chunkPos+this.chunk.length?this.chunkOff=e-this.chunkPos:(this.chunk=``,this.chunkOff=0),this.readNext()}return this}read(e,t){if(e>=this.chunkPos&&t<=this.chunkPos+this.chunk.length)return this.chunk.slice(e-this.chunkPos,t-this.chunkPos);if(e>=this.chunk2Pos&&t<=this.chunk2Pos+this.chunk2.length)return this.chunk2.slice(e-this.chunk2Pos,t-this.chunk2Pos);if(e>=this.range.from&&t<=this.range.to)return this.input.read(e,t);let n=``;for(let r of this.ranges){if(r.from>=t)break;r.to>e&&(n+=this.input.read(Math.max(r.from,e),Math.min(r.to,t)))}return n}},j5=class{constructor(e,t){this.data=e,this.id=t}token(e,t){let{parser:n}=t.p;v5(this.data,e,t,this.id,n.data,n.tokenPrecTable)}},j5.prototype.contextual=j5.prototype.fallback=j5.prototype.extend=!1,M5=class{constructor(e,t,n){this.precTable=t,this.elseToken=n,this.data=typeof e==`string`?_5(e):e}token(e,t){let n=e.pos,r=0;for(;;){let n=e.next<0,i=e.resolveOffset(1,1);if(v5(this.data,e,t,0,this.data,this.precTable),e.token.value>-1)break;if(this.elseToken==null)return;if(n||r++,i==null)break;e.reset(i,e.token)}r&&(e.reset(n,e.token),e.acceptToken(this.elseToken,r))}},M5.prototype.contextual=j5.prototype.fallback=j5.prototype.extend=!1,N5=class{constructor(e,t={}){this.token=e,this.contextual=!!t.contextual,this.fallback=!!t.fallback,this.extend=!!t.extend}},P5=typeof process<`u`&&/\bparse\b/.test({}.LOG),F5=null,I5=class{constructor(e,t){this.fragments=e,this.nodeSet=t,this.i=0,this.fragment=null,this.safeFrom=-1,this.safeTo=-1,this.trees=[],this.start=[],this.index=[],this.nextFragment()}nextFragment(){let e=this.fragment=this.i==this.fragments.length?null:this.fragments[this.i++];if(e){for(this.safeFrom=e.openStart?b5(e.tree,e.from+e.offset,1)-e.offset:e.from,this.safeTo=e.openEnd?b5(e.tree,e.to+e.offset,-1)-e.offset:e.to;this.trees.length;)this.trees.pop(),this.start.pop(),this.index.pop();this.trees.push(e.tree),this.start.push(-e.offset),this.index.push(0),this.nextStart=this.safeFrom}else this.nextStart=1e9}nodeAt(e){if(e<this.nextStart)return null;for(;this.fragment&&this.safeTo<=e;)this.nextFragment();if(!this.fragment)return null;for(;;){let t=this.trees.length-1;if(t<0)return this.nextFragment(),null;let n=this.trees[t],r=this.index[t];if(r==n.children.length){this.trees.pop(),this.start.pop(),this.index.pop();continue}let i=n.children[r],a=this.start[t]+n.positions[r];if(a>e)return this.nextStart=a,null;if(i instanceof QX){if(a==e){if(a<this.safeFrom)return null;let e=a+i.length;if(e<=this.safeTo){let t=i.prop(WX.lookAhead);if(!t||e+t<this.fragment.to)return i}}this.index[t]++,a+i.length>=Math.max(this.safeFrom,e)&&(this.trees.push(i),this.start.push(a),this.index.push(0))}else this.index[t]++,this.nextStart=a+i.length}}},L5=class{constructor(e,t){this.stream=t,this.tokens=[],this.mainToken=null,this.actions=[],this.tokens=e.tokenizers.map(e=>new O5)}getActions(e){let t=0,n=null,{parser:r}=e.p,{tokenizers:i}=r,a=r.stateSlot(e.state,3),o=e.curContext?e.curContext.hash:0,s=0;for(let r=0;r<i.length;r++){if(!(1<<r&a))continue;let c=i[r],l=this.tokens[r];if(!(n&&!c.fallback)&&((c.contextual||l.start!=e.pos||l.mask!=a||l.context!=o)&&(this.updateCachedToken(l,c,e),l.mask=a,l.context=o),l.lookAhead>l.end+25&&(s=Math.max(l.lookAhead,s)),l.value!=0)){let r=t;if(l.extended>-1&&(t=this.addActions(e,l.extended,l.end,t)),t=this.addActions(e,l.value,l.end,t),!c.extend&&(n=l,t>r))break}}for(;this.actions.length>t;)this.actions.pop();return s&&e.setLookAhead(s),!n&&e.pos==this.stream.end&&(n=new O5,n.value=e.p.parser.eofTerm,n.start=n.end=e.pos,t=this.addActions(e,n.value,n.end,t)),this.mainToken=n,this.actions}getMainToken(e){if(this.mainToken)return this.mainToken;let t=new O5,{pos:n,p:r}=e;return t.start=n,t.end=Math.min(n+1,r.stream.end),t.value=n==r.stream.end?r.parser.eofTerm:0,t}updateCachedToken(e,t,n){let r=this.stream.clipPos(n.pos);if(t.token(this.stream.reset(r,e),n),e.value>-1){let{parser:t}=n.p;for(let r=0;r<t.specialized.length;r++)if(t.specialized[r]==e.value){let i=t.specializers[r](this.stream.read(e.start,e.end),n);if(i>=0&&n.p.parser.dialect.allows(i>>1)){i&1?e.extended=i>>1:e.value=i>>1;break}}}else e.value=0,e.end=this.stream.clipPos(r+1)}putAction(e,t,n,r){for(let t=0;t<r;t+=3)if(this.actions[t]==e)return r;return this.actions[r++]=e,this.actions[r++]=t,this.actions[r++]=n,r}addActions(e,t,n,r){let{state:i}=e,{parser:a}=e.p,{data:o}=a;for(let e=0;e<2;e++)for(let s=a.stateSlot(i,e?2:1);;s+=3){if(o[s]==65535)if(o[s+1]==1)s=S5(o,s+2);else{r==0&&o[s+1]==2&&(r=this.putAction(S5(o,s+2),t,n,r));break}o[s]==t&&(r=this.putAction(S5(o,s+1),t,n,r))}return r}},R5=class{constructor(e,t,n,r){this.parser=e,this.input=t,this.ranges=r,this.recovering=0,this.nextStackID=9812,this.minStackPos=0,this.reused=[],this.stoppedAt=null,this.lastBigReductionStart=-1,this.lastBigReductionSize=0,this.bigReductionCount=0,this.stream=new A5(t,r),this.tokens=new L5(e,this.stream),this.topTerm=e.top[1];let{from:i}=r[0];this.stacks=[w5.start(this,e.top[0],i)],this.fragments=n.length&&this.stream.end-i>e.bufferLength*4?new I5(n,e.nodeSet):null}get parsedPos(){return this.minStackPos}advance(){let e=this.stacks,t=this.minStackPos,n=this.stacks=[],r,i;if(this.bigReductionCount>300&&e.length==1){let[t]=e;for(;t.forceReduce()&&t.stack.length&&t.stack[t.stack.length-2]>=this.lastBigReductionStart;);this.bigReductionCount=this.lastBigReductionSize=0}for(let a=0;a<e.length;a++){let o=e[a];for(;;){if(this.tokens.mainToken=null,o.pos>t)n.push(o);else if(this.advanceStack(o,n,e))continue;else{r||(r=[],i=[]),r.push(o);let e=this.tokens.getMainToken(o);i.push(e.value,e.end)}break}}if(!n.length){let e=r&&rre(r);if(e)return P5&&console.log(`Finish with `+this.stackID(e)),this.stackToTree(e);if(this.parser.strict)throw P5&&r&&console.log(`Stuck with token `+(this.tokens.mainToken?this.parser.getName(this.tokens.mainToken.value):`none`)),SyntaxError(`No parse at `+t);this.recovering||(this.recovering=5)}if(this.recovering&&r){let e=this.stoppedAt!=null&&r[0].pos>this.stoppedAt?r[0]:this.runRecovery(r,i,n);if(e)return P5&&console.log(`Force-finish `+this.stackID(e)),this.stackToTree(e.forceAll())}if(this.recovering){let e=this.recovering==1?1:this.recovering*3;if(n.length>e)for(n.sort((e,t)=>t.score-e.score);n.length>e;)n.pop();n.some(e=>e.reducePos>t)&&this.recovering--}else if(n.length>1){outer:for(let e=0;e<n.length-1;e++){let t=n[e];for(let r=e+1;r<n.length;r++){let i=n[r];if(t.sameState(i)||t.buffer.length>500&&i.buffer.length>500)if((t.score-i.score||t.buffer.length-i.buffer.length)>0)n.splice(r--,1);else{n.splice(e--,1);continue outer}}}n.length>12&&n.splice(12,n.length-12)}this.minStackPos=n[0].pos;for(let e=1;e<n.length;e++)n[e].pos<this.minStackPos&&(this.minStackPos=n[e].pos);return null}stopAt(e){if(this.stoppedAt!=null&&this.stoppedAt<e)throw RangeError(`Can't move stoppedAt forward`);this.stoppedAt=e}advanceStack(e,t,n){let r=e.pos,{parser:i}=this,a=P5?this.stackID(e)+` -> `:``;if(this.stoppedAt!=null&&r>this.stoppedAt)return e.forceReduce()?e:null;if(this.fragments){let t=e.curContext&&e.curContext.tracker.strict,n=t?e.curContext.hash:0;for(let o=this.fragments.nodeAt(r);o;){let r=this.parser.nodeSet.types[o.type.id]==o.type?i.getGoto(e.state,o.type.id):-1;if(r>-1&&o.length&&(!t||(o.prop(WX.contextHash)||0)==n))return e.useNode(o,r),P5&&console.log(a+this.stackID(e)+` (via reuse of ${i.getName(o.type.id)})`),!0;if(!(o instanceof QX)||o.children.length==0||o.positions[0]>0)break;let s=o.children[0];if(s instanceof QX&&o.positions[0]==0)o=s;else break}}let o=i.stateSlot(e.state,4);if(o>0)return e.reduce(o),P5&&console.log(a+this.stackID(e)+` (via always-reduce ${i.getName(o&65535)})`),!0;if(e.stack.length>=8400)for(;e.stack.length>6e3&&e.forceReduce(););let s=this.tokens.getActions(e);for(let o=0;o<s.length;){let c=s[o++],l=s[o++],u=s[o++],d=o==s.length||!n,f=d?e:e.split(),p=this.tokens.mainToken;if(f.apply(c,l,p?p.start:f.pos,u),P5&&console.log(a+this.stackID(f)+` (via ${c&65536?`reduce of ${i.getName(c&65535)}`:`shift`} for ${i.getName(l)} @ ${r}${f==e?``:`, split`})`),d)return!0;f.pos>r?t.push(f):n.push(f)}return!1}advanceFully(e,t){let n=e.pos;for(;;){if(!this.advanceStack(e,null,null))return!1;if(e.pos>n)return x5(e,t),!0}}runRecovery(e,t,n){let r=null,i=!1;for(let a=0;a<e.length;a++){let o=e[a],s=t[a<<1],c=t[(a<<1)+1],l=P5?this.stackID(o)+` -> `:``;if(o.deadEnd&&(i||(i=!0,o.restart(),P5&&console.log(l+this.stackID(o)+` (restarted)`),this.advanceFully(o,n))))continue;let u=o.split(),d=l;for(let e=0;e<10&&u.forceReduce()&&(P5&&console.log(d+this.stackID(u)+` (via force-reduce)`),!this.advanceFully(u,n));e++)P5&&(d=this.stackID(u)+` -> `);for(let e of o.recoverByInsert(s))P5&&console.log(l+this.stackID(e)+` (via recover-insert)`),this.advanceFully(e,n);this.stream.end>o.pos?(c==o.pos&&(c++,s=0),o.recoverByDelete(s,c),P5&&console.log(l+this.stackID(o)+` (via recover-delete ${this.parser.getName(s)})`),x5(o,n)):(!r||r.score<o.score)&&(r=o)}return r}stackToTree(e){return e.close(),QX.build({buffer:D5.create(e),nodeSet:this.parser.nodeSet,topID:this.topTerm,maxBufferLength:this.parser.bufferLength,reused:this.reused,start:this.ranges[0].from,length:e.pos-this.ranges[0].from,minRepeatType:this.parser.minRepeatTerm})}stackID(e){let t=(F5||(F5=new WeakMap)).get(e);return t||F5.set(e,t=String.fromCodePoint(this.nextStackID++)),t+e}},z5=class{constructor(e,t,n){this.source=e,this.flags=t,this.disabled=n}allows(e){return!this.disabled||this.disabled[e]==0}},B5=e=>e,V5=class{constructor(e){this.start=e.start,this.shift=e.shift||B5,this.reduce=e.reduce||B5,this.reuse=e.reuse||B5,this.hash=e.hash||(()=>0),this.strict=e.strict!==!1}},H5=class e extends lZ{constructor(e){if(super(),this.wrappers=[],e.version!=14)throw RangeError(`Parser version (${e.version}) doesn't match runtime version (14)`);let t=e.nodeNames.split(` `);this.minRepeatTerm=t.length;for(let n=0;n<e.repeatNodeCount;n++)t.push(``);let n=Object.keys(e.topRules).map(t=>e.topRules[t][1]),r=[];for(let e=0;e<t.length;e++)r.push([]);function i(e,t,n){r[e].push([t,t.deserialize(String(n))])}if(e.nodeProps)for(let t of e.nodeProps){let e=t[0];typeof e==`string`&&(e=WX[e]);for(let n=1;n<t.length;){let r=t[n++];if(r>=0)i(r,e,t[n++]);else{let a=t[n+-r];for(let o=-r;o>0;o--)i(t[n++],e,a);n++}}}this.nodeSet=new JX(t.map((t,i)=>qX.define({name:i>=this.minRepeatTerm?void 0:t,id:i,props:r[i],top:n.indexOf(i)>-1,error:i==0,skipped:e.skippedNodes&&e.skippedNodes.indexOf(i)>-1}))),e.propSources&&(this.nodeSet=this.nodeSet.extend(...e.propSources)),this.strict=!1,this.bufferLength=VX;let a=_5(e.tokenData);this.context=e.context,this.specializerSpecs=e.specialized||[],this.specialized=new Uint16Array(this.specializerSpecs.length);for(let e=0;e<this.specializerSpecs.length;e++)this.specialized[e]=this.specializerSpecs[e].term;this.specializers=this.specializerSpecs.map(C5),this.states=_5(e.states,Uint32Array),this.data=_5(e.stateData),this.goto=_5(e.goto),this.maxTerm=e.maxTerm,this.tokenizers=e.tokenizers.map(e=>typeof e==`number`?new j5(a,e):e),this.topRules=e.topRules,this.dialects=e.dialects||{},this.dynamicPrecedences=e.dynamicPrecedences||null,this.tokenPrecTable=e.tokenPrec,this.termNames=e.termNames||null,this.maxNode=this.nodeSet.types.length-1,this.dialect=this.parseDialect(),this.top=this.topRules[Object.keys(this.topRules)[0]]}createParse(e,t,n){let r=new R5(this,e,t,n);for(let i of this.wrappers)r=i(r,e,t,n);return r}getGoto(e,t,n=!1){let r=this.goto;if(t>=r[0])return-1;for(let i=r[t+1];;){let t=r[i++],a=t&1,o=r[i++];if(a&&n)return o;for(let n=i+(t>>1);i<n;i++)if(r[i]==e)return o;if(a)return-1}}hasAction(e,t){let n=this.data;for(let r=0;r<2;r++)for(let i=this.stateSlot(e,r?2:1),a;;i+=3){if((a=n[i])==65535)if(n[i+1]==1)a=n[i=S5(n,i+2)];else if(n[i+1]==2)return S5(n,i+2);else break;if(a==t||a==0)return S5(n,i+1)}return 0}stateSlot(e,t){return this.states[e*6+t]}stateFlag(e,t){return(this.stateSlot(e,0)&t)>0}validAction(e,t){return!!this.allActions(e,e=>e==t||null)}allActions(e,t){let n=this.stateSlot(e,4),r=n?t(n):void 0;for(let n=this.stateSlot(e,1);r==null;n+=3){if(this.data[n]==65535)if(this.data[n+1]==1)n=S5(this.data,n+2);else break;r=t(S5(this.data,n+1))}return r}nextStates(e){let t=[];for(let n=this.stateSlot(e,1);;n+=3){if(this.data[n]==65535)if(this.data[n+1]==1)n=S5(this.data,n+2);else break;if(!(this.data[n+2]&1)){let e=this.data[n+1];t.some((t,n)=>n&1&&t==e)||t.push(this.data[n],e)}}return t}configure(t){let n=Object.assign(Object.create(e.prototype),this);if(t.props&&(n.nodeSet=this.nodeSet.extend(...t.props)),t.top){let e=this.topRules[t.top];if(!e)throw RangeError(`Invalid top rule name ${t.top}`);n.top=e}return t.tokenizers&&(n.tokenizers=this.tokenizers.map(e=>{let n=t.tokenizers.find(t=>t.from==e);return n?n.to:e})),t.specializers&&(n.specializers=this.specializers.slice(),n.specializerSpecs=this.specializerSpecs.map((e,r)=>{let i=t.specializers.find(t=>t.from==e.external);if(!i)return e;let a=Object.assign(Object.assign({},e),{external:i.to});return n.specializers[r]=C5(a),a})),t.contextTracker&&(n.context=t.contextTracker),t.dialect&&(n.dialect=this.parseDialect(t.dialect)),t.strict!=null&&(n.strict=t.strict),t.wrap&&(n.wrappers=n.wrappers.concat(t.wrap)),t.bufferLength!=null&&(n.bufferLength=t.bufferLength),n}hasWrappers(){return this.wrappers.length>0}getName(e){return this.termNames?this.termNames[e]:String(e<=this.maxNode&&this.nodeSet.types[e].name||e)}get eofTerm(){return this.maxNode+1}get topNode(){return this.nodeSet.types[this.top[1]]}dynamicPrecedence(e){let t=this.dynamicPrecedences;return t==null?0:t[e]||0}parseDialect(e){let t=Object.keys(this.dialects),n=t.map(()=>!1);if(e)for(let r of e.split(` `)){let e=t.indexOf(r);e>=0&&(n[e]=!0)}let r=null;for(let e=0;e<t.length;e++)if(!n[e])for(let n=this.dialects[t[e]],i;(i=this.data[n++])!=65535;)(r||(r=new Uint8Array(this.maxTerm+1)))[i]=1;return new z5(e,n,r)}static deserialize(t){return new e(t)}}}));function W5(e,t){for(let n=0,r=t-e.pos-1;;r--,n++){let t=e.peek(r);if(K5(t)||t==-1)return n}}function G5(e){return e==32||e==9}function K5(e){return e==10||e==13}function q5(e){return G5(e)||K5(e)}function J5(e){return e<0||q5(e)}function Y5(e,t,n=0){return e.peek(n)==t&&e.peek(n+1)==t&&e.peek(n+2)==t&&J5(e.peek(n+3))}function ire(e){return e>32&&e<127&&e!=34&&e!=37&&e!=44&&e!=60&&e!=62&&e!=92&&e!=94&&e!=96&&e!=123&&e!=124&&e!=125}function X5(e){return e>=48&&e<=57||e>=97&&e<=102||e>=65&&e<=70}function Z5(e,t){return e.next==37?(e.advance(),X5(e.next)&&e.advance(),X5(e.next)&&e.advance(),!0):ire(e.next)||t&&e.next==44?(e.advance(),!0):!1}function Q5(e){if(e.advance(),e.next==60){for(e.advance();;)if(!Z5(e,!0)){e.next==62&&e.advance();break}}else for(;Z5(e,!1););}function $5(e){for(e.advance();!J5(e.next)&&t7(e.tag)!=`f`;)e.advance()}function e7(e,t){let n=e.next,r=!1,i=e.pos;for(e.advance();;){let a=e.next;if(a<0)break;if(e.advance(),a==n)if(a==39)if(e.next==39)e.advance();else break;else break;else if(a==92&&n==34)e.next>=0&&e.advance();else if(K5(a)){if(t)return!1;r=!0}else if(t&&e.pos>=i+1024)return!1}return!r}function are(e){for(let t=[],n=e.pos+1024;;)if(e.next==91||e.next==123)t.push(e.next),e.advance();else if(e.next==39||e.next==34){if(!e7(e,!0))return!1}else if(e.next==93||e.next==125){if(t[t.length-1]!=e.next-2)return!1;if(t.pop(),e.advance(),!t.length)return!0}else if(e.next<0||e.pos>n||K5(e.next))return!1;else e.advance()}function t7(e){return e<33?`u`:e>125?`s`:I7[e-33]}function n7(e,t){let n=t7(e);return n!=`u`&&!(t&&n==`f`)}function r7(e,t,n,r){if(t7(e.next)==`s`||(e.next==63||e.next==58||e.next==45)&&n7(e.peek(1),n))e.advance();else return!1;let i=e.pos;for(;;){let a=e.next,o=0,s=r+1;for(;q5(a);){if(K5(a)){if(t)return!1;s=0}else s++;a=e.peek(++o)}if(!(a>=0&&(a==58?n7(e.peek(o+1),n):a==35?e.peek(o-1)!=32:n7(a,n)))||!n&&s<=r||s==0&&!n&&(Y5(e,45,o)||Y5(e,46,o)))break;if(t&&t7(a)==`f`)return!1;for(let t=o;t>=0;t--)e.advance();if(t&&e.pos>i+1024)return!1}return!0}var i7,a7,o7,s7,c7,l7,u7,d7,f7,p7,m7,h7,g7,_7,v7,y7,b7,x7,S7,C7,w7,T7,E7,D7,O7,k7,A7,j7,M7,N7,P7,F7,I7,L7,R7,z7,B7,ore=o((()=>{U5(),VZ(),i7=63,a7=64,o7=1,s7=2,c7=3,l7=4,u7=5,d7=6,f7=7,p7=65,m7=66,h7=8,g7=9,_7=10,v7=11,y7=12,b7=13,x7=19,S7=20,C7=29,w7=33,T7=34,E7=47,D7=0,O7=1,k7=2,A7=3,j7=4,M7=class{constructor(e,t,n){this.parent=e,this.depth=t,this.type=n,this.hash=(e?e.hash+e.hash<<8:0)+t+(t<<4)+n}},M7.top=new M7(null,-1,D7),N7=new V5({start:M7.top,reduce(e,t){return e.type==A7&&(t==S7||t==T7)?e.parent:e},shift(e,t,n,r){if(t==c7)return new M7(e,W5(r,r.pos),O7);if(t==p7||t==u7)return new M7(e,W5(r,r.pos),k7);if(t==i7)return e.parent;if(t==x7||t==w7)return new M7(e,0,A7);if(t==b7&&e.type==j7)return e.parent;if(t==E7){let t=/[1-9]/.exec(r.read(r.pos,n.pos));if(t)return new M7(e,e.depth+ +t[0],j7)}return e},hash(e){return e.hash}}),P7=new N5((e,t)=>{if(e.next==-1&&t.canShift(a7))return e.acceptToken(a7);let n=e.peek(-1);if((K5(n)||n<0)&&t.context.type!=A7){if(Y5(e,45))if(t.canShift(i7))e.acceptToken(i7);else return e.acceptToken(o7,3);if(Y5(e,46))if(t.canShift(i7))e.acceptToken(i7);else return e.acceptToken(s7,3);let n=0;for(;e.next==32;)n++,e.advance();(n<t.context.depth||n==t.context.depth&&t.context.type==O7&&(e.next!=45||!J5(e.peek(1))))&&e.next!=-1&&!K5(e.next)&&e.next!=35&&e.acceptToken(i7,-n)}},{contextual:!0}),F7=new N5((e,t)=>{if(t.context.type==A7){e.next==63&&(e.advance(),J5(e.next)&&e.acceptToken(f7));return}if(e.next==45)e.advance(),J5(e.next)&&e.acceptToken(t.context.type==O7&&t.context.depth==W5(e,e.pos-1)?l7:c7);else if(e.next==63)e.advance(),J5(e.next)&&e.acceptToken(t.context.type==k7&&t.context.depth==W5(e,e.pos-1)?d7:u7);else{let n=e.pos;for(;;)if(G5(e.next)){if(e.pos==n)return;e.advance()}else if(e.next==33)Q5(e);else if(e.next==38)$5(e);else if(e.next==42){$5(e);break}else if(e.next==39||e.next==34){if(e7(e,!0))break;return}else if(e.next==91||e.next==123){if(!are(e))return;break}else{r7(e,!0,!1,0);break}for(;G5(e.next);)e.advance();if(e.next==58){if(e.pos==n&&t.canShift(C7))return;J5(e.peek(1))&&e.acceptTokenTo(t.context.type==k7&&t.context.depth==W5(e,n)?m7:p7,n)}}},{contextual:!0}),I7=`iiisiiissisfissssssssssssisssiiissssssssssssssssssssssssssfsfssissssssssssssssssssssssssssfif`,L7=new N5((e,t)=>{if(e.next==33)Q5(e),e.acceptToken(y7);else if(e.next==38||e.next==42){let t=e.next==38?_7:v7;$5(e),e.acceptToken(t)}else e.next==39||e.next==34?(e7(e,!1),e.acceptToken(g7)):r7(e,!1,t.context.type==A7,t.context.depth)&&e.acceptToken(h7)}),R7=new N5((e,t)=>{let n=t.context.type==j7?t.context.depth:-1,r=e.pos;scan:for(;;){let i=0,a=e.next;for(;a==32;)a=e.peek(++i);if(!i&&(Y5(e,45,i)||Y5(e,46,i))||!K5(a)&&(n<0&&(n=Math.max(t.context.depth+1,i)),i<n))break;for(;;){if(e.next<0)break scan;let t=K5(e.next);if(e.advance(),t)continue scan;r=e.pos}}e.acceptTokenTo(b7,r)}),z7=mZ({DirectiveName:Z.keyword,DirectiveContent:Z.attributeValue,"DirectiveEnd DocEnd":Z.meta,QuotedLiteral:Z.string,BlockLiteralHeader:Z.special(Z.string),BlockLiteralContent:Z.content,Literal:Z.content,"Key/Literal Key/QuotedLiteral":Z.definition(Z.propertyName),"Anchor Alias":Z.labelName,Tag:Z.typeName,Comment:Z.lineComment,": , -":Z.separator,"?":Z.punctuation,"[ ]":Z.squareBracket,"{ }":Z.brace}),B7=H5.deserialize({version:14,states:"5lQ!ZQgOOO#PQfO'#CpO#uQfO'#DOOOQR'#Dv'#DvO$qQgO'#DRO%gQdO'#DUO%nQgO'#DUO&ROaO'#D[OOQR'#Du'#DuO&{QgO'#D^O'rQgO'#D`OOQR'#Dt'#DtO(iOqO'#DbOOQP'#Dj'#DjO(zQaO'#CmO)YQgO'#CmOOQP'#Cm'#CmQ)jQaOOQ)uQgOOQ]QgOOO*PQdO'#CrO*nQdO'#CtOOQO'#Dw'#DwO+]Q`O'#CxO+hQdO'#CwO+rQ`O'#CwOOQO'#Cv'#CvO+wQdO'#CvOOQO'#Cq'#CqO,UQ`O,59[O,^QfO,59[OOQR,59[,59[OOQO'#Cx'#CxO,eQ`O'#DPO,pQdO'#DPOOQO'#Dx'#DxO,zQdO'#DxO-XQ`O,59jO-aQfO,59jOOQR,59j,59jOOQR'#DS'#DSO-hQcO,59mO-sQgO'#DVO.TQ`O'#DVO.YQcO,59pOOQR'#DX'#DXO#|QfO'#DWO.hQcO'#DWOOQR,59v,59vO.yOWO,59vO/OOaO,59vO/WOaO,59vO/cQgO'#D_OOQR,59x,59xO0VQgO'#DaOOQR,59z,59zOOQP,59|,59|O0yOaO,59|O1ROaO,59|O1aOqO,59|OOQP-E7h-E7hO1oQgO,59XOOQP,59X,59XO2PQaO'#DeO2_QgO'#DeO2oQgO'#DkOOQP'#Dk'#DkQ)jQaOOO3PQdO'#CsOOQO,59^,59^O3kQdO'#CuOOQO,59`,59`OOQO,59c,59cO4VQdO,59cO4aQdO'#CzO4kQ`O'#CzOOQO,59b,59bOOQU,5:Q,5:QOOQR1G.v1G.vO4pQ`O1G.vOOQU-E7d-E7dO4xQdO,59kOOQO,59k,59kO5SQdO'#DQO5^Q`O'#DQOOQO,5:d,5:dOOQU,5:R,5:ROOQR1G/U1G/UO5cQ`O1G/UOOQU-E7e-E7eO5kQgO'#DhO5xQcO1G/XOOQR1G/X1G/XOOQR,59q,59qO6TQgO,59qO6eQdO'#DiO6lQgO'#DiO7PQcO1G/[OOQR1G/[1G/[OOQR,59r,59rO#|QfO,59rOOQR1G/b1G/bO7_OWO1G/bO7dOaO1G/bOOQR,59y,59yOOQR,59{,59{OOQP1G/h1G/hO7lOaO1G/hO7tOaO1G/hO8POaO1G/hOOQP1G.s1G.sO8_QgO,5:POOQP,5:P,5:POOQP,5:V,5:VOOQP-E7i-E7iOOQO,59_,59_OOQO,59a,59aOOQO1G.}1G.}OOQO,59f,59fO8oQdO,59fOOQR7+$b7+$bP,XQ`O'#DfOOQO1G/V1G/VOOQO,59l,59lO8yQdO,59lOOQR7+$p7+$pP9TQ`O'#DgOOQR'#DT'#DTOOQR,5:S,5:SOOQR-E7f-E7fOOQR7+$s7+$sOOQR1G/]1G/]O9YQgO'#DYO9jQ`O'#DYOOQR,5:T,5:TO#|QfO'#DZO9oQcO'#DZOOQR-E7g-E7gOOQR7+$v7+$vOOQR1G/^1G/^OOQR7+$|7+$|O:QOWO7+$|OOQP7+%S7+%SO:VOaO7+%SO:_OaO7+%SOOQP1G/k1G/kOOQO1G/Q1G/QOOQO1G/W1G/WOOQR,59t,59tO:jQgO,59tOOQR,59u,59uO#|QfO,59uOOQR<<Hh<<HhOOQP<<Hn<<HnO:zOaO<<HnOOQR1G/`1G/`OOQR1G/a1G/aOOQPAN>YAN>Y",stateData:";S~O!fOS!gOS^OS~OP_OQbORSOTUOWROXROYYOZZO[XOcPOqQO!PVO!V[O!cTO~O`cO~P]OVkOWROXROYeOZfO[dOcPOmhOqQO~OboO~P!bOVtOWROXROYeOZfO[dOcPOmrOqQO~OpwO~P#WORSOTUOWROXROYYOZZO[XOcPOqQO!PVO!cTO~OSvP!avP!bvP~P#|OWROXROYeOZfO[dOcPOqQO~OmzO~P%OOm!OOUzP!azP!bzP!dzP~P#|O^!SO!b!QO!f!TO!g!RO~ORSOTUOWROXROcPOqQO!PVO!cTO~OY!UOP!QXQ!QX!V!QX!`!QXS!QX!a!QX!b!QXU!QXm!QX!d!QX~P&aO[!WOP!SXQ!SX!V!SX!`!SXS!SX!a!SX!b!SXU!SXm!SX!d!SX~P&aO^!ZO!W![O!b!YO!f!]O!g!YO~OP!_O!V[OQaX!`aX~OPaXQaX!VaX!`aX~P#|OP!bOQ!cO!V[O~OP_O!V[O~P#|OWROXROY!fOcPOqQObfXmfXofXpfX~OWROXRO[!hOcPOqQObhXmhXohXphX~ObeXmlXoeX~ObkXokX~P%OOm!kO~Om!lObnPonP~P%OOb!pOo!oO~Ob!pO~P!bOm!sOosXpsX~OosXpsX~P%OOm!uOotPptP~P%OOo!xOp!yO~Op!yO~P#WOS!|O!a#OO!b#OO~OUyX!ayX!byX!dyX~P#|Om#QO~OU#SO!a#UO!b#UO!d#RO~Om#WOUzX!azX!bzX!dzX~O]#XO~O!b#XO!g#YO~O^#ZO!b#XO!g#YO~OP!RXQ!RX!V!RX!`!RXS!RX!a!RX!b!RXU!RXm!RX!d!RX~P&aOP!TXQ!TX!V!TX!`!TXS!TX!a!TX!b!TXU!TXm!TX!d!TX~P&aO!b#^O!g#^O~O^#_O!b#^O!f#`O!g#^O~O^#_O!W#aO!b#^O!g#^O~OPaaQaa!Vaa!`aa~P#|OP#cO!V[OQ!XX!`!XX~OP!XXQ!XX!V!XX!`!XX~P#|OP_O!V[OQ!_X!`!_X~P#|OWROXROcPOqQObgXmgXogXpgX~OWROXROcPOqQObiXmiXoiXpiX~Obkaoka~P%OObnXonX~P%OOm#kO~Ob#lOo!oO~Oosapsa~P%OOotXptX~P%OOm#pO~Oo!xOp#qO~OSwP!awP!bwP~P#|OS!|O!a#vO!b#vO~OUya!aya!bya!dya~P#|Om#xO~P%OOm#{OU}P!a}P!b}P!d}P~P#|OU#SO!a$OO!b$OO!d#RO~O]$QO~O!b$QO!g$RO~O!b$SO!g$SO~O^$TO!b$SO!g$SO~O^$TO!b$SO!f$UO!g$SO~OP!XaQ!Xa!V!Xa!`!Xa~P#|Obnaona~P%OOotapta~P%OOo!xO~OU|X!a|X!b|X!d|X~P#|Om$ZO~Om$]OU}X!a}X!b}X!d}X~O]$^O~O!b$_O!g$_O~O^$`O!b$_O!g$_O~OU|a!a|a!b|a!d|a~P#|O!b$cO!g$cO~O",goto:",]!mPPPPPPPPPPPPPPPPP!nPP!v#v#|$`#|$c$f$j$nP%VPPP!v%Y%^%a%{&O%a&R&U&X&_&b%aP&e&{&e'O'RPP']'a'g'm's'y(XPPPPPPPP(_)e*X+c,VUaObcR#e!c!{ROPQSTUXY_bcdehknrtvz!O!U!W!_!b!c!f!h!k!l!s!u!|#Q#R#S#W#c#k#p#x#{$Z$]QmPR!qnqfPQThknrtv!k!l!s!u#R#k#pR!gdR!ieTlPnTjPnSiPnSqQvQ{TQ!mkQ!trQ!vtR#y#RR!nkTsQvR!wt!RWOSUXY_bcz!O!U!W!_!b!c!|#Q#S#W#c#x#{$Z$]RySR#t!|R|TR|UQ!PUR#|#SR#z#RR#z#SyZOSU_bcz!O!_!b!c!|#Q#S#W#c#x#{$Z$]R!VXR!XYa]O^abc!a!c!eT!da!eQnPR!rnQvQR!{vQ!}yR#u!}Q#T|R#}#TW^Obc!cS!^^!aT!aa!eQ!eaR#f!eW`Obc!cQxSS}U#SQ!`_Q#PzQ#V!OQ#b!_Q#d!bQ#s!|Q#w#QQ$P#WQ$V#cQ$Y#xQ$[#{Q$a$ZR$b$]xZOSU_bcz!O!_!b!c!|#Q#S#W#c#x#{$Z$]Q!VXQ!XYQ#[!UR#]!W!QWOSUXY_bcz!O!U!W!_!b!c!|#Q#S#W#c#x#{$Z$]pfPQThknrtv!k!l!s!u#R#k#pQ!gdQ!ieQ#g!fR#h!hSgPn^pQTkrtv#RQ!jhQ#i!kQ#j!lQ#n!sQ#o!uQ$W#kR$X#pQuQR!zv",nodeNames:`⚠ DirectiveEnd DocEnd - - ? ? ? Literal QuotedLiteral Anchor Alias Tag BlockLiteralContent Comment Stream BOM Document ] [ FlowSequence Item Tagged Anchored Anchored Tagged FlowMapping Pair Key : Pair , } { FlowMapping Pair Pair BlockSequence Item Item BlockMapping Pair Pair Key Pair Pair BlockLiteral BlockLiteralHeader Tagged Anchored Anchored Tagged Directive DirectiveName DirectiveContent Document`,maxTerm:74,context:N7,nodeProps:[[`isolate`,-3,8,9,14,``],[`openedBy`,18,`[`,32,`{`],[`closedBy`,19,`]`,33,`}`]],propSources:[z7],skippedNodes:[0],repeatNodeCount:6,tokenData:"-Y~RnOX#PXY$QYZ$]Z]#P]^$]^p#Ppq$Qqs#Pst$btu#Puv$yv|#P|}&e}![#P![!]'O!]!`#P!`!a'i!a!}#P!}#O*g#O#P#P#P#Q+Q#Q#o#P#o#p+k#p#q'i#q#r,U#r;'S#P;'S;=`#z<%l?HT#P?HT?HU,o?HUO#PQ#UU!WQOY#PZp#Ppq#hq;'S#P;'S;=`#z<%lO#PQ#kTOY#PZs#Pt;'S#P;'S;=`#z<%lO#PQ#}P;=`<%l#P~$VQ!f~XY$Qpq$Q~$bO!g~~$gS^~OY$bZ;'S$b;'S;=`$s<%lO$b~$vP;=`<%l$bR%OX!WQOX%kXY#PZ]%k]^#P^p%kpq#hq;'S%k;'S;=`&_<%lO%kR%rX!WQ!VPOX%kXY#PZ]%k]^#P^p%kpq#hq;'S%k;'S;=`&_<%lO%kR&bP;=`<%l%kR&lUoP!WQOY#PZp#Ppq#hq;'S#P;'S;=`#z<%lO#PR'VUmP!WQOY#PZp#Ppq#hq;'S#P;'S;=`#z<%lO#PR'p[!PP!WQOY#PZp#Ppq#hq{#P{|(f|}#P}!O(f!O!R#P!R![)p![;'S#P;'S;=`#z<%lO#PR(mW!PP!WQOY#PZp#Ppq#hq!R#P!R![)V![;'S#P;'S;=`#z<%lO#PR)^U!PP!WQOY#PZp#Ppq#hq;'S#P;'S;=`#z<%lO#PR)wY!PP!WQOY#PZp#Ppq#hq{#P{|)V|}#P}!O)V!O;'S#P;'S;=`#z<%lO#PR*nUcP!WQOY#PZp#Ppq#hq;'S#P;'S;=`#z<%lO#PR+XUbP!WQOY#PZp#Ppq#hq;'S#P;'S;=`#z<%lO#PR+rUqP!WQOY#PZp#Ppq#hq;'S#P;'S;=`#z<%lO#PR,]UpP!WQOY#PZp#Ppq#hq;'S#P;'S;=`#z<%lO#PR,vU`P!WQOY#PZp#Ppq#hq;'S#P;'S;=`#z<%lO#P",tokenizers:[P7,F7,L7,R7,0,1],topRules:{Stream:[0,15]},tokenPrec:0})}));function sre(){return new HQ(V7)}var V7,cre=o((()=>{ore(),j$(),dZ(),VZ(),U5(),V7=NQ.define({name:`yaml`,parser:B7.configure({props:[KQ.add({Stream:e=>{for(let t=e.node.resolve(e.pos,-1);t&&t.to>=e.pos;t=t.parent){if(t.name==`BlockLiteralContent`&&t.from<t.to)return e.baseIndentFor(t);if(t.name==`BlockLiteral`)return e.baseIndentFor(t)+e.unit;if(t.name==`BlockSequence`||t.name==`BlockMapping`)return e.column(t.firstChild.from,1);if(t.name==`QuotedLiteral`)return null;if(t.name==`Literal`){let n=e.column(t.from,1);if(n==e.lineIndent(t.from,1))return n;if(t.to>e.pos)return null}}return null},FlowMapping:nQ({closing:`}`}),FlowSequence:nQ({closing:`]`})}),XQ.add({"FlowMapping FlowSequence":aQ,"Item Pair BlockLiteral":(e,t)=>({from:t.doc.lineAt(e.from).to,to:e.to})})]}),languageData:{commentTokens:{line:`#`},indentOnInput:/^\s*[\]\}]$/}}),Z.meta})),lre=c({default:()=>ure});function ure({value:e,onChange:t,editorRef:n,theme:r,editable:i,placeholder:a}){return(0,U7.jsx)(g5,{ref:n,value:e,onChange:t,extensions:(0,H7.useMemo)(()=>[sre(),y4(),h4(),vY.of(y3)],[]),theme:r,editable:i,placeholder:a,height:`100%`,style:{height:`100%`},basicSetup:{lineNumbers:!0,highlightActiveLineGutter:!0,highlightActiveLine:!0,foldGutter:!0,dropCursor:!0,allowMultipleSelections:!0,indentOnInput:!0,bracketMatching:!0,closeBrackets:!0,autocompletion:!1,rectangularSelection:!0,crosshairCursor:!1,highlightSelectionMatches:!0,closeBracketsKeymap:!0,searchKeymap:!0,foldKeymap:!0,completionKeymap:!1,lintKeymap:!0}})}var H7,U7,dre=o((()=>{H7=u(f(),1),tre(),cre(),T3(),AX(),U7=us()})),fre=(0,y.lazy)(()=>E(()=>Promise.resolve().then(()=>(dre(),lre)),void 0,import.meta.url));function pre({search:e,disabled:t}){let{t:n}=B(),{searchQuery:r,searchResults:i,lastSearchedQuery:a,handleSearchChange:o,executeSearch:s,handleSearchKeyDown:c,handlePrevMatch:l,handleNextMatch:u}=e;return(0,V.jsxs)(`div`,{className:F1.searchBar,children:[(0,V.jsx)(`div`,{className:F1.searchInputWrapper,children:(0,V.jsx)(ds,{value:r,onChange:e=>o(e.target.value),onKeyDown:c,placeholder:n(`config_management.search_placeholder`),disabled:t,className:F1.searchInput,rightElement:(0,V.jsxs)(`div`,{className:F1.searchRight,children:[r&&a===r&&(0,V.jsx)(`span`,{className:F1.searchCount,children:i.total>0?`${i.current} / ${i.total}`:n(`config_management.search_no_results`)}),(0,V.jsx)(`button`,{type:`button`,className:F1.searchButton,onClick:()=>s(`next`),disabled:!r||t,title:n(`config_management.search_button`),children:(0,V.jsx)(Bs,{size:16})})]})})}),(0,V.jsxs)(`div`,{className:F1.searchActions,children:[(0,V.jsx)(H,{variant:`secondary`,size:`sm`,onClick:l,disabled:!r||a!==r||i.total===0,title:n(`config_management.search_prev`),children:(0,V.jsx)(Ls,{size:16})}),(0,V.jsx)(H,{variant:`secondary`,size:`sm`,onClick:u,disabled:!r||a!==r||i.total===0,title:n(`config_management.search_next`),children:(0,V.jsx)(Rs,{size:16})})]})]})}function mre({search:e,value:t,onChange:n,theme:r,editable:i}){let{t:a}=B();return(0,V.jsx)(`div`,{className:F1.editorWrapper,children:(0,V.jsx)(y.Suspense,{fallback:null,children:(0,V.jsx)(fre,{editorRef:e.editorRef,value:t,onChange:n,theme:r,editable:i,placeholder:a(`config_management.editor_placeholder`)})})})}var W7={card:`SectionCard-module__card___9aKSV`,cardEnter:`SectionCard-module__cardEnter___l-ICD`,"config-card-in":`SectionCard-module__config-card-in___uBsqv`,configCardIn:`SectionCard-module__config-card-in___uBsqv`,header:`SectionCard-module__header___S216P`,badges:`SectionCard-module__badges___c-MJl`,indexBadge:`SectionCard-module__indexBadge___CxtJ-`,iconBadge:`SectionCard-module__iconBadge___sw1F3`,heading:`SectionCard-module__heading___9sF8i`,title:`SectionCard-module__title___FfcKK`,description:`SectionCard-module__description___q2WuD`,content:`SectionCard-module__content___sdfde`};function G7({indexLabel:e,icon:t,title:n,description:r,animateIn:i=!1,children:a}){return(0,V.jsxs)(`section`,{className:`${W7.card} ${i?W7.cardEnter:``}`,children:[(0,V.jsxs)(`header`,{className:W7.header,children:[(0,V.jsxs)(`div`,{className:W7.badges,children:[e?(0,V.jsx)(`span`,{className:W7.indexBadge,children:e}):null,t?(0,V.jsx)(`span`,{className:W7.iconBadge,children:t}):null]}),(0,V.jsxs)(`div`,{className:W7.heading,children:[(0,V.jsx)(`h2`,{className:W7.title,children:n}),r?(0,V.jsx)(`p`,{className:W7.description,children:r}):null]})]}),(0,V.jsx)(`div`,{className:`${W7.content} ${GV}`,children:a})]})}var Q={expandableInputWrapper:`Blocks-module__expandableInputWrapper___X7oOx`,expandableTextarea:`Blocks-module__expandableTextarea___g6VPh`,expandableToggle:`Blocks-module__expandableToggle___nzhJQ`,expandableInputExpanded:`Blocks-module__expandableInputExpanded___5lyEG`,blockHeaderRow:`Blocks-module__blockHeaderRow___xF4zI`,blockStack:`Blocks-module__blockStack___QeoCn`,blockLabel:`Blocks-module__blockLabel___IQjSE`,actionRow:`Blocks-module__actionRow___ioOg2`,emptyState:`Blocks-module__emptyState___fpJNO`,ruleCard:`Blocks-module__ruleCard___bOPIJ`,ruleCardHeader:`Blocks-module__ruleCardHeader___SARz7`,ruleCardTitle:`Blocks-module__ruleCardTitle___hNu8F`,stringList:`Blocks-module__stringList___dJKp1`,stringListRow:`Blocks-module__stringListRow___rssts`,apiKeyModalInputRow:`Blocks-module__apiKeyModalInputRow___ENpw1`,strengthMeter:`Blocks-module__strengthMeter___XlB8T`,strengthTrack:`Blocks-module__strengthTrack___zzgj-`,strengthSegment:`Blocks-module__strengthSegment___Rmn8w`,strengthSegmentFill:`Blocks-module__strengthSegmentFill___5cRy2`,strengthLabel:`Blocks-module__strengthLabel___2XUy5`,storeAuthEditor:`Blocks-module__storeAuthEditor___RUmYF`,storeAuthEmpty:`Blocks-module__storeAuthEmpty___enNo4`,storeAuthRule:`Blocks-module__storeAuthRule___UmA95`,storeAuthRuleHeader:`Blocks-module__storeAuthRuleHeader___b-9-7`,storeAuthGrid:`Blocks-module__storeAuthGrid___mEaKw`,storeAuthField:`Blocks-module__storeAuthField___cLcPq`,storeAuthApplyTo:`Blocks-module__storeAuthApplyTo___ULpZ3`,storeAuthCheckboxes:`Blocks-module__storeAuthCheckboxes___3awhM`,storeAuthCheckbox:`Blocks-module__storeAuthCheckbox___OTQ-R`,payloadRuleModelRow:`Blocks-module__payloadRuleModelRow___DLjOk`,payloadRuleModelRowProtocolFirst:`Blocks-module__payloadRuleModelRowProtocolFirst___8z4EN`,payloadModelGroup:`Blocks-module__payloadModelGroup___ciGum`,payloadModelAdvanced:`Blocks-module__payloadModelAdvanced___GZQ7s`,payloadAdvancedGrid:`Blocks-module__payloadAdvancedGrid___FIf0P`,payloadHeaderRow:`Blocks-module__payloadHeaderRow___rpkiS`,payloadRuleParamRow:`Blocks-module__payloadRuleParamRow___-1JFh`,payloadRuleRawParamRow:`Blocks-module__payloadRuleRawParamRow___PBndM`,payloadRuleParamGroup:`Blocks-module__payloadRuleParamGroup___j0JJH`,payloadJsonInput:`Blocks-module__payloadJsonInput___gs0Uo`,payloadParamError:`Blocks-module__payloadParamError___GG92O`,payloadFilterModelRow:`Blocks-module__payloadFilterModelRow___jciLU`,payloadRowActionButton:`Blocks-module__payloadRowActionButton___Rx5lx`},hre=30;function K7({value:e,placeholder:t,ariaLabel:n,disabled:r,className:i,onChange:a}){let{t:o}=B(),[s,c]=(0,y.useState)(!0),l=(0,y.useRef)(null),u=(0,y.useCallback)(e=>{e.style.height=`auto`,e.style.height=`${e.scrollHeight}px`},[]);return(0,y.useLayoutEffect)(()=>{!s&&l.current&&u(l.current)},[s,e,u]),s?(0,V.jsxs)(`div`,{className:Q.expandableInputWrapper,children:[(0,V.jsx)(`input`,{className:`input ${i??``}`,placeholder:t,"aria-label":n,value:e,onChange:e=>a(e.target.value.replace(/[\r\n]/g,``)),disabled:r}),e.length>hre&&(0,V.jsx)(`button`,{type:`button`,className:Q.expandableToggle,disabled:r,onClick:()=>{c(!1),requestAnimationFrame(()=>{l.current?.focus()})},title:o(`common.expand`),"aria-label":o(`common.expand`),children:`▼`})]}):(0,V.jsxs)(`div`,{className:`${Q.expandableInputWrapper} ${Q.expandableInputExpanded}`,children:[(0,V.jsx)(`textarea`,{ref:l,className:`input ${Q.expandableTextarea} ${i??``}`,placeholder:t,"aria-label":n,value:e,onChange:e=>{a(e.target.value.replace(/[\r\n]/g,``))},disabled:r,rows:2}),(0,V.jsx)(`button`,{type:`button`,className:Q.expandableToggle,disabled:r,onClick:()=>c(!0),title:o(`common.collapse`),"aria-label":o(`common.collapse`),children:`▲`})]})}var gre=[{value:`bearer`,labelKey:`config_management.visual.sections.system.store_auth_type_bearer`},{value:`github-token`,labelKey:`config_management.visual.sections.system.store_auth_type_github_token`},{value:`basic`,labelKey:`config_management.visual.sections.system.store_auth_type_basic`},{value:`header`,labelKey:`config_management.visual.sections.system.store_auth_type_header`},{value:`none`,labelKey:`config_management.visual.sections.system.store_auth_type_none`}],_re=[{value:`registry`,labelKey:`config_management.visual.sections.system.store_auth_apply_registry`},{value:`metadata`,labelKey:`config_management.visual.sections.system.store_auth_apply_metadata`},{value:`artifact`,labelKey:`config_management.visual.sections.system.store_auth_apply_artifact`}],vre=()=>({id:az(),match:``,applyTo:[],type:`bearer`,tokenEnv:``,usernameEnv:``,passwordEnv:``,headerName:``,headerValueEnv:``,allowInsecure:!1}),yre=(0,y.memo)(function({value:e,disabled:t,onChange:n}){let{t:r}=B(),i=(t,r)=>{n(e.map(e=>e.id===t?{...e,...r}:e))},a=()=>n([...e,vre()]),o=t=>n(e.filter(e=>e.id!==t)),s=(e,t)=>{let n=e.applyTo.includes(t)?e.applyTo.filter(e=>e!==t):[...e.applyTo,t];i(e.id,{applyTo:n})};return(0,V.jsxs)(`div`,{className:Q.storeAuthEditor,children:[e.length===0?(0,V.jsx)(`p`,{className:Q.storeAuthEmpty,children:r(`config_management.visual.sections.system.store_auth_empty`)}):null,e.map(e=>{let n=e.type===`bearer`||e.type===`github-token`,a=e.type===`basic`,c=e.type===`header`;return(0,V.jsxs)(`div`,{className:Q.storeAuthRule,children:[(0,V.jsxs)(`div`,{className:Q.storeAuthRuleHeader,children:[(0,V.jsx)(`strong`,{children:e.match||r(`config_management.visual.sections.system.store_auth_rule`)}),(0,V.jsx)(H,{variant:`ghost`,size:`sm`,onClick:()=>o(e.id),disabled:t,children:r(`config_management.visual.common.delete`)})]}),(0,V.jsxs)(`div`,{className:Q.storeAuthGrid,children:[(0,V.jsxs)(`label`,{className:Q.storeAuthField,children:[(0,V.jsx)(`span`,{children:r(`config_management.visual.sections.system.store_auth_match`)}),(0,V.jsx)(K7,{value:e.match,placeholder:`https://api.github.com/repos/owner/repo/releases/`,disabled:t,onChange:t=>i(e.id,{match:t})})]}),(0,V.jsxs)(`label`,{className:Q.storeAuthField,children:[(0,V.jsx)(`span`,{children:r(`config_management.visual.sections.system.store_auth_type`)}),(0,V.jsx)(_c,{value:e.type,options:gre.map(e=>({value:e.value,label:r(e.labelKey)})),disabled:t,onChange:t=>i(e.id,{type:t})})]})]}),(0,V.jsxs)(`div`,{className:Q.storeAuthApplyTo,children:[(0,V.jsx)(`span`,{children:r(`config_management.visual.sections.system.store_auth_apply_to`)}),(0,V.jsx)(`div`,{className:Q.storeAuthCheckboxes,children:_re.map(n=>(0,V.jsxs)(`label`,{className:Q.storeAuthCheckbox,children:[(0,V.jsx)(`input`,{type:`checkbox`,checked:e.applyTo.includes(n.value),disabled:t,onChange:()=>s(e,n.value)}),(0,V.jsx)(`span`,{children:r(n.labelKey)})]},n.value))}),(0,V.jsx)(`small`,{children:r(`config_management.visual.sections.system.store_auth_apply_to_hint`)})]}),n?(0,V.jsxs)(`label`,{className:Q.storeAuthField,children:[(0,V.jsx)(`span`,{children:r(`config_management.visual.sections.system.store_auth_token_env`)}),(0,V.jsx)(`input`,{className:`input`,value:e.tokenEnv,placeholder:`CLIPROXY_PLUGIN_STORE_TOKEN`,disabled:t,onChange:t=>i(e.id,{tokenEnv:t.target.value})})]}):null,a?(0,V.jsxs)(`div`,{className:Q.storeAuthGrid,children:[(0,V.jsxs)(`label`,{className:Q.storeAuthField,children:[(0,V.jsx)(`span`,{children:r(`config_management.visual.sections.system.store_auth_username_env`)}),(0,V.jsx)(`input`,{className:`input`,value:e.usernameEnv,disabled:t,onChange:t=>i(e.id,{usernameEnv:t.target.value})})]}),(0,V.jsxs)(`label`,{className:Q.storeAuthField,children:[(0,V.jsx)(`span`,{children:r(`config_management.visual.sections.system.store_auth_password_env`)}),(0,V.jsx)(`input`,{className:`input`,value:e.passwordEnv,disabled:t,onChange:t=>i(e.id,{passwordEnv:t.target.value})})]})]}):null,c?(0,V.jsxs)(`div`,{className:Q.storeAuthGrid,children:[(0,V.jsxs)(`label`,{className:Q.storeAuthField,children:[(0,V.jsx)(`span`,{children:r(`config_management.visual.sections.system.store_auth_header_name`)}),(0,V.jsx)(`input`,{className:`input`,value:e.headerName,placeholder:`X-Plugin-Token`,disabled:t,onChange:t=>i(e.id,{headerName:t.target.value})})]}),(0,V.jsxs)(`label`,{className:Q.storeAuthField,children:[(0,V.jsx)(`span`,{children:r(`config_management.visual.sections.system.store_auth_header_value_env`)}),(0,V.jsx)(`input`,{className:`input`,value:e.headerValueEnv,disabled:t,onChange:t=>i(e.id,{headerValueEnv:t.target.value})})]})]}):null,(0,V.jsxs)(`label`,{className:Q.storeAuthCheckbox,children:[(0,V.jsx)(`input`,{type:`checkbox`,checked:e.allowInsecure,disabled:t,onChange:t=>i(e.id,{allowInsecure:t.target.checked})}),(0,V.jsx)(`span`,{children:r(`config_management.visual.sections.system.store_auth_allow_insecure`)})]})]},e.id)}),(0,V.jsx)(`div`,{className:Q.actionRow,children:(0,V.jsx)(H,{variant:`secondary`,size:`sm`,onClick:a,disabled:t,children:r(`config_management.visual.sections.system.store_auth_add`)})})]})}),q7=(0,y.memo)(function({value:e,disabled:t,placeholder:n,inputAriaLabel:r,onChange:i}){let{t:a}=B(),o=e.length?e:[],[s,c]=(0,y.useState)(()=>o.map(()=>az())),l=(0,y.useMemo)(()=>s.length===o.length?s:s.length>o.length?s.slice(0,o.length):[...s,...Array.from({length:o.length-s.length},()=>az())],[s,o.length]),u=(e,t)=>i(o.map((n,r)=>r===e?t:n)),d=()=>{c([...l,az()]),i([...o,``])},f=e=>{c(l.filter((t,n)=>n!==e)),i(o.filter((t,n)=>n!==e))};return(0,V.jsxs)(`div`,{className:Q.stringList,children:[o.map((e,i)=>(0,V.jsxs)(`div`,{className:Q.stringListRow,children:[(0,V.jsx)(K7,{placeholder:n,ariaLabel:r??n,value:e,onChange:e=>u(i,e),disabled:t}),(0,V.jsx)(H,{variant:`ghost`,size:`sm`,onClick:()=>f(i),disabled:t,children:a(`config_management.visual.common.delete`)})]},l[i]??`item-${i}`)),(0,V.jsx)(`div`,{className:Q.actionRow,children:(0,V.jsx)(H,{variant:`secondary`,size:`sm`,onClick:d,disabled:t,children:a(`config_management.visual.common.add`)})})]})});function J7(e,t){if(t)return e(`config_management.visual.validation.${t}`)}function Y7(e,t){let n=oV.map(t=>({value:t.value,label:e(t.labelKey,{defaultValue:t.defaultLabel})})),r=new Set(n.map(e=>e.value));for(let e of t)for(let t of e.models){let e=t.protocol;!e||!e.trim()||r.has(e)||(r.add(e),n.push({value:e,label:e}))}return n}function bre(e,t,n){return!(e<t)||e<n?0:(e-Math.max(n,0))*45}function xre({value:e,disabled:t,error:n,onChange:r}){let{t:i}=B(),a=(0,y.useId)(),o=`${a}-hint`,s=`${a}-error`,c=[o,n?s:void 0].filter(Boolean).join(` `),l=(t,n)=>r(e.map(e=>e.id===t?{...e,...n}:e));return(0,V.jsx)(JV,{children:(0,V.jsx)(QV,{label:i(`config_management.visual.additions.codexLiveMediaRelayICEServers.label`),labelId:`${a}-label`,hint:i(`config_management.visual.additions.codexLiveMediaRelayICEServers.hint`),hintId:o,error:n,errorId:s,children:(0,V.jsx)(`div`,{role:`group`,"aria-labelledby":`${a}-label`,"aria-describedby":c,children:(0,V.jsxs)(JV,{children:[e.map((o,s)=>{let u=i(`config_management.visual.additions.iceServer`,{index:s+1}),d=`${a}-${o.id}-urls`;return(0,V.jsx)(`div`,{role:`group`,"aria-label":u,children:(0,V.jsx)(XV,{title:u,children:(0,V.jsxs)(JV,{children:[(0,V.jsx)(QV,{label:i(`config_management.visual.additions.iceURLs`),htmlFor:d,children:(0,V.jsx)(`textarea`,{id:d,className:`input`,rows:3,value:o.urlsText,disabled:t,spellCheck:!1,"aria-invalid":!!n,"aria-describedby":c,onChange:e=>l(o.id,{urlsText:e.target.value})})}),(0,V.jsxs)(qV,{children:[(0,V.jsx)(ds,{label:i(`config_management.visual.additions.iceUsername`),value:o.username,disabled:t,autoComplete:`off`,spellCheck:!1,"aria-describedby":c,onChange:e=>l(o.id,{username:e.target.value})}),(0,V.jsx)(ds,{label:i(`config_management.visual.additions.iceCredential`),type:`password`,value:o.credential,disabled:t,autoComplete:`new-password`,"aria-describedby":c,onChange:e=>l(o.id,{credential:e.target.value})})]}),(0,V.jsx)(`div`,{children:(0,V.jsx)(H,{type:`button`,variant:`ghost`,size:`sm`,disabled:t,"aria-label":i(`config_management.visual.additions.iceRemove`,{index:s+1}),onClick:()=>r(e.filter(e=>e.id!==o.id)),children:i(`config_management.visual.additions.iceRemove`,{index:s+1})})})]})})},o.id)}),(0,V.jsx)(`div`,{children:(0,V.jsx)(H,{type:`button`,variant:`secondary`,size:`sm`,disabled:t,onClick:()=>r([...e,{id:az(),urlsText:``,username:``,credential:``}]),children:i(`config_management.visual.additions.iceAdd`)})})]})})})})}function Sre({values:e,validationErrors:t,disabled:n,onChange:r}){let{t:i}=B();return(0,V.jsx)(Kb,{label:i(`config_management.visual.additions.oauthTitle`),hint:i(`config_management.visual.additions.oauthHint`),children:(0,V.jsxs)(JV,{children:[(0,V.jsx)(XV,{title:i(`config_management.visual.additions.claudeTitle`),children:(0,V.jsxs)(qV,{children:[(0,V.jsx)(Y,{fieldId:`claudeModelLevelCooling`,children:(0,V.jsx)(KV,{title:i(`config_management.visual.additions.claudeModelLevelCooling.label`),description:i(`config_management.visual.additions.claudeModelLevelCooling.hint`),checked:e.claudeModelLevelCooling,disabled:n,onChange:e=>r({claudeModelLevelCooling:e})})}),(0,V.jsx)(Y,{fieldId:`claudeDisableCloakMode`,children:(0,V.jsx)(KV,{title:i(`config_management.visual.additions.claudeDisableCloakMode.label`),description:i(`config_management.visual.additions.claudeDisableCloakMode.hint`),checked:e.claudeDisableCloakMode,disabled:n,onChange:e=>r({claudeDisableCloakMode:e})})}),(0,V.jsx)(Y,{fieldId:`claudeCodeDisableCloakingModelList`,children:(0,V.jsx)(KV,{title:i(`config_management.visual.additions.claudeCodeDisableCloakingModelList.label`),description:i(`config_management.visual.additions.claudeCodeDisableCloakingModelList.hint`),checked:e.claudeCodeDisableCloakingModelList,disabled:n,onChange:e=>r({claudeCodeDisableCloakingModelList:e})})})]})}),(0,V.jsx)(XV,{title:i(`config_management.visual.additions.codexTitle`),children:(0,V.jsxs)(qV,{children:[(0,V.jsx)(Y,{fieldId:`codexDisableCloaking`,children:(0,V.jsx)(KV,{title:i(`config_management.visual.additions.codexDisableCloaking.label`),description:i(`config_management.visual.additions.codexDisableCloaking.hint`),checked:e.codexDisableCloaking,disabled:n,onChange:e=>r({codexDisableCloaking:e})})}),(0,V.jsx)(Y,{fieldId:`codexModelLevelCooling`,children:(0,V.jsx)(KV,{title:i(`config_management.visual.additions.codexModelLevelCooling.label`),description:i(`config_management.visual.additions.codexModelLevelCooling.hint`),checked:e.codexModelLevelCooling,disabled:n,onChange:e=>r({codexModelLevelCooling:e})})}),(0,V.jsx)(Y,{fieldId:`codexStreamBootstrapBuffering`,children:(0,V.jsx)(KV,{title:i(`config_management.visual.additions.codexStreamBootstrapBuffering.label`),description:i(`config_management.visual.additions.codexStreamBootstrapBuffering.hint`),checked:e.codexStreamBootstrapBuffering,disabled:n,onChange:e=>r({codexStreamBootstrapBuffering:e})})}),(0,V.jsx)(Y,{fieldId:`codexStreamBootstrapTimeout`,children:(0,V.jsx)(ds,{label:i(`config_management.visual.additions.codexStreamBootstrapTimeout.label`),hint:i(`config_management.visual.additions.codexStreamBootstrapTimeout.hint`),type:`text`,value:e.codexStreamBootstrapTimeout,onChange:e=>r({codexStreamBootstrapTimeout:e.target.value}),disabled:n,error:J7(i,t?.codexStreamBootstrapTimeout)})}),(0,V.jsx)(Y,{fieldId:`codexOptimizeMultiAgentV2`,children:(0,V.jsx)(KV,{title:i(`config_management.visual.additions.codexOptimizeMultiAgentV2.label`),description:i(`config_management.visual.additions.codexOptimizeMultiAgentV2.hint`),checked:e.codexOptimizeMultiAgentV2,disabled:n,onChange:e=>r({codexOptimizeMultiAgentV2:e})})}),(0,V.jsx)(Y,{fieldId:`codexOrphanDelegationCompatibility`,children:(0,V.jsx)(KV,{title:i(`config_management.visual.additions.codexOrphanDelegationCompatibility.label`),description:i(`config_management.visual.additions.codexOrphanDelegationCompatibility.hint`),checked:e.codexOrphanDelegationCompatibility,disabled:n,onChange:e=>r({codexOrphanDelegationCompatibility:e})})}),(0,V.jsx)(Y,{fieldId:`codexResponseSteering`,children:(0,V.jsx)(KV,{title:i(`config_management.visual.additions.codexResponseSteering.label`),description:i(`config_management.visual.additions.codexResponseSteering.hint`),checked:e.codexResponseSteering,disabled:n,onChange:e=>r({codexResponseSteering:e})})})]})}),(0,V.jsx)(XV,{title:i(`config_management.visual.additions.antigravityTitle`),children:(0,V.jsxs)(qV,{children:[(0,V.jsx)(Y,{fieldId:`antigravityConnectionPoolEnabled`,children:(0,V.jsx)(KV,{title:i(`config_management.visual.additions.antigravityConnectionPoolEnabled.label`),description:i(`config_management.visual.additions.antigravityConnectionPoolEnabled.hint`),checked:e.antigravityConnectionPoolEnabled,disabled:n,onChange:e=>r({antigravityConnectionPoolEnabled:e})})}),(0,V.jsx)(Y,{fieldId:`antigravityConnectionPoolIdleTimeout`,children:(0,V.jsx)(ds,{label:i(`config_management.visual.additions.antigravityConnectionPoolIdleTimeout.label`),hint:i(`config_management.visual.additions.antigravityConnectionPoolIdleTimeout.hint`),type:`text`,value:e.antigravityConnectionPoolIdleTimeout,onChange:e=>r({antigravityConnectionPoolIdleTimeout:e.target.value}),disabled:n,error:J7(i,t?.antigravityConnectionPoolIdleTimeout)})}),(0,V.jsx)(Y,{fieldId:`antigravityConnectionPoolMaxIdleConnsPerHost`,children:(0,V.jsx)(ds,{label:i(`config_management.visual.additions.antigravityConnectionPoolMaxIdleConnsPerHost.label`),hint:i(`config_management.visual.additions.antigravityConnectionPoolMaxIdleConnsPerHost.hint`),type:`number`,value:e.antigravityConnectionPoolMaxIdleConnsPerHost,onChange:e=>r({antigravityConnectionPoolMaxIdleConnsPerHost:e.target.value}),disabled:n,error:J7(i,t?.antigravityConnectionPoolMaxIdleConnsPerHost)})})]})}),(0,V.jsx)(XV,{title:i(`config_management.visual.additions.xaiTitle`),children:(0,V.jsx)(qV,{children:(0,V.jsx)(Y,{fieldId:`xaiInjectXSearch`,children:(0,V.jsx)(KV,{title:i(`config_management.visual.additions.xaiInjectXSearch.label`),description:i(`config_management.visual.additions.xaiInjectXSearch.hint`),checked:e.xaiInjectXSearch,disabled:n,onChange:e=>r({xaiInjectXSearch:e})})})})}),(0,V.jsx)(XV,{title:i(`config_management.visual.additions.liveRelayTitle`),description:i(`config_management.visual.additions.liveRelayHint`),children:(0,V.jsxs)(qV,{children:[(0,V.jsx)(Y,{fieldId:`codexLiveMediaRelayEnabled`,children:(0,V.jsx)(KV,{title:i(`config_management.visual.additions.codexLiveMediaRelayEnabled.label`),description:i(`config_management.visual.additions.codexLiveMediaRelayEnabled.hint`),checked:e.codexLiveMediaRelayEnabled,disabled:n,onChange:e=>r({codexLiveMediaRelayEnabled:e})})}),(0,V.jsx)(Y,{fieldId:`codexLiveMediaRelayMaxSessions`,children:(0,V.jsx)(ds,{label:i(`config_management.visual.additions.codexLiveMediaRelayMaxSessions.label`),hint:i(`config_management.visual.additions.codexLiveMediaRelayMaxSessions.hint`),type:`number`,value:e.codexLiveMediaRelayMaxSessions,onChange:e=>r({codexLiveMediaRelayMaxSessions:e.target.value}),disabled:n,error:J7(i,t?.codexLiveMediaRelayMaxSessions)})}),(0,V.jsx)(Y,{fieldId:`codexLiveMediaRelayDisablePrivateRemoteIPs`,children:(0,V.jsx)(KV,{title:i(`config_management.visual.additions.codexLiveMediaRelayDisablePrivateRemoteIPs.label`),description:i(`config_management.visual.additions.codexLiveMediaRelayDisablePrivateRemoteIPs.hint`),checked:e.codexLiveMediaRelayDisablePrivateRemoteIPs,disabled:n,onChange:e=>r({codexLiveMediaRelayDisablePrivateRemoteIPs:e})})}),(0,V.jsx)(Y,{fieldId:`codexLiveMediaRelayPublicIP`,children:(0,V.jsx)(ds,{label:i(`config_management.visual.additions.codexLiveMediaRelayPublicIP.label`),hint:i(`config_management.visual.additions.codexLiveMediaRelayPublicIP.hint`),type:`text`,value:e.codexLiveMediaRelayPublicIP,onChange:e=>r({codexLiveMediaRelayPublicIP:e.target.value}),disabled:n,error:J7(i,t?.codexLiveMediaRelayPublicIP)})}),(0,V.jsx)(Y,{fieldId:`codexLiveMediaRelayUDPPortMin`,children:(0,V.jsx)(ds,{label:i(`config_management.visual.additions.codexLiveMediaRelayUDPPortMin.label`),hint:i(`config_management.visual.additions.codexLiveMediaRelayUDPPortMin.hint`),type:`number`,value:e.codexLiveMediaRelayUDPPortMin,onChange:e=>r({codexLiveMediaRelayUDPPortMin:e.target.value}),disabled:n,error:J7(i,t?.codexLiveMediaRelayUDPPortMin)})}),(0,V.jsx)(Y,{fieldId:`codexLiveMediaRelayUDPPortMax`,children:(0,V.jsx)(ds,{label:i(`config_management.visual.additions.codexLiveMediaRelayUDPPortMax.label`),hint:i(`config_management.visual.additions.codexLiveMediaRelayUDPPortMax.hint`),type:`number`,value:e.codexLiveMediaRelayUDPPortMax,onChange:e=>r({codexLiveMediaRelayUDPPortMax:e.target.value}),disabled:n,error:J7(i,t?.codexLiveMediaRelayUDPPortMax)})}),(0,V.jsx)(Y,{fieldId:`codexLiveMediaRelayICEServers`,wide:!0,children:(0,V.jsx)(xre,{value:e.codexLiveMediaRelayICEServers,disabled:n,error:J7(i,t?.codexLiveMediaRelayICEServers),onChange:e=>r({codexLiveMediaRelayICEServers:e})})})]})})]})})}var Cre=dV.advanced;function wre({values:e,validationErrors:t,disabled:n,animateIn:r,onChange:i}){let{t:a}=B(),o=(0,y.useCallback)(e=>i({pluginStoreSources:e}),[i]),s=(0,y.useCallback)(e=>i({pluginStoreAuth:e}),[i]),c=(0,y.useCallback)(e=>i({antigravitySensitiveWords:e}),[i]),l=(0,y.useCallback)(e=>i({devinSensitiveWords:e}),[i]);return(0,V.jsx)(G7,{indexLabel:uV.advanced,icon:(0,V.jsx)(Cre,{size:16}),title:a(`config_management.visual.sections.advanced.title`),description:a(`config_management.visual.sections.advanced.description`),animateIn:r,children:(0,V.jsxs)(JV,{children:[(0,V.jsx)(Sre,{values:e,validationErrors:t,disabled:n,onChange:i}),(0,V.jsx)(Kb,{label:a(`config_management.visual.sections.advanced.plugins_title`),defaultOpen:!1,children:(0,V.jsxs)(JV,{children:[(0,V.jsx)(qV,{children:(0,V.jsx)(Y,{fieldId:`pluginsEnabled`,children:(0,V.jsx)(KV,{title:a(`config_management.visual.sections.system.plugins_enabled`),description:a(`config_management.visual.sections.system.plugins_enabled_desc`),checked:e.pluginsEnabled,disabled:n,onChange:e=>i({pluginsEnabled:e})})})}),(0,V.jsx)(Y,{fieldId:`pluginStoreSources`,children:(0,V.jsx)(XV,{title:a(`config_management.visual.sections.system.plugin_store_sources`),description:a(`config_management.visual.sections.system.plugin_store_sources_desc`),children:(0,V.jsx)(QV,{label:a(`config_management.visual.sections.system.plugin_store_sources_label`),hint:a(`config_management.visual.sections.system.plugin_store_sources_hint`),children:(0,V.jsx)(q7,{value:e.pluginStoreSources,disabled:n,placeholder:a(`config_management.visual.sections.system.plugin_store_sources_placeholder`),inputAriaLabel:a(`config_management.visual.sections.system.plugin_store_sources_label`),onChange:o})})})}),(0,V.jsx)(Y,{fieldId:`pluginStoreAuth`,children:(0,V.jsxs)(XV,{title:a(`config_management.visual.sections.system.plugin_store_auth`),description:a(`config_management.visual.sections.system.plugin_store_auth_desc`),children:[(0,V.jsx)($V,{children:a(`config_management.visual.sections.system.plugin_store_auth_hint`)}),(0,V.jsx)(yre,{value:e.pluginStoreAuth,disabled:n,onChange:s})]})})]})}),(0,V.jsx)(Kb,{label:a(`config_management.visual.sections.advanced.antigravity_title`),defaultOpen:!1,children:(0,V.jsxs)(JV,{children:[(0,V.jsx)(Y,{fieldId:`antigravitySensitiveWords`,children:(0,V.jsx)(XV,{title:a(`config_management.visual.sections.system.antigravity_sensitive_words`),description:a(`config_management.visual.sections.system.antigravity_sensitive_words_desc`),children:(0,V.jsx)(QV,{label:a(`config_management.visual.sections.system.antigravity_sensitive_words_label`),hint:a(`config_management.visual.sections.system.antigravity_sensitive_words_hint`),children:(0,V.jsx)(q7,{value:e.antigravitySensitiveWords,disabled:n,placeholder:a(`config_management.visual.sections.system.antigravity_sensitive_words_placeholder`),inputAriaLabel:a(`config_management.visual.sections.system.antigravity_sensitive_words_label`),onChange:c})})})}),(0,V.jsx)(YV,{}),(0,V.jsx)(ZV,{title:a(`config_management.visual.sections.advanced.signature_title`)}),(0,V.jsxs)(qV,{children:[(0,V.jsx)(Y,{fieldId:`antigravitySignatureCacheEnabled`,children:(0,V.jsx)(KV,{title:a(`config_management.visual.sections.system.antigravity_signature_cache`),description:a(`config_management.visual.sections.system.antigravity_signature_cache_desc`),checked:e.antigravitySignatureCacheEnabled,disabled:n,onChange:e=>i({antigravitySignatureCacheEnabled:e})})}),(0,V.jsx)(Y,{fieldId:`antigravitySignatureBypassStrict`,children:(0,V.jsx)(KV,{title:a(`config_management.visual.sections.system.antigravity_signature_strict`),description:a(`config_management.visual.sections.system.antigravity_signature_strict_desc`),checked:e.antigravitySignatureBypassStrict,disabled:n,onChange:e=>i({antigravitySignatureBypassStrict:e})})})]})]})}),(0,V.jsx)(Kb,{label:a(`config_management.visual.sections.advanced.devin_title`),defaultOpen:!1,children:(0,V.jsx)(JV,{children:(0,V.jsx)(Y,{fieldId:`devinSensitiveWords`,children:(0,V.jsx)(XV,{title:a(`config_management.visual.sections.system.devin_sensitive_words`),description:a(`config_management.visual.sections.system.devin_sensitive_words_desc`),children:(0,V.jsx)(QV,{label:a(`config_management.visual.sections.system.devin_sensitive_words_label`),hint:a(`config_management.visual.sections.system.devin_sensitive_words_hint`),children:(0,V.jsx)(q7,{value:e.devinSensitiveWords,disabled:n,placeholder:a(`config_management.visual.sections.system.devin_sensitive_words_placeholder`),inputAriaLabel:a(`config_management.visual.sections.system.devin_sensitive_words_label`),onChange:l})})})})})}),(0,V.jsx)(Kb,{label:a(`config_management.visual.sections.headers.title`),hint:a(`config_management.visual.sections.headers.description`),defaultOpen:!1,children:(0,V.jsxs)(JV,{children:[(0,V.jsx)(ZV,{title:a(`config_management.visual.sections.headers.claude_title`)}),(0,V.jsxs)(qV,{children:[(0,V.jsx)(Y,{fieldId:`claudeHeaderUserAgent`,children:(0,V.jsx)(ds,{label:a(`config_management.visual.sections.headers.user_agent`),placeholder:`claude-cli/2.1.44 (external, sdk-cli)`,value:e.claudeHeaderUserAgent,onChange:e=>i({claudeHeaderUserAgent:e.target.value}),disabled:n})}),(0,V.jsx)(Y,{fieldId:`claudeHeaderPackageVersion`,children:(0,V.jsx)(ds,{label:a(`config_management.visual.sections.headers.package_version`),placeholder:`0.74.0`,value:e.claudeHeaderPackageVersion,onChange:e=>i({claudeHeaderPackageVersion:e.target.value}),disabled:n})}),(0,V.jsx)(Y,{fieldId:`claudeHeaderRuntimeVersion`,children:(0,V.jsx)(ds,{label:a(`config_management.visual.sections.headers.runtime_version`),placeholder:`v24.3.0`,value:e.claudeHeaderRuntimeVersion,onChange:e=>i({claudeHeaderRuntimeVersion:e.target.value}),disabled:n})}),(0,V.jsx)(Y,{fieldId:`claudeHeaderOs`,children:(0,V.jsx)(ds,{label:a(`config_management.visual.sections.headers.os`),placeholder:`MacOS`,value:e.claudeHeaderOs,onChange:e=>i({claudeHeaderOs:e.target.value}),disabled:n})}),(0,V.jsx)(Y,{fieldId:`claudeHeaderArch`,children:(0,V.jsx)(ds,{label:a(`config_management.visual.sections.headers.arch`),placeholder:`arm64`,value:e.claudeHeaderArch,onChange:e=>i({claudeHeaderArch:e.target.value}),disabled:n})}),(0,V.jsx)(Y,{fieldId:`claudeHeaderTimezone`,children:(0,V.jsx)(ds,{label:a(`config_management.visual.additions.claudeHeaderTimezone.label`),hint:a(`config_management.visual.additions.claudeHeaderTimezone.hint`),type:`text`,value:e.claudeHeaderTimezone,onChange:e=>i({claudeHeaderTimezone:e.target.value}),disabled:n,error:J7(a,t?.claudeHeaderTimezone)})}),(0,V.jsx)(Y,{fieldId:`claudeHeaderTimeout`,children:(0,V.jsx)(ds,{label:a(`config_management.visual.sections.headers.timeout`),placeholder:`600`,value:e.claudeHeaderTimeout,onChange:e=>i({claudeHeaderTimeout:e.target.value}),disabled:n})})]}),(0,V.jsx)(qV,{children:(0,V.jsx)(Y,{fieldId:`claudeHeaderStabilizeDeviceProfile`,children:(0,V.jsx)(KV,{title:a(`config_management.visual.sections.headers.stabilize_device`),description:a(`config_management.visual.sections.headers.stabilize_device_desc`),checked:e.claudeHeaderStabilizeDeviceProfile,disabled:n,onChange:e=>i({claudeHeaderStabilizeDeviceProfile:e})})})}),(0,V.jsx)(YV,{}),(0,V.jsx)(ZV,{title:a(`config_management.visual.sections.headers.codex_title`)}),(0,V.jsxs)(qV,{children:[(0,V.jsx)(Y,{fieldId:`codexHeaderUserAgent`,children:(0,V.jsx)(ds,{label:a(`config_management.visual.sections.headers.user_agent`),placeholder:`codex_cli_rs/0.114.0 (Mac OS 14.2.0; x86_64) vscode/1.111.0`,value:e.codexHeaderUserAgent,onChange:e=>i({codexHeaderUserAgent:e.target.value}),disabled:n})}),(0,V.jsx)(Y,{fieldId:`codexHeaderBetaFeatures`,children:(0,V.jsx)(ds,{label:a(`config_management.visual.sections.headers.beta_features`),placeholder:`multi_agent`,value:e.codexHeaderBetaFeatures,onChange:e=>i({codexHeaderBetaFeatures:e.target.value}),disabled:n})})]})]})})]})})}var X7=[{name:`BestProxy.com`,url:`https://bestproxy.com/?keyword=ayh7otlb`,logo:`data:image/png;base64,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`}],Tre=e=>e/2**32|0,Ere=e=>e>>>0;function Dre(e,t,n,r){let i=Tre(n),a=Ere(n);e.setUint32(t,r?a:i,r),e.setUint32(t+4,r?i:a,r)}function Z7(e){return e instanceof Uint8Array||ArrayBuffer.isView(e)&&e.constructor.name===`Uint8Array`&&`BYTES_PER_ELEMENT`in e&&e.BYTES_PER_ELEMENT===1}var Q7=e=>e?`"${e}" `:``;function Ore(e,t=``){if(typeof e!=`number`)throw TypeError(Q7(t)+`expected number, got `+typeof e);if(!Number.isSafeInteger(e)||e<0)throw RangeError(Q7(t)+`expected integer >= 0, got `+e);return e}function $7(e,t,n=``){if(Z7(e)&&(t===void 0||e.length===t))return e;t!==void 0&&Ore(t,`length`);let r=Z7(e),i=t===void 0?``:` of length ${t}`,a=r?`length=${e.length}`:`type=${typeof e}`,o=Q7(n)+`expected Uint8Array`+i+`, got `+a;throw r?RangeError(o):TypeError(o)}var kre=(e,t)=>{if(typeof e!=`object`||!e||Array.isArray(e))throw TypeError((t===`object`?``:`"${t}" `)+`expected object, got type=`+typeof e)},e9=(e,t)=>{kre(e,t);let n=Object.getPrototypeOf(e);if(n!==Object.prototype&&n!==null)throw TypeError(`"${t}" expected plain object`);if(Object.hasOwn(e,`__proto__`))throw TypeError(`"${t}.__proto__" is not allowed`)};function t9(e,t=!0){if(e.destroyed)throw Error(`hash was destroyed`);if(t&&e.finished)throw Error(`digest() was already called`)}function Are(e,t){$7(e,void 0,`output`);let n=t.outputLen;if(!(e.length>=n))throw RangeError(`"output" expected length >= `+n)}function n9(...e){for(let t=0;t<e.length;t++)e[t].fill(0)}function r9(e){return new DataView(e.buffer,e.byteOffset,e.byteLength)}function i9(e,t){return e<<32-t|e>>>t}var jre=typeof Uint8Array.from([]).toHex==`function`&&typeof Uint8Array.fromHex==`function`,Mre=Array.from({length:256},(e,t)=>t.toString(16).padStart(2,`0`));function Nre(e){if($7(e),jre)return e.toHex();let t=``;for(let n=0;n<e.length;n++)t+=Mre[e[n]];return t}function Pre(e,t,n=`opts`){return e9(e,`defaults`),t!==void 0&&e9(t,n),Object.assign(Object.create(null),e,t)}function Fre(e,t={}){if(typeof e!=`function`)throw TypeError(`"hashCons" expected function, got type=`+typeof e);t=Pre({},t,`info`);let n=(t,n)=>e(n).update(t).digest(),r=e(void 0);return n.outputLen=r.outputLen,n.blockLen=r.blockLen,n.canXOF=r.canXOF,n.create=t=>e(t),Object.assign(n,t),Object.freeze(n)}var Ire=e=>({oid:Uint8Array.from([6,9,96,134,72,1,101,3,4,2,e])});function Lre(e,t,n){return e&t^~e&n}function Rre(e,t,n){return e&t^e&n^t&n}var zre=class{constructor(e,t,n,r){cp(this,`blockLen`,void 0),cp(this,`outputLen`,void 0),cp(this,`canXOF`,!1),cp(this,`padOffset`,void 0),cp(this,`isLE`,void 0),cp(this,`buffer`,void 0),cp(this,`view`,void 0),cp(this,`finished`,!1),cp(this,`length`,0),cp(this,`pos`,0),cp(this,`destroyed`,!1),this.blockLen=e,this.outputLen=t,this.padOffset=n,this.isLE=r,this.buffer=new Uint8Array(e),this.view=r9(this.buffer)}update(e){t9(this),$7(e);let{view:t,buffer:n,blockLen:r}=this,i=e.length,a=!1;for(let o=0;o<i;){let s=Math.min(r-this.pos,i-o);if(s===r){let t=r9(e);for(;r<=i-o;o+=r)this.process(t,o);a=!0;continue}n.set(o===0&&s===i?e:e.subarray(o,o+s),this.pos),this.pos+=s,o+=s,this.pos===r&&(this.process(t,0),this.pos=0,a=!0)}return this.length+=e.length,a&&this.roundClean(),this}digestInto(e){t9(this),Are(e,this),this.finished=!0;let{buffer:t,view:n,blockLen:r,isLE:i}=this,{pos:a}=this;t[a++]=128,t.fill(0,a),this.padOffset>r-a&&(this.process(n,0),t.fill(0)),Dre(n,r-8,this.length*8,i),this.process(n,0),this.roundClean();let o=e===t?n:r9(e),s=this.outputLen,c=s/4,l=this.get();if(s%4||c>l.length)throw Error(`invalid outputLen`);for(let e=0;e<c;e++)o.setUint32(4*e,l[e],i)}digest(){let{buffer:e,outputLen:t}=this;this.digestInto(e);let n=e.slice(0,t);return this.destroy(),n}_cloneIntoMeta(e){let{buffer:t,length:n,finished:r,destroyed:i,pos:a}=this;return e.destroyed=i,e.finished=r,e.length=n,e.pos=a,a&&e.buffer.set(t),e}clone(){return this._cloneInto()}},Bre=Uint32Array.from([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),Vre=Uint32Array.from([1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298]),a9=new Uint32Array(64),Hre=class extends zre{constructor(e,t){super(64,e,8,!1),cp(this,`A`,0),cp(this,`B`,0),cp(this,`C`,0),cp(this,`D`,0),cp(this,`E`,0),cp(this,`F`,0),cp(this,`G`,0),cp(this,`H`,0),this.A=t[0]|0,this.B=t[1]|0,this.C=t[2]|0,this.D=t[3]|0,this.E=t[4]|0,this.F=t[5]|0,this.G=t[6]|0,this.H=t[7]|0}get(){let{A:e,B:t,C:n,D:r,E:i,F:a,G:o,H:s}=this;return[e,t,n,r,i,a,o,s]}set(e,t,n,r,i,a,o,s){this.A=e|0,this.B=t|0,this.C=n|0,this.D=r|0,this.E=i|0,this.F=a|0,this.G=o|0,this.H=s|0}_cloneInto(e){return(e||(e=new this.constructor)).set(...this.get()),this._cloneIntoMeta(e)}process(e,t){for(let n=0;n<16;n++,t+=4)a9[n]=e.getUint32(t,!1);for(let e=16;e<64;e++){let t=a9[e-15],n=a9[e-2],r=i9(t,7)^i9(t,18)^t>>>3;a9[e]=(i9(n,17)^i9(n,19)^n>>>10)+a9[e-7]+r+a9[e-16]|0}let{A:n,B:r,C:i,D:a,E:o,F:s,G:c,H:l}=this;for(let e=0;e<64;e++){let t=i9(o,6)^i9(o,11)^i9(o,25),u=l+t+Lre(o,s,c)+Vre[e]+a9[e]|0,d=(i9(n,2)^i9(n,13)^i9(n,22))+Rre(n,r,i)|0;l=c,c=s,s=o,o=a+u|0,a=i,i=r,r=n,n=u+d|0}n=n+this.A|0,r=r+this.B|0,i=i+this.C|0,a=a+this.D|0,o=o+this.E|0,s=s+this.F|0,c=c+this.G|0,l=l+this.H|0,this.set(n,r,i,a,o,s,c,l)}roundClean(){n9(a9)}destroy(){this.destroyed=!0,this.set(0,0,0,0,0,0,0,0),n9(this.buffer)}},Ure=class extends Hre{constructor(){super(32,Bre)}},Wre=Fre(()=>new Ure,Ire(1)),o9=`api-key-names:v1:`;function s9(e,t){let n=JSON.stringify([`api-key-name`,e,t]);return Nre(Wre(new TextEncoder().encode(n)))}function c9(e){try{let t=Ol.getItem(o9+e);return!t||typeof t!=`object`||Array.isArray(t)?{}:Object.fromEntries(Object.entries(t).filter(e=>/^[a-f0-9]{64}$/.test(e[0])&&typeof e[1]==`string`&&!!e[1].trim()))}catch{return{}}}function Gre(e,t,n){try{let r=new Map(Object.entries(c9(e))),i=s9(e,t);return n.trim()?r.set(i,n.trim()):r.delete(i),r.size?Ol.setItem(o9+e,Object.fromEntries(r)):Ol.removeItem(o9+e),!0}catch{return!1}}var Kre=`sk-`,l9=48,qre=`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789`,Jre=248;function Yre(){let e=[];for(;e.length<l9;){let t=l9-e.length,n=new Uint8Array(Math.ceil(t*1.1));globalThis.crypto.getRandomValues(n);for(let t of n)if(!(t>=Jre)&&(e.push(qre[t%62]),e.length===l9))break}return`${Kre}${e.join(``)}`}function Xre(e){return e?/^[\x21-\x7E]+$/.test(e):!1}var u9=[`weak`,`fair`,`good`,`strong`],d9=u9.length,Zre=[{pattern:/[a-z]/,size:26},{pattern:/[A-Z]/,size:26},{pattern:/[0-9]/,size:10},{pattern:/[^a-zA-Z0-9]/,size:32}],Qre=[`password`,`passwd`,`123456`,`qwerty`,`admin`,`secret`,`apikey`,`api-key`,`letmein`,`changeme`,`iloveyou`,`default`,`test`,`demo`],f9=.25,$re=.35,eie=.4,tie=40,nie=64,rie=96,iie=[{below:8,tier:`weak`},{below:16,tier:`fair`},{below:24,tier:`good`}],aie=5;function oie(e){let t=0,n=1;for(let r=0;r<e.length;r+=1){let i=e.charCodeAt(r),a=r>0?e.charCodeAt(r-1):NaN;if(i===a){t+=f9,n=1;continue}let o=i-a;if(o===1||o===-1){n+=1,t+=n>=3?$re:1;continue}n=1,t+=1}return t}function sie(e){let t=`${e}${e}`.indexOf(e,1);return t>0&&t<e.length?t:e.length}function cie(e){return Zre.reduce((t,n)=>n.pattern.test(e)?t+n.size:t,0)}function lie(e){return e>=rie?`strong`:e>=nie?`good`:e>=tie?`fair`:`weak`}function p9(e,t){return u9.indexOf(e)<=u9.indexOf(t)?e:t}function uie(e){let t=e.trim();if(!t)return{tier:`weak`,segments:0,bits:0};let n=cie(t),r=t.toLowerCase(),i=Qre.some(e=>r.includes(e)),a=sie(t),o=oie(t.slice(0,a))+(t.length-a)*f9,s=Math.floor(o*Math.log2(n)*(i?eie:1)),c=lie(s);for(let{below:e,tier:n}of iie)t.length<e&&(c=p9(c,n));return new Set(t).size<aie&&(c=p9(c,`weak`)),{tier:c,segments:u9.indexOf(c)+1,bits:s}}var die={weak:`var(--error-color)`,fair:`var(--amber-color)`,good:`var(--success-color)`,strong:`var(--success-color)`},fie=Array.from({length:d9},(e,t)=>t),pie=(0,y.memo)(function({value:e}){let{t}=B(),{tier:n,segments:r}=(0,y.useMemo)(()=>uie(e),[e]),i=(0,y.useRef)(r),a=i.current;(0,y.useEffect)(()=>{i.current=r},[r]);let o=r===0,s=t(o?`config_management.visual.api_keys.strength.empty`:`config_management.visual.api_keys.strength.${n}`);return(0,V.jsxs)(`div`,{className:Q.strengthMeter,style:{"--strength-color":o?`var(--text-quaternary)`:die[n]},children:[(0,V.jsx)(`div`,{className:Q.strengthTrack,role:`progressbar`,"aria-valuemin":0,"aria-valuemax":d9,"aria-valuenow":r,"aria-valuetext":s,"aria-label":t(`config_management.visual.api_keys.strength.label`),children:fie.map(e=>(0,V.jsx)(`span`,{className:Q.strengthSegment,children:(0,V.jsx)(`span`,{className:Q.strengthSegmentFill,"data-filled":e<r,style:{"--segment-delay":`${bre(e,r,a)}ms`}})},e))}),(0,V.jsx)(`span`,{className:Q.strengthLabel,"aria-hidden":`true`,children:o?`—`:s})]})}),mie=(0,y.memo)(function(e){let t=Im(e=>e.apiBase);return(0,V.jsx)(hie,{...e,apiBase:t},t)});function hie({value:e,disabled:t,onChange:n,apiBase:r}){let[i,a]=(0,y.useState)(()=>c9(r)),[o,s]=(0,y.useState)(``),{t:c}=B(),l=Jc(e=>e.showNotification),u=(0,y.useMemo)(()=>e.split(`
`).map(e=>e.trim()).filter(Boolean),[e]),d=(0,y.useMemo)(()=>u.map(e=>s9(r,e)),[r,u]),[f,p]=(0,y.useState)(()=>u.map(()=>az())),m=(0,y.useMemo)(()=>f.length===u.length?f:f.length>u.length?f.slice(0,u.length):[...f,...Array.from({length:u.length-f.length},()=>az())],[f,u.length]),h=(0,y.useId)(),g=(0,y.useId)(),_=`${g}-hint`,v=`${h}-hint`,b=`${h}-error`,[x,S]=(0,y.useState)(!1),[C,w]=(0,y.useState)(null),[T,E]=(0,y.useState)(``),[D,O]=(0,y.useState)(``),k=()=>{s(``),w(null),E(``),O(``),S(!0)},A=e=>{let t=m.findIndex(t=>t===e),n=c9(r);a(n),s(n[d[t]]??``),w(e),E(u[t]??``),O(``),S(!0)},j=()=>{S(!1),E(``),w(null),O(``)},M=e=>{n(e.join(`
`))},N=e=>{let t=m.findIndex(t=>t===e);t<0||(p(m.filter(t=>t!==e)),M(u.filter((e,n)=>n!==t)))},ee=()=>{let e=T.trim();if(!e){O(c(`config_management.visual.api_keys.error_empty`));return}if(!Xre(e)){O(c(`config_management.visual.api_keys.error_invalid`));return}let t=C?m.findIndex(e=>e===C):-1,n=C===null?[...u,e]:u.map((n,r)=>r===t?e:n);if(!Gre(r,e,o)){O(c(`config_management.visual.api_keys.name_save_error`));return}a(c9(r)),C===null&&p([...m,az()]),n.join(`
`)!==u.join(`
`)&&M(n),j()},P=async e=>{let t=await ID(e);l(c(t?`notification.link_copied`:`notification.copy_failed`),t?`success`:`error`)};return(0,V.jsxs)(`div`,{className:`form-group`,style:{marginBottom:0},children:[(0,V.jsxs)(`div`,{className:Q.blockHeaderRow,children:[(0,V.jsx)(`label`,{style:{margin:0},children:c(`config_management.visual.api_keys.label`)}),(0,V.jsx)(H,{size:`sm`,onClick:k,disabled:t,children:c(`config_management.visual.api_keys.add`)})]}),u.length===0?(0,V.jsx)(`div`,{className:Q.emptyState,children:c(`config_management.visual.api_keys.empty`)}):(0,V.jsx)(`div`,{className:`item-list`,style:{marginTop:4},children:u.map((e,n)=>(0,V.jsxs)(`div`,{className:`item-row`,children:[(0,V.jsxs)(`div`,{className:`item-meta`,children:[(0,V.jsxs)(`div`,{className:`pill`,children:[`#`,n+1]}),(0,V.jsx)(`div`,{className:`item-title`,children:i[d[n]]??c(`config_management.visual.api_keys.input_label`)}),(0,V.jsx)(`div`,{className:`item-subtitle`,children:dg(String(e||``))})]}),(0,V.jsxs)(`div`,{className:`item-actions`,children:[(0,V.jsx)(H,{variant:`secondary`,size:`sm`,onClick:()=>P(e),disabled:t,children:c(`common.copy`)}),(0,V.jsx)(H,{variant:`secondary`,size:`sm`,onClick:()=>A(m[n]??``),disabled:t,children:c(`config_management.visual.common.edit`)}),(0,V.jsx)(H,{variant:`danger`,size:`sm`,onClick:()=>N(m[n]??``),disabled:t,children:c(`config_management.visual.common.delete`)})]})]},m[n]??`${e}-${n}`))}),(0,V.jsx)(`div`,{className:`hint`,children:c(`config_management.visual.api_keys.hint`)}),(0,V.jsxs)($m,{open:x,onClose:j,title:c(C===null?`config_management.visual.api_keys.add_title`:`config_management.visual.api_keys.edit_title`),footer:(0,V.jsxs)(V.Fragment,{children:[(0,V.jsx)(H,{variant:`secondary`,onClick:j,disabled:t,children:c(`config_management.visual.common.cancel`)}),(0,V.jsx)(H,{onClick:ee,disabled:t,children:c(C===null?`config_management.visual.common.add`:`config_management.visual.common.update`)})]}),children:[(0,V.jsxs)(`div`,{className:`form-group`,children:[(0,V.jsx)(`label`,{htmlFor:g,children:c(`config_management.visual.api_keys.name_label`)}),(0,V.jsx)(`input`,{id:g,className:`input`,value:o,onChange:e=>s(e.target.value),placeholder:c(`config_management.visual.api_keys.name_placeholder`),"aria-describedby":_,disabled:t}),(0,V.jsx)(`div`,{id:_,className:`hint`,children:c(`config_management.visual.api_keys.name_hint`)})]}),(0,V.jsxs)(`div`,{className:`form-group`,children:[(0,V.jsx)(`label`,{htmlFor:h,children:c(`config_management.visual.api_keys.input_label`)}),(0,V.jsxs)(`div`,{className:Q.apiKeyModalInputRow,children:[(0,V.jsx)(`input`,{id:h,className:`input`,placeholder:c(`config_management.visual.api_keys.input_placeholder`),value:T,onChange:e=>E(e.target.value),disabled:t,"aria-describedby":D?`${b} ${v}`:v,"aria-invalid":!!D}),(0,V.jsx)(H,{type:`button`,variant:`secondary`,size:`sm`,onClick:()=>{E(Yre()),O(``)},disabled:t,children:c(`config_management.visual.api_keys.generate`)})]}),(0,V.jsx)(pie,{value:T}),(0,V.jsx)(`div`,{id:v,className:`hint`,children:c(`config_management.visual.api_keys.input_hint`)}),D&&(0,V.jsx)(`div`,{id:b,className:`error-box`,children:D})]})]})]})}function m9({values:e,disabled:t,onChange:n,topExtra:r}){let{t:i}=B();return(0,V.jsx)(Y,{fieldId:`host`,children:(0,V.jsx)(ds,{label:i(`config_management.visual.sections.server.host`),placeholder:`0.0.0.0`,value:e.host,onChange:e=>n({host:e.target.value}),disabled:t,topExtra:r})})}function h9({values:e,disabled:t,onChange:n,error:r,topExtra:i}){let{t:a}=B();return(0,V.jsx)(Y,{fieldId:`port`,children:(0,V.jsx)(ds,{label:a(`config_management.visual.sections.server.port`),type:`number`,placeholder:`8317`,value:e.port,onChange:e=>n({port:e.target.value}),disabled:t,error:r,topExtra:i})})}function g9({values:e,disabled:t,onChange:n}){let{t:r}=B(),i=X7[0];return(0,V.jsx)(Y,{fieldId:`proxyUrl`,wide:!0,children:(0,V.jsx)(ds,{label:r(`config_management.visual.sections.network.proxy_url`),labelExtra:i?(0,V.jsxs)(`p`,{className:UV.fieldSponsorHint,children:[r(`config_management.visual.sections.network.proxy_url_sponsor_hint`),` `,(0,V.jsxs)(`a`,{className:UV.fieldSponsorLink,href:i.url,target:`_blank`,rel:`noopener noreferrer sponsored`,children:[i.logo?(0,V.jsx)(`img`,{className:UV.fieldSponsorLogo,src:i.logo,alt:``}):null,i.name]})]}):void 0,placeholder:`socks5://user:pass@127.0.0.1:1080/`,value:e.proxyUrl,onChange:e=>n({proxyUrl:e.target.value}),disabled:t})})}function _9(){return X7.length===0?null:(0,V.jsx)(`p`,{className:UV.fieldSponsorSpacer,"aria-hidden":`true`,children:`\xA0`})}function v9({values:e,disabled:t,onChange:n}){return(0,V.jsx)(Y,{fieldId:`apiKeys`,children:(0,V.jsx)(XV,{children:(0,V.jsx)(mie,{value:e.apiKeysText,disabled:t,onChange:e=>n({apiKeysText:e})})})})}function y9({values:e,disabled:t,onChange:n}){let{t:r}=B();return(0,V.jsx)(Y,{fieldId:`debug`,children:(0,V.jsx)(KV,{title:r(`config_management.visual.sections.system.debug`),description:r(`config_management.visual.sections.system.debug_desc`),checked:e.debug,disabled:t,onChange:e=>n({debug:e})})})}function b9({values:e,disabled:t,onChange:n}){let{t:r}=B();return(0,V.jsx)(Y,{fieldId:`loggingToFile`,children:(0,V.jsx)(KV,{title:r(`config_management.visual.sections.system.logging_to_file`),description:r(`config_management.visual.sections.system.logging_to_file_desc`),checked:e.loggingToFile,disabled:t,onChange:e=>n({loggingToFile:e})})})}function x9({values:e,disabled:t,onChange:n}){let{t:r}=B();return(0,V.jsx)(Y,{fieldId:`quotaSwitchProject`,children:(0,V.jsx)(KV,{title:r(`config_management.visual.sections.quota.switch_project`),description:r(`config_management.visual.sections.quota.switch_project_desc`),checked:e.quotaSwitchProject,disabled:t,onChange:e=>n({quotaSwitchProject:e})})})}function S9({values:e,disabled:t,onChange:n}){let{t:r}=B();return(0,V.jsx)(Y,{fieldId:`quotaSwitchPreviewModel`,children:(0,V.jsx)(KV,{title:r(`config_management.visual.sections.quota.switch_preview_model`),description:r(`config_management.visual.sections.quota.switch_preview_model_desc`),checked:e.quotaSwitchPreviewModel,disabled:t,onChange:e=>n({quotaSwitchPreviewModel:e})})})}var gie=dV.common;function _ie({values:e,validationErrors:t,disabled:n,animateIn:r,onChange:i}){let{t:a}=B(),o=J7(a,t?.port);return(0,V.jsx)(G7,{icon:(0,V.jsx)(gie,{size:16}),title:a(`config_management.visual.sections.common.title`),description:a(`config_management.visual.sections.common.description`),animateIn:r,children:(0,V.jsxs)(JV,{children:[(0,V.jsxs)(qV,{children:[(0,V.jsx)(m9,{values:e,disabled:n,onChange:i,topExtra:(0,V.jsx)(_9,{})}),(0,V.jsx)(h9,{values:e,disabled:n,onChange:i,error:o,topExtra:(0,V.jsx)(_9,{})}),(0,V.jsx)(g9,{values:e,disabled:n,onChange:i})]}),(0,V.jsx)(v9,{values:e,disabled:n,onChange:i}),(0,V.jsxs)(qV,{children:[(0,V.jsx)(y9,{values:e,disabled:n,onChange:i}),(0,V.jsx)(b9,{values:e,disabled:n,onChange:i}),(0,V.jsx)(x9,{values:e,disabled:n,onChange:i}),(0,V.jsx)(S9,{values:e,disabled:n,onChange:i})]})]})})}function vie({values:e,validationErrors:t,disabled:n,onChange:r}){let{t:i}=B(),a=(0,y.useId)(),o=J7(i,t?.discoveryServiceType);return(0,V.jsx)(Kb,{label:i(`config_management.visual.serverExtras.discoveryTitle`),hint:i(`config_management.visual.serverExtras.discoveryHint`),defaultOpen:!1,children:(0,V.jsxs)(JV,{children:[(0,V.jsx)(Y,{fieldId:`discoveryEnabled`,children:(0,V.jsx)(KV,{title:i(`config_management.visual.serverExtras.discoveryEnabled.label`),description:i(`config_management.visual.serverExtras.discoveryEnabled.hint`),checked:e.discoveryEnabled,disabled:n,onChange:e=>r({discoveryEnabled:e})})}),(0,V.jsx)(Y,{fieldId:`discoveryServiceName`,children:(0,V.jsx)(ds,{type:`text`,label:i(`config_management.visual.serverExtras.discoveryServiceName.label`),hint:i(`config_management.visual.serverExtras.discoveryServiceName.hint`),value:e.discoveryServiceName,disabled:n,onChange:e=>r({discoveryServiceName:e.target.value})})}),(0,V.jsx)(Y,{fieldId:`discoveryServiceType`,children:(0,V.jsx)(ds,{type:`text`,label:i(`config_management.visual.serverExtras.discoveryServiceType.label`),hint:i(`config_management.visual.serverExtras.discoveryServiceType.hint`),placeholder:`_ai-gateway._tcp`,error:o,value:e.discoveryServiceType,disabled:n,onChange:e=>r({discoveryServiceType:e.target.value})})}),(0,V.jsx)(Y,{fieldId:`discoverySubtypes`,children:(0,V.jsx)(QV,{label:i(`config_management.visual.serverExtras.discoverySubtypes.label`),labelId:`${a}-discoverySubtypes-label`,hint:i(`config_management.visual.serverExtras.discoverySubtypes.hint`),hintId:`${a}-discoverySubtypes-hint`,children:(0,V.jsx)(`div`,{role:`group`,"aria-labelledby":`${a}-discoverySubtypes-label`,"aria-describedby":`${a}-discoverySubtypes-hint`,children:(0,V.jsx)(q7,{value:e.discoverySubtypes,disabled:n,placeholder:`_responses`,inputAriaLabel:i(`config_management.visual.serverExtras.discoverySubtypes.label`),onChange:e=>r({discoverySubtypes:e})})})})}),(0,V.jsx)(Y,{fieldId:`discoveryInterfacesInclude`,children:(0,V.jsx)(QV,{label:i(`config_management.visual.serverExtras.discoveryInterfacesInclude.label`),labelId:`${a}-discoveryInterfacesInclude-label`,hint:i(`config_management.visual.serverExtras.discoveryInterfacesInclude.hint`),hintId:`${a}-discoveryInterfacesInclude-hint`,children:(0,V.jsx)(`div`,{role:`group`,"aria-labelledby":`${a}-discoveryInterfacesInclude-label`,"aria-describedby":`${a}-discoveryInterfacesInclude-hint`,children:(0,V.jsx)(q7,{value:e.discoveryInterfacesInclude,disabled:n,placeholder:`en*`,inputAriaLabel:i(`config_management.visual.serverExtras.discoveryInterfacesInclude.label`),onChange:e=>r({discoveryInterfacesInclude:e})})})})}),(0,V.jsx)(Y,{fieldId:`discoveryInterfacesExclude`,children:(0,V.jsx)(QV,{label:i(`config_management.visual.serverExtras.discoveryInterfacesExclude.label`),labelId:`${a}-discoveryInterfacesExclude-label`,hint:i(`config_management.visual.serverExtras.discoveryInterfacesExclude.hint`),hintId:`${a}-discoveryInterfacesExclude-hint`,children:(0,V.jsx)(`div`,{role:`group`,"aria-labelledby":`${a}-discoveryInterfacesExclude-label`,"aria-describedby":`${a}-discoveryInterfacesExclude-hint`,children:(0,V.jsx)(q7,{value:e.discoveryInterfacesExclude,disabled:n,placeholder:`en*`,inputAriaLabel:i(`config_management.visual.serverExtras.discoveryInterfacesExclude.label`),onChange:e=>r({discoveryInterfacesExclude:e})})})})}),(0,V.jsx)(Y,{fieldId:`discoveryAuthRequired`,children:(0,V.jsx)(KV,{title:i(`config_management.visual.serverExtras.discoveryAuthRequired.label`),description:i(`config_management.visual.serverExtras.discoveryAuthRequired.hint`),checked:e.discoveryAuthRequired,disabled:n,onChange:e=>r({discoveryAuthRequired:e})})}),(0,V.jsx)(Y,{fieldId:`discoveryAdvertiseManagement`,children:(0,V.jsx)(KV,{title:i(`config_management.visual.serverExtras.discoveryAdvertiseManagement.label`),description:i(`config_management.visual.serverExtras.discoveryAdvertiseManagement.hint`),checked:e.discoveryAdvertiseManagement,disabled:n,onChange:e=>r({discoveryAdvertiseManagement:e})})})]})})}var yie=dV.connectivity;function bie({values:e,validationErrors:t,disabled:n,animateIn:r,onChange:i}){let{t:a}=B(),o=(0,y.useId)(),s=J7(a,t?.trustedProxies),c=J7(a,t?.port);return(0,V.jsx)(G7,{indexLabel:uV.connectivity,icon:(0,V.jsx)(yie,{size:16}),title:a(`config_management.visual.sections.connectivity.title`),description:a(`config_management.visual.sections.connectivity.description`),animateIn:r,children:(0,V.jsxs)(JV,{children:[(0,V.jsxs)(qV,{children:[(0,V.jsx)(m9,{values:e,disabled:n,onChange:i}),(0,V.jsx)(h9,{values:e,disabled:n,onChange:i,error:c})]}),(0,V.jsx)(Y,{fieldId:`authDir`,children:(0,V.jsx)(ds,{label:a(`config_management.visual.sections.auth.auth_dir`),placeholder:`~/.cli-proxy-api`,value:e.authDir,onChange:e=>i({authDir:e.target.value}),disabled:n,hint:a(`config_management.visual.sections.auth.auth_dir_hint`)})}),(0,V.jsx)(v9,{values:e,disabled:n,onChange:i}),(0,V.jsx)(Y,{fieldId:`trustedProxies`,children:(0,V.jsx)(QV,{label:a(`config_management.visual.serverExtras.trustedProxies.label`),labelId:`${o}-trustedProxies-label`,hint:a(`config_management.visual.serverExtras.trustedProxies.hint`),hintId:`${o}-trustedProxies-hint`,error:s,errorId:`${o}-trustedProxies-error`,children:(0,V.jsx)(`div`,{role:`group`,"aria-labelledby":`${o}-trustedProxies-label`,"aria-describedby":`${o}-trustedProxies-hint${s?` ${o}-trustedProxies-error`:``}`,"aria-invalid":!!s,children:(0,V.jsx)(q7,{value:e.trustedProxies,disabled:n,placeholder:`192.168.0.0/24`,inputAriaLabel:a(`config_management.visual.serverExtras.trustedProxies.label`),onChange:e=>i({trustedProxies:e})})})})}),(0,V.jsx)(Kb,{label:a(`config_management.visual.sections.tls.title`),hint:a(`config_management.visual.sections.tls.description`),defaultOpen:!1,children:(0,V.jsxs)(JV,{children:[(0,V.jsx)(Y,{fieldId:`tlsEnable`,children:(0,V.jsx)(KV,{title:a(`config_management.visual.sections.tls.enable`),description:a(`config_management.visual.sections.tls.enable_desc`),checked:e.tlsEnable,disabled:n,onChange:e=>i({tlsEnable:e})})}),e.tlsEnable?(0,V.jsxs)(V.Fragment,{children:[(0,V.jsx)(YV,{}),(0,V.jsxs)(qV,{children:[(0,V.jsx)(Y,{fieldId:`tlsCert`,children:(0,V.jsx)(ds,{label:a(`config_management.visual.sections.tls.cert`),placeholder:`/path/to/cert.pem`,value:e.tlsCert,onChange:e=>i({tlsCert:e.target.value}),disabled:n})}),(0,V.jsx)(Y,{fieldId:`tlsKey`,children:(0,V.jsx)(ds,{label:a(`config_management.visual.sections.tls.key`),placeholder:`/path/to/key.pem`,value:e.tlsKey,onChange:e=>i({tlsKey:e.target.value}),disabled:n})})]})]}):null]})}),(0,V.jsx)(Kb,{label:a(`config_management.visual.sections.remote.title`),hint:a(`config_management.visual.sections.remote.description`),defaultOpen:!1,children:(0,V.jsxs)(JV,{children:[(0,V.jsxs)(qV,{children:[(0,V.jsx)(Y,{fieldId:`rmAllowRemote`,children:(0,V.jsx)(KV,{title:a(`config_management.visual.sections.remote.allow_remote`),description:a(`config_management.visual.sections.remote.allow_remote_desc`),checked:e.rmAllowRemote,disabled:n,onChange:e=>i({rmAllowRemote:e})})}),(0,V.jsx)(Y,{fieldId:`rmDisableControlPanel`,children:(0,V.jsx)(KV,{title:a(`config_management.visual.sections.remote.disable_panel`),description:a(`config_management.visual.sections.remote.disable_panel_desc`),checked:e.rmDisableControlPanel,disabled:n,onChange:e=>i({rmDisableControlPanel:e})})}),(0,V.jsx)(Y,{fieldId:`rmDisableAutoUpdatePanel`,children:(0,V.jsx)(KV,{title:a(`config_management.visual.sections.remote.disable_auto_update_panel`),description:a(`config_management.visual.sections.remote.disable_auto_update_panel_desc`),checked:e.rmDisableAutoUpdatePanel,disabled:n,onChange:e=>i({rmDisableAutoUpdatePanel:e})})})]}),(0,V.jsxs)(qV,{children:[(0,V.jsx)(Y,{fieldId:`rmSecretKey`,children:(0,V.jsx)(ds,{label:a(`config_management.visual.sections.remote.secret_key`),type:`password`,placeholder:a(`config_management.visual.sections.remote.secret_key_placeholder`),value:e.rmSecretKey,onChange:e=>i({rmSecretKey:e.target.value}),disabled:n})}),(0,V.jsx)(Y,{fieldId:`rmPanelRepo`,children:(0,V.jsx)(ds,{label:a(`config_management.visual.sections.remote.panel_repo`),placeholder:`https://github.com/router-for-me/Cli-Proxy-API-Management-Center`,value:e.rmPanelRepo,onChange:e=>i({rmPanelRepo:e.target.value}),disabled:n})})]})]})}),(0,V.jsx)(vie,{values:e,validationErrors:t,disabled:n,onChange:i})]})})}var xie=dV.logging;function Sie({values:e,validationErrors:t,disabled:n,animateIn:r,onChange:i}){let{t:a}=B(),o=J7(a,t?.logsMaxTotalSizeMb),s=J7(a,t?.errorLogsMaxFiles),c=J7(a,t?.redisUsageQueueRetentionSeconds);return(0,V.jsx)(G7,{indexLabel:uV.logging,icon:(0,V.jsx)(xie,{size:16}),title:a(`config_management.visual.sections.logging.title`),description:a(`config_management.visual.sections.logging.description`),animateIn:r,children:(0,V.jsxs)(JV,{children:[(0,V.jsxs)(qV,{children:[(0,V.jsx)(y9,{values:e,disabled:n,onChange:i}),(0,V.jsx)(Y,{fieldId:`commercialMode`,children:(0,V.jsx)(KV,{title:a(`config_management.visual.sections.system.commercial_mode`),description:a(`config_management.visual.sections.system.commercial_mode_desc`),checked:e.commercialMode,disabled:n,onChange:e=>i({commercialMode:e})})}),(0,V.jsx)(b9,{values:e,disabled:n,onChange:i})]}),(0,V.jsxs)(qV,{children:[(0,V.jsx)(Y,{fieldId:`logsMaxTotalSizeMb`,children:(0,V.jsx)(ds,{label:a(`config_management.visual.sections.system.logs_max_size`),type:`number`,placeholder:`0`,value:e.logsMaxTotalSizeMb,onChange:e=>i({logsMaxTotalSizeMb:e.target.value}),disabled:n,error:o})}),(0,V.jsx)(Y,{fieldId:`errorLogsMaxFiles`,children:(0,V.jsx)(ds,{label:a(`config_management.visual.sections.system.error_logs_max_files`),type:`number`,placeholder:`10`,value:e.errorLogsMaxFiles,onChange:e=>i({errorLogsMaxFiles:e.target.value}),disabled:n,error:s})}),(0,V.jsx)(Y,{fieldId:`redisUsageQueueRetentionSeconds`,children:(0,V.jsx)(ds,{label:a(`config_management.visual.sections.system.redis_usage_retention`),type:`number`,min:1,max:3600,placeholder:`60`,value:e.redisUsageQueueRetentionSeconds,onChange:e=>i({redisUsageQueueRetentionSeconds:e.target.value}),disabled:n,hint:a(`config_management.visual.sections.system.redis_usage_retention_hint`),error:c})})]}),(0,V.jsx)(qV,{children:(0,V.jsx)(Y,{fieldId:`usageStatisticsEnabled`,children:(0,V.jsx)(KV,{title:a(`config_management.visual.sections.system.usage_statistics_enabled`),description:a(`config_management.visual.sections.system.usage_statistics_enabled_desc`),checked:e.usageStatisticsEnabled,disabled:n,onChange:e=>i({usageStatisticsEnabled:e})})})})]})})}var Cie=dV.network;function wie({values:e,validationErrors:t,disabled:n,animateIn:r,onChange:i}){let{t:a}=B(),o=(0,y.useId)(),s=`${o}-hint`,c=(0,y.useId)(),l=`${c}-hint`,u=J7(a,t?.requestRetry),d=J7(a,t?.maxRetryCredentials),f=J7(a,t?.maxRetryInterval),p=J7(a,t?.authAutoRefreshWorkers),m=[{value:`false`,label:a(`config_management.visual.sections.network.disable_image_generation_false`)},{value:`true`,label:a(`config_management.visual.sections.network.disable_image_generation_true`)},{value:`chat`,label:a(`config_management.visual.sections.network.disable_image_generation_chat`)},{value:`passthrough`,label:a(`config_management.visual.sections.network.disable_image_generation_passthrough`)}];return(0,V.jsx)(G7,{indexLabel:uV.network,icon:(0,V.jsx)(Cie,{size:16}),title:a(`config_management.visual.sections.network.title`),description:a(`config_management.visual.sections.network.description`),animateIn:r,children:(0,V.jsxs)(JV,{children:[(0,V.jsxs)(qV,{children:[(0,V.jsx)(g9,{values:e,disabled:n,onChange:i}),(0,V.jsx)(Y,{fieldId:`requestRetry`,children:(0,V.jsx)(ds,{label:a(`config_management.visual.sections.network.request_retry`),topExtra:(0,V.jsx)(_9,{}),type:`number`,placeholder:`3`,value:e.requestRetry,onChange:e=>i({requestRetry:e.target.value}),disabled:n,error:u})}),(0,V.jsx)(Y,{fieldId:`maxRetryCredentials`,children:(0,V.jsx)(ds,{label:a(`config_management.visual.sections.network.max_retry_credentials`),topExtra:(0,V.jsx)(_9,{}),type:`number`,placeholder:`0`,value:e.maxRetryCredentials,onChange:e=>i({maxRetryCredentials:e.target.value}),disabled:n,hint:a(`config_management.visual.sections.network.max_retry_credentials_hint`),error:d})}),(0,V.jsx)(Y,{fieldId:`maxRetryInterval`,children:(0,V.jsx)(ds,{label:a(`config_management.visual.sections.network.max_retry_interval`),type:`number`,placeholder:`30`,value:e.maxRetryInterval,onChange:e=>i({maxRetryInterval:e.target.value}),disabled:n,hint:a(`config_management.visual.sections.network.max_retry_interval_hint`),error:f})}),(0,V.jsx)(Y,{fieldId:`authAutoRefreshWorkers`,children:(0,V.jsx)(ds,{label:a(`config_management.visual.sections.network.auth_auto_refresh_workers`),type:`number`,placeholder:`16`,value:e.authAutoRefreshWorkers,onChange:e=>i({authAutoRefreshWorkers:e.target.value}),disabled:n,hint:a(`config_management.visual.sections.network.auth_auto_refresh_workers_hint`),error:p})}),(0,V.jsx)(Y,{fieldId:`routingStrategy`,children:(0,V.jsx)(QV,{label:a(`config_management.visual.sections.network.routing_strategy`),labelId:o,hint:a(`config_management.visual.sections.network.routing_strategy_hint`),hintId:s,children:(0,V.jsx)(_c,{value:e.routingStrategy,options:[{value:`round-robin`,label:a(`config_management.visual.sections.network.strategy_round_robin`)},{value:`weighted-round-robin`,label:a(`config_management.visual.sections.network.strategy_weighted_round_robin`)},{value:`fill-first`,label:a(`config_management.visual.sections.network.strategy_fill_first`)}],id:`${o}-select`,disabled:n,ariaLabelledBy:o,ariaDescribedBy:s,onChange:e=>i({routingStrategy:e})})})}),(0,V.jsx)(Y,{fieldId:`disableImageGeneration`,children:(0,V.jsx)(QV,{label:a(`config_management.visual.sections.network.disable_image_generation`),labelId:c,hint:a(`config_management.visual.sections.network.disable_image_generation_hint`),hintId:l,children:(0,V.jsx)(_c,{value:e.disableImageGeneration,options:m,id:`${c}-select`,disabled:n,ariaLabelledBy:c,ariaDescribedBy:l,onChange:e=>i({disableImageGeneration:e})})})}),(0,V.jsx)(Y,{fieldId:`gptImage2BaseModel`,children:(0,V.jsx)(ds,{label:a(`config_management.visual.sections.network.gpt_image_2_base_model`),placeholder:`gpt-5.4-mini`,value:e.gptImage2BaseModel,onChange:e=>i({gptImage2BaseModel:e.target.value}),disabled:n,hint:a(`config_management.visual.sections.network.gpt_image_2_base_model_hint`)})}),(0,V.jsx)(Y,{fieldId:`routingSessionAffinityTTL`,children:(0,V.jsx)(ds,{label:a(`config_management.visual.sections.network.session_affinity_ttl`),placeholder:`1h`,value:e.routingSessionAffinityTTL,onChange:e=>i({routingSessionAffinityTTL:e.target.value}),disabled:n})})]}),(0,V.jsxs)(qV,{children:[(0,V.jsx)(Y,{fieldId:`routingSessionAffinitySubagents`,children:(0,V.jsx)(KV,{title:a(`config_management.visual.additions.routingSessionAffinitySubagents.label`),description:a(`config_management.visual.additions.routingSessionAffinitySubagents.hint`),checked:e.routingSessionAffinitySubagents,disabled:n,onChange:e=>i({routingSessionAffinitySubagents:e})})}),(0,V.jsx)(Y,{fieldId:`saveCooldownStatus`,children:(0,V.jsx)(KV,{title:a(`config_management.visual.additions.saveCooldownStatus.label`),description:a(`config_management.visual.additions.saveCooldownStatus.hint`),checked:e.saveCooldownStatus,disabled:n,onChange:e=>i({saveCooldownStatus:e})})}),(0,V.jsx)(Y,{fieldId:`transientErrorCooldownSeconds`,children:(0,V.jsx)(ds,{label:a(`config_management.visual.additions.transientErrorCooldownSeconds.label`),hint:a(`config_management.visual.additions.transientErrorCooldownSeconds.hint`),type:`number`,value:e.transientErrorCooldownSeconds,onChange:e=>i({transientErrorCooldownSeconds:e.target.value}),disabled:n,error:J7(a,t?.transientErrorCooldownSeconds)})}),(0,V.jsx)(Y,{fieldId:`videoResultAuthCacheTTL`,children:(0,V.jsx)(ds,{label:a(`config_management.visual.additions.videoResultAuthCacheTTL.label`),hint:a(`config_management.visual.additions.videoResultAuthCacheTTL.hint`),type:`text`,value:e.videoResultAuthCacheTTL,onChange:e=>i({videoResultAuthCacheTTL:e.target.value}),disabled:n,error:J7(a,t?.videoResultAuthCacheTTL)})}),(0,V.jsx)(Y,{fieldId:`forceModelPrefix`,children:(0,V.jsx)(KV,{title:a(`config_management.visual.sections.network.force_model_prefix`),description:a(`config_management.visual.sections.network.force_model_prefix_desc`),checked:e.forceModelPrefix,disabled:n,onChange:e=>i({forceModelPrefix:e})})}),(0,V.jsx)(Y,{fieldId:`passthroughHeaders`,children:(0,V.jsx)(KV,{title:a(`config_management.visual.sections.network.passthrough_headers`),description:a(`config_management.visual.sections.network.passthrough_headers_desc`),checked:e.passthroughHeaders,disabled:n,onChange:e=>i({passthroughHeaders:e})})}),(0,V.jsx)(Y,{fieldId:`disableCooling`,children:(0,V.jsx)(KV,{title:a(`config_management.visual.sections.network.disable_cooling`),description:a(`config_management.visual.sections.network.disable_cooling_desc`),checked:e.disableCooling,disabled:n,onChange:e=>i({disableCooling:e})})}),(0,V.jsx)(Y,{fieldId:`routingSessionAffinity`,children:(0,V.jsx)(KV,{title:a(`config_management.visual.sections.network.session_affinity`),checked:e.routingSessionAffinity,disabled:n,onChange:e=>i({routingSessionAffinity:e})})}),(0,V.jsx)(Y,{fieldId:`wsAuth`,children:(0,V.jsx)(KV,{title:a(`config_management.visual.sections.network.ws_auth`),description:a(`config_management.visual.sections.network.ws_auth_desc`),checked:e.wsAuth,disabled:n,onChange:e=>i({wsAuth:e})})})]})]})})}var Tie=(0,y.memo)(function({value:e,disabled:t,onChange:n}){let{t:r}=B(),i=e,a=(0,y.useMemo)(()=>Y7(r,i),[i,r]),o=()=>n([...i,{id:az(),models:[],params:[]}]),s=e=>n(i.filter((t,n)=>n!==e)),c=(e,t)=>n(i.map((n,r)=>r===e?{...n,...t}:n)),l=e=>{let t=i[e],n={id:az(),name:``,protocol:void 0};c(e,{models:[...t.models,n]})},u=(e,t)=>{let n=i[e];c(e,{models:n.models.filter((e,n)=>n!==t)})},d=(e,t,n)=>{let r=i[e];c(e,{models:r.models.map((e,r)=>r===t?{...e,...n}:e)})};return(0,V.jsxs)(`div`,{className:Q.blockStack,children:[i.map((e,n)=>(0,V.jsxs)(`div`,{className:Q.ruleCard,children:[(0,V.jsxs)(`div`,{className:Q.ruleCardHeader,children:[(0,V.jsxs)(`div`,{className:Q.ruleCardTitle,children:[r(`config_management.visual.payload_rules.rule`),` `,n+1]}),(0,V.jsx)(H,{variant:`ghost`,size:`sm`,onClick:()=>s(n),disabled:t,children:r(`config_management.visual.common.delete`)})]}),(0,V.jsxs)(`div`,{className:Q.blockStack,children:[(0,V.jsx)(`div`,{className:Q.blockLabel,children:r(`config_management.visual.payload_rules.models`)}),e.models.map((e,i)=>(0,V.jsxs)(`div`,{className:Q.payloadFilterModelRow,children:[(0,V.jsx)(K7,{placeholder:r(`config_management.visual.payload_rules.model_name`),ariaLabel:r(`config_management.visual.payload_rules.model_name`),value:e.name,onChange:e=>d(n,i,{name:e}),disabled:t}),(0,V.jsx)(_c,{value:e.protocol??``,options:a,disabled:t,ariaLabel:r(`config_management.visual.payload_rules.provider_type`),onChange:e=>d(n,i,{protocol:e||void 0})}),(0,V.jsx)(H,{variant:`ghost`,size:`sm`,className:Q.payloadRowActionButton,onClick:()=>u(n,i),disabled:t,children:r(`config_management.visual.common.delete`)})]},e.id)),(0,V.jsx)(`div`,{className:Q.actionRow,children:(0,V.jsx)(H,{variant:`secondary`,size:`sm`,onClick:()=>l(n),disabled:t,children:r(`config_management.visual.payload_rules.add_model`)})})]}),(0,V.jsxs)(`div`,{className:Q.blockStack,children:[(0,V.jsx)(`div`,{className:Q.blockLabel,children:r(`config_management.visual.payload_rules.remove_params`)}),(0,V.jsx)(q7,{value:e.params,disabled:t,placeholder:r(`config_management.visual.payload_rules.json_path_filter`),inputAriaLabel:r(`config_management.visual.payload_rules.json_path_filter`),onChange:e=>c(n,{params:e})})]})]},e.id)),i.length===0&&(0,V.jsx)(`div`,{className:Q.emptyState,children:r(`config_management.visual.payload_rules.no_rules`)}),(0,V.jsx)(`div`,{className:Q.actionRow,children:(0,V.jsx)(H,{variant:`secondary`,size:`sm`,onClick:o,disabled:t,children:r(`config_management.visual.payload_rules.add_rule`)})})]})});function Eie(e){return!!(e.fromProtocol||(e.headers?.length??0)>0||(e.match?.length??0)>0||(e.notMatch?.length??0)>0||(e.exist?.length??0)>0||(e.notExist?.length??0)>0)}var C9=(0,y.memo)(function({value:e,disabled:t,protocolFirst:n=!1,rawJsonValues:r=!1,onChange:i}){let{t:a}=B(),o=e,s=(0,y.useMemo)(()=>Y7(a,o),[o,a]),c=(0,y.useMemo)(()=>[{value:``,label:a(`config_management.visual.payload_rules.provider_default`)},{value:`openai`,label:a(`config_management.visual.payload_rules.provider_openai`)},{value:`responses`,label:a(`config_management.visual.payload_rules.provider_responses`)},{value:`gemini`,label:a(`config_management.visual.payload_rules.provider_gemini`)},{value:`claude`,label:a(`config_management.visual.payload_rules.provider_claude`)}],[a]),l=(0,y.useMemo)(()=>sV.map(e=>({value:e.value,label:a(e.labelKey,{defaultValue:e.defaultLabel})})),[a]),u=(0,y.useMemo)(()=>[{value:`true`,label:a(`config_management.visual.payload_rules.boolean_true`)},{value:`false`,label:a(`config_management.visual.payload_rules.boolean_false`)}],[a]),[d,f]=(0,y.useState)({}),p=()=>i([...o,{id:az(),models:[],params:[]}]),m=e=>i(o.filter((t,n)=>n!==e)),h=(e,t)=>i(o.map((n,r)=>r===e?{...n,...t}:n)),g=e=>{let t=o[e],n={id:az(),name:``,protocol:void 0};h(e,{models:[...t.models,n]})},_=(e,t)=>{let n=o[e];h(e,{models:n.models.filter((e,n)=>n!==t)})},v=(e,t,n)=>{let r=o[e];h(e,{models:r.models.map((e,r)=>r===t?{...e,...n}:e)})},b=(e,t)=>{f(n=>({...n,[e]:!(n[e]??t)}))},x=(e,t)=>{let n=o[e].models[t];v(e,t,{headers:[...n.headers??[],{id:az(),name:``,value:``}]})},S=(e,t,n,r)=>{let i=o[e].models[t];v(e,t,{headers:(i.headers??[]).map((e,t)=>t===n?{...e,...r}:e)})},C=(e,t,n)=>{let r=o[e].models[t];v(e,t,{headers:(r.headers??[]).filter((e,t)=>t!==n)})},w=(e,t,n)=>{let r=o[e].models[t];v(e,t,{[n]:[...r[n]??[],{id:az(),path:``,valueType:`string`,value:``}]})},T=(e,t,n,r,i)=>{let a=o[e].models[t];v(e,t,{[n]:(a[n]??[]).map((e,t)=>t===r?{...e,...i}:e)})},E=(e,t,n,r)=>{let i=o[e].models[t];v(e,t,{[n]:(i[n]??[]).filter((e,t)=>t!==r)})},D=e=>{let t=o[e],n={id:az(),path:``,valueType:r?`json`:`string`,value:``};h(e,{params:[...t.params,n]})},O=(e,t)=>{let n=o[e];h(e,{params:n.params.filter((e,n)=>n!==t)})},k=(e,t,n)=>{let r=o[e];h(e,{params:r.params.map((e,r)=>r===t?{...e,...n}:e)})},A=e=>{switch(e){case`string`:return a(`config_management.visual.payload_rules.value_string`);case`number`:return a(`config_management.visual.payload_rules.value_number`);case`boolean`:return a(`config_management.visual.payload_rules.value_boolean`);case`json`:return a(`config_management.visual.payload_rules.value_json`);default:return a(`config_management.visual.payload_rules.value_default`)}},j=e=>{let t=aB(r?{...e,valueType:`json`}:e);return J7(a,t)},M=(e,n,r,i,o)=>o.valueType===`boolean`?(0,V.jsx)(_c,{value:o.value.toLowerCase()===`true`||o.value.toLowerCase()===`false`?o.value.toLowerCase():``,options:u,placeholder:a(`config_management.visual.payload_rules.value_boolean`),disabled:t,ariaLabel:a(`config_management.visual.payload_rules.condition_value`),onChange:t=>T(e,n,r,i,{value:t})}):o.valueType===`json`?(0,V.jsx)(`textarea`,{className:`input ${Q.payloadJsonInput}`,placeholder:A(o.valueType),"aria-label":a(`config_management.visual.payload_rules.condition_value`),value:o.value,onChange:t=>T(e,n,r,i,{value:t.target.value}),disabled:t}):(0,V.jsx)(K7,{placeholder:A(o.valueType),ariaLabel:a(`config_management.visual.payload_rules.condition_value`),value:o.value,onChange:t=>T(e,n,r,i,{value:t}),disabled:t}),N=(e,n,i)=>r?(0,V.jsx)(`textarea`,{className:`input ${Q.payloadJsonInput}`,placeholder:a(`config_management.visual.payload_rules.value_raw_json`),"aria-label":a(`config_management.visual.payload_rules.param_value`),value:i.value,onChange:t=>k(e,n,{value:t.target.value,valueType:`json`}),disabled:t}):i.valueType===`boolean`?(0,V.jsx)(_c,{value:i.value.toLowerCase()===`true`||i.value.toLowerCase()===`false`?i.value.toLowerCase():``,options:u,placeholder:a(`config_management.visual.payload_rules.value_boolean`),disabled:t,ariaLabel:a(`config_management.visual.payload_rules.param_value`),onChange:t=>k(e,n,{value:t})}):i.valueType===`json`?(0,V.jsx)(`textarea`,{className:`input ${Q.payloadJsonInput}`,placeholder:A(i.valueType),"aria-label":a(`config_management.visual.payload_rules.param_value`),value:i.value,onChange:t=>k(e,n,{value:t.target.value}),disabled:t}):(0,V.jsx)(K7,{placeholder:A(i.valueType),ariaLabel:a(`config_management.visual.payload_rules.param_value`),value:i.value,onChange:t=>k(e,n,{value:t}),disabled:t});return(0,V.jsxs)(`div`,{className:Q.blockStack,children:[o.map((e,i)=>(0,V.jsxs)(`div`,{className:Q.ruleCard,children:[(0,V.jsxs)(`div`,{className:Q.ruleCardHeader,children:[(0,V.jsxs)(`div`,{className:Q.ruleCardTitle,children:[a(`config_management.visual.payload_rules.rule`),` `,i+1]}),(0,V.jsx)(H,{variant:`ghost`,size:`sm`,onClick:()=>m(i),disabled:t,children:a(`config_management.visual.common.delete`)})]}),(0,V.jsxs)(`div`,{className:Q.blockStack,children:[(0,V.jsx)(`div`,{className:Q.blockLabel,children:a(`config_management.visual.payload_rules.models`)}),(e.models.length?e.models:[]).map((e,r)=>{let o=Eie(e),u=d[e.id]??o;return(0,V.jsxs)(`div`,{className:Q.payloadModelGroup,children:[(0,V.jsxs)(`div`,{className:[Q.payloadRuleModelRow,n?Q.payloadRuleModelRowProtocolFirst:``].filter(Boolean).join(` `),children:[n?(0,V.jsxs)(V.Fragment,{children:[(0,V.jsx)(_c,{value:e.protocol??``,options:s,disabled:t,ariaLabel:a(`config_management.visual.payload_rules.provider_type`),onChange:e=>v(i,r,{protocol:e||void 0})}),(0,V.jsx)(K7,{placeholder:a(`config_management.visual.payload_rules.model_name`),ariaLabel:a(`config_management.visual.payload_rules.model_name`),value:e.name,onChange:e=>v(i,r,{name:e}),disabled:t})]}):(0,V.jsxs)(V.Fragment,{children:[(0,V.jsx)(K7,{placeholder:a(`config_management.visual.payload_rules.model_name`),ariaLabel:a(`config_management.visual.payload_rules.model_name`),value:e.name,onChange:e=>v(i,r,{name:e}),disabled:t}),(0,V.jsx)(_c,{value:e.protocol??``,options:s,disabled:t,ariaLabel:a(`config_management.visual.payload_rules.provider_type`),onChange:e=>v(i,r,{protocol:e||void 0})})]}),(0,V.jsx)(H,{variant:`secondary`,size:`sm`,className:Q.payloadRowActionButton,onClick:()=>b(e.id,o),disabled:t,children:a(u?`config_management.visual.payload_rules.hide_advanced`:`config_management.visual.payload_rules.advanced`)}),(0,V.jsx)(H,{variant:`ghost`,size:`sm`,className:Q.payloadRowActionButton,onClick:()=>_(i,r),disabled:t,children:a(`config_management.visual.common.delete`)})]}),u?(0,V.jsxs)(`div`,{className:Q.payloadModelAdvanced,children:[(0,V.jsx)(`div`,{className:Q.payloadAdvancedGrid,children:(0,V.jsx)(QV,{label:a(`config_management.visual.payload_rules.from_protocol`),children:(0,V.jsx)(_c,{value:e.fromProtocol??``,options:c,disabled:t,ariaLabel:a(`config_management.visual.payload_rules.from_protocol`),onChange:e=>v(i,r,{fromProtocol:e||void 0})})})}),(0,V.jsxs)(`div`,{className:Q.blockStack,children:[(0,V.jsx)(`div`,{className:Q.blockLabel,children:a(`config_management.visual.payload_rules.headers`)}),(e.headers??[]).map((e,n)=>(0,V.jsxs)(`div`,{className:Q.payloadHeaderRow,children:[(0,V.jsx)(K7,{placeholder:a(`config_management.visual.payload_rules.header_name`),ariaLabel:a(`config_management.visual.payload_rules.header_name`),value:e.name,onChange:e=>S(i,r,n,{name:e}),disabled:t}),(0,V.jsx)(K7,{placeholder:a(`config_management.visual.payload_rules.header_value`),ariaLabel:a(`config_management.visual.payload_rules.header_value`),value:e.value,onChange:e=>S(i,r,n,{value:e}),disabled:t}),(0,V.jsx)(H,{variant:`ghost`,size:`sm`,className:Q.payloadRowActionButton,onClick:()=>C(i,r,n),disabled:t,children:a(`config_management.visual.common.delete`)})]},e.id)),(0,V.jsx)(`div`,{className:Q.actionRow,children:(0,V.jsx)(H,{variant:`secondary`,size:`sm`,onClick:()=>x(i,r),disabled:t,children:a(`config_management.visual.payload_rules.add_header`)})})]}),[`match`,`notMatch`].map(n=>(0,V.jsxs)(`div`,{className:Q.blockStack,children:[(0,V.jsx)(`div`,{className:Q.blockLabel,children:a(`config_management.visual.payload_rules.${n}`)}),(e[n]??[]).map((e,o)=>{let s=J7(a,aB(e));return(0,V.jsxs)(`div`,{className:Q.payloadRuleParamGroup,children:[(0,V.jsxs)(`div`,{className:Q.payloadRuleParamRow,children:[(0,V.jsx)(K7,{placeholder:a(`config_management.visual.payload_rules.condition_path`),ariaLabel:a(`config_management.visual.payload_rules.condition_path`),value:e.path,onChange:e=>T(i,r,n,o,{path:e}),disabled:t}),(0,V.jsx)(_c,{value:e.valueType,options:l,disabled:t,ariaLabel:a(`config_management.visual.payload_rules.param_type`),onChange:t=>T(i,r,n,o,{valueType:t,value:t===`boolean`?`true`:t===`json`&&e.value.trim()===``?`{}`:e.value})}),M(i,r,n,o,e),(0,V.jsx)(H,{variant:`ghost`,size:`sm`,className:Q.payloadRowActionButton,onClick:()=>E(i,r,n,o),disabled:t,children:a(`config_management.visual.common.delete`)})]}),s?(0,V.jsx)(`div`,{className:`error-box ${Q.payloadParamError}`,children:s}):null]},e.id)}),(0,V.jsx)(`div`,{className:Q.actionRow,children:(0,V.jsx)(H,{variant:`secondary`,size:`sm`,onClick:()=>w(i,r,n),disabled:t,children:a(`config_management.visual.payload_rules.add_condition`)})})]},n)),(0,V.jsxs)(`div`,{className:Q.payloadAdvancedGrid,children:[(0,V.jsxs)(`div`,{className:Q.blockStack,children:[(0,V.jsx)(`div`,{className:Q.blockLabel,children:a(`config_management.visual.payload_rules.exist`)}),(0,V.jsx)(q7,{value:e.exist??[],disabled:t,placeholder:a(`config_management.visual.payload_rules.condition_path`),inputAriaLabel:a(`config_management.visual.payload_rules.condition_path`),onChange:e=>v(i,r,{exist:e})})]}),(0,V.jsxs)(`div`,{className:Q.blockStack,children:[(0,V.jsx)(`div`,{className:Q.blockLabel,children:a(`config_management.visual.payload_rules.notExist`)}),(0,V.jsx)(q7,{value:e.notExist??[],disabled:t,placeholder:a(`config_management.visual.payload_rules.condition_path`),inputAriaLabel:a(`config_management.visual.payload_rules.condition_path`),onChange:e=>v(i,r,{notExist:e})})]})]})]}):null]},e.id)}),(0,V.jsx)(`div`,{className:Q.actionRow,children:(0,V.jsx)(H,{variant:`secondary`,size:`sm`,onClick:()=>g(i),disabled:t,children:a(`config_management.visual.payload_rules.add_model`)})})]}),(0,V.jsxs)(`div`,{className:Q.blockStack,children:[(0,V.jsx)(`div`,{className:Q.blockLabel,children:a(`config_management.visual.payload_rules.params`)}),(e.params.length?e.params:[]).map((e,n)=>{let o=j(e);return(0,V.jsxs)(`div`,{className:Q.payloadRuleParamGroup,children:[(0,V.jsxs)(`div`,{className:[Q.payloadRuleParamRow,r?Q.payloadRuleRawParamRow:``].filter(Boolean).join(` `),children:[(0,V.jsx)(K7,{placeholder:a(`config_management.visual.payload_rules.json_path`),ariaLabel:a(`config_management.visual.payload_rules.json_path`),value:e.path,onChange:e=>k(i,n,{path:e}),disabled:t}),r?null:(0,V.jsx)(_c,{value:e.valueType,options:l,disabled:t,ariaLabel:a(`config_management.visual.payload_rules.param_type`),onChange:t=>k(i,n,{valueType:t,value:t===`boolean`?`true`:t===`json`&&e.value.trim()===``?`{}`:e.value})}),N(i,n,e),(0,V.jsx)(H,{variant:`ghost`,size:`sm`,className:Q.payloadRowActionButton,onClick:()=>O(i,n),disabled:t,children:a(`config_management.visual.common.delete`)})]}),o&&(0,V.jsx)(`div`,{className:`error-box ${Q.payloadParamError}`,children:o})]},e.id)}),(0,V.jsx)(`div`,{className:Q.actionRow,children:(0,V.jsx)(H,{variant:`secondary`,size:`sm`,onClick:()=>D(i),disabled:t,children:a(`config_management.visual.payload_rules.add_param`)})})]})]},e.id)),o.length===0&&(0,V.jsx)(`div`,{className:Q.emptyState,children:a(`config_management.visual.payload_rules.no_rules`)}),(0,V.jsx)(`div`,{className:Q.actionRow,children:(0,V.jsx)(H,{variant:`secondary`,size:`sm`,onClick:p,disabled:t,children:a(`config_management.visual.payload_rules.add_rule`)})})]})}),Die=dV.payload;function Oie({values:e,disabled:t,animateIn:n,hasPayloadValidationErrors:r,onChange:i}){let{t:a}=B(),o=r?`payload-errors`:`payload-ok`,s=(0,y.useCallback)(e=>i({payloadDefaultRules:e}),[i]),c=(0,y.useCallback)(e=>i({payloadDefaultRawRules:e}),[i]),l=(0,y.useCallback)(e=>i({payloadOverrideRules:e}),[i]),u=(0,y.useCallback)(e=>i({payloadOverrideRawRules:e}),[i]),d=(0,y.useCallback)(e=>i({payloadFilterRules:e}),[i]);return(0,V.jsx)(G7,{indexLabel:uV.payload,icon:(0,V.jsx)(Die,{size:16}),title:a(`config_management.visual.sections.payload.title`),description:a(`config_management.visual.sections.payload.description`),animateIn:n,children:(0,V.jsxs)(JV,{children:[(0,V.jsx)(Y,{fieldId:`payloadDefaultRules`,children:(0,V.jsx)(Kb,{label:a(`config_management.visual.sections.payload.default_rules`),hint:a(`config_management.visual.sections.payload.default_rules_desc`),defaultOpen:r,children:(0,V.jsx)(C9,{value:e.payloadDefaultRules,disabled:t,onChange:s})},`payloadDefaultRules-${o}`)}),(0,V.jsx)(Y,{fieldId:`payloadDefaultRawRules`,children:(0,V.jsx)(Kb,{label:a(`config_management.visual.sections.payload.default_raw_rules`),hint:a(`config_management.visual.sections.payload.default_raw_rules_desc`),defaultOpen:r,children:(0,V.jsx)(C9,{value:e.payloadDefaultRawRules,disabled:t,rawJsonValues:!0,onChange:c})},`payloadDefaultRawRules-${o}`)}),(0,V.jsx)(Y,{fieldId:`payloadOverrideRules`,children:(0,V.jsx)(Kb,{label:a(`config_management.visual.sections.payload.override_rules`),hint:a(`config_management.visual.sections.payload.override_rules_desc`),defaultOpen:r,children:(0,V.jsx)(C9,{value:e.payloadOverrideRules,disabled:t,protocolFirst:!0,onChange:l})},`payloadOverrideRules-${o}`)}),(0,V.jsx)(Y,{fieldId:`payloadOverrideRawRules`,children:(0,V.jsx)(Kb,{label:a(`config_management.visual.sections.payload.override_raw_rules`),hint:a(`config_management.visual.sections.payload.override_raw_rules_desc`),defaultOpen:r,children:(0,V.jsx)(C9,{value:e.payloadOverrideRawRules,disabled:t,protocolFirst:!0,rawJsonValues:!0,onChange:u})},`payloadOverrideRawRules-${o}`)}),(0,V.jsx)(Y,{fieldId:`payloadFilterRules`,children:(0,V.jsx)(Kb,{label:a(`config_management.visual.sections.payload.filter_rules`),hint:a(`config_management.visual.sections.payload.filter_rules_desc`),defaultOpen:r,children:(0,V.jsx)(Tie,{value:e.payloadFilterRules,disabled:t,onChange:d})},`payloadFilterRules-${o}`)})]})})}var kie=dV.quota;function Aie({values:e,disabled:t,animateIn:n,onChange:r}){let{t:i}=B();return(0,V.jsx)(G7,{indexLabel:uV.quota,icon:(0,V.jsx)(kie,{size:16}),title:i(`config_management.visual.sections.quota.title`),description:i(`config_management.visual.sections.quota.description`),animateIn:n,children:(0,V.jsxs)(qV,{children:[(0,V.jsx)(x9,{values:e,disabled:t,onChange:r}),(0,V.jsx)(S9,{values:e,disabled:t,onChange:r}),(0,V.jsx)(Y,{fieldId:`quotaAntigravityCredits`,children:(0,V.jsx)(KV,{title:i(`config_management.visual.sections.quota.antigravity_credits`),checked:e.quotaAntigravityCredits,disabled:t,onChange:e=>r({quotaAntigravityCredits:e})})})]})})}var jie=dV.streaming;function Mie({values:e,validationErrors:t,disabled:n,animateIn:r,onChange:i}){let{t:a}=B(),o=(0,y.useId)(),s=`${o}-hint`,c=`${o}-error`,l=(0,y.useId)(),u=`${l}-hint`,d=`${l}-error`,f=J7(a,t?.[`streaming.keepaliveSeconds`]),p=J7(a,t?.[`streaming.bootstrapRetries`]),m=J7(a,t?.[`streaming.nonstreamKeepaliveInterval`]),h=!f&&Number(e.streaming.keepaliveSeconds)<=0,g=!m&&Number(e.streaming.nonstreamKeepaliveInterval)<=0;return(0,V.jsx)(G7,{indexLabel:uV.streaming,icon:(0,V.jsx)(jie,{size:16}),title:a(`config_management.visual.sections.streaming.title`),description:a(`config_management.visual.sections.streaming.description`),animateIn:r,children:(0,V.jsxs)(JV,{children:[(0,V.jsxs)(qV,{children:[(0,V.jsx)(Y,{fieldId:`streamingKeepaliveSeconds`,children:(0,V.jsx)(QV,{label:a(`config_management.visual.sections.streaming.keepalive_seconds`),htmlFor:o,hint:a(`config_management.visual.sections.streaming.keepalive_hint`),hintId:s,error:f,errorId:c,children:(0,V.jsxs)(eH,{children:[(0,V.jsx)(`input`,{id:o,className:`input`,type:`number`,placeholder:`0`,value:e.streaming.keepaliveSeconds,onChange:t=>i({streaming:{...e.streaming,keepaliveSeconds:t.target.value}}),disabled:n}),h?(0,V.jsx)(tH,{children:a(`config_management.visual.sections.streaming.disabled`)}):null]})})}),(0,V.jsx)(Y,{fieldId:`streamingBootstrapRetries`,children:(0,V.jsx)(ds,{label:a(`config_management.visual.sections.streaming.bootstrap_retries`),type:`number`,placeholder:`1`,value:e.streaming.bootstrapRetries,onChange:t=>i({streaming:{...e.streaming,bootstrapRetries:t.target.value}}),disabled:n,hint:a(`config_management.visual.sections.streaming.bootstrap_hint`),error:p})})]}),(0,V.jsx)(qV,{children:(0,V.jsx)(Y,{fieldId:`streamingNonstreamKeepalive`,children:(0,V.jsx)(QV,{label:a(`config_management.visual.sections.streaming.nonstream_keepalive`),htmlFor:l,hint:a(`config_management.visual.sections.streaming.nonstream_keepalive_hint`),hintId:u,error:m,errorId:d,children:(0,V.jsxs)(eH,{children:[(0,V.jsx)(`input`,{id:l,className:`input`,type:`number`,placeholder:`0`,value:e.streaming.nonstreamKeepaliveInterval,onChange:t=>i({streaming:{...e.streaming,nonstreamKeepaliveInterval:t.target.value}}),disabled:n}),g?(0,V.jsx)(tH,{children:a(`config_management.visual.sections.streaming.disabled`)}):null]})})})})]})})}var w9={page:`ConfigPage-module__page___DP-JE`,toolbar:`ConfigPage-module__toolbar___3BUzX`,tabsRow:`ConfigPage-module__tabsRow___IN9xM`,panel:`ConfigPage-module__panel___vlPZ-`},Nie=800;function Pie(){let{t:e}=B(),t=fr(),n=hr(),r=(0,y.useMemo)(()=>CV(new URLSearchParams(t.search).get(`field`)),[t.search]),i=Bh(),a=!i||i.isCurrentLayer,o=Jc(e=>e.showNotification),s=Im(e=>e.connectionStatus),c=rl(e=>e.resolvedTheme),l=wF(`(max-width: 768px)`),u=ox(),{visualValues:d,visualDirty:f,visualDirtyFields:p,visualParseError:m,visualValidationErrors:h,visualHasPayloadValidationErrors:g,loadVisualValuesFromYaml:_,rebaseVisualValuesFromYaml:v,applyVisualChangesToYaml:b,setVisualValues:x}=aV(),[S,C]=(0,y.useState)(()=>r?`visual`:FV(localStorage.getItem(_V))),[w,T]=(0,y.useState)(()=>r?.sectionId??IV(localStorage.getItem(`config-management:section`))),E=(0,y.useRef)(null),[D,O]=(0,y.useState)(!0);(0,y.useEffect)(()=>{let e=window.setTimeout(()=>O(!1),Nie);return()=>window.clearTimeout(e)},[]),(0,y.useEffect)(()=>{localStorage.removeItem(yV)},[]);let k=HV({mode:S,visualDirty:f,visualParseError:m,loadVisualValuesFromYaml:_,rebaseVisualValuesFromYaml:v,applyVisualChangesToYaml:b}),A=rH(),j=s!==`connected`,M=!!m,N=S===`visual`&&(Object.values(h).some(Boolean)||g),ee=(0,y.useMemo)(()=>({title:e(`common.unsaved_changes_title`),message:e(`common.unsaved_changes_message`),confirmText:e(`common.confirm`),cancelText:e(`common.cancel`)}),[e]);gw({enabled:a,shouldBlock:k.isDirty,dialog:ee}),(0,y.useEffect)(()=>{S!==`visual`||!m||(C(`source`),localStorage.setItem(_V,`source`),o(e(`config_management.visual_mode_unavailable_detail`,{message:m}),`error`))},[S,o,e,m]);let P=(0,y.useCallback)(t=>{if(t!==S){if(t===`visual`&&k.sourceDirty){o(e(`config_management.source_changes_before_visual`),`warning`);return}if(t===`source`){if(f){let e=b(k.content,`draft`);e!==k.content&&k.syncContentFromVisual(e)}}else if(VV(k.sourceDirty,m)){let t=_(k.content);if(!t.ok){o(e(`config_management.visual_mode_unavailable_detail`,{message:t.error}),`error`);return}}C(t),localStorage.setItem(_V,t)}},[b,k,_,S,o,e,f,m]),F=(0,y.useCallback)(e=>{T(e),localStorage.setItem(vV,e)},[]),{jumpToField:I}=nH({values:d,setActiveSection:F});(0,y.useEffect)(()=>{if(!r||E.current===r.fieldId)return;E.current=r.fieldId,localStorage.setItem(_V,`visual`),I(r);let e=new URLSearchParams(t.search);e.delete(`field`);let i=e.toString();n({pathname:t.pathname,search:i?`?${i}`:``,hash:t.hash},{replace:!0})},[I,t.hash,t.pathname,t.search,n,r]);let L=(0,y.useMemo)(()=>jV(h,g),[g,h]),R=(0,y.useMemo)(()=>AV(p),[p]),te=(0,y.useMemo)(()=>MV(h,g),[g,h]),ne=NV({disconnected:j,loading:k.loading,loadFailed:!!k.error,yamlError:M,validationBlocked:N,saving:k.saving,dirty:k.isDirty}),re=PV({fieldCount:TV,status:ne,dirtyCount:p.size,sourceDirty:k.sourceDirty,errorCount:S===`visual`?te:0}),z=j||k.loading||k.saving||!k.isDirty||k.diffModalOpen||M||N,ie={values:d,validationErrors:h,disabled:j||k.loading||k.saving||k.diffModalOpen||k.recoveryRequired,animateIn:D,onChange:x};return(0,V.jsxs)(`div`,{className:w9.page,ref:u,children:[(0,V.jsx)(aH,{meta:re,reloadDisabled:k.loading||k.saving,reloading:k.loading,onReload:k.handleReload}),k.error&&(0,V.jsx)(`div`,{className:`error-box`,role:`alert`,children:k.error}),!k.error&&m&&(0,V.jsx)(`div`,{className:`error-box`,role:`alert`,children:e(`config_management.visual_mode_unavailable_detail`,{message:m})}),(0,V.jsxs)(`div`,{className:w9.toolbar,"data-reveal":!0,children:[S===`visual`?(0,V.jsx)(sH,{disabled:j||k.loading,onJump:I}):(0,V.jsx)(pre,{search:A,disabled:j||k.loading}),(0,V.jsx)(P1,{mode:S,disabled:k.saving||k.loading||k.diffModalOpen||k.recoveryRequired,onChange:P})]}),S===`visual`?(0,V.jsxs)(V.Fragment,{children:[(0,V.jsx)(`div`,{className:w9.tabsRow,"data-reveal":!0,children:(0,V.jsx)(lH,{active:w,errorCounts:L,dirtyTabs:R,disabled:k.saving||k.loading,onChange:F})}),(0,V.jsx)(`div`,{className:w9.panel,role:`tabpanel`,id:gV(w),"aria-labelledby":hV(w),children:(()=>{switch(w){case`common`:return(0,V.jsx)(_ie,{...ie});case`connectivity`:return(0,V.jsx)(bie,{...ie});case`network`:return(0,V.jsx)(wie,{...ie});case`logging`:return(0,V.jsx)(Sie,{...ie});case`quota`:return(0,V.jsx)(Aie,{...ie});case`streaming`:return(0,V.jsx)(Mie,{...ie});case`advanced`:return(0,V.jsx)(wre,{...ie});case`payload`:return(0,V.jsx)(Oie,{...ie,hasPayloadValidationErrors:g})}})()})]}):(0,V.jsx)(mre,{search:A,value:k.content,onChange:k.handleChange,theme:c,editable:!j&&!k.loading&&!k.saving&&!k.diffModalOpen}),(0,V.jsx)(M1,{visible:a&&k.isDirty,statusText:e(k.recoveryRequired?`config_management.precise_save_recovery_required`:l?ne.shortLabelKey:ne.labelKey),statusTone:ne.tone,saving:k.saving,saveDisabled:z,discardDisabled:k.loading||k.saving,onSave:k.handleSave,onDiscard:k.handleDiscard}),(0,V.jsx)(E1,{open:k.diffModalOpen,original:k.serverYaml,modified:k.mergedYaml,onConfirm:k.handleConfirmSave,onCancel:k.closeDiff,loading:k.saving})]})}function T9(e,t){let[n,r]=(0,y.useState)(()=>{try{let n=window.localStorage.getItem(e);return n?JSON.parse(n):t}catch(n){return console.error(`Error reading localStorage key "${e}":`,n),t}});return[n,(0,y.useCallback)(t=>{r(n=>{let r=t instanceof Function?t(n):t;try{window.localStorage.setItem(e,JSON.stringify(r))}catch(t){console.error(`Error setting localStorage key "${e}":`,t)}return r})},[e])]}var E9=1e4,Fie=8*1024*1024,D9=()=>({buffer:[],bufferStart:0,nextId:0,textUnits:0,evicted:0});function Iie(e){return e?{limit:E9,cursor:e}:{limit:E9}}function Lie(e,t,n,r=E9,i=Fie){let a=!!n&&!t.cursorReset,o=t.lines,s=a?[...e.buffer,...o]:[...o],c=(a?e.textUnits:0)+o.reduce((e,t)=>e+t.length+1,0),l=0;for(;s.length-l>1&&(s.length-l>r||c>i);)c-=s[l].length+1,l++;let u=a?e.bufferStart:e.nextId;return{buffer:s.slice(l),bufferStart:u+l,nextId:e.nextId+o.length,textUnits:c,evicted:(a?e.evicted:0)+l,cursor:t.nextCursor}}function Rie(e,t){return!!(t&&e.nextCursor&&e.nextCursor!==t&&!e.cursorReset&&e.lines.length>=1e4)}function O9(){let e=0;return{capture:()=>e,invalidate:()=>++e,isCurrent:t=>t===e}}function zie(){let e=O9(),t=null,n=!1,r=()=>{e.invalidate(),t=null,n=!1};return{invalidate:r,startRead(r){if(t)return r||(n=!0),null;let i=e.invalidate();return t={id:i,clearing:!1},i},startClear(){if(t?.clearing)return null;r();let n=e.capture();return t={id:n,clearing:!0},n},isCurrent:e.isCurrent,finish(r,i=!1){if(t?.id!==r||!e.isCurrent(r))return!1;t=null;let a=n||i;return n=!1,a}}}var k9=100,Bie=e=>typeof e!=`object`||!e?``:[e.data,e.details].filter(e=>e!==void 0).map(e=>{if(typeof e==`string`)return e;try{return JSON.stringify(e)}catch{return``}}).join(` `),Vie=e=>`${Oc(e)} ${Bie(e)}`.toLowerCase().includes(`logging to file disabled`);function Hie({active:e,isFollowing:t,onFollow:n}){let{t:r}=B(),{showNotification:i,showConfirmation:a}=Jc(),o=Im(e=>e.connectionStatus),s=Im(e=>e.apiBase),c=Im(e=>e.managementKey),l=Bp(e=>e.config?.loggingToFile??!1),u=!l,[d,f]=(0,y.useState)(!1),p=u||d,[m]=(0,y.useState)(()=>({session:O9(),logs:zie()})),[h,g]=(0,y.useState)(D9),_=(0,y.useRef)(h),[v,b]=(0,y.useState)(k9),[x,S]=(0,y.useState)(),[C,w]=(0,y.useState)(!1),[T,E]=(0,y.useState)(!1),D=(0,y.useRef)(8e3),O=(0,y.useRef)(0),[k,A]=(0,y.useState)(!0),[j,M]=(0,y.useState)(!1),[N,ee]=(0,y.useState)(``),[P,F]=T9(`logsPage.autoRefresh`,!1),I=(0,y.useRef)(P);(0,y.useLayoutEffect)(()=>{I.current=P},[P]);let L=()=>{let e=D9();_.current=e,g(e),b(k9),S(void 0),E(!1),w(!1),O.current=0,D.current=8e3};async function R(e=!1){if(Im.getState().connectionStatus!==`connected`){A(!1);return}if(!Bp.getState().config?.loggingToFile){e||(L(),f(!1),ee(``),A(!1));return}let i=m.logs.startRead(e);if(i!==null){_.current.buffer.length===0&&A(!0);try{for(let r=0;r<3;r++){let r=_.current.cursor,a=await Hy.fetchLogs(Iie(r));if(!m.logs.isCurrent(i))return;let o=t(),s=Lie(_.current,a,r),c=s.nextId-_.current.nextId;_.current=s,g(s),a.cursorReset?(E(!0),b(k9)):o||b(e=>Math.min(s.buffer.length,e+c)),o&&n(),f(!1),ee(``),S(Date.now()),D.current=8e3;let l=Rie(a,r);if(w(l),O.current=Date.now()+(l?1e3:8e3),!l||e&&!I.current)break}}catch(e){if(!m.logs.isCurrent(i))return;if(w(!1),Vie(e)){f(!0),ee(``);return}ee(Oc(e)||r(`logs.load_error`)),O.current=Date.now()+D.current,D.current=Math.min(D.current*2,6e4)}finally{m.logs.isCurrent(i)&&(A(!1),m.logs.finish(i)&&R(!1))}}}return(0,y.useEffect)(()=>{let e=()=>{m.logs.invalidate(),L(),A(!1),M(!1),ee(``),f(!1)},t=()=>{m.session.invalidate(),m.logs.invalidate()},n=Im.subscribe((n,r)=>{n.apiBase===r.apiBase&&n.managementKey===r.managementKey&&n.connectionStatus===r.connectionStatus&&n.isAuthenticated===r.isAuthenticated||(t(),e())}),r=Bp.subscribe((t,n)=>{t.config?.loggingToFile!==n.config?.loggingToFile&&e()});return()=>{n(),r(),t()}},[m]),(0,y.useEffect)(()=>{o===`connected`&&(L(),f(!1),R(!1))},[o,s,c,l]),(0,y.useEffect)(()=>{if(!P||!e||o!==`connected`||p)return;let t=window.setInterval(()=>{document.visibilityState===`hidden`||Date.now()<O.current||R(!0)},1e3);return()=>window.clearInterval(t)},[P,e,o,p]),{logBuffer:h,visibleCount:v,setVisibleCount:b,lastUpdated:x,catchingUp:C,wasReset:T,loading:k,clearingLogs:j,error:N,autoRefresh:P,setAutoRefresh:F,cpaNeedsFileLogging:u,showFileLoggingRequired:p,loadLogs:R,clearLogs:async()=>{if(u){i(r(`logs.cpa_file_logging_required`),`warning`);return}if(d){i(r(`logs.file_logging_required`),`warning`);return}let e=m.session.capture();a({title:r(`logs.clear_confirm_title`,{defaultValue:`Clear Logs`}),message:r(`logs.clear_application_confirm`),variant:`danger`,confirmText:r(`common.confirm`),onConfirm:async()=>{if(!m.session.isCurrent(e)||Im.getState().connectionStatus!==`connected`||!Bp.getState().config?.loggingToFile)return;let t=m.logs.startClear();if(t===null)return;M(!0),A(!1),ee(``);let n=!1;try{if(await Hy.clearLogs(),!m.logs.isCurrent(t))return;L(),f(!1),i(r(`logs.clear_success`),`success`)}catch(e){if(!m.logs.isCurrent(t))return;n=!0;let a=Oc(e);i(`${r(`notification.delete_failed`)}${a?`: ${a}`:``}`,`error`)}finally{m.logs.isCurrent(t)&&(M(!1),m.logs.finish(t,n)&&R(!1))}}})}}}var A9=[`GET`,`POST`,`PUT`,`PATCH`,`DELETE`,`OPTIONS`,`HEAD`],Uie=[`2xx`,`3xx`,`4xx`,`5xx`],j9=e=>{if(typeof e==`number`){if(e>=200&&e<300)return`2xx`;if(e>=300&&e<400)return`3xx`;if(e>=400&&e<500)return`4xx`;if(e>=500&&e<600)return`5xx`}},Wie=RegExp(`\\b(${A9.join(`|`)})\\b`),Gie=/^\[?(\d{4}-\d{2}-\d{2}[ T]\d{2}:\d{2}:\d{2}(?:\.\d{1,3})?)\]?/,Kie=/^\[?(trace|debug|info|warn|warning|error|fatal|panic)\s*\]?(?=\s|\[|$)\s*/i,M9=/^\[([^\]\s]+\.go:\d+)\]/,N9=/\b(?:\d+(?:\.\d+)?\s*(?:ns|µs|us|ms|s|m|h))(?:\s*\d+(?:\.\d+)?\s*(?:ns|µs|us|ms|s|m|h))*\b/i,qie=/\b(?:\d{1,3}\.){3}\d{1,3}\b/,Jie=/(?<![\w:])(?:[a-f0-9]{0,4}:){2,7}[a-f0-9]{0,4}(?![\w:])/i,P9=/^([a-f0-9]{8}|--------)$/i,Yie=/\brequest[_-]?id=([A-Za-z0-9][A-Za-z0-9._:-]{0,127})\b/i,Xie=/^\d{1,2}:\d{2}:\d{2}(?:\.\d{1,3})?$/,F9=/^\[GIN\]\s+(\d{4})\/(\d{2})\/(\d{2})\s*-\s*(\d{2}:\d{2}:\d{2}(?:\.\d{1,3})?)\s*$/,Zie=[/\|\s*([1-5]\d{2})\s*\|/,/\b([1-5]\d{2})\s*-/,RegExp(`\\b(?:${A9.join(`|`)})\\s+\\S+\\s+([1-5]\\d{2})\\b`),/\b(?:status|code|http)[:\s]+([1-5]\d{2})\b/i,/\b([1-5]\d{2})\s+(?:OK|Created|Accepted|No Content|Moved|Found|Bad Request|Unauthorized|Forbidden|Not Found|Method Not Allowed|Internal Server Error|Bad Gateway|Service Unavailable|Gateway Timeout)\b/i],Qie=e=>{for(let t of Zie){let n=e.match(t);if(!n)continue;let r=Number.parseInt(n[1],10);if(Number.isFinite(r)&&r>=100&&r<=599)return r}},I9=e=>{let t=e.match(qie);if(t)return t[0];let n=e.match(Jie);if(!n)return;let r=n[0];if(!Xie.test(r)&&!(!r.includes(`::`)&&r.split(`:`).length!==8))return r},L9=e=>{let t=e.trim(),n=t.match(/^(\d{4}-\d{2}-\d{2})[ T](\d{2}:\d{2}:\d{2})/);return n?`${n[1]} ${n[2]}`:t},R9=e=>{let t=e.match(N9);if(t)return t[0].replace(/\s+/g,``)},$ie=e=>{let t=e.trim().toLowerCase();if(t===`warning`||t===`warn`)return`warn`;if(t===`info`)return`info`;if(t===`error`)return`error`;if(t===`fatal`||t===`panic`)return`fatal`;if(t===`debug`)return`debug`;if(t===`trace`)return`trace`},eae=e=>{let t=e.toLowerCase();if(/\b(?:fatal|panic)\b/.test(t))return`fatal`;if(/\berror\b/.test(t))return`error`;if(/\bwarn(?:ing)?\b/.test(t)||e.includes(`警告`))return`warn`;if(/\binfo\b/.test(t))return`info`;if(/\bdebug\b/.test(t))return`debug`;if(/\btrace\b/.test(t))return`trace`},z9=e=>{let t=e.match(Yie);if(!t)return;let n=t[1];if(!/^-+$/.test(n))return n},B9=e=>{let t=e.match(Wie);if(!t)return{};let n=t[1],r=t.index??0,i=e.slice(r+t[0].length).trim().match(/^"([^"]*)"|^(\/\S*)/);return{method:n,path:i?i[1]??i[2]:void 0}},tae=e=>{let t=[],n=0,r=!1;for(let i=0;i<e.length;i+=1)e[i]===`"`&&(r=!r),e[i]===`|`&&!r&&(t.push(e.slice(n,i).trim()),n=i+1);return t.push(e.slice(n).trim()),t},nae=e=>{let t=e.trim(),n,r=t.match(Gie);r&&(n=r[1],t=t.slice(r[0].length).trim());let i,a=t.match(/^\[([a-f0-9]{8}|--------)\]\s*/i);if(a){let e=a[1];/^-+$/.test(e)||(i=e),t=t.slice(a[0].length).trim()}let o,s=t.match(Kie);s&&(o=$ie(s[1]),t=t.slice(s[0].length).trim());let c,l=t.match(M9);l&&(c=l[1],t=t.slice(l[0].length).trim());let u,d,f,p,m,h=t;if(t.includes(`|`)){let e=tae(t),r=new Set,a=e.findIndex(e=>F9.test(e));if(a>=0){let t=e[a].match(F9);if(t){let e=`${t[1]}-${t[2]}-${t[3]} ${t[4]}`,i=L9(e),o=n?L9(n):void 0;n?o===i&&r.add(a):(n=e,r.add(a))}}let o=e.findIndex(e=>P9.test(e)||!!z9(e));if(o>=0){let t=z9(e[o]);if(t)i=t,/^request[_-]?id=\S+$/i.test(e[o])&&r.add(o);else{let t=e[o].match(P9);if(t){let e=t[1];/^-+$/.test(e)||(i=e),r.add(o)}}}let s=e.findIndex(e=>/^\d{3}$/.test(e));if(s>=0){let t=e[s].match(/^(\d{3})$/);if(t){let e=Number.parseInt(t[1],10);e>=100&&e<=599&&(u=e,r.add(s))}}let l=e.findIndex(e=>N9.test(e));if(l>=0){let t=R9(e[l]);t&&(d=t,e[l].replace(/\s+/g,``)===t&&r.add(l))}let g=e.findIndex(e=>!!I9(e));if(g>=0){let t=I9(e[g]);t&&(f=t,e[g]===t&&r.add(g))}let _=e.findIndex(e=>{let{method:t}=B9(e);return!!t});if(_>=0){let t=B9(e[_]);p=t.method,m=t.path;let n=e[_].match(RegExp(`^(?:${A9.join(`|`)})\\s+(?:"[^"]*"|/\\S+)`));n&&m&&(e[_]=e[_].slice(n[0].length).trim(),e[_]||r.add(_))}let v=e.findIndex(e=>M9.test(e));if(v>=0){let t=e[v].match(M9);t&&(c=t[1],e[v]=e[v].slice(t[0].length).trim(),e[v]||r.add(v))}h=e.filter((e,t)=>!r.has(t)).join(` | `)}else{u=Qie(t);let e=R9(t);e&&(d=e),f=I9(t);let n=B9(t);p=n.method,m=n.path,i||(i=z9(t))}if(o||(o=eae(e)),h){let e=h.match(F9);if(e){let t=`${e[1]}-${e[2]}-${e[3]} ${e[4]}`;n||(n=t),L9(n)===L9(t)&&(h=``)}}return{raw:e,timestamp:n,level:o,source:c,requestId:i,statusCode:u,latency:d,ip:f,method:p,path:m,message:h}};function rae(){let e=new Map;return t=>{let n=new Map,r=t.buffer.map((r,i)=>{let a=t.bufferStart+i,o=e.get(a),s=o?.raw===r?o:{...nae(r),id:a};return n.set(a,s),s});return e=n,r}}function iae(e,t,n){let r=t.trim().toLowerCase();return e.filter(e=>{let t=e.path?.split(`?`)[0];return n&&t&&(t===`/v8/management`||t.startsWith(`/v8/management/`))?!1:!r||e.raw.toLowerCase().includes(r)})}function aae(e,t){return e.filter(e=>{if(t.level&&e.level!==t.level||t.methods.size&&(!e.method||!t.methods.has(e.method)))return!1;let n=j9(e.statusCode);return t.statuses.size&&(!n||!t.statuses.has(n))?!1:!t.paths.size||!!(e.path&&t.paths.has(e.path))})}function oae(e,t){switch(t.type){case`open`:return{status:`loading`,item:t.item};case`ready`:return e.status===`loading`?{status:`ready`,item:e.item,text:t.text}:e;case`error`:return e.status===`loading`?{status:`error`,item:e.item,message:t.message}:e;case`close`:return{status:`closed`}}}function sae(e,t){return e.key===`Escape`&&!e.defaultPrevented&&!t}var cae=12;function lae(e){let{parsedLines:t}=e,[n,r]=T9(`logsPage.methodFilters`,[]),[i,a]=T9(`logsPage.statusFilters`,[]),[o,s]=T9(`logsPage.pathFilters`,[]),c=(0,y.useMemo)(()=>V9(o),[o]);return{methodFilters:n,statusFilters:i,pathFilters:c,methodFilterSet:(0,y.useMemo)(()=>new Set(n),[n]),statusFilterSet:(0,y.useMemo)(()=>new Set(i),[i]),pathFilterSet:(0,y.useMemo)(()=>new Set(c),[c]),hasStructuredFilters:n.length>0||i.length>0||c.length>0,methodCounts:(0,y.useMemo)(()=>{let e={};return t.forEach(t=>{t.method&&(e[t.method]=(e[t.method]??0)+1)}),e},[t]),statusCounts:(0,y.useMemo)(()=>{let e={};return t.forEach(t=>{let n=j9(t.statusCode);n&&(e[n]=(e[n]??0)+1)}),e},[t]),pathOptions:(0,y.useMemo)(()=>uae(t,c),[t,c]),toggleMethodFilter:e=>{r(t=>t.includes(e)?t.filter(t=>t!==e):[...t,e])},toggleStatusFilter:e=>{a(t=>t.includes(e)?t.filter(t=>t!==e):[...t,e])},togglePathFilter:e=>{s(t=>{let n=V9(t);return n.includes(e)?n.filter(t=>t!==e):[...n,e]})},clearStructuredFilters:()=>{r([]),a([]),s([])}}}function V9(e){return[...new Set(e.map(e=>e.startsWith(`"`)&&e.endsWith(`"`)?e.slice(1,-1):e))]}function uae(e,t){let n=new Map;e.forEach(e=>{e.path&&n.set(e.path,(n.get(e.path)??0)+1)});let r=Array.from(n.entries()).sort((e,t)=>t[1]-e[1]||e[0].localeCompare(t[0])).slice(0,cae).map(([e])=>e);return Array.from(new Set([...r,...t])).map(e=>({path:e,count:n.get(e)??0}))}var dae=100,fae=200,pae=72,H9=e=>{let t=e.find(e=>e.bottom>0);return t?{id:t.id,offset:t.offset}:null},mae=(e,t)=>{let n=t.find(t=>t.id===e.id);return n?n.offset-e.offset:null},hae=(e,t)=>t===null?0:e.filter(e=>e>t).length,U9=e=>{let t=e.getBoundingClientRect().top+e.clientTop;return Array.from(e.querySelectorAll(`[data-log-id]`)).flatMap(e=>{let n=e.dataset.logId;if(!n?.trim())return[];let r=Number(n);if(!Number.isFinite(r))return[];let i=e.getBoundingClientRect();return[{id:r,offset:i.top-t,bottom:i.bottom-t}]})},gae=e=>!e||e.scrollHeight-e.scrollTop-e.clientHeight<=24;function _ae(e){let{logState:t,setLogState:n,bufferStart:r=0,loading:i,isSearching:a,filteredLineCount:o,hasStructuredFilters:s,showRawLogs:c,wrapLogs:l=!1}=e,u=(0,y.useRef)(null),[d,f]=(0,y.useState)(!0),[p,m]=(0,y.useState)(0),[h,g]=(0,y.useState)(!1),_=(0,y.useRef)(!0),v=(0,y.useRef)(null),b=(0,y.useRef)(0),x=(0,y.useRef)(null),S=(0,y.useRef)(r),C=(0,y.useRef)(!1),w=(0,y.useRef)(null),T=t.visibleFrom>0,E=(0,y.useCallback)(()=>{_.current=!0,f(!0),m(0),g(!1),v.current=null,w.current=null,C.current=!0,n(e=>{let t=Math.max(e.buffer.length-dae,0);return e.visibleFrom===t?e:{...e,visibleFrom:t}});let e=u.current;e&&(e.scrollTop=e.scrollHeight,b.current=e.scrollTop)},[n]),D=(0,y.useCallback)(()=>{_.current=!0,f(!0),m(0),C.current=!0,v.current=null},[]),O=(0,y.useCallback)(()=>{let e=u.current;!e||w.current||!T||(v.current=H9(U9(e)),w.current={scrollHeight:e.scrollHeight,scrollTop:e.scrollTop},n(e=>({...e,visibleFrom:Math.max(e.visibleFrom-fae,0)})))},[T,n]),k=(0,y.useCallback)(e=>{let t=e.currentTarget,n=U9(t);t.scrollTop<b.current&&_.current&&(C.current=!1,_.current=!1,f(!1),x.current=n.length?n[n.length-1].id:null),b.current=t.scrollTop,v.current=H9(n),!_.current&&t.scrollTop<=pae&&O()},[O]);(0,y.useLayoutEffect)(()=>{let e=u.current,n=r<S.current||t.buffer.length===0;if(S.current=r,n&&(v.current=null,x.current=null,w.current=null,_.current=!0,f(!0),m(0),g(!1)),!e)return;let a=U9(e),o=a.length?a[a.length-1].id:null,s=w.current;if(_.current||C.current)i||(e.scrollTop=e.scrollHeight,C.current=!1),x.current=o;else{let t=v.current;if(t){let n=mae(t,a);n===null?g(!0):e.scrollTop+=n}else s&&(e.scrollTop=s.scrollTop+e.scrollHeight-s.scrollHeight);let n=hae(a.map(e=>e.id),x.current);n>0&&m(e=>e+n),o!==null&&(x.current=Math.max(x.current??o,o))}w.current=null,b.current=e.scrollTop,v.current=H9(U9(e))},[r,i,t.buffer,t.visibleFrom,c,l,d]);let A=(0,y.useCallback)(()=>{let e=u.current;!e||i||!T||w.current||e.scrollHeight>e.clientHeight+1||O()},[T,i,O]);return(0,y.useEffect)(()=>{if(i)return;let e=window.requestAnimationFrame(A);return()=>window.cancelAnimationFrame(e)},[o,s,a,i,t.visibleFrom,c,A]),(0,y.useEffect)(()=>{let e=null,t=()=>{e!==null&&window.cancelAnimationFrame(e),e=window.requestAnimationFrame(()=>{e=null,A()})};return window.addEventListener(`resize`,t),()=>{window.removeEventListener(`resize`,t),e!==null&&window.cancelAnimationFrame(e)}},[A]),{logViewerRef:u,canLoadMore:T,handleLogScroll:k,scrollToBottom:E,requestScrollToBottom:D,isFollowing:d,resumeFollowing:E,pendingLines:p,historyEvicted:h}}var $={container:`LogsPage-module__container___jrAqN`,pageHeader:`LogsPage-module__pageHeader___-8ooF`,pageTitle:`LogsPage-module__pageTitle___2wBox`,tabBar:`LogsPage-module__tabBar___rxVe6`,tabItem:`LogsPage-module__tabItem___-dQ55`,tabActive:`LogsPage-module__tabActive___7LP3U`,structuredFilters:`LogsPage-module__structuredFilters___PLiOP`,logPanel:`LogsPage-module__logPanel___9ca7j`,content:`LogsPage-module__content___HJomg`,viewerArea:`LogsPage-module__viewerArea___41p-e`,errorBody:`LogsPage-module__errorBody___-KnXl`,logCard:`LogsPage-module__logCard___fqNg0`,errorCard:`LogsPage-module__errorCard___T8gKc`,filters:`LogsPage-module__filters___Tvw-8`,searchWrapper:`LogsPage-module__searchWrapper___MYGRe`,searchInput:`LogsPage-module__searchInput___croby`,levelSelect:`LogsPage-module__levelSelect___Ebwsp`,filterPanelToggle:`LogsPage-module__filterPanelToggle___etLPF`,actionButton:`LogsPage-module__actionButton___iUZfY`,searchIcon:`LogsPage-module__searchIcon___glR9K`,searchClear:`LogsPage-module__searchClear___SAkff`,filterPanelHeader:`LogsPage-module__filterPanelHeader___QAih-`,filterPanelButtonContent:`LogsPage-module__filterPanelButtonContent___Kuybx`,buttonContent:`LogsPage-module__buttonContent___nOJQZ`,switchLabel:`LogsPage-module__switchLabel___hemEH`,filterPanelCount:`LogsPage-module__filterPanelCount___qCYc6`,toolbar:`LogsPage-module__toolbar___P4tRL`,displayOptions:`LogsPage-module__displayOptions___3rcHu`,filterChipGroup:`LogsPage-module__filterChipGroup___rbf3E`,filterChipLabel:`LogsPage-module__filterChipLabel___B-5xK`,filterChipList:`LogsPage-module__filterChipList___5fa03`,filterChipHint:`LogsPage-module__filterChipHint___bz8JW`,filterChip:`LogsPage-module__filterChip___T2VkK`,filterChipActive:`LogsPage-module__filterChipActive___uUqRg`,statusBar:`LogsPage-module__statusBar___qFKlY`,readStatus:`LogsPage-module__readStatus___yHZ78`,statusDot:`LogsPage-module__statusDot___Vd2u6`,bufferStatus:`LogsPage-module__bufferStatus___Ydyop`,notices:`LogsPage-module__notices___9SZG7`,followButton:`LogsPage-module__followButton___1fOet`,loadMoreBanner:`LogsPage-module__loadMoreBanner___sTRC1`,loadMoreStats:`LogsPage-module__loadMoreStats___bElJr`,loadMoreCount:`LogsPage-module__loadMoreCount___DlCgN`,logList:`LogsPage-module__logList___IpC9T`,wrapped:`LogsPage-module__wrapped___A-dsK`,rowMain:`LogsPage-module__rowMain___cKmRm`,rawLog:`LogsPage-module__rawLog___OlCuw`,copyButton:`LogsPage-module__copyButton___OXUKa`,logRow:`LogsPage-module__logRow___gvmFX`,errorLogContent:`LogsPage-module__errorLogContent___R5blc`,rowWarn:`LogsPage-module__rowWarn___KcZKX`,rowError:`LogsPage-module__rowError___vye7Q`,timestamp:`LogsPage-module__timestamp___6KEIR`,badge:`LogsPage-module__badge___lqhqd`,pill:`LogsPage-module__pill___e9N6j`,source:`LogsPage-module__source___O9HG3`,requestIdBadge:`LogsPage-module__requestIdBadge___rs-v6`,statusSuccess:`LogsPage-module__statusSuccess___Iu5aQ`,statusInfo:`LogsPage-module__statusInfo___R88Ee`,levelInfo:`LogsPage-module__levelInfo___vB5kT`,statusWarn:`LogsPage-module__statusWarn___ChhRx`,levelWarn:`LogsPage-module__levelWarn___p3NRD`,statusError:`LogsPage-module__statusError___s2Nsh`,levelError:`LogsPage-module__levelError___BcRo5`,levelDebug:`LogsPage-module__levelDebug___u6bps`,levelTrace:`LogsPage-module__levelTrace___ctJVY`,statusBadge:`LogsPage-module__statusBadge___hILaO`,methodBadge:`LogsPage-module__methodBadge___otNY3`,path:`LogsPage-module__path___-BW8O`,message:`LogsPage-module__message___Yhviu`,errorPanel:`LogsPage-module__errorPanel___1BD9T`,errorLogViewer:`LogsPage-module__errorLogViewer___Qfb2T`,errorLogViewerMeta:`LogsPage-module__errorLogViewerMeta___MJQYo`,logCardFullscreen:`LogsPage-module__logCardFullscreen___5aXxO`,logPanelFullscreen:`LogsPage-module__logPanelFullscreen___HktgM`,filterPanelLabel:`LogsPage-module__filterPanelLabel___gVhwi`},vae=100;function yae(){let{t:e}=B(),{showNotification:t}=Jc(),n=Im(e=>e.connectionStatus),r=Im(e=>e.apiBase),i=Im(e=>e.managementKey),a=Bp(e=>e.config)?.requestLog??!1,[o,s]=(0,y.useState)(`logs`),[c,l]=(0,y.useState)(``),u=(0,y.useDeferredValue)(c),[d,f]=T9(`logsPage.hideManagementLogs`,!0),[p,m]=T9(`logsPage.showRawLogs`,!1),[h,g]=T9(`logsPage.wrapLogs`,!1),[_,v]=(0,y.useState)(!1),[b,x]=(0,y.useState)([]),[S,C]=(0,y.useState)(!1),[w,T]=(0,y.useState)(``),[E,D]=(0,y.useReducer)(oae,{status:`closed`}),O=E.status===`closed`?null:E.item,[k,A]=(0,y.useState)(null),[j,M]=(0,y.useState)(!1),[N,ee]=(0,y.useState)(!1),[P]=(0,y.useState)(()=>({session:O9(),errors:O9(),viewer:O9()})),{logBuffer:F,visibleCount:I,setVisibleCount:L,lastUpdated:R,catchingUp:te,wasReset:ne,loading:re,clearingLogs:z,error:ie,autoRefresh:ae,setAutoRefresh:oe,cpaNeedsFileLogging:se,showFileLoggingRequired:ce,loadLogs:le,clearLogs:ue}=Hie({active:o===`logs`,isFollowing:()=>gae(Re.current),onFollow:()=>ze()}),de=n!==`connected`,fe=de||re||z||se,pe=de||ce,me=de||z||ce,he=()=>{let n=F.buffer.join(`
`);Sj({filename:`logs.txt`,blob:new Blob([n],{type:`text/plain`})}),t(e(`logs.download_success`),`success`)},ge=async()=>{if(Im.getState().connectionStatus!==`connected`){C(!1);return}let t=P.errors.invalidate();C(!0),T(``);try{let e=await Hy.fetchErrorLogs();if(!P.errors.isCurrent(t))return;x(Array.isArray(e.files)?e.files:[])}catch(n){if(!P.errors.isCurrent(t))return;console.error(`Failed to load error logs:`,n),x([]);let r=Oc(n);T(r?`${e(`logs.error_logs_load_error`)}: ${r}`:e(`logs.error_logs_load_error`))}finally{P.errors.isCurrent(t)&&C(!1)}};cg(()=>o===`errors`?ge():le(!1));let _e=async n=>{let r=P.session.capture();try{let i=await Hy.downloadErrorLog(n);if(!P.session.isCurrent(r))return;Sj({filename:n,blob:new Blob([i.data],{type:`text/plain`})}),t(e(`logs.error_log_download_success`),`success`)}catch(n){if(!P.session.isCurrent(r))return;let i=Oc(n);t(`${e(`notification.download_failed`)}${i?`: ${i}`:``}`,`error`)}},ve=async(t,n)=>{A(n??null);let r=P.viewer.invalidate();D({type:`open`,item:t});try{if(t.size&&t.size>2*1024*1024)throw Error(e(`logs.preview_too_large`));let i=n?await Hy.downloadRequestLogById(n):await Hy.downloadErrorLog(t.name);if(i.data instanceof Blob&&i.data.size>2*1024*1024)throw Error(e(`logs.preview_too_large`));let a=await By(i.data);if(!P.viewer.isCurrent(r))return;D({type:`ready`,text:a})}catch(t){if(!P.viewer.isCurrent(r))return;let i=n&&typeof t==`object`&&t&&`status`in t&&t.status===404?`${e(`logs.request_log_missing`)} ${Oc(t)}`:Oc(t);D({type:`error`,message:i?`${e(`logs.error_log_open_failed`)}: ${i}`:e(`logs.error_log_open_failed`)})}},ye=()=>{P.viewer.invalidate(),D({type:`close`})},be=async()=>{if(E.status!==`ready`||!E.text)return;let n=P.session.capture(),r=await ID(E.text);P.session.isCurrent(n)&&t(r?e(`logs.error_log_copy_success`):e(`logs.copy_failed`,{defaultValue:`Copy failed`}),r?`success`:`error`)};(0,y.useEffect)(()=>{let e=()=>{P.errors.invalidate(),x([]),C(!1),T(``)},t=()=>{P.session.invalidate(),P.errors.invalidate(),P.viewer.invalidate()},n=Im.subscribe((n,r)=>{n.apiBase===r.apiBase&&n.managementKey===r.managementKey&&n.connectionStatus===r.connectionStatus&&n.isAuthenticated===r.isAuthenticated||(t(),e(),D({type:`close`}),A(null),M(!1))}),r=Bp.subscribe((t,n)=>{t.config?.requestLog!==n.config?.requestLog&&e()});return()=>{n(),r(),t()}},[P]),(0,y.useEffect)(()=>{o===`errors`&&n===`connected`&&ge()},[o,n,r,i,a]);let[xe]=(0,y.useState)(rae),Se=(0,y.useMemo)(()=>xe(F),[F,xe]),[Ce,we]=(0,y.useState)(``),Te=u.trim(),Ee=Te.length>0,De=(0,y.useMemo)(()=>iae(Se,Te,d),[Se,Te,d]),Oe=lae({parsedLines:De}),ke=Oe.methodFilters.length+Oe.statusFilters.length+Oe.pathFilters.length,Ae=(0,y.useMemo)(()=>aae(De,{methods:Oe.methodFilterSet,statuses:Oe.statusFilterSet,paths:Oe.pathFilterSet,level:Ce}),[De,Oe.methodFilterSet,Oe.statusFilterSet,Oe.pathFilterSet,Ce]),je=F.buffer.length-Ae.length,Me=(0,y.useMemo)(()=>Ae.map(e=>e.raw),[Ae]),Ne=(0,y.useMemo)(()=>({buffer:Me,visibleFrom:Math.max(0,Me.length-I)}),[Me,I]),Pe=e=>{let t=typeof e==`function`?e(Ne):e;L(t.buffer.length-t.visibleFrom)};(0,y.useEffect)(()=>{L(vae)},[L,Te,d,Ce,Oe.methodFilterSet,Oe.statusFilterSet,Oe.pathFilterSet]);let Fe=Ae.slice(Ne.visibleFrom),{canLoadMore:Ie,handleLogScroll:Le,logViewerRef:Re,requestScrollToBottom:ze,isFollowing:Be,resumeFollowing:Ve,pendingLines:He,historyEvicted:Ue}=_ae({logState:Ne,setLogState:Pe,bufferStart:F.bufferStart,loading:re,isSearching:Ee,filteredLineCount:Me.length,hasStructuredFilters:Oe.hasStructuredFilters,showRawLogs:p,wrapLogs:h}),We=async n=>{await ID(n)?t(e(`logs.copy_success`,{defaultValue:`Copied to clipboard`}),`success`):t(e(`logs.copy_failed`,{defaultValue:`Copy failed`}),`error`)},Ge=async n=>{let r=P.session.capture();M(!0);try{let i=await Hy.downloadRequestLogById(n);if(!P.session.isCurrent(r))return;Sj({filename:`request-${n}.log`,blob:new Blob([i.data],{type:`text/plain`})}),t(e(`logs.request_log_download_success`),`success`)}catch(n){if(!P.session.isCurrent(r))return;let i=Oc(n);t(`${e(`notification.download_failed`)}${i?`: ${i}`:``}`,`error`)}finally{P.session.isCurrent(r)&&M(!1)}};return(0,y.useEffect)(()=>{if(!N)return;document.body.classList.add(`logs-fullscreen-active`),Ym();let e=e=>{sae(e,!!document.querySelector(`.modal-overlay`))&&ee(!1)};return document.addEventListener(`keydown`,e),()=>{document.removeEventListener(`keydown`,e),document.body.classList.remove(`logs-fullscreen-active`),Xm()}},[N]),(0,V.jsxs)(`div`,{className:$.container,children:[(0,V.jsxs)(`header`,{className:$.pageHeader,children:[(0,V.jsx)(`h1`,{className:$.pageTitle,children:e(`logs.title`)}),(0,V.jsxs)(`div`,{className:$.tabBar,role:`group`,"aria-label":e(`logs.title`),children:[(0,V.jsx)(`button`,{type:`button`,className:`${$.tabItem} ${o===`logs`?$.tabActive:``}`,"aria-pressed":o===`logs`,onClick:()=>s(`logs`),children:e(`logs.log_content`)}),(0,V.jsx)(`button`,{type:`button`,className:`${$.tabItem} ${o===`errors`?$.tabActive:``}`,"aria-pressed":o===`errors`,onClick:()=>{ee(!1),s(`errors`)},children:e(`logs.error_logs_modal_title`)})]})]}),(0,V.jsxs)(`div`,{className:$.content,children:[o===`logs`&&(0,V.jsxs)(rM,{className:[$.logCard,N?$.logCardFullscreen:``].filter(Boolean).join(` `),children:[ce&&(0,V.jsx)(`div`,{className:`status-badge warning`,children:e(se?`logs.cpa_file_logging_required`:`logs.file_logging_required`)}),ie&&(0,V.jsx)(`div`,{className:`error-box`,role:`alert`,children:ie}),(0,V.jsxs)(`footer`,{className:$.statusBar,children:[(0,V.jsxs)(`div`,{className:$.readStatus,role:`status`,"data-live":ae&&!de,children:[(0,V.jsx)(`span`,{className:$.statusDot,"aria-hidden":`true`}),e(te&&ae?`logs.read_status_catching_up`:ae?`logs.read_status_live`:`logs.read_status_paused`),R&&(0,V.jsxs)(V.Fragment,{children:[` `,`· `,e(`logs.last_updated`,{time:new Date(R).toLocaleTimeString()})]})]}),(0,V.jsx)(`div`,{className:$.bufferStatus,children:e(`logs.buffer_scope`,{count:F.buffer.length,matched:Me.length})})]}),(0,V.jsxs)(`div`,{className:$.notices,children:[ne&&(0,V.jsx)(`div`,{className:`hint`,role:`status`,children:e(`logs.cursor_reset_notice`)}),Ue&&(0,V.jsx)(`div`,{className:`hint`,role:`status`,children:e(`logs.history_evicted`)})]}),!Be&&(0,V.jsx)(H,{className:$.followButton,variant:`secondary`,size:`sm`,onClick:Ve,children:e(`logs.resume_following`,{count:He})}),(0,V.jsxs)(`div`,{className:$.filters,children:[(0,V.jsx)(`div`,{className:$.searchWrapper,children:(0,V.jsx)(ds,{value:c,onChange:e=>l(e.target.value),placeholder:e(`logs.search_placeholder`),"aria-label":e(`logs.search_placeholder`),className:$.searchInput,rightElement:c?(0,V.jsx)(`button`,{type:`button`,className:$.searchClear,onClick:()=>l(``),title:e(`logs.clear_search`),"aria-label":e(`logs.clear_search`),children:(0,V.jsx)(Vs,{size:16})}):(0,V.jsx)(Bs,{size:16,className:$.searchIcon})})}),(0,V.jsx)(_c,{className:$.levelSelect,fullWidth:!1,value:Ce,onChange:we,ariaLabel:e(`logs.level_filter`),options:[{value:``,label:e(`logs.all_levels`)},...[`trace`,`debug`,`info`,`warn`,`error`,`fatal`].map(e=>({value:e,label:e.toUpperCase()}))]}),(0,V.jsx)(`div`,{className:$.filterPanelHeader,children:(0,V.jsx)(H,{type:`button`,variant:`secondary`,size:`sm`,className:$.filterPanelToggle,onClick:()=>v(e=>!e),"aria-haspopup":`dialog`,"aria-label":e(`logs.filter_panel_title`),title:e(`logs.filter_panel_title`),children:(0,V.jsxs)(`span`,{className:$.filterPanelButtonContent,children:[(0,V.jsx)(ms,{size:16}),(0,V.jsx)(`span`,{className:$.filterPanelLabel,children:e(`logs.filter_panel_title`)}),ke>0&&(0,V.jsx)(`span`,{className:$.filterPanelCount,children:e(`logs.filter_panel_active_count`,{count:ke})})]})})}),(0,V.jsxs)($m,{open:_,onClose:()=>v(!1),title:e(`logs.filter_panel_title`),width:640,footer:(0,V.jsx)(H,{variant:`secondary`,onClick:()=>v(!1),children:e(`common.close`)}),children:[(0,V.jsxs)(`div`,{id:`logs-structured-filters`,className:$.structuredFilters,children:[(0,V.jsxs)(`div`,{className:$.filterChipGroup,children:[(0,V.jsx)(`span`,{className:$.filterChipLabel,children:e(`logs.filter_method`)}),(0,V.jsx)(`div`,{className:$.filterChipList,children:A9.map(e=>{let t=Oe.methodFilters.includes(e),n=Oe.methodCounts[e]??0;return(0,V.jsxs)(`button`,{type:`button`,className:`${$.filterChip} ${t?$.filterChipActive:``}`,onClick:()=>Oe.toggleMethodFilter(e),disabled:n===0&&!t,"aria-pressed":t,children:[e,` (`,n,`)`]},e)})})]}),(0,V.jsxs)(`div`,{className:$.filterChipGroup,children:[(0,V.jsx)(`span`,{className:$.filterChipLabel,children:e(`logs.filter_status`)}),(0,V.jsx)(`div`,{className:$.filterChipList,children:Uie.map(t=>{let n=Oe.statusFilters.includes(t),r=Oe.statusCounts[t]??0;return(0,V.jsxs)(`button`,{type:`button`,className:`${$.filterChip} ${n?$.filterChipActive:``}`,onClick:()=>Oe.toggleStatusFilter(t),disabled:r===0&&!n,"aria-pressed":n,children:[e(`logs.filter_status_${t}`),` (`,r,`)`]},t)})})]}),(0,V.jsxs)(`div`,{className:$.filterChipGroup,children:[(0,V.jsx)(`span`,{className:$.filterChipLabel,children:e(`logs.filter_path`)}),(0,V.jsx)(`div`,{className:$.filterChipList,children:Oe.pathOptions.length===0?(0,V.jsx)(`span`,{className:$.filterChipHint,children:e(`logs.filter_path_empty`)}):Oe.pathOptions.map(({path:e,count:t})=>{let n=Oe.pathFilters.includes(e);return(0,V.jsxs)(`button`,{type:`button`,className:`${$.filterChip} ${n?$.filterChipActive:``}`,onClick:()=>Oe.togglePathFilter(e),"aria-pressed":n,title:e,children:[e,` (`,t,`)`]},e)})})]}),(0,V.jsx)(H,{variant:`ghost`,size:`sm`,onClick:Oe.clearStructuredFilters,disabled:!Oe.hasStructuredFilters,children:e(`logs.clear_filters`)})]}),(0,V.jsxs)(`div`,{className:$.displayOptions,children:[(0,V.jsx)($C,{checked:h,onChange:g,label:e(`logs.wrap_lines`)}),(0,V.jsx)($C,{checked:d,onChange:f,label:(0,V.jsxs)(`span`,{className:$.switchLabel,children:[(0,V.jsx)(Ws,{size:16}),e(`logs.hide_management_logs`,{prefix:`/v8/management`})]})}),(0,V.jsx)($C,{checked:p,onChange:m,label:(0,V.jsxs)(`span`,{className:$.switchLabel,title:e(`logs.show_raw_logs_hint`,{defaultValue:`Show original log text for easier multi-line copy`}),children:[(0,V.jsx)(Qs,{size:16}),e(`logs.show_raw_logs`,{defaultValue:`Show raw logs`})]})})]})]}),(0,V.jsxs)(`div`,{className:$.toolbar,children:[(0,V.jsx)(H,{variant:`secondary`,size:`sm`,onClick:()=>le(!1),disabled:fe,className:$.actionButton,title:e(`logs.refresh_button`),"aria-label":e(`logs.refresh_button`),children:(0,V.jsx)(Ts,{size:16})}),(0,V.jsx)(H,{variant:`secondary`,size:`sm`,className:$.actionButton,"aria-pressed":ae,"aria-label":e(`logs.reading_enabled`),title:e(`logs.reading_enabled`),onClick:()=>oe(!ae),disabled:pe,children:(0,V.jsx)(qs,{size:16})}),(0,V.jsx)(H,{variant:`secondary`,size:`sm`,onClick:he,disabled:F.buffer.length===0,className:$.actionButton,title:e(`logs.download_cached`),"aria-label":e(`logs.download_cached`),children:(0,V.jsx)(Es,{size:16})}),(0,V.jsx)(H,{variant:`ghost`,size:`sm`,onClick:ue,disabled:me,className:$.actionButton,title:e(`logs.clear_button`),"aria-label":e(`logs.clear_button`),children:(0,V.jsx)(Os,{size:16})}),(0,V.jsx)(H,{variant:`secondary`,size:`sm`,onClick:()=>ee(e=>!e),className:$.actionButton,"aria-pressed":N,"aria-label":e(N?`logs.exit_fullscreen_button`:`logs.fullscreen_button`),title:e(N?`logs.exit_fullscreen_button`:`logs.fullscreen_button`),children:(0,V.jsx)(`span`,{className:$.buttonContent,children:N?(0,V.jsx)(As,{size:16}):(0,V.jsx)(ks,{size:16})})})]})]}),(0,V.jsx)(`div`,{className:$.viewerArea,children:re&&F.buffer.length===0?(0,V.jsx)(`div`,{className:`hint`,children:e(`logs.loading`)}):F.buffer.length>0&&Me.length>0?(0,V.jsxs)(`div`,{ref:Re,className:[$.logPanel,h?$.wrapped:``,N?$.logPanelFullscreen:``].filter(Boolean).join(` `),onScroll:Le,tabIndex:0,role:`region`,"aria-label":e(`logs.log_content`),"aria-busy":re,children:[Ie&&(0,V.jsxs)(`div`,{className:$.loadMoreBanner,children:[(0,V.jsx)(H,{variant:`secondary`,size:`sm`,onClick:()=>L(e=>Math.min(Me.length,e+200)),children:e(`logs.filter_load_more`)}),(0,V.jsxs)(`div`,{className:$.loadMoreStats,children:[(0,V.jsx)(`span`,{children:e(`logs.loaded_lines`,{count:Fe.length})}),je>0&&(0,V.jsx)(`span`,{className:$.loadMoreCount,children:e(`logs.filtered_lines`,{count:je})}),(0,V.jsx)(`span`,{className:$.loadMoreCount,children:e(`logs.hidden_lines`,{count:Ne.visibleFrom})})]})]}),p?(0,V.jsx)(`pre`,{className:$.rawLog,spellCheck:!1,children:Fe.map(e=>(0,V.jsx)(`span`,{"data-log-id":e.id,style:{display:`block`},children:e.raw||`\xA0`},e.id))}):(0,V.jsx)(`div`,{className:$.logList,children:Fe.map(t=>{let n=[$.logRow];return t.level===`warn`&&n.push($.rowWarn),(t.level===`error`||t.level===`fatal`)&&n.push($.rowError),(0,V.jsxs)(`div`,{"data-log-id":t.id,className:n.join(` `),onDoubleClick:()=>{We(t.raw)},title:e(`logs.double_click_copy_hint`,{defaultValue:`Double-click to copy`}),children:[(0,V.jsx)(`div`,{className:$.timestamp,children:t.timestamp||``}),(0,V.jsxs)(`div`,{className:$.rowMain,children:[t.level&&(0,V.jsx)(`span`,{className:[$.badge,t.level===`info`?$.levelInfo:``,t.level===`warn`?$.levelWarn:``,t.level===`error`||t.level===`fatal`?$.levelError:``,t.level===`debug`?$.levelDebug:``,t.level===`trace`?$.levelTrace:``].filter(Boolean).join(` `),children:t.level.toUpperCase()}),t.source&&(0,V.jsx)(`span`,{className:$.source,title:t.source,children:t.source}),t.requestId&&(0,V.jsx)(`button`,{type:`button`,className:[$.badge,$.requestIdBadge].join(` `),title:e(`logs.view_request`,{id:t.requestId}),"aria-label":e(`logs.view_request`,{id:t.requestId}),onClick:()=>void ve({name:`request-${t.requestId}.log`},t.requestId),children:t.requestId}),typeof t.statusCode==`number`&&(0,V.jsx)(`span`,{className:[$.badge,$.statusBadge,t.statusCode>=200&&t.statusCode<300?$.statusSuccess:t.statusCode>=300&&t.statusCode<400?$.statusInfo:t.statusCode>=400&&t.statusCode<500?$.statusWarn:$.statusError].join(` `),children:t.statusCode}),t.latency&&(0,V.jsx)(`span`,{className:$.pill,children:t.latency}),t.ip&&(0,V.jsx)(`span`,{className:$.pill,children:t.ip}),t.method&&(0,V.jsx)(`span`,{className:[$.badge,$.methodBadge].join(` `),children:t.method}),t.path&&(0,V.jsx)(`span`,{className:$.path,title:t.path,children:t.path}),t.message&&(0,V.jsx)(`span`,{className:$.message,children:t.message}),(0,V.jsx)(H,{variant:`ghost`,size:`sm`,className:$.copyButton,title:e(`logs.copy_line`),onClick:()=>void We(t.raw),"aria-label":e(`logs.copy_line`),children:(0,V.jsx)(ps,{size:14})})]})]},t.id)})})]}):F.buffer.length>0?(0,V.jsx)(FD,{title:e(`logs.search_empty_title`),description:e(`logs.search_empty_desc`)}):ce?(0,V.jsx)(FD,{title:e(se?`logs.cpa_file_logging_required_title`:`logs.file_logging_required_title`),description:e(se?`logs.cpa_file_logging_required_desc`:`logs.file_logging_required_desc`)}):(0,V.jsx)(FD,{title:e(`logs.empty_title`),description:e(`logs.empty_desc`)})})]}),o===`errors`&&(0,V.jsx)(rM,{className:$.errorCard,title:e(`logs.error_logs_modal_title`),extra:(0,V.jsx)(H,{variant:`secondary`,size:`sm`,onClick:ge,loading:S,disabled:de,children:e(`common.refresh`)}),children:(0,V.jsxs)(`div`,{className:$.errorBody,children:[(0,V.jsx)(`div`,{className:`hint`,children:e(`logs.error_logs_description`)}),a&&(0,V.jsx)(`div`,{children:(0,V.jsx)(`div`,{className:`status-badge warning`,children:e(`logs.error_logs_request_log_enabled`)})}),w&&(0,V.jsx)(`div`,{className:`error-box`,children:w}),(0,V.jsx)(`div`,{className:$.errorPanel,children:S?(0,V.jsx)(`div`,{className:`hint`,children:e(`common.loading`)}):b.length===0?(0,V.jsx)(`div`,{className:`hint`,children:e(`logs.error_logs_empty`)}):(0,V.jsx)(`div`,{className:`item-list`,children:b.map(t=>(0,V.jsxs)(`div`,{className:`item-row`,children:[(0,V.jsxs)(`div`,{className:`item-meta`,children:[(0,V.jsx)(`div`,{className:`item-title`,children:t.name}),(0,V.jsxs)(`div`,{className:`item-subtitle`,children:[t.size?`${(t.size/1024).toFixed(1)} KB`:``,` `,t.modified?gg(t.modified):``]})]}),(0,V.jsxs)(`div`,{className:`item-actions`,children:[(0,V.jsx)(H,{variant:`secondary`,size:`sm`,onClick:()=>{ve(t)},disabled:de,children:(0,V.jsxs)(`span`,{className:$.buttonContent,children:[(0,V.jsx)(Us,{size:16}),e(`logs.error_logs_open`)]})}),(0,V.jsx)(H,{variant:`secondary`,size:`sm`,onClick:()=>_e(t.name),disabled:de,children:e(`logs.error_logs_download`)})]})]},t.name))})})]})})]}),(0,V.jsx)($m,{open:E.status!==`closed`,onClose:ye,title:O?.name??e(`logs.error_log_view_title`),width:960,footer:(0,V.jsxs)(V.Fragment,{children:[(0,V.jsx)(H,{variant:`secondary`,onClick:ye,children:e(`common.close`)}),(0,V.jsx)(H,{variant:`secondary`,onClick:()=>{be()},disabled:E.status!==`ready`||!E.text,children:e(`common.copy`)}),(0,V.jsx)(H,{onClick:()=>{k?Ge(k):O&&_e(O.name)},loading:j,disabled:E.status===`closed`||E.status===`loading`,children:e(`logs.error_logs_download`)})]}),children:(0,V.jsxs)(`div`,{className:$.errorLogViewer,children:[O&&(0,V.jsxs)(`div`,{className:$.errorLogViewerMeta,children:[(0,V.jsxs)(`span`,{children:[e(`logs.error_logs_size`),`:`,` `,O.size?`${(O.size/1024).toFixed(1)} KB`:`-`]}),(0,V.jsxs)(`span`,{children:[e(`logs.error_logs_modified`),`:`,` `,O.modified?gg(O.modified):`-`]})]}),E.status===`error`&&(0,V.jsx)(`div`,{className:`error-box`,children:E.message}),E.status===`loading`&&(0,V.jsx)(`div`,{className:`hint`,children:e(`common.loading`)}),E.status===`ready`&&(E.text?(0,V.jsx)(`pre`,{className:$.errorLogContent,spellCheck:!1,children:E.text}):(0,V.jsx)(`div`,{className:`hint`,children:e(`logs.error_log_empty_content`)}))]})})]})}var bae=`data:image/svg+xml,%3csvg%20height='1em'%20style='flex:none;line-height:1'%20viewBox='0%200%2024%2024'%20width='1em'%20xmlns='http://www.w3.org/2000/svg'%3e%3ctitle%3eZhipu%3c/title%3e%3cpath%20d='M11.991%2023.503a.24.24%200%2000-.244.248.24.24%200%2000.244.249.24.24%200%2000.245-.249.24.24%200%2000-.22-.247l-.025-.001zM9.671%205.365a1.697%201.697%200%20011.099%202.132l-.071.172-.016.04-.018.054c-.07.16-.104.32-.104.498-.035.71.47%201.279%201.186%201.314h.366c1.309.053%202.338%201.173%202.286%202.523-.052%201.332-1.152%202.38-2.478%202.327h-.174c-.715.018-1.274.64-1.239%201.368%200%20.124.018.23.053.337.209.373.54.658.96.8.75.23%201.517-.125%201.9-.782l.018-.035c.402-.64%201.17-.96%201.92-.711.854.284%201.378%201.226%201.099%202.167a1.661%201.661%200%2001-2.077%201.102%201.711%201.711%200%2001-.907-.711l-.017-.035c-.2-.323-.463-.58-.851-.711l-.056-.018a1.646%201.646%200%2000-1.954.746%201.66%201.66%200%2001-1.065.764%201.677%201.677%200%2001-1.989-1.279c-.209-.906.332-1.83%201.257-2.043a1.51%201.51%200%2001.296-.035h.018c.68-.071%201.151-.622%201.116-1.333a1.307%201.307%200%2000-.227-.693%202.515%202.515%200%2001-.366-1.403%202.39%202.39%200%2001.366-1.208c.14-.195.21-.444.227-.693.018-.71-.506-1.261-1.186-1.332l-.07-.018a1.43%201.43%200%2001-.299-.07l-.05-.019a1.7%201.7%200%2001-1.047-2.114%201.68%201.68%200%20012.094-1.101zm-5.575%2010.11c.26-.264.639-.367.994-.27.355.096.633.379.728.74.095.362-.007.748-.267%201.013-.402.41-1.053.41-1.455%200a1.062%201.062%200%20010-1.482zm14.845-.294c.359-.09.738.024.992.297.254.274.344.665.237%201.025-.107.36-.396.634-.756.718-.551.128-1.1-.22-1.23-.781a1.05%201.05%200%2001.757-1.26zm-.064-4.39c.314.32.49.753.49%201.206%200%20.452-.176.886-.49%201.206-.315.32-.74.5-1.185.5-.444%200-.87-.18-1.184-.5a1.727%201.727%200%20010-2.412%201.654%201.654%200%20012.369%200zm-11.243.163c.364.484.447%201.128.218%201.691a1.665%201.665%200%2001-2.188.923c-.855-.36-1.26-1.358-.907-2.228a1.68%201.68%200%20011.33-1.038c.593-.08%201.183.169%201.547.652zm11.545-4.221c.368%200%20.708.2.892.524.184.324.184.724%200%201.048a1.026%201.026%200%2001-.892.524c-.568%200-1.03-.47-1.03-1.048%200-.579.462-1.048%201.03-1.048zm-14.358%200c.368%200%20.707.2.891.524.184.324.184.724%200%201.048a1.026%201.026%200%2001-.891.524c-.569%200-1.03-.47-1.03-1.048%200-.579.461-1.048%201.03-1.048zm10.031-1.475c.925%200%201.675.764%201.675%201.706s-.75%201.705-1.675%201.705-1.674-.763-1.674-1.705c0-.942.75-1.706%201.674-1.706zm-2.626-.684c.362-.082.653-.356.761-.718a1.062%201.062%200%2000-.238-1.028%201.017%201.017%200%2000-.996-.294c-.547.14-.881.7-.752%201.257.13.558.675.907%201.225.783zm0%2016.876c.359-.087.644-.36.75-.72a1.062%201.062%200%2000-.237-1.019%201.018%201.018%200%2000-.985-.301%201.037%201.037%200%2000-.762.717c-.108.361-.017.754.239%201.028.245.263.606.377.953.305l.043-.01zM17.19%203.5a.631.631%200%2000.628-.64c0-.355-.279-.64-.628-.64a.631.631%200%2000-.628.64c0%20.355.28.64.628.64zm-10.38%200a.631.631%200%2000.628-.64c0-.355-.28-.64-.628-.64a.631.631%200%2000-.628.64c0%20.355.279.64.628.64zm-5.182%207.852a.631.631%200%2000-.628.64c0%20.354.28.639.628.639a.63.63%200%2000.627-.606l.001-.034a.62.62%200%2000-.628-.64zm5.182%209.13a.631.631%200%2000-.628.64c0%20.355.279.64.628.64a.631.631%200%2000.628-.64c0-.355-.28-.64-.628-.64zm10.38.018a.631.631%200%2000-.628.64c0%20.355.28.64.628.64a.631.631%200%2000.628-.64c0-.355-.279-.64-.628-.64zm5.182-9.148a.631.631%200%2000-.628.64c0%20.354.279.639.628.639a.631.631%200%2000.628-.64c0-.355-.28-.64-.628-.64zm-.384-4.992a.24.24%200%2000.244-.249.24.24%200%2000-.244-.249.24.24%200%2000-.244.249c0%20.142.122.249.244.249zM11.991.497a.24.24%200%2000.245-.248A.24.24%200%200011.99%200a.24.24%200%2000-.244.249c0%20.133.108.236.223.247l.021.001zM2.011%206.36a.24.24%200%2000.245-.249.24.24%200%2000-.244-.249.24.24%200%2000-.244.249.24.24%200%2000.244.249zm0%2011.263a.24.24%200%2000-.243.248.24.24%200%2000.244.249.24.24%200%2000.244-.249.252.252%200%2000-.244-.248zm19.995-.018a.24.24%200%2000-.245.248.24.24%200%2000.245.25.24.24%200%2000.244-.25.252.252%200%2000-.244-.248z'%20fill='%233859FF'%20fill-rule='nonzero'%3e%3c/path%3e%3c/svg%3e`,xae=`data:image/svg+xml,%3csvg%20height='1em'%20style='flex:none;line-height:1'%20viewBox='0%200%2024%2024'%20width='1em'%20xmlns='http://www.w3.org/2000/svg'%3e%3ctitle%3eDeepSeek%3c/title%3e%3cpath%20d='M23.748%204.482c-.254-.124-.364.113-.512.234-.051.039-.094.09-.137.136-.372.397-.806.657-1.373.626-.829-.046-1.537.214-2.163.848-.133-.782-.575-1.248-1.247-1.548-.352-.156-.708-.311-.955-.65-.172-.241-.219-.51-.305-.774-.055-.16-.11-.323-.293-.35-.2-.031-.278.136-.356.276-.313.572-.434%201.202-.422%201.84.027%201.436.633%202.58%201.838%203.393.137.093.172.187.129.323-.082.28-.18.552-.266.833-.055.179-.137.217-.329.14a5.526%205.526%200%2001-1.736-1.18c-.857-.828-1.631-1.742-2.597-2.458a11.365%2011.365%200%2000-.689-.471c-.985-.957.13-1.743.388-1.836.27-.098.093-.432-.779-.428-.872.004-1.67.295-2.687.684a3.055%203.055%200%2001-.465.137%209.597%209.597%200%2000-2.883-.102c-1.885.21-3.39%201.102-4.497%202.623C.082%208.606-.231%2010.684.152%2012.85c.403%202.284%201.569%204.175%203.36%205.653%201.858%201.533%203.997%202.284%206.438%202.14%201.482-.085%203.133-.284%204.994-1.86.47.234.962.327%201.78.397.63.059%201.236-.03%201.705-.128.735-.156.684-.837.419-.961-2.155-1.004-1.682-.595-2.113-.926%201.096-1.296%202.746-2.642%203.392-7.003.05-.347.007-.565%200-.845-.004-.17.035-.237.23-.256a4.173%204.173%200%20001.545-.475c1.396-.763%201.96-2.015%202.093-3.517.02-.23-.004-.467-.247-.588zM11.581%2018c-2.089-1.642-3.102-2.183-3.52-2.16-.392.024-.321.471-.235.763.09.288.207.486.371.739.114.167.192.416-.113.603-.673.416-1.842-.14-1.897-.167-1.361-.802-2.5-1.86-3.301-3.307-.774-1.393-1.224-2.887-1.298-4.482-.02-.386.093-.522.477-.592a4.696%204.696%200%20011.529-.039c2.132.312%203.946%201.265%205.468%202.774.868.86%201.525%201.887%202.202%202.891.72%201.066%201.494%202.082%202.48%202.914.348.292.625.514.891.677-.802.09-2.14.11-3.054-.614zm1-6.44a.306.306%200%2001.415-.287.302.302%200%2001.2.288.306.306%200%2001-.31.307.303.303%200%2001-.304-.308zm3.11%201.596c-.2.081-.399.151-.59.16a1.245%201.245%200%2001-.798-.254c-.274-.23-.47-.358-.552-.758a1.73%201.73%200%2001.016-.588c.07-.327-.008-.537-.239-.727-.187-.156-.426-.199-.688-.199a.559.559%200%2001-.254-.078c-.11-.054-.2-.19-.114-.358.028-.054.16-.186.192-.21.356-.202.767-.136%201.146.016.352.144.618.408%201.001.782.391.451.462.576.685.914.176.265.336.537.445.848.067.195-.019.354-.25.452z'%20fill='%234D6BFE'%3e%3c/path%3e%3c/svg%3e`,Sae=`data:image/svg+xml,%3csvg%20height='1em'%20style='flex:none;line-height:1'%20viewBox='0%200%2024%2024'%20width='1em'%20xmlns='http://www.w3.org/2000/svg'%3e%3ctitle%3eMinimax%3c/title%3e%3cdefs%3e%3clinearGradient%20id='lobe-icons-minimax-fill'%20x1='0%25'%20x2='100.182%25'%20y1='50.057%25'%20y2='50.057%25'%3e%3cstop%20offset='0%25'%20stop-color='%23E2167E'%3e%3c/stop%3e%3cstop%20offset='100%25'%20stop-color='%23FE603C'%3e%3c/stop%3e%3c/linearGradient%3e%3c/defs%3e%3cpath%20d='M16.278%202c1.156%200%202.093.927%202.093%202.07v12.501a.74.74%200%2000.744.709.74.74%200%2000.743-.709V9.099a2.06%202.06%200%20012.071-2.049A2.06%202.06%200%200124%209.1v6.561a.649.649%200%2001-.652.645.649.649%200%2001-.653-.645V9.1a.762.762%200%2000-.766-.758.762.762%200%2000-.766.758v7.472a2.037%202.037%200%2001-2.048%202.026%202.037%202.037%200%2001-2.048-2.026v-12.5a.785.785%200%2000-.788-.753.785.785%200%2000-.789.752l-.001%2015.904A2.037%202.037%200%200113.441%2022a2.037%202.037%200%2001-2.048-2.026V18.04c0-.356.292-.645.652-.645.36%200%20.652.289.652.645v1.934c0%20.263.142.506.372.638.23.131.514.131.744%200a.734.734%200%2000.372-.638V4.07c0-1.143.937-2.07%202.093-2.07zm-5.674%200c1.156%200%202.093.927%202.093%202.07v11.523a.648.648%200%2001-.652.645.648.648%200%2001-.652-.645V4.07a.785.785%200%2000-.789-.78.785.785%200%2000-.789.78v14.013a2.06%202.06%200%2001-2.07%202.048%202.06%202.06%200%2001-2.071-2.048V9.1a.762.762%200%2000-.766-.758.762.762%200%2000-.766.758v3.8a2.06%202.06%200%2001-2.071%202.049A2.06%202.06%200%20010%2012.9v-1.378c0-.357.292-.646.652-.646.36%200%20.653.29.653.646V12.9c0%20.418.343.757.766.757s.766-.339.766-.757V9.099a2.06%202.06%200%20012.07-2.048%202.06%202.06%200%20012.071%202.048v8.984c0%20.419.343.758.767.758.423%200%20.766-.339.766-.758V4.07c0-1.143.937-2.07%202.093-2.07z'%20fill='url(%23lobe-icons-minimax-fill)'%20fill-rule='nonzero'%3e%3c/path%3e%3c/svg%3e`,W9={container:`SystemPage-module__container___KAydo`,pageTitle:`SystemPage-module__pageTitle___DiF5E`,content:`SystemPage-module__content___SauLn`,aboutCard:`SystemPage-module__aboutCard___v2-ui`,aboutHeader:`SystemPage-module__aboutHeader___hT4-J`,aboutLogo:`SystemPage-module__aboutLogo___KXoLr`,aboutTitle:`SystemPage-module__aboutTitle___BTLGy`,aboutInfoGrid:`SystemPage-module__aboutInfoGrid___b7AR0`,infoTile:`SystemPage-module__infoTile___6AuIY`,tapTile:`SystemPage-module__tapTile___-9SaX`,tileLabel:`SystemPage-module__tileLabel___eMn4v`,tileHeader:`SystemPage-module__tileHeader___w4Ej0`,tileAction:`SystemPage-module__tileAction___WKXuS`,tileValue:`SystemPage-module__tileValue___Up02X`,tileSub:`SystemPage-module__tileSub___ysVDj`,section:`SystemPage-module__section___Q6rCw`,sectionTitle:`SystemPage-module__sectionTitle___GOXpQ`,sectionDescription:`SystemPage-module__sectionDescription___nI7Jo`,clearLoginActions:`SystemPage-module__clearLoginActions___4ek-m`,infoGrid:`SystemPage-module__infoGrid___NNFgo`,infoRow:`SystemPage-module__infoRow___E8Q0J`,label:`SystemPage-module__label___Xw4tZ`,value:`SystemPage-module__value___pii6g`,modelsList:`SystemPage-module__modelsList___id54Q`,modelItem:`SystemPage-module__modelItem___ZTm4G`,modelTags:`SystemPage-module__modelTags___M0sci`,groupTitle:`SystemPage-module__groupTitle___bTqIN`,groupIcon:`SystemPage-module__groupIcon___-XXrb`,modelTag:`SystemPage-module__modelTag___5Ar53`,modelName:`SystemPage-module__modelName___LKdAK`,modelAlias:`SystemPage-module__modelAlias___zioM-`,versionCheck:`SystemPage-module__versionCheck___V09h4`,versionInfo:`SystemPage-module__versionInfo___cmujE`,versionItem:`SystemPage-module__versionItem___NmHd7`,version:`SystemPage-module__version___XoIFT`,quickLinks:`SystemPage-module__quickLinks___QTmT3`,linkCard:`SystemPage-module__linkCard___iSrVF`,linkIcon:`SystemPage-module__linkIcon___gNqz2`,github:`SystemPage-module__github___V8I3m`,docs:`SystemPage-module__docs___cA-rG`,linkContent:`SystemPage-module__linkContent___Rfh7h`,linkTitle:`SystemPage-module__linkTitle___Zpr4Q`,linkDesc:`SystemPage-module__linkDesc___KKavC`},Cae={devin:{light:Kx,dark:qx},gpt:{light:Yx,dark:Xx},claude:Ux,meta:Gx,gemini:Jx,qwen:zD,kimi:{light:iS,dark:rS},glm:bae,grok:{light:tS,dark:nS},deepseek:xae,minimax:Sae},G9=e=>{if(!e)return null;let t=e.trim().replace(/^v/i,``);if(!t)return null;let n=t.split(/[^0-9]+/).filter(Boolean).map(e=>Number.parseInt(e,10)).filter(Number.isFinite);return n.length?n:null},wae=(e,t)=>{let n=G9(e),r=G9(t);if(!n||!r)return null;let i=Math.max(n.length,r.length);for(let e=0;e<i;e++){let t=n[e]||0,i=r[e]||0;if(t>i)return 1;if(t<i)return-1}return 0};function Tae(){let{t:e,i18n:t}=B(),{showNotification:n,showConfirmation:r}=Jc(),i=rl(e=>e.resolvedTheme),a=Im(),o=Bp(e=>e.config),s=Bp(e=>e.fetchConfig),c=Bp(e=>e.clearCache),l=Bp(e=>e.updateConfigValue),u=lm(e=>e.models),d=lm(e=>e.loading),f=lm(e=>e.error),p=lm(e=>e.fetchModels),[m,h]=(0,y.useState)(),[g,_]=(0,y.useState)(!1),[v,b]=(0,y.useState)(!1),[S,C]=(0,y.useState)(!1),[w,T]=(0,y.useState)(!1),[E,D]=(0,y.useState)(!1),O=(0,y.useRef)(0),k=(0,y.useRef)(null),A=(0,y.useMemo)(()=>t.language?.toLowerCase().startsWith(`zh`)?`其他`:`Other`,[t.language]),j=(0,y.useMemo)(()=>Wp(u,{otherLabel:A}),[u,A]),M=o?.requestLog??!1,N=v!==M,ee=a.connectionStatus===`connected`&&!!o,P=a.serverVersion||e(`system_info.version_unknown`),F=yg(a.serverBuildDate,t.language)||e(`system_info.version_unknown`),I=e=>{let t=Cae[e];return t?typeof t==`string`?t:i===`dark`?t.dark:t.light:null},L=sb(),R=async({forceRefresh:t=!1}={})=>{if(a.connectionStatus!==`connected`){h({type:`warning`,message:e(`notification.connection_required`)});return}if(!a.apiBase){n(e(`notification.connection_required`),`warning`);return}h({type:`muted`,message:e(`system_info.models_loading`)});try{let n=(await L({force:t}))[0],r=await p(a.apiBase,n,t),i=r.length>0;h({type:i?`success`:`warning`,message:i?e(`system_info.models_count`,{count:r.length}):e(`system_info.models_empty`)})}catch(t){let n=t instanceof Error?t.message:typeof t==`string`?t:``,r=n?`: ${n}`:``,i=`${e(`system_info.models_error`)}${r}`;h({type:`error`,message:i})}},te=()=>{r({title:e(`system_info.clear_login_title`,{defaultValue:`Clear Login Storage`}),message:e(`system_info.clear_login_confirm`),variant:`danger`,confirmText:e(`common.confirm`),onConfirm:()=>{a.logout(),!(typeof localStorage>`u`)&&([Vc,`isLoggedIn`,`apiBase`,`apiUrl`,`managementKey`].forEach(e=>localStorage.removeItem(e)),n(e(`notification.login_storage_cleared`),`success`))}})},ne=(0,y.useCallback)(()=>{C(!1),b(M),_(!0)},[M]),re=(0,y.useCallback)(()=>{if(O.current+=1,k.current&&clearTimeout(k.current),O.current>=7){O.current=0,k.current=null,ne();return}k.current=setTimeout(()=>{O.current=0,k.current=null},1500)},[ne]),z=(0,y.useCallback)(()=>{_(!1),C(!1)},[]),ie=async()=>{if(!ee)return;if(!N){_(!1);return}let t=M;T(!0),l(`request-log`,v);try{await Fp.updateRequestLog(v),c(`request-log`),n(e(`notification.request_log_updated`),`success`),_(!1)}catch(r){let i=r instanceof Error?r.message:typeof r==`string`?r:``;l(`request-log`,t),n(`${e(`notification.update_failed`)}${i?`: ${i}`:``}`,`error`)}finally{T(!1)}},ae=(0,y.useCallback)(async()=>{D(!0);try{let t=await Uy.checkLatest(),r=t?.[`latest-version`]??t?.latest_version??t?.latest??``,i=typeof r==`string`?r:String(r??``),o=wae(i,a.serverVersion);if(!i){n(e(`system_info.version_check_error`),`error`);return}if(o===null){n(e(`system_info.version_current_missing`),`warning`);return}o>0?n(e(`system_info.version_update_available`,{version:i}),`warning`):n(e(`system_info.version_is_latest`),`success`)}catch(t){let r=t instanceof Error?t.message:typeof t==`string`?t:``,i=r?`: ${r}`:``;n(`${e(`system_info.version_check_error`)}${i}`,`error`)}finally{D(!1)}},[a.serverVersion,n,e]);return(0,y.useEffect)(()=>{s().catch(()=>{})},[s]),(0,y.useEffect)(()=>{g&&!S&&b(M)},[g,S,M]),(0,y.useEffect)(()=>()=>{k.current&&clearTimeout(k.current)},[]),(0,y.useEffect)(()=>{R()},[a.connectionStatus,a.apiBase]),(0,V.jsxs)(`div`,{className:W9.container,children:[(0,V.jsx)(`h1`,{className:W9.pageTitle,children:e(`system_info.title`)}),(0,V.jsxs)(`div`,{className:W9.content,children:[(0,V.jsxs)(rM,{className:W9.aboutCard,children:[(0,V.jsxs)(`div`,{className:W9.aboutHeader,children:[(0,V.jsx)(`img`,{src:x,alt:`CPAMC`,className:W9.aboutLogo}),(0,V.jsx)(`div`,{className:W9.aboutTitle,children:e(`system_info.about_title`)})]}),(0,V.jsxs)(`div`,{className:W9.aboutInfoGrid,children:[(0,V.jsxs)(`button`,{type:`button`,className:`${W9.infoTile} ${W9.tapTile}`,onClick:re,children:[(0,V.jsx)(`div`,{className:W9.tileHeader,children:(0,V.jsx)(`div`,{className:W9.tileLabel,children:e(`footer.version`)})}),(0,V.jsx)(`div`,{className:W9.tileValue,children:`v1.25.3`})]}),(0,V.jsxs)(`div`,{className:W9.infoTile,children:[(0,V.jsxs)(`div`,{className:W9.tileHeader,children:[(0,V.jsx)(`div`,{className:W9.tileLabel,children:e(`footer.api_version`)}),(0,V.jsx)(H,{type:`button`,variant:`ghost`,size:`sm`,className:W9.tileAction,onClick:()=>void ae(),loading:E,title:e(`system_info.version_check_button`),"aria-label":e(`system_info.version_check_button`),children:e(`system_info.version_check_button`)})]}),(0,V.jsx)(`div`,{className:W9.tileValue,children:P})]}),(0,V.jsxs)(`div`,{className:W9.infoTile,children:[(0,V.jsx)(`div`,{className:W9.tileLabel,children:e(`footer.build_date`)}),(0,V.jsx)(`div`,{className:W9.tileValue,children:F})]}),(0,V.jsxs)(`div`,{className:W9.infoTile,children:[(0,V.jsx)(`div`,{className:W9.tileLabel,children:e(`connection.status`)}),(0,V.jsx)(`div`,{className:W9.tileValue,children:e(`common.${a.connectionStatus}_status`)}),(0,V.jsx)(`div`,{className:W9.tileSub,children:a.apiBase||`-`})]})]})]}),(0,V.jsxs)(rM,{title:e(`system_info.quick_links_title`),children:[(0,V.jsx)(`p`,{className:W9.sectionDescription,children:e(`system_info.quick_links_desc`)}),(0,V.jsxs)(`div`,{className:W9.quickLinks,children:[(0,V.jsxs)(`a`,{href:`https://github.com/router-for-me/CLIProxyAPI`,target:`_blank`,rel:`noopener noreferrer`,className:W9.linkCard,children:[(0,V.jsx)(`div`,{className:`${W9.linkIcon} ${W9.github}`,children:(0,V.jsx)(Ys,{size:22})}),(0,V.jsxs)(`div`,{className:W9.linkContent,children:[(0,V.jsxs)(`div`,{className:W9.linkTitle,children:[e(`system_info.link_main_repo`),(0,V.jsx)(Xs,{size:14})]}),(0,V.jsx)(`div`,{className:W9.linkDesc,children:e(`system_info.link_main_repo_desc`)})]})]}),(0,V.jsxs)(`a`,{href:`https://github.com/router-for-me/Cli-Proxy-API-Management-Center`,target:`_blank`,rel:`noopener noreferrer`,className:W9.linkCard,children:[(0,V.jsx)(`div`,{className:`${W9.linkIcon} ${W9.github}`,children:(0,V.jsx)(Qs,{size:22})}),(0,V.jsxs)(`div`,{className:W9.linkContent,children:[(0,V.jsxs)(`div`,{className:W9.linkTitle,children:[e(`system_info.link_webui_repo`),(0,V.jsx)(Xs,{size:14})]}),(0,V.jsx)(`div`,{className:W9.linkDesc,children:e(`system_info.link_webui_repo_desc`)})]})]}),(0,V.jsxs)(`a`,{href:`https://help.router-for.me/`,target:`_blank`,rel:`noopener noreferrer`,className:W9.linkCard,children:[(0,V.jsx)(`div`,{className:`${W9.linkIcon} ${W9.docs}`,children:(0,V.jsx)(Zs,{size:22})}),(0,V.jsxs)(`div`,{className:W9.linkContent,children:[(0,V.jsxs)(`div`,{className:W9.linkTitle,children:[e(`system_info.link_docs`),(0,V.jsx)(Xs,{size:14})]}),(0,V.jsx)(`div`,{className:W9.linkDesc,children:e(`system_info.link_docs_desc`)})]})]})]})]}),(0,V.jsxs)(rM,{title:e(`system_info.models_title`),extra:(0,V.jsx)(H,{variant:`secondary`,size:`sm`,onClick:()=>R({forceRefresh:!0}),loading:d,children:e(`common.refresh`)}),children:[(0,V.jsx)(`p`,{className:W9.sectionDescription,children:e(`system_info.models_desc`)}),m&&(0,V.jsx)(`div`,{className:`status-badge ${m.type}`,children:m.message}),f&&(0,V.jsx)(`div`,{className:`error-box`,children:f}),d?(0,V.jsx)(`div`,{className:`hint`,children:e(`common.loading`)}):u.length===0?(0,V.jsx)(`div`,{className:`hint`,children:e(`system_info.models_empty`)}):(0,V.jsx)(`div`,{className:`item-list`,children:j.map(t=>{let n=I(t.id);return(0,V.jsxs)(`div`,{className:`item-row`,children:[(0,V.jsxs)(`div`,{className:`item-meta`,children:[(0,V.jsxs)(`div`,{className:W9.groupTitle,children:[n&&(0,V.jsx)(`img`,{src:n,alt:``,className:W9.groupIcon}),(0,V.jsx)(`span`,{className:`item-title`,children:t.label})]}),(0,V.jsx)(`div`,{className:`item-subtitle`,children:e(`system_info.models_count`,{count:t.items.length})})]}),(0,V.jsx)(`div`,{className:W9.modelTags,children:t.items.map(e=>(0,V.jsxs)(`span`,{className:W9.modelTag,title:e.description||``,children:[(0,V.jsx)(`span`,{className:W9.modelName,children:e.name}),e.alias&&(0,V.jsx)(`span`,{className:W9.modelAlias,children:e.alias})]},`${e.name}-${e.alias??`default`}`))})]},t.id)})})]}),(0,V.jsxs)(rM,{title:e(`system_info.clear_login_title`),children:[(0,V.jsx)(`p`,{className:W9.sectionDescription,children:e(`system_info.clear_login_desc`)}),(0,V.jsx)(`div`,{className:W9.clearLoginActions,children:(0,V.jsx)(H,{variant:`danger`,onClick:te,children:e(`system_info.clear_login_button`)})})]})]}),(0,V.jsx)($m,{open:g,onClose:z,title:e(`basic_settings.request_log_title`),footer:(0,V.jsxs)(V.Fragment,{children:[(0,V.jsx)(H,{variant:`secondary`,onClick:z,disabled:w,children:e(`common.cancel`)}),(0,V.jsx)(H,{onClick:ie,loading:w,disabled:!ee||!N,children:e(`common.save`)})]}),children:(0,V.jsxs)(`div`,{className:`request-log-modal`,children:[(0,V.jsx)(`div`,{className:`status-badge warning`,children:e(`basic_settings.request_log_warning`)}),(0,V.jsx)($C,{label:e(`basic_settings.request_log_enable`),labelPosition:`left`,checked:v,disabled:!ee||w,onChange:e=>{b(e),C(!0)}})]})})]})}var Eae=e=>[{path:`/`,element:(0,V.jsx)(dx,{})},{path:`/dashboard`,element:(0,V.jsx)(dx,{})},{path:`/settings`,element:(0,V.jsx)(ni,{to:`/config`,replace:!0})},{path:`/api-keys`,element:(0,V.jsx)(ni,{to:`/config`,replace:!0})},{path:`/quick-start`,element:(0,V.jsx)(PD,{fixedBrand:`apikeyFun`})},{path:`/quick-start/*`,element:(0,V.jsx)(ni,{to:`/quick-start`,replace:!0})},{path:`/ai-providers`,element:(0,V.jsx)(PD,{})},{path:`/ai-providers/*`,element:(0,V.jsx)(ni,{to:`/ai-providers`,replace:!0})},{path:`/auth-files`,element:(0,V.jsx)(nM,{})},{path:`/auth-files/oauth-excluded`,element:(0,V.jsx)(gM,{})},{path:`/auth-files/oauth-model-alias`,element:(0,V.jsx)(Ate,{})},{path:`/oauth`,element:(0,V.jsx)($M,{})},{path:`/quota`,element:(0,V.jsx)(TP,{})},...e?[{path:`/plugin-pages/:pluginId/:menuIndex`,element:(0,V.jsx)(AP,{})},{path:`/plugins`,element:(0,V.jsx)(JP,{})},{path:`/plugin-store`,element:(0,V.jsx)(CF,{})},{path:`/plugins/*`,element:(0,V.jsx)(ni,{to:`/plugins`,replace:!0})}]:[{path:`/plugin-pages/*`,element:(0,V.jsx)(ni,{to:`/`,replace:!0})},{path:`/plugins/*`,element:(0,V.jsx)(ni,{to:`/`,replace:!0})},{path:`/plugin-store`,element:(0,V.jsx)(ni,{to:`/`,replace:!0})}],{path:`/config`,element:(0,V.jsx)(Pie,{})},{path:`/logs`,element:(0,V.jsx)(yae,{})},{path:`/system`,element:(0,V.jsx)(Tae,{})},{path:`*`,element:(0,V.jsx)(ni,{to:`/`,replace:!0})}];function Dae({location:e}){return xr(Eae(Im(e=>e.supportsPlugin)),e)}function Oae(e){if(!(e.metaKey||e.ctrlKey)||e.key!==`b`&&e.key!==`B`)return!1;let t=e.target;return!(t&&(t.tagName===`INPUT`||t.tagName===`TEXTAREA`||t.isContentEditable))}function kae(e){return e?`⌘B`:`Ctrl+B`}var K9={dashboard:(0,V.jsx)($s,{size:18}),quickStart:(0,V.jsx)(ec,{size:18}),aiProviders:(0,V.jsx)(ic,{size:18}),authFiles:(0,V.jsx)(ac,{size:18}),oauth:(0,V.jsx)(oc,{size:18}),quota:(0,V.jsx)(sc,{size:18}),plugins:(0,V.jsx)(nc,{size:18}),pluginStore:(0,V.jsx)(rc,{size:18}),config:(0,V.jsx)(tc,{size:18}),logs:(0,V.jsx)(cc,{size:18}),system:(0,V.jsx)(lc,{size:18})},q9=`sidebar-nav-tooltip`,J9=8,Aae=e=>e.flatMap(e=>e.kind===`drawer`?e.children:[e]);function Y9(e,t,n){(0,y.useEffect)(()=>{if(!e)return;let r=e=>{t.current?.contains(e.target)||n()},i=e=>{e.key===`Escape`&&n()};return document.addEventListener(`mousedown`,r),document.addEventListener(`keydown`,i),()=>{document.removeEventListener(`mousedown`,r),document.removeEventListener(`keydown`,i)}},[e,t,n])}function X9({src:e}){let[t,n]=(0,y.useState)(!1);return e&&!t?(0,V.jsx)(`img`,{src:e,alt:``,onError:()=>n(!0)}):(0,V.jsx)(nc,{size:18})}var Z9={width:16,height:16,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:2,strokeLinecap:`round`,strokeLinejoin:`round`,"aria-hidden":`true`,focusable:`false`},Q9={refresh:(0,V.jsxs)(`svg`,{...Z9,children:[(0,V.jsx)(`path`,{d:`M21 12a9 9 0 1 1-9-9c2.52 0 4.93 1 6.74 2.74L21 8`}),(0,V.jsx)(`path`,{d:`M21 3v5h-5`})]}),menu:(0,V.jsxs)(`svg`,{...Z9,children:[(0,V.jsx)(`path`,{d:`M4 7h16`}),(0,V.jsx)(`path`,{d:`M4 12h16`}),(0,V.jsx)(`path`,{d:`M4 17h16`})]}),close:(0,V.jsxs)(`svg`,{...Z9,children:[(0,V.jsx)(`path`,{d:`M18 6 6 18`}),(0,V.jsx)(`path`,{d:`m6 6 12 12`})]}),chevronLeft:(0,V.jsx)(`svg`,{...Z9,children:(0,V.jsx)(`path`,{d:`m14 18-6-6 6-6`})}),chevronRight:(0,V.jsx)(`svg`,{...Z9,children:(0,V.jsx)(`path`,{d:`m10 6 6 6-6 6`})}),language:(0,V.jsxs)(`svg`,{...Z9,children:[(0,V.jsx)(`circle`,{cx:`12`,cy:`12`,r:`10`}),(0,V.jsx)(`path`,{d:`M2 12h20`}),(0,V.jsx)(`path`,{d:`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`})]}),sun:(0,V.jsxs)(`svg`,{...Z9,children:[(0,V.jsx)(`circle`,{cx:`12`,cy:`12`,r:`4`}),(0,V.jsx)(`path`,{d:`M12 2v2`}),(0,V.jsx)(`path`,{d:`M12 20v2`}),(0,V.jsx)(`path`,{d:`m4.93 4.93 1.41 1.41`}),(0,V.jsx)(`path`,{d:`m17.66 17.66 1.41 1.41`}),(0,V.jsx)(`path`,{d:`M2 12h2`}),(0,V.jsx)(`path`,{d:`M20 12h2`}),(0,V.jsx)(`path`,{d:`m6.34 17.66-1.41 1.41`}),(0,V.jsx)(`path`,{d:`m19.07 4.93-1.41 1.41`})]}),moon:(0,V.jsx)(`svg`,{...Z9,children:(0,V.jsx)(`path`,{d:`M12 3a6 6 0 0 0 9 9 9 9 0 1 1-9-9z`})}),whiteTheme:(0,V.jsxs)(`svg`,{...Z9,children:[(0,V.jsx)(`circle`,{cx:`12`,cy:`12`,r:`7`}),(0,V.jsx)(`circle`,{cx:`12`,cy:`12`,r:`3`,fill:`currentColor`,stroke:`none`})]}),autoTheme:(0,V.jsxs)(`svg`,{...Z9,children:[(0,V.jsx)(`defs`,{children:(0,V.jsx)(`clipPath`,{id:`mainLayoutAutoThemeSunLeftHalf`,children:(0,V.jsx)(`rect`,{x:`0`,y:`0`,width:`12`,height:`24`})})}),(0,V.jsx)(`circle`,{cx:`12`,cy:`12`,r:`4`}),(0,V.jsx)(`circle`,{cx:`12`,cy:`12`,r:`4`,clipPath:`url(#mainLayoutAutoThemeSunLeftHalf)`,fill:`currentColor`}),(0,V.jsx)(`path`,{d:`M12 2v2`}),(0,V.jsx)(`path`,{d:`M12 20v2`}),(0,V.jsx)(`path`,{d:`M4.93 4.93l1.41 1.41`}),(0,V.jsx)(`path`,{d:`M17.66 17.66l1.41 1.41`}),(0,V.jsx)(`path`,{d:`M2 12h2`}),(0,V.jsx)(`path`,{d:`M20 12h2`}),(0,V.jsx)(`path`,{d:`M6.34 17.66l-1.41 1.41`}),(0,V.jsx)(`path`,{d:`M19.07 4.93l-1.41 1.41`})]}),logout:(0,V.jsxs)(`svg`,{...Z9,children:[(0,V.jsx)(`path`,{d:`M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4`}),(0,V.jsx)(`path`,{d:`m16 17 5-5-5-5`}),(0,V.jsx)(`path`,{d:`M21 12H9`})]})},jae=[{key:`auto`,labelKey:`theme.auto`,colors:{bg:`linear-gradient(135deg, #ffffff 0 50%, #111111 50% 100%)`,card:`linear-gradient(135deg, #ffffff 0 50%, #1a1a1a 50% 100%)`,border:`#bdbdbd`,text:`#2d2a26`,textMuted:`linear-gradient(135deg, #c9c9c9 0 50%, #5a5a5a 50% 100%)`}},{key:`white`,labelKey:`theme.white`,colors:{bg:`#ffffff`,card:`#ffffff`,border:`#e5e5e5`,text:`#2d2a26`,textMuted:`#a29c95`}},{key:`light`,labelKey:`theme.light`,colors:{bg:`#faf9f5`,card:`#f0eee8`,border:`#e3e1db`,text:`#2d2a26`,textMuted:`#a29c95`}},{key:`dark`,labelKey:`theme.dark`,colors:{bg:`#151412`,card:`#1d1b18`,border:`#3a3530`,text:`#f6f4f1`,textMuted:`#9c958d`}}];function Mae(){let{t:e}=B(),{showNotification:t}=Jc(),n=fr(),r=Im(e=>e.logout),i=Im(e=>e.connectionStatus),a=Im(e=>e.apiBase),o=Im(e=>e.supportsPlugin),s=Bp(e=>e.fetchConfig),c=Bp(e=>e.clearCache),l=Bp(e=>e.config),u=rl(e=>e.theme),d=rl(e=>e.setTheme),f=hl(e=>e.language),p=hl(e=>e.setLanguage),[m,h]=(0,y.useState)(!1),[g,_]=(0,y.useState)(!1),[v,b]=(0,y.useState)(null),[S,C]=(0,y.useState)(null),[w,T]=(0,y.useState)(!1),[E,D]=(0,y.useState)(!1),[O,k]=(0,y.useState)([]),[A,j]=(0,y.useState)(()=>new Set),M=(0,y.useRef)(null),N=(0,y.useRef)(0),ee=(0,y.useRef)(null),P=(0,y.useRef)(null),F=(0,y.useRef)(null),I=(0,y.useRef)(null),L=(0,y.useRef)(null),R=e(`title.abbr`),te=n.pathname.startsWith(`/logs`),ne=n.pathname.startsWith(`/plugin-pages`),re=!g||m;(0,y.useLayoutEffect)(()=>{let e=()=>{let e=L.current?.offsetHeight;e&&document.documentElement.style.setProperty(`--header-height`,`${e}px`)};e();let t=typeof ResizeObserver<`u`&&L.current?new ResizeObserver(e):null;return t&&L.current&&t.observe(L.current),window.addEventListener(`resize`,e),()=>{t&&t.disconnect(),window.removeEventListener(`resize`,e)}},[]),(0,y.useLayoutEffect)(()=>{if(!S)return;let e=()=>{let e=ee.current;if(!e)return;let t=e.offsetHeight/2,n=J9+t,r=Math.max(n,window.innerHeight-J9-t),i=Math.min(r,Math.max(n,S.anchorTop));C(e=>!e||e.targetID!==S.targetID||e.top===i?e:{...e,top:i})};return e(),window.addEventListener(`resize`,e),()=>window.removeEventListener(`resize`,e)},[S]),(0,y.useLayoutEffect)(()=>{let e=()=>{let e=M.current;if(!e)return;let t=e.getBoundingClientRect(),n=t.left+t.width/2;document.documentElement.style.setProperty(`--content-center-x`,`${n}px`)};e();let t=typeof ResizeObserver<`u`&&M.current?new ResizeObserver(e):null;return t&&M.current&&t.observe(M.current),window.addEventListener(`resize`,e),()=>{t&&t.disconnect(),window.removeEventListener(`resize`,e),document.documentElement.style.removeProperty(`--content-center-x`)}},[]);let z=(0,y.useCallback)(()=>T(!1),[]),ie=(0,y.useCallback)(()=>D(!1),[]);Y9(w,F,z),Y9(E,I,ie);let ae=(0,y.useCallback)(()=>{T(e=>!e),D(!1)},[]),oe=(0,y.useCallback)(()=>{D(e=>!e),T(!1)},[]),se=(0,y.useCallback)(e=>{d(e),D(!1)},[d]),ce=(0,y.useCallback)(e=>{ll(e)&&(p(e),T(!1))},[p]);(0,y.useEffect)(()=>{s().catch(()=>{})},[s]);let le=(0,y.useCallback)(async()=>{if(i!==`connected`||!o){k([]);return}try{let e=await ib.list();k(MM(e.plugins))}catch{k([])}},[i,o]),ue=(0,y.useCallback)(async()=>{let e=++N.current;if(i!==`connected`){b(null);return}try{let t=await jy.list();if(e!==N.current)return;b(Array.isArray(t?.files)?t.files.length:null)}catch{if(e!==N.current)return;b(null)}},[i]);(0,y.useEffect)(()=>{let e=window.setTimeout(()=>{le(),ue()},0);return window.addEventListener(yM,le),window.addEventListener(bj,ue),()=>{N.current+=1,window.clearTimeout(e),window.removeEventListener(yM,le),window.removeEventListener(bj,ue)}},[a,le,ue]);let de=O.reduce((e,t)=>{let n=e.find(e=>e.pluginID===t.pluginID);return n?(n.entries.push(t),e):(e.push({pluginID:t.pluginID,pluginTitle:t.pluginTitle,entries:[t]}),e)},[]),fe=o?de.flatMap(t=>{if(t.entries.length===1){let e=t.entries[0],n=CM(e.pluginLogo,a);return[{path:e.route,label:e.label,meta:e.description,icon:(0,V.jsx)(X9,{src:n})}]}let n=CM(t.entries[0]?.pluginLogo??``,a);return[{kind:`drawer`,id:`plugin-pages-${t.pluginID}`,label:t.pluginTitle,meta:e(`plugin_resource.page_count`,{count:t.entries.length}),icon:(0,V.jsx)(X9,{src:n}),children:t.entries.map(e=>({path:e.route,label:e.label,meta:e.description,icon:(0,V.jsx)(`span`,{className:`nav-sub-dot`,"aria-hidden":`true`})}))}]}):[],pe=sC(l),me={path:`/quick-start`,label:pe?MS:void 0,labelKey:pe?void 0:`nav.quick_start`,metaKey:`nav_meta.quick_start`,icon:K9.quickStart},he=[{id:`operate`,labelKey:`nav_groups.operate`,items:[{path:`/`,labelKey:`nav.dashboard`,metaKey:`nav_meta.dashboard`,icon:K9.dashboard},...pe?[]:[me]]},{id:`gateway`,labelKey:`nav_groups.gateway`,items:[{path:`/ai-providers`,labelKey:`nav.ai_providers`,metaKey:`nav_meta.ai_providers`,icon:K9.aiProviders},{path:`/auth-files`,labelKey:`nav.auth_files`,metaKey:`nav_meta.auth_files`,badge:v??void 0,badgeLabel:typeof v==`number`?e(`sidebar.auth_files_count`,{count:v}):void 0,icon:K9.authFiles},{path:`/oauth`,labelKey:`nav.oauth`,metaKey:`nav_meta.oauth`,icon:K9.oauth},...pe?[me]:[]]},{id:`observe`,labelKey:`nav_groups.observe`,items:[{path:`/quota`,labelKey:`nav.quota_management`,metaKey:`nav_meta.quota_management`,icon:K9.quota},{path:`/logs`,labelKey:`nav.logs`,metaKey:`nav_meta.logs`,icon:K9.logs}]},{id:`control`,labelKey:`nav_groups.control`,items:[{path:`/config`,labelKey:`nav.config_management`,metaKey:`nav_meta.config_management`,icon:K9.config},...o?[{path:`/plugins`,labelKey:`nav.plugins`,metaKey:`nav_meta.plugins`,icon:K9.plugins},{path:`/plugin-store`,labelKey:`nav.plugin_store`,metaKey:`nav_meta.plugin_store`,icon:K9.pluginStore}]:[],{path:`/system`,labelKey:`nav.system_info`,metaKey:`nav_meta.system_info`,icon:K9.system}]},...fe.length>0?[{id:`plugin-pages`,labelKey:`nav_groups.plugin_pages`,items:fe}]:[]],ge=he.flatMap(e=>Aae(e.items)).map(e=>e.path),_e=e=>{let t=e.length>1&&e.endsWith(`/`)?e.slice(0,-1):e,n=t===`/dashboard`?`/`:t,r=ge.indexOf(`/auth-files`);if(r!==-1){if(n===`/auth-files`)return r;if(n.startsWith(`/auth-files/`))return n.startsWith(`/auth-files/oauth-excluded`)?r+.1:n.startsWith(`/auth-files/oauth-model-alias`)?r+.2:r+.05}let i=ge.indexOf(n);if(i!==-1)return i;let a=ge.findIndex(e=>e!==`/`&&n.startsWith(`${e}/`));return a===-1?null:a},ve=(0,y.useCallback)((e,t)=>{let n=e=>{let t=e.length>1&&e.endsWith(`/`)?e.slice(0,-1):e;return t===`/dashboard`?`/`:t},r=n(e),i=n(t),a=e=>e===`/auth-files`||e.startsWith(`/auth-files/`);return a(r)&&a(i)?`ios`:`vertical`},[]),ye=async()=>{c();let n=(await Promise.allSettled([s(!0),le(),ue(),aee()])).find(e=>e.status===`rejected`);if(n&&n.status===`rejected`){let r=n.reason,i=typeof r==`string`?r:r instanceof Error?r.message:``;t(`${e(`notification.refresh_failed`)}${i?`: ${i}`:``}`,`error`);return}t(e(`notification.data_refreshed`),`success`)},be=(0,y.useCallback)(e=>{j(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})},[]),xe=(0,y.useCallback)((e,t,n,r)=>{let i=e.currentTarget.getBoundingClientRect(),a=i.top+i.height/2;C({targetID:t,label:n,meta:r,anchorTop:a,top:a})},[]),Se=(0,y.useCallback)(()=>C(null),[]),Ce=(0,y.useCallback)((e,t,n,r)=>{let i=P.current;i&&i!==e.currentTarget||xe(e,t,n,r)},[xe]),we=(0,y.useCallback)(()=>{P.current||Se()},[Se]),Te=(0,y.useCallback)((e,t,n,r)=>{P.current=e.currentTarget,xe(e,t,n,r)},[xe]),Ee=(0,y.useCallback)((e,t,n,r)=>{P.current===e.currentTarget&&(P.current=null),e.currentTarget.matches(`:hover`)?xe(e,t,n,r):Se()},[Se,xe]),De=kae((0,y.useMemo)(()=>{if(typeof navigator>`u`)return!1;let e=navigator.userAgentData?.platform||navigator.platform||navigator.userAgent||``;return/(Mac|iPhone|iPod|iPad)/i.test(e)},[]));(0,y.useEffect)(()=>{let e=e=>{Oae(e)&&(e.preventDefault(),Se(),_(e=>!e))};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[Se]);let Oe=(e,t)=>typeof e==`number`?(0,V.jsxs)(V.Fragment,{children:[e>0?(0,V.jsx)(`span`,{className:`nav-badge`,"aria-hidden":`true`,children:e}):null,t?(0,V.jsx)(`span`,{className:`nav-badge-sr-only`,children:t}):null]}):null,ke=(t,n=`nav-item`)=>{let r=t.label??(t.labelKey?e(t.labelKey):``),i=t.meta??(t.metaKey?e(t.metaKey):``),a=t.badgeLabel?`${r}, ${t.badgeLabel}`:r;return(0,V.jsxs)(Zi,{to:t.path,className:({isActive:e})=>`${n} ${e?`active`:``}`,onClick:()=>{P.current=null,h(!1),Se()},"aria-label":re?void 0:a,"aria-describedby":!re&&i&&S?.targetID===t.path?q9:void 0,onMouseEnter:re?void 0:e=>Ce(e,t.path,r,i),onMouseLeave:re?void 0:we,onFocus:re?void 0:e=>Te(e,t.path,r,i),onBlur:re?void 0:e=>Ee(e,t.path,r,i),children:[(0,V.jsx)(`span`,{className:`nav-icon`,children:t.icon}),re?(0,V.jsxs)(V.Fragment,{children:[(0,V.jsx)(`span`,{className:`nav-text`,children:(0,V.jsx)(`span`,{className:`nav-label`,children:r})}),Oe(t.badge,t.badgeLabel)]}):Oe(t.badge)]},t.path)},Ae=e=>{if(e.kind!==`drawer`)return ke(e);let t=e.children.some(e=>e.path===n.pathname),r=t||A.has(e.id);return(0,V.jsxs)(`div`,{className:`nav-drawer ${r?`open`:``}`,children:[(0,V.jsxs)(`button`,{type:`button`,className:`nav-item nav-drawer-toggle ${t?`active`:``} ${r?`open`:``}`,onClick:()=>be(e.id),"aria-label":re?void 0:e.label,"aria-describedby":!re&&e.meta&&S?.targetID===e.id?q9:void 0,"aria-expanded":r,onMouseEnter:re?void 0:t=>Ce(t,e.id,e.label,e.meta),onMouseLeave:re?void 0:we,onFocus:re?void 0:t=>Te(t,e.id,e.label,e.meta),onBlur:re?void 0:t=>Ee(t,e.id,e.label,e.meta),children:[(0,V.jsx)(`span`,{className:`nav-icon`,children:e.icon}),re&&(0,V.jsxs)(V.Fragment,{children:[(0,V.jsx)(`span`,{className:`nav-text`,children:(0,V.jsx)(`span`,{className:`nav-label`,children:e.label})}),(0,V.jsx)(`span`,{className:`nav-drawer-caret`,"aria-hidden":`true`,children:(0,V.jsx)(Rs,{size:14})})]})]}),r?(0,V.jsx)(`div`,{className:`nav-sub-list`,children:e.children.map(e=>ke(e,`nav-item nav-sub-item`))}):null]},e.id)},je=m?e(`sidebar.toggle_collapse`,{defaultValue:`Close navigation`}):e(`sidebar.toggle_expand`,{defaultValue:`Open navigation`}),Me=e(g?`sidebar.expand`:`sidebar.collapse`);return(0,V.jsxs)(`div`,{className:`app-shell ${g?`sidebar-is-collapsed`:``} ${ne?`plugin-resource-shell`:``}`,children:[(0,V.jsx)(`div`,{className:`top-gradient-blur`,"aria-hidden":`true`}),(0,V.jsxs)(`header`,{className:`main-header`,ref:L,children:[(0,V.jsx)(`button`,{type:`button`,className:`sidebar-toggle-floating`,onClick:()=>{Se(),_(e=>!e)},onMouseEnter:e=>Ce(e,`sidebar-toggle`,Me,De),onMouseLeave:we,onFocus:e=>Te(e,`sidebar-toggle`,Me,De),onBlur:e=>Ee(e,`sidebar-toggle`,Me,De),"aria-label":`${Me} (${De})`,"aria-describedby":S?.targetID===`sidebar-toggle`?q9:void 0,children:g?Q9.chevronRight:Q9.chevronLeft}),(0,V.jsx)(`div`,{className:`mobile-sidebar-actions`,children:(0,V.jsx)(H,{className:`mobile-menu-btn`,variant:`ghost`,size:`sm`,onClick:()=>h(e=>!e),title:je,"aria-label":je,children:m?Q9.close:Q9.menu})}),(0,V.jsxs)(`div`,{className:`header-actions floating-actions`,children:[(0,V.jsx)(H,{variant:`ghost`,size:`sm`,onClick:ye,title:e(`header.refresh_all`),children:Q9.refresh}),(0,V.jsxs)(`div`,{className:`language-menu ${w?`open`:``}`,ref:F,children:[(0,V.jsx)(H,{variant:`ghost`,size:`sm`,onClick:ae,title:e(`language.switch`),"aria-label":e(`language.switch`),"aria-haspopup":`menu`,"aria-expanded":w,children:Q9.language}),w&&(0,V.jsx)(`div`,{className:`notification entering language-menu-popover`,role:`menu`,"aria-label":e(`language.switch`),children:Wc.map(t=>(0,V.jsxs)(`button`,{type:`button`,className:`language-menu-option ${f===t?`active`:``}`,onClick:()=>ce(t),role:`menuitemradio`,"aria-checked":f===t,children:[(0,V.jsx)(`span`,{children:e(Gc[t])}),f===t?(0,V.jsx)(`span`,{className:`language-menu-check`,children:`✓`}):null]},t))})]}),(0,V.jsxs)(`div`,{className:`theme-menu ${E?`open`:``}`,ref:I,children:[(0,V.jsx)(H,{variant:`ghost`,size:`sm`,onClick:oe,title:e(`theme.switch`),"aria-label":e(`theme.switch`),"aria-haspopup":`menu`,"aria-expanded":E,children:u===`auto`?Q9.autoTheme:u===`dark`?Q9.moon:u===`white`?Q9.whiteTheme:Q9.sun}),E&&(0,V.jsx)(`div`,{className:`notification entering theme-menu-popover`,role:`menu`,"aria-label":e(`theme.switch`),children:jae.map(t=>(0,V.jsxs)(`button`,{type:`button`,className:`theme-card ${u===t.key?`active`:``}`,onClick:()=>se(t.key),role:`menuitemradio`,"aria-checked":u===t.key,children:[(0,V.jsxs)(`div`,{className:`theme-card-preview`,style:{background:t.colors.bg,border:`1px solid ${t.colors.border}`},children:[(0,V.jsx)(`div`,{className:`theme-card-header`,style:{background:t.colors.card,borderBottom:`1px solid ${t.colors.border}`}}),(0,V.jsxs)(`div`,{className:`theme-card-body`,children:[(0,V.jsx)(`div`,{className:`theme-card-sidebar`,style:{background:t.colors.card,borderRight:`1px solid ${t.colors.border}`}}),(0,V.jsxs)(`div`,{className:`theme-card-content`,style:{background:t.colors.bg},children:[(0,V.jsx)(`div`,{className:`theme-card-line`,style:{background:t.colors.textMuted}}),(0,V.jsx)(`div`,{className:`theme-card-line short`,style:{background:t.colors.textMuted}})]})]})]}),(0,V.jsx)(`span`,{className:`theme-card-label`,children:e(t.labelKey)})]},t.key))})]}),(0,V.jsx)(H,{variant:`ghost`,size:`sm`,onClick:r,title:e(`header.logout`),children:Q9.logout})]})]}),(0,V.jsxs)(`div`,{className:`main-body`,children:[(0,V.jsx)(`button`,{type:`button`,className:`sidebar-backdrop ${m?`visible`:``}`,onClick:()=>h(!1),"aria-label":e(`common.close`),"aria-hidden":!m,tabIndex:m?0:-1}),(0,V.jsxs)(`aside`,{className:`sidebar ${m?`open`:``} ${g?`collapsed`:``}`,children:[(0,V.jsx)(`div`,{className:`sidebar-header`,children:(0,V.jsxs)(`div`,{className:`sidebar-brand`,title:`CLI Proxy API Management Center`,children:[(0,V.jsx)(`img`,{src:x,alt:`CPAMC logo`,className:`sidebar-brand-logo`}),re&&(0,V.jsxs)(`span`,{className:`sidebar-brand-text`,children:[(0,V.jsx)(`span`,{className:`sidebar-brand-title`,children:R}),(0,V.jsx)(`span`,{className:`sidebar-brand-subtitle`,children:e(`sidebar.subtitle`)})]})]})}),(0,V.jsx)(`div`,{className:`nav-section`,children:he.map((t,n)=>(0,V.jsxs)(`div`,{className:`nav-group`,children:[re?(0,V.jsx)(`div`,{className:`nav-group-label`,children:e(t.labelKey)}):n>0&&(0,V.jsx)(`div`,{className:`nav-group-divider`,"aria-hidden":`true`}),t.items.map(e=>Ae(e))]},t.id))})]}),S&&(0,V.jsxs)(`div`,{ref:ee,id:q9,className:`nav-tooltip`,role:`tooltip`,style:{top:S.top},children:[(0,V.jsx)(`span`,{className:`nav-tooltip-label`,"aria-hidden":`true`,children:S.label}),S.meta?(0,V.jsx)(`span`,{className:`nav-tooltip-meta`,children:S.meta}):null]}),(0,V.jsx)(`div`,{className:`content${te?` content-logs`:``}${ne?` content-plugin-resource`:``}`,ref:M,children:(0,V.jsx)(`main`,{className:`main-content${te?` main-content-logs`:``}${ne?` main-content-plugin-resource`:``}`,children:(0,V.jsx)(iee,{render:e=>(0,V.jsx)(Dae,{location:e}),getRouteOrder:_e,getTransitionVariant:ve,scrollContainerRef:M})})})]})]})}function Nae({children:e}){let t=fr(),n=Im(e=>e.isAuthenticated),r=Im(e=>e.managementKey),i=Im(e=>e.apiBase),a=Im(e=>e.checkAuth),[o,s]=(0,y.useState)(!1);return(0,y.useEffect)(()=>{(async()=>{if(!n&&r&&i){s(!0);try{await a()}finally{s(!1)}}})()},[i,n,r,a]),o?(0,V.jsx)(`div`,{className:`main-content`,children:(0,V.jsx)(CO,{})}):n?e:(0,V.jsx)(ni,{to:`/login`,replace:!0,state:{from:t}})}function Pae(){return(0,V.jsxs)(V.Fragment,{children:[(0,V.jsx)(ree,{}),(0,V.jsx)(eh,{}),(0,V.jsx)(ri,{})]})}var Fae=Ki([{element:(0,V.jsx)(Pae,{}),children:[{path:`/login`,element:(0,V.jsx)(zm,{})},{path:`/*`,element:(0,V.jsx)(Nae,{children:(0,V.jsx)(Mae,{})})}]}]);function Iae(){let e=rl(e=>e.initializeTheme),t=hl(e=>e.language),n=hl(e=>e.setLanguage);return(0,y.useEffect)(()=>e(),[e]),(0,y.useEffect)(()=>{n(t)},[]),(0,y.useEffect)(()=>{document.documentElement.lang=t},[t]),(0,V.jsx)(ha,{router:Fae})}document.title=`CLI Proxy API Management Center`,document.documentElement.setAttribute(`translate`,`no`),document.documentElement.classList.add(`notranslate`);var $9=document.querySelector(`link[rel="icon"]`);if($9)$9.href=x,$9.type=`image/jpeg`;else{let e=document.createElement(`link`);e.rel=`icon`,e.type=`image/jpeg`,e.href=x,document.head.appendChild(e)}(0,b.createRoot)(document.getElementById(`root`)).render((0,V.jsx)(y.StrictMode,{children:(0,V.jsx)(Iae,{})}));</script>
<style rel="stylesheet" crossorigin>*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body{width:100%;height:100%}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;line-height:1.5}#root{width:100%;height:100%}button,input,textarea,select{font:inherit}a{color:inherit;text-decoration:none}ul,ol{list-style:none}:root{--bg-secondary:#faf9f5;--bg-primary:#f0eee8;--bg-tertiary:#e9e6df;--bg-hover:var(--bg-tertiary);--bg-quinary:#f6f4ee;--bg-error-light:#c657461a;--floating-surface:#fffdf9;--floating-shadow:0 12px 26px #00000024;--text-primary:#2d2a26;--text-secondary:#6d6760;--text-tertiary:#a29c95;--text-quaternary:#c0bab3;--text-muted:var(--text-tertiary);--border-color:#e3e1db;--border-secondary:var(--border-color);--border-primary:#d5d2cb;--border-hover:#cecac4;--primary-color:#8b8680;--primary-hover:#7f7a74;--primary-active:#726d67;--primary-contrast:#fff;--success-color:#10b981;--quota-medium-color:#e0aa14;--warning-color:#c65746;--error-color:#c65746;--danger-color:var(--error-color);--info-color:var(--primary-color);--warning-bg:#c657461f;--warning-border:#c6574659;--warning-text:var(--warning-color);--success-badge-bg:#d1fae5;--success-badge-text:#065f46;--success-badge-border:#6ee7b7;--failure-badge-bg:#c6574624;--failure-badge-text:#8a3a30;--failure-badge-border:#c6574659;--count-badge-bg:#8b86802e;--count-badge-text:var(--primary-active);--shadow:0 1px 2px 0 #00000014;--shadow-lg:0 10px 18px -3px #0000001a;--radius-md:8px;--primary-8:color-mix(in srgb, var(--primary-color) 8%, transparent);--primary-10:color-mix(in srgb, var(--primary-color) 10%, transparent);--primary-30:color-mix(in srgb, var(--primary-color) 30%, transparent);--amber-color:#d97706;--amber-text:#92400e;--amber-10:color-mix(in srgb, var(--amber-color) 10%, transparent);--amber-30:color-mix(in srgb, var(--amber-color) 30%, transparent);--destructive-color:var(--error-color);--destructive-10:color-mix(in srgb, var(--destructive-color) 10%, transparent);--destructive-30:color-mix(in srgb, var(--destructive-color) 30%, transparent);--muted-bg:var(--bg-tertiary);--muted-foreground:var(--text-secondary);--accent-bg:var(--bg-tertiary);--glass-blur:12px;--glass-backdrop-filter:blur(var(--glass-blur));--glass-filter:blur(var(--glass-blur));--glass-bg:color-mix(in srgb, var(--bg-primary) 82%, transparent);--glass-bg-secondary:color-mix(in srgb, var(--bg-secondary) 82%, transparent);--glass-border:color-mix(in srgb, var(--border-color) 60%, transparent);--viz-success:#10b981;--viz-failure:#c65746;--ease-out-strong:cubic-bezier(.23, 1, .32, 1);--dur-press:.16s;--dur-hover:.2s}[data-theme=white]{--bg-secondary:#fff;--bg-primary:#fff;--bg-tertiary:#f6f6f6;--bg-hover:var(--bg-tertiary);--bg-quinary:#fff;--bg-error-light:#c6574614;--floating-surface:#fff;--floating-shadow:0 12px 26px #0000001f;--text-primary:#2d2a26;--text-secondary:#6d6760;--text-tertiary:#a29c95;--text-quaternary:#c0bab3;--text-muted:var(--text-tertiary);--border-color:#e5e5e5;--border-secondary:var(--border-color);--border-primary:#d9d9d9;--border-hover:#ccc;--primary-color:#8b8680;--primary-hover:#7f7a74;--primary-active:#726d67;--primary-contrast:#fff;--success-color:#10b981;--quota-medium-color:#e0aa14;--warning-color:#c65746;--error-color:#c65746;--danger-color:var(--error-color);--info-color:var(--primary-color);--warning-bg:#c657461f;--warning-border:#c6574659;--warning-text:var(--warning-color);--success-badge-bg:#d1fae5;--success-badge-text:#065f46;--success-badge-border:#6ee7b7;--failure-badge-bg:#c6574624;--failure-badge-text:#8a3a30;--failure-badge-border:#c6574659;--count-badge-bg:#8b86802e;--count-badge-text:var(--primary-active);--shadow:0 1px 2px 0 #00000014;--shadow-lg:0 10px 18px -3px #0000001a;--radius-md:8px;--primary-8:color-mix(in srgb, var(--primary-color) 8%, transparent);--primary-10:color-mix(in srgb, var(--primary-color) 10%, transparent);--primary-30:color-mix(in srgb, var(--primary-color) 30%, transparent);--amber-color:#d97706;--amber-text:#92400e;--amber-10:color-mix(in srgb, var(--amber-color) 10%, transparent);--amber-30:color-mix(in srgb, var(--amber-color) 30%, transparent);--destructive-color:var(--error-color);--destructive-10:color-mix(in srgb, var(--destructive-color) 10%, transparent);--destructive-30:color-mix(in srgb, var(--destructive-color) 30%, transparent);--muted-bg:var(--bg-tertiary);--muted-foreground:var(--text-secondary);--accent-bg:var(--bg-tertiary)}[data-theme=dark]{--bg-secondary:#151412;--bg-primary:#1d1b18;--bg-tertiary:#262320;--bg-hover:#2e2a26;--bg-quinary:#191714;--bg-error-light:#c657462e;--floating-surface:#2a2723;--floating-shadow:0 14px 30px #0006;--text-primary:#f6f4f1;--text-secondary:#c9c3bb;--text-tertiary:#9c958d;--text-quaternary:#6f6962;--text-muted:var(--text-tertiary);--border-color:#3a3530;--border-secondary:var(--border-color);--border-primary:#4a453f;--border-hover:#5a544d;--primary-color:#8b8680;--primary-hover:#9a948e;--primary-active:#a6a099;--primary-contrast:#fff;--success-color:#10b981;--quota-medium-color:#ffd862;--warning-color:#c65746;--error-color:#c65746;--danger-color:var(--error-color);--info-color:var(--primary-color);--warning-bg:#c6574638;--warning-border:#c6574673;--warning-text:#f1b0a6;--success-badge-bg:#064e3b4d;--success-badge-text:#6ee7b7;--success-badge-border:#059669;--failure-badge-bg:#c657463d;--failure-badge-text:#f1b0a6;--failure-badge-border:#c6574680;--count-badge-bg:#8b868047;--count-badge-text:var(--primary-active);--shadow:0 1px 3px 0 #0000004d;--shadow-lg:0 10px 15px -3px #0000004d;--radius-md:8px;--primary-8:color-mix(in srgb, var(--primary-color) 8%, transparent);--primary-10:color-mix(in srgb, var(--primary-color) 10%, transparent);--primary-30:color-mix(in srgb, var(--primary-color) 30%, transparent);--amber-color:#f59e0b;--amber-text:#fcd34d;--amber-10:color-mix(in srgb, var(--amber-color) 14%, transparent);--amber-30:color-mix(in srgb, var(--amber-color) 38%, transparent);--destructive-color:var(--error-color);--destructive-10:color-mix(in srgb, var(--destructive-color) 14%, transparent);--destructive-30:color-mix(in srgb, var(--destructive-color) 38%, transparent);--muted-bg:var(--bg-tertiary);--muted-foreground:var(--text-secondary);--accent-bg:var(--bg-tertiary);--glass-border:color-mix(in srgb, var(--border-color) 55%, transparent);--viz-success:#0fae78;--viz-failure:#cf4b3a}@media (max-width:768px),(prefers-reduced-motion:reduce),(prefers-reduced-transparency:reduce){:root{--glass-backdrop-filter:none;--glass-filter:none;--glass-bg:var(--bg-primary);--glass-bg-secondary:var(--bg-secondary);--glass-border:var(--border-color)}}.btn{cursor:pointer;background-color:var(--bg-secondary);color:var(--text-primary);border:1px solid #0000;border-radius:8px;justify-content:center;align-items:center;gap:8px;padding:10px 14px;font-weight:600;transition:all .15s;display:inline-flex}.btn.btn-primary{background-color:var(--primary-color);color:var(--primary-contrast,#fff);border-color:var(--primary-color)}.btn.btn-primary:hover{background-color:var(--primary-hover);border-color:var(--primary-hover)}.btn.btn-secondary{background-color:var(--bg-tertiary);border-color:var(--border-color);color:var(--text-primary)}.btn.btn-secondary:hover{background-color:var(--bg-hover,var(--bg-tertiary));border-color:var(--border-hover)}.btn.btn-ghost{color:var(--text-secondary);background:0 0;border-color:#0000}.btn.btn-ghost:hover{color:var(--text-primary);background:var(--bg-tertiary)}.btn.btn-danger{color:#fff;background-color:#c65746;border-color:#c65746}.btn.btn-danger:hover{background-color:#b94a39}.btn.btn-full{width:100%}.btn.btn-sm{padding:8px 10px;font-size:14px}.btn:disabled{opacity:.6;cursor:not-allowed}[data-theme=dark] .btn,[data-theme=dark] .btn.btn-secondary,[data-theme=dark] .btn.btn-ghost{color:#fff}.input,textarea{border:1px solid var(--border-color);background-color:var(--bg-secondary);width:100%;color:var(--text-primary);border-radius:8px;padding:10px 12px;transition:border-color .15s,box-shadow .15s}.input:focus,textarea:focus{border-color:var(--primary-color);outline:none;box-shadow:0 0 0 3px #8b86802e}.form-group{flex-direction:column;gap:4px;margin-bottom:16px;display:flex}.form-group label{color:var(--text-primary);font-weight:600}.form-group .hint{color:var(--text-secondary);font-size:13px}.card{background-color:var(--bg-primary);border:1px solid var(--border-color);box-shadow:var(--shadow);border-radius:12px;padding:24px}.card-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;margin-bottom:16px;display:flex}.card-header>*{min-width:0}.card-header .title{min-width:0;color:var(--text-primary);flex:auto;font-size:18px;font-weight:700}.status-badge{border:1px solid var(--border-color);border-radius:9999px;align-items:center;gap:6px;margin-bottom:16px;padding:4px 10px;font-size:13px;display:inline-flex}.status-badge+*{display:block}.status-badge.success{color:#10b981;background:#10b98114;border-color:#10b98159}.status-badge.warning,.status-badge.error{color:#c65746;background:#c6574614;border-color:#c6574659}.status-badge.muted{color:var(--text-secondary)}.pill{background:var(--bg-secondary);color:var(--text-secondary);border:1px solid var(--border-color);border-radius:9999px;padding:4px 10px;font-size:12px}.loading-spinner{border:3px solid #fff3;border-top-color:#fff;border-radius:50%;width:16px;height:16px;animation:.8s linear infinite spin}@supports (color:color-mix(in srgb, currentColor 22%, transparent)){.loading-spinner{border-color:color-mix(in srgb, currentColor 22%, transparent);border-top-color:currentColor}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.modal-overlay{z-index:2000;background:#00000059;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;top:0;bottom:0;left:0;right:0}.modal-overlay.modal-overlay-entering{animation:.25s ease-out forwards modal-overlay-fade-in}.modal-overlay.modal-overlay-closing{animation:.35s ease-in forwards modal-overlay-fade-out}@keyframes modal-overlay-fade-in{0%{opacity:0}to{opacity:1}}@keyframes modal-overlay-fade-out{0%{opacity:1}to{opacity:0}}.modal{background:var(--bg-primary);border:1px solid var(--border-color);transform-origin:calc(100% - 28px) 28px;border-radius:12px;flex-direction:column;max-width:100%;max-height:90vh;display:flex;position:relative;overflow:hidden;box-shadow:0 10px 15px -3px #0000001a}.modal.modal-entering{animation:.3s cubic-bezier(.34,1.56,.64,1) forwards modal-scale-in}.modal.modal-closing{animation:.35s cubic-bezier(.4,0,.2,1) forwards modal-collapse-to-close}@keyframes modal-scale-in{0%{opacity:0;transform:scale(.85)translateY(20px)}to{opacity:1;transform:scale(1)translateY(0)}}@keyframes modal-collapse-to-close{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(0)}}.modal-close-floating{background:var(--bg-secondary);border:1px solid var(--border-color);width:32px;height:32px;color:var(--text-secondary);cursor:pointer;z-index:10;border-radius:9999px;justify-content:center;align-items:center;padding:0;transition:color .15s,background-color .15s,transform .15s;display:inline-flex;position:absolute;top:12px;right:12px}.modal-close-floating svg{display:block}.modal-close-floating:hover{color:var(--text-primary);background:var(--bg-tertiary);transform:scale(1.1)}.modal-close-floating:active{transform:scale(.95)}.modal-close-floating:disabled{cursor:not-allowed;opacity:.6;transform:none}.modal-close-floating:disabled:hover{color:var(--text-secondary);background:var(--bg-secondary);transform:none}.modal-header{border-bottom:1px solid var(--border-color);align-items:center;padding:16px 24px;display:flex}.modal-header .modal-title{color:var(--text-primary);font-size:18px;font-weight:700}.modal-body{max-height:65vh;padding:24px;overflow:auto}.modal-footer{border-top:1px solid var(--border-color);background:var(--bg-primary);justify-content:flex-end;gap:8px;padding:16px 24px;display:flex}@media (max-width:768px){.modal-overlay{padding:16px}.modal{border-radius:8px;max-height:calc(100vh - 32px)}@supports (height:100dvh){.modal{max-height:calc(100dvh - 32px)}}.modal-header{padding:16px 52px 16px 16px}.modal-body{max-height:min(60vh,100vh - 180px);padding:16px}@supports (height:100dvh){.modal-body{max-height:min(60dvh,100dvh - 180px)}}.modal-footer{flex-direction:column-reverse;align-items:stretch;padding:16px}.modal-footer .btn{width:100%}}.request-log-modal{flex-direction:column;align-items:flex-start;gap:16px;display:flex}.request-log-modal .status-badge{margin-bottom:0}.empty-state{border:1px dashed var(--border-color);background:var(--bg-secondary);border-radius:12px;justify-content:space-between;align-items:center;gap:16px;padding:24px;display:flex}.empty-state .empty-content{align-items:center;gap:16px;display:flex}.empty-state .empty-icon{border:2px solid var(--border-color);width:42px;height:42px;color:var(--text-secondary);border-radius:9999px;flex:0 0 42px;justify-content:center;align-items:center;line-height:0;display:inline-flex}.empty-state .empty-icon svg{flex-shrink:0;width:20px;height:20px;display:block}.empty-state .empty-title{color:var(--text-primary);font-weight:700}.empty-state .empty-desc{color:var(--text-secondary);margin-top:4px}.empty-state .empty-action .btn>span{justify-content:center;align-items:center;gap:8px;line-height:1;display:inline-flex}.empty-state .empty-action .btn svg{flex-shrink:0;display:block}.item-list{flex-direction:column;gap:8px;display:flex}.item-row{border:1px solid var(--border-color);background:var(--bg-primary);border-radius:8px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;padding:16px;display:flex}.item-row .item-meta{flex-direction:column;gap:6px;display:flex}.item-row .item-title{color:var(--text-primary);font-weight:700}.item-row .item-subtitle{color:var(--text-secondary);word-break:break-all;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.item-row .item-actions{gap:8px;display:flex}.error-box{color:#c65746;background:#c657461a;border:1px solid #c6574666;border-radius:8px;padding:8px 16px}.stack{flex-direction:column;gap:24px;display:flex}.hint{color:var(--text-secondary)}:root{--header-height:80px;--shell-gutter:24px;--sidebar-panel-width:216px;--sidebar-collapsed-width:60px;--sidebar-active-width:var(--sidebar-panel-width);--sidebar-gap:0px;--floating-control-size:38px}.app-shell{--sidebar-active-width:var(--sidebar-panel-width);background:var(--bg-secondary);height:100vh;min-height:100vh;color:var(--text-primary);flex-direction:column;display:flex;position:relative;overflow:hidden}.app-shell.sidebar-is-collapsed{--sidebar-active-width:var(--sidebar-collapsed-width)}@media (max-width:768px){.app-shell{height:auto;min-height:100vh;overflow:visible auto}}.app-shell.plugin-resource-shell .top-gradient-blur{display:none}.top-gradient-blur{top:0;right:0;left:var(--sidebar-active-width);z-index:998;pointer-events:none;background:linear-gradient(180deg, color-mix(in srgb, var(--bg-secondary) 88%, #0d0c0a) 0%, color-mix(in srgb, var(--bg-secondary) 54%, transparent) 36%, color-mix(in srgb, var(--bg-secondary) 22%, transparent) 66%, transparent 100%);--glass-blur:22px;height:141px;-webkit-backdrop-filter:var(--glass-backdrop-filter);transition:left .3s;position:fixed;-webkit-mask-image:linear-gradient(#000 0%,#000000e6 24%,#00000094 48%,#00000038 72%,#0000 100%);mask-image:linear-gradient(#000 0%,#000000e6 24%,#00000094 48%,#00000038 72%,#0000 100%)}.main-header{z-index:1001;height:var(--header-height);pointer-events:none;background:0 0;border:0;position:fixed;top:0;left:0;right:0}.main-header .sidebar-toggle-floating{top:50%;left:calc(var(--sidebar-active-width) - 12px);border:1px solid color-mix(in srgb, var(--border-color) 78%, transparent);background:var(--bg-primary);width:24px;height:52px;color:color-mix(in srgb, var(--text-secondary) 88%, transparent);cursor:pointer;pointer-events:auto;border-radius:14px;justify-content:center;align-items:center;padding:0;transition:background .15s,border-color .15s,color .15s,transform .15s,left .3s;display:inline-flex;position:fixed;transform:translateY(-50%);box-shadow:4px 0 14px #0000002e,inset 0 1px #ffffff08}.main-header .sidebar-toggle-floating svg{width:14px;height:14px}.main-header .sidebar-toggle-floating:hover{background:color-mix(in srgb, var(--bg-primary) 90%, var(--text-primary) 10%);border-color:color-mix(in srgb, var(--border-hover) 86%, transparent);color:var(--text-primary);transform:translateY(-50%)translate(2px)}.main-header .sidebar-toggle-floating:active{transform:translateY(-50%)translate(0)}.main-header .sidebar-toggle-floating:focus-visible{box-shadow:0 0 0 2px color-mix(in srgb, var(--primary-color) 24%, transparent), 4px 0 14px #0000002e;outline:none}.main-header .mobile-sidebar-actions,.main-header .header-actions{top:var(--shell-gutter);border:1px solid color-mix(in srgb, var(--border-color) 68%, transparent);background:color-mix(in srgb, var(--bg-primary) 68%, transparent);color:var(--text-secondary);--glass-blur:16px;-webkit-backdrop-filter:var(--glass-backdrop-filter);pointer-events:auto;border-radius:16px;align-items:center;gap:4px;padding:6px;display:inline-flex;position:absolute;box-shadow:0 18px 44px #0000002b,inset 0 1px #ffffff0a}.main-header .mobile-sidebar-actions{left:var(--shell-gutter);display:none}.main-header .header-actions{right:var(--shell-gutter)}.main-header .mobile-sidebar-actions .btn,.main-header .header-actions .btn{width:var(--floating-control-size);height:var(--floating-control-size);min-width:var(--floating-control-size);color:var(--text-secondary);background:0 0;border-color:#0000;border-radius:11px;padding:0}.main-header .mobile-sidebar-actions .btn>span,.main-header .header-actions .btn>span{justify-content:center;align-items:center;line-height:0;display:inline-flex}.main-header .mobile-sidebar-actions .btn:hover,.main-header .header-actions .btn:hover{background:color-mix(in srgb, var(--text-primary) 8%, transparent);color:var(--text-primary);border-color:#0000}.main-header .mobile-sidebar-actions .btn:focus-visible{box-shadow:0 0 0 2px color-mix(in srgb, var(--primary-color) 26%, transparent);outline:none}.main-header .header-actions .btn:focus-visible{box-shadow:0 0 0 2px color-mix(in srgb, var(--primary-color) 26%, transparent);outline:none}.main-header .mobile-menu-btn{flex-shrink:0;display:none}.main-header .language-menu,.main-header .theme-menu{align-items:center;display:inline-flex;position:relative}.main-header .language-menu-popover,.main-header .theme-menu-popover{z-index:1002;border:1px solid color-mix(in srgb, var(--border-color) 74%, transparent);background:color-mix(in srgb, var(--bg-primary) 88%, transparent);--glass-blur:16px;-webkit-backdrop-filter:var(--glass-backdrop-filter);position:absolute;top:calc(100% + 12px);right:0;box-shadow:0 20px 48px #00000038}.main-header .language-menu-popover{flex-direction:column;gap:2px;min-width:164px;padding:4px;display:flex}.main-header .language-menu-option{width:100%;color:var(--text-primary);cursor:pointer;background:0 0;border:none;border-radius:4px;justify-content:space-between;align-items:center;padding:8px 10px;font-size:14px;font-weight:500;transition:background-color .15s,color .15s;display:flex}.main-header .language-menu-option:hover{background:color-mix(in srgb, var(--text-primary) 8%, transparent)}.main-header .language-menu-option:focus-visible{background:color-mix(in srgb, var(--text-primary) 8%, transparent);box-shadow:0 0 0 2px color-mix(in srgb, var(--primary-color) 22%, transparent);outline:none}.main-header .language-menu-option.active{color:var(--primary-color);font-weight:600}.main-header .language-menu-check{font-size:13px;line-height:1}.main-header .theme-menu-popover{gap:4px;width:max-content;max-width:calc(100vw - 16px);padding:8px 8px 4px;display:flex}.main-header .theme-card{cursor:pointer;background:0 0;border:2px solid #0000;border-radius:8px;flex-direction:column;align-items:center;gap:4px;padding:6px 6px 4px;transition:border-color .15s,background-color .15s;display:flex}.main-header .theme-card:hover{background:color-mix(in srgb, var(--text-primary) 8%, transparent)}.main-header .theme-card:focus-visible{box-shadow:0 0 0 2px color-mix(in srgb, var(--primary-color) 22%, transparent);outline:none}.main-header .theme-card.active{border-color:var(--primary-color)}.main-header .theme-card-preview{border-radius:4px;flex-direction:column;width:72px;height:52px;display:flex;overflow:hidden}.main-header .theme-card-header{flex-shrink:0;height:10px}.main-header .theme-card-body{flex:1;min-height:0;display:flex}.main-header .theme-card-sidebar{flex-shrink:0;width:16px}.main-header .theme-card-content{flex-direction:column;flex:1;justify-content:center;gap:4px;padding:5px 8px;display:flex}.main-header .theme-card-line{border-radius:1px;height:3px}.main-header .theme-card-line.short{width:60%}.main-header .theme-card-label{color:var(--text-primary);white-space:nowrap;font-size:11px;font-weight:500}.main-header svg{display:block}.main-body{flex:1;gap:0;height:100vh;min-height:0;padding:0;display:flex;position:relative;overflow:hidden}@supports (height:100dvh){.main-body{height:100dvh}}.sidebar-backdrop{opacity:0;pointer-events:none;-webkit-backdrop-filter:blur(4px);background:#08080857;border:0;margin:0;padding:0;transition:opacity .15s;display:none}.sidebar{z-index:999;width:var(--sidebar-panel-width);background:var(--bg-primary);border:0;border-right:1px solid color-mix(in srgb, var(--border-color) 78%, transparent);height:100vh;box-shadow:none;scrollbar-width:none;border-radius:0;flex-direction:column;flex-shrink:0;gap:8px;padding:14px 10px;transition:width .3s,transform .3s,padding .3s;display:flex;position:relative;overflow-y:auto}@supports (height:100dvh){.sidebar{height:100dvh}}.sidebar::-webkit-scrollbar{display:none}.sidebar.collapsed{width:var(--sidebar-collapsed-width);padding:14px 8px}.sidebar.collapsed .sidebar-header{justify-content:center;padding-left:0;padding-right:0}.sidebar.collapsed .sidebar-brand{justify-content:center;padding:0}.sidebar.collapsed .nav-item{justify-content:center;padding:10px;position:relative}.sidebar.collapsed .nav-badge{min-width:15px;height:15px;color:var(--bg-primary);background:var(--text-primary);box-shadow:0 0 0 2px var(--bg-primary);border-radius:9999px;margin-left:0;padding:0 4px;font-size:9px;position:absolute;top:1px;right:1px}.sidebar.collapsed .nav-group-label{display:none}.sidebar.collapsed .nav-group-divider{display:block}.sidebar.collapsed .nav-drawer-caret{display:none}.sidebar.collapsed .nav-sub-list{border-left:0;margin-left:0;padding-left:0}.sidebar .sidebar-header{border-bottom:1px solid color-mix(in srgb, var(--border-color) 60%, transparent);flex-shrink:0;align-items:center;gap:8px;min-height:36px;margin-bottom:2px;padding:2px 2px 10px;display:flex}.sidebar .sidebar-brand{min-width:0;color:var(--text-primary);flex:1;align-items:center;gap:10px;padding:0 6px;display:flex}.sidebar .sidebar-brand-logo{object-fit:contain;width:30px;height:30px;box-shadow:none;border-radius:7px;flex-shrink:0}.sidebar .sidebar-brand-text{flex-direction:column;min-width:0;line-height:1.15;display:flex}.sidebar .sidebar-brand-title{min-width:0;color:var(--text-primary);letter-spacing:0;white-space:nowrap;font-size:15px;font-weight:800;overflow:hidden}.sidebar .sidebar-brand-subtitle{color:var(--text-secondary);text-overflow:ellipsis;white-space:nowrap;margin-top:1px;font-size:10.5px;font-weight:500;overflow:hidden}.sidebar .nav-section{flex-direction:column;flex:1;gap:10px;display:flex}.sidebar .nav-group{flex-direction:column;gap:4px;display:flex}.sidebar .nav-group-label{letter-spacing:.08em;text-transform:uppercase;color:color-mix(in srgb, var(--text-primary) 42%, transparent);-webkit-user-select:none;user-select:none;padding:0 10px 2px;font-size:10px;font-weight:700}.sidebar .nav-group-divider{background:color-mix(in srgb, var(--border-color) 70%, transparent);width:24px;height:1px;margin:4px auto;display:none}.sidebar .nav-drawer{flex-direction:column;gap:4px;display:flex}.sidebar .nav-drawer-toggle{width:100%;font:inherit;text-align:left;background:0 0}.sidebar .nav-drawer-caret{color:color-mix(in srgb, var(--text-primary) 46%, transparent);margin-left:auto;line-height:0;transition:transform .15s}.sidebar .nav-drawer-toggle.open .nav-drawer-caret{transform:rotate(180deg)}.sidebar .nav-sub-list{border-left:1px solid color-mix(in srgb, var(--border-color) 72%, transparent);flex-direction:column;gap:2px;margin-left:18px;padding-left:10px;display:flex}.sidebar .nav-item{color:var(--text-primary);cursor:pointer;border:1px solid #0000;border-radius:9px;align-items:center;gap:10px;padding:6px 10px;font-size:13px;font-weight:600;text-decoration:none;transition:background .15s,border-color .15s,color .15s,transform .15s;display:flex}.sidebar .nav-item .nav-icon{width:18px;height:18px;color:color-mix(in srgb, var(--text-primary) 58%, transparent);flex-shrink:0;justify-content:center;align-items:center;transition:color .15s;display:inline-flex}.sidebar .nav-item .nav-icon svg{width:16px;height:16px;display:block}.sidebar .nav-item .nav-icon img{object-fit:cover;border-radius:4px;width:16px;height:16px;display:block}.sidebar .nav-item .nav-text{flex-direction:column;min-width:0;line-height:1.2;display:flex}.sidebar .nav-item .nav-label{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.sidebar .nav-item .nav-badge{background:color-mix(in srgb, var(--text-primary) 9%, transparent);min-width:18px;height:18px;color:var(--text-primary);border-radius:9999px;flex-shrink:0;justify-content:center;align-items:center;margin-left:auto;padding:0 5px;font-size:10.5px;font-weight:700;line-height:1;display:inline-flex}.sidebar .nav-item .nav-badge-sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.sidebar .nav-item:hover{background:color-mix(in srgb, var(--text-primary) 7%, transparent);border-color:color-mix(in srgb, var(--border-color) 58%, transparent);transform:translate(1px)}.sidebar .nav-item:hover .nav-icon{color:color-mix(in srgb, var(--text-primary) 82%, transparent)}.sidebar .nav-item.active{background:color-mix(in srgb, var(--text-primary) 10%, transparent);color:var(--text-primary);border-color:color-mix(in srgb, var(--border-hover) 70%, transparent);box-shadow:inset 0 1px #ffffff0a}.sidebar .nav-item.active .nav-icon{color:var(--primary-active)}.sidebar .nav-item.nav-sub-item{border-radius:8px;min-height:30px;padding:5px 10px;font-size:12.5px;font-weight:600}.sidebar .nav-item.nav-sub-item .nav-icon{width:16px;height:16px}.sidebar .nav-item .nav-sub-dot{opacity:.62;background:currentColor;border-radius:9999px;width:6px;height:6px}.nav-tooltip{left:calc(var(--sidebar-active-width) + 20px);z-index:1002;box-sizing:border-box;width:max-content;max-width:min(320px, 100vw - var(--sidebar-active-width) - 32px);color:#f6f4f1;pointer-events:none;max-height:calc(100vh - 16px);animation:nav-tooltip-in .15s ease ease-out;background:#24211c;border-radius:10px;flex-direction:column;gap:3px;padding:9px 12px;transition:left .3s;display:flex;position:fixed;overflow:hidden;transform:translateY(-50%);box-shadow:0 14px 36px #00000052}.nav-tooltip .nav-tooltip-label{text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-size:13px;font-weight:650;overflow:hidden}.nav-tooltip .nav-tooltip-meta{overflow-wrap:anywhere;color:#f6f4f199;white-space:normal;max-width:100%;font-size:11.5px}@keyframes nav-tooltip-in{0%{opacity:0;transform:translateY(-50%)translate(-4px)}to{opacity:1;transform:translateY(-50%)translate(0)}}.content{scrollbar-gutter:stable;flex-direction:column;flex:1;min-width:0;height:100vh;display:flex;overflow-y:auto}@supports (height:100dvh){.content{height:100dvh}}.content.content-logs,.content.content-plugin-resource{scrollbar-gutter:auto;overflow:hidden}.main-content{flex-direction:column;flex:1 0 auto;gap:24px;min-height:100%;padding:70px clamp(20px,3vw,48px) 40px;display:flex;overflow-x:hidden}.main-content.main-content-logs{flex:auto;min-height:0;padding:70px clamp(20px,3vw,48px) 24px;overflow:hidden}.main-content.main-content-plugin-resource{background:var(--bg-secondary);flex:auto;gap:0;min-height:0;padding:0;overflow:hidden}.main-content.main-content-plugin-resource .page-transition,.main-content.main-content-plugin-resource .page-transition__layer{background:var(--bg-secondary);gap:0;height:100%}@media (max-width:768px){:root{--header-height:74px;--shell-gutter:12px;--sidebar-panel-width:min(280px, calc(100vw - 24px));--floating-control-size:36px}.top-gradient-blur{height:114px}.nav-tooltip,.main-header .sidebar-toggle-floating{display:none}.main-header .header-actions{top:var(--shell-gutter);right:var(--shell-gutter);max-width:calc(100vw - var(--shell-gutter) - var(--shell-gutter) - var(--floating-control-size) - 14px);border-radius:14px;gap:2px;padding:5px}.main-header .mobile-sidebar-actions{top:var(--shell-gutter);left:var(--shell-gutter);border-radius:14px;gap:2px;padding:5px;display:inline-flex}.main-header .mobile-menu-btn{display:inline-flex}.main-header .language-menu-popover{left:0;right:auto}.main-header .theme-menu-popover{grid-template-columns:repeat(2,minmax(0,1fr));justify-content:stretch;width:min(188px,100vw - 16px);display:grid;left:auto;right:0;transform:none}.main-header .theme-card{width:100%;min-width:0}.main-header .theme-card-label{white-space:normal;text-align:center;line-height:1.2}.main-body{height:auto;min-height:100vh;padding:0;overflow:visible}@supports (min-height:100dvh){.main-body{min-height:100dvh}}.sidebar-backdrop{z-index:999;background:#08080875;display:block;position:fixed;top:0;bottom:0;left:0;right:0}.sidebar-backdrop.visible{opacity:1;pointer-events:auto}.sidebar{z-index:1000;width:var(--sidebar-panel-width);background:var(--bg-primary);border:0;border-right:1px solid color-mix(in srgb, var(--border-color) 78%, transparent);height:auto;box-shadow:none;border-radius:0;position:fixed;top:0;bottom:0;left:0;transform:translate(calc(-100% - 24px))}.sidebar.open{transform:translate(0)}.sidebar.collapsed{width:var(--sidebar-panel-width);padding:14px 10px}.sidebar.collapsed .sidebar-brand,.sidebar.collapsed .nav-item{justify-content:flex-start}.sidebar.collapsed .nav-badge{min-width:18px;height:18px;color:var(--text-primary);background:color-mix(in srgb, var(--text-primary) 9%, transparent);box-shadow:none;margin-left:auto;padding:0 5px;font-size:10.5px;position:static}.content{height:auto;min-height:100vh;overflow:visible auto}.content.content-logs{height:100dvh;min-height:0;overflow:hidden}.content.content-plugin-resource{height:100vh;min-height:100vh;overflow:hidden}@supports (height:100dvh){.content.content-plugin-resource{height:100dvh;min-height:100dvh}}.main-content{padding:calc(var(--header-height) + 16px) 16px 24px}.main-content.main-content-plugin-resource{min-height:0;padding:0;overflow:hidden}.main-content.main-content-logs{min-height:0;padding:calc(var(--header-height) + 8px) 8px max(8px, env(safe-area-inset-bottom));flex:auto;overflow:hidden}}body{background-color:var(--bg-secondary);color:var(--text-primary);transition:background-color .3s,color .3s}html.modal-open,body.modal-open,body.modal-open .content{overflow:hidden}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--bg-secondary)}::-webkit-scrollbar-thumb{background:var(--border-color);border-radius:9999px}::-webkit-scrollbar-thumb:hover{background:var(--border-hover)}.Select-module__wrap___8GKsa{align-items:center;display:inline-flex;position:relative}.Select-module__wrapFullWidth___uQ1gt{width:100%}.Select-module__trigger___nKY0l{border:1px solid var(--border-color);background-color:var(--bg-primary);width:100%;height:40px;box-shadow:var(--shadow);color:var(--text-primary);cursor:pointer;-webkit-appearance:none;appearance:none;text-align:left;box-sizing:border-box;border-radius:8px;justify-content:space-between;align-items:center;gap:8px;padding:0 12px;font-size:13px;font-weight:500;display:inline-flex}.Select-module__trigger___nKY0l:hover{border-color:var(--border-hover)}.Select-module__trigger___nKY0l:focus{box-shadow:var(--shadow), 0 0 0 3px #8b86802e;outline:none}.Select-module__trigger___nKY0l[aria-expanded=true]{border-color:var(--primary-color);box-shadow:var(--shadow), 0 0 0 3px #8b86802e}.Select-module__triggerSm___0Ozlc{height:28px;box-shadow:none;padding:0 10px;font-size:12px}.Select-module__triggerText___zQEIp{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.Select-module__placeholder___N04iW{color:var(--text-tertiary)}.Select-module__triggerIcon___ipYKn{color:var(--text-secondary);flex-shrink:0;transition:transform .2s;display:inline-flex}[aria-expanded=true]>.Select-module__triggerIcon___ipYKn{transform:rotate(180deg)}.Select-module__dropdown___6YdcD{background:var(--bg-primary);border:1px solid var(--border-color);box-shadow:var(--shadow-lg);overscroll-behavior:contain;scrollbar-gutter:stable;border-radius:12px;flex-direction:column;gap:4px;max-height:240px;padding:6px;display:flex;position:fixed;overflow-y:auto}.Select-module__option___EKsSG{color:var(--text-primary);cursor:pointer;text-align:left;background:0 0;border:1px solid #0000;border-radius:8px;flex-shrink:0;padding:8px 12px;font-size:13px;font-weight:500;transition:background-color .15s,border-color .15s}.Select-module__option___EKsSG:hover{background:var(--bg-secondary)}.Select-module__optionActive___y280o{background:#8b86801a;border-color:#8b868080;font-weight:600}.Select-module__optionHighlighted___CPa3K{background:var(--bg-secondary)}.SelectionCheckbox-module__root___LiMQt{cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:8px;display:inline-flex;position:relative}.SelectionCheckbox-module__disabled___-T-uP{cursor:not-allowed;opacity:.6}.SelectionCheckbox-module__input___b-Hpm{clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.SelectionCheckbox-module__box___FRD4m{border:1px solid var(--border-color);background:color-mix(in srgb, var(--bg-secondary) 92%, transparent);width:22px;height:22px;color:var(--primary-contrast,#fff);border-radius:7px;flex-shrink:0;justify-content:center;align-items:center;transition:border-color .15s,background-color .15s,box-shadow .15s,transform .15s;display:inline-flex}.SelectionCheckbox-module__root___LiMQt:hover .SelectionCheckbox-module__box___FRD4m{border-color:var(--primary-color);box-shadow:0 0 0 3px color-mix(in srgb, var(--primary-color) 16%, transparent)}.SelectionCheckbox-module__root___LiMQt:active .SelectionCheckbox-module__box___FRD4m{transform:scale(.95)}.SelectionCheckbox-module__disabled___-T-uP:hover .SelectionCheckbox-module__box___FRD4m{border-color:var(--border-color);box-shadow:none}.SelectionCheckbox-module__disabled___-T-uP:active .SelectionCheckbox-module__box___FRD4m{transform:none}.SelectionCheckbox-module__input___b-Hpm:focus-visible+.SelectionCheckbox-module__box___FRD4m{border-color:var(--primary-color);box-shadow:0 0 0 3px color-mix(in srgb, var(--primary-color) 16%, transparent), 0 0 0 1px color-mix(in srgb, var(--primary-color) 50%, transparent)}.SelectionCheckbox-module__boxChecked___4lydu{border-color:var(--primary-color);background:var(--primary-color)}.SelectionCheckbox-module__boxChecked___4lydu svg{stroke-width:2.4px;display:block}.SelectionCheckbox-module__label___twhQj{color:var(--text-primary);font-size:14px;font-weight:500}.LoginPage-module__container___bHtIX{background:var(--bg-secondary);min-height:100vh;display:flex}.LoginPage-module__brandPanel___kKUR5{background:#000;flex-direction:column;flex:1;justify-content:center;align-items:center;padding:48px;display:flex;position:relative;overflow:hidden}@media (max-width:768px){.LoginPage-module__brandPanel___kKUR5{display:none}}.LoginPage-module__brandContent___ZEhbk{z-index:1;flex-direction:column;align-items:flex-end;gap:0;width:100%;padding:0;display:flex;position:relative}@keyframes LoginPage-module__brandFadeIn___tpmGl{0%{opacity:0;transform:translateY(-10px)}to{opacity:var(--target-opacity,.9);transform:translateY(0)}}.LoginPage-module__brandWord___3DkwD{color:#ffffffe6;letter-spacing:-.02em;text-transform:uppercase;text-align:right;opacity:0;padding-right:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;font-size:14vw;font-weight:900;line-height:.85;animation:.8s ease-out forwards LoginPage-module__brandFadeIn___tpmGl}.LoginPage-module__brandWord___3DkwD:first-child{--target-opacity:.95;animation-delay:.1s}.LoginPage-module__brandWord___3DkwD:nth-child(2){--target-opacity:.7;animation-delay:.35s}.LoginPage-module__brandWord___3DkwD:nth-child(3){--target-opacity:.45;animation-delay:.6s}.LoginPage-module__formPanel___Nrtrt{background:var(--bg-secondary);flex-direction:column;flex:1;justify-content:center;align-items:center;padding:48px;display:flex;position:relative}@media (max-width:768px){.LoginPage-module__formPanel___Nrtrt{min-height:100vh;padding:24px}}.LoginPage-module__formContent___H8fD-{flex-direction:column;align-items:center;gap:32px;width:100%;max-width:420px;display:flex}.LoginPage-module__logo___ASmao{object-fit:cover;width:80px;height:80px;box-shadow:var(--shadow-lg);border:3px solid var(--border-color);border-radius:12px}.LoginPage-module__loginCard___OgP-R{background:var(--bg-primary);border:1px solid var(--border-color);width:100%;box-shadow:var(--shadow-lg);border-radius:12px;flex-direction:column;gap:24px;padding:32px;display:flex}@media (max-width:768px){.LoginPage-module__loginCard___OgP-R{box-shadow:none;background:0 0;border:none;padding:24px}}.LoginPage-module__loginHeader___3kAvs{text-align:center;flex-direction:column;gap:8px;display:flex}.LoginPage-module__titleRow___9h914{flex-wrap:wrap;justify-content:center;align-items:center;gap:8px;display:flex}.LoginPage-module__title___I-LuY{color:var(--text-primary);font-size:22px;font-weight:800}.LoginPage-module__subtitle___Q41SH{color:var(--text-secondary);font-size:14px}.LoginPage-module__languageSelect___KUNwV{flex:none;min-width:108px}.LoginPage-module__connectionBox___B5--X{background:var(--bg-secondary);border:1px dashed var(--border-color);border-radius:8px;flex-direction:column;gap:4px;padding:16px;display:flex}.LoginPage-module__connectionBox___B5--X .LoginPage-module__label___2fkY-{color:var(--text-secondary);font-size:14px}.LoginPage-module__connectionBox___B5--X .LoginPage-module__value___JFrYC{color:var(--text-primary);word-break:break-all;font-weight:700}.LoginPage-module__connectionBox___B5--X .LoginPage-module__hint___bcz4d{color:var(--text-secondary);font-size:12px}.LoginPage-module__toggleAdvanced___4aKnv{justify-content:flex-start;width:100%;display:flex}.LoginPage-module__toggleLabel___C3t9M{color:var(--text-secondary);font-size:14px;font-weight:500}.LoginPage-module__errorBox___wX1tT{color:#c65746;background:#c657461a;border:1px solid #c6574666;border-radius:8px;padding:8px 16px;font-size:14px}@keyframes LoginPage-module__splashEnter___K-Jk9{0%{opacity:0;transform:scale(.9)translateY(20px)}to{opacity:1;transform:scale(1)translateY(0)}}@keyframes LoginPage-module__splashLogoPulse___DIteW{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}@keyframes LoginPage-module__splashLoading___jAaFC{0%{transform-origin:0;transform:scaleX(0)}50%{transform-origin:0;transform:scaleX(1)}50.01%{transform-origin:100%}to{transform-origin:100%;transform:scaleX(0)}}.LoginPage-module__splashContent___Cc3DZ{flex-direction:column;align-items:center;gap:16px;animation:.6s ease-out LoginPage-module__splashEnter___K-Jk9;display:flex}.LoginPage-module__splashLogo___yzbbw{border-radius:12px;width:auto;height:80px;animation:1.5s ease-in-out infinite LoginPage-module__splashLogoPulse___DIteW;box-shadow:0 10px 15px -3px #0000001a}.LoginPage-module__splashTitle___G-HEP{color:var(--text-primary);letter-spacing:-.5px;margin:0;font-size:28px;font-weight:800}.LoginPage-module__splashSubtitle___BYSQi{color:var(--text-secondary);margin:-8px 0 0;font-size:16px;font-weight:500}.LoginPage-module__splashLoader___SdvUl{background:var(--border-color);border-radius:9999px;width:120px;height:3px;margin-top:16px;overflow:hidden}.LoginPage-module__splashLoaderBar___lyVXw{background:var(--primary-color);border-radius:9999px;width:100%;height:100%;animation:1.2s ease-in-out infinite LoginPage-module__splashLoading___jAaFC}.NotificationContainer-module__container___p4oS3{z-index:3000;top:max(1rem, env(safe-area-inset-top));max-height:calc(100dvh - max(1rem, env(safe-area-inset-top)) - 1rem);padding:.25rem max(1rem, env(safe-area-inset-right)) 1.5rem max(1rem, env(safe-area-inset-left));scrollbar-width:thin;pointer-events:none;flex-direction:column;align-items:center;gap:.5rem;margin-inline-start:auto;margin-inline-end:auto;display:flex;position:fixed;left:0;right:0;overflow-y:auto}.NotificationContainer-module__container___p4oS3:empty{display:none}.NotificationContainer-module__notification___10jUg{--notification-accent:var(--text-secondary);--notification-tint:var(--bg-tertiary);border:1px solid var(--border-color);background:var(--floating-surface);width:-moz-fit-content;width:fit-content;max-width:min(26rem,100%);box-shadow:var(--shadow-lg), var(--shadow);color:var(--text-primary);pointer-events:auto;opacity:1;transition:opacity .2s var(--ease-out-strong), transform .2s var(--ease-out-strong);border-radius:12px;flex-shrink:0;align-items:flex-start;gap:.625rem;padding:.625rem .625rem .625rem .875rem;display:flex;position:relative;transform:translateY(0)scale(1)}@starting-style{.NotificationContainer-module__notification___10jUg{opacity:0;transform:translateY(-8px)scale(.98)}}.NotificationContainer-module__notification___10jUg[data-exiting]{opacity:0;pointer-events:none;transition-duration:.16s;transform:translateY(-6px)scale(.98)}.NotificationContainer-module__success___-bruJ{--notification-accent:var(--success-badge-text);--notification-tint:var(--success-badge-bg)}.NotificationContainer-module__warning___5hmzA{--notification-accent:var(--amber-text);--notification-tint:var(--amber-10)}.NotificationContainer-module__error___dUbmm{--notification-accent:var(--failure-badge-text);--notification-tint:var(--failure-badge-bg)}.NotificationContainer-module__info___6v-vn{--notification-accent:var(--text-secondary)}.NotificationContainer-module__icon___H0Xia{background:var(--notification-tint);width:1.75rem;height:1.75rem;color:var(--notification-accent);border-radius:50%;flex-shrink:0;place-items:center;margin-top:.125rem;display:grid}.NotificationContainer-module__message___kmWcg{overflow-wrap:anywhere;white-space:pre-wrap;flex:1;min-width:0;padding-block-start:.3125rem;padding-block-end:.3125rem;font-size:.875rem;font-weight:500;line-height:1.5}.NotificationContainer-module__closeButton___Y2b-1{width:2rem;height:2rem;color:var(--text-secondary);cursor:pointer;touch-action:manipulation;transition:background-color .12s ease, color .12s ease, transform .12s var(--ease-out-strong);background:0 0;border:none;border-radius:8px;flex-shrink:0;place-items:center;padding:0;display:grid}@media (hover:hover) and (pointer:fine){.NotificationContainer-module__closeButton___Y2b-1:hover{background:var(--bg-tertiary);color:var(--text-primary)}}.NotificationContainer-module__closeButton___Y2b-1:active{transform:scale(.96)}.NotificationContainer-module__closeButton___Y2b-1:focus-visible{outline:2px solid var(--text-secondary);outline-offset:2px}.NotificationContainer-module__srOnly___YFivI{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@media (pointer:coarse){.NotificationContainer-module__closeButton___Y2b-1{margin:-.375rem;width:2.75rem;height:2.75rem;margin-inline-start:0}}@media (prefers-reduced-motion:reduce){.NotificationContainer-module__notification___10jUg,.NotificationContainer-module__notification___10jUg[data-exiting]{transition:opacity .12s;transform:none}@starting-style{.NotificationContainer-module__notification___10jUg,.NotificationContainer-module__notification___10jUg[data-exiting]{transform:none}}.NotificationContainer-module__closeButton___Y2b-1{transition:none}.NotificationContainer-module__closeButton___Y2b-1:active{transform:none}}@media (prefers-contrast:more){.NotificationContainer-module__notification___10jUg{border-color:var(--text-primary)}}.page-transition{flex-direction:column;flex:auto;min-height:0;display:flex;position:relative;overflow:hidden}.page-transition__layer{background:var(--bg-secondary);-webkit-backface-visibility:hidden;backface-visibility:hidden;flex-direction:column;flex:1;gap:24px;min-height:0;display:flex;transform:translateZ(0)}.page-transition__layer--exit{pointer-events:none;will-change:transform, opacity;position:absolute;top:0;bottom:0;left:0;right:0;overflow:hidden}.page-transition__layer--stacked{display:none}.page-transition__layer--stacked.page-transition__layer--stacked-keep{pointer-events:none;opacity:0;will-change:transform, opacity;display:flex;position:absolute;top:0;bottom:0;left:0;right:0;overflow:hidden}.page-transition--animating .page-transition__layer{will-change:transform, opacity}.page-transition--animating .page-transition__layer:not(.page-transition__layer--exit):not(.page-transition__layer--stacked){position:relative}.LiveWire-module__wire___VqROJ{--wire-color:var(--viz-success,#10b981);--wire-stroke:color-mix(in srgb, var(--wire-color) 88%, var(--text-primary));width:100%;height:100%;position:relative;-webkit-mask-image:linear-gradient(90deg,#0000,#000 5% 95%,#0000);mask-image:linear-gradient(90deg,#0000,#000 5% 95%,#0000)}.LiveWire-module__canvas___J0D-f{width:100%;height:100%;display:block;overflow:visible}.LiveWire-module__line___d269h{stroke:var(--wire-stroke);stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:1;stroke-dashoffset:0;animation:1.3s cubic-bezier(.25,.6,.35,1) .55s backwards LiveWire-module__wireDraw___iIgfV}.LiveWire-module__area___5UlLy{animation:.9s ease-out 1.25s backwards LiveWire-module__wireFade___vggde}.LiveWire-module__idleLine___nQIzF{stroke:var(--text-quaternary);stroke-width:1.5px;stroke-dasharray:4 6;fill:none}.LiveWire-module__pulse___eS-2V{background:var(--wire-stroke);width:8px;height:8px;box-shadow:0 0 0 0 color-mix(in srgb, var(--wire-color) 45%, transparent);transition:top .4s var(--ease-out-strong,ease-out);border-radius:50%;animation:2.4s ease-out 1.9s infinite LiveWire-module__wirePulse___Sazgz;position:absolute;right:5%;transform:translate(50%,-50%)}@keyframes LiveWire-module__wireDraw___iIgfV{0%{stroke-dashoffset:1px}to{stroke-dashoffset:0}}@keyframes LiveWire-module__wireFade___vggde{0%{opacity:0}to{opacity:1}}@keyframes LiveWire-module__wirePulse___Sazgz{0%{box-shadow:0 0 0 0 color-mix(in srgb, var(--wire-color) 45%, transparent)}70%{box-shadow:0 0 0 10px #0000}to{box-shadow:0 0 #0000}}@media (prefers-reduced-motion:reduce){.LiveWire-module__line___d269h,.LiveWire-module__area___5UlLy,.LiveWire-module__pulse___eS-2V{animation:none}.LiveWire-module__pulse___eS-2V{transition:none}}.Meter-module__track___TZ2y-{background:color-mix(in srgb, var(--meter-fill) 16%, transparent);border-radius:9999px;width:100%;height:6px;position:relative;overflow:hidden}.Meter-module__fill___agcj5{background:var(--meter-fill);height:100%;transition:width .36s var(--ease-out-strong,ease);border-radius:9999px}@media (prefers-reduced-motion:reduce){.Meter-module__fill___agcj5{transition:none}}.Sparkline-module__sparkline___74Npe{width:100%;height:32px;display:block;overflow:visible}.Sparkline-module__empty___-fTgh{border-bottom:1px solid var(--border-color);width:100%;height:32px}.Collapsible-module__root___pblku{border:1px solid var(--border-color);border-radius:var(--radius-md);background:var(--bg-primary);overflow:hidden}.Collapsible-module__summary___9zX-c{cursor:pointer;color:var(--text-primary);-webkit-user-select:none;user-select:none;justify-content:space-between;align-items:center;gap:12px;padding:10px 14px;font-size:13px;font-weight:500;list-style:none;display:flex}.Collapsible-module__summary___9zX-c::-webkit-details-marker{display:none}.Collapsible-module__summary___9zX-c:hover{background:color-mix(in srgb, var(--accent-bg) 35%, transparent)}.Collapsible-module__summary___9zX-c:focus-visible{outline:2px solid var(--primary-color);outline-offset:-2px}.Collapsible-module__summaryLabel___G6Rv3{flex:1;align-items:center;gap:10px;min-width:0;display:flex}.Collapsible-module__summaryHint___zzQq-{color:var(--muted-foreground);font-size:12px;font-weight:400}.Collapsible-module__chevron___L6d3B{width:16px;height:16px;color:var(--muted-foreground);transition:transform var(--dur-hover,.2s) var(--ease-out-strong,ease-out);flex-shrink:0}.Collapsible-module__root___pblku[open] .Collapsible-module__chevron___L6d3B{transform:rotate(180deg)}.Collapsible-module__content___rwqsf{border-top:1px solid var(--border-color);padding:14px}.Collapsible-module__contentFlush___WXXdd{border-top:1px solid var(--border-color);padding:0}.Collapsible-module__root___pblku[open]>.Collapsible-module__content___rwqsf,.Collapsible-module__root___pblku[open]>.Collapsible-module__contentFlush___WXXdd{animation:Collapsible-module__collapsible-content-in___p56-A var(--dur-press,.16s) var(--ease-out-strong,ease-out)}@keyframes Collapsible-module__collapsible-content-in___p56-A{0%{opacity:0}}@media (prefers-reduced-motion:reduce){.Collapsible-module__chevron___L6d3B{transition:none}.Collapsible-module__root___pblku[open]>.Collapsible-module__content___rwqsf,.Collapsible-module__root___pblku[open]>.Collapsible-module__contentFlush___WXXdd{animation:none}}.ThroughputChart-module__chart___-FaCM{--chart-height:208px;--bar-max-width:24px;flex-direction:column;gap:16px;margin:0;display:flex}.ThroughputChart-module__legend___5JQlE{color:var(--text-secondary);flex-wrap:wrap;gap:24px;font-size:13px;display:flex}.ThroughputChart-module__legendItem___QsoEr{align-items:center;gap:4px;display:inline-flex}.ThroughputChart-module__legendValue___E-KrF{color:var(--text-primary);font-variant-numeric:tabular-nums;font-weight:650}.ThroughputChart-module__legendSwatch___vKp8w{border-radius:3px;flex:none;width:10px;height:10px}.ThroughputChart-module__swatchSuccess___71fp7{background:var(--viz-success)}.ThroughputChart-module__swatchFailure___4NtxJ{background:var(--viz-failure)}.ThroughputChart-module__plot___vHBTu{gap:8px;padding-top:22px;display:flex}.ThroughputChart-module__yAxis___95MPg{width:40px;height:var(--chart-height);flex:none;position:relative}@media (max-width:768px){.ThroughputChart-module__yAxis___95MPg{width:30px}}.ThroughputChart-module__yTick___-qXXk{color:var(--text-tertiary);font-variant-numeric:tabular-nums;white-space:nowrap;font-size:11px;position:absolute;right:0;transform:translateY(-50%)}.ThroughputChart-module__canvas___0f37X{min-width:0;height:var(--chart-height);flex:1;position:relative}.ThroughputChart-module__gridlines___wwLsr{position:absolute;top:0;bottom:0;left:0;right:0}.ThroughputChart-module__gridline___qENb3{background:var(--border-color);height:1px;position:absolute;left:0;right:0}.ThroughputChart-module__gridline___qENb3:last-child{background:var(--border-primary)}.ThroughputChart-module__columns___fD5i7{align-items:flex-end;gap:2px;display:flex;position:absolute;top:0;bottom:0;left:0;right:0}.ThroughputChart-module__column___RaitD{cursor:default;flex:1 1 0;align-items:flex-end;min-width:0;height:100%;display:flex;position:relative}.ThroughputChart-module__stack___-YquN{width:100%;max-width:var(--bar-max-width);height:100%;animation:.42s cubic-bezier(.4,0,.2,1) both ThroughputChart-module__barGrow___65yaS;animation-delay:var(--bar-delay,0s);transform-origin:bottom;flex-direction:column;justify-content:flex-end;margin:0 auto;transition:filter .12s ease-out;display:flex;position:relative}@media (prefers-reduced-motion:reduce){.ThroughputChart-module__stack___-YquN{transition:none;animation:none}}.ThroughputChart-module__columnActive___cFDyr .ThroughputChart-module__stack___-YquN{filter:brightness(1.06)}.ThroughputChart-module__segment___ijOMN{border-radius:4px 4px 0 0;width:100%;display:block}.ThroughputChart-module__segmentSuccess___OqHlT{background:var(--viz-success)}.ThroughputChart-module__segmentFailure___2ajQl{background:var(--viz-failure)}.ThroughputChart-module__segmentGap___kXfwL{margin-bottom:2px}.ThroughputChart-module__segmentSquareTop___L2fgA{border-radius:0}.ThroughputChart-module__idleTick___kZ-JF{background:var(--border-primary);border-radius:9999px;width:100%;height:2px;display:block}.ThroughputChart-module__peakLabel___J0i8w{color:var(--text-secondary);font-variant-numeric:tabular-nums;white-space:nowrap;pointer-events:none;margin-bottom:6px;font-size:11px;font-weight:650;animation:.24s ease-out .62s backwards ThroughputChart-module__peakFade___9U9Rk;position:absolute;left:50%;transform:translate(-50%)}@media (prefers-reduced-motion:reduce){.ThroughputChart-module__peakLabel___J0i8w{animation:none}}.ThroughputChart-module__noRequests___BJa6D{color:var(--text-tertiary);pointer-events:none;place-items:center;margin:0;font-size:13px;display:grid;position:absolute;top:0;bottom:0;left:0;right:0}.ThroughputChart-module__tooltip___S9UYJ{--glass-blur:10px;z-index:2;border:1px solid var(--glass-border);background:var(--glass-bg);min-width:132px;-webkit-backdrop-filter:var(--glass-backdrop-filter);box-shadow:var(--shadow-lg);color:var(--text-secondary);pointer-events:none;transition:left .2s var(--ease-out-strong,ease-out), transform .2s var(--ease-out-strong,ease-out), opacity .15s ease-out;border-radius:8px;flex-direction:column;gap:3px;padding:8px 16px;font-size:12px;display:flex;position:absolute;top:4px}@starting-style{.ThroughputChart-module__tooltip___S9UYJ{opacity:0}}@media (prefers-reduced-motion:reduce){.ThroughputChart-module__tooltip___S9UYJ{transition:opacity .15s ease-out}}.ThroughputChart-module__tooltipTime___GZtRW{color:var(--text-primary);font-variant-numeric:tabular-nums;font-weight:650}.ThroughputChart-module__tooltipRow___aF9iN{align-items:center;gap:4px;display:flex}.ThroughputChart-module__tooltipRow___aF9iN b{color:var(--text-primary);font-variant-numeric:tabular-nums;margin-left:auto}.ThroughputChart-module__tooltipRate___fpdoz{border-top:1px solid var(--border-color);color:var(--text-tertiary);font-variant-numeric:tabular-nums;margin-top:2px;padding-top:4px}.ThroughputChart-module__xAxis___etggi{height:16px;margin-left:48px;position:relative}@media (max-width:768px){.ThroughputChart-module__xAxis___etggi{margin-left:38px}}.ThroughputChart-module__xTick___IRup4{color:var(--text-tertiary);font-variant-numeric:tabular-nums;white-space:nowrap;font-size:11px;position:absolute;transform:translate(-50%)}.ThroughputChart-module__tableToggle___xSkCt{font-size:13px}.ThroughputChart-module__table___qvr48{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%;font-size:12px}.ThroughputChart-module__table___qvr48 th,.ThroughputChart-module__table___qvr48 td{text-align:right;border-bottom:1px solid var(--border-color);color:var(--text-secondary);padding:5px 8px}.ThroughputChart-module__table___qvr48 thead th{color:var(--text-tertiary);white-space:nowrap;font-weight:600}.ThroughputChart-module__table___qvr48 tbody th[scope=row]{text-align:left;color:var(--text-primary);font-weight:500}.ThroughputChart-module__placeholder___CdaMa{border:1px dashed var(--border-primary);background:color-mix(in srgb, var(--bg-secondary) 60%, transparent);text-align:center;border-radius:12px;flex-direction:column;gap:4px;padding:32px;display:flex}.ThroughputChart-module__placeholderTitle___--Mu2{color:var(--text-primary);margin:0;font-size:14px;font-weight:600}.ThroughputChart-module__placeholderHint___NIiCf{color:var(--text-secondary);margin:0;font-size:13px}@keyframes ThroughputChart-module__barGrow___65yaS{0%{opacity:0;transform:scaleY(.02)}to{opacity:1;transform:scaleY(1)}}@keyframes ThroughputChart-module__peakFade___9U9Rk{0%{opacity:0}to{opacity:1}}.dashboard-module__page___UF6ee{flex-direction:column;gap:clamp(44px,6.5vh,76px);width:100%;max-width:1120px;margin:0 auto;display:flex;position:relative}.dashboard-module__ambient___25f--{z-index:0;pointer-events:none;height:560px;position:absolute;top:0;bottom:auto;left:-40px;right:-40px;overflow:hidden}.dashboard-module__washTop___2D-R1{background:radial-gradient(ellipse 75% 70% at 50% 18%, color-mix(in srgb, var(--viz-success) 10%, transparent), transparent 70%);width:min(960px,96vw);height:480px;position:absolute;top:0;left:50%;transform:translate(-50%);-webkit-mask-image:linear-gradient(#0000,#000 26% 62%,#0000);mask-image:linear-gradient(#0000,#000 26% 62%,#0000)}.dashboard-module__gridWash___IJsAj{background-image:linear-gradient(to right, var(--border-color) 1px, transparent 1px), linear-gradient(to bottom, var(--border-color) 1px, transparent 1px);opacity:.24;-webkit-mask-composite:source-in;background-size:72px 72px;position:absolute;top:0;bottom:0;left:0;right:0;-webkit-mask-image:linear-gradient(#0000,#000 48px),radial-gradient(70% 60% at 50% 0,#000 0%,#0000 78%);mask-image:linear-gradient(#0000,#000 48px),radial-gradient(70% 60% at 50% 0,#000 0%,#0000 78%);-webkit-mask-composite:source-in;mask-composite:intersect}.dashboard-module__hero___MkU3k{z-index:1;grid-template-columns:minmax(0,1.15fr) minmax(300px,.85fr);align-items:center;gap:clamp(24px,4vw,56px);padding-top:clamp(16px,3vh,40px);padding-bottom:clamp(64px,11vh,120px);display:grid;position:relative}@media (max-width:900px){.dashboard-module__hero___MkU3k{grid-template-columns:minmax(0,1fr);padding-bottom:clamp(48px,8vh,72px)}}.dashboard-module__heroWire___CyDZk{z-index:0;pointer-events:none;height:clamp(88px,15vh,160px);position:absolute;bottom:-10px;left:0;right:0}.dashboard-module__heroCopy___7eu3Y{z-index:1;flex-direction:column;align-items:flex-start;gap:16px;min-width:0;display:flex;position:relative}.dashboard-module__heroTitle___bjdUU{letter-spacing:-.035em;color:var(--text-primary);text-wrap:balance;margin:0;font-size:clamp(44px,6.2vw,80px);font-weight:700;line-height:1.05}.dashboard-module__heroPeriod___pihps{letter-spacing:0;margin-inline-start:clamp(4px,.08em,7px);display:inline}.dashboard-module__heroPeriodLive___rE5lR{animation:3.2s ease-in-out 1.8s infinite dashboard-module__periodBreath___NC0oZ}@media (prefers-reduced-motion:reduce){.dashboard-module__heroPeriodLive___rE5lR{animation:none}}.dashboard-module__heroMeta___SsmPi{letter-spacing:.02em;color:var(--text-secondary);font-variant-numeric:tabular-nums;margin:0;font-family:ui-monospace,SF Mono,Cascadia Mono,JetBrains Mono,Fira Code,Menlo,Consolas,Liberation Mono,monospace;font-size:13px}.dashboard-module__heroActions___nMO4M{flex-wrap:wrap;gap:8px;margin-top:4px;display:flex}.dashboard-module__primaryAction___9gfgH,.dashboard-module__ghostAction___N9jjF{transition:transform var(--dur-press) var(--ease-out-strong), background-color .15s ease, border-color .15s ease, box-shadow var(--dur-hover) var(--ease-out-strong), color .15s ease;border-radius:9999px;align-items:center;gap:6px;padding:11px 20px;font-size:14px;font-weight:600;text-decoration:none;display:inline-flex}.dashboard-module__primaryAction___9gfgH:active,.dashboard-module__ghostAction___N9jjF:active{transform:scale(.97)}@media (prefers-reduced-motion:reduce){.dashboard-module__primaryAction___9gfgH,.dashboard-module__ghostAction___N9jjF{transition:none}.dashboard-module__primaryAction___9gfgH:active,.dashboard-module__ghostAction___N9jjF:active{transform:none}}.dashboard-module__primaryAction___9gfgH{background:var(--text-primary);color:var(--bg-secondary);border:1px solid #0000}@media (hover:hover) and (pointer:fine){.dashboard-module__primaryAction___9gfgH:hover{background:color-mix(in srgb, var(--text-primary) 86%, var(--bg-secondary));box-shadow:0 12px 26px color-mix(in srgb, var(--text-primary) 22%, transparent);transform:translateY(-1px)}}.dashboard-module__primaryAction___9gfgH:active{transform:translateY(0)scale(.97)}@media (prefers-reduced-motion:reduce) and (hover:hover) and (pointer:fine){.dashboard-module__primaryAction___9gfgH:hover{transform:none}}.dashboard-module__ghostAction___N9jjF{color:var(--text-secondary);background:0 0;border:none;padding-left:4px;padding-right:4px}@media (hover:hover) and (pointer:fine){.dashboard-module__ghostAction___N9jjF:hover{color:var(--text-primary);background:0 0}.dashboard-module__ghostAction___N9jjF:hover .dashboard-module__linkArrow___vWko7{transform:translate(3px)}}.dashboard-module__linkArrow___vWko7{transition:transform var(--dur-hover,.2s) var(--ease-out-strong,ease-out);display:inline-block}@media (prefers-reduced-motion:reduce){.dashboard-module__linkArrow___vWko7{transition:none;transform:none!important}}.dashboard-module__heroPanel___sFbi-{--glass-blur:14px;z-index:1;border:1px solid var(--glass-border);background:linear-gradient(145deg, color-mix(in srgb, var(--bg-primary) 90%, transparent), color-mix(in srgb, var(--bg-secondary) 74%, transparent));-webkit-backdrop-filter:var(--glass-backdrop-filter);box-shadow:var(--shadow-lg);border-radius:20px;flex-direction:column;gap:4px;padding:clamp(24px,2.5vw,28px);display:flex;position:relative}.dashboard-module__heroPanelTop___sNg4k{justify-content:space-between;align-items:center;gap:8px;display:flex}.dashboard-module__heroPanelLabel___jUpVi{letter-spacing:.12em;text-transform:uppercase;color:var(--text-tertiary);font-family:ui-monospace,SF Mono,Cascadia Mono,JetBrains Mono,Fira Code,Menlo,Consolas,Liberation Mono,monospace;font-size:11px;font-weight:700}.dashboard-module__liveBadge___9fdYq{border:1px solid color-mix(in srgb, var(--viz-success) 35%, transparent);background:color-mix(in srgb, var(--viz-success) 8%, transparent);letter-spacing:.14em;text-transform:uppercase;color:var(--success-badge-text);border-radius:9999px;align-items:center;gap:6px;padding:3px 9px;font-family:ui-monospace,SF Mono,Cascadia Mono,JetBrains Mono,Fira Code,Menlo,Consolas,Liberation Mono,monospace;font-size:10px;font-weight:700;display:inline-flex}.dashboard-module__liveDot___VGdIG{background:var(--viz-success);border-radius:50%;width:6px;height:6px;animation:2s ease-out infinite dashboard-module__livePing___3wKU9}@media (prefers-reduced-motion:reduce){.dashboard-module__liveDot___VGdIG{animation:none}}.dashboard-module__heroFigure___wRcDD{letter-spacing:-.02em;color:var(--text-primary);font-variant-numeric:tabular-nums;font-family:ui-monospace,SF Mono,Cascadia Mono,JetBrains Mono,Fira Code,Menlo,Consolas,Liberation Mono,monospace;font-size:clamp(42px,5.6vw,62px);font-weight:600;line-height:1.05}.dashboard-module__heroPanelMeta___LTO6H{color:var(--text-secondary);font-family:ui-monospace,SF Mono,Cascadia Mono,JetBrains Mono,Fira Code,Menlo,Consolas,Liberation Mono,monospace;font-size:12px}.dashboard-module__ratioBar___QbYaG{gap:2px;height:6px;margin-top:8px;display:flex}.dashboard-module__ratioSegment___QPj4X{border-radius:3px;min-width:4px;display:block}.dashboard-module__heroSplit___iBb4m{border-top:1px solid var(--border-color);color:var(--text-secondary);flex-wrap:wrap;gap:16px;padding-top:8px;font-size:12px;display:flex}.dashboard-module__heroSplitItem___9Xb7t{align-items:center;gap:6px;display:inline-flex}.dashboard-module__heroSplitItem___9Xb7t b{color:var(--text-primary);font-variant-numeric:tabular-nums;font-family:ui-monospace,SF Mono,Cascadia Mono,JetBrains Mono,Fira Code,Menlo,Consolas,Liberation Mono,monospace}.dashboard-module__splitSwatch___T1BAm{border-radius:2px;flex:none;width:8px;height:8px}.dashboard-module__splitSuccess___YzZ3r{background:var(--viz-success)}.dashboard-module__splitFailure___uod1c{background:var(--viz-failure)}.dashboard-module__statsRow___N02MY{z-index:1;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;display:grid;position:relative}@media (max-width:900px){.dashboard-module__statsRow___N02MY{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:460px){.dashboard-module__statsRow___N02MY{grid-template-columns:minmax(0,1fr)}}.dashboard-module__statTile___pRszo{border:1px solid var(--border-color);background:color-mix(in srgb, var(--bg-primary) 82%, transparent);border-radius:14px;flex-direction:column;gap:6px;padding:24px;transition:border-color .15s;display:flex}.dashboard-module__statTile___pRszo:before{content:"";background:var(--tile-accent,var(--border-hover));border-radius:9999px;width:28px;height:3px;margin-bottom:2px}@media (hover:hover) and (pointer:fine){.dashboard-module__statTile___pRszo:hover{border-color:var(--border-hover)}}@media (prefers-reduced-motion:reduce){.dashboard-module__statTile___pRszo{transition:none}}.dashboard-module__statLabel___vBc52{color:var(--text-secondary);font-size:12px;font-weight:600}.dashboard-module__statValue___HlP6a{letter-spacing:-.01em;color:var(--text-primary);font-variant-numeric:tabular-nums;font-family:ui-monospace,SF Mono,Cascadia Mono,JetBrains Mono,Fira Code,Menlo,Consolas,Liberation Mono,monospace;font-size:28px;font-weight:600;line-height:1.1}.dashboard-module__statMeter___iqQ0d{margin:4px 0 2px}.dashboard-module__statHint___jA1Lx{color:var(--text-tertiary);font-size:12px;line-height:1.45}.dashboard-module__section___SU27P{z-index:1;flex-direction:column;gap:24px;display:flex;position:relative}.dashboard-module__sectionHead___HiDgg{flex-direction:column;gap:6px;display:flex}.dashboard-module__eyebrow___9pOzG{letter-spacing:.12em;text-transform:uppercase;color:var(--text-tertiary);align-items:center;gap:7px;font-family:ui-monospace,SF Mono,Cascadia Mono,JetBrains Mono,Fira Code,Menlo,Consolas,Liberation Mono,monospace;font-size:11px;font-weight:700;display:inline-flex}.dashboard-module__eyebrow___9pOzG:before{content:"▍";color:var(--viz-success);font-size:12px;line-height:1}.dashboard-module__sectionTitle___mdUFh{letter-spacing:-.02em;color:var(--text-primary);text-wrap:balance;margin:0;font-size:clamp(22px,2.6vw,30px);font-weight:650;line-height:1.18}.dashboard-module__sectionDescription___njtD8{max-width:64ch;color:var(--text-secondary);margin:0;font-size:14px;line-height:1.6}.dashboard-module__panel___yFev0{border:1px solid var(--border-color);background:color-mix(in srgb, var(--bg-primary) 82%, transparent);border-radius:16px;flex-direction:column;gap:16px;padding:clamp(24px,2.4vw,28px);display:flex}.dashboard-module__panelHead___JCcHO{flex-direction:column;gap:4px;display:flex}.dashboard-module__panelTitle___DPM1j{letter-spacing:-.01em;color:var(--text-primary);margin:0;font-size:18px;font-weight:650}.dashboard-module__panelLink___b7hxz{color:var(--primary-active);align-self:flex-start;margin-top:auto;font-size:13px;font-weight:600;text-decoration:none}@media (hover:hover) and (pointer:fine){.dashboard-module__panelLink___b7hxz:hover{text-decoration:underline}.dashboard-module__panelLink___b7hxz:hover .dashboard-module__linkArrow___vWko7{transform:translate(3px)}}.dashboard-module__emptyNote___ZPLt3{text-align:center;color:var(--text-tertiary);margin:0;padding:24px 0;font-size:13px}.dashboard-module__fleetList___znqyo{flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.dashboard-module__fleetRow___CMqRX{border-bottom:1px solid var(--border-color);grid-template-columns:auto minmax(0,1.3fr) minmax(80px,1fr) auto minmax(96px,.7fr);align-items:center;gap:16px;padding:16px 0;display:grid}.dashboard-module__fleetRow___CMqRX:last-child{border-bottom:none}@media (max-width:760px){.dashboard-module__fleetRow___CMqRX{grid-template-columns:minmax(0,1fr) auto;row-gap:8px}}.dashboard-module__fleetRank___Ll1Rd{color:var(--text-quaternary);font-variant-numeric:tabular-nums;font-family:ui-monospace,SF Mono,Cascadia Mono,JetBrains Mono,Fira Code,Menlo,Consolas,Liberation Mono,monospace;font-size:12px;font-weight:600}@media (max-width:760px){.dashboard-module__fleetRank___Ll1Rd{display:none}}.dashboard-module__fleetIdentity___Ly9vN{flex-direction:column;gap:2px;min-width:0;display:flex}.dashboard-module__fleetName___RORQt{color:var(--text-primary);text-overflow:ellipsis;white-space:nowrap;font-size:14px;font-weight:600;overflow:hidden}.dashboard-module__fleetMeta___xo-1P{color:var(--text-tertiary);font-size:12px}.dashboard-module__fleetSpark___Ya30N{height:28px}@media (max-width:760px){.dashboard-module__fleetSpark___Ya30N{order:3;grid-column:1/-1}}.dashboard-module__fleetNumbers___aQeog{flex-direction:column;align-items:flex-end;gap:1px;display:flex}.dashboard-module__fleetTotal___MadmX{color:var(--text-primary);font-variant-numeric:tabular-nums;font-family:ui-monospace,SF Mono,Cascadia Mono,JetBrains Mono,Fira Code,Menlo,Consolas,Liberation Mono,monospace;font-size:15px;font-weight:600}.dashboard-module__fleetTotalLabel___RhSuG{color:var(--text-tertiary);font-size:11px}.dashboard-module__fleetRate___jYvLy{flex-direction:column;gap:5px;display:flex}.dashboard-module__fleetRateValue___Tj2Kl{color:var(--text-secondary);font-variant-numeric:tabular-nums;font-family:ui-monospace,SF Mono,Cascadia Mono,JetBrains Mono,Fira Code,Menlo,Consolas,Liberation Mono,monospace;font-size:12.5px;font-weight:600}.dashboard-module__fleetMeter___l-m4d{height:5px}.dashboard-module__detailGrid___Zr06g{z-index:1;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid;position:relative}@media (max-width:900px){.dashboard-module__detailGrid___Zr06g{grid-template-columns:minmax(0,1fr)}}.dashboard-module__healthBar___XMGkG{gap:2px;height:10px;margin-top:4px;display:flex}.dashboard-module__healthSegment___vawrq{border-radius:3px;min-width:4px;display:block}.dashboard-module__healthActive___zZV8L{background:var(--viz-success)}.dashboard-module__healthUnavailable___F49dV{background:var(--amber-color)}.dashboard-module__healthDisabled___guPq-{background:var(--text-quaternary)}.dashboard-module__healthLegend___3ewIe{color:var(--text-secondary);flex-wrap:wrap;gap:16px;margin:0;padding:0;font-size:12px;list-style:none;display:flex}.dashboard-module__healthLegend___3ewIe li{align-items:center;gap:6px;display:inline-flex}.dashboard-module__healthLegend___3ewIe b{color:var(--text-primary);font-variant-numeric:tabular-nums;font-family:ui-monospace,SF Mono,Cascadia Mono,JetBrains Mono,Fira Code,Menlo,Consolas,Liberation Mono,monospace}.dashboard-module__healthKey___2cAw2{border-radius:2px;flex:none;width:8px;height:8px}.dashboard-module__typeBreakdown___Pa2Q3{border-top:1px solid var(--border-color);flex-direction:column;gap:8px;padding-top:16px;display:flex}.dashboard-module__typeBreakdownLabel___jt9VW{letter-spacing:.14em;text-transform:uppercase;color:var(--text-tertiary);font-size:11px;font-weight:700}.dashboard-module__typeList___edMu9{flex-wrap:wrap;gap:6px;margin:0;padding:0;list-style:none;display:flex}.dashboard-module__typeChip___-twi3{border:1px solid var(--border-color);background:color-mix(in srgb, var(--bg-secondary) 60%, transparent);color:var(--text-secondary);border-radius:9999px;align-items:center;gap:6px;padding:5px 10px;font-size:12px;display:inline-flex}.dashboard-module__typeChip___-twi3 b{color:var(--text-primary);font-variant-numeric:tabular-nums;font-family:ui-monospace,SF Mono,Cascadia Mono,JetBrains Mono,Fira Code,Menlo,Consolas,Liberation Mono,monospace}.dashboard-module__specList___naEGe{flex-direction:column;margin:0;display:flex}.dashboard-module__specRow___IH1wt{border-bottom:1px solid var(--border-color);justify-content:space-between;align-items:baseline;gap:16px;padding:9px 0;display:flex}.dashboard-module__specRow___IH1wt:last-child{border-bottom:none}.dashboard-module__specLabel___QxD73{color:var(--text-secondary);font-size:13px}.dashboard-module__specValue___eI8Ot{color:var(--text-primary);text-align:right;font-variant-numeric:tabular-nums;text-overflow:ellipsis;white-space:nowrap;min-width:0;margin:0;font-size:13px;font-weight:600;overflow:hidden}.dashboard-module__specMono___5y8cr{font-family:ui-monospace,SF Mono,Cascadia Mono,JetBrains Mono,Fira Code,Menlo,Consolas,Liberation Mono,monospace;font-size:12px;font-weight:500}.dashboard-module__toggleList___Krb90{flex-wrap:wrap;gap:6px;margin:0;padding:0;list-style:none;display:flex}.dashboard-module__togglePill___QJYAj{border:1px solid var(--border-color);color:var(--text-secondary);border-radius:9999px;align-items:center;gap:6px;padding:5px 10px;font-size:12px;display:inline-flex}.dashboard-module__togglePill___QJYAj b{font-weight:650}.dashboard-module__toggleOn___VmR3w{border-color:color-mix(in srgb, var(--viz-success) 40%, transparent);background:color-mix(in srgb, var(--viz-success) 10%, transparent)}.dashboard-module__toggleOn___VmR3w b{color:var(--success-badge-text)}.dashboard-module__toggleOff___XWtlD{background:color-mix(in srgb, var(--bg-secondary) 60%, transparent)}.dashboard-module__toggleOff___XWtlD b{color:var(--text-tertiary)}.dashboard-module__ctaGrid___OQEZ7{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;display:grid}@media (max-width:900px){.dashboard-module__ctaGrid___OQEZ7{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:768px){.dashboard-module__ctaGrid___OQEZ7{grid-template-columns:minmax(0,1fr)}}.dashboard-module__ctaCard___-fF7e{border:1px solid var(--border-color);background:color-mix(in srgb, var(--bg-primary) 76%, transparent);transition:transform var(--dur-press) var(--ease-out-strong), border-color .15s ease, box-shadow var(--dur-hover) var(--ease-out-strong);border-radius:14px;flex-direction:column;gap:6px;padding:24px;text-decoration:none;display:flex;position:relative;overflow:hidden}@media (hover:hover) and (pointer:fine){.dashboard-module__ctaCard___-fF7e:hover{border-color:var(--border-hover);transform:translateY(-2px);box-shadow:0 14px 30px #0000001f}.dashboard-module__ctaCard___-fF7e:hover .dashboard-module__ctaArrow___IBWKn{opacity:1;transform:translate(3px)}}.dashboard-module__ctaCard___-fF7e:active{transform:translateY(0)scale(.98)}@media (prefers-reduced-motion:reduce){.dashboard-module__ctaCard___-fF7e{transition:none}.dashboard-module__ctaCard___-fF7e:active{transform:none}}@media (prefers-reduced-motion:reduce) and (hover:hover) and (pointer:fine){.dashboard-module__ctaCard___-fF7e:hover,.dashboard-module__ctaCard___-fF7e:hover .dashboard-module__ctaArrow___IBWKn{transform:none}}.dashboard-module__ctaIcon___ulbkn{border:1px solid var(--border-color);background:color-mix(in srgb, var(--text-primary) 6%, transparent);width:36px;height:36px;color:var(--text-primary);border-radius:8px;justify-content:center;align-items:center;margin-bottom:4px;display:inline-flex}.dashboard-module__ctaTitle___5vVvg{color:var(--text-primary);font-size:15px;font-weight:650}.dashboard-module__ctaDescription___rSwmK{color:var(--text-secondary);font-size:13px;line-height:1.5}.dashboard-module__ctaArrow___IBWKn{color:var(--text-tertiary);opacity:.55;transition:transform var(--dur-hover) var(--ease-out-strong), opacity var(--dur-hover) var(--ease-out-strong);font-size:15px;position:absolute;top:24px;right:24px}@keyframes dashboard-module__periodBreath___NC0oZ{0%,to{opacity:1}50%{opacity:.45}}@keyframes dashboard-module__livePing___3wKU9{0%{box-shadow:0 0 0 0 color-mix(in srgb, var(--viz-success) 40%, transparent)}70%{box-shadow:0 0 0 6px #0000}to{box-shadow:0 0 #0000}}.Skeleton-module__skeleton___XePp7{background:linear-gradient(90deg, var(--bg-tertiary) 0%, var(--bg-hover) 50%, var(--bg-tertiary) 100%);border-radius:var(--radius-md);background-size:200% 100%;animation:1.5s ease-in-out infinite Skeleton-module__shimmer___vu211;display:block}@keyframes Skeleton-module__shimmer___vu211{0%{background-position:200% 0}to{background-position:-200% 0}}@media (prefers-reduced-motion:reduce){.Skeleton-module__skeleton___XePp7{background:var(--bg-tertiary);animation:none}}.ProviderHeaderCard-module__card___-vito{flex-direction:column;gap:12px;display:flex}.ProviderHeaderCard-module__row___8x7Kv{flex-direction:column;gap:16px;display:flex}@media (min-width:1024px){.ProviderHeaderCard-module__row___8x7Kv{flex-direction:row;justify-content:space-between;align-items:center}}.ProviderHeaderCard-module__titleArea___wB2EB{flex-direction:column;gap:6px;min-width:0;display:flex}.ProviderHeaderCard-module__title___gZU4U{color:var(--text-primary);margin:0;font-size:30px;font-weight:700;line-height:1.2}.ProviderHeaderCard-module__quickStartCard___R5pLj{gap:14px}.ProviderHeaderCard-module__quickStartCard___R5pLj .ProviderHeaderCard-module__title___gZU4U{letter-spacing:0;font-size:32px;font-weight:720;line-height:1.18}.ProviderHeaderCard-module__quickStartCard___R5pLj .ProviderHeaderCard-module__btn___V-Ldg{font-size:14px;font-weight:600;line-height:1}.ProviderHeaderCard-module__subtitle___ahXHM{color:var(--muted-foreground);margin:0;font-size:14px;line-height:1.5}.ProviderHeaderCard-module__actions___mjRJJ{flex-wrap:wrap;align-items:center;gap:8px;display:flex}@media (min-width:1024px){.ProviderHeaderCard-module__actions___mjRJJ{justify-content:flex-end}}.ProviderHeaderCard-module__btn___V-Ldg{border-radius:var(--radius-md);cursor:pointer;height:34px;color:var(--text-primary);background:0 0;border:1px solid #0000;align-items:center;gap:6px;padding:0 14px;font-size:14px;font-weight:500;transition:background-color .15s,border-color .15s,color .15s;display:inline-flex}.ProviderHeaderCard-module__btn___V-Ldg:disabled{opacity:.6;cursor:not-allowed}.ProviderHeaderCard-module__btn___V-Ldg:focus-visible{outline:2px solid var(--primary-color);outline-offset:2px}.ProviderHeaderCard-module__btnOutline___P7piG{border-color:var(--border-color);background:var(--bg-primary)}.ProviderHeaderCard-module__btnOutline___P7piG:hover:not(:disabled){background:var(--bg-tertiary);border-color:var(--border-hover)}.ProviderHeaderCard-module__btnPrimary___-U6YA{background:var(--primary-color);color:var(--primary-contrast)}.ProviderHeaderCard-module__btnPrimary___-U6YA:hover:not(:disabled){background:var(--primary-hover)}.ProviderHeaderCard-module__btnPrimary___-U6YA:active:not(:disabled){background:var(--primary-active)}.ProviderHeaderCard-module__chips___kt9b-{flex-wrap:wrap;gap:8px;display:flex}.ProviderHeaderCard-module__chip___U2QSK{border-radius:var(--radius-md);border:1px solid var(--border-color);background:var(--muted-bg);color:var(--muted-foreground);align-items:center;gap:6px;padding:5px 12px;font-size:13px;font-weight:500;display:inline-flex}.ProviderHeaderCard-module__chipPrimary___u8TVQ{border-color:var(--primary-30);background:var(--primary-10);color:var(--primary-color)}.ProviderHeaderCard-module__chipAmber___1vTiO{border-color:var(--amber-30);background:var(--amber-10);color:var(--amber-text)}.ProviderHeaderCard-module__spin___JVOx1{animation:.9s linear infinite ProviderHeaderCard-module__pwc-spin___Ehj71;display:inline-flex}.ProviderHeaderCard-module__btnIcon___zQlLw{align-items:center;display:inline-flex}@keyframes ProviderHeaderCard-module__pwc-spin___Ehj71{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@media (max-width:768px){.ProviderHeaderCard-module__quickStartCard___R5pLj .ProviderHeaderCard-module__title___gZU4U{font-size:28px;line-height:1.2}}.ProviderCategoryList-module__stack___kBxsD{flex-direction:column;align-self:start;gap:12px;min-width:0;display:flex}.ProviderCategoryList-module__aside___PBIjb{background:var(--bg-primary);border:1px solid var(--border-color);box-shadow:var(--shadow);border-radius:12px;min-width:0;padding:12px}.ProviderCategoryList-module__eyebrow___oNTkj{letter-spacing:.05em;text-transform:uppercase;color:var(--muted-foreground);margin:4px 8px 8px;font-size:12px;font-weight:500}.ProviderCategoryList-module__list___i2RZA{flex-direction:column;gap:4px;display:flex}.ProviderCategoryList-module__item___WRCng{border-radius:var(--radius-md);cursor:pointer;text-align:left;width:100%;color:var(--text-primary);background:0 0;border:1px solid #0000;justify-content:space-between;align-items:center;gap:12px;min-width:0;padding:10px 12px;transition:background-color .15s,border-color .15s,color .15s;display:flex}.ProviderCategoryList-module__item___WRCng:hover:not(.ProviderCategoryList-module__active___MLw6R){background:color-mix(in srgb, var(--accent-bg) 50%, transparent);border-color:var(--border-color)}.ProviderCategoryList-module__item___WRCng:focus-visible{outline:2px solid var(--primary-color);outline-offset:-2px}.ProviderCategoryList-module__item___WRCng.ProviderCategoryList-module__active___MLw6R{border-color:var(--primary-30);background:var(--primary-10);color:var(--primary-color)}.ProviderCategoryList-module__itemKimi___CmmWl.ProviderCategoryList-module__active___MLw6R{background:color-mix(in srgb, #1783ff 10%, var(--bg-primary));color:color-mix(in srgb, #1783ff 82%, var(--text-primary));border-color:#1783ff4d}.ProviderCategoryList-module__itemKimi___CmmWl.ProviderCategoryList-module__active___MLw6R .ProviderCategoryList-module__itemSubtitle___hUfT0{color:color-mix(in srgb, #1783ff 82%, var(--text-primary))}.ProviderCategoryList-module__itemLeft___z9fEi{flex:1;align-items:center;gap:10px;min-width:0;display:flex}.ProviderCategoryList-module__logo___8TKKa{border-radius:var(--radius-md);object-fit:contain;background:var(--bg-tertiary);flex-shrink:0;width:26px;height:26px;padding:2px}.ProviderCategoryList-module__logoTransparent___waebo{background:0 0}.ProviderCategoryList-module__logoThemeSurface___ea1Qt{box-sizing:border-box;background:#000;padding:5px}[data-theme=dark] .ProviderCategoryList-module__logoThemeSurface___ea1Qt{background:#fff}.ProviderCategoryList-module__logoThemeDark___je6QA{display:none}[data-theme=dark] .ProviderCategoryList-module__logoThemeDark___je6QA{display:block}[data-theme=dark] .ProviderCategoryList-module__logoThemeLight___VerKO{display:none}[data-theme=dark] .ProviderCategoryList-module__logoInvertOnDark___4YQXt{filter:invert()hue-rotate(180deg)}.ProviderCategoryList-module__itemText___YV93M{flex-direction:column;min-width:0;display:flex}.ProviderCategoryList-module__itemTitle___tWmJK{white-space:nowrap;text-overflow:ellipsis;font-size:14px;font-weight:500;overflow:hidden}.ProviderCategoryList-module__itemSubtitle___hUfT0{color:var(--muted-foreground);margin-top:2px;font-size:12px;font-weight:400}.ProviderCategoryList-module__active___MLw6R .ProviderCategoryList-module__itemSubtitle___hUfT0{color:var(--primary-color);opacity:.85}.ProviderCategoryList-module__badge___mYck8{border-radius:var(--radius-md);background:var(--bg-primary);border:1px solid var(--border-color);min-width:26px;color:var(--muted-foreground);flex-shrink:0;justify-content:center;align-items:center;padding:2px 9px;font-size:12px;font-weight:500;display:inline-flex}.ProviderCategoryList-module__badgeAmber___n2AT5{background:var(--amber-10);border-color:var(--amber-30);color:var(--amber-text)}.ProviderCategoryList-module__badgeKimi___JnxDL{background:color-mix(in srgb, #1783ff 14%, var(--bg-primary));border-color:color-mix(in srgb, #1783ff 48%, var(--border-color));color:color-mix(in srgb, #1783ff 82%, var(--text-primary))}.Table-module__wrap___BoMJd{border:1px solid var(--border-color);border-radius:var(--radius-md);background:var(--bg-primary);overflow:hidden}.Table-module__scroll___hyI-i{overflow-x:auto}.Table-module__table___2tzS9{border-collapse:separate;border-spacing:0;width:100%;color:var(--text-primary);font-size:13px}.Table-module__head___exzqF{background:var(--muted-bg)}.Table-module__head___exzqF th{color:var(--muted-foreground);text-align:left;border-bottom:1px solid var(--border-color);vertical-align:middle;padding:10px 14px;font-size:12px;font-weight:500}.Table-module__head___exzqF th.Table-module__alignRight___sq06f{text-align:right}.Table-module__body___7J59-{background:var(--bg-primary)}.Table-module__row___jJz3d{transition:background-color .15s}.Table-module__row___jJz3d td{border-bottom:1px solid var(--border-color);vertical-align:top;padding:12px 14px;line-height:1.5}.Table-module__row___jJz3d:hover td{background:color-mix(in srgb, var(--accent-bg) 50%, transparent)}.Table-module__row___jJz3d.Table-module__selected___-MWZq td{background:var(--primary-8)}.Table-module__body___7J59- .Table-module__row___jJz3d:last-child td{border-bottom:none}.Table-module__alignRight___sq06f{text-align:right}.ToggleSwitch-module__root___IUqKD{cursor:pointer;align-items:center;gap:8px;display:inline-flex;position:relative}.ToggleSwitch-module__labelLeft___Pc6fJ .ToggleSwitch-module__label___4iQkR{order:-1}.ToggleSwitch-module__disabled___GNGHj{cursor:not-allowed}.ToggleSwitch-module__root___IUqKD input{opacity:0;width:0;height:0;position:absolute}.ToggleSwitch-module__track___zFtXx{background:var(--border-color);border-radius:9999px;width:44px;height:24px;transition:background .15s;position:relative}.ToggleSwitch-module__thumb___gQ45C{background:#fff;border-radius:9999px;width:18px;height:18px;transition:transform .15s;position:absolute;top:3px;left:3px;box-shadow:0 1px 2px #0000000d}.ToggleSwitch-module__root___IUqKD input:checked+.ToggleSwitch-module__track___zFtXx{background:var(--primary-color)}.ToggleSwitch-module__root___IUqKD input:checked+.ToggleSwitch-module__track___zFtXx .ToggleSwitch-module__thumb___gQ45C{transform:translate(20px)}.ToggleSwitch-module__label___4iQkR{color:var(--text-primary);font-weight:600}.ProviderResourceTable-module__providerTable___gPviT{table-layout:fixed;min-width:960px}.ProviderResourceTable-module__providerTable___gPviT tbody tr:hover .ProviderResourceTable-module__actionsCell___zCEoe{background:color-mix(in srgb, var(--accent-bg) 50%, transparent)}.ProviderResourceTable-module__primaryCell___fLp9r{flex-direction:column;gap:4px;min-width:0;display:flex}.ProviderResourceTable-module__primaryName___dfYeV{color:var(--text-primary);text-overflow:ellipsis;white-space:nowrap;max-width:220px;font-weight:500;overflow:hidden}.ProviderResourceTable-module__primarySub___QABoS{color:var(--muted-foreground);text-overflow:ellipsis;white-space:nowrap;max-width:220px;font-family:ui-monospace,SF Mono,Cascadia Mono,JetBrains Mono,Fira Code,Menlo,Consolas,Liberation Mono,monospace;font-size:12px;overflow:hidden}.ProviderResourceTable-module__baseUrl___FNjG7{width:100%;min-width:0;max-width:100%;color:var(--muted-foreground);text-overflow:ellipsis;white-space:nowrap;font-family:ui-monospace,SF Mono,Cascadia Mono,JetBrains Mono,Fira Code,Menlo,Consolas,Liberation Mono,monospace;font-size:12px;display:block;overflow:hidden}.ProviderResourceTable-module__chip___U7kQV{border-radius:var(--radius-md);border:1px solid var(--border-color);background:var(--muted-bg);color:var(--muted-foreground);align-items:center;padding:3px 9px;font-size:12px;display:inline-flex}.ProviderResourceTable-module__metricsCell___1OlzF{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.ProviderResourceTable-module__metric___aEHez{border-radius:var(--radius-md);border:1px solid var(--border-color);background:var(--muted-bg);white-space:nowrap;align-items:center;gap:4px;padding:3px 9px;font-size:12px;line-height:1.4;display:inline-flex}.ProviderResourceTable-module__metricLabel___t8rAu{color:var(--muted-foreground)}.ProviderResourceTable-module__metricValue___VTEWB{color:var(--text-primary);font-variant-numeric:tabular-nums;font-weight:600}.ProviderResourceTable-module__flagTag___2i4Y4{border-radius:var(--radius-md);border:1px solid var(--primary-30);background:var(--primary-10);color:var(--primary-color);white-space:nowrap;align-items:center;padding:3px 9px;font-size:12px;font-weight:500;line-height:1.4;display:inline-flex}.ProviderResourceTable-module__statusBadge___dk8Hi{border-radius:var(--radius-md);white-space:nowrap;border:1px solid;align-items:center;gap:4px;padding:3px 9px;font-size:12px;font-weight:500;display:inline-flex}.ProviderResourceTable-module__statusCell___8599N{flex-direction:column;align-items:flex-start;gap:6px;min-width:0;max-width:190px;display:flex}.ProviderResourceTable-module__stats___73Ql1{flex-wrap:wrap;gap:4px;max-width:100%;display:flex}.ProviderResourceTable-module__statPill___-ANv0{white-space:nowrap;font-variant-numeric:tabular-nums;border:1px solid #0000;border-radius:999px;align-items:center;gap:4px;padding:2px 7px;font-size:12px;font-weight:600;line-height:1.4;display:inline-flex}.ProviderResourceTable-module__statSuccess___LrHac{background-color:var(--success-badge-bg);color:var(--success-badge-text);border-color:var(--success-badge-border)}.ProviderResourceTable-module__statFailure___yGMe3{background-color:var(--failure-badge-bg);color:var(--failure-badge-text);border-color:var(--failure-badge-border)}.ProviderResourceTable-module__statusActive___Zw5FB{border-color:var(--success-badge-border);background:var(--success-badge-bg);color:var(--success-badge-text)}.ProviderResourceTable-module__statusDisabled___BKP-G{border-color:var(--amber-30);background:var(--amber-10);color:var(--amber-text)}.ProviderResourceTable-module__statusBarWrap___n9vAB{width:min(100%,178px);min-width:0}.ProviderResourceTable-module__actionsHead___FGGf4,.ProviderResourceTable-module__actionsCell___zCEoe{width:176px;min-width:176px;position:sticky;right:0;box-shadow:-12px 0 16px -18px #0f172a73}.ProviderResourceTable-module__actionsHead___FGGf4{z-index:3;background:var(--muted-bg)}.ProviderResourceTable-module__actionsCell___zCEoe{z-index:2;background:var(--bg-primary)}.ProviderResourceTable-module__actionsCellSelected___nrnrY{background:var(--primary-8)}.ProviderResourceTable-module__actions___4j-hn{justify-content:flex-end;align-items:center;gap:4px;min-width:0;display:flex}.ProviderResourceTable-module__toggleWrap___1u1Vz{align-items:center;margin-right:4px;display:inline-flex}.ProviderResourceTable-module__iconBtn___RYOTP{border-radius:var(--radius-md);width:30px;height:30px;color:var(--text-secondary);cursor:pointer;background:0 0;border:1px solid #0000;justify-content:center;align-items:center;padding:0;transition:background-color .15s,color .15s;display:inline-flex}.ProviderResourceTable-module__iconBtn___RYOTP:hover:not(:disabled){background:var(--bg-tertiary);color:var(--text-primary)}.ProviderResourceTable-module__iconBtn___RYOTP:disabled{opacity:.5;cursor:not-allowed}.ProviderResourceTable-module__iconBtn___RYOTP:focus-visible{outline:2px solid var(--primary-color);outline-offset:-1px}.ProviderResourceTable-module__iconBtnDanger___OCat1{color:var(--destructive-color)}.ProviderResourceTable-module__iconBtnDanger___OCat1:hover:not(:disabled){background:var(--destructive-10);color:var(--destructive-color)}.providerStatusBar-module__statusBar___CO-2Q{grid-template-columns:minmax(0,1fr) max-content;align-items:center;gap:6px;width:100%;max-width:100%;display:grid}.providerStatusBar-module__statusBlocks___GUtae{gap:2px;width:100%;min-width:0;display:flex;position:relative}.providerStatusBar-module__statusBlockWrapper___7PmJZ{cursor:pointer;-webkit-tap-highlight-color:transparent;flex:1 1 0;min-width:0;position:relative}.providerStatusBar-module__statusBlock___Bo-Dp{border-radius:2px;width:100%;height:6px;transition:transform .15s,opacity .15s}.providerStatusBar-module__statusBlockWrapper___7PmJZ:hover .providerStatusBar-module__statusBlock___Bo-Dp,.providerStatusBar-module__statusBlockWrapper___7PmJZ.providerStatusBar-module__statusBlockActive___FgyJm .providerStatusBar-module__statusBlock___Bo-Dp{opacity:.9;transform:scaleY(1.8)}.providerStatusBar-module__statusBlockIdle___SNDuL{background-color:var(--border-color)}.providerStatusBar-module__statusTooltip___pI78F{background:var(--bg-primary);border:1px solid var(--border-color);white-space:nowrap;z-index:1000;pointer-events:none;color:var(--text-primary);border-radius:6px;padding:6px 10px;font-size:12px;line-height:1.5;position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%);box-shadow:0 4px 12px #0000001f}.providerStatusBar-module__statusTooltip___pI78F:after{content:"";border:5px solid #0000;border-top-color:var(--bg-primary);position:absolute;top:100%;left:50%;transform:translate(-50%)}.providerStatusBar-module__statusTooltip___pI78F:before{content:"";border:6px solid #0000;border-top-color:var(--border-color);position:absolute;top:100%;left:50%;transform:translate(-50%)}.providerStatusBar-module__statusTooltipLeft___ZskB1{left:0;transform:translate(0)}.providerStatusBar-module__statusTooltipLeft___ZskB1:after,.providerStatusBar-module__statusTooltipLeft___ZskB1:before{left:8px;transform:none}.providerStatusBar-module__statusTooltipRight___Ajuc0{left:auto;right:0;transform:translate(0)}.providerStatusBar-module__statusTooltipRight___Ajuc0:after,.providerStatusBar-module__statusTooltipRight___Ajuc0:before{left:auto;right:8px;transform:none}.providerStatusBar-module__tooltipTime___u6zEq{color:var(--text-secondary);margin-bottom:2px;display:block}.providerStatusBar-module__tooltipStats___uvspI{align-items:center;gap:8px;display:flex}.providerStatusBar-module__tooltipSuccess___km1zF{color:var(--success-color,#22c55e)}.providerStatusBar-module__tooltipFailure___rNWH9{color:var(--danger-color,#ef4444)}.providerStatusBar-module__tooltipRate___YZaf1{color:var(--text-secondary);margin-left:2px}.providerStatusBar-module__statusRate___gq06G{white-space:nowrap;background:var(--bg-tertiary);min-width:48px;color:var(--text-secondary);font-variant-numeric:tabular-nums;border-radius:4px;justify-content:center;align-items:center;padding:2px 6px;font-size:12px;font-weight:600;display:inline-flex}.providerStatusBar-module__statusRateHigh___Q976x{color:var(--success-badge-text,#065f46);background:var(--success-badge-bg,#d1fae5)}.providerStatusBar-module__statusRateMedium___ExaLs{color:var(--warning-text,#92400e);background:var(--warning-bg,#fef3c7)}.providerStatusBar-module__statusRateLow___iNJnD{color:var(--failure-badge-text);background:var(--failure-badge-bg)}.ProviderResourceToolbar-module__root___3OtVO{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.ProviderResourceToolbar-module__sortGroup___Owd8u{align-items:center;gap:6px;display:flex}.ProviderResourceToolbar-module__label___Xpn6H{color:var(--muted-foreground);white-space:nowrap;font-size:12px}.ProviderResourceToolbar-module__dirBtn___Si6-Q{border-radius:var(--radius-md);border:1px solid var(--border-color);background:var(--bg-primary);width:30px;height:30px;color:var(--text-secondary);cursor:pointer;justify-content:center;align-items:center;transition:background-color .15s,color .15s;display:inline-flex}.ProviderResourceToolbar-module__dirBtn___Si6-Q:hover{background:var(--bg-tertiary);color:var(--text-primary)}.ProviderResourceToolbar-module__filterGroup___GCSLL{position:relative}.ProviderResourceToolbar-module__filterTrigger___7nyg5{border-radius:var(--radius-md);border:1px solid var(--border-color);background:var(--bg-primary);height:30px;color:var(--text-primary);cursor:pointer;align-items:center;gap:6px;padding:0 11px;font-size:13px;transition:background-color .15s,border-color .15s;display:inline-flex}.ProviderResourceToolbar-module__filterTrigger___7nyg5:hover:not(:disabled){border-color:var(--primary-color);color:var(--primary-color)}.ProviderResourceToolbar-module__filterTrigger___7nyg5:disabled{opacity:.6;cursor:not-allowed}.ProviderResourceToolbar-module__filterPanel___By-o1{z-index:1000;background:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--radius-md);flex-direction:column;gap:6px;min-width:220px;max-width:320px;padding:8px;display:flex;position:absolute;top:calc(100% + 6px);right:0;box-shadow:0 8px 20px #00000014}.ProviderResourceToolbar-module__filterToolbar___rAN5t{justify-content:flex-end;align-items:center;gap:6px;display:flex}.ProviderResourceToolbar-module__filterToolbarBtn___H8kEF{border-radius:var(--radius-md);border:1px solid var(--border-color);background:var(--bg-primary);color:var(--text-secondary);cursor:pointer;padding:3px 9px;font-size:12px}.ProviderResourceToolbar-module__filterToolbarBtn___H8kEF:hover:not(:disabled){border-color:var(--primary-color);color:var(--primary-color)}.ProviderResourceToolbar-module__filterToolbarBtn___H8kEF:disabled{opacity:.5;cursor:not-allowed}.ProviderResourceToolbar-module__filterEmpty___YoLaV{text-align:center;color:var(--muted-foreground);padding:12px;font-size:13px}.ProviderResourceToolbar-module__filterList___bLUS8{flex-direction:column;gap:2px;max-height:220px;margin:0;padding:0;list-style:none;display:flex;overflow-y:auto}.ProviderResourceToolbar-module__filterItem___ayJYT{border-radius:var(--radius-sm);padding:4px 6px}.ProviderResourceToolbar-module__filterItem___ayJYT:hover{background:var(--bg-tertiary)}.ProviderResourceToolbar-module__filterItemLabel___WgP0a{word-break:break-all;font-family:ui-monospace,SF Mono,Cascadia Mono,JetBrains Mono,Fira Code,Menlo,Consolas,Liberation Mono,monospace;font-size:13px}.ProviderResourcePanel-module__panel___CMeiX{background:var(--bg-primary);border:1px solid var(--border-color);box-shadow:var(--shadow);border-radius:12px;flex-direction:column;gap:16px;min-width:0;padding:20px;display:flex}.ProviderResourcePanel-module__header___Ud2jP,.ProviderResourcePanel-module__headerMain___aGFKi{flex-direction:column;gap:12px;display:flex}@media (min-width:768px){.ProviderResourcePanel-module__headerMain___aGFKi{flex-direction:row;justify-content:space-between;align-items:flex-start}}.ProviderResourcePanel-module__headerToolbarRow___lBCoP{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;display:flex}.ProviderResourcePanel-module__titleArea___SIpoX{flex-direction:column;min-width:0;display:flex}.ProviderResourcePanel-module__titleRow___T1AfI{align-items:center;gap:12px;display:flex}.ProviderResourcePanel-module__titleLink___Utbwk{border-radius:var(--radius-md);width:-moz-fit-content;width:fit-content;max-width:100%;color:inherit;cursor:pointer;margin:-4px -6px;padding:4px 6px;text-decoration:none}.ProviderResourcePanel-module__titleLink___Utbwk:hover .ProviderResourcePanel-module__title___Zw2Hc,.ProviderResourcePanel-module__titleLink___Utbwk:hover .ProviderResourcePanel-module__titleExternalIcon___JyfC0{color:var(--text-primary)}.ProviderResourcePanel-module__titleLink___Utbwk:hover .ProviderResourcePanel-module__titleExternalIcon___JyfC0{opacity:1;transform:translate(1px,-1px)}.ProviderResourcePanel-module__titleLink___Utbwk:focus-visible{outline:2px solid var(--primary-color);outline-offset:3px}.ProviderResourcePanel-module__logo___7eyxv{border-radius:var(--radius-md);object-fit:contain;flex-shrink:0;width:26px;height:26px}.ProviderResourcePanel-module__logoThemeSurface___LgWln{background:#000;padding:5px}[data-theme=dark] .ProviderResourcePanel-module__logoThemeSurface___LgWln{background:#fff}.ProviderResourcePanel-module__logoThemeDark___CvmjO{display:none}[data-theme=dark] .ProviderResourcePanel-module__logoThemeDark___CvmjO{display:block}[data-theme=dark] .ProviderResourcePanel-module__logoThemeLight___4rDnc{display:none}[data-theme=dark] .ProviderResourcePanel-module__logoInvertOnDark___yeOZu{filter:invert()hue-rotate(180deg)}.ProviderResourcePanel-module__title___Zw2Hc{color:var(--text-primary);letter-spacing:-.005em;margin:0;font-size:22px;font-weight:600}.ProviderResourcePanel-module__titleExternalIcon___JyfC0{color:var(--muted-foreground);opacity:.72;flex-shrink:0;transition:color .16s,opacity .16s,transform .16s}.ProviderResourcePanel-module__sponsorLink___0zkZG{width:-moz-fit-content;width:fit-content;color:var(--text-primary);border:1px solid var(--border-color);border-radius:var(--radius-md);background:var(--bg-primary);overflow-wrap:anywhere;align-items:center;gap:8px;max-width:min(520px,100%);margin-top:10px;padding:8px 11px;font-size:13px;font-weight:600;line-height:1.4;text-decoration:none;transition:background .16s,border-color .16s,color .16s,box-shadow .16s,transform .16s;display:inline-flex}.ProviderResourcePanel-module__sponsorLink___0zkZG:hover{border-color:var(--border-hover);background:var(--bg-hover);transform:translateY(-1px)}.ProviderResourcePanel-module__sponsorLink___0zkZG:focus-visible{outline:2px solid var(--primary-color);outline-offset:2px}.ProviderResourcePanel-module__sponsorLinkEmphasis___UYDlu{color:var(--amber-text);border-color:color-mix(in srgb, var(--amber-color) 48%, var(--border-color));background:color-mix(in srgb, var(--amber-color) 14%, var(--bg-primary));box-shadow:0 1px 0 color-mix(in srgb, var(--amber-color) 18%, transparent)}.ProviderResourcePanel-module__sponsorLinkEmphasis___UYDlu:hover{border-color:color-mix(in srgb, var(--amber-color) 72%, var(--border-color));background:color-mix(in srgb, var(--amber-color) 20%, var(--bg-primary));box-shadow:0 4px 12px color-mix(in srgb, var(--amber-color) 18%, transparent)}.ProviderResourcePanel-module__sponsorLinkEmphasis___UYDlu:focus-visible{outline-color:var(--amber-color)}.ProviderResourcePanel-module__sponsorLinkKimi___Q3DZ3{color:color-mix(in srgb, #1783ff 82%, var(--text-primary));border-color:color-mix(in srgb, #1783ff 48%, var(--border-color));background:color-mix(in srgb, #1783ff 14%, var(--bg-primary));box-shadow:0 1px #1783ff2e}.ProviderResourcePanel-module__sponsorLinkKimi___Q3DZ3:hover{border-color:color-mix(in srgb, #1783ff 72%, var(--border-color));background:color-mix(in srgb, #1783ff 20%, var(--bg-primary));box-shadow:0 4px 12px #1783ff2e}.ProviderResourcePanel-module__sponsorLinkKimi___Q3DZ3:focus-visible{outline-color:#1783ff}.ProviderResourcePanel-module__kimiPromo___rv-Qi{max-width:100%;color:var(--text-secondary);white-space:nowrap;margin:8px 0 0;font-size:13px;line-height:1.5}.ProviderResourcePanel-module__sponsorLinkText___n464i{overflow-wrap:anywhere;min-width:0}.ProviderResourcePanel-module__sponsorLinkIcon___QHGUt{color:currentColor;flex-shrink:0}.ProviderResourcePanel-module__sponsorLink___0zkZG:hover .ProviderResourcePanel-module__sponsorLinkIcon___QHGUt{transform:translate(1px,-1px)}.ProviderResourcePanel-module__searchWrap___95CD5{min-width:0;position:relative}@media (min-width:768px){.ProviderResourcePanel-module__searchWrap___95CD5{width:280px}}.ProviderResourcePanel-module__searchInput___TA7QZ{border-radius:var(--radius-md);border:1px solid var(--border-color);background:var(--bg-primary);width:100%;height:38px;color:var(--text-primary);box-sizing:border-box;padding:0 12px 0 38px;font-size:14px}.ProviderResourcePanel-module__searchInput___TA7QZ::placeholder{color:var(--text-tertiary)}.ProviderResourcePanel-module__searchInput___TA7QZ:focus{border-color:var(--primary-color);box-shadow:0 0 0 3px var(--primary-10);outline:none}.ProviderResourcePanel-module__searchIcon___u6sCR{color:var(--muted-foreground);pointer-events:none;display:inline-flex;position:absolute;top:50%;left:13px;transform:translateY(-50%)}.ProviderResourcePanel-module__empty___1gkyi{border:1px dashed var(--border-color);border-radius:var(--radius-md);text-align:center;color:var(--muted-foreground);padding:32px;font-size:14px}.ProviderResourcePanel-module__emptyAction___EzR3x{margin-top:12px}.ProviderResourcePanel-module__emptyActionButton___lCUjo{border:1px solid var(--border-color);border-radius:var(--radius-md);background:var(--bg-primary);color:var(--text-primary);cursor:pointer;align-items:center;gap:6px;padding:7px 13px;font-size:14px;font-weight:500;line-height:1.4;text-decoration:none;transition:background .16s,border-color .16s,color .16s,box-shadow .16s;display:inline-flex}.ProviderResourcePanel-module__emptyActionButton___lCUjo:hover{border-color:var(--border-hover);background:var(--bg-hover)}.ProviderResourcePanel-module__emptyActionButton___lCUjo:focus-visible{outline:2px solid var(--primary-color);outline-offset:2px}.ProviderResourcePanel-module__emptyActionButton___lCUjo:disabled{cursor:not-allowed;opacity:.6}.ProviderResourcePanel-module__emptyActionButtonEmphasis___kUgz8{color:var(--amber-text);border-color:color-mix(in srgb, var(--amber-color) 48%, var(--border-color));background:color-mix(in srgb, var(--amber-color) 14%, var(--bg-primary));box-shadow:0 1px 0 color-mix(in srgb, var(--amber-color) 18%, transparent);font-weight:600}.ProviderResourcePanel-module__emptyActionButtonEmphasis___kUgz8:hover{border-color:color-mix(in srgb, var(--amber-color) 72%, var(--border-color));background:color-mix(in srgb, var(--amber-color) 20%, var(--bg-primary));box-shadow:0 4px 12px color-mix(in srgb, var(--amber-color) 18%, transparent)}.ProviderResourcePanel-module__emptyActionButtonEmphasis___kUgz8:focus-visible{outline-color:var(--amber-color)}.sharedForm-module__form___PT91R{flex-direction:column;gap:16px;min-width:0;max-width:100%;display:flex}.sharedForm-module__quickStartForm___eBaxv{gap:20px}.sharedForm-module__quickStartForm___eBaxv .sharedForm-module__section___i8OOd{gap:14px}.sharedForm-module__quickStartForm___eBaxv .sharedForm-module__sectionTitle___82MzD{letter-spacing:0;font-size:17px;font-weight:700;line-height:1.35}.sharedForm-module__quickStartForm___eBaxv .sharedForm-module__sectionDesc___pBlrt{max-width:72ch;color:var(--text-secondary);font-size:14px;line-height:1.6}.sharedForm-module__quickStartForm___eBaxv .sharedForm-module__field___67Fow{gap:7px}.sharedForm-module__quickStartForm___eBaxv .sharedForm-module__label___sL6bS{font-size:13px;font-weight:600;line-height:1.45}.sharedForm-module__quickStartForm___eBaxv .sharedForm-module__labelHint___M7UU6{color:var(--muted-foreground);font-size:12px;line-height:1.6}.sharedForm-module__quickStartForm___eBaxv .sharedForm-module__input___5xUXx,.sharedForm-module__quickStartForm___eBaxv .sharedForm-module__passwordInput___rSuUg,.sharedForm-module__quickStartForm___eBaxv .sharedForm-module__textarea___CdY6q,.sharedForm-module__quickStartForm___eBaxv .sharedForm-module__discoverySearch___18P-i{font-size:14px;line-height:1.45}.sharedForm-module__quickStartForm___eBaxv .sharedForm-module__entryCard___4UpBh{gap:12px}.sharedForm-module__quickStartForm___eBaxv .sharedForm-module__entryCardHeader___9w6Nq{font-size:13px;line-height:1.45}.sharedForm-module__quickStartForm___eBaxv .sharedForm-module__sponsorGroupTitle___28tgM{gap:3px}.sharedForm-module__quickStartForm___eBaxv .sharedForm-module__sponsorGroupTitle___28tgM strong{font-size:14px;font-weight:650;line-height:1.4}.sharedForm-module__quickStartForm___eBaxv .sharedForm-module__sponsorUrlOptionText___k-K0x,.sharedForm-module__quickStartForm___eBaxv .sharedForm-module__checkboxText___LnhPu{font-size:14px;line-height:1.45}.sharedForm-module__quickStartForm___eBaxv .sharedForm-module__sponsorUrlOptionText___k-K0x small,.sharedForm-module__quickStartForm___eBaxv .sharedForm-module__checkboxText___LnhPu small,.sharedForm-module__quickStartForm___eBaxv .sharedForm-module__sponsorProtocolUrl___KWimM,.sharedForm-module__quickStartForm___eBaxv .sharedForm-module__sponsorUsageResult___-gE-n,.sharedForm-module__quickStartForm___eBaxv .sharedForm-module__connectivityError___MLzpW,.sharedForm-module__quickStartForm___eBaxv .sharedForm-module__discoveryEmpty___yCmmN,.sharedForm-module__quickStartForm___eBaxv .sharedForm-module__discoveryItem___K7Etw,.sharedForm-module__quickStartForm___eBaxv .sharedForm-module__discoveryBatchLabel___pHhDl,.sharedForm-module__quickStartForm___eBaxv .sharedForm-module__discoveryName___PQCDn{font-size:12px;line-height:1.6}.sharedForm-module__quickStartForm___eBaxv .sharedForm-module__sponsorProtocolName___IdnAd{font-size:13px;font-weight:650;line-height:1.4}.sharedForm-module__quickStartForm___eBaxv .sharedForm-module__sponsorUsageMain___6O5cH{line-height:1.45}.sharedForm-module__quickStartForm___eBaxv .sharedForm-module__sponsorUsageMeta___hf3Jw,.sharedForm-module__quickStartForm___eBaxv .sharedForm-module__discoveryAlias___XGl7Y,.sharedForm-module__quickStartForm___eBaxv .sharedForm-module__discoveryCount___nHCkA,.sharedForm-module__quickStartForm___eBaxv .sharedForm-module__discoveryAddedTag___HJanN{font-size:12px;line-height:1.55}.sharedForm-module__quickStartForm___eBaxv .sharedForm-module__connectivityBtn___xuFLs,.sharedForm-module__quickStartForm___eBaxv .sharedForm-module__discoveryApplyBtn___Iu3oS,.sharedForm-module__quickStartForm___eBaxv .sharedForm-module__addBtn___O-Vjb,.sharedForm-module__quickStartForm___eBaxv .sharedForm-module__removeBtn___iEUNe{font-size:13px;font-weight:600;line-height:1}.sharedForm-module__quickStartForm___eBaxv .sharedForm-module__footerBtn___DyIZY{font-size:14px;font-weight:600;line-height:1}.sharedForm-module__quickStartForm___eBaxv details summary{font-size:14px;font-weight:650;line-height:1.45}.sharedForm-module__section___i8OOd{flex-direction:column;gap:12px;min-width:0;display:flex}.sharedForm-module__sectionTitle___82MzD{color:var(--text-primary);align-items:center;gap:8px;margin:0;font-size:13px;font-weight:600;display:flex}.sharedForm-module__sectionDesc___pBlrt{color:var(--muted-foreground);margin:0;font-size:12px;line-height:1.5}.sharedForm-module__field___67Fow{gap:6px;min-width:0;display:grid}.sharedForm-module__label___sL6bS{color:var(--text-primary);font-size:12px;font-weight:500}.sharedForm-module__labelHint___M7UU6{color:var(--muted-foreground);font-size:11px;font-weight:400}.sharedForm-module__input___5xUXx,.sharedForm-module__passwordInput___rSuUg,.sharedForm-module__textarea___CdY6q{border-radius:var(--radius-md);border:1px solid var(--border-color);background:var(--bg-primary);width:100%;height:36px;color:var(--text-primary);box-sizing:border-box;padding:8px 12px;font-family:inherit;font-size:13px}.sharedForm-module__input___5xUXx::placeholder,.sharedForm-module__passwordInput___rSuUg::placeholder,.sharedForm-module__textarea___CdY6q::placeholder{color:var(--text-tertiary)}.sharedForm-module__input___5xUXx:focus,.sharedForm-module__passwordInput___rSuUg:focus,.sharedForm-module__textarea___CdY6q:focus{border-color:var(--primary-color);box-shadow:0 0 0 3px var(--primary-10);outline:none}.sharedForm-module__input___5xUXx:disabled,.sharedForm-module__passwordInput___rSuUg:disabled,.sharedForm-module__textarea___CdY6q:disabled{opacity:.6;cursor:not-allowed}.sharedForm-module__textarea___CdY6q{resize:vertical;height:auto;min-height:80px;font-family:ui-monospace,SF Mono,Cascadia Mono,JetBrains Mono,Fira Code,Menlo,Consolas,Liberation Mono,monospace;line-height:1.5}.sharedForm-module__checkboxRow___-oiND{cursor:pointer;-webkit-user-select:none;user-select:none;align-items:flex-start;gap:10px;display:flex}.sharedForm-module__checkboxBox___eIVJQ{border:1px solid var(--border-color);background:var(--bg-primary);cursor:pointer;-webkit-appearance:none;appearance:none;border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;width:16px;height:16px;margin-top:2px;display:inline-flex;position:relative}.sharedForm-module__checkboxBox___eIVJQ:checked{background:var(--primary-color);border-color:var(--primary-color)}.sharedForm-module__checkboxBox___eIVJQ:checked:after{content:"";border-left:2px solid var(--primary-contrast);border-bottom:2px solid var(--primary-contrast);width:8px;height:4px;transform:rotate(-45deg)translateY(-2px)}.sharedForm-module__checkboxBox___eIVJQ:focus-visible{outline:2px solid var(--primary-color);outline-offset:2px}.sharedForm-module__checkboxText___LnhPu{color:var(--text-primary);flex-direction:column;gap:2px;font-size:13px;display:flex}.sharedForm-module__checkboxText___LnhPu small{color:var(--muted-foreground);font-size:11px}.sharedForm-module__fieldRow___FmfR-{grid-template-columns:1fr 1fr;gap:12px;min-width:0;display:grid}.sharedForm-module__divider___hp8lX{border:0;border-top:1px solid var(--border-color);margin:4px 0}.sharedForm-module__errorBox___tj-8g{border:1px solid var(--destructive-30);background:var(--destructive-10);color:var(--destructive-color);border-radius:var(--radius-md);padding:10px 12px;font-size:12px;line-height:1.5}.sharedForm-module__dl___fU3jy{grid-template-columns:1fr 1fr;gap:12px 16px;margin:0;display:grid}.sharedForm-module__dt___WtuBR{color:var(--muted-foreground);font-size:11px;font-weight:500}.sharedForm-module__dd___xdoZu{color:var(--text-primary);word-break:break-word;margin:2px 0 0;font-family:ui-monospace,SF Mono,Cascadia Mono,JetBrains Mono,Fira Code,Menlo,Consolas,Liberation Mono,monospace;font-size:12px}.sharedForm-module__detailHeader___Gwp7N{margin-bottom:4px}.sharedForm-module__entryCard___4UpBh{border:1px solid var(--border-color);border-radius:var(--radius-md);box-sizing:border-box;background:var(--bg-secondary);flex-direction:column;gap:10px;min-width:0;max-width:100%;padding:12px;display:flex}.sharedForm-module__entryCardHeader___9w6Nq{min-width:0;color:var(--muted-foreground);justify-content:space-between;align-items:center;gap:12px;font-size:12px;font-weight:500;display:flex}.sharedForm-module__entryCardToggle___UcMtL{min-width:0;color:inherit;text-align:left;cursor:pointer;background:0 0;border:0;flex:1;justify-content:space-between;align-items:center;gap:12px;padding:0;display:flex}.sharedForm-module__entryCardToggle___UcMtL:focus-visible{outline:2px solid var(--primary-color);outline-offset:3px;border-radius:var(--radius-sm)}.sharedForm-module__sponsorGroupTitle___28tgM{flex-direction:column;gap:2px;min-width:0;display:flex}.sharedForm-module__sponsorGroupTitle___28tgM strong{color:var(--text-primary);text-overflow:ellipsis;white-space:nowrap;font-size:13px;overflow:hidden}.sharedForm-module__sponsorGroupSummary___Y7N47{flex:1;justify-content:flex-end;align-items:center;gap:8px;min-width:0;display:flex}.sharedForm-module__sponsorSummaryKey___EBaXE,.sharedForm-module__sponsorSummaryUrl___piG39{text-overflow:ellipsis;white-space:nowrap;min-width:0;display:inline-block;overflow:hidden}.sharedForm-module__sponsorSummaryKey___EBaXE{max-width:140px;color:var(--text-primary);font-family:ui-monospace,SF Mono,Cascadia Mono,JetBrains Mono,Fira Code,Menlo,Consolas,Liberation Mono,monospace}.sharedForm-module__sponsorSummaryUrl___piG39{max-width:min(360px,45vw);color:var(--muted-foreground);font-family:ui-monospace,SF Mono,Cascadia Mono,JetBrains Mono,Fira Code,Menlo,Consolas,Liberation Mono,monospace}.sharedForm-module__entryCardHeaderRight___XQk-H{flex-shrink:0;align-items:center;gap:6px;display:flex}.sharedForm-module__entryCardBody___jWMCE{flex-direction:column;gap:10px;min-width:0;display:flex}.sharedForm-module__entryCardIconBtn___JXSmn{border-radius:var(--radius-md);width:28px;height:28px;color:var(--text-tertiary);cursor:pointer;background:0 0;border:1px solid #0000;justify-content:center;align-items:center;padding:0;transition:background-color .15s,color .15s;display:inline-flex}.sharedForm-module__entryCardIconBtn___JXSmn:hover{background:var(--bg-tertiary);color:var(--text-primary)}.sharedForm-module__entryCardIconBtn___JXSmn:focus-visible{outline:2px solid var(--primary-color);outline-offset:-1px}.sharedForm-module__entryCardChevron___-MhgW{transition:transform .15s}.sharedForm-module__entryCardChevronOpen___3ETxF{transform:rotate(180deg)}.sharedForm-module__entriesToolbar___ZMhPO{justify-content:flex-end;align-items:center;gap:8px;margin-bottom:2px;display:flex}.sharedForm-module__entriesToolbarSplit___ZVvqH{justify-content:space-between}.sharedForm-module__sponsorUrlOptions___lxMgi{grid-template-columns:1fr;gap:8px;display:grid}@media (min-width:560px){.sharedForm-module__sponsorUrlOptions___lxMgi{grid-template-columns:repeat(2,minmax(0,1fr))}}.sharedForm-module__sponsorUrlOption___rAD4B{border:1px solid var(--border-color);border-radius:var(--radius-md);background:var(--bg-secondary);cursor:pointer;align-items:flex-start;gap:10px;min-width:0;padding:10px 12px;transition:border-color .15s,background-color .15s;display:flex}.sharedForm-module__sponsorUrlOption___rAD4B input{accent-color:var(--primary-color);flex-shrink:0;margin:2px 0 0}.sharedForm-module__sponsorUrlOption___rAD4B input:disabled{cursor:not-allowed}.sharedForm-module__sponsorUrlOption___rAD4B:hover{border-color:var(--primary-color)}.sharedForm-module__sponsorUrlOptionActive___4CZJz{border-color:var(--primary-color);background:var(--primary-10)}.sharedForm-module__sponsorUrlOptionText___k-K0x{min-width:0;color:var(--text-primary);flex-direction:column;gap:2px;font-size:13px;display:flex}.sharedForm-module__sponsorUrlOptionText___k-K0x small{color:var(--muted-foreground);overflow-wrap:anywhere;font-family:ui-monospace,SF Mono,Cascadia Mono,JetBrains Mono,Fira Code,Menlo,Consolas,Liberation Mono,monospace;font-size:11px;line-height:1.4}.sharedForm-module__sponsorUrlOptionText___k-K0x .sharedForm-module__sponsorUrlOptionDescription___-P-PR{font-family:inherit;font-size:12px;line-height:1.45}.sharedForm-module__sponsorProtocolGrid___CK-SJ{grid-template-columns:1fr;gap:8px;display:grid}@media (min-width:560px){.sharedForm-module__sponsorProtocolGrid___CK-SJ{grid-template-columns:repeat(3,minmax(0,1fr))}}.sharedForm-module__sponsorProtocolCard___glgc4{border:1px solid var(--border-color);border-radius:var(--radius-md);background:var(--bg-secondary);flex-direction:column;gap:4px;min-width:0;padding:10px 12px;display:flex}.sharedForm-module__sponsorProtocolName___IdnAd{color:var(--text-primary);font-size:12px;font-weight:600}.sharedForm-module__sponsorProtocolUrl___KWimM{color:var(--muted-foreground);overflow-wrap:anywhere;font-family:ui-monospace,SF Mono,Cascadia Mono,JetBrains Mono,Fira Code,Menlo,Consolas,Liberation Mono,monospace;font-size:11px;line-height:1.4}.sharedForm-module__sponsorUsageSection___tKfkP{flex-direction:column;align-items:flex-start;gap:8px;display:flex}.sharedForm-module__sponsorUsageResult___-gE-n{box-sizing:border-box;border:1px solid color-mix(in srgb, var(--success-color) 34%, var(--border-color));border-radius:var(--radius-md);background:color-mix(in srgb, var(--success-color) 8%, var(--bg-primary));width:100%;color:var(--text-primary);flex-direction:column;gap:4px;padding:8px 10px;font-size:11px;line-height:1.4;display:flex}.sharedForm-module__sponsorUsageResultWarning___IQs1P{color:var(--warning-text);border-color:var(--warning-border);background:var(--warning-bg)}.sharedForm-module__sponsorUsageMain___6O5cH{align-items:center;gap:6px;font-weight:500;display:flex}.sharedForm-module__sponsorUsageMeta___hf3Jw{color:var(--muted-foreground)}.sharedForm-module__connectivityRow___yytvW{align-items:center;gap:8px;margin-top:4px;display:flex}.sharedForm-module__connectivityBtn___xuFLs{border-radius:var(--radius-md);border:1px solid var(--border-color);background:var(--bg-primary);height:28px;color:var(--text-primary);cursor:pointer;align-items:center;gap:6px;padding:0 12px;font-size:12px;font-weight:500;transition:background-color .15s,border-color .15s;display:inline-flex}.sharedForm-module__connectivityBtn___xuFLs:hover:not(:disabled){border-color:var(--primary-color);color:var(--primary-color)}.sharedForm-module__connectivityBtn___xuFLs:disabled{opacity:.6;cursor:not-allowed}.sharedForm-module__connectivityBtnGhost___Ks4Ys{border-radius:var(--radius-md);height:24px;color:var(--text-secondary);cursor:pointer;background:0 0;border:1px solid #0000;align-items:center;gap:6px;padding:0 8px;font-size:11px;font-weight:500;transition:background-color .15s,color .15s;display:inline-flex}.sharedForm-module__connectivityBtnGhost___Ks4Ys:hover:not(:disabled){background:var(--bg-tertiary);color:var(--text-primary)}.sharedForm-module__connectivityBtnGhost___Ks4Ys:disabled{opacity:.6;cursor:not-allowed}.sharedForm-module__connectivityError___MLzpW{border:1px solid var(--destructive-30);background:var(--destructive-10);color:var(--destructive-color);border-radius:var(--radius-md);word-break:break-word;padding:8px 10px;font-size:11px;line-height:1.4}.sharedForm-module__connectivityHintSuccess___bCB6B{color:var(--primary-color);font-size:11px}.sharedForm-module__statusIcon___Qo3og{justify-content:center;align-items:center;width:14px;height:14px;display:inline-flex}.sharedForm-module__statusIconLoading___Jr4Oi{color:var(--text-secondary);animation:.8s linear infinite sharedForm-module__spin___ebAKO}.sharedForm-module__statusIconSuccess___XeAnb{color:var(--success-color)}.sharedForm-module__statusIconError___1-Uh3{color:var(--destructive-color)}.sharedForm-module__discoveryPanel___AhjnU{border:1px solid var(--border-color);border-radius:var(--radius-md);background:var(--bg-secondary);flex-direction:column;gap:10px;padding:12px;display:flex}.sharedForm-module__discoveryToolbar___pxuM6{align-items:center;gap:8px;display:flex}.sharedForm-module__discoverySearchWrap___6FqGI{flex:1;align-items:center;display:flex;position:relative}.sharedForm-module__discoverySearchIcon___ygwRw{color:var(--muted-foreground);pointer-events:none;align-items:center;display:inline-flex;position:absolute;left:10px}.sharedForm-module__discoverySearch___18P-i{border-radius:var(--radius-md);border:1px solid var(--border-color);background:var(--bg-primary);width:100%;height:32px;color:var(--text-primary);box-sizing:border-box;padding:6px 10px 6px 30px;font-size:12px}.sharedForm-module__discoverySearch___18P-i::placeholder{color:var(--text-tertiary)}.sharedForm-module__discoverySearch___18P-i:focus{border-color:var(--primary-color);box-shadow:0 0 0 3px var(--primary-10);outline:none}.sharedForm-module__discoveryEmpty___yCmmN{text-align:center;color:var(--muted-foreground);border:1px dashed var(--border-color);border-radius:var(--radius-md);background:var(--bg-primary);padding:16px;font-size:12px}.sharedForm-module__discoveryBatchRow___RSSTs{justify-content:space-between;align-items:center;padding:2px 4px;display:flex}.sharedForm-module__discoveryBatchLabel___pHhDl{color:var(--text-primary);font-size:12px;font-weight:500}.sharedForm-module__discoveryCount___nHCkA{color:var(--muted-foreground);font-variant-numeric:tabular-nums;font-size:11px}.sharedForm-module__discoveryList___UmHOn{border:1px solid var(--border-color);border-radius:var(--radius-md);background:var(--bg-primary);flex-direction:column;gap:2px;max-height:240px;margin:0;padding:0;list-style:none;display:flex;overflow-y:auto}.sharedForm-module__discoveryItem___K7Etw{border-bottom:1px solid var(--border-color);color:var(--text-primary);justify-content:space-between;align-items:center;gap:8px;padding:8px 10px;font-size:12px;display:flex}.sharedForm-module__discoveryItem___K7Etw:last-child{border-bottom:0}.sharedForm-module__discoveryItemExisting___OZBJe{background:var(--muted-bg);color:var(--muted-foreground)}.sharedForm-module__discoveryName___PQCDn{word-break:break-all;font-family:ui-monospace,SF Mono,Cascadia Mono,JetBrains Mono,Fira Code,Menlo,Consolas,Liberation Mono,monospace;font-size:12px}.sharedForm-module__discoveryNameGroup___clmbn{flex-direction:column;gap:2px;min-width:0;display:inline-flex}.sharedForm-module__discoveryAlias___XGl7Y{color:var(--muted-foreground);word-break:break-all;font-size:11px}.sharedForm-module__discoveryAddedTag___HJanN{color:var(--muted-foreground);border-radius:var(--radius-md);border:1px solid var(--border-color);background:var(--bg-primary);padding:2px 8px;font-size:11px}.sharedForm-module__discoveryFooter___Is7iL{justify-content:flex-end;align-items:center;gap:8px;display:flex}.sharedForm-module__discoveryApplyBtn___Iu3oS{border-radius:var(--radius-md);background:var(--primary-color);height:30px;color:var(--primary-contrast);cursor:pointer;border:1px solid #0000;align-items:center;gap:6px;padding:0 14px;font-size:12px;font-weight:500;transition:background-color .15s;display:inline-flex}.sharedForm-module__discoveryApplyBtn___Iu3oS:hover:not(:disabled){background:var(--primary-hover)}.sharedForm-module__discoveryApplyBtn___Iu3oS:disabled{opacity:.6;cursor:not-allowed}@keyframes sharedForm-module__spin___ebAKO{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.sharedForm-module__passwordField___XUXUd{align-items:center;min-width:0;display:flex;position:relative}.sharedForm-module__passwordInput___rSuUg{padding-right:36px}.sharedForm-module__passwordToggle___uGvUz{color:var(--text-tertiary);cursor:pointer;border-radius:var(--radius-sm);background:0 0;border:none;justify-content:center;align-items:center;padding:4px;transition:color .15s;display:flex;position:absolute;right:8px}.sharedForm-module__passwordToggle___uGvUz:hover:not(:disabled){color:var(--text-primary)}.sharedForm-module__passwordToggle___uGvUz:disabled{opacity:.5;cursor:not-allowed}.sharedForm-module__entriesList___-jY7O{flex-direction:column;gap:10px;display:flex}.sharedForm-module__modelAliasRow___pthzi{grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto;gap:8px;display:grid}@media (max-width:520px){.sharedForm-module__modelAliasRow___pthzi{grid-template-columns:1fr auto}.sharedForm-module__modelAliasRow___pthzi input:first-child{grid-column:1/-1}}.sharedForm-module__modelEntry___e3PHD{flex-direction:column;gap:8px;min-width:0;display:flex}.sharedForm-module__modelEntryActions___Mv-1o{flex-shrink:0;align-items:center;gap:6px;display:flex}.sharedForm-module__modelEntryDetails___d5g0-{border:1px solid var(--border-color);border-radius:var(--radius-md);background:var(--bg-secondary);flex-direction:column;gap:10px;padding:12px;display:flex}.sharedForm-module__thinkingFieldset___amnlc{border:0;gap:8px;min-width:0;margin:0;padding:0;display:grid}.sharedForm-module__thinkingExistingHint___HWgL-{color:var(--warning-color);margin:0;font-size:11px;line-height:1.5}.sharedForm-module__thinkingLevelGrid___iWzn1{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}@media (max-width:520px){.sharedForm-module__thinkingLevelGrid___iWzn1{grid-template-columns:1fr}}.sharedForm-module__thinkingLevelOption___mklmI{border:1px solid var(--border-color);border-radius:var(--radius-md);background:var(--bg-primary);box-sizing:border-box;width:100%;min-width:0;padding:8px 10px}.sharedForm-module__thinkingLevelLabel___8OZO5{min-width:0;color:var(--text-secondary);flex:1;justify-content:space-between;align-items:center;gap:8px;font-size:12px;font-weight:500;display:flex}.sharedForm-module__thinkingLevelLabel___8OZO5 code{color:var(--muted-foreground);font-size:10px;font-weight:400}.sharedForm-module__thinkingLevelOptionSelected___XzjLp{border-color:color-mix(in srgb, var(--primary-color) 50%, var(--border-color));background:color-mix(in srgb, var(--primary-color) 8%, var(--bg-primary))}.sharedForm-module__thinkingLevelOptionSelected___XzjLp .sharedForm-module__thinkingLevelLabel___8OZO5{color:var(--text-primary)}.sharedForm-module__entrySummary___FshGG{flex:1;justify-content:flex-end;align-items:center;gap:8px;min-width:0;display:flex}.sharedForm-module__entrySummaryKey___LxYFt{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--text-primary);font-family:ui-monospace,SF Mono,Cascadia Mono,JetBrains Mono,Fira Code,Menlo,Consolas,Liberation Mono,monospace;display:inline-block;overflow:hidden}.sharedForm-module__entryBadge___KwpqS{border:1px solid var(--border-color);background:var(--bg-tertiary);color:var(--muted-foreground);white-space:nowrap;border-radius:999px;flex-shrink:0;align-items:center;padding:1px 7px;font-size:10px;font-weight:500;display:inline-flex}.sharedForm-module__showMoreBtn___cipR-{border-radius:var(--radius-md);border:1px dashed var(--border-color);background:var(--bg-primary);color:var(--text-secondary);cursor:pointer;align-self:center;align-items:center;gap:6px;padding:6px 12px;font-size:12px;font-weight:500;display:inline-flex}.sharedForm-module__showMoreBtn___cipR-:hover{border-color:var(--primary-color);color:var(--primary-color)}.sharedForm-module__removeBtn___iEUNe{border-radius:var(--radius-md);color:var(--destructive-color);cursor:pointer;background:0 0;border:1px solid #0000;align-items:center;gap:4px;padding:4px 8px;font-size:12px;display:inline-flex}.sharedForm-module__removeBtn___iEUNe:hover{background:var(--destructive-10)}.sharedForm-module__removeBtn___iEUNe:disabled{opacity:.5;cursor:not-allowed}.sharedForm-module__addBtn___O-Vjb{border-radius:var(--radius-md);border:1px dashed var(--border-color);background:var(--bg-primary);color:var(--text-secondary);cursor:pointer;align-self:flex-start;align-items:center;gap:6px;padding:6px 12px;font-size:12px;font-weight:500;display:inline-flex}.sharedForm-module__addBtn___O-Vjb:hover{border-color:var(--primary-color);color:var(--primary-color)}.sharedForm-module__footerBtn___DyIZY{border-radius:var(--radius-md);cursor:pointer;height:32px;color:var(--text-primary);background:0 0;border:1px solid #0000;align-items:center;gap:6px;padding:0 14px;font-size:13px;font-weight:500;transition:background-color .15s;display:inline-flex}.sharedForm-module__footerBtn___DyIZY:disabled{opacity:.6;cursor:not-allowed}.sharedForm-module__footerBtnGhost___6XhK0{background:0 0;border-color:#0000}.sharedForm-module__footerBtnGhost___6XhK0:hover:not(:disabled){background:var(--bg-tertiary)}.sharedForm-module__footerBtnOutline___mplFu{border-color:var(--border-color);background:var(--bg-primary)}.sharedForm-module__footerBtnOutline___mplFu:hover:not(:disabled){background:var(--bg-tertiary)}.sharedForm-module__footerBtnPrimary___RbN5Y{background:var(--primary-color);color:var(--primary-contrast)}.sharedForm-module__footerBtnPrimary___RbN5Y:hover:not(:disabled){background:var(--primary-hover)}.sharedForm-module__apiKeyEntriesSection___BiWv-{min-width:0;max-width:100%;margin-top:16px}.sharedForm-module__apiKeyEntriesLabel___k7lKa{color:var(--text-secondary);margin-bottom:6px;font-size:12px;font-weight:600}.sharedForm-module__apiKeyEntryList___sun97{flex-direction:column;gap:6px;min-width:0;max-width:100%;display:flex}.sharedForm-module__apiKeyEntryCard___uW3Az{background:var(--bg-secondary);border:1px solid var(--border-secondary);border-radius:8px;flex-wrap:wrap;align-items:center;gap:8px;min-width:0;max-width:100%;padding:8px 12px;font-size:12px;display:flex}.sharedForm-module__apiKeyEntryIndex___0Vn5O{background:var(--primary-color);width:20px;height:20px;color:var(--primary-contrast);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:11px;font-weight:600;display:inline-flex}.sharedForm-module__apiKeyEntryKey___nFskf{color:var(--text-primary);overflow-wrap:anywhere;word-break:break-all;min-width:0;max-width:100%;font-family:Monaco,Menlo,Consolas,Ubuntu Mono,monospace;font-weight:600}.sharedForm-module__apiKeyEntryProxy___o-PFf{color:var(--text-tertiary);overflow-wrap:anywhere;word-break:break-word;min-width:0;max-width:100%;font-size:11px}.sharedForm-module__apiKeyEntryProxy___o-PFf:before{content:"| Proxy: ";color:var(--text-quaternary)}.sharedForm-module__apiKeyEntryStats___DWlE3{gap:6px;margin-left:auto;display:flex}.sharedForm-module__apiKeyEntryStat___pC-og{border-radius:10px;align-items:center;gap:3px;padding:2px 6px;font-size:10px;font-weight:600;display:inline-flex}.sharedForm-module__apiKeyEntryStat___pC-og svg{display:block}.sharedForm-module__apiKeyEntryStatSuccess___PbODP{background:var(--success-badge-bg);color:var(--success-badge-text)}.sharedForm-module__apiKeyEntryStatFailure___0l7My{background:var(--failure-badge-bg);color:var(--failure-badge-text)}.ErrorRulesEditor-module__editor___CO0H9 button:disabled{opacity:.5;cursor:not-allowed}.ErrorRulesEditor-module__editor___CO0H9 input,.ErrorRulesEditor-module__editor___CO0H9 select,.ErrorRulesEditor-module__editor___CO0H9 textarea{min-width:0}.ErrorRulesEditor-module__ruleFields___9DOhI{grid-template-columns:minmax(90px,1fr) minmax(0,2fr);gap:8px;display:grid}.ErrorRulesEditor-module__matchRow___oQv89{grid-template-columns:minmax(0,1fr) minmax(0,2fr) auto;align-items:start;gap:8px;display:grid}.ErrorRulesEditor-module__matchInput___wlMZz{resize:vertical;height:auto;min-height:36px;line-height:1.4}.ErrorRulesEditor-module__removeMatch___oVrhR{min-height:32px;margin-top:22px}@media (max-width:520px){.ErrorRulesEditor-module__ruleFields___9DOhI{grid-template-columns:minmax(0,1fr)}.ErrorRulesEditor-module__matchRow___oQv89{grid-template-columns:minmax(0,1fr) auto}.ErrorRulesEditor-module__matchRow___oQv89>:first-child{grid-column:1/-1}}.SponsorQuickStartPanel-module__panel___WanDv{background:var(--bg-primary);border:1px solid var(--border-color);box-shadow:var(--shadow);border-radius:12px;flex-direction:column;gap:22px;min-width:0;padding:20px;display:flex}.SponsorQuickStartPanel-module__header___tCgCw{flex-direction:row;align-items:flex-start;min-width:0;display:flex}.SponsorQuickStartPanel-module__topLink___Bo7sg{border-radius:var(--radius-md);min-width:0;max-width:100%;height:30px;color:var(--muted-foreground);overflow-wrap:anywhere;background:0 0;border:1px solid #0000;align-items:center;gap:6px;padding:0 8px;font-size:13px;font-weight:600;line-height:1;text-decoration:none;transition:background-color .15s,color .15s;display:inline-flex}.SponsorQuickStartPanel-module__topLink___Bo7sg:hover{background:var(--bg-hover);color:var(--text-primary)}.SponsorQuickStartPanel-module__topLink___Bo7sg:focus-visible{outline:2px solid var(--primary-color);outline-offset:2px}.SponsorQuickStartPanel-module__topLink___Bo7sg svg{flex-shrink:0}.SponsorQuickStartPanel-module__titleRow___p9NN3{flex-wrap:wrap;align-items:center;gap:12px;min-width:0;display:flex}.SponsorQuickStartPanel-module__logo___0BbrZ{border-radius:var(--radius-md);object-fit:contain;flex-shrink:0;width:30px;height:30px}.SponsorQuickStartPanel-module__titleText___CiGYk{flex-direction:column;gap:4px;min-width:0;display:flex}.SponsorQuickStartPanel-module__title___6T9tS{color:var(--text-primary);letter-spacing:0;margin:0;font-size:24px;font-weight:700;line-height:1.22}.SponsorQuickStartPanel-module__footer___I9JkV{justify-content:flex-end;align-items:center;gap:8px;padding-top:4px;display:flex}.SponsorQuickStartPanel-module__empty___BFE7c{border:1px dashed var(--border-color);border-radius:var(--radius-md);text-align:center;color:var(--muted-foreground);padding:32px;font-size:14px}.SponsorQuickStartPanel-module__emptyActions___JfEjQ{flex-wrap:wrap;justify-content:center;align-items:center;gap:8px;margin-top:12px;display:flex}.SponsorQuickStartPanel-module__emptyActionButton___esMyY{border:1px solid var(--border-color);border-radius:var(--radius-md);background:var(--bg-primary);color:var(--text-primary);cursor:pointer;align-items:center;gap:6px;padding:7px 13px;font-size:14px;font-weight:500;line-height:1.4;text-decoration:none;transition:background .16s,border-color .16s,color .16s,box-shadow .16s;display:inline-flex}.SponsorQuickStartPanel-module__emptyActionButton___esMyY:hover{border-color:var(--border-hover);background:var(--bg-hover)}.SponsorQuickStartPanel-module__emptyActionButton___esMyY:focus-visible{outline:2px solid var(--primary-color);outline-offset:2px}.SponsorQuickStartPanel-module__emptyActionButton___esMyY:disabled{cursor:not-allowed;opacity:.6}.SponsorQuickStartPanel-module__emptyActionButtonPrimary___jkGpV{border-color:var(--primary-color);background:var(--primary-color);color:var(--primary-contrast);font-weight:600}.SponsorQuickStartPanel-module__emptyActionButtonPrimary___jkGpV:hover:not(:disabled){border-color:var(--primary-hover);background:var(--primary-hover)}.SponsorQuickStartPanel-module__emptyActionButtonPrimary___jkGpV:focus-visible{outline-color:var(--primary-color)}.SponsorQuickStartPanel-module__emptyActionButtonEmphasis___SFvE3{color:var(--amber-text);border-color:color-mix(in srgb, var(--amber-color) 48%, var(--border-color));background:color-mix(in srgb, var(--amber-color) 14%, var(--bg-primary));box-shadow:0 1px 0 color-mix(in srgb, var(--amber-color) 18%, transparent);font-weight:600}.SponsorQuickStartPanel-module__emptyActionButtonEmphasis___SFvE3:hover{border-color:color-mix(in srgb, var(--amber-color) 72%, var(--border-color));background:color-mix(in srgb, var(--amber-color) 20%, var(--bg-primary));box-shadow:0 4px 12px color-mix(in srgb, var(--amber-color) 18%, transparent)}.SponsorQuickStartPanel-module__emptyActionButtonEmphasis___SFvE3:focus-visible{outline-color:var(--amber-color)}.SponsorQuickStartPanel-module__primaryAction___xpqum{height:38px;font-size:14px;font-weight:600;line-height:1}.SponsorQuickStartPanel-module__spin___74eZ9{animation:.8s linear infinite SponsorQuickStartPanel-module__sponsor-quick-start-spin___iLZgr}@keyframes SponsorQuickStartPanel-module__sponsor-quick-start-spin___iLZgr{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@media (max-width:768px){.SponsorQuickStartPanel-module__panel___WanDv{gap:18px;padding:16px}.SponsorQuickStartPanel-module__title___6T9tS{font-size:22px;line-height:1.25}.SponsorQuickStartPanel-module__titleRow___p9NN3{gap:10px}.SponsorQuickStartPanel-module__footer___I9JkV{justify-content:stretch}.SponsorQuickStartPanel-module__footer___I9JkV button{justify-content:center;width:100%}}.Sheet-module__overlay___z8D5E{-webkit-backdrop-filter:blur(2px);z-index:2000;opacity:0;background:#00000073;justify-content:flex-end;display:flex;position:fixed;top:0;bottom:0;left:0;right:0}.Sheet-module__overlay___z8D5E.Sheet-module__entering___-FNfE{animation:.28s cubic-bezier(.16,1,.3,1) forwards Sheet-module__sheet-fade-in___CzH3G}.Sheet-module__overlay___z8D5E.Sheet-module__exiting___q7zPi{animation:.28s cubic-bezier(.4,0,.2,1) forwards Sheet-module__sheet-fade-out___gWS5Q}.Sheet-module__content___ITPBZ{background:var(--bg-primary);border-left:1px solid var(--border-color);box-shadow:-8px 0 32px #00000029, var(--floating-shadow);will-change:transform;outline:none;flex-direction:column;height:100%;display:flex;position:relative;transform:translate(100%)}.Sheet-module__content___ITPBZ.Sheet-module__entering___-FNfE{animation:.32s cubic-bezier(.16,1,.3,1) forwards Sheet-module__sheet-slide-in___J8uZR}.Sheet-module__content___ITPBZ.Sheet-module__exiting___q7zPi{animation:.28s cubic-bezier(.32,0,.67,0) forwards Sheet-module__sheet-slide-out___O9y-1}@keyframes Sheet-module__sheet-fade-in___CzH3G{0%{opacity:0}to{opacity:1}}@keyframes Sheet-module__sheet-fade-out___gWS5Q{0%{opacity:1}to{opacity:0}}@keyframes Sheet-module__sheet-slide-in___J8uZR{0%{transform:translate(100%)}to{transform:translate(0,0)}}@keyframes Sheet-module__sheet-slide-out___O9y-1{0%{transform:translate(0,0)}to{transform:translate(100%)}}.Sheet-module__sizeMd___ziRMr{width:min(640px,100vw)}.Sheet-module__sizeLg___32pg7{width:min(720px,100vw)}.Sheet-module__sizeXl___AvWCt{width:min(960px,100vw)}.Sheet-module__header___cUB1H{border-bottom:1px solid var(--border-color);flex-direction:column;flex-shrink:0;gap:4px;padding:20px 56px 20px 24px;display:flex}.Sheet-module__eyebrow___Duxhe{text-transform:uppercase;letter-spacing:.05em;color:var(--muted-foreground);font-size:11px;font-weight:500}.Sheet-module__title___1-JZS{color:var(--text-primary);margin:0;font-size:18px;font-weight:600}.Sheet-module__description___Xg2Ae{color:var(--muted-foreground);margin:0;font-size:13px;line-height:1.5}.Sheet-module__body___Aso8V{flex:1;padding:24px;overflow-y:auto}.Sheet-module__footer___kLZWM{border-top:1px solid var(--border-color);flex-wrap:wrap;flex-shrink:0;justify-content:flex-end;align-items:center;gap:12px;padding:16px 24px;display:flex}.Sheet-module__closeBtn___s0cgQ{width:32px;height:32px;color:var(--text-secondary);border-radius:var(--radius-md);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;transition:background-color .15s,color .15s;display:flex;position:absolute;top:14px;right:14px}.Sheet-module__closeBtn___s0cgQ:hover{background:var(--bg-tertiary);color:var(--text-primary)}.Sheet-module__closeBtn___s0cgQ:focus-visible{outline:2px solid var(--primary-color);outline-offset:2px}@media (max-width:640px){.Sheet-module__content___ITPBZ{border-left:none;width:100vw!important}.Sheet-module__header___cUB1H{padding:16px 52px 16px 16px}.Sheet-module__body___Aso8V{padding:16px}.Sheet-module__footer___kLZWM{padding:12px 16px}}@media (prefers-reduced-motion:reduce){.Sheet-module__overlay___z8D5E.Sheet-module__entering___-FNfE,.Sheet-module__overlay___z8D5E.Sheet-module__exiting___q7zPi,.Sheet-module__content___ITPBZ.Sheet-module__entering___-FNfE,.Sheet-module__content___ITPBZ.Sheet-module__exiting___q7zPi{animation:none}.Sheet-module__overlay___z8D5E.Sheet-module__entering___-FNfE{opacity:1}.Sheet-module__overlay___z8D5E.Sheet-module__exiting___q7zPi{opacity:0}.Sheet-module__content___ITPBZ.Sheet-module__entering___-FNfE{transform:none}.Sheet-module__content___ITPBZ.Sheet-module__exiting___q7zPi{transform:translate(100%)}}.ExcludedModelRuleChip-module__chipRow___GZYjd{flex-wrap:wrap;gap:6px;min-width:0;display:flex}.ExcludedModelRuleChip-module__chip___ZHu9n{min-width:0;max-width:100%;color:var(--text-primary);border-radius:9999px;align-items:center;gap:4px;padding:4px 5px 4px 9px;font-family:ui-monospace,SF Mono,Cascadia Mono,JetBrains Mono,Fira Code,Menlo,Consolas,Liberation Mono,monospace;font-size:11px;line-height:1.5;display:inline-flex}.ExcludedModelRuleChip-module__label___zHuRH{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.ExcludedModelRuleChip-module__detail___BSOjb{color:var(--text-tertiary);flex-shrink:0;font-size:10px}.ExcludedModelRuleChip-module__exact___Ly9hr{border:1px solid color-mix(in srgb, var(--primary-color) 45%, var(--border-color));background:color-mix(in srgb, var(--primary-color) 8%, var(--bg-primary))}.ExcludedModelRuleChip-module__wildcard___8GF-X{border:1px dashed color-mix(in srgb, var(--primary-color) 38%, var(--border-color));color:var(--text-secondary);background:0 0}.ExcludedModelRuleChip-module__unknown___QmPur{border:1px dashed var(--border-color);color:var(--text-tertiary);background:0 0}.ExcludedModelRuleChip-module__remove___yO0z3{width:20px;height:20px;color:var(--text-tertiary);cursor:pointer;transition:background-color var(--dur-hover,.2s) var(--ease-out-strong,ease-out), color var(--dur-hover,.2s) var(--ease-out-strong,ease-out), transform var(--dur-press,.16s) var(--ease-out-strong,ease-out);background:0 0;border:0;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;padding:0;display:inline-flex}.ExcludedModelRuleChip-module__remove___yO0z3:active:not(:disabled){transform:scale(.9)}.ExcludedModelRuleChip-module__remove___yO0z3:focus-visible{outline:2px solid var(--primary-color);outline-offset:1px}.ExcludedModelRuleChip-module__remove___yO0z3:disabled{cursor:not-allowed;opacity:.5}@media (hover:hover) and (pointer:fine){.ExcludedModelRuleChip-module__remove___yO0z3:hover:not(:disabled){background:var(--bg-tertiary);color:var(--text-primary)}}@media (prefers-reduced-motion:reduce){.ExcludedModelRuleChip-module__remove___yO0z3{transition:none}.ExcludedModelRuleChip-module__remove___yO0z3:active:not(:disabled){transform:none}}.ExcludedModelsPicker-module__root___RYF7X{flex-direction:column;gap:8px;min-width:0;display:flex}.ExcludedModelsPicker-module__trigger___ycSKU{border:1px solid var(--border-color);background:var(--bg-primary);width:100%;min-height:40px;color:var(--text-primary);text-align:left;cursor:pointer;transition:border-color var(--dur-hover,.2s) var(--ease-out-strong,ease-out), background-color var(--dur-hover,.2s) var(--ease-out-strong,ease-out), transform var(--dur-press,.16s) var(--ease-out-strong,ease-out);border-radius:8px;justify-content:space-between;align-items:center;gap:8px;padding:0 12px;font-size:13px;display:flex;position:relative;overflow:hidden}.ExcludedModelsPicker-module__trigger___ycSKU:active:not(:disabled){transform:scale(.99)}.ExcludedModelsPicker-module__trigger___ycSKU:focus-visible{border-color:var(--primary-color);outline:none;box-shadow:0 0 0 3px #8b86802e}.ExcludedModelsPicker-module__trigger___ycSKU:disabled{cursor:not-allowed;opacity:.6}@media (hover:hover) and (pointer:fine){.ExcludedModelsPicker-module__trigger___ycSKU:hover:not(:disabled){border-color:color-mix(in srgb, var(--primary-color) 40%, var(--border-color))}}.ExcludedModelsPicker-module__triggerText___lbBd4{text-overflow:ellipsis;white-space:nowrap;align-items:center;gap:6px;min-width:0;display:inline-flex;overflow:hidden}.ExcludedModelsPicker-module__triggerSpinner___xL-cS{color:var(--text-tertiary);flex-shrink:0;animation:.9s linear infinite ExcludedModelsPicker-module__excluded-spin___g-h0p}.ExcludedModelsPicker-module__chevron___FcR89{color:var(--text-tertiary);transition:transform var(--dur-hover,.2s) var(--ease-out-strong,ease-out);flex-shrink:0}.ExcludedModelsPicker-module__triggerOpen___OMivu .ExcludedModelsPicker-module__chevron___FcR89{transform:rotate(180deg)}.ExcludedModelsPicker-module__meter___0ZOIu{background:var(--bg-tertiary);height:2px;position:absolute;bottom:0;left:0;right:0}.ExcludedModelsPicker-module__meterFill___svWrl{background:color-mix(in srgb, var(--primary-color) 70%, var(--text-primary));height:100%;transition:width .36s var(--ease-out-strong,ease);display:block}.ExcludedModelsPicker-module__disclosure___5zAsh{grid-template-rows:0fr;transition:grid-template-rows .12s ease-in;display:grid}.ExcludedModelsPicker-module__disclosureOpen___BTQ7b{transition:grid-template-rows var(--dur-hover,.2s) var(--ease-out-strong,ease-out);grid-template-rows:1fr}.ExcludedModelsPicker-module__disclosureInner___swIxx{min-height:0;overflow:hidden}.ExcludedModelsPicker-module__panel___-GHUW{border:1px solid var(--border-color);background:var(--bg-secondary);transform-origin:top;animation:ExcludedModelsPicker-module__excluded-panel-in___sw1uB var(--dur-hover,.2s) var(--ease-out-strong,ease-out) both;border-radius:8px;flex-direction:column;margin-top:6px;display:flex;overflow:hidden}@keyframes ExcludedModelsPicker-module__excluded-panel-in___sw1uB{0%{opacity:0;transform:scale(.98)}}@keyframes ExcludedModelsPicker-module__excluded-spin___g-h0p{to{transform:rotate(360deg)}}.ExcludedModelsPicker-module__searchRow___vhaLm{border-bottom:1px solid var(--border-color);align-items:center;padding:8px;display:flex;position:relative}.ExcludedModelsPicker-module__searchIcon___kl49Z{color:var(--text-tertiary);pointer-events:none;position:absolute;left:18px}.ExcludedModelsPicker-module__search___eAW6Q{border:1px solid var(--border-color);background:var(--bg-primary);width:100%;color:var(--text-primary);border-radius:4px;padding:6px 10px 6px 32px;font-size:12px}.ExcludedModelsPicker-module__search___eAW6Q::placeholder{color:var(--text-tertiary)}.ExcludedModelsPicker-module__search___eAW6Q:focus{border-color:var(--primary-color);outline:none;box-shadow:0 0 0 3px #8b86802e}.ExcludedModelsPicker-module__list___r-52c{overscroll-behavior:contain;scrollbar-gutter:stable;flex-direction:column;max-height:260px;padding:6px;display:flex;overflow-y:auto}.ExcludedModelsPicker-module__row___-dgzQ{cursor:pointer;transition:background-color var(--dur-press,.16s) var(--ease-out-strong,ease-out);border-radius:4px;align-items:center;gap:8px;padding:7px 8px;display:flex}.ExcludedModelsPicker-module__row___-dgzQ:focus-visible{outline:2px solid var(--primary-color);outline-offset:-2px}.ExcludedModelsPicker-module__rowHighlighted___TXsS-{background:var(--bg-tertiary)}.ExcludedModelsPicker-module__rowExcluded___QwTAb .ExcludedModelsPicker-module__checkbox___LBJlR{border-color:var(--primary-color);background:var(--primary-color);color:var(--bg-primary)}.ExcludedModelsPicker-module__rowLocked___yX5xZ{cursor:default;opacity:.62}.ExcludedModelsPicker-module__checkbox___LBJlR{border:1px solid var(--border-color);background:var(--bg-primary);width:16px;height:16px;transition:background-color var(--dur-press,.16s) var(--ease-out-strong,ease-out), border-color var(--dur-press,.16s) var(--ease-out-strong,ease-out);border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.ExcludedModelsPicker-module__rowText___VJ0uV{flex-direction:column;flex:1;gap:1px;min-width:0;display:flex}.ExcludedModelsPicker-module__rowId___6yGuV{color:var(--text-primary);text-overflow:ellipsis;white-space:nowrap;font-family:ui-monospace,SF Mono,Cascadia Mono,JetBrains Mono,Fira Code,Menlo,Consolas,Liberation Mono,monospace;font-size:12px;overflow:hidden}.ExcludedModelsPicker-module__rowDisplayName___c-Ifl,.ExcludedModelsPicker-module__rowReason___1c7c2{color:var(--text-tertiary);text-overflow:ellipsis;white-space:nowrap;font-size:11px;overflow:hidden}.ExcludedModelsPicker-module__badge___vrwIy{border:1px dashed color-mix(in srgb, var(--primary-color) 38%, var(--border-color));color:var(--text-secondary);border-radius:9999px;flex-shrink:0;padding:2px 6px;font-size:10px}.ExcludedModelsPicker-module__badgeMuted___SAngk{color:var(--text-tertiary);border-style:dotted}.ExcludedModelsPicker-module__noResults___Qohto{color:var(--text-tertiary);text-align:center;margin:0;padding:24px 8px;font-size:12px}.ExcludedModelsPicker-module__footer___eApyV{border-top:1px solid var(--border-color);background:var(--bg-primary);justify-content:space-between;align-items:center;gap:8px;padding:8px 10px;display:flex}.ExcludedModelsPicker-module__footerCount___S0dwv{color:var(--text-secondary);font-variant-numeric:tabular-nums;font-size:11px}.ExcludedModelsPicker-module__footerActions___1UCO6{align-items:center;gap:4px;display:inline-flex}.ExcludedModelsPicker-module__footerButton___BcU1G{color:var(--text-secondary);cursor:pointer;transition:background-color var(--dur-hover,.2s) var(--ease-out-strong,ease-out), color var(--dur-hover,.2s) var(--ease-out-strong,ease-out), transform var(--dur-press,.16s) var(--ease-out-strong,ease-out);background:0 0;border:0;border-radius:4px;padding:4px 8px;font-size:11px}.ExcludedModelsPicker-module__footerButton___BcU1G:active:not(:disabled){transform:scale(.96)}.ExcludedModelsPicker-module__footerButton___BcU1G:focus-visible{outline:2px solid var(--primary-color);outline-offset:1px}.ExcludedModelsPicker-module__footerButton___BcU1G:disabled{cursor:not-allowed;opacity:.5}@media (hover:hover) and (pointer:fine){.ExcludedModelsPicker-module__footerButton___BcU1G:hover:not(:disabled){background:var(--bg-tertiary);color:var(--text-primary)}}.ExcludedModelsPicker-module__catalogNotice___Vuj8F{border:1px solid var(--border-color);background:var(--bg-secondary);color:var(--text-secondary);border-radius:8px;justify-content:space-between;align-items:center;gap:8px;margin-top:6px;padding:12px;font-size:12px;display:flex}.ExcludedModelsPicker-module__retryButton___xLpOx{border:1px solid var(--border-color);background:var(--bg-primary);color:var(--text-primary);cursor:pointer;transition:transform var(--dur-press,.16s) var(--ease-out-strong,ease-out);border-radius:4px;flex-shrink:0;padding:4px 10px;font-size:11px}.ExcludedModelsPicker-module__retryButton___xLpOx:active{transform:scale(.96)}.ExcludedModelsPicker-module__chipsMore___qiTQK{color:var(--text-tertiary);align-self:center;font-size:11px}.ExcludedModelsPicker-module__ruleEditor___BnPbg{flex-direction:column;gap:6px;display:flex}.ExcludedModelsPicker-module__ruleLabel___Vs3uq{color:var(--text-secondary);font-size:12px;font-weight:500}.ExcludedModelsPicker-module__ruleMatches___aaZnY{flex-direction:column;gap:2px;margin:0;padding:0;list-style:none;display:flex}.ExcludedModelsPicker-module__ruleMatches___aaZnY li{color:var(--text-tertiary);align-items:center;gap:6px;font-size:11px;display:flex}.ExcludedModelsPicker-module__ruleMatches___aaZnY code{color:var(--text-secondary);font-family:ui-monospace,SF Mono,Cascadia Mono,JetBrains Mono,Fira Code,Menlo,Consolas,Liberation Mono,monospace}.ExcludedModelsPicker-module__ruleMatchNone___GTDUi{color:var(--warning-color,#c65746)}.ExcludedModelsPicker-module__ruleWarning___lcScQ{color:var(--warning-color,#c65746);align-items:center;gap:6px;margin:0;font-size:11px;display:flex}@media (prefers-reduced-motion:reduce){.ExcludedModelsPicker-module__disclosure___5zAsh,.ExcludedModelsPicker-module__disclosureOpen___BTQ7b{transition:none}.ExcludedModelsPicker-module__panel___-GHUW{animation:none}.ExcludedModelsPicker-module__trigger___ycSKU,.ExcludedModelsPicker-module__chevron___FcR89,.ExcludedModelsPicker-module__meterFill___svWrl,.ExcludedModelsPicker-module__row___-dgzQ,.ExcludedModelsPicker-module__checkbox___LBJlR,.ExcludedModelsPicker-module__footerButton___BcU1G,.ExcludedModelsPicker-module__retryButton___xLpOx{transition:none}.ExcludedModelsPicker-module__triggerSpinner___xL-cS{animation:none}.ExcludedModelsPicker-module__trigger___ycSKU:active:not(:disabled),.ExcludedModelsPicker-module__footerButton___BcU1G:active:not(:disabled),.ExcludedModelsPicker-module__retryButton___xLpOx:active{transform:none}}.ProvidersWorkbenchPage-module__page___b5s-a{box-sizing:border-box;flex-direction:column;gap:20px;width:100%;padding:24px;display:flex}.ProvidersWorkbenchPage-module__layout___MCNil{grid-template-columns:minmax(0,1fr);align-items:start;gap:16px;display:grid}@media (min-width:1280px){.ProvidersWorkbenchPage-module__layout___MCNil{grid-template-columns:240px minmax(0,1fr)}.ProvidersWorkbenchPage-module__layoutSingle___xRaf-{grid-template-columns:minmax(0,1fr)}}.ProvidersWorkbenchPage-module__modelCatalogSlot___bAD6H{margin-top:4px}@media (max-width:768px){.ProvidersWorkbenchPage-module__page___b5s-a{gap:16px;padding:16px}}.AuthFileQuota-module__quotaSection___B1NkU{border:1px solid color-mix(in srgb, var(--border-color) 70%, transparent);background:color-mix(in srgb, var(--bg-secondary) 55%, transparent);border-radius:10px;flex-direction:column;gap:9px;padding:10px 11px;font-size:11.5px;display:flex}.AuthFileQuota-module__quotaMessage___cvzkK{color:var(--text-tertiary);text-align:center;padding:5px 4px;font-family:ui-monospace,SF Mono,Cascadia Mono,JetBrains Mono,Fira Code,Menlo,Consolas,Liberation Mono,monospace;font-size:11.5px;font-weight:400;line-height:1.5}button.AuthFileQuota-module__quotaMessageAction___B2326{cursor:pointer;color:var(--text-secondary);background:0 0;border:0;transition:color .15s}button.AuthFileQuota-module__quotaMessageAction___B2326:hover:not(:disabled){color:var(--primary-hover)}button.AuthFileQuota-module__quotaMessageAction___B2326:disabled{cursor:not-allowed;color:var(--text-quaternary)}.AuthFileQuota-module__quotaError___j6Dml{color:var(--danger-color);overflow-wrap:anywhere;font-size:11.5px;font-weight:500;line-height:1.5}.AuthFileQuota-module__quotaCardActions___Wy2PY{justify-content:flex-end;gap:6px;display:flex}.AuthFileQuota-module__quotaResetCreditButton___CdV7t{white-space:nowrap;font-size:11.5px;font-weight:600}.AuthFileQuota-module__quotaResetCreditButton___CdV7t>span:last-child{align-items:center;gap:6px;display:inline-flex}.AuthFileQuota-module__quotaRow___ufmMU{flex-direction:column;gap:4px;display:flex}.AuthFileQuota-module__quotaRowHeader___V-41W{justify-content:space-between;align-items:baseline;gap:8px;display:flex}.AuthFileQuota-module__quotaModel___C-dFE{min-width:0;color:var(--text-secondary);text-overflow:ellipsis;white-space:nowrap;font-size:11.5px;font-weight:600;overflow:hidden}.AuthFileQuota-module__quotaMeta___uftxo{font-variant-numeric:tabular-nums;flex-shrink:0;align-items:baseline;gap:6px;font-family:ui-monospace,SF Mono,Cascadia Mono,JetBrains Mono,Fira Code,Menlo,Consolas,Liberation Mono,monospace;font-size:11.5px;font-weight:400;display:inline-flex}.AuthFileQuota-module__quotaPercent___WY2j6{color:var(--text-primary);font-weight:650}.AuthFileQuota-module__quotaReset___qSOIY{color:var(--text-quaternary)}.AuthFileQuota-module__quotaResetRelative___uPs7s{color:var(--text-tertiary)}.AuthFileQuota-module__quotaResetRelative___uPs7s:before{content:"·";color:var(--text-quaternary);margin:0 3px}.AuthFileQuota-module__quotaResetRelativeSoon___j58iD{color:var(--warning-text);font-weight:600}.AuthFileQuota-module__quotaAmount___xZEJm{font-variant-numeric:tabular-nums;color:var(--text-secondary);font-family:ui-monospace,SF Mono,Cascadia Mono,JetBrains Mono,Fira Code,Menlo,Consolas,Liberation Mono,monospace;font-size:11.5px;font-weight:500}.AuthFileQuota-module__quotaBar___5C9oU{background:color-mix(in srgb, var(--text-primary) 8%, transparent);border-radius:9999px;height:6px;overflow:hidden}.AuthFileQuota-module__quotaBarFill___vBml3{height:100%;transition:width .36s var(--ease-out-strong,ease);border-radius:9999px}.AuthFileQuota-module__quotaBarFillHigh___Z22Yp{background:var(--viz-success)}.AuthFileQuota-module__quotaBarFillMedium___FwcLR{background:var(--quota-medium-color)}.AuthFileQuota-module__quotaBarFillLow___ose2c{background:var(--viz-failure)}.AuthFileQuota-module__codexPlan___qVz5l{flex-wrap:wrap;gap:6px;display:flex}.AuthFileQuota-module__codexPlanItem___VZnNr{border:1px solid var(--border-color);background:color-mix(in srgb, var(--bg-primary) 70%, transparent);border-radius:9999px;align-items:baseline;gap:5px;padding:3px 8px;display:inline-flex}.AuthFileQuota-module__codexPlanLabel___K-Sbq{color:var(--text-tertiary);font-size:11.5px;font-weight:400}.AuthFileQuota-module__codexPlanValue___6W2YL{color:var(--text-secondary);font-family:ui-monospace,SF Mono,Cascadia Mono,JetBrains Mono,Fira Code,Menlo,Consolas,Liberation Mono,monospace;font-size:11.5px;font-weight:600}.AuthFileQuota-module__premiumPlanValue___3e3wf{color:var(--amber-text);font-family:ui-monospace,SF Mono,Cascadia Mono,JetBrains Mono,Fira Code,Menlo,Consolas,Liberation Mono,monospace;font-size:11.5px;font-weight:650}.AuthFileQuota-module__elitePlanValue___H1P29{color:#526379;font-family:ui-monospace,SF Mono,Cascadia Mono,JetBrains Mono,Fira Code,Menlo,Consolas,Liberation Mono,monospace;font-size:11.5px;font-weight:650}[data-theme=dark] .AuthFileQuota-module__elitePlanValue___H1P29{color:#c3d3e4}.AuthFileQuota-module__antigravityQuotaGroup___cGr3L{flex-direction:column;gap:6px;display:flex}.AuthFileQuota-module__antigravityQuotaGroup___cGr3L+.AuthFileQuota-module__antigravityQuotaGroup___cGr3L{border-top:1px dashed color-mix(in srgb, var(--border-color) 80%, transparent);margin-top:3px;padding-top:8px}.AuthFileQuota-module__antigravityQuotaGroupHeader___I5iUs{justify-content:space-between;align-items:baseline;gap:8px;display:flex}.AuthFileQuota-module__antigravityQuotaGroupTitle___IcwtE{letter-spacing:.1em;text-transform:uppercase;color:var(--text-tertiary);font-family:ui-monospace,SF Mono,Cascadia Mono,JetBrains Mono,Fira Code,Menlo,Consolas,Liberation Mono,monospace;font-size:11.5px;font-weight:600}.AuthFileQuota-module__antigravityQuotaGroupDescription___QIQvW{color:var(--text-quaternary);font-size:11.5px;font-weight:400}.AuthFileQuota-module__codexResetCredits___ck-iL{border:1px solid color-mix(in srgb, var(--border-color) 70%, transparent);border-radius:8px;flex-direction:column;gap:4px;padding:8px 9px;display:flex}.AuthFileQuota-module__codexResetCreditsTitle___L5hee{letter-spacing:.1em;text-transform:uppercase;color:var(--text-tertiary);font-family:ui-monospace,SF Mono,Cascadia Mono,JetBrains Mono,Fira Code,Menlo,Consolas,Liberation Mono,monospace;font-size:11.5px;font-weight:600}.AuthFileQuota-module__codexResetCreditRow___BpvcM{justify-content:space-between;align-items:baseline;gap:8px;font-size:11.5px;font-weight:400;display:flex}.AuthFileQuota-module__codexResetCreditRowSoon___MG1la{border-left:2px solid var(--warning-border);background-color:var(--warning-bg);border-radius:4px;margin:0 -6px;padding:2px 6px}.AuthFileQuota-module__codexResetCreditLabel___CXf0-{min-width:0;color:var(--text-secondary);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.AuthFileQuota-module__codexResetCreditTime___TjNwy{font-variant-numeric:tabular-nums;color:var(--text-secondary);flex-shrink:0;font-family:ui-monospace,SF Mono,Cascadia Mono,JetBrains Mono,Fira Code,Menlo,Consolas,Liberation Mono,monospace}.AuthFileQuota-module__codexResetCreditsError___HoA4w{color:var(--danger-color);overflow-wrap:anywhere;font-size:11.5px;font-weight:500}@media (max-width:768px){.AuthFileQuota-module__quotaRowHeader___V-41W{flex-direction:column;align-items:flex-start}.AuthFileQuota-module__quotaModel___C-dFE{white-space:normal;text-overflow:clip;overflow-wrap:anywhere;width:100%;overflow:visible}}@media (prefers-reduced-motion:reduce){.AuthFileQuota-module__quotaBarFill___vBml3{transition:none}}.AuthFileCooldownSection-module__section___0cf17{border-block:1px solid var(--border-color);color:var(--warning-text);font-size:12px;line-height:1.5}.AuthFileCooldownSection-module__summary___YCBqz{cursor:pointer;border-radius:4px;align-items:center;gap:8px;min-height:40px;padding-block-start:8px;padding-block-end:8px;list-style:none;display:flex}.AuthFileCooldownSection-module__summary___YCBqz::-webkit-details-marker{display:none}.AuthFileCooldownSection-module__summary___YCBqz:focus-visible{outline:2px solid var(--primary-color);outline-offset:3px}.AuthFileCooldownSection-module__summaryContent___aUGTv{flex-wrap:wrap;flex:1;justify-content:space-between;align-items:baseline;gap:2px 12px;min-width:0;display:flex}.AuthFileCooldownSection-module__scope___HbPsT{font-weight:600}.AuthFileCooldownSection-module__next___6nWTR,.AuthFileCooldownSection-module__remaining___d9-1N{font-variant-numeric:tabular-nums}.AuthFileCooldownSection-module__next___6nWTR{color:var(--text-secondary);font-size:11px}.AuthFileCooldownSection-module__chevron___eee5S{color:var(--text-tertiary);flex-shrink:0}.AuthFileCooldownSection-module__section___0cf17[open] .AuthFileCooldownSection-module__chevron___eee5S{transform:rotate(180deg)}.AuthFileCooldownSection-module__body___fl9L2{padding-bottom:10px}.AuthFileCooldownSection-module__list___GB-U0{margin:0;padding:0;list-style:none}.AuthFileCooldownSection-module__row___4NF2K{border-top:1px solid var(--border-color);padding-block-start:9px;padding-block-end:9px}.AuthFileCooldownSection-module__rowHead___AtRzq{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:2px 12px;display:flex}.AuthFileCooldownSection-module__model___yi0U1{overflow-wrap:anywhere;min-width:0;color:var(--text-primary);font-weight:550}.AuthFileCooldownSection-module__remaining___d9-1N{white-space:nowrap;color:var(--text-secondary)}.AuthFileCooldownSection-module__reason___uw8jl{color:var(--text-secondary);flex-wrap:wrap;gap:2px 10px;margin-top:3px;display:flex}.AuthFileCooldownSection-module__deadline___sl0iU,.AuthFileCooldownSection-module__observed___j63b0,.AuthFileCooldownSection-module__note___WqVNg,.AuthFileCooldownSection-module__unknown___2UlQu{color:var(--text-tertiary);overflow-wrap:anywhere;font-size:11px;line-height:1.5}.AuthFileCooldownSection-module__deadline___sl0iU{margin-top:3px}.AuthFileCooldownSection-module__observed___j63b0,.AuthFileCooldownSection-module__note___WqVNg,.AuthFileCooldownSection-module__unknown___2UlQu{margin:0}.AuthFileCooldownSection-module__note___WqVNg{margin-top:6px}.AuthFileCooldownSection-module__actionRow___v1gr9{border-top:1px solid var(--border-color);justify-content:flex-end;margin-top:9px;padding-top:9px;display:flex}.AuthFileCooldownSection-module__elapsed___s8CNK{color:var(--text-secondary)}@media (hover:hover) and (pointer:fine){.AuthFileCooldownSection-module__summary___YCBqz:hover{background:var(--bg-secondary)}}.AuthFileCard-module__card___uGYSU{border:1px solid var(--border-color);background:color-mix(in srgb, var(--bg-primary) 82%, transparent);transition:border-color .16s var(--ease-out-strong,ease-out);border-radius:14px;flex-direction:column;gap:12px;padding:16px;display:flex;position:relative}@media (hover:hover) and (pointer:fine){.AuthFileCard-module__card___uGYSU:hover{border-color:var(--border-hover)}}.AuthFileCard-module__cardDisabled___VNdBP{background:color-mix(in srgb, var(--bg-primary) 55%, var(--bg-tertiary))}.AuthFileCard-module__cardDisabled___VNdBP>:not(.AuthFileCard-module__actions___rRBeL){opacity:.68}.AuthFileCard-module__cardCompact___OASyT{gap:10px;padding:13px 14px}.AuthFileCard-module__cardSelected___8nfCV{border-color:color-mix(in srgb, var(--primary-color) 55%, transparent);box-shadow:0 0 0 1px color-mix(in srgb, var(--primary-color) 40%, transparent)}.AuthFileCard-module__cardEnter___sxjp9{animation:AuthFileCard-module__card-in___3x8Zj .18s var(--ease-out-strong,ease-out) both;animation-delay:var(--card-delay,0s)}@keyframes AuthFileCard-module__card-in___3x8Zj{0%{opacity:0}}.AuthFileCard-module__head___v8x8N{align-items:center;gap:8px;min-height:28px;display:flex}.AuthFileCard-module__selection___U0qhE{flex-shrink:0}.AuthFileCard-module__identity___eeILs{flex-wrap:wrap;flex:1;align-items:center;gap:4px 8px;min-width:0;margin:0;font-size:15px;font-weight:600;line-height:1.6;display:flex}.AuthFileCard-module__providerBadge___6gvmI{overflow-wrap:anywhere;border-radius:12px;flex-shrink:0;max-width:100%;padding:4px 10px;font-size:12px;font-weight:600;line-height:1.3}.AuthFileCard-module__runtimeLabel___KWnYK{color:var(--text-tertiary);margin-left:auto;font-size:11px}.AuthFileCard-module__account___Rff3G{letter-spacing:-.005em;min-width:0;color:var(--text-primary);overflow-wrap:anywhere;flex:12ch}.AuthFileCard-module__accountMono___j0kio{letter-spacing:-.01em;font-family:ui-monospace,SF Mono,Cascadia Mono,JetBrains Mono,Fira Code,Menlo,Consolas,Liberation Mono,monospace}.AuthFileCard-module__fileName___4SoBR{color:var(--text-tertiary);overflow-wrap:anywhere;-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:-4px 0 0;font-family:ui-monospace,SF Mono,Cascadia Mono,JetBrains Mono,Fira Code,Menlo,Consolas,Liberation Mono,monospace;font-size:11px;line-height:1.45;display:-webkit-box;overflow:hidden}.AuthFileCard-module__note___1z3AW{color:var(--text-secondary);text-overflow:ellipsis;white-space:nowrap;margin:0;font-size:12px;line-height:1.5;overflow:hidden}.AuthFileCard-module__warning___fbAFD{color:var(--warning-text);background:var(--warning-bg);border:1px solid var(--warning-border);border-radius:8px;align-items:flex-start;gap:6px;padding:7px 9px;font-size:12px;line-height:1.45;display:flex}.AuthFileCard-module__warning___fbAFD span{overflow-wrap:anywhere;-webkit-line-clamp:2;-webkit-box-orient:vertical;min-width:0;display:-webkit-box;overflow:hidden}.AuthFileCard-module__warningIcon___uDlER{flex-shrink:0;margin-top:2px}.AuthFileCard-module__health___QjVqU{flex-direction:column;gap:7px;display:flex}.AuthFileCard-module__healthHead___qOS-e{justify-content:space-between;align-items:baseline;gap:8px;display:flex}.AuthFileCard-module__healthLabel___aT74P{letter-spacing:.12em;text-transform:uppercase;color:var(--text-tertiary);font-family:ui-monospace,SF Mono,Cascadia Mono,JetBrains Mono,Fira Code,Menlo,Consolas,Liberation Mono,monospace;font-size:10px;font-weight:700}.AuthFileCard-module__healthCounts___CpV5-{font-variant-numeric:tabular-nums;align-items:baseline;gap:8px;font-family:ui-monospace,SF Mono,Cascadia Mono,JetBrains Mono,Fira Code,Menlo,Consolas,Liberation Mono,monospace;font-size:11.5px;font-weight:600;display:inline-flex}.AuthFileCard-module__countOk___3T-mO,.AuthFileCard-module__countFail___FiHCK{color:var(--text-quaternary)}.AuthFileCard-module__countLive___GrmF6.AuthFileCard-module__countOk___3T-mO{color:var(--viz-success)}.AuthFileCard-module__countLive___GrmF6.AuthFileCard-module__countFail___FiHCK{color:var(--viz-failure)}.AuthFileCard-module__statusBar___l4HLW{align-items:center;gap:8px;display:flex}.AuthFileCard-module__statusBlocks___QcWpO{flex:1;gap:2px;min-width:0;display:flex}.AuthFileCard-module__statusBlockWrapper___XDWa-{flex:1 1 0;min-width:3px;position:relative}.AuthFileCard-module__statusBlock___HUSel{border-radius:2px;height:14px}.AuthFileCard-module__statusBlockIdle___fhxJM{background:color-mix(in srgb, var(--text-quaternary) 26%, transparent)}.AuthFileCard-module__statusBlockActive___cEW6c .AuthFileCard-module__statusBlock___HUSel{outline:1px solid var(--text-secondary);outline-offset:1px}.AuthFileCard-module__statusRate___Qq2JK{font-variant-numeric:tabular-nums;color:var(--text-quaternary);text-align:right;min-width:40px;font-family:ui-monospace,SF Mono,Cascadia Mono,JetBrains Mono,Fira Code,Menlo,Consolas,Liberation Mono,monospace;font-size:11.5px;font-weight:650}.AuthFileCard-module__statusRateHigh___KqEoP{color:var(--viz-success)}.AuthFileCard-module__statusRateMedium___2EC-8{color:var(--quota-medium-color)}.AuthFileCard-module__statusRateLow___6aoPQ{color:var(--viz-failure)}.AuthFileCard-module__statusTooltip___Wkvm1{z-index:20;background:var(--floating-surface);border:1px solid var(--border-color);min-width:150px;box-shadow:var(--floating-shadow);pointer-events:none;border-radius:10px;flex-direction:column;gap:2px;padding:8px 10px;font-family:ui-monospace,SF Mono,Cascadia Mono,JetBrains Mono,Fira Code,Menlo,Consolas,Liberation Mono,monospace;font-size:11px;line-height:1.5;display:flex;position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%)}.AuthFileCard-module__statusTooltipLeft___8BuX-{left:0;transform:none}.AuthFileCard-module__statusTooltipRight___IH6DF{left:auto;right:0;transform:none}.AuthFileCard-module__tooltipTime___0UfaN{color:var(--text-tertiary);letter-spacing:.03em}.AuthFileCard-module__tooltipStats___IyHCo{color:var(--text-secondary);flex-wrap:wrap;gap:6px;display:flex}.AuthFileCard-module__tooltipSuccess___p9K34{color:var(--viz-success)}.AuthFileCard-module__tooltipFailure___YFaP8{color:var(--viz-failure)}.AuthFileCard-module__tooltipRate___GoIfn{color:var(--text-secondary)}.AuthFileCard-module__metaRow___nfLnW{font-variant-numeric:tabular-nums;color:var(--text-tertiary);flex-wrap:wrap;align-items:center;gap:4px 7px;font-family:ui-monospace,SF Mono,Cascadia Mono,JetBrains Mono,Fira Code,Menlo,Consolas,Liberation Mono,monospace;font-size:11.5px;display:flex}.AuthFileCard-module__metaDivider___YdOzs{color:var(--text-quaternary);-webkit-user-select:none;user-select:none}.AuthFileCard-module__metaPriority___MNn3v,.AuthFileCard-module__metaWeight___ev--T{white-space:nowrap;border:1px solid #0000;border-radius:9999px;align-items:baseline;gap:4px;padding:2px 6px;font-weight:650;line-height:1.35;display:inline-flex}.AuthFileCard-module__metaPriority___MNn3v{color:var(--text-secondary);background:color-mix(in srgb, var(--text-quaternary) 10%, transparent);border-color:color-mix(in srgb, var(--text-quaternary) 24%, transparent)}.AuthFileCard-module__metaWeight___ev--T{color:var(--primary-active);background:var(--primary-10);border-color:var(--primary-30)}.AuthFileCard-module__metaMetricLabel___ZyF33{color:currentColor;opacity:.78;font-size:10px;font-weight:600}.AuthFileCard-module__actions___rRBeL{border-top:1px solid color-mix(in srgb, var(--border-color) 70%, transparent);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;margin-top:auto;padding-top:12px;display:flex}.AuthFileCard-module__actionsMain___9-6f3{flex-wrap:wrap;align-items:center;gap:6px;min-width:0;display:flex}.AuthFileCard-module__utilityActions___1eq5S{align-items:center;gap:4px;display:flex}.AuthFileCard-module__actions___rRBeL .btn>span{justify-content:center;align-items:center;gap:6px;line-height:1;display:inline-flex}.AuthFileCard-module__actions___rRBeL .btn svg{flex-shrink:0;display:block}.AuthFileCard-module__card___uGYSU .AuthFileCard-module__actions___rRBeL .AuthFileCard-module__iconButton___XdMXe{border:1px solid var(--border-color);width:30px;height:30px;color:var(--text-secondary);background:0 0;justify-content:center;align-items:center;padding:0;display:inline-flex}.AuthFileCard-module__card___uGYSU .AuthFileCard-module__actions___rRBeL .AuthFileCard-module__iconButton___XdMXe.btn-danger{color:var(--danger-color);border-color:color-mix(in srgb, var(--danger-color) 28%, transparent)}@media (hover:hover) and (pointer:fine){.AuthFileCard-module__card___uGYSU .AuthFileCard-module__actions___rRBeL .AuthFileCard-module__iconButton___XdMXe:hover:not(:disabled){color:var(--text-primary);border-color:var(--border-hover);background:var(--bg-tertiary)}.AuthFileCard-module__card___uGYSU .AuthFileCard-module__actions___rRBeL .AuthFileCard-module__iconButton___XdMXe.btn-danger:hover:not(:disabled){color:var(--danger-color);border-color:color-mix(in srgb, var(--danger-color) 45%, transparent);background:var(--destructive-10)}}.AuthFileCard-module__actions___rRBeL .btn{transition:transform var(--dur-press,.16s) var(--ease-out-strong,ease-out), background-color .15s ease, border-color .15s ease, color .15s ease}.AuthFileCard-module__actions___rRBeL .btn:active:not(:disabled){transform:scale(.96)}.AuthFileCard-module__toggleWrap___QD-r9{flex-shrink:0;align-items:center;gap:8px;margin-left:auto;display:flex}.AuthFileCard-module__toggleLabel___StDgj{color:var(--text-tertiary);white-space:nowrap;font-size:11px}@media (max-width:768px){.AuthFileCard-module__toggleWrap___QD-r9{justify-content:space-between;width:100%}.AuthFileCard-module__actionsMain___9-6f3{width:100%}.AuthFileCard-module__actionsMain___9-6f3>.btn{flex:auto;min-width:0}}@media (prefers-reduced-motion:reduce){.AuthFileCard-module__card___uGYSU{transition:none}.AuthFileCard-module__cardEnter___sxjp9{animation:none}.AuthFileCard-module__actions___rRBeL .btn{transition:none}.AuthFileCard-module__actions___rRBeL .btn:active:not(:disabled){transform:none}}.AuthFilePolicyFields-module__policyFields___t1mgP{min-width:0}.AuthFilePolicyFields-module__unsupported___xDzMr{margin-top:8px}.AuthFileDetailsSheet-module__editor___DbnN-{flex-direction:column;gap:16px;display:flex}.AuthFileDetailsSheet-module__loading___H-cxN{color:var(--text-secondary);justify-content:center;align-items:center;gap:8px;padding:24px 0;font-size:13px;display:flex}.AuthFileDetailsSheet-module__error___0Uib2{color:var(--danger-color);background:var(--bg-error-light);border:1px solid var(--warning-border);overflow-wrap:anywhere;border-radius:8px;padding:8px 10px;font-size:12.5px;line-height:1.5}.AuthFileDetailsSheet-module__jsonWrapper___sDPqO{flex-direction:column;gap:6px;display:flex}.AuthFileDetailsSheet-module__label___b-EEy{letter-spacing:.1em;text-transform:uppercase;color:var(--text-tertiary);font-family:ui-monospace,SF Mono,Cascadia Mono,JetBrains Mono,Fira Code,Menlo,Consolas,Liberation Mono,monospace;font-size:10.5px;font-weight:700}.AuthFileDetailsSheet-module__textarea___5tXvP{box-sizing:border-box;resize:vertical;width:100%;color:var(--text-secondary);background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:10px;padding:10px 12px;font-family:ui-monospace,SF Mono,Cascadia Mono,JetBrains Mono,Fira Code,Menlo,Consolas,Liberation Mono,monospace;font-size:12px;line-height:1.55}.AuthFileDetailsSheet-module__textarea___5tXvP:focus{border-color:var(--primary-color);box-shadow:0 0 0 3px var(--primary-10);outline:none}.AuthFileDetailsSheet-module__textareaInvalid___IyPX0{border-color:var(--danger-color)!important}.AuthFileDetailsSheet-module__invalidPreview___XEQ5F{max-height:240px;color:var(--text-secondary);background:var(--bg-secondary);border:1px dashed var(--border-hover);white-space:pre-wrap;overflow-wrap:anywhere;border-radius:10px;margin:0;padding:10px 12px;font-family:ui-monospace,SF Mono,Cascadia Mono,JetBrains Mono,Fira Code,Menlo,Consolas,Liberation Mono,monospace;font-size:12px;line-height:1.55;overflow:auto}.AuthFileDetailsSheet-module__fields___fA024{flex-direction:column;gap:14px;display:flex}.AuthFileDetailsSheet-module__settingsLink___y9VZ6{color:var(--primary-color);font-weight:600;text-decoration:none}.AuthFileDetailsSheet-module__settingsLink___y9VZ6:hover{text-decoration:underline}.AuthFileDetailsSheet-module__settingsLink___y9VZ6:focus-visible{outline:2px solid var(--primary-color);outline-offset:2px;border-radius:2px}.AuthFileRefreshResults-module__results___U02ox{margin:16px 0 0;padding:0;list-style:none}.AuthFileRefreshResults-module__result___bF1x4{border-bottom:1px solid var(--border-color);flex-wrap:wrap;gap:8px;padding:12px 0;display:flex}.AuthFileRefreshResults-module__identity___NkCRg{overflow-wrap:anywhere;flex:1;min-width:0}.AuthFileRefreshResults-module__success___CnRq8{color:var(--success-color)}.AuthFileRefreshResults-module__failure___t-pQv{color:var(--error-color)}.AuthFileRefreshResults-module__error___MXH8r{width:100%;color:var(--text-secondary);white-space:pre-wrap;overflow-wrap:anywhere;margin:0}.AuthFileModelsModal-module__list___owxkk{flex-direction:column;gap:4px;max-height:min(52dvh,480px);padding-right:2px;display:flex;overflow-y:auto}.AuthFileModelsModal-module__item___pNrxv{cursor:pointer;transition:background-color .15s ease, border-color .15s ease, transform var(--dur-press,.16s) var(--ease-out-strong,ease-out);border:1px solid #0000;border-radius:8px;flex-wrap:wrap;align-items:baseline;gap:8px;padding:8px 10px;display:flex}.AuthFileModelsModal-module__item___pNrxv:active{transform:scale(.99)}@media (hover:hover) and (pointer:fine){.AuthFileModelsModal-module__item___pNrxv:hover{background:var(--bg-tertiary);border-color:color-mix(in srgb, var(--border-color) 70%, transparent)}}.AuthFileModelsModal-module__itemExcluded___BKMCE{opacity:.55}.AuthFileModelsModal-module__modelId___Y02bh{color:var(--text-primary);overflow-wrap:anywhere;font-family:ui-monospace,SF Mono,Cascadia Mono,JetBrains Mono,Fira Code,Menlo,Consolas,Liberation Mono,monospace;font-size:12.5px;font-weight:600}.AuthFileModelsModal-module__modelDisplayName___wrhaX{color:var(--text-tertiary);text-overflow:ellipsis;white-space:nowrap;font-size:11.5px;overflow:hidden}.AuthFileModelsModal-module__modelType___O1w-v{letter-spacing:.05em;text-transform:uppercase;color:var(--text-tertiary);border:1px solid var(--border-color);border-radius:9999px;padding:1px 6px;font-family:ui-monospace,SF Mono,Cascadia Mono,JetBrains Mono,Fira Code,Menlo,Consolas,Liberation Mono,monospace;font-size:10px;font-weight:650}.AuthFileModelsModal-module__excludedBadge___9NpWz{color:var(--failure-badge-text);background:var(--failure-badge-bg);border:1px solid var(--failure-badge-border);white-space:nowrap;border-radius:9999px;margin-left:auto;padding:1px 7px;font-size:10.5px;font-weight:600}@media (prefers-reduced-motion:reduce){.AuthFileModelsModal-module__item___pNrxv{transition:none}.AuthFileModelsModal-module__item___pNrxv:active{transform:none}}.AuthFilesToolbar-module__toolbar___xJGiG{flex-wrap:wrap;align-items:center;gap:8px 10px;display:flex}.AuthFilesToolbar-module__search___2q5J4{flex:220px;min-width:180px;max-width:340px}.AuthFilesToolbar-module__search___2q5J4 .form-group{margin-bottom:0}.AuthFilesToolbar-module__search___2q5J4 .input{border-radius:10px;height:36px;font-size:13px}.AuthFilesToolbar-module__searchIcon___sQlFr{color:var(--text-quaternary)}.AuthFilesToolbar-module__segmented___OI8vp{border:1px solid var(--border-color);background:var(--bg-tertiary);border-radius:9999px;align-items:center;gap:2px;padding:2px;display:inline-flex}.AuthFilesToolbar-module__segment___wRkEj{cursor:pointer;color:var(--text-secondary);white-space:nowrap;transition:color var(--dur-hover,.2s) var(--ease-out-strong,ease-out), background-color var(--dur-hover,.2s) var(--ease-out-strong,ease-out), box-shadow var(--dur-hover,.2s) var(--ease-out-strong,ease-out), transform var(--dur-press,.16s) var(--ease-out-strong,ease-out);background:0 0;border:0;border-radius:9999px;padding:5px 12px;font-size:12px;font-weight:550;line-height:1.3}.AuthFilesToolbar-module__segment___wRkEj:active{transform:scale(.96)}.AuthFilesToolbar-module__segment___wRkEj:focus-visible{outline:2px solid var(--primary-color);outline-offset:-1px}@media (hover:hover) and (pointer:fine){.AuthFilesToolbar-module__segment___wRkEj:hover:not(.AuthFilesToolbar-module__segmentActive___4XmQp){color:var(--text-primary)}}.AuthFilesToolbar-module__segmentActive___4XmQp{color:var(--text-primary);background:var(--floating-surface,var(--bg-primary));font-weight:650;box-shadow:0 1px 3px #0000001f,0 1px 2px #00000014}.AuthFilesToolbar-module__segmentProblem___fftxA.AuthFilesToolbar-module__segmentActive___4XmQp{color:var(--danger-color);background:color-mix(in srgb, var(--danger-color) 12%, var(--floating-surface,var(--bg-primary)));box-shadow:0 1px 3px color-mix(in srgb, var(--danger-color) 20%, transparent), 0 1px 2px #0000000f}.AuthFilesToolbar-module__sort___hfQv4{min-width:120px}.AuthFilesToolbar-module__display___ZcDgU{position:relative}.AuthFilesToolbar-module__displayButton___v26R8{border:1px solid var(--border-color);background:var(--bg-secondary);cursor:pointer;height:32px;color:var(--text-secondary);white-space:nowrap;transition:color var(--dur-hover,.2s) var(--ease-out-strong,ease-out), border-color var(--dur-hover,.2s) var(--ease-out-strong,ease-out), transform var(--dur-press,.16s) var(--ease-out-strong,ease-out);border-radius:9999px;align-items:center;gap:6px;padding:0 12px;font-size:12px;font-weight:550;display:inline-flex}.AuthFilesToolbar-module__displayButton___v26R8:active{transform:scale(.96)}.AuthFilesToolbar-module__displayButton___v26R8:focus-visible{outline:2px solid var(--primary-color);outline-offset:1px}@media (hover:hover) and (pointer:fine){.AuthFilesToolbar-module__displayButton___v26R8:hover{color:var(--text-primary);border-color:var(--border-hover)}}.AuthFilesToolbar-module__displayButtonActive___hkNkR{color:var(--text-primary);border-color:var(--border-hover);background:var(--bg-primary)}.AuthFilesToolbar-module__popover___64-5U{z-index:1000;border:1px solid var(--border-color);background:var(--floating-surface);min-width:216px;box-shadow:var(--floating-shadow);transform-origin:100% 0;animation:AuthFilesToolbar-module__toolbar-popover-in___oVLK9 var(--dur-hover,.2s) var(--ease-out-strong,ease-out) both;border-radius:12px;flex-direction:column;gap:10px;padding:12px 14px;display:flex;position:absolute;top:calc(100% + 6px);right:0}@keyframes AuthFilesToolbar-module__toolbar-popover-in___oVLK9{0%{opacity:0;transform:scale(.95)}}.AuthFilesToolbar-module__popoverRow___hYSuJ{color:var(--text-secondary);justify-content:space-between;align-items:center;gap:12px;font-size:12.5px;display:flex}.AuthFilesToolbar-module__pageSizeInput___A1-5i{border:1px solid var(--border-color);background:var(--bg-secondary);width:64px;height:30px;color:var(--text-primary);font-variant-numeric:tabular-nums;text-align:right;border-radius:8px;padding:0 8px;font-family:ui-monospace,SF Mono,Cascadia Mono,JetBrains Mono,Fira Code,Menlo,Consolas,Liberation Mono,monospace;font-size:12.5px}.AuthFilesToolbar-module__pageSizeInput___A1-5i:focus{border-color:var(--primary-color);box-shadow:0 0 0 3px var(--primary-10);outline:none}.AuthFilesToolbar-module__deleteAction___2-7Wv{cursor:pointer;height:32px;color:var(--danger-color);white-space:nowrap;transition:background-color var(--dur-hover,.2s) var(--ease-out-strong,ease-out), border-color var(--dur-hover,.2s) var(--ease-out-strong,ease-out), transform var(--dur-press,.16s) var(--ease-out-strong,ease-out);background:0 0;border:1px solid #0000;border-radius:9999px;align-items:center;gap:6px;margin-left:auto;padding:0 12px;font-size:12px;font-weight:550;display:inline-flex}.AuthFilesToolbar-module__deleteAction___2-7Wv:disabled{cursor:not-allowed;opacity:.5}.AuthFilesToolbar-module__deleteAction___2-7Wv:active:not(:disabled){transform:scale(.96)}.AuthFilesToolbar-module__deleteAction___2-7Wv:focus-visible{outline:2px solid var(--danger-color);outline-offset:1px}@media (hover:hover) and (pointer:fine){.AuthFilesToolbar-module__deleteAction___2-7Wv:hover:not(:disabled){background:var(--destructive-10);border-color:var(--destructive-30)}}@media (max-width:900px){.AuthFilesToolbar-module__search___2q5J4{flex-basis:100%;max-width:none}.AuthFilesToolbar-module__deleteAction___2-7Wv{margin-left:0}}@media (max-width:768px){.AuthFilesToolbar-module__segmented___OI8vp{scrollbar-width:none;max-width:100%;overflow-x:auto}.AuthFilesToolbar-module__segmented___OI8vp::-webkit-scrollbar{display:none}}@media (prefers-reduced-motion:reduce){.AuthFilesToolbar-module__segment___wRkEj,.AuthFilesToolbar-module__displayButton___v26R8,.AuthFilesToolbar-module__deleteAction___2-7Wv{transition:none}.AuthFilesToolbar-module__segment___wRkEj:active,.AuthFilesToolbar-module__displayButton___v26R8:active,.AuthFilesToolbar-module__deleteAction___2-7Wv:active:not(:disabled){transform:none}.AuthFilesToolbar-module__popover___64-5U{animation:none}}.BatchActionBar-module__container___oXLfi{bottom:calc(12px + env(safe-area-inset-bottom,0px));left:var(--content-center-x,50%);z-index:1000;pointer-events:none;width:min(960px,100vw - 24px);position:fixed;transform:translate(-50%)}.BatchActionBar-module__bar___cs-m2{pointer-events:auto;--glass-blur:14px;border:1px solid var(--glass-border);background:var(--glass-bg);-webkit-backdrop-filter:var(--glass-backdrop-filter);backdrop-filter:var(--glass-backdrop-filter);box-shadow:var(--shadow-lg);border-radius:16px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 16px;padding:10px 14px;display:flex}.BatchActionBar-module__left___EoCU-,.BatchActionBar-module__right___g4L9L{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.BatchActionBar-module__count___38ZzY{font-variant-numeric:tabular-nums;color:var(--text-primary);white-space:nowrap;padding-right:4px;font-family:ui-monospace,SF Mono,Cascadia Mono,JetBrains Mono,Fira Code,Menlo,Consolas,Liberation Mono,monospace;font-size:12px;font-weight:650}.BatchActionBar-module__bar___cs-m2 .btn{transition:transform var(--dur-press,.16s) var(--ease-out-strong,ease-out), background-color .15s ease, border-color .15s ease, color .15s ease}.BatchActionBar-module__bar___cs-m2 .btn:active:not(:disabled){transform:scale(.96)}@media (max-width:768px){.BatchActionBar-module__container___oXLfi{width:calc(100vw - 16px)}.BatchActionBar-module__bar___cs-m2{flex-direction:column;align-items:stretch}.BatchActionBar-module__left___EoCU-,.BatchActionBar-module__right___g4L9L{justify-content:center}}@media (prefers-reduced-motion:reduce){.BatchActionBar-module__bar___cs-m2 .btn{transition:none}.BatchActionBar-module__bar___cs-m2 .btn:active:not(:disabled){transform:none}}.OAuthConfigPanels-module__panel___lTVNC{border:1px solid var(--border-color);background:color-mix(in srgb, var(--bg-primary) 82%, transparent);border-radius:16px;flex-direction:column;gap:14px;padding:clamp(16px,2vw,20px);display:flex}.OAuthConfigPanels-module__panelHead___QcS1O{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;display:flex}.OAuthConfigPanels-module__panelTitle___8OaGJ{letter-spacing:-.01em;color:var(--text-primary);margin:0;font-size:15px;font-weight:650}.OAuthConfigPanels-module__panelExtra___r-RbC{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.OAuthConfigPanels-module__panelBody___nUIRf{flex-direction:column;gap:8px;min-width:0;display:flex}.OAuthConfigPanels-module__viewModeSwitch___q-BNt{border:1px solid var(--border-color);background:var(--bg-secondary);border-radius:8px;align-items:center;gap:2px;padding:2px;display:inline-flex}.OAuthConfigPanels-module__list___yNnv7{flex-direction:column;gap:6px;display:flex}.OAuthConfigPanels-module__item___r5I4p{border:1px solid color-mix(in srgb, var(--border-color) 70%, transparent);background:color-mix(in srgb, var(--bg-secondary) 45%, transparent);border-radius:10px;justify-content:space-between;align-items:center;gap:10px;padding:9px 12px;transition:background-color .15s,border-color .15s;display:flex}@media (hover:hover) and (pointer:fine){.OAuthConfigPanels-module__item___r5I4p:hover{border-color:var(--border-hover);background:color-mix(in srgb, var(--bg-secondary) 80%, transparent)}}.OAuthConfigPanels-module__itemInfo___RPe-i{flex-direction:column;gap:2px;min-width:0;display:flex}.OAuthConfigPanels-module__itemProvider___K0Crk{color:var(--text-primary);text-overflow:ellipsis;white-space:nowrap;font-family:ui-monospace,SF Mono,Cascadia Mono,JetBrains Mono,Fira Code,Menlo,Consolas,Liberation Mono,monospace;font-size:12.5px;font-weight:650;overflow:hidden}.OAuthConfigPanels-module__itemCount___62JzB{color:var(--text-tertiary);font-size:11.5px}.OAuthConfigPanels-module__itemActions___DgULF{flex-shrink:0;align-items:center;gap:6px;display:flex}.OAuthConfigPanels-module__aliasChartSection___tVJBR{flex-direction:column;gap:8px;min-width:0;display:flex}.OAuthConfigPanels-module__aliasChartHeader___Fwa9W{justify-content:space-between;align-items:center;gap:8px;display:flex}.OAuthConfigPanels-module__aliasChartTitle___Iwot1{letter-spacing:.1em;text-transform:uppercase;color:var(--text-tertiary);margin:0;font-family:ui-monospace,SF Mono,Cascadia Mono,JetBrains Mono,Fira Code,Menlo,Consolas,Liberation Mono,monospace;font-size:10.5px;font-weight:700}.OAuthConfigPanels-module__aliasChart___43R2f{min-width:0}.OAuthConfigPanels-module__panel___lTVNC .btn{transition:transform var(--dur-press,.16s) var(--ease-out-strong,ease-out), background-color .15s ease, border-color .15s ease, color .15s ease}.OAuthConfigPanels-module__panel___lTVNC .btn:active:not(:disabled){transform:scale(.96)}@media (prefers-reduced-motion:reduce){.OAuthConfigPanels-module__panel___lTVNC .btn{transition:none}.OAuthConfigPanels-module__panel___lTVNC .btn:active:not(:disabled){transform:none}}.ModelMappingDiagram-module__scrollContainer___CVtMl{overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch;width:100%;overflow-x:auto}.ModelMappingDiagram-module__tapHint___WVg9j{z-index:3;color:var(--text-secondary);margin-bottom:8px;padding:0 4px;font-size:12px;position:sticky;left:0}.ModelMappingDiagram-module__container___5GMeJ{-webkit-user-select:none;user-select:none;justify-content:space-between;min-width:100%;min-height:300px;padding:20px 0;display:inline-flex;position:relative}@media (max-width:768px){.ModelMappingDiagram-module__container___5GMeJ{min-width:max(100%,960px);padding:12px 0}}.ModelMappingDiagram-module__connections___-pgzq{pointer-events:none;z-index:1;width:100%;height:100%;position:absolute;top:0;left:0;overflow:visible}.ModelMappingDiagram-module__connections___-pgzq path{fill:none;stroke-width:2px}.ModelMappingDiagram-module__column___Guf-v{z-index:2;flex-direction:column;flex:none;gap:12px;display:flex}.ModelMappingDiagram-module__column___Guf-v.ModelMappingDiagram-module__providers___n0NN6{align-items:flex-end;min-width:140px}.ModelMappingDiagram-module__column___Guf-v.ModelMappingDiagram-module__sources___N646E,.ModelMappingDiagram-module__column___Guf-v.ModelMappingDiagram-module__aliases___zg5ma{align-items:flex-start;min-width:200px}.ModelMappingDiagram-module__columnHeader___QAC6y{color:var(--text-secondary);text-transform:uppercase;margin-bottom:8px;padding:0 4px;font-size:13px;font-weight:600}.ModelMappingDiagram-module__item___KBTKp{background:var(--bg-primary);border:1px solid var(--border-color);color:var(--text-primary);border-radius:8px;justify-content:space-between;align-items:center;width:100%;max-width:280px;padding:10px 14px;font-size:13px;transition:all .2s;display:flex;position:relative;box-shadow:0 1px 2px #0000000d}.ModelMappingDiagram-module__item___KBTKp:hover{border-color:var(--primary-color);z-index:10;transform:translateY(-1px);box-shadow:0 4px 6px #0000000d}.ModelMappingDiagram-module__item___KBTKp.ModelMappingDiagram-module__dropTarget___dAYPB{background-color:var(--bg-secondary);border-color:var(--primary-color);border-width:2px}.ModelMappingDiagram-module__item___KBTKp.ModelMappingDiagram-module__selected___r3Gyz{border-color:var(--primary-color);background-color:var(--bg-secondary);box-shadow:0 0 0 2px #8b86802e}.ModelMappingDiagram-module__providerItem___4PZQM{border-left:3px solid #0000;align-items:center;gap:8px;padding-left:8px;display:flex}.ModelMappingDiagram-module__providerItem___4PZQM .ModelMappingDiagram-module__providerLabel___E2vNu{text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:13px;font-weight:600;overflow:hidden}.ModelMappingDiagram-module__providerItem___4PZQM .ModelMappingDiagram-module__collapseBtn___RXanB{background:var(--bg-secondary);cursor:pointer;width:24px;height:24px;color:var(--text-secondary);border:none;border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;transition:background-color .15s,color .15s;display:flex}.ModelMappingDiagram-module__providerItem___4PZQM .ModelMappingDiagram-module__collapseBtn___RXanB:hover{background:var(--border-color);color:var(--text-primary)}.ModelMappingDiagram-module__providerItem___4PZQM .ModelMappingDiagram-module__chevronDown___AP7zK,.ModelMappingDiagram-module__providerItem___4PZQM .ModelMappingDiagram-module__chevronRight___bbMVy{border-style:solid;width:0;height:0;display:inline-block}.ModelMappingDiagram-module__providerItem___4PZQM .ModelMappingDiagram-module__chevronDown___AP7zK{border-width:5px 4px 0;border-color:currentColor #0000 #0000}.ModelMappingDiagram-module__providerItem___4PZQM .ModelMappingDiagram-module__chevronRight___bbMVy{border-width:4px 0 4px 5px;border-color:#0000 #0000 #0000 currentColor}.ModelMappingDiagram-module__providerGroup___5JNQu{justify-content:flex-end;align-items:center;width:100%;display:flex}.ModelMappingDiagram-module__sourceItem___TjDG6,.ModelMappingDiagram-module__aliasItem___h6w7D{cursor:grab}.ModelMappingDiagram-module__sourceItem___TjDG6:active,.ModelMappingDiagram-module__aliasItem___h6w7D:active{cursor:grabbing}.ModelMappingDiagram-module__sourceItem___TjDG6.ModelMappingDiagram-module__dragging___lhx9y,.ModelMappingDiagram-module__aliasItem___h6w7D.ModelMappingDiagram-module__dragging___lhx9y{opacity:.5;border-style:dashed}.ModelMappingDiagram-module__dot___AOWIN{border-radius:50%;flex-shrink:0;width:6px;height:6px;margin-top:-3px;position:absolute;top:50%}.ModelMappingDiagram-module__dot___AOWIN.ModelMappingDiagram-module__dotLeft___BKXAm{background:var(--text-tertiary);left:-3px}.ModelMappingDiagram-module__sourceItem___TjDG6 .ModelMappingDiagram-module__dot___AOWIN{right:-3px}.ModelMappingDiagram-module__providerBadge___cRzux{background:var(--bg-secondary);color:var(--text-secondary);border-radius:4px;margin-right:8px;padding:2px 6px;font-size:11px;font-weight:500}.ModelMappingDiagram-module__itemName___MjfSv{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.ModelMappingDiagram-module__itemCount___B-gtl{color:var(--text-tertiary);background:var(--bg-secondary);border-radius:10px;margin-left:8px;padding:1px 6px;font-size:11px}.ModelMappingDiagram-module__contextMenu___VHX-s{background:var(--bg-primary);border:1px solid var(--border-color);z-index:9999;border-radius:6px;min-width:120px;padding:4px 0;position:fixed;overflow:hidden;box-shadow:0 4px 12px #00000026}.ModelMappingDiagram-module__contextMenu___VHX-s .ModelMappingDiagram-module__menuItem___e-LvI{color:var(--text-primary);cursor:pointer;align-items:center;gap:8px;padding:8px 12px;font-size:13px;transition:background-color .1s;display:flex}.ModelMappingDiagram-module__contextMenu___VHX-s .ModelMappingDiagram-module__menuItem___e-LvI:hover{background-color:var(--bg-secondary)}.ModelMappingDiagram-module__contextMenu___VHX-s .ModelMappingDiagram-module__menuItem___e-LvI.ModelMappingDiagram-module__danger___klXxM{color:var(--error-color)}.ModelMappingDiagram-module__contextMenu___VHX-s .ModelMappingDiagram-module__menuItem___e-LvI.ModelMappingDiagram-module__danger___klXxM:hover{background-color:var(--bg-error-light)}.ModelMappingDiagram-module__contextMenu___VHX-s .ModelMappingDiagram-module__menuDivider___XtoCo{background:var(--border-color);cursor:default;pointer-events:none;height:1px;margin:4px 0;padding:0}.ModelMappingDiagram-module__settingsEmpty___N0gFF{color:var(--text-tertiary);text-align:center;padding:24px 0;font-size:13px}.ModelMappingDiagram-module__settingsList___ovuWo{flex-direction:column;gap:8px;display:flex}.ModelMappingDiagram-module__settingsRow___wH-TW{border:1px solid var(--border-color);background:var(--bg-secondary);border-radius:8px;grid-template-columns:minmax(200px,1fr) auto;align-items:center;gap:16px;padding:8px 16px;display:grid}@media (max-width:768px){.ModelMappingDiagram-module__settingsRow___wH-TW{grid-template-columns:1fr;align-items:flex-start}}.ModelMappingDiagram-module__settingsNames___QDn9j{color:var(--text-primary);align-items:center;gap:4px;min-width:0;font-size:13px;display:flex}.ModelMappingDiagram-module__settingsSource___Hz9zo,.ModelMappingDiagram-module__settingsAlias___Ov9zt{white-space:nowrap;text-overflow:ellipsis;max-width:220px;overflow:hidden}.ModelMappingDiagram-module__settingsArrow___SKvFd{color:var(--text-tertiary)}.ModelMappingDiagram-module__settingsActions___PYXMU{align-items:center;gap:8px;display:flex}.ModelMappingDiagram-module__settingsLabel___R--i-{color:var(--text-secondary);font-size:12px}.ModelMappingDiagram-module__settingsDelete___PDG7z{color:var(--error-color);cursor:pointer;background:0 0;border:0;border-radius:6px;padding:6px}.ModelMappingDiagram-module__settingsDelete___PDG7z:hover{background:var(--bg-error-light)}.ProviderTabs-module__tabs___n-cuP{border-bottom:1px solid var(--border-color);scrollbar-width:none;align-items:stretch;gap:2px;min-width:0;max-width:100%;display:flex;overflow-x:auto}.ProviderTabs-module__tabs___n-cuP::-webkit-scrollbar{display:none}.ProviderTabs-module__tab___H3sif{cursor:pointer;color:var(--text-secondary);white-space:nowrap;transition:color var(--dur-hover,.2s) var(--ease-out-strong,ease-out), background-color var(--dur-hover,.2s) var(--ease-out-strong,ease-out);background:0 0;border:0;border-radius:8px 8px 0 0;flex-shrink:0;align-items:center;gap:7px;padding:8px 12px 11px;font-size:13px;font-weight:550;display:inline-flex;position:relative}.ProviderTabs-module__tab___H3sif:after{content:"";height:2px;transition:background-color var(--dur-hover,.2s) var(--ease-out-strong,ease-out);background:0 0;border-radius:9999px;position:absolute;bottom:-1px;left:10px;right:10px}.ProviderTabs-module__tab___H3sif:active{transform:translateY(.5px)}.ProviderTabs-module__tab___H3sif:focus-visible{outline:2px solid var(--primary-color);outline-offset:-2px}@media (hover:hover) and (pointer:fine){.ProviderTabs-module__tab___H3sif:hover{color:var(--text-primary);background:color-mix(in srgb, var(--bg-tertiary) 55%, transparent)}}.ProviderTabs-module__tabActive___g2pr3{color:var(--text-primary);font-weight:650}.ProviderTabs-module__tabActive___g2pr3:after{background:var(--text-primary)}.ProviderTabs-module__tabGlyph___fRPPT{color:var(--text-tertiary);flex-shrink:0}.ProviderTabs-module__tabActive___g2pr3 .ProviderTabs-module__tabGlyph___fRPPT{color:var(--text-primary)}.ProviderTabs-module__tabIconWrap___ZotRT{border-radius:5px;flex-shrink:0;justify-content:center;align-items:center;width:18px;height:18px;display:flex}.ProviderTabs-module__tabIcon___V2PI4{object-fit:contain;width:15px;height:15px;display:block}.ProviderTabs-module__tabIconFallback___SwMK5{color:var(--text-secondary);font-size:10px;font-weight:700}.ProviderTabs-module__tabLabel___dEpsW{line-height:1.4}.ProviderTabs-module__tabCount___wgH75{font-variant-numeric:tabular-nums;color:var(--text-tertiary);background:color-mix(in srgb, var(--text-primary) 6%, transparent);border-radius:9999px;padding:0 6px;font-family:ui-monospace,SF Mono,Cascadia Mono,JetBrains Mono,Fira Code,Menlo,Consolas,Liberation Mono,monospace;font-size:10.5px;font-weight:650;line-height:1.6}.ProviderTabs-module__tabActive___g2pr3 .ProviderTabs-module__tabCount___wgH75{color:var(--text-primary);background:color-mix(in srgb, var(--text-primary) 10%, transparent)}@media (prefers-reduced-motion:reduce){.ProviderTabs-module__tab___H3sif,.ProviderTabs-module__tab___H3sif:after{transition:none}.ProviderTabs-module__tab___H3sif:active{transform:none}}.VaultHeader-module__header___QpXg-{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px 24px;display:flex}.VaultHeader-module__copy___xsxh7{flex-direction:column;gap:7px;min-width:0;display:flex}.VaultHeader-module__title___taELk{letter-spacing:-.02em;color:var(--text-primary);margin:0;font-size:clamp(26px,3.2vw,30px);font-weight:700;line-height:1.15}.VaultHeader-module__meta___itSa2{font-variant-numeric:tabular-nums;letter-spacing:.02em;color:var(--text-secondary);flex-wrap:wrap;align-items:baseline;gap:4px 8px;margin:0;font-family:ui-monospace,SF Mono,Cascadia Mono,JetBrains Mono,Fira Code,Menlo,Consolas,Liberation Mono,monospace;font-size:13px;font-weight:500;display:flex}.VaultHeader-module__meta___itSa2:before{content:"▍";color:var(--viz-success);align-self:center;margin-right:1px;font-size:13px;line-height:1}.VaultHeader-module__metaDot___GW2IC{color:var(--text-quaternary);-webkit-user-select:none;user-select:none}.VaultHeader-module__metaTotal___KJQaA{color:var(--text-secondary)}.VaultHeader-module__metaActive___NlBGq{color:var(--viz-success)}.VaultHeader-module__metaMuted___VH7nG{color:var(--text-tertiary)}.VaultHeader-module__metaProblem___wopsT{color:var(--viz-failure)}.VaultHeader-module__actions___2FRo9{flex-shrink:0;align-items:center;gap:6px;display:flex}.VaultHeader-module__primaryAction___xVhcB{cursor:pointer;background:var(--text-primary);color:var(--bg-secondary);transition:transform var(--dur-press,.16s) var(--ease-out-strong,ease-out), background-color var(--dur-hover,.2s) var(--ease-out-strong,ease-out), box-shadow var(--dur-hover,.2s) var(--ease-out-strong,ease-out);border:0;border-radius:9999px;align-items:center;gap:7px;padding:10px 18px;font-size:13.5px;font-weight:600;line-height:1;display:inline-flex}.VaultHeader-module__primaryAction___xVhcB:disabled{cursor:not-allowed;opacity:.55}.VaultHeader-module__primaryAction___xVhcB:active:not(:disabled){transform:translateY(0)scale(.97)}.VaultHeader-module__primaryAction___xVhcB:focus-visible{outline:2px solid var(--primary-color);outline-offset:2px}@media (hover:hover) and (pointer:fine){.VaultHeader-module__primaryAction___xVhcB:hover:not(:disabled){background:color-mix(in srgb, var(--text-primary) 86%, var(--bg-secondary));box-shadow:0 12px 26px color-mix(in srgb, var(--text-primary) 22%, transparent);transform:translateY(-1px)}}.VaultHeader-module__ghostAction___JFOFe{cursor:pointer;color:var(--text-secondary);transition:color var(--dur-hover,.2s) var(--ease-out-strong,ease-out), transform var(--dur-press,.16s) var(--ease-out-strong,ease-out);background:0 0;border:0;border-radius:9999px;align-items:center;gap:6px;padding:10px 14px;font-size:13px;font-weight:550;line-height:1;display:inline-flex}.VaultHeader-module__ghostAction___JFOFe:disabled{cursor:not-allowed;opacity:.55}.VaultHeader-module__ghostAction___JFOFe:active:not(:disabled){transform:scale(.97)}.VaultHeader-module__ghostAction___JFOFe:focus-visible{outline:2px solid var(--primary-color);outline-offset:2px}@media (hover:hover) and (pointer:fine){.VaultHeader-module__ghostAction___JFOFe:hover:not(:disabled){color:var(--text-primary)}}.VaultHeader-module__spinning___kQLgi{animation:.8s linear infinite VaultHeader-module__vault-spin___2UExm}@keyframes VaultHeader-module__vault-spin___2UExm{to{transform:rotate(360deg)}}@media (max-width:768px){.VaultHeader-module__header___QpXg-{flex-direction:column;align-items:stretch}.VaultHeader-module__actions___2FRo9{justify-content:flex-start}}@media (prefers-reduced-motion:reduce){.VaultHeader-module__primaryAction___xVhcB,.VaultHeader-module__ghostAction___JFOFe{transition:none}.VaultHeader-module__primaryAction___xVhcB:active:not(:disabled),.VaultHeader-module__ghostAction___JFOFe:active:not(:disabled){transform:none}.VaultHeader-module__spinning___kQLgi{animation:none}}.VaultPulse-module__pulse___sIxw6{pointer-events:none;-webkit-user-select:none;user-select:none;align-items:flex-end;gap:10px;height:34px;display:flex}.VaultPulse-module__bars___gD2H-{border-bottom:1px solid color-mix(in srgb, var(--border-color) 85%, transparent);flex:1;align-items:flex-end;gap:3px;min-width:0;height:100%;padding-bottom:3px;display:flex;-webkit-mask-image:linear-gradient(90deg,#0000,#000 2% 98%,#0000);mask-image:linear-gradient(90deg,#0000,#000 2% 98%,#0000)}.VaultPulse-module__bar___c828U{transform-origin:bottom;min-width:2px;max-width:14px;animation:VaultPulse-module__pulse-bar-in___-8e-h .45s var(--ease-out-strong,ease-out) both;animation-delay:calc(.35s + var(--bar-delay,0s));border-radius:2px 2px 1px 1px;flex:1 1 0}@keyframes VaultPulse-module__pulse-bar-in___-8e-h{0%{transform:scaleY(0)}}.VaultPulse-module__barLive___x0GKQ{background:var(--viz-success);height:100%}.VaultPulse-module__barIdle___jGSJ8{background:color-mix(in srgb, var(--text-quaternary) 55%, transparent);height:42%}.VaultPulse-module__barWarning___wGFd7{background:var(--amber-color);height:72%}.VaultPulse-module__barProblem___N0qGr{background:var(--viz-failure);height:58%}.VaultPulse-module__barDisabled___k2lFu{opacity:.32;height:30%}.VaultPulse-module__overflow___Y7HPQ{font-variant-numeric:tabular-nums;color:var(--text-tertiary);flex-shrink:0;padding-bottom:1px;font-family:ui-monospace,SF Mono,Cascadia Mono,JetBrains Mono,Fira Code,Menlo,Consolas,Liberation Mono,monospace;font-size:11px;font-weight:650;line-height:1}.VaultPulse-module__idleLine___Gs7Ll{border-bottom:2px dashed var(--text-quaternary);opacity:.6;flex:1;height:0;margin-bottom:6px}@media (prefers-reduced-motion:reduce){.VaultPulse-module__bar___c828U{animation:none}}.AuthFilesPage-module__page___JPd3G{width:100%;min-width:0;padding-bottom:calc(var(--auth-files-action-bar-height,0px) + 16px + env(safe-area-inset-bottom,0px));flex-direction:column;gap:20px;display:flex}.AuthFilesPage-module__workbench___6lAP6{flex-direction:column;gap:14px;min-width:0;display:flex}.AuthFilesPage-module__errorBanner___03gC7{color:var(--danger-color);background:var(--bg-error-light);border:1px solid var(--warning-border);overflow-wrap:anywhere;border-radius:10px;padding:9px 12px;font-size:12.5px;line-height:1.5}.AuthFilesPage-module__grid___aXe04{grid-template-columns:repeat(auto-fill,minmax(min(100%,340px),1fr));align-items:stretch;gap:16px;display:grid}.AuthFilesPage-module__gridCompact___jvWkO{grid-template-columns:repeat(auto-fill,minmax(min(100%,260px),1fr))}.AuthFilesPage-module__gridQuota___jeDKQ{grid-template-columns:repeat(auto-fill,minmax(min(100%,340px),1fr))}.AuthFilesPage-module__emptyActions___9Gal6{flex-wrap:wrap;justify-content:center;align-items:center;gap:8px;display:flex}.AuthFilesPage-module__pagination___GnfXF{flex-wrap:wrap;justify-content:center;align-items:center;gap:14px;display:flex}.AuthFilesPage-module__pageInfo___YpJQV{font-variant-numeric:tabular-nums;letter-spacing:.02em;color:var(--text-tertiary);white-space:nowrap;font-family:ui-monospace,SF Mono,Cascadia Mono,JetBrains Mono,Fira Code,Menlo,Consolas,Liberation Mono,monospace;font-size:12px}.AuthFilesPage-module__configGrid___KGRYV{grid-template-columns:minmax(0,1fr);gap:16px;display:grid}@media (min-width:1024px){.AuthFilesPage-module__configGrid___KGRYV{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:768px){.AuthFilesPage-module__page___JPd3G{gap:16px}}.OAuthEditor-module__pageContent___KhyTE{width:100%;max-width:1080px;margin:0 auto;padding:4px 24px 48px}@media (max-width:768px){.OAuthEditor-module__pageContent___KhyTE{padding:0 16px 32px}.OAuthEditor-module__topBar___O54Zv{grid-template-columns:auto minmax(0,1fr) auto;gap:8px}.OAuthEditor-module__topBar___O54Zv button{white-space:nowrap}}.OAuthEditor-module__intro___pkLWH{align-items:flex-start;gap:16px;padding:4px 0;display:flex}.OAuthEditor-module__introIcon___zSWDt{border:1px solid var(--border-color);background:var(--bg-primary);width:44px;height:44px;color:var(--text-secondary);border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.OAuthEditor-module__introTitle___JJfIk{letter-spacing:-.5px;color:var(--text-primary);margin:0 0 6px;font-size:22px;font-weight:650;line-height:1.3}.OAuthEditor-module__description___JNHXt{color:var(--text-secondary);overflow-wrap:anywhere;margin:0;font-size:13px;line-height:1.65}.OAuthEditor-module__settingsCard___oD0oO{min-width:0;box-shadow:none;padding:0;overflow:visible}.OAuthEditor-module__providerSection___sKS6n,.OAuthEditor-module__editorBody___lfyRP{padding:24px}@media (max-width:768px){.OAuthEditor-module__providerSection___sKS6n,.OAuthEditor-module__editorBody___lfyRP{padding:16px}}.OAuthEditor-module__providerSection___sKS6n{flex-direction:column;gap:24px;display:flex}.OAuthEditor-module__providerRow___e8WbX{justify-content:space-between;align-items:center;gap:24px;display:flex}@media (max-width:768px){.OAuthEditor-module__providerRow___e8WbX{flex-direction:column;align-items:stretch;gap:16px}}.OAuthEditor-module__sectionHeading___62u8j{align-items:flex-start;gap:8px;min-width:0;display:flex}.OAuthEditor-module__stepNumber___n5Jb1{border:1px solid var(--border-color);width:28px;height:28px;color:var(--text-tertiary);font-variant-numeric:tabular-nums;border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;font-family:ui-monospace,SF Mono,Cascadia Mono,JetBrains Mono,Fira Code,Menlo,Consolas,Liberation Mono,monospace;font-size:11px;display:inline-flex}.OAuthEditor-module__headingCopy___P027H{min-width:0}.OAuthEditor-module__sectionTitle___ZaRnA{color:var(--text-primary);margin:2px 0 4px;font-size:15px;font-weight:650;line-height:1.5;display:block}.OAuthEditor-module__providerControl___XKz9X{flex:0 0 280px;min-width:0;margin-bottom:0}@media (max-width:768px){.OAuthEditor-module__providerControl___XKz9X{flex-basis:auto}}.OAuthEditor-module__providerOptions___M9iXe{flex-wrap:wrap;gap:8px;display:flex}.OAuthEditor-module__providerOption___X-VEa{border:1px solid var(--border-color);background:var(--bg-secondary);max-width:100%;min-height:38px;color:var(--text-secondary);cursor:pointer;border-radius:8px;align-items:center;gap:8px;padding:7px 10px;font-size:13px;font-weight:500;transition:border-color .16s,background-color .16s,color .16s;display:inline-flex}.OAuthEditor-module__providerOption___X-VEa img{object-fit:contain;width:18px;height:18px}.OAuthEditor-module__providerOption___X-VEa img,.OAuthEditor-module__providerOption___X-VEa svg{flex-shrink:0}.OAuthEditor-module__providerOption___X-VEa span{overflow-wrap:anywhere;min-width:0}.OAuthEditor-module__providerOption___X-VEa:focus-visible{outline:2px solid var(--primary-color);outline-offset:3px}.OAuthEditor-module__providerOption___X-VEa:disabled{opacity:.55;cursor:not-allowed}@media (hover:hover) and (pointer:fine){.OAuthEditor-module__providerOption___X-VEa:hover:not(:disabled){border-color:var(--primary-color);background:var(--bg-tertiary);color:var(--text-primary)}}.OAuthEditor-module__providerCheck___wsZTa{visibility:hidden}.OAuthEditor-module__providerOptionActive___EDVCH{border-color:var(--primary-color);background:var(--primary-10);color:var(--text-primary)}.OAuthEditor-module__providerOptionActive___EDVCH .OAuthEditor-module__providerCheck___wsZTa{visibility:visible}.OAuthEditor-module__editorHeader___NQeT0{border-bottom:1px solid var(--border-color);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;padding:24px;display:flex}@media (max-width:768px){.OAuthEditor-module__editorHeader___NQeT0{padding:16px}}.OAuthEditor-module__countBadge___kFyI-{background:var(--bg-tertiary);color:var(--text-secondary);font-variant-numeric:tabular-nums;border-radius:9999px;flex-shrink:0;padding:4px 9px;font-size:12px}.OAuthEditor-module__emptyModels___r23-E{border:1px dashed var(--border-color);color:var(--text-tertiary);text-align:center;border-radius:8px;flex-direction:column;justify-content:center;align-items:center;gap:8px;margin:0;padding:48px 16px;font-size:13px;display:flex}.OAuthEditor-module__catalogHint___7WhaP{border-bottom:1px solid var(--border-color);background:var(--bg-secondary);align-items:flex-start;gap:8px;padding:16px 24px;display:flex}.OAuthEditor-module__catalogHint___7WhaP svg{color:var(--text-tertiary);flex-shrink:0;margin-top:3px}@media (max-width:768px){.OAuthEditor-module__catalogHint___7WhaP{padding:16px}}.OAuthEditor-module__mappingsBody___xAAeQ{flex-direction:column;gap:8px;padding:16px;display:flex}.OAuthEditor-module__mappingRow___rA-nC{border:1px solid var(--border-color);background:var(--bg-secondary);border-radius:8px;grid-template-columns:24px minmax(0,1fr) auto;align-items:center;gap:16px;padding:16px;display:grid}@media (max-width:768px){.OAuthEditor-module__mappingRow___rA-nC{grid-template-columns:20px minmax(0,1fr);gap:8px}}.OAuthEditor-module__mappingNumber___-ubV5{color:var(--text-tertiary);font-variant-numeric:tabular-nums;font-family:ui-monospace,SF Mono,Cascadia Mono,JetBrains Mono,Fira Code,Menlo,Consolas,Liberation Mono,monospace;font-size:11px}.OAuthEditor-module__mappingFields___g-veK{grid-template-columns:minmax(0,1fr) 20px minmax(0,1fr);align-items:end;gap:8px;min-width:0;display:grid}@media (max-width:540px){.OAuthEditor-module__mappingFields___g-veK{grid-template-columns:minmax(0,1fr)}}.OAuthEditor-module__modelField___357K0{flex-direction:column;gap:0;min-width:0;margin-bottom:0;display:flex}.OAuthEditor-module__modelField___357K0 label{color:var(--text-secondary);margin-bottom:6px;font-size:12px;font-weight:500;display:block}.OAuthEditor-module__modelInput___DF4Cc{width:100%;min-width:0;font-family:ui-monospace,SF Mono,Cascadia Mono,JetBrains Mono,Fira Code,Menlo,Consolas,Liberation Mono,monospace;font-size:13px}.OAuthEditor-module__mappingSeparator___APbcu{height:38px;color:var(--text-tertiary);justify-content:center;align-items:center;display:flex}@media (max-width:540px){.OAuthEditor-module__mappingSeparator___APbcu{display:none}}.OAuthEditor-module__mappingFooter___QeH-o{align-self:end;align-items:center;gap:8px;min-height:38px;display:flex}@media (max-width:768px){.OAuthEditor-module__mappingFooter___QeH-o{border-top:1px solid var(--border-color);grid-column:2;justify-content:space-between;padding-top:4px}}.OAuthEditor-module__removeMapping___zXsnB{width:34px;height:34px;color:var(--text-tertiary);flex-shrink:0;padding:0}@media (hover:hover) and (pointer:fine){.OAuthEditor-module__removeMapping___zXsnB:hover:not(:disabled){color:var(--error-color);background:var(--bg-error-light)}}@media (prefers-reduced-motion:reduce){.OAuthEditor-module__providerOption___X-VEa{transition:none}}.SecondaryScreenShell-module__container___9DAwq{flex-direction:column;gap:24px;min-height:0;display:flex}.SecondaryScreenShell-module__topBar___vHzq4{z-index:5;background:var(--bg-secondary);border-bottom:1px solid var(--border-color);grid-template-columns:1fr auto 1fr;align-items:center;gap:16px;min-height:44px;padding:8px 16px;display:grid;position:sticky;top:0}.SecondaryScreenShell-module__topBarTitle___Q8LCy{text-align:center;min-width:0;max-width:100%;color:var(--text-primary);text-overflow:ellipsis;white-space:nowrap;justify-self:center;font-size:16px;font-weight:650;overflow:hidden}.SecondaryScreenShell-module__backButton___d6Zgy{justify-self:start;gap:0;padding-left:6px;padding-right:10px}.SecondaryScreenShell-module__backButton___d6Zgy>span:last-child{align-items:center;gap:6px;display:inline-flex}.SecondaryScreenShell-module__backIcon___R8Iyn{justify-content:center;align-items:center;display:inline-flex}.SecondaryScreenShell-module__backIcon___R8Iyn svg{display:block}.SecondaryScreenShell-module__backText___CODk7{font-weight:600;line-height:18px}.SecondaryScreenShell-module__rightSlot___ZvWJR{justify-content:flex-end;justify-self:end;display:flex}.SecondaryScreenShell-module__loadingState___4Jbsa{color:var(--text-secondary);justify-content:center;align-items:center;gap:8px;padding:48px 0;display:flex}.SecondaryScreenShell-module__content___nVk3R{flex-direction:column;gap:24px;display:flex}.OAuthPage-module__container___LCCdH{width:100%}.OAuthPage-module__cardTitle___yFaP0{align-items:center;gap:8px;display:flex}.OAuthPage-module__cardTitleIcon___eAnql{flex:none;width:24px;height:24px}.OAuthPage-module__cardTitleIconFallback___FCoi8{width:24px;height:24px;color:var(--text-secondary);justify-content:center;align-items:center;display:inline-flex}.OAuthPage-module__pageTitle___BQQ2z{color:var(--text-primary);margin:0 0 32px;font-size:28px;font-weight:700}.OAuthPage-module__content___Phg9V{flex-direction:column;gap:32px;display:flex}.OAuthPage-module__providerSection___bIxOF{flex-direction:column;gap:16px;display:flex}.OAuthPage-module__providerList___lmT4T{flex-direction:column;gap:32px;display:flex}.OAuthPage-module__sectionTitle___8gdP9{color:var(--text-secondary);letter-spacing:.08em;margin:0;font-size:13px;font-weight:700}.OAuthPage-module__featuredCard___oKu32{background:radial-gradient(circle at 92% -35%, #1783ff3d, transparent 42%), linear-gradient(135deg, color-mix(in srgb, #1783ff 10%, var(--bg-primary)), var(--bg-primary) 64%);box-shadow:0 14px 32px -26px #1783fff2, var(--shadow);border-color:#000;position:relative;overflow:hidden}.OAuthPage-module__featuredCard___oKu32>*{z-index:1;position:relative}.OAuthPage-module__featuredCard___oKu32 .OAuthPage-module__cardTitle___yFaP0{gap:16px;font-size:21px}.OAuthPage-module__featuredCard___oKu32 .OAuthPage-module__cardTitleIcon___eAnql{box-sizing:content-box;background:#000;border-radius:11px;width:24px;height:24px;padding:7px}.OAuthPage-module__featuredCard___oKu32 .OAuthPage-module__featuredActions___FEuj7{flex-wrap:wrap;gap:8px;display:flex}.OAuthPage-module__featuredCard___oKu32 .btn-primary{background:#1783ff;border-color:#1783ff;box-shadow:0 8px 20px -12px #1783ffe6}.OAuthPage-module__featuredCard___oKu32 .btn-primary:hover{background:#0875ed;border-color:#0875ed}@media (max-width:768px){.OAuthPage-module__featuredCard___oKu32 .card-header>.btn{width:100%}}[data-theme=dark] .OAuthPage-module__featuredCard___oKu32 .OAuthPage-module__cardTitleIcon___eAnql{background:#fff}.OAuthPage-module__recommendedBadge___Qwsjm{min-height:24px;color:color-mix(in srgb, #1783ff 82%, var(--text-primary));letter-spacing:0;white-space:nowrap;background:#1783ff1c;border:1px solid #1783ff57;border-radius:9999px;align-items:center;padding:3px 9px;font-size:12px;font-weight:700;line-height:1;display:inline-flex}.OAuthPage-module__featuredHint___UZb9s{max-width:720px;color:var(--text-secondary);margin:0;font-size:15px;line-height:1.65}.OAuthPage-module__cardContent___1sXLA{flex-direction:column;gap:16px;display:flex}.OAuthPage-module__cardContent___1sXLA .form-group{margin-bottom:0}.OAuthPage-module__cardContent___1sXLA .status-badge{align-self:flex-start;margin-bottom:0}.OAuthPage-module__cardHint___ttOpd{color:var(--text-secondary);margin:0;font-size:13px;line-height:1.6}.OAuthPage-module__cardHintSecondary___tWM17{color:var(--text-tertiary);margin:0;font-size:12px;line-height:1.5}.OAuthPage-module__oauthSection___1olLq{flex-direction:column;gap:24px;display:flex}.OAuthPage-module__oauthGrid___wjAyh{grid-template-columns:repeat(auto-fit,minmax(400px,1fr));gap:24px;display:grid}@media (max-width:768px){.OAuthPage-module__oauthGrid___wjAyh{grid-template-columns:1fr}}.OAuthPage-module__oauthCard___CYTnC{flex-direction:column;gap:16px;display:flex}.OAuthPage-module__oauthStatus___h7bbL{border-radius:8px;padding:16px;font-size:14px}.OAuthPage-module__oauthStatus___h7bbL.OAuthPage-module__success___UHta0{color:#16a34a;background-color:#22c55e1a}.OAuthPage-module__oauthStatus___h7bbL.OAuthPage-module__error___057CD{color:#c65746;background-color:#c657461f}.OAuthPage-module__oauthStatus___h7bbL.OAuthPage-module__waiting___CbNSk{color:var(--primary-color);background-color:#8b86801f}.OAuthPage-module__callbackSection___8kA31{flex-direction:column;gap:8px;margin-top:0;display:flex}.OAuthPage-module__callbackActions___wtkMI{gap:16px;display:flex}.OAuthPage-module__authUrlBox___Iu1d4{background:var(--bg-secondary);border:1px dashed var(--border-color);border-radius:8px;flex-direction:column;gap:4px;padding:16px;display:flex}.OAuthPage-module__authUrlLabel___mYFJB{color:var(--text-secondary);font-size:14px}.OAuthPage-module__authUrlValue___axvUJ{color:var(--text-primary);word-break:break-all;overflow-wrap:anywhere;max-width:100%;font-weight:700;line-height:1.5}.OAuthPage-module__authUrlActions___venPj{flex-wrap:wrap;align-items:center;gap:8px;margin-top:8px;display:flex}.OAuthPage-module__successActions___wHpp9{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.OAuthPage-module__geminiProjectField___g456A .form-group{gap:8px;margin-top:0;margin-bottom:0}.OAuthPage-module__geminiProjectField___g456A .input:disabled{background-color:var(--bg-tertiary);border-color:var(--border-color);color:var(--text-tertiary);cursor:not-allowed}.OAuthPage-module__formItem___Bgt9S{flex-direction:column;gap:4px;display:flex}.OAuthPage-module__formItemLabel___QZFrG{color:var(--text-primary);margin:0;font-weight:600}.OAuthPage-module__filePicker___NmFjy{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.OAuthPage-module__fileName___9ZbQI{border:1px solid var(--border-color);background:var(--bg-primary);min-width:220px;color:var(--text-primary);border-radius:8px;flex:1;padding:10px 12px;font-size:14px}.OAuthPage-module__fileNamePlaceholder___WHjj4{color:var(--text-secondary)}.OAuthPage-module__connectionBox___Gwo4r{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:8px;flex-direction:column;gap:8px;padding:16px;display:flex}.OAuthPage-module__connectionLabel___cJMrf{color:var(--text-primary);margin:0;font-size:14px;font-weight:600}.OAuthPage-module__keyValueList___lEOY0{flex-direction:column;gap:6px;display:flex}.OAuthPage-module__keyValueItem___XOwWB{grid-template-columns:140px 1fr;align-items:start;gap:10px;display:grid}@media (max-width:768px){.OAuthPage-module__keyValueItem___XOwWB{grid-template-columns:1fr;gap:2px}}.OAuthPage-module__keyValueKey___WF-VN{color:var(--text-secondary);font-size:13px}.OAuthPage-module__keyValueValue___m2I-C{color:var(--text-primary);word-break:break-all;overflow-wrap:anywhere}.QuotaHeader-module__header___FQh-X{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px 24px;display:flex}.QuotaHeader-module__copy___hYH3x{flex-direction:column;gap:7px;min-width:0;display:flex}.QuotaHeader-module__title___X-zzl{letter-spacing:-.02em;color:var(--text-primary);margin:0;font-size:clamp(26px,3.2vw,30px);font-weight:700;line-height:1.15}.QuotaHeader-module__meta___vypl5{font-variant-numeric:tabular-nums;letter-spacing:.02em;color:var(--text-secondary);flex-wrap:wrap;align-items:baseline;gap:4px 8px;margin:0;font-family:ui-monospace,SF Mono,Cascadia Mono,JetBrains Mono,Fira Code,Menlo,Consolas,Liberation Mono,monospace;font-size:13px;font-weight:500;display:flex}.QuotaHeader-module__meta___vypl5:before{content:"▍";color:var(--viz-success);align-self:center;margin-right:1px;font-size:13px;line-height:1}.QuotaHeader-module__metaDot___oelCy{color:var(--text-quaternary);-webkit-user-select:none;user-select:none}.QuotaHeader-module__metaTotal___5Tdcc{color:var(--text-secondary)}.QuotaHeader-module__metaLoaded___5XtFO{color:var(--viz-success)}.QuotaHeader-module__metaMuted___ofGDe{color:var(--text-tertiary)}.QuotaHeader-module__metaAttention___vgrfI{color:var(--viz-failure)}.QuotaHeader-module__actions___dPTDc{flex-shrink:0;align-items:center;gap:6px;display:flex}.QuotaHeader-module__primaryAction___wLlcP{cursor:pointer;background:var(--text-primary);color:var(--bg-secondary);transition:transform var(--dur-press,.16s) var(--ease-out-strong,ease-out), background-color var(--dur-hover,.2s) var(--ease-out-strong,ease-out), box-shadow var(--dur-hover,.2s) var(--ease-out-strong,ease-out);border:0;border-radius:9999px;align-items:center;gap:7px;padding:10px 18px;font-size:13.5px;font-weight:600;line-height:1;display:inline-flex}.QuotaHeader-module__primaryAction___wLlcP:disabled{cursor:not-allowed;opacity:.55}.QuotaHeader-module__primaryAction___wLlcP:active:not(:disabled){transform:translateY(0)scale(.97)}.QuotaHeader-module__primaryAction___wLlcP:focus-visible{outline:2px solid var(--primary-color);outline-offset:2px}@media (hover:hover) and (pointer:fine){.QuotaHeader-module__primaryAction___wLlcP:hover:not(:disabled){background:color-mix(in srgb, var(--text-primary) 86%, var(--bg-secondary));box-shadow:0 12px 26px color-mix(in srgb, var(--text-primary) 22%, transparent);transform:translateY(-1px)}}.QuotaHeader-module__spinning___JcwhP{animation:.8s linear infinite QuotaHeader-module__quota-spin___ZMw-y}@keyframes QuotaHeader-module__quota-spin___ZMw-y{to{transform:rotate(360deg)}}@media (max-width:768px){.QuotaHeader-module__header___FQh-X{flex-direction:column;align-items:stretch}.QuotaHeader-module__actions___dPTDc{justify-content:flex-start}}@media (prefers-reduced-motion:reduce){.QuotaHeader-module__primaryAction___wLlcP{transition:none}.QuotaHeader-module__primaryAction___wLlcP:active:not(:disabled){transform:none}.QuotaHeader-module__spinning___JcwhP{animation:none}}.QuotaBody-module__quotaRow___-JMVn{flex-direction:column;gap:5px;min-width:0;display:flex}.QuotaBody-module__quotaRowHeader___n2wsn{justify-content:space-between;align-items:baseline;gap:8px;min-width:0;display:flex}.QuotaBody-module__quotaModel___wBOTG{min-width:0;color:var(--text-secondary);text-overflow:ellipsis;white-space:nowrap;font-size:12.5px;font-weight:600;overflow:hidden}.QuotaBody-module__quotaMeta___CiLdu{font-variant-numeric:tabular-nums;letter-spacing:.01em;flex-shrink:0;align-items:baseline;gap:7px;font-family:ui-monospace,SF Mono,Cascadia Mono,JetBrains Mono,Fira Code,Menlo,Consolas,Liberation Mono,monospace;font-size:11.5px;display:inline-flex}.QuotaBody-module__quotaPercent___osiSO{color:var(--text-primary);font-weight:650}.QuotaBody-module__quotaReset___Y0Tf1{color:var(--text-quaternary)}.QuotaBody-module__quotaResetRelative___JNYK9{color:var(--text-tertiary)}.QuotaBody-module__quotaResetRelative___JNYK9:before{content:"·";color:var(--text-quaternary);margin:0 4px}.QuotaBody-module__quotaResetRelativeSoon___v6MAB{color:var(--warning-text);font-weight:600}.QuotaBody-module__quotaAmount___h-5qY{font-variant-numeric:tabular-nums;color:var(--text-secondary);font-family:ui-monospace,SF Mono,Cascadia Mono,JetBrains Mono,Fira Code,Menlo,Consolas,Liberation Mono,monospace}.QuotaBody-module__quotaMessage___IiV5-{color:var(--text-tertiary);text-align:center;padding:6px 4px;font-family:ui-monospace,SF Mono,Cascadia Mono,JetBrains Mono,Fira Code,Menlo,Consolas,Liberation Mono,monospace;font-size:11.5px;line-height:1.5}.QuotaBody-module__quotaBar___eDsVI{background:color-mix(in srgb, var(--text-primary) 8%, transparent);border-radius:9999px;height:6px;overflow:hidden}.QuotaBody-module__quotaBarFill___PAoP7{height:100%;transition:width .36s var(--ease-out-strong,ease);transform-origin:0;animation:QuotaBody-module__quota-meter-fill___3Udkp .48s var(--ease-out-strong,ease-out) both;animation-delay:calc(var(--meter-index,0) * 40ms);border-radius:9999px}@keyframes QuotaBody-module__quota-meter-fill___3Udkp{0%{transform:scaleX(0)}}.QuotaBody-module__quotaBarFillHigh___B1-wA{background:var(--viz-success)}.QuotaBody-module__quotaBarFillMedium___B53dC{background:var(--quota-medium-color)}.QuotaBody-module__quotaBarFillLow___gX3vN{background:var(--viz-failure)}.QuotaBody-module__antigravityQuotaGroup___Eala9{flex-direction:column;gap:7px;display:flex}.QuotaBody-module__antigravityQuotaGroup___Eala9+.QuotaBody-module__antigravityQuotaGroup___Eala9{border-top:1px dashed color-mix(in srgb, var(--border-color) 80%, transparent);margin-top:3px;padding-top:9px}.QuotaBody-module__antigravityQuotaGroupHeader___Innz6{flex-direction:column;gap:2px;min-width:0;display:flex}.QuotaBody-module__antigravityQuotaGroupTitle___gG6fV{letter-spacing:.1em;text-transform:uppercase;color:var(--text-tertiary);font-family:ui-monospace,SF Mono,Cascadia Mono,JetBrains Mono,Fira Code,Menlo,Consolas,Liberation Mono,monospace;font-size:10px;font-weight:700}.QuotaBody-module__antigravityQuotaGroupDescription___I9BdI{color:var(--text-quaternary);font-size:11px;line-height:1.4}@media (max-width:768px){.QuotaBody-module__quotaRowHeader___n2wsn{flex-direction:column;align-items:flex-start}.QuotaBody-module__quotaModel___wBOTG{white-space:normal;text-overflow:clip;overflow-wrap:anywhere;width:100%;overflow:visible}}@media (prefers-reduced-motion:reduce){.QuotaBody-module__quotaBarFill___PAoP7{transition:none;animation:none}}.QuotaBody-module__codexPlan___yquoE{color:var(--text-secondary);flex-wrap:wrap;align-items:center;gap:6px 12px;font-size:12px;display:flex}.QuotaBody-module__codexPlanItem___HqY0k{flex-wrap:wrap;align-items:center;gap:6px;min-width:0;max-width:100%;display:inline-flex}.QuotaBody-module__codexPlanLabel___2-GjA{color:var(--text-tertiary);flex:none}.QuotaBody-module__codexPlanValue___x0NdC{color:var(--text-primary);text-transform:capitalize;min-width:0;font-weight:600}.QuotaBody-module__codexResetCredits___jS3Iz{flex-direction:column;gap:6px;padding-top:2px;display:flex}.QuotaBody-module__codexResetCreditsTitle___M-xya{color:var(--text-secondary);font-size:12px;font-weight:600;line-height:1.35}.QuotaBody-module__codexResetCreditRow___pYGVe{border:1px solid color-mix(in srgb, var(--border-color) 72%, transparent);background-color:color-mix(in srgb, var(--bg-secondary) 72%, transparent);border-radius:4px;justify-content:space-between;align-items:center;gap:8px;min-width:0;padding:6px 8px;font-size:12px;line-height:1.35;display:flex}.QuotaBody-module__codexResetCreditRowSoon___cBM9U{border-color:var(--warning-border);background-color:var(--warning-bg)}.QuotaBody-module__codexResetCreditLabel___Ahtkh{color:var(--text-tertiary);white-space:nowrap;flex:none}.QuotaBody-module__codexResetCreditTime___jLiPP{color:var(--text-primary);text-align:right;overflow-wrap:anywhere;min-width:0;font-weight:600}.QuotaBody-module__codexResetCreditsError___D8Nqz{color:var(--warning-text);background-color:var(--warning-bg);border:1px solid var(--warning-border);border-radius:4px;padding:4px 8px;font-size:12px;line-height:1.4}.QuotaBody-module__codexPlanSeparator___7Kus9{background-color:var(--border-color);width:1px;height:12px}.QuotaBody-module__premiumPlanValue___vsqQ-{white-space:nowrap;isolation:isolate;color:#6b4b00;text-shadow:0 1px #ffffff8c;text-transform:capitalize;background:radial-gradient(circle at 18% 24%,#fffffff5 0%,#ffffffb8 18%,#fff0 42%),linear-gradient(135deg,#fff9e3 0%,#ffe07f 52%,#e0aa14 100%);border:1px solid #d9a516b8;border-radius:999px;flex:none;align-items:center;padding:2px 8px;font-size:12px;font-weight:700;display:inline-flex;position:relative;overflow:visible;box-shadow:0 1px 3px #855c0029,inset 0 0 0 1px #ffffff38,0 0 16px #ffd66247}.QuotaBody-module__premiumPlanValue___vsqQ-:before{content:"";border-radius:inherit;--glass-blur:9px;filter:var(--glass-filter);opacity:.75;pointer-events:none;z-index:-1;background:radial-gradient(circle at 18% 22%,#ffffffe6 0%,#ffed9e94 32%,#ffd75b00 72%);position:absolute;top:-6px;bottom:-6px;left:-9px;right:-9px}@media (dynamic-range:high){.QuotaBody-module__premiumPlanValue___vsqQ-{color:#704c00;color:color(display-p3 .43 .3 0);background:radial-gradient(circle at 18% 24%,#fffcf0 0%,#fff7d2d1 18%,#fff2b400 42%),linear-gradient(135deg,#fffae1,#ffda46,#f2ac00);background:radial-gradient(circle at 18% 24%,color(display-p3 1 .99 .94) 0%,color(display-p3 1 .97 .82/.82) 18%,color(display-p3 1 .95 .7/0) 42%),linear-gradient(135deg,color(display-p3 1 .98 .88),color(display-p3 .99 .86 .34),color(display-p3 .92 .68 .05));border-color:#ebb900d9;border-color:color(display-p3 .9 .73 .12/.85);box-shadow:0 1px 4px #76470038,inset 0 0 0 1px #fffadc4d,0 0 18px #ffe22f5c;box-shadow:0 1px 4px color(display-p3 .45 .28 0/.22),inset 0 0 0 1px color(display-p3 1 .98 .86/.3),0 0 18px color(display-p3 1 .89 .2/.36)}}@supports (color:color(rec2100-linear 1 1 1)){@media (dynamic-range:high){.QuotaBody-module__premiumPlanValue___vsqQ-{dynamic-range-limit:no-limit;box-shadow:0 1px 4px #76470038, 0 0 0 1px #fffadc4d inset, 0 0 14px #ffe22f5c, 0 0 30px color(rec2100-linear 3.6 2.9 .7 / .48)}@supports (color:color(display-p3 0 0 0)){.QuotaBody-module__premiumPlanValue___vsqQ-{box-shadow:0 1px 4px color(display-p3 .45 .28 0/.22), 0 0 0 1px color(display-p3 1 .98 .86/.3) inset, 0 0 14px color(display-p3 1 .89 .2/.36), 0 0 30px color(rec2100-linear 3.6 2.9 .7 / .48)}}.QuotaBody-module__premiumPlanValue___vsqQ-:before{background:radial-gradient(circle at 18% 22%, color(rec2100-linear 6.5 6.2 5.4 / .92) 0%, color(rec2100-linear 2.4 2 .6 / .62) 34%, color(rec2100-linear 1 .85 .12 / 0) 76%);opacity:.92}}}[data-theme=dark] .QuotaBody-module__premiumPlanValue___vsqQ-{color:#fff0a8;text-shadow:0 0 10px #ffd44f38;background:radial-gradient(circle at 18% 24%,#ffe58a52 0%,#ffd6622e 18%,#ffd66200 44%),linear-gradient(135deg,#4f3d0b 0%,#6e5510 48%,#8f6d10 100%);border-color:#e2b432b3;box-shadow:0 1px 6px #00000047,inset 0 0 0 1px #ffdc7829,0 0 18px #ffc42c38}[data-theme=dark] .QuotaBody-module__premiumPlanValue___vsqQ-:before{opacity:.8;background:radial-gradient(circle at 18% 24%,#ffe58a6b 0%,#ffc54247 34%,#fb00 74%)}@media (dynamic-range:high){[data-theme=dark] .QuotaBody-module__premiumPlanValue___vsqQ-{color:#ffed95;color:color(display-p3 1 .93 .58);background:radial-gradient(circle at 18% 24%,#ffe26161 0%,#ffd13133 18%,#ffd13100 44%),linear-gradient(135deg,#573f00,#7f5b00,#a37400);background:radial-gradient(circle at 18% 24%,color(display-p3 1 .89 .38/.38) 0%,color(display-p3 1 .82 .2/.2) 18%,color(display-p3 1 .82 .2/0) 44%),linear-gradient(135deg,color(display-p3 .33 .25 .04),color(display-p3 .48 .36 .08),color(display-p3 .62 .46 .09));border-color:#ce9700c7;border-color:color(display-p3 .78 .6 .16/.78);box-shadow:0 1px 8px #00000052,inset 0 0 0 1px #f9ca002e,0 0 20px #ffc21447;box-shadow:0 1px 8px color(display-p3 0 0 0/.32),inset 0 0 0 1px color(display-p3 .95 .8 .24/.18),0 0 20px color(display-p3 1 .76 .1/.28)}}@supports (color:color(rec2100-linear 1 1 1)){@media (dynamic-range:high){[data-theme=dark] .QuotaBody-module__premiumPlanValue___vsqQ-{dynamic-range-limit:no-limit;box-shadow:0 1px 8px #00000052, 0 0 0 1px #f9ca002e inset, 0 0 16px #ffc21447, 0 0 28px color(rec2100-linear 4.8 3.5 .45 / .4)}@supports (color:color(display-p3 0 0 0)){[data-theme=dark] .QuotaBody-module__premiumPlanValue___vsqQ-{box-shadow:0 1px 8px color(display-p3 0 0 0/.32), 0 0 0 1px color(display-p3 .95 .8 .24/.18) inset, 0 0 16px color(display-p3 1 .76 .1/.28), 0 0 28px color(rec2100-linear 4.8 3.5 .45 / .4)}}[data-theme=dark] .QuotaBody-module__premiumPlanValue___vsqQ-:before{background:radial-gradient(circle at 18% 24%, color(rec2100-linear 5.6 4.1 .75 / .64) 0%, color(rec2100-linear 2.2 1.5 .2 / .34) 34%, color(rec2100-linear 1.2 .9 .06 / 0) 74%);opacity:.95}}}.QuotaBody-module__elitePlanValue___yF4r4{letter-spacing:.03em;white-space:nowrap;isolation:isolate;color:#1f2a38;text-shadow:0 1px #ffffffa6;text-transform:capitalize;background-color:#0000;background-image:radial-gradient(circle at 20% 20%,#ffffffe6 0%,#ffffff4d 22%,#fff0 46%),linear-gradient(100deg,#0000 40%,#ffffff61 46%,#fffffff5 50%,#ffffff61 54%,#0000 60%),linear-gradient(78deg,#0000 28%,#5060766b 50%,#0000 72%),linear-gradient(92deg,#0000 44%,#c4e2fc52 50%,#0000 56%),linear-gradient(#fff 0%,#e3eaf1 26%,#a5b2c2 45%,#78879a 54%,#c3cdd8 78%,#f2f6fa 100%),linear-gradient(135deg,#fff 0%,#8c9eb299 42%,#384250f2 100%);background-position:0 0,-50% 0,170% 0,-80% 0,0 0,0 0;background-repeat:no-repeat;background-size:auto,200% 100%,260% 100%,300% 100%,auto,auto;background-attachment:scroll,scroll,scroll,scroll,scroll,scroll;background-origin:padding-box,padding-box,padding-box,padding-box,padding-box,border-box;background-clip:padding-box,padding-box,padding-box,padding-box,padding-box,border-box;border:1px solid #0000;border-radius:999px;flex:none;align-items:center;padding:2px 9px;font-size:12px;font-weight:700;animation:12s ease-in-out infinite alternate QuotaBody-module__eliteLiquid___RMX2Q;display:inline-flex;position:relative;overflow:visible;box-shadow:0 1px 3px #1e2a3a47,inset 0 1px 1px #ffffffeb,inset 0 -1.5px 2px #3c4a5c66,0 0 14px #82a0c85c}.QuotaBody-module__elitePlanValue___yF4r4:before{content:"";border-radius:inherit;--glass-blur:9px;filter:var(--glass-filter);opacity:.75;pointer-events:none;z-index:-1;background:radial-gradient(circle at 24% 30%,#fffffff2 0%,#c4dcf480 38%,#b2cdee00 74%);animation:7s ease-in-out infinite alternate QuotaBody-module__eliteBreathe___9ZW9s;position:absolute;top:-6px;bottom:-6px;left:-9px;right:-9px}.QuotaBody-module__elitePlanValue___yF4r4:after{content:"";border-radius:inherit;pointer-events:none;background-image:linear-gradient(105deg,#0000 38%,#ffffff14 44%,#ffffffbf 50%,#ffffff14 56%,#0000 62%);background-position:240% 0;background-repeat:no-repeat;background-size:260% 100%;animation:7.5s cubic-bezier(.4,0,.2,1) 1.2s infinite QuotaBody-module__eliteSheen___41NZk;position:absolute;top:1px;bottom:1px;left:1px;right:1px}@supports (color:color(rec2100-linear 1 1 1)){@media (dynamic-range:high){.QuotaBody-module__elitePlanValue___yF4r4{dynamic-range-limit:no-limit;box-shadow:0 1px 3px #1e2a3a47, inset 0 1px 1px #ffffffeb, inset 0 -1.5px 2px #3c4a5c66, 0 0 22px color(rec2100-linear 1.5 1.8 2.3 / .42)}.QuotaBody-module__elitePlanValue___yF4r4:after{background-image:linear-gradient(105deg, transparent 38%, color(rec2100-linear 1.2 1.3 1.5 / .1) 44%, color(rec2100-linear 2.6 2.8 3.2 / .8) 50%, color(rec2100-linear 1.2 1.3 1.5 / .1) 56%, transparent 62%)}}}@keyframes QuotaBody-module__eliteLiquid___RMX2Q{0%{background-position:0 0,-50% 0,170% 0,-80% 0,0 0,0 0}to{background-position:0 0,150% 0,-70% 0,190% 0,0 0,0 0}}@keyframes QuotaBody-module__eliteSheen___41NZk{0%{background-position:240% 0}13%{background-position:-140% 0}to{background-position:-140% 0}}@keyframes QuotaBody-module__eliteBreathe___9ZW9s{0%{opacity:.55}to{opacity:.9}}[data-theme=dark] .QuotaBody-module__elitePlanValue___yF4r4{background-color:#0000;background-image:radial-gradient(circle at 20% 20%,#ffffffe6 0%,#ffffff4d 22%,#fff0 46%),linear-gradient(100deg,#0000 40%,#fff6 46%,#fff 50%,#fff6 54%,#0000 60%),linear-gradient(78deg,#0000 28%,#50607675 50%,#0000 72%),linear-gradient(92deg,#0000 44%,#c4e2fc57 50%,#0000 56%),linear-gradient(#fff 0%,#eef2f6 30%,#c2ccd7 47%,#8b98a8 54%,#d6dee6 80%,#f7fafc 100%),linear-gradient(135deg,#fffffffa 0%,#9bafc38c 45%,#5a6878e6 100%);background-position:0 0,-50% 0,170% 0,-80% 0,0 0,0 0;background-repeat:no-repeat;background-size:auto,200% 100%,260% 100%,300% 100%,auto,auto;background-attachment:scroll,scroll,scroll,scroll,scroll,scroll;background-origin:padding-box,padding-box,padding-box,padding-box,padding-box,border-box;background-clip:padding-box,padding-box,padding-box,padding-box,padding-box,border-box;box-shadow:0 1px 5px #0006,inset 0 1px 1px #ffffffeb,inset 0 -1.5px 2px #4a5a6e66,0 0 18px #bedafa5c}@supports (color:color(rec2100-linear 1 1 1)){@media (dynamic-range:high){[data-theme=dark] .QuotaBody-module__elitePlanValue___yF4r4{dynamic-range-limit:no-limit;box-shadow:0 1px 5px #0006, inset 0 1px 1px #ffffffeb, inset 0 -1.5px 2px #4a5a6e66, 0 0 26px color(rec2100-linear 1.7 2.1 2.6 / .44)}}}@media (prefers-reduced-motion:reduce){.QuotaBody-module__elitePlanValue___yF4r4,[data-theme=dark] .QuotaBody-module__elitePlanValue___yF4r4{background-position:0 0,42% 0,60% 0,30% 0,0 0,0 0;animation:none}.QuotaBody-module__elitePlanValue___yF4r4:before,[data-theme=dark] .QuotaBody-module__elitePlanValue___yF4r4:before{opacity:.75;animation:none}.QuotaBody-module__elitePlanValue___yF4r4:after,[data-theme=dark] .QuotaBody-module__elitePlanValue___yF4r4:after{content:none}}@media (max-width:768px){.QuotaBody-module__premiumPlanValue___vsqQ-{background:radial-gradient(circle at 18% 24%,#ffffffe0 0%,#ffffff94 18%,#fff0 42%),linear-gradient(135deg,#fff9e3 0%,#ffe07f 52%,#e0aa14 100%);overflow:hidden;box-shadow:0 1px 3px #855c0029,inset 0 0 0 1px #ffffff38,0 0 10px #ffd66238}.QuotaBody-module__premiumPlanValue___vsqQ-:before{content:none}[data-theme=dark] .QuotaBody-module__premiumPlanValue___vsqQ-{background:radial-gradient(circle at 18% 24%,#ffe58a47 0%,#ffd66224 18%,#ffd66200 44%),linear-gradient(135deg,#4f3d0b 0%,#6e5510 48%,#8f6d10 100%);box-shadow:0 1px 6px #00000047,inset 0 0 0 1px #ffdc7829,0 0 10px #ffc42c2e}.QuotaBody-module__elitePlanValue___yF4r4{overflow:hidden;box-shadow:0 1px 3px #1e2a3a47,inset 0 1px 1px #ffffffeb,inset 0 -1.5px 2px #3c4a5c66,0 0 9px #82a0c84d}.QuotaBody-module__elitePlanValue___yF4r4:before{content:none}[data-theme=dark] .QuotaBody-module__elitePlanValue___yF4r4{box-shadow:0 1px 5px #0006,inset 0 1px 1px #ffffffeb,inset 0 -1.5px 2px #4a5a6e66,0 0 10px #bedafa4d}}.QuotaCard-module__card___gsSw0{border:1px solid var(--border-color);background:color-mix(in srgb, var(--bg-primary) 82%, transparent);transition:transform var(--dur-hover,.2s) var(--ease-out-strong,ease-out), border-color var(--dur-hover,.2s) var(--ease-out-strong,ease-out), box-shadow var(--dur-hover,.2s) var(--ease-out-strong,ease-out);border-radius:14px;flex-direction:column;gap:11px;padding:15px 16px;display:flex;position:relative}@media (hover:hover) and (pointer:fine){.QuotaCard-module__card___gsSw0:hover{border-color:var(--border-hover);transform:translateY(-2px);box-shadow:0 12px 26px -14px #00000029}}.QuotaCard-module__cardEnter___UF7tD{animation:QuotaCard-module__quota-card-in___GedV- .45s var(--ease-out-strong,ease-out) both;animation-delay:var(--card-delay,0s)}@keyframes QuotaCard-module__quota-card-in___GedV-{0%{opacity:0;transform:translateY(16px)}}.QuotaCard-module__head___vJx5a{align-items:center;gap:9px;min-width:0;display:flex}.QuotaCard-module__iconWrap___xTv0M{background:color-mix(in srgb, var(--bg-tertiary) 60%, transparent);border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:26px;height:26px;display:flex}.QuotaCard-module__icon___5ZUbX{object-fit:contain;width:16px;height:16px;display:block}.QuotaCard-module__iconFallback___i6gvn{color:var(--text-secondary);font-size:11px;font-weight:700}.QuotaCard-module__fileName___1QWup{letter-spacing:.01em;min-width:0;color:var(--text-primary);text-overflow:ellipsis;white-space:nowrap;font-family:ui-monospace,SF Mono,Cascadia Mono,JetBrains Mono,Fira Code,Menlo,Consolas,Liberation Mono,monospace;font-size:12.5px;font-weight:600;overflow:hidden}.QuotaCard-module__body___QvXLv{flex-direction:column;gap:9px;min-width:0;display:flex}.QuotaCard-module__idleBody___-LVRC{cursor:pointer;border:1px dashed var(--border-color);width:100%;min-height:76px;color:var(--text-tertiary);transition:transform var(--dur-press,.16s) var(--ease-out-strong,ease-out), border-color var(--dur-hover,.2s) var(--ease-out-strong,ease-out), color var(--dur-hover,.2s) var(--ease-out-strong,ease-out);background:0 0;border-radius:10px;flex-direction:column;justify-content:center;align-items:center;gap:6px;padding:12px 10px;display:flex}.QuotaCard-module__idleBody___-LVRC:disabled{cursor:not-allowed;opacity:.55}.QuotaCard-module__idleBody___-LVRC:active:not(:disabled){transform:scale(.98)}.QuotaCard-module__idleBody___-LVRC:focus-visible{outline:2px solid var(--primary-color);outline-offset:2px}@media (hover:hover) and (pointer:fine){.QuotaCard-module__idleBody___-LVRC:hover:not(:disabled){border-color:color-mix(in srgb, var(--primary-color) 35%, var(--border-color));color:var(--text-secondary);border-style:solid}}.QuotaCard-module__idleGlyph___-MyUb{opacity:.8;flex-shrink:0}.QuotaCard-module__idleHint___ki8K6{text-align:center;font-family:ui-monospace,SF Mono,Cascadia Mono,JetBrains Mono,Fira Code,Menlo,Consolas,Liberation Mono,monospace;font-size:11.5px;line-height:1.5}.QuotaCard-module__skeleton___itY8q{flex-direction:column;gap:11px;padding:4px 0 2px;display:flex}.QuotaCard-module__skeletonRow___I4TdX{flex-direction:column;gap:6px;display:flex}.QuotaCard-module__skeletonLabel___y0Wxn,.QuotaCard-module__skeletonTrack___GfCHZ{background-color:color-mix(in srgb, var(--text-primary) 8%, transparent);background-image:linear-gradient(90deg, transparent 20%, color-mix(in srgb, var(--text-primary) 6%, transparent) 50%, transparent 80%);background-repeat:no-repeat;background-size:220% 100%;border-radius:9999px;animation:1.2s linear infinite QuotaCard-module__quota-skeleton-sweep___mYYkB;display:block}@keyframes QuotaCard-module__quota-skeleton-sweep___mYYkB{0%{background-position:-110% 0}to{background-position:210% 0}}.QuotaCard-module__skeletonLabel___y0Wxn{width:40%;height:10px}.QuotaCard-module__skeletonTrack___GfCHZ{width:100%;height:6px}.QuotaCard-module__srOnly___LVxLF{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.QuotaCard-module__errorStrip___XvHgW{color:var(--viz-failure);background:color-mix(in srgb, var(--viz-failure) 8%, transparent);border:1px solid color-mix(in srgb, var(--viz-failure) 32%, transparent);overflow-wrap:anywhere;border-radius:9px;padding:8px 10px;font-size:11.5px;line-height:1.5}.QuotaCard-module__actionRow___mzLCF{flex-wrap:wrap;justify-content:flex-end;gap:6px;display:flex}.QuotaCard-module__actionPill___GQddc{cursor:pointer;border:1px solid var(--border-color);color:var(--text-secondary);white-space:nowrap;transition:transform var(--dur-press,.16s) var(--ease-out-strong,ease-out), border-color var(--dur-hover,.2s) var(--ease-out-strong,ease-out), background-color var(--dur-hover,.2s) var(--ease-out-strong,ease-out), color var(--dur-hover,.2s) var(--ease-out-strong,ease-out);background:0 0;border-radius:9999px;align-items:center;gap:5px;padding:5px 11px;font-size:11.5px;font-weight:600;line-height:1.4;display:inline-flex}.QuotaCard-module__actionPill___GQddc:disabled{cursor:not-allowed;opacity:.5}.QuotaCard-module__actionPill___GQddc:active:not(:disabled){transform:scale(.97)}.QuotaCard-module__actionPill___GQddc:focus-visible{outline:2px solid var(--primary-color);outline-offset:2px}@media (hover:hover) and (pointer:fine){.QuotaCard-module__actionPill___GQddc:hover:not(:disabled){border-color:var(--border-hover);background:color-mix(in srgb, var(--bg-tertiary) 55%, transparent);color:var(--text-primary)}}.QuotaCard-module__spinning___bpwYE{animation:.8s linear infinite QuotaCard-module__quota-card-spin___PpW3V}@keyframes QuotaCard-module__quota-card-spin___PpW3V{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.QuotaCard-module__card___gsSw0,.QuotaCard-module__idleBody___-LVRC,.QuotaCard-module__actionPill___GQddc{transition:none}.QuotaCard-module__idleBody___-LVRC:active:not(:disabled),.QuotaCard-module__actionPill___GQddc:active:not(:disabled){transform:none}.QuotaCard-module__cardEnter___UF7tD,.QuotaCard-module__skeletonLabel___y0Wxn,.QuotaCard-module__skeletonTrack___GfCHZ,.QuotaCard-module__spinning___bpwYE{animation:none}}.QuotaTimeline-module__timeline___WCTXL{flex-direction:column;gap:16px;display:flex}.QuotaTimeline-module__head___u4fSV{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.QuotaTimeline-module__title___2Z27g{color:var(--text-primary);margin:0;font-size:18px;font-weight:650}.QuotaTimeline-module__range___XLn9W{color:var(--text-quaternary);font-variant-numeric:tabular-nums;margin:2px 0 0;font-size:12px}.QuotaTimeline-module__controls___PqNbq{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.QuotaTimeline-module__nav___QxfPe,.QuotaTimeline-module__modes___7xT9o{background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:999px;align-items:center;gap:2px;padding:3px;display:inline-flex}.QuotaTimeline-module__nav___QxfPe button,.QuotaTimeline-module__modes___7xT9o button{font:inherit;color:var(--text-secondary);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:999px;padding:4px 12px;font-size:12.5px;transition:all .15s}.QuotaTimeline-module__nav___QxfPe button:hover:not(:disabled),.QuotaTimeline-module__modes___7xT9o button:hover:not(:disabled){color:var(--text-primary)}.QuotaTimeline-module__nav___QxfPe button:disabled,.QuotaTimeline-module__modes___7xT9o button:disabled{opacity:.5;cursor:default}.QuotaTimeline-module__nav___QxfPe button[aria-pressed=true],.QuotaTimeline-module__modes___7xT9o button[aria-pressed=true]{background:var(--floating-surface,var(--bg-primary));border-color:var(--border-hover);color:var(--text-primary)}.QuotaTimeline-module__chart___N7OxP{border:1px solid var(--border-color);background:var(--bg-primary);border-radius:12px;overflow:hidden}.QuotaTimeline-module__empty___0HP5I{min-height:96px;color:var(--text-quaternary);text-align:center;place-items:center;padding:24px;font-size:12px;display:grid}.QuotaTimeline-module__axis___C3EoC,.QuotaTimeline-module__lane___zSZC1{grid-template-columns:210px 1fr;display:grid}.QuotaTimeline-module__axis___C3EoC{border-bottom:1px solid var(--border-color)}.QuotaTimeline-module__axisLabel___w0acY{letter-spacing:.06em;text-transform:uppercase;color:var(--text-quaternary);align-items:flex-end;padding:8px 12px;font-size:10.5px;font-weight:600;display:flex}.QuotaTimeline-module__axisCells___8KfD4{display:flex}.QuotaTimeline-module__axisCell___10NSx{border-left:1px solid var(--border-color);flex-direction:column;flex:1 1 0;align-items:center;gap:1px;min-width:0;padding:6px 2px;display:flex}.QuotaTimeline-module__axisCell___10NSx[data-weekend="1"]{background:#ffffff04}.QuotaTimeline-module__axisCell___10NSx[data-today="1"]{background:#ffffff08}.QuotaTimeline-module__axisWeekday___lkS5X{color:var(--text-quaternary);min-height:12px;font-size:10px}.QuotaTimeline-module__axisDate___bxHvj{color:var(--text-secondary);font-variant-numeric:tabular-nums;white-space:nowrap;font-size:11.5px;font-weight:600}.QuotaTimeline-module__lane___zSZC1{border-top:1px solid var(--border-color)}.QuotaTimeline-module__lane___zSZC1:hover{background:#ffffff03}.QuotaTimeline-module__laneHead___t0-03{flex-direction:column;gap:3px;min-width:0;padding:9px 12px;display:flex}.QuotaTimeline-module__laneTop___I3-LV{align-items:center;gap:6px;min-width:0;display:flex}.QuotaTimeline-module__laneDot___sSNpR{background:var(--provider-accent,var(--text-quaternary));border-radius:50%;flex:none;width:7px;height:7px}.QuotaTimeline-module__laneName___26MaX{color:var(--text-primary);text-overflow:ellipsis;white-space:nowrap;font-size:12.5px;font-weight:600;overflow:hidden}.QuotaTimeline-module__lanePeriod___7d5MF{color:var(--count-badge-text,var(--text-secondary));background:var(--count-badge-bg,var(--bg-tertiary));border-radius:999px;flex:none;padding:0 6px;font-size:10px;font-weight:600}.QuotaTimeline-module__laneLimits___wbA3K{flex-wrap:wrap;gap:4px;display:flex}.QuotaTimeline-module__laneLimit___GD2aZ{color:var(--text-quaternary);background:var(--bg-tertiary);border-radius:4px;padding:1px 6px;font-size:10.5px}.QuotaTimeline-module__laneLimit___GD2aZ b{color:var(--text-secondary);font-variant-numeric:tabular-nums}.QuotaTimeline-module__track___f0X5S{align-items:center;min-height:46px;display:flex;position:relative}.QuotaTimeline-module__trackGrid___cIq61{display:flex;position:absolute;top:0;bottom:0;left:0;right:0}.QuotaTimeline-module__trackGrid___cIq61>span{border-left:1px solid var(--border-color);flex:1 1 0}.QuotaTimeline-module__trackGrid___cIq61>span[data-weekend="1"]{background:#ffffff04}.QuotaTimeline-module__nowLine___W7b6l{background:var(--text-tertiary,var(--text-quaternary));opacity:.8;z-index:1;width:1px;position:absolute;top:0;bottom:0}.QuotaTimeline-module__window___Cpst9{z-index:2;white-space:nowrap;border-radius:999px;align-items:center;height:22px;padding:0 8px;font-size:10.5px;display:flex;position:absolute;overflow:hidden}.QuotaTimeline-module__windowLive___w4cNY{background:color-mix(in srgb, var(--provider-accent) 26%, transparent);border:1px solid color-mix(in srgb, var(--provider-accent) 45%, transparent);color:var(--text-primary)}.QuotaTimeline-module__windowNext___R6YYa{border:1px dashed color-mix(in srgb, var(--provider-accent) 32%, transparent);color:var(--text-quaternary);background:0 0}.QuotaTimeline-module__windowPast___CLBpt{background:color-mix(in srgb, var(--provider-accent) 8%, transparent);color:var(--text-quaternary);border:1px solid #0000}.QuotaTimeline-module__windowFill___57KH0{background:color-mix(in srgb, var(--provider-accent) 34%, transparent);pointer-events:none;position:absolute;top:0;bottom:0;left:0}.QuotaTimeline-module__windowLabel___dWzzW{text-overflow:ellipsis;font-variant-numeric:tabular-nums;position:relative;overflow:hidden}.QuotaTimeline-module__resetCreditTick___M4yxP{z-index:3;background:var(--amber-color);width:2px;box-shadow:0 0 0 1px var(--bg-primary);cursor:help;border-radius:999px;position:absolute;top:6px;bottom:6px;transform:translate(-50%)}.QuotaTimeline-module__resetCreditTick___M4yxP:hover{width:4px}.QuotaTimeline-module__laneIdle___-tEF7{z-index:2;color:var(--text-quaternary);padding-left:10px;font-size:11px;position:relative}.QuotaTimeline-module__legend___dtxWe{color:var(--text-quaternary);flex-wrap:wrap;align-items:center;gap:16px;font-size:11px;display:flex}.QuotaTimeline-module__legendItem___3YQO3{align-items:center;gap:6px;display:inline-flex}.QuotaTimeline-module__swatch___PdVZj{border-radius:999px;width:22px;height:10px}.QuotaTimeline-module__swatchLive___wxYVr{background:color-mix(in srgb, var(--text-tertiary,#888) 34%, transparent);border:1px solid color-mix(in srgb, var(--text-tertiary,#888) 50%, transparent)}.QuotaTimeline-module__swatchNext___whozo{border:1px dashed color-mix(in srgb, var(--text-tertiary,#888) 45%, transparent)}.QuotaTimeline-module__swatchPast___UAzz6{background:color-mix(in srgb, var(--text-tertiary,#888) 12%, transparent)}.QuotaTimeline-module__swatchCredit___NBXlO{background:var(--amber-color);border-radius:999px;width:2px;height:14px}.QuotaTimeline-module__legendNote___W36HQ{flex:320px;min-width:0}@media (max-width:768px){.QuotaTimeline-module__chart___N7OxP{overflow-x:auto}.QuotaTimeline-module__axis___C3EoC,.QuotaTimeline-module__lane___zSZC1{min-width:720px}}.QuotaPage-module__page___EOaHV{flex-direction:column;gap:20px;width:100%;min-width:0;display:flex}.QuotaPage-module__workbench___M9KKY{flex-direction:column;gap:14px;min-width:0;display:flex}.QuotaPage-module__tabsRow___99BHL{justify-content:space-between;align-items:center;gap:12px;min-width:0;display:flex}.QuotaPage-module__tabsRow___99BHL>:first-child{flex:auto;min-width:0}.QuotaPage-module__toolbar___2FkSA{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 16px;min-width:0;display:flex}.QuotaPage-module__search___oaOF7{background:var(--bg-secondary);min-width:0;height:36px;color:var(--text-secondary);border:1px solid #0000;border-radius:10px;flex:0 340px;align-items:center;display:flex;position:relative}.QuotaPage-module__search___oaOF7:focus-within{border-color:var(--border-hover);outline:2px solid var(--primary-color);outline-offset:2px}.QuotaPage-module__searchIcon___zPMsU{pointer-events:none;position:absolute;left:11px}.QuotaPage-module__searchInput___LYPbu{border-radius:inherit;width:100%;min-width:0;height:100%;color:var(--text-primary);font:inherit;-webkit-appearance:none;appearance:none;background:0 0;border:0;outline:none;padding:0 42px 0 35px;font-size:13px}.QuotaPage-module__searchInput___LYPbu::placeholder{color:var(--text-tertiary)}.QuotaPage-module__searchInput___LYPbu::-webkit-search-cancel-button{-webkit-appearance:none;appearance:none}.QuotaPage-module__searchInput___LYPbu::-webkit-search-decoration{-webkit-appearance:none;appearance:none}.QuotaPage-module__clearSearch___Z7cm5{width:32px;height:32px;color:var(--text-secondary);cursor:pointer;background:0 0;border:0;border-radius:8px;justify-content:center;align-items:center;padding:0;display:inline-flex;position:absolute;right:2px}.QuotaPage-module__clearSearch___Z7cm5:focus-visible{outline:2px solid var(--primary-color);outline-offset:-2px}.QuotaPage-module__clearSearch___Z7cm5:active{transform:scale(.97)}.QuotaPage-module__sort___AM-bE{flex:none;min-width:148px;max-width:100%}.QuotaPage-module__sort___AM-bE button[aria-haspopup=listbox]{height:36px;box-shadow:none;color:var(--text-secondary);background:0 0;border-color:#0000;border-radius:10px}.QuotaPage-module__sort___AM-bE button[aria-haspopup=listbox][aria-expanded=true]{outline:2px solid var(--primary-color);outline-offset:2px;background:var(--bg-secondary);color:var(--text-primary)}.QuotaPage-module__sort___AM-bE button[aria-haspopup=listbox]:focus-visible{outline:2px solid var(--primary-color);outline-offset:2px;background:var(--bg-secondary);color:var(--text-primary)}@media (hover:hover) and (pointer:fine){.QuotaPage-module__clearSearch___Z7cm5:hover,.QuotaPage-module__sort___AM-bE button[aria-haspopup=listbox]:hover{background:var(--bg-tertiary);color:var(--text-primary)}}@media (prefers-reduced-motion:reduce){.QuotaPage-module__clearSearch___Z7cm5:active{transform:none}}@media (max-width:768px){.QuotaPage-module__search___oaOF7{flex:220px;height:40px}.QuotaPage-module__clearSearch___Z7cm5{width:36px;height:36px}.QuotaPage-module__sort___AM-bE button[aria-haspopup=listbox]{height:40px}}.QuotaPage-module__errorBanner___Fm4sj{color:var(--danger-color);background:var(--bg-error-light);border:1px solid var(--warning-border);overflow-wrap:anywhere;border-radius:10px;padding:9px 12px;font-size:12.5px;line-height:1.5}.QuotaPage-module__grid___veEj-{grid-template-columns:repeat(auto-fill,minmax(min(100%,340px),1fr));align-items:stretch;gap:16px;display:grid}.QuotaPage-module__pagination___qj1Ew{flex-wrap:wrap;justify-content:center;align-items:center;gap:14px;display:flex}.QuotaPage-module__pageInfo___QnjRe{font-variant-numeric:tabular-nums;letter-spacing:.02em;color:var(--text-tertiary);white-space:nowrap;font-family:ui-monospace,SF Mono,Cascadia Mono,JetBrains Mono,Fira Code,Menlo,Consolas,Liberation Mono,monospace;font-size:12px}@media (max-width:768px){.QuotaPage-module__page___EOaHV{gap:16px}}.PluginResourcePage-module__page___Worp1{background:var(--bg-secondary);flex:auto;width:100%;min-width:0;height:100%;min-height:0;display:flex}.PluginResourcePage-module__frame___vFTLX{background:var(--bg-secondary);border:0;flex:auto;width:100%;min-width:0;height:100%;min-height:0;display:block}.PluginResourcePage-module__stateShell___mvcAO{background:var(--bg-secondary);justify-content:center;align-items:center;width:100%;min-height:100%;padding:70px clamp(20px,3vw,48px) 40px;display:flex}.PluginResourcePage-module__statusPanel___hLEe6{color:var(--text-secondary);font-size:14px}.PluginsPage-module__page___CvQ2C{flex-direction:column;gap:24px;width:100%;display:flex}.PluginsPage-module__pageHeader___QAQJM{flex-direction:column;gap:8px;display:flex}.PluginsPage-module__title___kbWp2{color:var(--text-primary);margin:0;font-size:28px;font-weight:700;line-height:1.2}.PluginsPage-module__description___rS8P3{color:var(--text-secondary);margin:0;font-size:14px;line-height:1.5}.PluginsPage-module__errorBox___CXInm,.PluginsPage-module__warningBox___XGq99{border-radius:8px;padding:16px;font-size:14px;line-height:1.5}.PluginsPage-module__errorBox___CXInm{border:1px solid var(--danger-color);color:var(--danger-color);background:#c657461a}.PluginsPage-module__warningBox___XGq99{border:1px solid color-mix(in srgb, var(--warning-color,#c65746) 42%, var(--border-color));background:color-mix(in srgb, var(--warning-color,#c65746) 9%, var(--bg-secondary));color:var(--text-primary)}.PluginsPage-module__statusBar___-NeAi{border:1px solid color-mix(in srgb, var(--border-color) 60%, transparent);background:color-mix(in srgb, var(--bg-secondary) 60%, transparent);border-radius:10px;flex-wrap:wrap;align-items:center;gap:10px;padding:10px 14px;display:flex}.PluginsPage-module__statusPill___KsCzj{border:1px solid color-mix(in srgb, var(--border-color) 50%, transparent);background:color-mix(in srgb, var(--bg-primary) 56%, transparent);white-space:nowrap;border-radius:9999px;align-items:center;gap:6px;min-width:0;max-width:100%;padding:5px 12px;font-size:12px;font-weight:600;display:inline-flex}.PluginsPage-module__statusDot___sWBOV{border-radius:50%;flex-shrink:0;width:7px;height:7px}.PluginsPage-module__statusDotOn___7cgF3{background:#10b981;box-shadow:0 0 6px #10b98180}.PluginsPage-module__statusDotOff___biyeH{background:var(--text-tertiary)}.PluginsPage-module__statusLabel___OJVc7{color:var(--text-secondary)}.PluginsPage-module__statusValue___wqQgp{color:var(--text-primary);font-weight:700}.PluginsPage-module__statusPathValue___SCblH{text-overflow:ellipsis;white-space:nowrap;min-width:0;max-width:min(360px,58vw);display:block;overflow:hidden}.PluginsPage-module__statusDivider___fJexN{background:color-mix(in srgb, var(--border-color) 60%, transparent);flex-shrink:0;width:1px;height:20px}@media (max-width:768px){.PluginsPage-module__statusDivider___fJexN{display:none}}.PluginsPage-module__toolbar___-cit2{align-items:center;gap:8px;display:flex}.PluginsPage-module__toolbar___-cit2 .form-group{flex:1;max-width:480px;margin:0}.PluginsPage-module__toolbar___-cit2 .input{padding-right:36px}.PluginsPage-module__toolbar___-cit2 .btn>span{align-items:center;gap:8px;display:inline-flex}@media (max-width:768px){.PluginsPage-module__toolbar___-cit2{flex-direction:column;align-items:stretch}.PluginsPage-module__toolbar___-cit2 .form-group{max-width:none}}.PluginsPage-module__pluginList___Jk4FJ{border:1px solid color-mix(in srgb, var(--border-color) 70%, transparent);background:color-mix(in srgb, var(--border-color) 30%, transparent);border-radius:12px;flex-direction:column;gap:1px;display:flex;overflow:hidden}.PluginsPage-module__pluginRow___-y4iX{background:var(--bg-primary);grid-template-columns:40px 1fr auto;align-items:center;gap:16px;padding:16px 24px;transition:background-color .15s;display:grid}.PluginsPage-module__pluginRow___-y4iX:hover{background:var(--bg-hover)}@media (max-width:768px){.PluginsPage-module__pluginRow___-y4iX{grid-template-rows:auto auto;grid-template-columns:36px 1fr;gap:8px;padding:16px}}.PluginsPage-module__logoBox___9Hy-r{border:1px solid color-mix(in srgb, var(--border-color) 50%, transparent);background:color-mix(in srgb, var(--bg-tertiary) 60%, transparent);width:40px;height:40px;color:var(--text-secondary);border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex;overflow:hidden}.PluginsPage-module__logoBox___9Hy-r img{object-fit:cover;width:100%;height:100%}@media (max-width:768px){.PluginsPage-module__logoBox___9Hy-r{border-radius:8px;width:36px;height:36px}}.PluginsPage-module__pluginInfo___ODdnV{flex-direction:column;gap:4px;min-width:0;display:flex}.PluginsPage-module__pluginName___uX3d7{align-items:center;gap:8px;min-width:0;display:flex}.PluginsPage-module__pluginName___uX3d7 h2{min-width:0;color:var(--text-primary);text-overflow:ellipsis;white-space:nowrap;margin:0;font-size:15px;font-weight:650;line-height:1.3;overflow:hidden}.PluginsPage-module__pluginId___SjbKJ{color:var(--text-tertiary);text-overflow:ellipsis;white-space:nowrap;font-family:ui-monospace,SF Mono,Cascadia Mono,JetBrains Mono,Fira Code,Menlo,Consolas,Liberation Mono,monospace;font-size:12px;overflow:hidden}.PluginsPage-module__pluginMeta___xa89L{flex-wrap:wrap;align-items:center;gap:8px;margin-top:2px;display:flex}.PluginsPage-module__metaItem___05Mg9{min-width:0;max-width:100%;color:var(--text-tertiary);white-space:nowrap;align-items:center;gap:4px;font-size:12px;display:inline-flex}.PluginsPage-module__metaItem___05Mg9 strong{color:var(--text-secondary);font-weight:600}.PluginsPage-module__metaPath___JUDWR{text-overflow:ellipsis;display:block;overflow:hidden}.PluginsPage-module__metaDot___FpFyv{background:color-mix(in srgb, var(--text-tertiary) 50%, transparent);border-radius:50%;flex-shrink:0;width:3px;height:3px}.PluginsPage-module__badgeRow___USdlO{flex-wrap:wrap;gap:5px;display:flex}.PluginsPage-module__badge___2k1PE,.PluginsPage-module__badgeSuccess___1yPJW,.PluginsPage-module__badgeWarning___ADHL9,.PluginsPage-module__badgeMuted___f-Gd9{border-radius:6px;align-items:center;min-height:22px;padding:2px 8px;font-size:11px;font-weight:600;line-height:1.25;display:inline-flex}.PluginsPage-module__badge___2k1PE{background:color-mix(in srgb, var(--bg-secondary) 82%, transparent);border:1px solid color-mix(in srgb, var(--border-color) 50%, transparent);color:var(--text-secondary)}.PluginsPage-module__badgeSuccess___1yPJW{color:var(--success-color);background:#10b9811a;border:1px solid #10b98133}.PluginsPage-module__badgeWarning___ADHL9{color:var(--warning-color);background:#c657461a;border:1px solid #c6574633}.PluginsPage-module__badgeMuted___f-Gd9{background:color-mix(in srgb, var(--bg-secondary) 82%, transparent);border:1px solid color-mix(in srgb, var(--border-color) 40%, transparent);color:var(--text-tertiary)}.PluginsPage-module__rowActions___LvMkv{flex-wrap:wrap;flex-shrink:0;justify-content:flex-end;align-items:center;gap:8px;min-width:0;max-width:min(560px,48vw);display:flex}.PluginsPage-module__rowActions___LvMkv .btn>span{align-items:center;gap:6px;display:inline-flex}@media (max-width:768px){.PluginsPage-module__rowActions___LvMkv{grid-column:1/-1;justify-content:flex-start;max-width:none}}.PluginsPage-module__iconLink___ofzv1{border:1px solid var(--border-color);background:var(--bg-primary);min-height:30px;color:var(--text-primary);border-radius:8px;justify-content:center;align-items:center;font-size:12px;font-weight:600;text-decoration:none;transition:border-color .15s,background-color .15s,color .15s;display:inline-flex}.PluginsPage-module__iconLink___ofzv1:hover{border-color:var(--primary-color);background:var(--bg-hover);color:var(--primary-color)}.PluginsPage-module__iconLink___ofzv1{flex:none;width:30px}.PluginsPage-module__skeletonRow___BCdYy{background:var(--bg-primary);align-items:center;gap:16px;padding:16px 24px;display:flex}.PluginsPage-module__skeletonAvatar___qfNzu{background:linear-gradient(90deg, color-mix(in srgb, var(--bg-secondary) 86%, transparent) 25%, color-mix(in srgb, var(--bg-hover) 70%, transparent) 37%, color-mix(in srgb, var(--bg-secondary) 86%, transparent) 63%);background-size:400% 100%;border-radius:10px;flex-shrink:0;width:40px;height:40px;animation:1.35s ease-in-out infinite PluginsPage-module__skeletonPulse___FskV9}.PluginsPage-module__skeletonText___PKTOA{flex-direction:column;flex:1;gap:8px;display:flex}.PluginsPage-module__skeletonLine___91eQ6{background:linear-gradient(90deg, color-mix(in srgb, var(--bg-secondary) 86%, transparent) 25%, color-mix(in srgb, var(--bg-hover) 70%, transparent) 37%, color-mix(in srgb, var(--bg-secondary) 86%, transparent) 63%);background-size:400% 100%;border-radius:4px;height:14px;animation:1.35s ease-in-out infinite PluginsPage-module__skeletonPulse___FskV9}.PluginsPage-module__skeletonLine___91eQ6:first-child{width:45%}.PluginsPage-module__skeletonLine___91eQ6:last-child{width:70%;height:10px}.PluginsPage-module__sheetFooter___IZQM-{justify-content:flex-end;gap:8px;display:flex}.PluginsPage-module__configForm___acXwo{flex-direction:column;gap:24px;display:flex}.PluginsPage-module__formSection___J8eP4{flex-direction:column;gap:16px;display:flex}.PluginsPage-module__formSection___J8eP4 h3{color:var(--text-primary);margin:0;font-size:16px;font-weight:700}.PluginsPage-module__formSection___J8eP4 .form-group{margin:0}.PluginsPage-module__fieldRow___-q2Wa{border:1px solid var(--border-color);background:color-mix(in srgb, var(--bg-secondary) 72%, transparent);border-radius:8px;justify-content:space-between;align-items:center;gap:16px;min-height:52px;padding:16px;display:flex}.PluginsPage-module__fieldText___KkAH-{min-width:0}.PluginsPage-module__fieldLabel___3on7I{color:var(--text-primary);overflow-wrap:anywhere;font-size:14px;font-weight:650}.PluginsPage-module__fieldDescription___JEDFJ,.PluginsPage-module__fieldHint___MyVVK{color:var(--text-tertiary);overflow-wrap:anywhere;margin-top:4px;font-size:12px;line-height:1.45}.PluginsPage-module__formField___-MDet{flex-direction:column;gap:6px;display:flex}.PluginsPage-module__formField___-MDet label{color:var(--text-primary);overflow-wrap:anywhere;font-size:14px;font-weight:600}.PluginsPage-module__textarea___DVGj3{resize:vertical;border:1px solid var(--border-color);background:var(--bg-primary);min-height:148px;color:var(--text-primary);border-radius:8px;padding:10px 12px;font-family:ui-monospace,SF Mono,Cascadia Mono,JetBrains Mono,Fira Code,Menlo,Consolas,Liberation Mono,monospace;font-size:13px;line-height:1.5}.PluginsPage-module__textarea___DVGj3:focus{border-color:var(--primary-color);box-shadow:0 0 0 3px color-mix(in srgb, var(--primary-color) 18%, transparent);outline:none}.PluginsPage-module__fieldError___ekayR{color:var(--danger-color);background:#c657461a;border-radius:4px;padding:8px 10px;font-size:12px;line-height:1.4}.PluginsPage-module__emptyConfig___lkfig{border:1px dashed var(--border-color);background:color-mix(in srgb, var(--bg-secondary) 70%, transparent);color:var(--text-secondary);border-radius:8px;padding:16px;font-size:14px}@keyframes PluginsPage-module__skeletonPulse___FskV9{0%{background-position:100% 0}to{background-position:0 0}}@media (max-width:768px){.PluginsPage-module__page___CvQ2C{gap:16px}.PluginsPage-module__sheetFooter___IZQM-{flex-direction:column-reverse}.PluginsPage-module__sheetFooter___IZQM- .btn{width:100%}}.PluginInstallGateModal-module__gateModal___ue7KG{text-align:left}.PluginInstallGateModal-module__identity___cMUhh{text-align:center;border-bottom:1px solid var(--border-color);flex-direction:column;align-items:center;gap:8px;padding:8px 0 16px;display:flex}.PluginInstallGateModal-module__logoBox___if1mL{border:1px solid color-mix(in srgb, var(--border-color) 50%, transparent);background:color-mix(in srgb, var(--bg-tertiary) 60%, transparent);width:52px;height:52px;color:var(--text-secondary);border-radius:12px;justify-content:center;align-items:center;display:inline-flex;overflow:hidden}.PluginInstallGateModal-module__logoBox___if1mL img{object-fit:cover;width:100%;height:100%}.PluginInstallGateModal-module__name___EUXHi{color:var(--text-primary);overflow-wrap:anywhere;margin:0;font-size:20px;font-weight:700}.PluginInstallGateModal-module__slug___nUy93{color:var(--text-secondary);overflow-wrap:anywhere;margin:0;font-family:ui-monospace,SF Mono,Cascadia Mono,JetBrains Mono,Fira Code,Menlo,Consolas,Liberation Mono,monospace;font-size:13px}.PluginInstallGateModal-module__repoLink___YkOrf{max-width:100%;color:var(--text-secondary);align-items:center;gap:4px;margin:0;font-family:ui-monospace,SF Mono,Cascadia Mono,JetBrains Mono,Fira Code,Menlo,Consolas,Liberation Mono,monospace;font-size:13px;text-decoration:none;display:inline-flex}.PluginInstallGateModal-module__repoLink___YkOrf span{overflow-wrap:anywhere;min-width:0}.PluginInstallGateModal-module__repoLink___YkOrf svg{color:var(--text-tertiary);flex-shrink:0}.PluginInstallGateModal-module__repoLink___YkOrf:hover{color:var(--accent-color);text-decoration:underline}.PluginInstallGateModal-module__repoLink___YkOrf:hover svg{color:currentColor}.PluginInstallGateModal-module__repoLink___YkOrf:focus-visible{outline:2px solid var(--focus-ring-color,var(--accent-color));outline-offset:3px;border-radius:4px}.PluginInstallGateModal-module__source___nEQCo{color:var(--text-tertiary);overflow-wrap:anywhere;margin:0;font-size:12px}.PluginInstallGateModal-module__warningBanner___NeGNY{border:1px solid color-mix(in srgb, var(--quota-medium-color,#e0aa14) 45%, var(--border-color));background:color-mix(in srgb, var(--quota-medium-color,#e0aa14) 16%, var(--bg-secondary));color:var(--text-primary);border-radius:8px;align-items:center;gap:8px;margin-top:24px;padding:12px 14px;font-size:14px;font-weight:600;line-height:1.4;display:flex}.PluginInstallGateModal-module__warningBanner___NeGNY svg{color:var(--quota-medium-color,#e0aa14);flex-shrink:0}.PluginInstallGateModal-module__effects___3sPvx{border-left:2px solid var(--border-color);flex-direction:column;gap:12px;margin:16px 0 0;padding-left:16px;list-style:none;display:flex}.PluginInstallGateModal-module__effects___3sPvx li{color:var(--text-secondary);padding-left:18px;font-size:14px;line-height:1.5;position:relative}.PluginInstallGateModal-module__effects___3sPvx li:before{content:"";background:var(--text-tertiary);border-radius:50%;width:7px;height:7px;position:absolute;top:7px;left:0}.PluginInstallGateModal-module__untrustedAlert___qDVbK{background:#c657461a;border:1px solid #c6574659;border-radius:8px;margin-top:24px;padding:12px 14px}.PluginInstallGateModal-module__untrustedText___oIwKQ{color:var(--danger-color);margin:0;font-size:13.5px;font-weight:600;line-height:1.5}.PluginInstallGateModal-module__originGrid___YoESL{grid-template-columns:auto 1fr;gap:4px 12px;margin:10px 0 0;display:grid}.PluginInstallGateModal-module__originGrid___YoESL dt{color:var(--text-secondary);font-size:12px;font-weight:600}.PluginInstallGateModal-module__originGrid___YoESL dd{color:var(--text-primary);overflow-wrap:anywhere;margin:0;font-family:ui-monospace,SF Mono,Cascadia Mono,JetBrains Mono,Fira Code,Menlo,Consolas,Liberation Mono,monospace;font-size:12px}.PluginInstallGateModal-module__confirmBlock___L2Vcd{margin-top:24px}.PluginInstallGateModal-module__confirmPrompt___zS8uB{color:var(--text-primary);overflow-wrap:anywhere;margin-bottom:8px;font-size:14px;font-weight:600;line-height:1.5;display:block}.PluginInstallGateModal-module__confirmHint___ZYG8r{color:var(--text-tertiary);margin:8px 0 0;font-size:12px}.PluginStorePage-module__page___rN2vB{flex-direction:column;gap:24px;width:100%;display:flex}.PluginStorePage-module__pageHeader___a5hmM{flex-direction:column;gap:8px;display:flex}.PluginStorePage-module__title___QkQ1O{color:var(--text-primary);margin:0;font-size:28px;font-weight:700;line-height:1.2}.PluginStorePage-module__description___r173b{color:var(--text-secondary);margin:0;font-size:14px;line-height:1.5}.PluginStorePage-module__errorBox___wObm5,.PluginStorePage-module__warningBox___m3Ra1{border-radius:8px;padding:16px;font-size:14px;line-height:1.5}.PluginStorePage-module__errorBox___wObm5{border:1px solid var(--danger-color);color:var(--danger-color);background:#c657461a;justify-content:space-between;align-items:center;gap:16px;display:flex}.PluginStorePage-module__errorBox___wObm5 span{overflow-wrap:anywhere;min-width:0}.PluginStorePage-module__errorBox___wObm5 .btn{flex-shrink:0}@media (max-width:768px){.PluginStorePage-module__errorBox___wObm5{flex-direction:column;align-items:stretch}}.PluginStorePage-module__warningBox___m3Ra1{border:1px solid color-mix(in srgb, var(--warning-color,#c65746) 42%, var(--border-color));background:color-mix(in srgb, var(--warning-color,#c65746) 9%, var(--bg-secondary));color:var(--text-primary)}.PluginStorePage-module__sourceErrorList___yirmz{flex-direction:column;gap:6px;margin:8px 0 0;padding:0;list-style:none;display:flex}.PluginStorePage-module__sourceErrorList___yirmz li{flex-direction:column;gap:2px;min-width:0;display:flex}.PluginStorePage-module__sourceErrorList___yirmz span{overflow-wrap:anywhere;font-weight:700}.PluginStorePage-module__sourceErrorList___yirmz small{color:var(--text-secondary);overflow-wrap:anywhere;font-size:12px}.PluginStorePage-module__securityBanner___OtvY-{border:1px solid color-mix(in srgb, var(--quota-medium-color,#e0aa14) 45%, var(--border-color));background:color-mix(in srgb, var(--quota-medium-color,#e0aa14) 14%, var(--bg-secondary));color:var(--text-primary);border-radius:8px;align-items:flex-start;gap:8px;padding:12px 14px;display:flex}.PluginStorePage-module__securityBanner___OtvY->svg{color:var(--quota-medium-color,#e0aa14);flex-shrink:0;margin-top:1px}.PluginStorePage-module__securityBannerText___eDLQ1{min-width:0}.PluginStorePage-module__securityBannerText___eDLQ1 strong{font-size:14px;font-weight:700;line-height:1.4;display:block}.PluginStorePage-module__securityBannerText___eDLQ1 p{color:var(--text-secondary);margin:2px 0 0;font-size:13px;line-height:1.5}.PluginStorePage-module__statusBar___b8rzI{border:1px solid color-mix(in srgb, var(--border-color) 60%, transparent);background:color-mix(in srgb, var(--bg-secondary) 60%, transparent);border-radius:10px;flex-wrap:wrap;align-items:center;gap:10px;padding:10px 14px;display:flex}.PluginStorePage-module__statusPill___AN7oF{border:1px solid color-mix(in srgb, var(--border-color) 50%, transparent);background:color-mix(in srgb, var(--bg-primary) 56%, transparent);white-space:nowrap;border-radius:9999px;align-items:center;gap:6px;min-width:0;max-width:100%;padding:5px 12px;font-size:12px;font-weight:600;display:inline-flex}.PluginStorePage-module__statusDot___llMK6{border-radius:50%;flex-shrink:0;width:7px;height:7px}.PluginStorePage-module__statusDotOn___cQMJQ{background:#10b981;box-shadow:0 0 6px #10b98180}.PluginStorePage-module__statusDotOff___auyTL{background:var(--text-tertiary)}.PluginStorePage-module__statusLabel___0CDXB{color:var(--text-secondary)}.PluginStorePage-module__statusValue___Buecx{color:var(--text-primary);font-weight:700}.PluginStorePage-module__statusPathValue___gU-aN{text-overflow:ellipsis;white-space:nowrap;min-width:0;max-width:min(360px,58vw);display:block;overflow:hidden}.PluginStorePage-module__statusDivider___0N7N9{background:color-mix(in srgb, var(--border-color) 60%, transparent);flex-shrink:0;width:1px;height:20px}@media (max-width:768px){.PluginStorePage-module__statusDivider___0N7N9{display:none}}.PluginStorePage-module__toolbar___Z-Caf{align-items:center;gap:8px;display:flex}.PluginStorePage-module__toolbar___Z-Caf .form-group{flex:1;max-width:480px;margin:0}.PluginStorePage-module__toolbar___Z-Caf .input{padding-right:36px}.PluginStorePage-module__toolbar___Z-Caf .btn>span{align-items:center;gap:8px;display:inline-flex}@media (max-width:768px){.PluginStorePage-module__toolbar___Z-Caf{flex-direction:column;align-items:stretch}.PluginStorePage-module__toolbar___Z-Caf .form-group{max-width:none}}.PluginStorePage-module__filterChips___IS9vp{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.PluginStorePage-module__filterChip___GUJrG{border:1px solid color-mix(in srgb, var(--border-color) 70%, transparent);background:var(--bg-primary);color:var(--text-secondary);cursor:pointer;border-radius:9999px;align-items:center;gap:6px;padding:5px 12px;font-size:12px;font-weight:600;line-height:1.4;transition:border-color .15s,background-color .15s,color .15s;display:inline-flex}.PluginStorePage-module__filterChip___GUJrG:hover{border-color:var(--primary-color);color:var(--text-primary)}.PluginStorePage-module__filterChipActive___ej1JK{border-color:var(--primary-color);background:color-mix(in srgb, var(--primary-color) 12%, var(--bg-primary));color:var(--text-primary)}.PluginStorePage-module__filterChipCount___YmS7u{background:color-mix(in srgb, var(--border-color) 45%, transparent);min-width:18px;color:var(--text-secondary);border-radius:9999px;justify-content:center;align-items:center;padding:0 5px;font-size:11px;font-weight:700;display:inline-flex}.PluginStorePage-module__cardGrid___fnYwp{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px;display:grid}@media (max-width:768px){.PluginStorePage-module__cardGrid___fnYwp{grid-template-columns:1fr}}.PluginStorePage-module__card___T-2ZC{border:1px solid color-mix(in srgb, var(--border-color) 70%, transparent);background:var(--bg-primary);border-radius:12px;flex-direction:column;gap:8px;padding:16px;transition:border-color .15s,background-color .15s;display:flex}.PluginStorePage-module__card___T-2ZC:hover{border-color:color-mix(in srgb, var(--primary-color) 45%, var(--border-color));background:var(--bg-hover)}.PluginStorePage-module__cardHeader___ApM1k{grid-template-columns:40px minmax(0,1fr);align-items:flex-start;gap:6px 8px;display:grid}.PluginStorePage-module__logoBox___h82gm{border:1px solid color-mix(in srgb, var(--border-color) 50%, transparent);background:color-mix(in srgb, var(--bg-tertiary) 60%, transparent);width:40px;height:40px;color:var(--text-secondary);border-radius:10px;flex-shrink:0;grid-area:1/1;justify-content:center;align-items:center;display:inline-flex;overflow:hidden}.PluginStorePage-module__logoBox___h82gm img{object-fit:cover;width:100%;height:100%}.PluginStorePage-module__cardTitleBlock___6IWjb{flex-direction:column;grid-area:1/2;gap:2px;min-width:0;display:flex}.PluginStorePage-module__cardTitle___iD68r{color:var(--text-primary);overflow-wrap:anywhere;-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:0;font-size:15px;font-weight:650;line-height:1.3;display:-webkit-box;overflow:hidden}.PluginStorePage-module__cardId___W5pBu{color:var(--text-tertiary);text-overflow:ellipsis;white-space:nowrap;font-family:ui-monospace,SF Mono,Cascadia Mono,JetBrains Mono,Fira Code,Menlo,Consolas,Liberation Mono,monospace;font-size:12px;overflow:hidden}.PluginStorePage-module__cardBadges___mWJO0{flex-wrap:wrap;grid-area:2/2;justify-content:flex-start;gap:5px;min-width:0;display:flex}.PluginStorePage-module__cardBadges___mWJO0:empty{display:none}.PluginStorePage-module__badge___4g24a,.PluginStorePage-module__badgeSuccess___wg0Ot,.PluginStorePage-module__badgeWarning___xHNML,.PluginStorePage-module__badgeUntrusted___Wjoz1{border-radius:6px;align-items:center;min-height:22px;padding:2px 8px;font-size:11px;font-weight:600;line-height:1.25;display:inline-flex}.PluginStorePage-module__badge___4g24a{background:color-mix(in srgb, var(--bg-secondary) 82%, transparent);border:1px solid color-mix(in srgb, var(--border-color) 50%, transparent);color:var(--text-secondary)}.PluginStorePage-module__badgeSuccess___wg0Ot{color:var(--success-color);background:#10b9811a;border:1px solid #10b98133}.PluginStorePage-module__badgeWarning___xHNML{color:var(--warning-color);background:#c657461a;border:1px solid #c6574633}.PluginStorePage-module__badgeUntrusted___Wjoz1{color:var(--danger-color);background:#c657461f;border:1px solid #c6574666;gap:4px}.PluginStorePage-module__badgeUntrusted___Wjoz1 svg{flex-shrink:0}.PluginStorePage-module__cardDesc___jQ-NX{color:var(--text-secondary);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:0;font-size:13px;line-height:1.5;display:-webkit-box;overflow:hidden}.PluginStorePage-module__cardDescBlock___yUsqR{flex-direction:column;gap:4px;min-width:0;display:flex}.PluginStorePage-module__cardDescExpanded___A3Tfg{-webkit-line-clamp:initial;display:block;overflow:visible}.PluginStorePage-module__cardDescToggle___zYFf8{color:var(--primary-color);cursor:pointer;font:inherit;background:0 0;border:0;align-self:flex-start;padding:0;font-size:12px;font-weight:650;line-height:1.4}.PluginStorePage-module__cardDescToggle___zYFf8:hover{color:var(--primary-hover);text-decoration:underline}.PluginStorePage-module__cardDescToggle___zYFf8:focus-visible{outline:2px solid color-mix(in srgb, var(--primary-color) 45%, transparent);outline-offset:3px;border-radius:4px}.PluginStorePage-module__cardMeta___vVo9C{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.PluginStorePage-module__metaItem___kRo15{min-width:0;max-width:100%;color:var(--text-tertiary);white-space:nowrap;align-items:center;gap:8px;font-size:12px;display:inline-flex}.PluginStorePage-module__metaItem___kRo15 strong{color:var(--text-secondary);font-weight:600}.PluginStorePage-module__metaDot___MB3Eg{background:color-mix(in srgb, var(--text-tertiary) 50%, transparent);border-radius:50%;flex-shrink:0;width:3px;height:3px}.PluginStorePage-module__tagRow___E6-yD{flex-wrap:wrap;gap:5px;display:flex}.PluginStorePage-module__tag___HqCio{background:color-mix(in srgb, var(--bg-secondary) 82%, transparent);border:1px solid color-mix(in srgb, var(--border-color) 40%, transparent);color:var(--text-tertiary);border-radius:9999px;align-items:center;padding:2px 8px;font-size:11px;font-weight:600;line-height:1.4;display:inline-flex}.PluginStorePage-module__cardFooter___2L0tU{justify-content:space-between;align-items:center;gap:8px;margin-top:auto;padding-top:8px;display:flex}.PluginStorePage-module__cardActions___Ks10I{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.PluginStorePage-module__cardActions___Ks10I .btn>span{align-items:center;gap:6px;display:inline-flex}.PluginStorePage-module__cardLinks___SkIwi{flex-shrink:0;align-items:center;gap:8px;display:flex}.PluginStorePage-module__iconLink___Bv605{border:1px solid var(--border-color);background:var(--bg-primary);width:30px;min-height:30px;color:var(--text-primary);border-radius:8px;flex:none;justify-content:center;align-items:center;text-decoration:none;transition:border-color .15s,background-color .15s,color .15s;display:inline-flex}.PluginStorePage-module__iconLink___Bv605:hover{border-color:var(--primary-color);background:var(--bg-hover);color:var(--primary-color)}.PluginStorePage-module__installOptions___OLaer{flex-direction:column;gap:16px;display:flex}.PluginStorePage-module__installMessage___j08Jl{color:var(--text-primary);margin:0;font-size:14px;line-height:1.55}.PluginStorePage-module__installVersionField___O2EFR{flex-direction:column;gap:10px;display:flex}.PluginStorePage-module__installVersionLabel___9EWCy{color:var(--text-secondary);font-size:12px;font-weight:700}.PluginStorePage-module__installVersionModes___kzcLd{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}@media (max-width:768px){.PluginStorePage-module__installVersionModes___kzcLd{grid-template-columns:1fr}}.PluginStorePage-module__installVersionMode___0bb7i{border:1px solid color-mix(in srgb, var(--border-color) 70%, transparent);background:var(--bg-primary);cursor:pointer;border-radius:8px;gap:8px;min-width:0;padding:10px;transition:border-color .15s,background-color .15s;display:flex}.PluginStorePage-module__installVersionMode___0bb7i:hover{border-color:color-mix(in srgb, var(--primary-color) 45%, var(--border-color));background:var(--bg-hover)}.PluginStorePage-module__installVersionMode___0bb7i input{flex:none;margin-top:2px}.PluginStorePage-module__installVersionModeActive___Zvnf2{border-color:var(--primary-color);background:color-mix(in srgb, var(--primary-color) 10%, var(--bg-primary))}.PluginStorePage-module__installVersionModeDisabled___f34mS{cursor:not-allowed;opacity:.7}.PluginStorePage-module__installVersionModeText___7Md-1{flex-direction:column;gap:2px;min-width:0;display:flex}.PluginStorePage-module__installVersionModeText___7Md-1 strong{color:var(--text-primary);font-size:13px;font-weight:700;line-height:1.3}.PluginStorePage-module__installVersionModeText___7Md-1 small{color:var(--text-secondary);overflow-wrap:anywhere;font-size:11px;line-height:1.4}.PluginStorePage-module__installVersionPanel___--Okp{border:1px solid color-mix(in srgb, var(--border-color) 60%, transparent);background:color-mix(in srgb, var(--bg-secondary) 65%, transparent);border-radius:8px;flex-direction:column;gap:8px;padding:10px;display:flex}.PluginStorePage-module__installVersionPanel___--Okp .form-group{margin:0}.PluginStorePage-module__installVersionHint___0KAz6{color:var(--text-secondary);margin:0;font-size:12px;line-height:1.45}.PluginStorePage-module__installVersionWarning___fmxUK{color:var(--warning-color);overflow-wrap:anywhere;margin:0;font-size:12px;line-height:1.45}.PluginStorePage-module__installVersionCheckbox___JnlKK{width:-moz-fit-content;width:fit-content;max-width:100%;color:var(--text-secondary);cursor:pointer;align-items:center;gap:7px;font-size:12px;font-weight:600;line-height:1.4;display:inline-flex}.PluginStorePage-module__installVersionCheckbox___JnlKK input{flex:none}.PluginStorePage-module__installReleaseLink___TE77I{width:-moz-fit-content;width:fit-content;max-width:100%;color:var(--primary-color);align-items:center;gap:5px;font-size:12px;font-weight:650;line-height:1.4;text-decoration:none;display:inline-flex}.PluginStorePage-module__installReleaseLink___TE77I:hover{color:var(--primary-hover);text-decoration:underline}.PluginStorePage-module__installReleaseLink___TE77I svg{flex:none}.PluginStorePage-module__installDialogActions___ea-PN{justify-content:flex-end;gap:8px;margin-top:8px;display:flex}@media (max-width:768px){.PluginStorePage-module__installDialogActions___ea-PN{flex-direction:column-reverse}}.PluginStorePage-module__skeletonCard___QXKVq{border:1px solid color-mix(in srgb, var(--border-color) 70%, transparent);background:var(--bg-primary);border-radius:12px;flex-direction:column;gap:16px;padding:16px;display:flex}.PluginStorePage-module__skeletonHeader___joNtm{align-items:center;gap:16px;display:flex}.PluginStorePage-module__skeletonAvatar___bmFWM{background:linear-gradient(90deg, color-mix(in srgb, var(--bg-secondary) 86%, transparent) 25%, color-mix(in srgb, var(--bg-hover) 70%, transparent) 37%, color-mix(in srgb, var(--bg-secondary) 86%, transparent) 63%);background-size:400% 100%;border-radius:10px;flex-shrink:0;width:40px;height:40px;animation:1.35s ease-in-out infinite PluginStorePage-module__skeletonPulse___TfDaw}.PluginStorePage-module__skeletonText___JE5Eo{flex-direction:column;flex:1;gap:8px;display:flex}.PluginStorePage-module__skeletonLine___Nyb3e{background:linear-gradient(90deg, color-mix(in srgb, var(--bg-secondary) 86%, transparent) 25%, color-mix(in srgb, var(--bg-hover) 70%, transparent) 37%, color-mix(in srgb, var(--bg-secondary) 86%, transparent) 63%);background-size:400% 100%;border-radius:4px;height:14px;animation:1.35s ease-in-out infinite PluginStorePage-module__skeletonPulse___TfDaw}.PluginStorePage-module__skeletonLine___Nyb3e:first-child{width:45%}.PluginStorePage-module__skeletonLine___Nyb3e:last-child{width:70%;height:10px}.PluginStorePage-module__skeletonBody___Zy7HX{background:linear-gradient(90deg, color-mix(in srgb, var(--bg-secondary) 86%, transparent) 25%, color-mix(in srgb, var(--bg-hover) 70%, transparent) 37%, color-mix(in srgb, var(--bg-secondary) 86%, transparent) 63%);background-size:400% 100%;border-radius:8px;height:56px;animation:1.35s ease-in-out infinite PluginStorePage-module__skeletonPulse___TfDaw}@keyframes PluginStorePage-module__skeletonPulse___TfDaw{0%{background-position:100% 0}to{background-position:0 0}}@media (max-width:768px){.PluginStorePage-module__page___rN2vB{gap:16px}}.Field-module__fieldsRoot___8o0aC .form-group{gap:7px;margin-bottom:0}.Field-module__fieldsRoot___8o0aC .form-group>label{color:var(--text-secondary);letter-spacing:.02em;font-size:12px;font-weight:700}.Field-module__fieldsRoot___8o0aC .input{background:var(--bg-secondary);border-color:var(--border-color);min-height:42px;box-shadow:none;transition:border-color var(--dur-hover,.2s) var(--ease-out-strong,ease-out), background-color var(--dur-hover,.2s) var(--ease-out-strong,ease-out), box-shadow var(--dur-hover,.2s) var(--ease-out-strong,ease-out);border-radius:10px}.Field-module__fieldsRoot___8o0aC .input:focus{background:var(--bg-primary);border-color:var(--text-primary);box-shadow:0 0 0 2px color-mix(in srgb, var(--text-primary) 12%, transparent)}.Field-module__fieldsRoot___8o0aC textarea.input{min-height:112px}.Field-module__fieldsRoot___8o0aC .hint{color:var(--text-secondary);font-size:12px;line-height:1.55}.Field-module__fieldsRoot___8o0aC .error-box{border-radius:10px}.Field-module__fieldsRoot___8o0aC .item-list{gap:8px;margin-top:8px}.Field-module__fieldsRoot___8o0aC .item-row{border-color:var(--border-color);background:0 0;border-radius:10px;padding:12px}.Field-module__fieldsRoot___8o0aC .item-row .item-meta{gap:4px}.Field-module__fieldsRoot___8o0aC .item-row .item-actions{flex-wrap:wrap}.Field-module__fieldsRoot___8o0aC .pill{border:1px solid var(--border-color);color:var(--text-secondary);background:0 0;border-radius:6px}.Field-module__toggleRow___n6yLc{border:1px solid var(--border-color);min-height:74px;transition:border-color var(--dur-hover,.2s) var(--ease-out-strong,ease-out), background-color var(--dur-hover,.2s) var(--ease-out-strong,ease-out);background:0 0;border-radius:10px;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:14px;padding:14px;display:grid}@media (max-width:768px){.Field-module__toggleRow___n6yLc{grid-template-columns:minmax(0,1fr)}}@media (hover:hover) and (pointer:fine){.Field-module__toggleRow___n6yLc:hover{border-color:var(--border-hover);background:color-mix(in srgb, var(--bg-tertiary) 40%, transparent)}}.Field-module__toggleCopy___J1wWT{flex-direction:column;gap:5px;min-width:0;display:flex}.Field-module__toggleTitle___7gVIF{color:var(--text-primary);font-size:14px;font-weight:700;line-height:1.25}.Field-module__toggleDescription___MWMUN{color:var(--text-secondary);font-size:12px;line-height:1.55}.Field-module__fieldGrid___BsdAF{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px;display:grid}@media (max-width:768px){.Field-module__fieldGrid___BsdAF{grid-template-columns:minmax(0,1fr)}}.Field-module__fieldStack___Bt7pD{flex-direction:column;gap:14px;display:flex}.Field-module__divider___q7u-7{background:var(--border-color);height:1px}.Field-module__fieldAnchor___OUIEI{min-width:0;scroll-margin-top:calc(var(--header-height,64px) + 16px);display:block}.Field-module__fieldAnchorWide___tPUlq{grid-column:span 2}@media (max-width:768px){.Field-module__fieldAnchorWide___tPUlq{grid-column:auto}}.Field-module__fieldSponsorHint___sZFDJ{color:var(--text-secondary);margin:-2px 0 0;font-size:12px;line-height:1.5}.Field-module__fieldSponsorSpacer___W-es0{visibility:hidden;margin:-2px 0 0;font-size:12px;line-height:1.5}@media (max-width:768px){.Field-module__fieldSponsorSpacer___W-es0{display:none}}.Field-module__fieldSponsorLink___AGeOB{border:1px solid var(--amber-30);background:var(--amber-10);color:var(--amber-text);vertical-align:baseline;border-radius:5px;align-items:center;gap:4px;padding:1px 5px;font-weight:600;text-decoration:none;transition:background-color .15s;display:inline-flex}.Field-module__fieldSponsorLink___AGeOB:hover{background:var(--amber-30);text-decoration:none}.Field-module__fieldSponsorLogo___6uaQw{width:auto;height:13px;display:block}.Field-module__fieldHighlightActive___q1OQx{border-radius:10px;animation:1.8s ease-out Field-module__config-field-highlight___N5Rac}@keyframes Field-module__config-field-highlight___N5Rac{0%{box-shadow:0 0 0 3px color-mix(in srgb, var(--text-primary) 55%, transparent)}55%{box-shadow:0 0 0 3px color-mix(in srgb, var(--text-primary) 32%, transparent)}to{box-shadow:0 0 0 3px #0000}}.Field-module__group___KJbtB{border:1px solid var(--border-color);background:0 0;border-radius:10px;flex-direction:column;gap:12px;padding:16px;display:flex}.Field-module__groupHeader___JXTr-{flex-direction:column;gap:5px;display:flex}.Field-module__groupTitle___YoSVI{color:var(--text-primary);margin:0;font-size:15px;font-weight:700;line-height:1.25}.Field-module__groupDescription___V2lRJ{color:var(--text-secondary);margin:0;font-size:12px;line-height:1.6}.Field-module__fieldShell___lOmzl{flex-direction:column;gap:7px;min-width:0;display:flex}.Field-module__fieldLabel___SP5r6{color:var(--text-secondary);letter-spacing:.02em;font-size:12px;font-weight:700}.Field-module__fieldControl___DPtZb{position:relative}.Field-module__fieldHint___Co12l{color:var(--text-secondary);font-size:12px;line-height:1.55}.Field-module__inlinePill___8-GKa{border:1px solid var(--border-color);background:var(--bg-primary);min-height:24px;color:var(--text-secondary);border-radius:6px;align-items:center;padding:0 8px;font-size:11px;font-weight:700;display:inline-flex;position:absolute;top:50%;right:8px;transform:translateY(-50%)}@media (max-width:768px){.Field-module__group___KJbtB,.Field-module__toggleRow___n6yLc{padding:14px}}@media (max-width:380px){.Field-module__group___KJbtB,.Field-module__toggleRow___n6yLc{padding:12px}}@media (prefers-reduced-motion:reduce){.Field-module__fieldsRoot___8o0aC .input,.Field-module__toggleRow___n6yLc{transition:none}.Field-module__fieldHighlightActive___q1OQx{box-shadow:0 0 0 3px color-mix(in srgb, var(--text-primary) 32%, transparent);animation:none}}.ConfigHeader-module__header___M4wX-{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px 24px;display:flex}.ConfigHeader-module__copy___l-QBQ{flex-direction:column;gap:7px;min-width:0;display:flex}.ConfigHeader-module__title___-cK3B{letter-spacing:-.02em;color:var(--text-primary);margin:0;font-size:clamp(26px,3.2vw,30px);font-weight:700;line-height:1.15}.ConfigHeader-module__meta___dVz1n{font-variant-numeric:tabular-nums;letter-spacing:.02em;color:var(--text-secondary);flex-wrap:wrap;align-items:baseline;gap:4px 8px;margin:0;font-family:ui-monospace,SF Mono,Cascadia Mono,JetBrains Mono,Fira Code,Menlo,Consolas,Liberation Mono,monospace;font-size:13px;font-weight:500;display:flex}.ConfigHeader-module__meta___dVz1n:before{content:"▍";color:var(--viz-success);align-self:center;margin-right:1px;font-size:13px;line-height:1}.ConfigHeader-module__metaDot___K51ko{color:var(--text-quaternary);-webkit-user-select:none;user-select:none}.ConfigHeader-module__metaMuted___oITta{color:var(--text-secondary)}.ConfigHeader-module__metaWarning___cUkRg{color:var(--amber-text)}.ConfigHeader-module__metaError___zJK2-{color:var(--viz-failure)}.ConfigHeader-module__metaOk___MD6Cm{color:var(--viz-success)}.ConfigHeader-module__actions___Dvt-b{flex-shrink:0;align-items:center;gap:6px;display:flex}.ConfigHeader-module__ghostAction___WaXy7{cursor:pointer;color:var(--text-secondary);transition:color var(--dur-hover,.2s) var(--ease-out-strong,ease-out), transform var(--dur-press,.16s) var(--ease-out-strong,ease-out);background:0 0;border:0;border-radius:9999px;align-items:center;gap:6px;padding:10px 14px;font-size:13px;font-weight:550;line-height:1;display:inline-flex}.ConfigHeader-module__ghostAction___WaXy7:disabled{cursor:not-allowed;opacity:.55}.ConfigHeader-module__ghostAction___WaXy7:active:not(:disabled){transform:scale(.97)}.ConfigHeader-module__ghostAction___WaXy7:focus-visible{outline:2px solid var(--primary-color);outline-offset:2px}@media (hover:hover) and (pointer:fine){.ConfigHeader-module__ghostAction___WaXy7:hover:not(:disabled){color:var(--text-primary)}}.ConfigHeader-module__spinning___KK4Wt{animation:.8s linear infinite ConfigHeader-module__config-header-spin___EPV5i}@keyframes ConfigHeader-module__config-header-spin___EPV5i{to{transform:rotate(360deg)}}@media (max-width:768px){.ConfigHeader-module__header___M4wX-{flex-direction:column;align-items:stretch}.ConfigHeader-module__actions___Dvt-b{flex-wrap:wrap;justify-content:flex-start}}@media (prefers-reduced-motion:reduce){.ConfigHeader-module__ghostAction___WaXy7{transition:none}.ConfigHeader-module__ghostAction___WaXy7:active:not(:disabled){transform:none}.ConfigHeader-module__spinning___KK4Wt{animation:none}}.ConfigSearch-module__searchBox___Fifjj{flex:240px;min-width:0;max-width:420px;position:relative}.ConfigSearch-module__searchBox___Fifjj .form-group{margin-bottom:0}.ConfigSearch-module__searchBox___Fifjj .input{border-radius:10px;height:38px;font-size:13px}.ConfigSearch-module__searchControl___X1kcu{padding-right:38px!important}.ConfigSearch-module__searchIcon___scYBP{color:var(--text-tertiary);pointer-events:none;align-items:center;display:inline-flex}.ConfigSearch-module__searchResults___hUNGK{z-index:20;border:1px solid var(--border-color);background:var(--floating-surface,var(--bg-primary));max-height:320px;box-shadow:var(--floating-shadow,0 14px 32px color-mix(in srgb, var(--text-primary) 16%, transparent));transform-origin:top;animation:ConfigSearch-module__config-search-in___g05RZ var(--dur-press,.16s) var(--ease-out-strong,ease-out) both;border-radius:12px;flex-direction:column;gap:2px;padding:6px;display:flex;position:absolute;top:calc(100% + 6px);left:0;right:0;overflow-y:auto}@keyframes ConfigSearch-module__config-search-in___g05RZ{0%{opacity:0;transform:translateY(-4px)}}.ConfigSearch-module__searchResultItem___Bl0WK{cursor:pointer;font:inherit;color:inherit;background:0 0;border:none;outline:none;margin:0;padding:0}.ConfigSearch-module__searchResultItem___Bl0WK:focus{outline-offset:2px;outline:2px solid #8b8680}.ConfigSearch-module__searchResultItem___Bl0WK{text-align:left;border-radius:8px;justify-content:space-between;align-items:center;gap:12px;width:100%;padding:9px 10px;transition:background-color .15s;display:flex}.ConfigSearch-module__searchResultItem___Bl0WK:hover,.ConfigSearch-module__searchResultItemActive___wwJ6v{background:color-mix(in srgb, var(--text-primary) 6%, transparent)}.ConfigSearch-module__searchResultLabel___8m98B{min-width:0;color:var(--text-primary);align-items:baseline;gap:7px;font-size:13px;font-weight:650;line-height:1.3;display:inline-flex}.ConfigSearch-module__searchResultQualifier___9KaMz{color:var(--text-tertiary);white-space:nowrap;font-size:11px;font-weight:600}.ConfigSearch-module__searchResultSection___erZIc{color:var(--text-secondary);white-space:nowrap;flex:none;font-size:11px;font-weight:650}.ConfigSearch-module__searchEmpty___boZgd{color:var(--text-secondary);text-align:center;padding:12px 10px;font-size:13px}@media (max-width:768px){.ConfigSearch-module__searchBox___Fifjj{flex-basis:100%;max-width:none}}@media (prefers-reduced-motion:reduce){.ConfigSearch-module__searchResults___hUNGK{animation:none}.ConfigSearch-module__searchResultItem___Bl0WK{transition:none}}.ConfigTabs-module__tabs___k0STP{scrollbar-width:none;flex:1;align-items:stretch;gap:2px;min-width:0;display:flex;overflow-x:auto}.ConfigTabs-module__tabs___k0STP::-webkit-scrollbar{display:none}.ConfigTabs-module__tab___phNMq{cursor:pointer;color:var(--text-secondary);white-space:nowrap;transition:color var(--dur-hover,.2s) var(--ease-out-strong,ease-out), background-color var(--dur-hover,.2s) var(--ease-out-strong,ease-out);background:0 0;border:0;border-radius:8px 8px 0 0;flex-shrink:0;align-items:center;gap:7px;padding:8px 12px 11px;font-size:13px;font-weight:550;display:inline-flex;position:relative}.ConfigTabs-module__tab___phNMq:after{content:"";height:2px;transition:background-color var(--dur-hover,.2s) var(--ease-out-strong,ease-out);background:0 0;border-radius:9999px;position:absolute;bottom:-1px;left:10px;right:10px}.ConfigTabs-module__tab___phNMq:disabled{cursor:not-allowed;opacity:.55}.ConfigTabs-module__tab___phNMq:active:not(:disabled){transform:translateY(.5px)}.ConfigTabs-module__tab___phNMq:focus-visible{outline:2px solid var(--primary-color);outline-offset:-2px}@media (hover:hover) and (pointer:fine){.ConfigTabs-module__tab___phNMq:hover:not(:disabled){color:var(--text-primary);background:color-mix(in srgb, var(--bg-tertiary) 55%, transparent)}}.ConfigTabs-module__tabActive___oqWmm{color:var(--text-primary);font-weight:650}.ConfigTabs-module__tabActive___oqWmm:after{background:var(--text-primary)}.ConfigTabs-module__tabActive___oqWmm:disabled{opacity:1}.ConfigTabs-module__tabGlyph___m7l9d{color:var(--text-tertiary);flex-shrink:0}.ConfigTabs-module__tabActive___oqWmm .ConfigTabs-module__tabGlyph___m7l9d{color:var(--text-primary)}.ConfigTabs-module__tabLabel___nOp9i{line-height:1.4}.ConfigTabs-module__tabBadge___-B1W5{font-variant-numeric:tabular-nums;color:var(--viz-failure);background:color-mix(in srgb, var(--viz-failure) 12%, transparent);border-radius:9999px;padding:0 6px;font-family:ui-monospace,SF Mono,Cascadia Mono,JetBrains Mono,Fira Code,Menlo,Consolas,Liberation Mono,monospace;font-size:10.5px;font-weight:650;line-height:1.6}.ConfigTabs-module__tabDirtyDot___0tB-q{background:var(--amber-color);border-radius:9999px;flex-shrink:0;width:6px;height:6px}@media (prefers-reduced-motion:reduce){.ConfigTabs-module__tab___phNMq,.ConfigTabs-module__tab___phNMq:after{transition:none}.ConfigTabs-module__tab___phNMq:active:not(:disabled){transform:none}}.DiffModal-module__diffModal___tpgZQ .modal-body{max-height:none;padding:0;overflow:hidden}.DiffModal-module__content___43wet{flex-direction:column;height:70vh;min-height:420px;display:flex}.DiffModal-module__emptyState___8pYeq{border:1px dashed var(--border-color);background:var(--bg-secondary);color:var(--text-secondary);border-radius:8px;flex:1;place-items:center;margin:16px;font-size:14px;display:grid}.DiffModal-module__diffContainer___YueNR{flex-direction:column;flex:1;min-height:0;display:flex;overflow:hidden}.DiffModal-module__fileHeader___0t0Zv{background:var(--bg-secondary);border-bottom:1px solid var(--border-color);flex-shrink:0;align-items:center;gap:8px;padding:10px 16px;display:flex}.DiffModal-module__fileIcon___NgksP{color:var(--text-tertiary);flex-shrink:0}.DiffModal-module__fileName___ichM3{color:var(--text-primary);font-family:ui-monospace,SF Mono,Cascadia Mono,JetBrains Mono,Fira Code,Menlo,Consolas,Liberation Mono,monospace;font-size:13px;font-weight:600}.DiffModal-module__fileStats___3utki{align-items:center;gap:8px;margin-left:auto;font-family:ui-monospace,SF Mono,Cascadia Mono,JetBrains Mono,Fira Code,Menlo,Consolas,Liberation Mono,monospace;font-size:12px;font-weight:700;display:flex}.DiffModal-module__statAdditions___c6cRj{color:#3fb950}.DiffModal-module__statDeletions___I-Twj{color:#f85149}.DiffModal-module__statBar___pJ2vZ{gap:2px;margin-left:2px;display:inline-flex}.DiffModal-module__statBlock___9MVNC{border-radius:2px;width:8px;height:8px}.DiffModal-module__statBlockAdd___bJSBD{background:#3fb950}.DiffModal-module__statBlockDel___AfJfB{background:#f85149}.DiffModal-module__diffBody___f0St8{flex:1;min-height:0;font-family:ui-monospace,SF Mono,Cascadia Mono,JetBrains Mono,Fira Code,Menlo,Consolas,Liberation Mono,monospace;font-size:12px;line-height:20px;overflow:auto}.DiffModal-module__hunk___SklHA+.DiffModal-module__hunk___SklHA{border-top:1px solid var(--border-color)}.DiffModal-module__hunkHeader___8hU-I{background:color-mix(in srgb, #388bfd 8%, var(--bg-primary));border-bottom:1px solid color-mix(in srgb, #388bfd 12%, var(--border-color));color:color-mix(in srgb, #388bfd 75%, var(--text-secondary));align-items:center;min-height:20px;display:flex}.DiffModal-module__hunkGutter___fqdKh{border-right:1px solid color-mix(in srgb, #388bfd 12%, var(--border-color));flex-shrink:0;justify-content:center;align-self:stretch;align-items:center;width:50px;display:flex}.DiffModal-module__hunkExpandIcon___vuJqE{color:color-mix(in srgb, #388bfd 70%, var(--text-tertiary));opacity:.7}.DiffModal-module__hunkText___iGYPB{white-space:nowrap;padding:4px 8px 4px 28px;font-size:12px}.DiffModal-module__diffLine___ps7Zs{min-height:20px;display:flex}.DiffModal-module__lineNum___e1BS1{text-align:right;width:50px;color:var(--text-tertiary);-webkit-user-select:none;user-select:none;font-variant-numeric:tabular-nums;border-right:1px solid color-mix(in srgb, var(--border-color) 60%, transparent);box-sizing:border-box;flex-shrink:0;padding:0 8px}.DiffModal-module__lineNumEmpty___No1Od{color:#0000}.DiffModal-module__linePrefix___GCTXM{text-align:center;-webkit-user-select:none;user-select:none;flex-shrink:0;width:20px;font-weight:700}.DiffModal-module__lineText___iOvge{white-space:pre-wrap;word-break:break-word;flex:1;min-width:0;padding-right:12px}.DiffModal-module__context___idQYJ{background:var(--bg-primary)}.DiffModal-module__context___idQYJ .DiffModal-module__linePrefix___GCTXM{color:var(--text-tertiary)}.DiffModal-module__context___idQYJ .DiffModal-module__lineText___iOvge{color:var(--text-primary)}.DiffModal-module__deletion___Ssejr{background:color-mix(in srgb, #f85149 8%, var(--bg-primary))}.DiffModal-module__deletion___Ssejr .DiffModal-module__lineNum___e1BS1{background:color-mix(in srgb, #f85149 12%, var(--bg-primary));border-right-color:color-mix(in srgb, #f85149 18%, var(--border-color));color:color-mix(in srgb, #f85149 60%, var(--text-tertiary))}.DiffModal-module__deletion___Ssejr .DiffModal-module__linePrefix___GCTXM{color:#f85149}.DiffModal-module__deletion___Ssejr .DiffModal-module__lineText___iOvge{color:var(--text-primary)}.DiffModal-module__addition___UxyR6{background:color-mix(in srgb, #3fb950 8%, var(--bg-primary))}.DiffModal-module__addition___UxyR6 .DiffModal-module__lineNum___e1BS1{background:color-mix(in srgb, #3fb950 12%, var(--bg-primary));border-right-color:color-mix(in srgb, #3fb950 18%, var(--border-color));color:color-mix(in srgb, #3fb950 60%, var(--text-tertiary))}.DiffModal-module__addition___UxyR6 .DiffModal-module__linePrefix___GCTXM{color:#3fb950}.DiffModal-module__addition___UxyR6 .DiffModal-module__lineText___iOvge{color:var(--text-primary)}@media (max-width:768px){.DiffModal-module__content___43wet{height:65vh;min-height:360px}.DiffModal-module__lineNum___e1BS1{width:36px;padding:0 4px;font-size:10px}.DiffModal-module__linePrefix___GCTXM{width:16px;font-size:11px}.DiffModal-module__hunkGutter___fqdKh{width:36px}.DiffModal-module__hunkText___iGYPB{padding-left:20px}.DiffModal-module__diffBody___f0St8{font-size:11px;line-height:18px}.DiffModal-module__fileName___ichM3{font-size:12px}.DiffModal-module__fileStats___3utki{font-size:11px}}.FloatingSaveBar-module__container___NaBSV{bottom:calc(12px + env(safe-area-inset-bottom,0px));left:var(--content-center-x,50%);z-index:1000;pointer-events:none;width:min(720px,100vw - 24px);position:fixed;transform:translate(-50%)}.FloatingSaveBar-module__bar___EyOlk{pointer-events:auto;--glass-blur:14px;border:1px solid var(--glass-border);background:var(--glass-bg);-webkit-backdrop-filter:var(--glass-backdrop-filter);backdrop-filter:var(--glass-backdrop-filter);box-shadow:var(--shadow-lg);border-radius:16px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 16px;padding:10px 14px;display:flex}.FloatingSaveBar-module__status___01LWT{font-variant-numeric:tabular-nums;overflow-wrap:anywhere;min-width:0;padding-right:4px;font-family:ui-monospace,SF Mono,Cascadia Mono,JetBrains Mono,Fira Code,Menlo,Consolas,Liberation Mono,monospace;font-size:12px;font-weight:650}.FloatingSaveBar-module__statusWarning___qnA2x{color:var(--amber-text)}.FloatingSaveBar-module__statusError___gN2K-{color:var(--viz-failure)}.FloatingSaveBar-module__statusBusy___cngKv,.FloatingSaveBar-module__statusMuted___Hbq5C{color:var(--text-secondary)}.FloatingSaveBar-module__statusOk___jqtcN{color:var(--viz-success)}.FloatingSaveBar-module__actionsGroup___r3pkW{flex-shrink:0;align-items:center;gap:6px;display:flex}.FloatingSaveBar-module__savePill___pFnAZ{cursor:pointer;background:var(--text-primary);color:var(--bg-secondary);transition:transform var(--dur-press,.16s) var(--ease-out-strong,ease-out), background-color var(--dur-hover,.2s) var(--ease-out-strong,ease-out), box-shadow var(--dur-hover,.2s) var(--ease-out-strong,ease-out);border:0;border-radius:9999px;align-items:center;gap:7px;padding:9px 16px;font-size:13px;font-weight:600;line-height:1;display:inline-flex}.FloatingSaveBar-module__savePill___pFnAZ:disabled{cursor:not-allowed;opacity:.55}.FloatingSaveBar-module__savePill___pFnAZ:active:not(:disabled){transform:translateY(0)scale(.97)}.FloatingSaveBar-module__savePill___pFnAZ:focus-visible{outline:2px solid var(--primary-color);outline-offset:2px}@media (hover:hover) and (pointer:fine){.FloatingSaveBar-module__savePill___pFnAZ:hover:not(:disabled){background:color-mix(in srgb, var(--text-primary) 86%, var(--bg-secondary));box-shadow:0 12px 26px color-mix(in srgb, var(--text-primary) 22%, transparent);transform:translateY(-1px)}}.FloatingSaveBar-module__ghostAction___JqRrH{cursor:pointer;color:var(--text-secondary);transition:color var(--dur-hover,.2s) var(--ease-out-strong,ease-out), transform var(--dur-press,.16s) var(--ease-out-strong,ease-out);background:0 0;border:0;border-radius:9999px;align-items:center;gap:6px;padding:9px 12px;font-size:12.5px;font-weight:550;line-height:1;display:inline-flex}.FloatingSaveBar-module__ghostAction___JqRrH:disabled{cursor:not-allowed;opacity:.55}.FloatingSaveBar-module__ghostAction___JqRrH:active:not(:disabled){transform:scale(.97)}.FloatingSaveBar-module__ghostAction___JqRrH:focus-visible{outline:2px solid var(--primary-color);outline-offset:2px}@media (hover:hover) and (pointer:fine){.FloatingSaveBar-module__ghostAction___JqRrH:hover:not(:disabled){color:var(--text-primary)}}@media (max-width:768px){.FloatingSaveBar-module__container___NaBSV{width:calc(100vw - 16px)}.FloatingSaveBar-module__bar___EyOlk{flex-direction:column;align-items:stretch}.FloatingSaveBar-module__actionsGroup___r3pkW{justify-content:stretch}.FloatingSaveBar-module__actionsGroup___r3pkW>*{flex:1;justify-content:center}}@media (prefers-reduced-motion:reduce){.FloatingSaveBar-module__savePill___pFnAZ,.FloatingSaveBar-module__ghostAction___JqRrH{transition:none}.FloatingSaveBar-module__savePill___pFnAZ:active:not(:disabled),.FloatingSaveBar-module__ghostAction___JqRrH:active:not(:disabled){transform:none}}.ModeSwitch-module__segmented___Zbs7Z{border:1px solid var(--border-color);background:var(--bg-tertiary);border-radius:9999px;flex-shrink:0;align-items:center;gap:2px;padding:2px;display:inline-flex}.ModeSwitch-module__segment___umNdL{cursor:pointer;color:var(--text-secondary);white-space:nowrap;transition:color var(--dur-hover,.2s) var(--ease-out-strong,ease-out), background-color var(--dur-hover,.2s) var(--ease-out-strong,ease-out), box-shadow var(--dur-hover,.2s) var(--ease-out-strong,ease-out), transform var(--dur-press,.16s) var(--ease-out-strong,ease-out);background:0 0;border:0;border-radius:9999px;padding:5px 12px;font-size:12px;font-weight:550;line-height:1.3}.ModeSwitch-module__segment___umNdL:disabled{cursor:not-allowed;opacity:.55}.ModeSwitch-module__segment___umNdL:active:not(:disabled){transform:scale(.96)}.ModeSwitch-module__segment___umNdL:focus-visible{outline:2px solid var(--primary-color);outline-offset:-1px}@media (hover:hover) and (pointer:fine){.ModeSwitch-module__segment___umNdL:hover:not(:disabled):not(.ModeSwitch-module__segmentActive___QcfMC){color:var(--text-primary)}}.ModeSwitch-module__segmentActive___QcfMC{color:var(--text-primary);background:var(--floating-surface,var(--bg-primary));font-weight:650;box-shadow:0 1px 3px #0000001f,0 1px 2px #00000014}.ModeSwitch-module__segmentActive___QcfMC:disabled{opacity:1}@media (prefers-reduced-motion:reduce){.ModeSwitch-module__segment___umNdL{transition:none}.ModeSwitch-module__segment___umNdL:active:not(:disabled){transform:none}}.SourcePanel-module__searchBar___K1Kqh{flex:240px;align-items:center;gap:8px;min-width:0;max-width:560px;display:flex}.SourcePanel-module__searchInputWrapper___hdAuH{flex:1;align-items:center;min-width:0;display:flex;position:relative}.SourcePanel-module__searchInputWrapper___hdAuH .form-group{width:100%;margin-bottom:0}.SourcePanel-module__searchInput___rMRhY{border-radius:10px!important;height:38px!important;padding-right:128px!important;font-size:13px!important}.SourcePanel-module__searchRight___jBxUI{align-items:center;gap:6px;display:inline-flex}.SourcePanel-module__searchCount___zFvTE{min-height:26px;color:var(--text-secondary);font-variant-numeric:tabular-nums;background:color-mix(in srgb, var(--text-primary) 6%, transparent);pointer-events:none;white-space:nowrap;border-radius:9999px;align-items:center;padding:0 8px;font-family:ui-monospace,SF Mono,Cascadia Mono,JetBrains Mono,Fira Code,Menlo,Consolas,Liberation Mono,monospace;font-size:11.5px;font-weight:650;display:inline-flex}.SourcePanel-module__searchButton___7-Y3x{cursor:pointer;font:inherit;color:inherit;background:0 0;border:none;outline:none;margin:0;padding:0}.SourcePanel-module__searchButton___7-Y3x:focus{outline-offset:2px;outline:2px solid #8b8680}.SourcePanel-module__searchButton___7-Y3x{border:1px solid var(--text-primary);background:var(--text-primary);width:30px;height:30px;color:var(--bg-secondary);transition:transform var(--dur-press,.16s) var(--ease-out-strong,ease-out), background-color .15s ease, border-color .15s ease, opacity .15s ease;border-radius:9999px;justify-content:center;align-items:center;display:inline-flex}.SourcePanel-module__searchButton___7-Y3x:active:not(:disabled){transform:scale(.94)}.SourcePanel-module__searchButton___7-Y3x:disabled{opacity:.45;cursor:not-allowed}@media (hover:hover) and (pointer:fine){.SourcePanel-module__searchButton___7-Y3x:hover:not(:disabled){background:color-mix(in srgb, var(--text-primary) 86%, var(--bg-secondary));border-color:#0000}}.SourcePanel-module__searchActions___dntAi{flex-shrink:0;gap:6px;display:flex}.SourcePanel-module__searchActions___dntAi button{border-radius:10px;width:38px;min-width:38px;height:38px;padding:0!important}.SourcePanel-module__editorWrapper___5q2xY{border:1px solid var(--border-color);background:var(--bg-primary);border-radius:14px;flex:none;width:100%;height:clamp(500px,70vh,1040px);overflow:hidden}@supports (height:100dvh){.SourcePanel-module__editorWrapper___5q2xY{height:clamp(500px,70dvh,1040px)}}.SourcePanel-module__editorWrapper___5q2xY .cm-editor{background:0 0;height:100%;font-family:ui-monospace,SF Mono,Cascadia Mono,JetBrains Mono,Fira Code,Menlo,Consolas,Liberation Mono,monospace;font-size:13px}.SourcePanel-module__editorWrapper___5q2xY .cm-scroller{-webkit-overflow-scrolling:touch;touch-action:pan-x pan-y;overscroll-behavior:contain;overflow:auto}.SourcePanel-module__editorWrapper___5q2xY .cm-gutters{border-right:1px solid var(--border-color);background:color-mix(in srgb, var(--bg-secondary) 86%, transparent)}.SourcePanel-module__editorWrapper___5q2xY .cm-lineNumbers .cm-gutterElement{min-width:40px;color:var(--text-muted);padding:0 8px 0 12px}.SourcePanel-module__editorWrapper___5q2xY .cm-activeLine,.SourcePanel-module__editorWrapper___5q2xY .cm-activeLineGutter{background:color-mix(in srgb, var(--text-primary) 5%, transparent)}.SourcePanel-module__editorWrapper___5q2xY .cm-selectionMatch{background:#e0aa143d}.SourcePanel-module__editorWrapper___5q2xY .cm-searchMatch{background:#e0aa1452;outline:1px solid #e0aa147a}.SourcePanel-module__editorWrapper___5q2xY .cm-searchMatch-selected{background:#c6574652}@media (max-width:768px){.SourcePanel-module__searchBar___K1Kqh{flex-wrap:wrap;flex-basis:100%;max-width:none}.SourcePanel-module__searchActions___dntAi{flex:1;justify-content:stretch}.SourcePanel-module__searchActions___dntAi button{flex:1;width:auto}}@media (max-width:480px){.SourcePanel-module__searchInput___rMRhY{padding-right:108px!important}}@media (prefers-reduced-motion:reduce){.SourcePanel-module__searchButton___7-Y3x{transition:none}.SourcePanel-module__searchButton___7-Y3x:active:not(:disabled){transform:none}}.SectionCard-module__card___9aKSV{box-sizing:border-box;border:1px solid var(--border-color);background:color-mix(in srgb, var(--bg-primary) 82%, transparent);border-radius:14px;flex-direction:column;gap:clamp(16px,2vw,22px);min-width:0;padding:clamp(20px,2.4vw,28px);display:flex}@media (max-width:768px){.SectionCard-module__card___9aKSV{gap:14px;padding:16px}}.SectionCard-module__cardEnter___l-ICD{animation:SectionCard-module__config-card-in___uBsqv .45s var(--ease-out-strong,ease-out) .32s backwards}@keyframes SectionCard-module__config-card-in___uBsqv{0%{opacity:0;transform:translateY(24px)}}.SectionCard-module__header___S216P{border-bottom:1px solid var(--border-color);grid-template-columns:auto minmax(0,1fr);align-items:start;gap:10px;padding-bottom:14px;display:grid}@media (max-width:768px){.SectionCard-module__header___S216P{grid-template-columns:minmax(0,1fr);padding-bottom:12px}}.SectionCard-module__badges___c-MJl{align-items:center;gap:8px;min-width:0;display:flex}.SectionCard-module__indexBadge___CxtJ-{border:1px solid var(--border-color);min-width:32px;height:28px;color:var(--text-secondary);font-variant-numeric:tabular-nums;letter-spacing:.08em;border-radius:8px;justify-content:center;align-items:center;padding:0 8px;font-family:ui-monospace,SF Mono,Cascadia Mono,JetBrains Mono,Fira Code,Menlo,Consolas,Liberation Mono,monospace;font-size:11px;font-weight:650;display:inline-flex}.SectionCard-module__iconBadge___sw1F3{width:28px;height:28px;color:var(--text-secondary);border-radius:8px;flex:none;justify-content:center;align-items:center;display:inline-flex}.SectionCard-module__heading___9sF8i{flex-direction:column;gap:6px;min-width:0;display:flex}.SectionCard-module__title___FfcKK{color:var(--text-primary);letter-spacing:-.01em;margin:0;font-size:clamp(18px,1.6vw,22px);font-weight:680;line-height:1.18}.SectionCard-module__description___q2WuD{max-width:72ch;color:var(--text-secondary);margin:0;font-size:13px;line-height:1.65}@media (max-width:768px){.SectionCard-module__description___q2WuD{max-width:none}}.SectionCard-module__content___sdfde{flex-direction:column;gap:16px;width:100%;min-width:0;display:flex}@media (prefers-reduced-motion:reduce){.SectionCard-module__cardEnter___l-ICD{animation:none}}.Blocks-module__expandableInputWrapper___X7oOx{flex:1;align-items:flex-start;min-width:0;display:flex;position:relative}.Blocks-module__expandableInputWrapper___X7oOx>.Blocks-module__expandableTextarea___g6VPh,.Blocks-module__expandableInputWrapper___X7oOx>.input{flex:1;min-width:0;padding-right:28px}.Blocks-module__expandableTextarea___g6VPh{resize:none;min-height:60px;padding-right:32px;line-height:1.5;overflow:hidden}.Blocks-module__expandableToggle___nzhJQ{z-index:1;color:var(--text-secondary);cursor:pointer;opacity:.58;transition:opacity var(--dur-hover,.2s) var(--ease-out-strong,ease-out);background:0 0;border:0;padding:2px;font-size:10px;line-height:1;position:absolute;top:50%;right:7px;transform:translateY(-50%)}.Blocks-module__expandableToggle___nzhJQ:hover{opacity:1}.Blocks-module__expandableToggle___nzhJQ:disabled{cursor:default;opacity:.35}.Blocks-module__expandableInputExpanded___5lyEG .Blocks-module__expandableToggle___nzhJQ{top:9px;right:12px;transform:none}.Blocks-module__blockHeaderRow___xF4zI{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;display:flex}.Blocks-module__blockStack___QeoCn{flex-direction:column;gap:10px;display:flex}.Blocks-module__blockLabel___IQjSE{color:var(--text-secondary);font-size:12px;font-weight:700;line-height:1.4}.Blocks-module__actionRow___ioOg2{justify-content:flex-end;display:flex}.Blocks-module__emptyState___fpJNO{border:1px dashed var(--border-color);color:var(--text-secondary);text-align:center;background:0 0;border-radius:10px;padding:16px}.Blocks-module__ruleCard___bOPIJ{border:1px solid var(--border-color);background:color-mix(in srgb, var(--bg-secondary) 64%, transparent);border-radius:10px;flex-direction:column;gap:12px;padding:12px;display:flex}.Blocks-module__ruleCardHeader___SARz7{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;display:flex}.Blocks-module__ruleCardTitle___hNu8F{color:var(--text-primary);font-size:14px;font-weight:700;line-height:1.25}.Blocks-module__stringList___dJKp1{flex-direction:column;gap:8px;display:flex}.Blocks-module__stringListRow___rssts{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.Blocks-module__apiKeyModalInputRow___ENpw1{align-items:center;gap:8px;display:flex}.Blocks-module__apiKeyModalInputRow___ENpw1 .input{flex:1}.Blocks-module__strengthMeter___XlB8T{flex-direction:column;gap:6px;margin-top:10px;display:flex}.Blocks-module__strengthTrack___zzgj-{gap:6px;display:flex}.Blocks-module__strengthSegment___Rmn8w{background:color-mix(in srgb, var(--strength-color) 16%, transparent);height:4px;transition:background-color var(--dur-hover,.2s) var(--ease-out-strong,ease-out);border-radius:9999px;flex:1;overflow:hidden}.Blocks-module__strengthSegmentFill___5cRy2{border-radius:inherit;background:var(--strength-color);transform-origin:0;height:100%;transition:transform var(--dur-press,.16s) var(--ease-out-strong,ease-out), background-color var(--dur-hover,.2s) var(--ease-out-strong,ease-out);display:block;transform:scaleX(0)}.Blocks-module__strengthSegmentFill___5cRy2[data-filled=true]{transition-delay:var(--segment-delay,0s);transform:scaleX(1)}@media (prefers-reduced-motion:reduce){.Blocks-module__strengthSegmentFill___5cRy2{transition:background-color var(--dur-hover,.2s) linear}.Blocks-module__strengthSegmentFill___5cRy2[data-filled=true]{transition-delay:0s}}.Blocks-module__strengthLabel___2XUy5{min-height:16px;color:var(--strength-color);transition:color var(--dur-hover,.2s) var(--ease-out-strong,ease-out);font-size:12px;line-height:16px}.Blocks-module__storeAuthEditor___RUmYF{flex-direction:column;gap:10px;display:flex}.Blocks-module__storeAuthEmpty___enNo4{color:var(--text-secondary);margin:0;font-size:13px;line-height:1.5}.Blocks-module__storeAuthRule___UmA95{border:1px solid var(--border-color);background:color-mix(in srgb, var(--bg-secondary) 42%, transparent);border-radius:10px;flex-direction:column;gap:12px;padding:14px;display:flex}.Blocks-module__storeAuthRuleHeader___b-9-7{justify-content:space-between;align-items:center;gap:12px;min-width:0;display:flex}.Blocks-module__storeAuthRuleHeader___b-9-7 strong{min-width:0;color:var(--text-primary);text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:700;overflow:hidden}.Blocks-module__storeAuthGrid___mEaKw{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}@media (max-width:768px){.Blocks-module__storeAuthGrid___mEaKw{grid-template-columns:1fr}}.Blocks-module__storeAuthField___cLcPq{flex-direction:column;gap:6px;min-width:0;display:flex}.Blocks-module__storeAuthField___cLcPq>span{color:var(--text-secondary);font-size:12px;font-weight:700}.Blocks-module__storeAuthApplyTo___ULpZ3{flex-direction:column;gap:7px;display:flex}.Blocks-module__storeAuthApplyTo___ULpZ3>span{color:var(--text-secondary);font-size:12px;font-weight:700}.Blocks-module__storeAuthApplyTo___ULpZ3 small{color:var(--text-tertiary);font-size:12px;line-height:1.45}.Blocks-module__storeAuthCheckboxes___3awhM{flex-wrap:wrap;gap:8px;display:flex}.Blocks-module__storeAuthCheckbox___OTQ-R{min-height:28px;color:var(--text-secondary);align-items:center;gap:7px;font-size:12px;font-weight:650;line-height:1.4;display:inline-flex}.Blocks-module__storeAuthCheckbox___OTQ-R input{width:14px;height:14px;accent-color:var(--primary-color)}.Blocks-module__payloadRuleModelRow___DLjOk{grid-template-columns:1fr 160px auto auto;align-items:center;gap:8px;display:grid}.Blocks-module__payloadRuleModelRowProtocolFirst___8z4EN{grid-template-columns:160px 1fr auto auto}.Blocks-module__payloadModelGroup___ciGum{flex-direction:column;gap:8px;display:flex}.Blocks-module__payloadModelAdvanced___GZQ7s{border-left:2px solid var(--border-color);flex-direction:column;gap:12px;margin-left:10px;padding-left:12px;display:flex}.Blocks-module__payloadAdvancedGrid___FIf0P{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px;display:grid}.Blocks-module__payloadHeaderRow___rpkiS{grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto;align-items:center;gap:8px;display:grid}.Blocks-module__payloadRuleParamRow___-1JFh{grid-template-columns:1fr 140px 1fr auto;align-items:start;gap:8px;display:grid}.Blocks-module__payloadRuleRawParamRow___PBndM{grid-template-columns:minmax(240px,1fr) minmax(320px,1fr) auto}.Blocks-module__payloadRuleParamGroup___j0JJH{flex-direction:column;gap:6px;display:flex}.Blocks-module__payloadJsonInput___gs0Uo{resize:vertical;min-height:112px;font-family:ui-monospace,SF Mono,Cascadia Mono,JetBrains Mono,Fira Code,Menlo,Consolas,Liberation Mono,monospace}.Blocks-module__payloadParamError___GG92O{margin:0}.Blocks-module__payloadFilterModelRow___jciLU{grid-template-columns:1fr 160px auto;align-items:center;gap:8px;display:grid}.Blocks-module__payloadRowActionButton___Rx5lx{flex:none;justify-self:start}@media (max-width:900px){.Blocks-module__payloadRuleModelRow___DLjOk,.Blocks-module__payloadRuleModelRowProtocolFirst___8z4EN,.Blocks-module__payloadHeaderRow___rpkiS,.Blocks-module__payloadRuleParamRow___-1JFh,.Blocks-module__payloadFilterModelRow___jciLU{grid-template-columns:minmax(0,1fr)}.Blocks-module__apiKeyModalInputRow___ENpw1{flex-direction:column;align-items:stretch}.Blocks-module__payloadRowActionButton___Rx5lx{width:100%}}@media (max-width:768px){.Blocks-module__storeAuthRule___UmA95,.Blocks-module__ruleCard___bOPIJ{padding:14px}.Blocks-module__blockHeaderRow___xF4zI,.Blocks-module__ruleCardHeader___SARz7{align-items:stretch}.Blocks-module__blockHeaderRow___xF4zI .btn,.Blocks-module__ruleCardHeader___SARz7 .btn,.Blocks-module__actionRow___ioOg2 .btn,.Blocks-module__stringListRow___rssts .btn{justify-content:center;width:100%}.Blocks-module__actionRow___ioOg2{justify-content:stretch}.Blocks-module__stringListRow___rssts{align-items:stretch}}@media (max-width:380px){.Blocks-module__storeAuthRule___UmA95,.Blocks-module__ruleCard___bOPIJ{padding:12px}}@media (prefers-reduced-motion:reduce){.Blocks-module__expandableToggle___nzhJQ{transition:none}}.ConfigPage-module__page___DP-JE{width:100%;min-width:0;padding-bottom:calc(var(--config-action-bar-height,0px) + 16px + env(safe-area-inset-bottom,0px));flex-direction:column;gap:20px;display:flex}.ConfigPage-module__toolbar___3BUzX{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 10px;min-width:0;display:flex}.ConfigPage-module__tabsRow___IN9xM{border-bottom:1px solid var(--border-color);min-width:0;display:flex}.ConfigPage-module__panel___vlPZ-{flex-direction:column;min-width:0;display:flex}@media (max-width:768px){.ConfigPage-module__page___DP-JE{gap:16px}}.LogsPage-module__container___jrAqN{--log-control-height:40px;flex-direction:column;flex:1;gap:24px;min-width:0;min-height:0;display:flex}.LogsPage-module__pageHeader___-8ooF{flex-wrap:wrap;flex:none;align-items:center;gap:12px 24px;display:flex}.LogsPage-module__pageTitle___2wBox{color:var(--text-primary);letter-spacing:-.025em;margin:0;font-size:28px;font-weight:700;line-height:1.3}.LogsPage-module__tabBar___rxVe6{background:var(--bg-tertiary);border-radius:10px;gap:4px;padding:3px;display:inline-flex}.LogsPage-module__tabItem___-dQ55{cursor:pointer;font:inherit;color:inherit;background:0 0;border:none;outline:none;margin:0;padding:0}.LogsPage-module__tabItem___-dQ55:focus{outline-offset:2px;outline:2px solid #8b8680}.LogsPage-module__tabItem___-dQ55{color:var(--text-secondary);cursor:pointer;border-radius:7px;padding:8px 14px;font-size:13px;font-weight:500}.LogsPage-module__tabActive___7LP3U{background:var(--bg-primary);color:var(--text-primary);box-shadow:0 1px 3px var(--border-color)}.LogsPage-module__container___jrAqN button:focus-visible{outline:2px solid var(--primary-color);outline-offset:-2px}.LogsPage-module__structuredFilters___PLiOP button:focus-visible{outline:2px solid var(--primary-color);outline-offset:-2px}.LogsPage-module__logPanel___9ca7j:focus-visible{outline:2px solid var(--primary-color);outline-offset:-2px}.LogsPage-module__content___HJomg,.LogsPage-module__viewerArea___41p-e,.LogsPage-module__errorBody___-KnXl{flex-direction:column;flex:1;min-width:0;min-height:0;display:flex}.LogsPage-module__logCard___fqNg0,.LogsPage-module__errorCard___T8gKc{border:1px solid var(--border-color);background:var(--bg-primary);min-width:0;min-height:0;box-shadow:none;border-radius:12px;flex-direction:column;flex:1;padding:0;display:flex;overflow:hidden}.LogsPage-module__logCard___fqNg0{position:relative}.LogsPage-module__logCard___fqNg0>.error-box,.LogsPage-module__logCard___fqNg0>.status-badge{flex:none;max-height:15vh;margin:8px 12px;overflow:auto}.LogsPage-module__filters___Tvw-8{border-bottom:1px solid var(--border-color);flex-wrap:wrap;flex:none;align-items:center;gap:12px;padding:16px;display:flex}.LogsPage-module__filters___Tvw-8 .form-group{margin:0}.LogsPage-module__searchWrapper___MYGRe{flex:180px;min-width:120px}.LogsPage-module__searchInput___croby.input,.LogsPage-module__levelSelect___Ebwsp>button,.LogsPage-module__filterPanelToggle___etLPF.btn,.LogsPage-module__actionButton___iUZfY.btn{box-sizing:border-box;height:var(--log-control-height);min-height:var(--log-control-height);border:1px solid var(--border-color);background:var(--bg-primary);box-shadow:none;border-radius:8px;font-size:13px;font-weight:500;line-height:1}.LogsPage-module__searchInput___croby.input{padding:0 38px 0 12px}.LogsPage-module__levelSelect___Ebwsp>button,.LogsPage-module__filterPanelToggle___etLPF.btn{padding:0 12px}.LogsPage-module__levelSelect___Ebwsp{min-width:110px}.LogsPage-module__searchIcon___glR9K{color:var(--text-tertiary)}.LogsPage-module__searchClear___SAkff{cursor:pointer;font:inherit;color:inherit;background:0 0;border:none;outline:none;margin:0;padding:0}.LogsPage-module__searchClear___SAkff:focus{outline-offset:2px;outline:2px solid #8b8680}.LogsPage-module__searchClear___SAkff{width:28px;height:28px;color:var(--text-secondary);cursor:pointer;place-items:center;display:grid}.LogsPage-module__filterPanelHeader___QAih-{display:flex}.LogsPage-module__filterPanelToggle___etLPF{white-space:nowrap}.LogsPage-module__filterPanelButtonContent___Kuybx,.LogsPage-module__buttonContent___nOJQZ,.LogsPage-module__switchLabel___hemEH{align-items:center;gap:6px;display:inline-flex}.LogsPage-module__filterPanelButtonContent___Kuybx svg,.LogsPage-module__buttonContent___nOJQZ svg,.LogsPage-module__switchLabel___hemEH svg{flex:none}.LogsPage-module__filterPanelCount___qCYc6{background:var(--bg-tertiary);color:var(--primary-color);border-radius:5px;padding:1px 6px;font-size:11px}.LogsPage-module__toolbar___P4tRL{flex:none;align-items:center;gap:8px;margin-left:auto;padding-left:4px;display:flex}.LogsPage-module__actionButton___iUZfY.btn{width:var(--log-control-height);flex:none;padding:0}.LogsPage-module__actionButton___iUZfY.btn>span{display:flex}.LogsPage-module__actionButton___iUZfY.btn[aria-pressed=true]{color:var(--primary-color);border-color:var(--primary-color);background:color-mix(in srgb, var(--primary-color) 10%, var(--bg-primary))}.LogsPage-module__container___jrAqN .btn{transition:background-color .12s,border-color .12s}@media (prefers-reduced-motion:reduce){.LogsPage-module__container___jrAqN .btn{transition:none}}.LogsPage-module__structuredFilters___PLiOP{flex-direction:column;gap:20px;margin-bottom:20px;display:flex}.LogsPage-module__displayOptions___3rcHu{border-top:1px solid var(--border-color);flex-direction:column;gap:16px;padding-top:16px;display:flex}.LogsPage-module__filterChipGroup___rbf3E{gap:8px;display:grid}.LogsPage-module__filterChipLabel___B-5xK{color:var(--text-secondary);font-size:12px;font-weight:600}.LogsPage-module__filterChipList___5fa03{flex-wrap:wrap;gap:6px;display:flex}.LogsPage-module__filterChipHint___bz8JW{color:var(--text-secondary);font-size:12px}.LogsPage-module__filterChip___T2VkK{cursor:pointer;font:inherit;color:inherit;background:0 0;border:none;outline:none;margin:0;padding:0}.LogsPage-module__filterChip___T2VkK:focus{outline-offset:2px;outline:2px solid #8b8680}.LogsPage-module__filterChip___T2VkK{border:1px solid var(--border-color);background:var(--bg-primary);color:var(--text-secondary);cursor:pointer;overflow-wrap:anywhere;border-radius:6px;max-width:100%;padding:6px 10px;font-size:12px}.LogsPage-module__filterChip___T2VkK:disabled{opacity:.45;cursor:not-allowed}.LogsPage-module__filterChipActive___uUqRg{color:var(--primary-color);border-color:var(--primary-color);background:color-mix(in srgb, var(--primary-color) 8%, var(--bg-primary))}.LogsPage-module__viewerArea___41p-e{position:relative;overflow:hidden}.LogsPage-module__viewerArea___41p-e>.hint{padding:24px}.LogsPage-module__logPanel___9ca7j{overscroll-behavior:contain;scrollbar-gutter:stable;background:var(--bg-primary);flex:1;min-width:0;min-height:0;position:relative;overflow:auto}.LogsPage-module__statusBar___qFKlY{border-top:1px solid var(--border-color);color:var(--text-secondary);font-variant-numeric:tabular-nums;background:var(--bg-secondary);flex:none;order:3;justify-content:space-between;align-items:center;gap:8px 20px;padding:7px 12px;font-size:11px;line-height:1.5;display:flex}.LogsPage-module__readStatus___yHZ78{align-items:center;gap:6px;display:flex}.LogsPage-module__statusDot___Vd2u6{background:var(--text-tertiary);border-radius:50%;flex:none;width:6px;height:6px}.LogsPage-module__readStatus___yHZ78[data-live=true] .LogsPage-module__statusDot___Vd2u6{background:var(--success-color)}.LogsPage-module__bufferStatus___Ydyop{text-align:right}.LogsPage-module__notices___9SZG7{background:var(--warning-bg);flex:none;max-height:12vh;padding:6px 12px;overflow:auto}.LogsPage-module__notices___9SZG7:empty{display:none}.LogsPage-module__followButton___1fOet{z-index:2;box-shadow:0 2px 12px var(--border-color);white-space:nowrap;position:absolute;bottom:48px;left:50%;transform:translate(-50%)}.LogsPage-module__loadMoreBanner___sTRC1{border-bottom:1px solid var(--border-color);color:var(--text-secondary);background:var(--bg-secondary);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;padding:6px 12px;font-size:11px;display:flex}.LogsPage-module__loadMoreStats___bElJr{flex-wrap:wrap;gap:12px;display:flex}.LogsPage-module__loadMoreCount___DlCgN{color:var(--text-secondary)}.LogsPage-module__logList___IpC9T{width:max-content;min-width:100%;padding-block-start:8px;padding-block-end:8px}.LogsPage-module__wrapped___A-dsK .LogsPage-module__logList___IpC9T{width:auto}.LogsPage-module__wrapped___A-dsK .LogsPage-module__rowMain___cKmRm{white-space:normal;flex-wrap:wrap}.LogsPage-module__wrapped___A-dsK .LogsPage-module__rawLog___OlCuw{white-space:pre-wrap;overflow-wrap:anywhere}.LogsPage-module__wrapped___A-dsK .LogsPage-module__copyButton___OXUKa.btn{position:absolute;top:2px;right:4px}.LogsPage-module__wrapped___A-dsK .LogsPage-module__logRow___gvmFX{padding-right:36px}.LogsPage-module__rawLog___OlCuw,.LogsPage-module__logRow___gvmFX,.LogsPage-module__errorLogContent___R5blc{font-variant-numeric:tabular-nums;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:12px;line-height:1.65}.LogsPage-module__rawLog___OlCuw{white-space:pre;color:var(--text-primary);margin:0;padding:8px 12px}.LogsPage-module__logRow___gvmFX{color:var(--text-primary);border-left:2px solid #0000;grid-template-columns:160px minmax(0,1fr);gap:16px;padding:4px 12px 4px 16px;display:grid;position:relative}.LogsPage-module__logRow___gvmFX:nth-child(2n){background:color-mix(in srgb, var(--bg-secondary) 20%, transparent)}.LogsPage-module__rowWarn___KcZKX{border-left-color:var(--warning-color)}.LogsPage-module__rowError___vye7Q{border-left-color:var(--error-color)}.LogsPage-module__timestamp___6KEIR{color:var(--text-secondary);white-space:nowrap;padding-top:2px}.LogsPage-module__rowMain___cKmRm{white-space:nowrap;flex-wrap:nowrap;align-items:center;gap:3px 8px;min-width:0;display:flex}.LogsPage-module__badge___lqhqd,.LogsPage-module__pill___e9N6j{white-space:nowrap;align-items:center;font-size:11px;line-height:20px;display:inline-flex}.LogsPage-module__badge___lqhqd{border-radius:4px;padding:0 5px;font-weight:600}.LogsPage-module__pill___e9N6j{color:var(--text-secondary)}.LogsPage-module__source___O9HG3{color:var(--text-secondary);text-overflow:ellipsis;white-space:nowrap;max-width:220px;overflow:hidden}.LogsPage-module__requestIdBadge___rs-v6{color:var(--primary-color);border:1px solid var(--border-color);cursor:pointer;background:0 0;font-family:inherit}.LogsPage-module__statusSuccess___Iu5aQ{color:var(--success-badge-text);background:var(--success-badge-bg)}.LogsPage-module__statusInfo___R88Ee,.LogsPage-module__levelInfo___vB5kT{color:var(--info-color);background:color-mix(in srgb, var(--info-color) 8%, transparent)}.LogsPage-module__statusWarn___ChhRx,.LogsPage-module__levelWarn___p3NRD{color:var(--warning-text);background:var(--warning-bg)}.LogsPage-module__statusError___s2Nsh,.LogsPage-module__levelError___BcRo5{color:var(--failure-badge-text);background:var(--failure-badge-bg)}.LogsPage-module__levelDebug___u6bps,.LogsPage-module__levelTrace___ctJVY{color:var(--text-secondary);background:var(--bg-secondary)}.LogsPage-module__statusBadge___hILaO{font-variant-numeric:tabular-nums}.LogsPage-module__methodBadge___otNY3{color:var(--text-primary)}.LogsPage-module__path___-BW8O{overflow-wrap:anywhere;font-weight:600}.LogsPage-module__message___Yhviu{color:var(--text-primary);overflow-wrap:anywhere;min-width:0}.LogsPage-module__copyButton___OXUKa.btn{background:var(--bg-primary);width:24px;height:24px;color:var(--text-secondary);flex:none;margin-left:auto;padding:0;position:sticky;right:4px}.LogsPage-module__copyButton___OXUKa.btn>span{display:flex}.LogsPage-module__errorCard___T8gKc{padding:16px}.LogsPage-module__errorBody___-KnXl{gap:12px}.LogsPage-module__errorPanel___1BD9T{overscroll-behavior:contain;flex:1;min-height:0;overflow:auto}.LogsPage-module__errorPanel___1BD9T .item-meta{flex:240px;min-width:0}.LogsPage-module__errorPanel___1BD9T .item-title{overflow-wrap:anywhere;font-family:ui-monospace,monospace;font-size:13px}.LogsPage-module__errorPanel___1BD9T .item-actions{flex-wrap:wrap}.LogsPage-module__errorLogViewer___Qfb2T{flex-direction:column;gap:12px;min-height:0;display:flex}.LogsPage-module__errorLogViewerMeta___MJQYo{color:var(--text-secondary);flex-wrap:wrap;gap:8px 16px;font-size:12px;display:flex}.LogsPage-module__errorLogContent___R5blc{border:1px solid var(--border-color);background:var(--bg-secondary);max-height:58dvh;color:var(--text-primary);white-space:pre;border-radius:8px;margin:0;padding:12px;overflow:auto}.LogsPage-module__logCardFullscreen___5aXxO{z-index:1999;width:100%;height:100dvh;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);border:none;border-radius:0;position:fixed;top:0;bottom:0;left:0;right:0}body.logs-fullscreen-active .page-transition__layer{transform:none!important}.LogsPage-module__logPanelFullscreen___HktgM{min-height:0}@media (hover:hover) and (pointer:fine){.LogsPage-module__logRow___gvmFX:hover{background:color-mix(in srgb, var(--primary-color) 5%, var(--bg-primary))}.LogsPage-module__copyButton___OXUKa{opacity:0}.LogsPage-module__logRow___gvmFX:hover .LogsPage-module__copyButton___OXUKa,.LogsPage-module__logRow___gvmFX:focus-within .LogsPage-module__copyButton___OXUKa{opacity:1}.LogsPage-module__tabItem___-dQ55:hover{color:var(--text-primary)}.LogsPage-module__filterChip___T2VkK:hover:not(:disabled){border-color:var(--primary-color)}}@media (min-width:769px) and (max-width:1100px){.LogsPage-module__filterPanelLabel___gVhwi{display:none}.LogsPage-module__searchWrapper___MYGRe{flex-basis:120px}}@media (max-width:768px){.LogsPage-module__container___jrAqN{--log-control-height:36px;gap:16px}.LogsPage-module__pageHeader___-8ooF{gap:8px 12px}.LogsPage-module__pageTitle___2wBox{font-size:18px}.LogsPage-module__tabItem___-dQ55{padding:6px 8px;font-size:12px}.LogsPage-module__filters___Tvw-8{gap:8px;padding:12px}.LogsPage-module__searchWrapper___MYGRe{flex-basis:calc(100% - 200px)}.LogsPage-module__toolbar___P4tRL{gap:4px;padding-left:0}.LogsPage-module__wrapped___A-dsK .LogsPage-module__logRow___gvmFX{grid-template-columns:1fr;gap:0;padding:5px 32px 5px 8px}.LogsPage-module__wrapped___A-dsK .LogsPage-module__timestamp___6KEIR{font-size:10px}.LogsPage-module__statusBar___qFKlY{flex-wrap:wrap;gap:4px;padding:6px 8px;font-size:10px}.LogsPage-module__readStatus___yHZ78{flex-wrap:wrap}.LogsPage-module__bufferStatus___Ydyop{text-align:left}.LogsPage-module__errorCard___T8gKc{padding:12px}}@media (max-height:480px){.LogsPage-module__container___jrAqN{--log-control-height:36px;gap:12px}.LogsPage-module__pageHeader___-8ooF{gap:8px}.LogsPage-module__pageTitle___2wBox{font-size:18px}.LogsPage-module__statusBar___qFKlY{padding-block-start:3px;padding-block-end:3px}.LogsPage-module__filters___Tvw-8{padding-block-start:4px;padding-block-end:4px}}.SystemPage-module__container___KAydo{width:100%}.SystemPage-module__pageTitle___DiF5E{color:var(--text-primary);margin:0 0 32px;font-size:28px;font-weight:700}.SystemPage-module__content___SauLn{flex-direction:column;gap:32px;display:flex}.SystemPage-module__aboutCard___v2-ui{overflow:hidden}.SystemPage-module__aboutHeader___hT4-J{flex-direction:column;justify-content:center;align-items:center;gap:16px;width:100%;padding:24px 0 32px;display:flex}.SystemPage-module__aboutLogo___KXoLr{object-fit:cover;border-radius:26px;width:108px;height:108px;box-shadow:0 12px 32px #00000029}.SystemPage-module__aboutTitle___BTLGy{width:min(100%,920px);color:var(--text-primary);letter-spacing:-.02em;text-align:center;text-wrap:balance;white-space:normal;overflow-wrap:anywhere;font-size:clamp(28px,4.2vw,44px);font-weight:800;line-height:1.12}.SystemPage-module__aboutInfoGrid___b7AR0{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}@media (max-width:900px){.SystemPage-module__aboutInfoGrid___b7AR0{grid-template-columns:1fr}}.SystemPage-module__infoTile___6AuIY{border:1px solid var(--border-color);background:color-mix(in srgb, var(--bg-secondary) 82%, transparent);text-align:left;border-radius:12px;flex-direction:column;gap:6px;min-height:120px;padding:16px 24px;display:flex}.SystemPage-module__tapTile___-9SaX{border:1px solid var(--border-color);background:color-mix(in srgb, var(--bg-secondary) 82%, transparent);color:inherit;cursor:pointer;padding:16px 24px;transition:transform .18s,border-color .2s,box-shadow .2s}.SystemPage-module__tapTile___-9SaX:hover{border-color:var(--primary-color);transform:translateY(-1px);box-shadow:0 8px 18px #8b86802e}.SystemPage-module__tapTile___-9SaX:active{transform:translateY(0)}.SystemPage-module__tileLabel___eMn4v{color:var(--text-secondary);font-size:13px;font-weight:600}.SystemPage-module__tileHeader___w4Ej0{justify-content:space-between;align-items:flex-start;gap:8px;min-height:40px;display:flex}.SystemPage-module__tileAction___WKXuS{white-space:nowrap;flex-shrink:0;margin:-4px -8px 0 0}.SystemPage-module__tileValue___Up02X{color:var(--text-primary);word-break:break-word;font-size:22px;font-weight:700;line-height:1.25}.SystemPage-module__tileSub___ysVDj{color:var(--text-tertiary);font-size:12px;line-height:1.4}.SystemPage-module__section___Q6rCw{flex-direction:column;gap:16px;display:flex}.SystemPage-module__sectionTitle___GOXpQ{color:var(--text-primary);margin:0 0 16px;font-size:20px;font-weight:600}.SystemPage-module__sectionDescription___nI7Jo{color:var(--text-secondary);margin:0 0 16px;font-size:14px}.SystemPage-module__clearLoginActions___4ek-m{justify-content:flex-end;align-items:center;display:flex}.SystemPage-module__infoGrid___NNFgo{gap:8px;display:grid}.SystemPage-module__infoGrid___NNFgo .SystemPage-module__infoRow___E8Q0J{background-color:var(--bg-secondary);border-radius:8px;justify-content:space-between;padding:8px 16px;display:flex}.SystemPage-module__infoGrid___NNFgo .SystemPage-module__infoRow___E8Q0J .SystemPage-module__label___Xw4tZ{color:var(--text-secondary);font-weight:500}.SystemPage-module__infoGrid___NNFgo .SystemPage-module__infoRow___E8Q0J .SystemPage-module__value___pii6g{color:var(--text-primary);font-family:Consolas,Monaco,Courier New,monospace}.SystemPage-module__modelsList___id54Q{flex-direction:column;gap:8px;max-height:400px;display:flex;overflow-y:auto}.SystemPage-module__modelItem___ZTm4G{background-color:var(--bg-secondary);border-radius:8px;padding:8px 16px;font-family:Consolas,Monaco,Courier New,monospace;font-size:13px}.SystemPage-module__modelItem___ZTm4G:hover{background-color:var(--bg-hover)}.SystemPage-module__modelTags___M0sci{flex-wrap:wrap;flex:0 0 100%;gap:8px;display:flex}.SystemPage-module__groupTitle___bTqIN{align-items:center;gap:8px;display:flex}.SystemPage-module__groupIcon___-XXrb{flex-shrink:0;width:18px;height:18px}.SystemPage-module__modelTag___5Ar53{border:1px solid var(--border-color);background-color:var(--bg-secondary);border-radius:9999px;align-items:center;gap:4px;padding:4px 10px;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;display:inline-flex}.SystemPage-module__modelName___LKdAK{color:var(--text-primary);font-weight:600}.SystemPage-module__modelAlias___zioM-{color:var(--text-secondary);font-size:12px}.SystemPage-module__versionCheck___V09h4{flex-direction:column;gap:16px;display:flex}.SystemPage-module__versionInfo___cmujE{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;display:grid}.SystemPage-module__versionInfo___cmujE .SystemPage-module__versionItem___NmHd7{background-color:var(--bg-secondary);border-radius:8px;padding:16px}.SystemPage-module__versionInfo___cmujE .SystemPage-module__versionItem___NmHd7 .SystemPage-module__label___Xw4tZ{color:var(--text-secondary);margin-bottom:4px;font-size:12px}.SystemPage-module__versionInfo___cmujE .SystemPage-module__versionItem___NmHd7 .SystemPage-module__version___XoIFT{color:var(--text-primary);font-family:Consolas,Monaco,Courier New,monospace;font-size:16px;font-weight:600}.SystemPage-module__quickLinks___QTmT3{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px;display:grid}.SystemPage-module__linkCard___iSrVF{background-color:var(--bg-secondary);border:1px solid var(--border-color);color:inherit;border-radius:12px;align-items:center;gap:16px;padding:16px 24px;text-decoration:none;transition:all .2s;display:flex}.SystemPage-module__linkCard___iSrVF:hover{background-color:var(--bg-hover);border-color:var(--primary-color);transform:translateY(-2px);box-shadow:0 4px 12px #0000001a}.SystemPage-module__linkCard___iSrVF:active{transform:translateY(0)}.SystemPage-module__linkIcon___gNqz2{color:#fff;background-color:#24292f;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:44px;height:44px;display:flex}.SystemPage-module__linkIcon___gNqz2.SystemPage-module__github___V8I3m,.SystemPage-module__linkIcon___gNqz2.SystemPage-module__docs___cA-rG{background-color:#24292f}.SystemPage-module__linkContent___Rfh7h{flex:1;min-width:0}.SystemPage-module__linkTitle___Zpr4Q{color:var(--text-primary);align-items:center;gap:4px;margin-bottom:2px;font-size:15px;font-weight:600;display:flex}.SystemPage-module__linkTitle___Zpr4Q svg{opacity:.5;flex-shrink:0}.SystemPage-module__linkDesc___KKavC{color:var(--text-secondary);white-space:nowrap;text-overflow:ellipsis;font-size:13px;overflow:hidden}@media (max-width:768px){.SystemPage-module__aboutLogo___KXoLr{border-radius:22px;width:92px;height:92px}.SystemPage-module__aboutTitle___BTLGy{letter-spacing:-.012em;width:min(100%,24ch);font-size:clamp(22px,6.6vw,34px);font-weight:700;line-height:1.18}}@media (max-width:520px){.SystemPage-module__aboutTitle___BTLGy{letter-spacing:-.006em;width:min(100%,19ch);font-size:clamp(20px,7.2vw,28px);font-weight:600;line-height:1.22}}
/*$vite$:1*/</style>
</head>
<body>
<div id="root"></div>
</body>
</html>