diff --git a/server/public/assets/index-BUE8ypH_.css b/server/public/assets/index-BUE8ypH_.css new file mode 100644 index 00000000..53f82952 --- /dev/null +++ b/server/public/assets/index-BUE8ypH_.css @@ -0,0 +1 @@ +*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}.pointer-events-none{pointer-events:none}.pointer-events-auto{pointer-events:auto}.\!visible{visibility:visible!important}.visible{visibility:visible}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.inset-0{inset:0}.left-1\/2{left:50%}.top-1{top:.25rem}.z-50{z-index:50}.col-span-full{grid-column:1 / -1}.mx-auto{margin-left:auto;margin-right:auto}.mb-1{margin-bottom:.25rem}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:.75rem}.mt-1{margin-top:.25rem}.mt-3{margin-top:.75rem}.flex{display:flex}.grid{display:grid}.h-2{height:.5rem}.h-48{height:12rem}.h-60{height:15rem}.h-full{height:100%}.min-h-\[55vh\]{min-height:55vh}.min-h-\[8rem\]{min-height:8rem}.min-h-screen{min-height:100vh}.w-2{width:.5rem}.w-full{width:100%}.max-w-7xl{max-width:80rem}.flex-1{flex:1 1 0%}.-translate-x-1\/2{--tw-translate-x: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes pulse{50%{opacity:.5}}.animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}.resize{resize:both}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-\[minmax\(0\,0\.9fr\)_minmax\(0\,1\.6fr\)_minmax\(0\,0\.9fr\)\]{grid-template-columns:minmax(0,.9fr) minmax(0,1.6fr) minmax(0,.9fr)}.grid-cols-\[minmax\(0\,1fr\)_minmax\(0\,1\.4fr\)_minmax\(0\,1fr\)\]{grid-template-columns:minmax(0,1fr) minmax(0,1.4fr) minmax(0,1fr)}.grid-cols-\[minmax\(0\,1fr\)_minmax\(0\,1fr\)\]{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.grid-cols-\[repeat\(3\,minmax\(0\,1fr\)\)\]{grid-template-columns:repeat(3,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-1{gap:.25rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-6{gap:1.5rem}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem * var(--tw-space-y-reverse))}.space-y-3>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.75rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.75rem * var(--tw-space-y-reverse))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem * var(--tw-space-y-reverse))}.overflow-hidden{overflow:hidden}.overflow-y-auto{overflow-y:auto}.rounded-2xl{border-radius:1rem}.rounded-3xl{border-radius:1.5rem}.rounded-full{border-radius:9999px}.rounded-sm{border-radius:.125rem}.border{border-width:1px}.border-slate-800{--tw-border-opacity: 1;border-color:rgb(30 41 59 / var(--tw-border-opacity))}.border-slate-800\/80{border-color:#1e293bcc}.bg-\[\#111\]{--tw-bg-opacity: 1;background-color:rgb(17 17 17 / var(--tw-bg-opacity))}.bg-\[\#1b1b1b\]{--tw-bg-opacity: 1;background-color:rgb(27 27 27 / var(--tw-bg-opacity))}.bg-amber-400{--tw-bg-opacity: 1;background-color:rgb(251 191 36 / var(--tw-bg-opacity))}.bg-amber-500\/30{background-color:#f59e0b4d}.bg-black{--tw-bg-opacity: 1;background-color:rgb(0 0 0 / var(--tw-bg-opacity))}.bg-black\/30{background-color:#0000004d}.bg-black\/40{background-color:#0006}.bg-black\/50{background-color:#00000080}.bg-black\/60{background-color:#0009}.bg-blue-600\/40{background-color:#2563eb66}.bg-emerald-300{--tw-bg-opacity: 1;background-color:rgb(110 231 183 / var(--tw-bg-opacity))}.bg-emerald-500{--tw-bg-opacity: 1;background-color:rgb(16 185 129 / var(--tw-bg-opacity))}.bg-emerald-500\/20{background-color:#10b98133}.bg-emerald-500\/30{background-color:#10b9814d}.bg-red-500{--tw-bg-opacity: 1;background-color:rgb(239 68 68 / var(--tw-bg-opacity))}.bg-red-500\/20{background-color:#ef444433}.bg-red-500\/30{background-color:#ef44444d}.bg-red-600\/60{background-color:#dc262699}.bg-red-900\/60{background-color:#7f1d1d99}.bg-slate-200{--tw-bg-opacity: 1;background-color:rgb(226 232 240 / var(--tw-bg-opacity))}.bg-slate-700{--tw-bg-opacity: 1;background-color:rgb(51 65 85 / var(--tw-bg-opacity))}.bg-slate-800{--tw-bg-opacity: 1;background-color:rgb(30 41 59 / var(--tw-bg-opacity))}.bg-slate-900\/70{background-color:#0f172ab3}.bg-slate-950{--tw-bg-opacity: 1;background-color:rgb(2 6 23 / var(--tw-bg-opacity))}.bg-slate-950\/40{background-color:#02061766}.bg-slate-950\/50{background-color:#02061780}.object-contain{-o-object-fit:contain;object-fit:contain}.p-1{padding:.25rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-5{padding:1.25rem}.px-1{padding-left:.25rem;padding-right:.25rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-10{padding-top:2.5rem;padding-bottom:2.5rem}.text-center{text-align:center}.text-right{text-align:right}.font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.text-2xl{font-size:1.5rem;line-height:2rem}.text-4xl{font-size:2.25rem;line-height:2.5rem}.text-\[0\.55rem\]{font-size:.55rem}.text-\[0\.65rem\]{font-size:.65rem}.text-\[0\.6rem\]{font-size:.6rem}.text-\[0\.75rem\]{font-size:.75rem}.text-\[0\.7rem\]{font-size:.7rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xs{font-size:.75rem;line-height:1rem}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.tracking-\[0\.3em\]{letter-spacing:.3em}.text-amber-100{--tw-text-opacity: 1;color:rgb(254 243 199 / var(--tw-text-opacity))}.text-black{--tw-text-opacity: 1;color:rgb(0 0 0 / var(--tw-text-opacity))}.text-blue-100{--tw-text-opacity: 1;color:rgb(219 234 254 / var(--tw-text-opacity))}.text-cyan-300{--tw-text-opacity: 1;color:rgb(103 232 249 / var(--tw-text-opacity))}.text-emerald-100{--tw-text-opacity: 1;color:rgb(209 250 229 / var(--tw-text-opacity))}.text-emerald-200{--tw-text-opacity: 1;color:rgb(167 243 208 / var(--tw-text-opacity))}.text-lime-300{--tw-text-opacity: 1;color:rgb(190 242 100 / var(--tw-text-opacity))}.text-pink-300{--tw-text-opacity: 1;color:rgb(249 168 212 / var(--tw-text-opacity))}.text-red-100{--tw-text-opacity: 1;color:rgb(254 226 226 / var(--tw-text-opacity))}.text-red-200{--tw-text-opacity: 1;color:rgb(254 202 202 / var(--tw-text-opacity))}.text-slate-100{--tw-text-opacity: 1;color:rgb(241 245 249 / var(--tw-text-opacity))}.text-slate-200{--tw-text-opacity: 1;color:rgb(226 232 240 / var(--tw-text-opacity))}.text-slate-300{--tw-text-opacity: 1;color:rgb(203 213 225 / var(--tw-text-opacity))}.text-slate-400{--tw-text-opacity: 1;color:rgb(148 163 184 / var(--tw-text-opacity))}.text-slate-50{--tw-text-opacity: 1;color:rgb(248 250 252 / var(--tw-text-opacity))}.text-slate-500{--tw-text-opacity: 1;color:rgb(100 116 139 / var(--tw-text-opacity))}.text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity))}.shadow-\[0_0_4px_rgba\(16\,185\,129\,0\.8\)\]{--tw-shadow: 0 0 4px rgba(16,185,129,.8);--tw-shadow-colored: 0 0 4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-lg{--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-black\/60{--tw-shadow-color: rgb(0 0 0 / .6);--tw-shadow: var(--tw-shadow-colored)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.transition-\[width\]{transition-property:width;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}:root{font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:#0f172a;background-color:#f8fafc}body{margin:0;min-height:100vh;background-color:#0f172a}.disabled\:opacity-30:disabled{opacity:.3}.disabled\:opacity-40:disabled{opacity:.4}.disabled\:opacity-50:disabled{opacity:.5}@media(min-width:1024px){.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}} diff --git a/server/public/assets/index-BrPsNUkx.js b/server/public/assets/index-BrPsNUkx.js deleted file mode 100644 index 80578aa5..00000000 --- a/server/public/assets/index-BrPsNUkx.js +++ /dev/null @@ -1,11 +0,0 @@ -(function(){const i=document.createElement("link").relList;if(i&&i.supports&&i.supports("modulepreload"))return;for(const f of document.querySelectorAll('link[rel="modulepreload"]'))c(f);new MutationObserver(f=>{for(const h of f)if(h.type==="childList")for(const m of h.addedNodes)m.tagName==="LINK"&&m.rel==="modulepreload"&&c(m)}).observe(document,{childList:!0,subtree:!0});function r(f){const h={};return f.integrity&&(h.integrity=f.integrity),f.referrerPolicy&&(h.referrerPolicy=f.referrerPolicy),f.crossOrigin==="use-credentials"?h.credentials="include":f.crossOrigin==="anonymous"?h.credentials="omit":h.credentials="same-origin",h}function c(f){if(f.ep)return;f.ep=!0;const h=r(f);fetch(f.href,h)}})();var Ir={exports:{}},ka={};var Jh;function Dy(){if(Jh)return ka;Jh=1;var u=Symbol.for("react.transitional.element"),i=Symbol.for("react.fragment");function r(c,f,h){var m=null;if(h!==void 0&&(m=""+h),f.key!==void 0&&(m=""+f.key),"key"in f){h={};for(var g in f)g!=="key"&&(h[g]=f[g])}else h=f;return f=h.ref,{$$typeof:u,type:c,key:m,ref:f!==void 0?f:null,props:h}}return ka.Fragment=i,ka.jsx=r,ka.jsxs=r,ka}var $h;function jy(){return $h||($h=1,Ir.exports=Dy()),Ir.exports}var p=jy(),ec={exports:{}},P={};var Wh;function wy(){if(Wh)return P;Wh=1;var u=Symbol.for("react.transitional.element"),i=Symbol.for("react.portal"),r=Symbol.for("react.fragment"),c=Symbol.for("react.strict_mode"),f=Symbol.for("react.profiler"),h=Symbol.for("react.consumer"),m=Symbol.for("react.context"),g=Symbol.for("react.forward_ref"),y=Symbol.for("react.suspense"),v=Symbol.for("react.memo"),T=Symbol.for("react.lazy"),S=Symbol.for("react.activity"),N=Symbol.iterator;function M(_){return _===null||typeof _!="object"?null:(_=N&&_[N]||_["@@iterator"],typeof _=="function"?_:null)}var L={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},G=Object.assign,q={};function H(_,B,X){this.props=_,this.context=B,this.refs=q,this.updater=X||L}H.prototype.isReactComponent={},H.prototype.setState=function(_,B){if(typeof _!="object"&&typeof _!="function"&&_!=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,_,B,"setState")},H.prototype.forceUpdate=function(_){this.updater.enqueueForceUpdate(this,_,"forceUpdate")};function Y(){}Y.prototype=H.prototype;function V(_,B,X){this.props=_,this.context=B,this.refs=q,this.updater=X||L}var ne=V.prototype=new Y;ne.constructor=V,G(ne,H.prototype),ne.isPureReactComponent=!0;var de=Array.isArray;function Ae(){}var F={H:null,A:null,T:null,S:null},_e=Object.prototype.hasOwnProperty;function ve(_,B,X){var Z=X.ref;return{$$typeof:u,type:_,key:B,ref:Z!==void 0?Z:null,props:X}}function Ge(_,B){return ve(_.type,B,_.props)}function Ue(_){return typeof _=="object"&&_!==null&&_.$$typeof===u}function ke(_){var B={"=":"=0",":":"=2"};return"$"+_.replace(/[=:]/g,function(X){return B[X]})}var Xt=/\/+/g;function Gt(_,B){return typeof _=="object"&&_!==null&&_.key!=null?ke(""+_.key):B.toString(36)}function Ot(_){switch(_.status){case"fulfilled":return _.value;case"rejected":throw _.reason;default:switch(typeof _.status=="string"?_.then(Ae,Ae):(_.status="pending",_.then(function(B){_.status==="pending"&&(_.status="fulfilled",_.value=B)},function(B){_.status==="pending"&&(_.status="rejected",_.reason=B)})),_.status){case"fulfilled":return _.value;case"rejected":throw _.reason}}throw _}function j(_,B,X,Z,I){var le=typeof _;(le==="undefined"||le==="boolean")&&(_=null);var me=!1;if(_===null)me=!0;else switch(le){case"bigint":case"string":case"number":me=!0;break;case"object":switch(_.$$typeof){case u:case i:me=!0;break;case T:return me=_._init,j(me(_._payload),B,X,Z,I)}}if(me)return I=I(_),me=Z===""?"."+Gt(_,0):Z,de(I)?(X="",me!=null&&(X=me.replace(Xt,"$&/")+"/"),j(I,B,X,"",function(Jl){return Jl})):I!=null&&(Ue(I)&&(I=Ge(I,X+(I.key==null||_&&_.key===I.key?"":(""+I.key).replace(Xt,"$&/")+"/")+me)),B.push(I)),1;me=0;var Pe=Z===""?".":Z+":";if(de(_))for(var De=0;De<_.length;De++)Z=_[De],le=Pe+Gt(Z,De),me+=j(Z,B,X,le,I);else if(De=M(_),typeof De=="function")for(_=De.call(_),De=0;!(Z=_.next()).done;)Z=Z.value,le=Pe+Gt(Z,De++),me+=j(Z,B,X,le,I);else if(le==="object"){if(typeof _.then=="function")return j(Ot(_),B,X,Z,I);throw B=String(_),Error("Objects are not valid as a React child (found: "+(B==="[object Object]"?"object with keys {"+Object.keys(_).join(", ")+"}":B)+"). If you meant to render a collection of children, use an array instead.")}return me}function k(_,B,X){if(_==null)return _;var Z=[],I=0;return j(_,Z,"","",function(le){return B.call(X,le,I++)}),Z}function W(_){if(_._status===-1){var B=_._result;B=B(),B.then(function(X){(_._status===0||_._status===-1)&&(_._status=1,_._result=X)},function(X){(_._status===0||_._status===-1)&&(_._status=2,_._result=X)}),_._status===-1&&(_._status=0,_._result=B)}if(_._status===1)return _._result.default;throw _._result}var ge=typeof reportError=="function"?reportError:function(_){if(typeof window=="object"&&typeof window.ErrorEvent=="function"){var B=new window.ErrorEvent("error",{bubbles:!0,cancelable:!0,message:typeof _=="object"&&_!==null&&typeof _.message=="string"?String(_.message):String(_),error:_});if(!window.dispatchEvent(B))return}else if(typeof process=="object"&&typeof process.emit=="function"){process.emit("uncaughtException",_);return}console.error(_)},Ee={map:k,forEach:function(_,B,X){k(_,function(){B.apply(this,arguments)},X)},count:function(_){var B=0;return k(_,function(){B++}),B},toArray:function(_){return k(_,function(B){return B})||[]},only:function(_){if(!Ue(_))throw Error("React.Children.only expected to receive a single React element child.");return _}};return P.Activity=S,P.Children=Ee,P.Component=H,P.Fragment=r,P.Profiler=f,P.PureComponent=V,P.StrictMode=c,P.Suspense=y,P.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=F,P.__COMPILER_RUNTIME={__proto__:null,c:function(_){return F.H.useMemoCache(_)}},P.cache=function(_){return function(){return _.apply(null,arguments)}},P.cacheSignal=function(){return null},P.cloneElement=function(_,B,X){if(_==null)throw Error("The argument must be a React element, but you passed "+_+".");var Z=G({},_.props),I=_.key;if(B!=null)for(le in B.key!==void 0&&(I=""+B.key),B)!_e.call(B,le)||le==="key"||le==="__self"||le==="__source"||le==="ref"&&B.ref===void 0||(Z[le]=B[le]);var le=arguments.length-2;if(le===1)Z.children=X;else if(1>>1,Ee=j[ge];if(0>>1;ge<_;){var B=2*(ge+1)-1,X=j[B],Z=B+1,I=j[Z];if(0>f(X,W))Zf(I,X)?(j[ge]=I,j[Z]=W,ge=Z):(j[ge]=X,j[B]=W,ge=B);else if(Zf(I,W))j[ge]=I,j[Z]=W,ge=Z;else break e}}return k}function f(j,k){var W=j.sortIndex-k.sortIndex;return W!==0?W:j.id-k.id}if(u.unstable_now=void 0,typeof performance=="object"&&typeof performance.now=="function"){var h=performance;u.unstable_now=function(){return h.now()}}else{var m=Date,g=m.now();u.unstable_now=function(){return m.now()-g}}var y=[],v=[],T=1,S=null,N=3,M=!1,L=!1,G=!1,q=!1,H=typeof setTimeout=="function"?setTimeout:null,Y=typeof clearTimeout=="function"?clearTimeout:null,V=typeof setImmediate<"u"?setImmediate:null;function ne(j){for(var k=r(v);k!==null;){if(k.callback===null)c(v);else if(k.startTime<=j)c(v),k.sortIndex=k.expirationTime,i(y,k);else break;k=r(v)}}function de(j){if(G=!1,ne(j),!L)if(r(y)!==null)L=!0,Ae||(Ae=!0,ke());else{var k=r(v);k!==null&&Ot(de,k.startTime-j)}}var Ae=!1,F=-1,_e=5,ve=-1;function Ge(){return q?!0:!(u.unstable_now()-ve<_e)}function Ue(){if(q=!1,Ae){var j=u.unstable_now();ve=j;var k=!0;try{e:{L=!1,G&&(G=!1,Y(F),F=-1),M=!0;var W=N;try{t:{for(ne(j),S=r(y);S!==null&&!(S.expirationTime>j&&Ge());){var ge=S.callback;if(typeof ge=="function"){S.callback=null,N=S.priorityLevel;var Ee=ge(S.expirationTime<=j);if(j=u.unstable_now(),typeof Ee=="function"){S.callback=Ee,ne(j),k=!0;break t}S===r(y)&&c(y),ne(j)}else c(y);S=r(y)}if(S!==null)k=!0;else{var _=r(v);_!==null&&Ot(de,_.startTime-j),k=!1}}break e}finally{S=null,N=W,M=!1}k=void 0}}finally{k?ke():Ae=!1}}}var ke;if(typeof V=="function")ke=function(){V(Ue)};else if(typeof MessageChannel<"u"){var Xt=new MessageChannel,Gt=Xt.port2;Xt.port1.onmessage=Ue,ke=function(){Gt.postMessage(null)}}else ke=function(){H(Ue,0)};function Ot(j,k){F=H(function(){j(u.unstable_now())},k)}u.unstable_IdlePriority=5,u.unstable_ImmediatePriority=1,u.unstable_LowPriority=4,u.unstable_NormalPriority=3,u.unstable_Profiling=null,u.unstable_UserBlockingPriority=2,u.unstable_cancelCallback=function(j){j.callback=null},u.unstable_forceFrameRate=function(j){0>j||125ge?(j.sortIndex=W,i(v,j),r(y)===null&&j===r(v)&&(G?(Y(F),F=-1):G=!0,Ot(de,W-ge))):(j.sortIndex=Ee,i(y,j),L||M||(L=!0,Ae||(Ae=!0,ke()))),j},u.unstable_shouldYield=Ge,u.unstable_wrapCallback=function(j){var k=N;return function(){var W=N;N=k;try{return j.apply(this,arguments)}finally{N=W}}}})(lc)),lc}var Ih;function By(){return Ih||(Ih=1,nc.exports=Uy()),nc.exports}var ac={exports:{}},Fe={};var em;function Ly(){if(em)return Fe;em=1;var u=Ru();function i(y){var v="https://react.dev/errors/"+y;if(1"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(u)}catch(i){console.error(i)}}return u(),ac.exports=Ly(),ac.exports}var nm;function qy(){if(nm)return Xa;nm=1;var u=By(),i=Ru(),r=Hy();function c(e){var t="https://react.dev/errors/"+e;if(1Ee||(e.current=ge[Ee],ge[Ee]=null,Ee--)}function X(e,t){Ee++,ge[Ee]=e.current,e.current=t}var Z=_(null),I=_(null),le=_(null),me=_(null);function Pe(e,t){switch(X(le,t),X(I,e),X(Z,null),t.nodeType){case 9:case 11:e=(e=t.documentElement)&&(e=e.namespaceURI)?vh(e):0;break;default:if(e=t.tagName,t=t.namespaceURI)t=vh(t),e=gh(t,e);else switch(e){case"svg":e=1;break;case"math":e=2;break;default:e=0}}B(Z),X(Z,e)}function De(){B(Z),B(I),B(le)}function Jl(e){e.memoizedState!==null&&X(me,e);var t=Z.current,n=gh(t,e.type);t!==n&&(X(I,e),X(Z,n))}function ei(e){I.current===e&&(B(Z),B(I)),me.current===e&&(B(me),La._currentValue=W)}var Uu,Qc;function qn(e){if(Uu===void 0)try{throw Error()}catch(n){var t=n.stack.trim().match(/\n( *(at )?)/);Uu=t&&t[1]||"",Qc=-1)":-1a||b[l]!==R[a]){var D=` -`+b[l].replace(" at new "," at ");return e.displayName&&D.includes("")&&(D=D.replace("",e.displayName)),D}while(1<=l&&0<=a);break}}}finally{Bu=!1,Error.prepareStackTrace=n}return(n=e?e.displayName||e.name:"")?qn(n):""}function cp(e,t){switch(e.tag){case 26:case 27:case 5:return qn(e.type);case 16:return qn("Lazy");case 13:return e.child!==t&&t!==null?qn("Suspense Fallback"):qn("Suspense");case 19:return qn("SuspenseList");case 0:case 15:return Lu(e.type,!1);case 11:return Lu(e.type.render,!1);case 1:return Lu(e.type,!0);case 31:return qn("Activity");default:return""}}function Zc(e){try{var t="",n=null;do t+=cp(e,n),n=e,e=e.return;while(e);return t}catch(l){return` -Error generating stack: `+l.message+` -`+l.stack}}var Hu=Object.prototype.hasOwnProperty,qu=u.unstable_scheduleCallback,Yu=u.unstable_cancelCallback,op=u.unstable_shouldYield,fp=u.unstable_requestPaint,st=u.unstable_now,dp=u.unstable_getCurrentPriorityLevel,Kc=u.unstable_ImmediatePriority,Jc=u.unstable_UserBlockingPriority,ti=u.unstable_NormalPriority,hp=u.unstable_LowPriority,$c=u.unstable_IdlePriority,mp=u.log,pp=u.unstable_setDisableYieldValue,$l=null,rt=null;function hn(e){if(typeof mp=="function"&&pp(e),rt&&typeof rt.setStrictMode=="function")try{rt.setStrictMode($l,e)}catch{}}var ct=Math.clz32?Math.clz32:gp,yp=Math.log,vp=Math.LN2;function gp(e){return e>>>=0,e===0?32:31-(yp(e)/vp|0)|0}var ni=256,li=262144,ai=4194304;function Yn(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 ii(e,t,n){var l=e.pendingLanes;if(l===0)return 0;var a=0,s=e.suspendedLanes,o=e.pingedLanes;e=e.warmLanes;var d=l&134217727;return d!==0?(l=d&~s,l!==0?a=Yn(l):(o&=d,o!==0?a=Yn(o):n||(n=d&~e,n!==0&&(a=Yn(n))))):(d=l&~s,d!==0?a=Yn(d):o!==0?a=Yn(o):n||(n=l&~e,n!==0&&(a=Yn(n)))),a===0?0:t!==0&&t!==a&&(t&s)===0&&(s=a&-a,n=t&-t,s>=n||s===32&&(n&4194048)!==0)?t:a}function Wl(e,t){return(e.pendingLanes&~(e.suspendedLanes&~e.pingedLanes)&t)===0}function bp(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 Wc(){var e=ai;return ai<<=1,(ai&62914560)===0&&(ai=4194304),e}function ku(e){for(var t=[],n=0;31>n;n++)t.push(e);return t}function Fl(e,t){e.pendingLanes|=t,t!==268435456&&(e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0)}function Sp(e,t,n,l,a,s){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 d=e.entanglements,b=e.expirationTimes,R=e.hiddenUpdates;for(n=o&~n;0"u")return null;try{return e.activeElement||e.body}catch{return e.body}}var Np=/[\n"\\]/g;function bt(e){return e.replace(Np,function(t){return"\\"+t.charCodeAt(0).toString(16)+" "})}function Ku(e,t,n,l,a,s,o,d){e.name="",o!=null&&typeof o!="function"&&typeof o!="symbol"&&typeof o!="boolean"?e.type=o:e.removeAttribute("type"),t!=null?o==="number"?(t===0&&e.value===""||e.value!=t)&&(e.value=""+gt(t)):e.value!==""+gt(t)&&(e.value=""+gt(t)):o!=="submit"&&o!=="reset"||e.removeAttribute("value"),t!=null?Ju(e,o,gt(t)):n!=null?Ju(e,o,gt(n)):l!=null&&e.removeAttribute("value"),a==null&&s!=null&&(e.defaultChecked=!!s),a!=null&&(e.checked=a&&typeof a!="function"&&typeof a!="symbol"),d!=null&&typeof d!="function"&&typeof d!="symbol"&&typeof d!="boolean"?e.name=""+gt(d):e.removeAttribute("name")}function co(e,t,n,l,a,s,o,d){if(s!=null&&typeof s!="function"&&typeof s!="symbol"&&typeof s!="boolean"&&(e.type=s),t!=null||n!=null){if(!(s!=="submit"&&s!=="reset"||t!=null)){Zu(e);return}n=n!=null?""+gt(n):"",t=t!=null?""+gt(t):n,d||t===e.value||(e.value=t),e.defaultValue=t}l=l??a,l=typeof l!="function"&&typeof l!="symbol"&&!!l,e.checked=d?e.checked:!!l,e.defaultChecked=!!l,o!=null&&typeof o!="function"&&typeof o!="symbol"&&typeof o!="boolean"&&(e.name=o),Zu(e)}function Ju(e,t,n){t==="number"&&ri(e.ownerDocument)===e||e.defaultValue===""+n||(e.defaultValue=""+n)}function fl(e,t,n,l){if(e=e.options,t){t={};for(var a=0;a"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),Iu=!1;if(Zt)try{var ta={};Object.defineProperty(ta,"passive",{get:function(){Iu=!0}}),window.addEventListener("test",ta,ta),window.removeEventListener("test",ta,ta)}catch{Iu=!1}var pn=null,es=null,oi=null;function vo(){if(oi)return oi;var e,t=es,n=t.length,l,a="value"in pn?pn.value:pn.textContent,s=a.length;for(e=0;e=aa),Eo=" ",To=!1;function Ao(e,t){switch(e){case"keyup":return e0.indexOf(t.keyCode)!==-1;case"keydown":return t.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function No(e){return e=e.detail,typeof e=="object"&&"data"in e?e.data:null}var pl=!1;function n0(e,t){switch(e){case"compositionend":return No(t);case"keypress":return t.which!==32?null:(To=!0,Eo);case"textInput":return e=t.data,e===Eo&&To?null:e;default:return null}}function l0(e,t){if(pl)return e==="compositionend"||!is&&Ao(e,t)?(e=vo(),oi=es=pn=null,pl=!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)return{node:n,offset:t-e};e=l}e:{for(;n;){if(n.nextSibling){n=n.nextSibling;break e}n=n.parentNode}n=void 0}n=wo(n)}}function Bo(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?Bo(e,t.parentNode):"contains"in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function Lo(e){e=e!=null&&e.ownerDocument!=null&&e.ownerDocument.defaultView!=null?e.ownerDocument.defaultView:window;for(var t=ri(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=ri(e.document)}return t}function rs(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 f0=Zt&&"documentMode"in document&&11>=document.documentMode,yl=null,cs=null,ra=null,os=!1;function Ho(e,t,n){var l=n.window===n?n.document:n.nodeType===9?n:n.ownerDocument;os||yl==null||yl!==ri(l)||(l=yl,"selectionStart"in l&&rs(l)?l={start:l.selectionStart,end:l.selectionEnd}:(l=(l.ownerDocument&&l.ownerDocument.defaultView||window).getSelection(),l={anchorNode:l.anchorNode,anchorOffset:l.anchorOffset,focusNode:l.focusNode,focusOffset:l.focusOffset}),ra&&sa(ra,l)||(ra=l,l=lu(cs,"onSelect"),0>=o,a-=o,Ut=1<<32-ct(t)+a|n<te?(se=K,K=null):se=K.sibling;var fe=O(A,K,C[te],w);if(fe===null){K===null&&(K=se);break}e&&K&&fe.alternate===null&&t(A,K),x=s(fe,x,te),oe===null?J=fe:oe.sibling=fe,oe=fe,K=se}if(te===C.length)return n(A,K),re&&Jt(A,te),J;if(K===null){for(;tete?(se=K,K=null):se=K.sibling;var Ln=O(A,K,fe.value,w);if(Ln===null){K===null&&(K=se);break}e&&K&&Ln.alternate===null&&t(A,K),x=s(Ln,x,te),oe===null?J=Ln:oe.sibling=Ln,oe=Ln,K=se}if(fe.done)return n(A,K),re&&Jt(A,te),J;if(K===null){for(;!fe.done;te++,fe=C.next())fe=U(A,fe.value,w),fe!==null&&(x=s(fe,x,te),oe===null?J=fe:oe.sibling=fe,oe=fe);return re&&Jt(A,te),J}for(K=l(K);!fe.done;te++,fe=C.next())fe=z(K,A,te,fe.value,w),fe!==null&&(e&&fe.alternate!==null&&K.delete(fe.key===null?te:fe.key),x=s(fe,x,te),oe===null?J=fe:oe.sibling=fe,oe=fe);return e&&K.forEach(function(My){return t(A,My)}),re&&Jt(A,te),J}function xe(A,x,C,w){if(typeof C=="object"&&C!==null&&C.type===G&&C.key===null&&(C=C.props.children),typeof C=="object"&&C!==null){switch(C.$$typeof){case M:e:{for(var J=C.key;x!==null;){if(x.key===J){if(J=C.type,J===G){if(x.tag===7){n(A,x.sibling),w=a(x,C.props.children),w.return=A,A=w;break e}}else if(x.elementType===J||typeof J=="object"&&J!==null&&J.$$typeof===_e&&Fn(J)===x.type){n(A,x.sibling),w=a(x,C.props),ma(w,C),w.return=A,A=w;break e}n(A,x);break}else t(A,x);x=x.sibling}C.type===G?(w=Zn(C.props.children,A.mode,w,C.key),w.return=A,A=w):(w=Si(C.type,C.key,C.props,null,A.mode,w),ma(w,C),w.return=A,A=w)}return o(A);case L:e:{for(J=C.key;x!==null;){if(x.key===J)if(x.tag===4&&x.stateNode.containerInfo===C.containerInfo&&x.stateNode.implementation===C.implementation){n(A,x.sibling),w=a(x,C.children||[]),w.return=A,A=w;break e}else{n(A,x);break}else t(A,x);x=x.sibling}w=vs(C,A.mode,w),w.return=A,A=w}return o(A);case _e:return C=Fn(C),xe(A,x,C,w)}if(Ot(C))return Q(A,x,C,w);if(ke(C)){if(J=ke(C),typeof J!="function")throw Error(c(150));return C=J.call(C),$(A,x,C,w)}if(typeof C.then=="function")return xe(A,x,Ci(C),w);if(C.$$typeof===V)return xe(A,x,Ei(A,C),w);Ri(A,C)}return typeof C=="string"&&C!==""||typeof C=="number"||typeof C=="bigint"?(C=""+C,x!==null&&x.tag===6?(n(A,x.sibling),w=a(x,C),w.return=A,A=w):(n(A,x),w=ys(C,A.mode,w),w.return=A,A=w),o(A)):n(A,x)}return function(A,x,C,w){try{ha=0;var J=xe(A,x,C,w);return Cl=null,J}catch(K){if(K===Nl||K===Ai)throw K;var oe=ft(29,K,null,A.mode);return oe.lanes=w,oe.return=A,oe}finally{}}}var In=rf(!0),cf=rf(!1),Sn=!1;function Os(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,lanes:0,hiddenCallbacks:null},callbacks:null}}function zs(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 xn(e){return{lane:e,tag:0,payload:null,callback:null,next:null}}function _n(e,t,n){var l=e.updateQueue;if(l===null)return null;if(l=l.shared,(he&2)!==0){var a=l.pending;return a===null?t.next=t:(t.next=a.next,a.next=t),l.pending=t,t=bi(e),Qo(e,null,n),t}return gi(e,l,t,n),bi(e)}function pa(e,t,n){if(t=t.updateQueue,t!==null&&(t=t.shared,(n&4194048)!==0)){var l=t.lanes;l&=e.pendingLanes,n|=l,t.lanes=n,Pc(e,n)}}function Ms(e,t){var n=e.updateQueue,l=e.alternate;if(l!==null&&(l=l.updateQueue,n===l)){var a=null,s=null;if(n=n.firstBaseUpdate,n!==null){do{var o={lane:n.lane,tag:n.tag,payload:n.payload,callback:null,next:null};s===null?a=s=o:s=s.next=o,n=n.next}while(n!==null);s===null?a=s=t:s=s.next=t}else a=s=t;n={baseState:l.baseState,firstBaseUpdate:a,lastBaseUpdate:s,shared:l.shared,callbacks:l.callbacks},e.updateQueue=n;return}e=n.lastBaseUpdate,e===null?n.firstBaseUpdate=t:e.next=t,n.lastBaseUpdate=t}var Ds=!1;function ya(){if(Ds){var e=Al;if(e!==null)throw e}}function va(e,t,n,l){Ds=!1;var a=e.updateQueue;Sn=!1;var s=a.firstBaseUpdate,o=a.lastBaseUpdate,d=a.shared.pending;if(d!==null){a.shared.pending=null;var b=d,R=b.next;b.next=null,o===null?s=R:o.next=R,o=b;var D=e.alternate;D!==null&&(D=D.updateQueue,d=D.lastBaseUpdate,d!==o&&(d===null?D.firstBaseUpdate=R:d.next=R,D.lastBaseUpdate=b))}if(s!==null){var U=a.baseState;o=0,D=R=b=null,d=s;do{var O=d.lane&-536870913,z=O!==d.lane;if(z?(ue&O)===O:(l&O)===O){O!==0&&O===Tl&&(Ds=!0),D!==null&&(D=D.next={lane:0,tag:d.tag,payload:d.payload,callback:null,next:null});e:{var Q=e,$=d;O=t;var xe=n;switch($.tag){case 1:if(Q=$.payload,typeof Q=="function"){U=Q.call(xe,U,O);break e}U=Q;break e;case 3:Q.flags=Q.flags&-65537|128;case 0:if(Q=$.payload,O=typeof Q=="function"?Q.call(xe,U,O):Q,O==null)break e;U=S({},U,O);break e;case 2:Sn=!0}}O=d.callback,O!==null&&(e.flags|=64,z&&(e.flags|=8192),z=a.callbacks,z===null?a.callbacks=[O]:z.push(O))}else z={lane:O,tag:d.tag,payload:d.payload,callback:d.callback,next:null},D===null?(R=D=z,b=U):D=D.next=z,o|=O;if(d=d.next,d===null){if(d=a.shared.pending,d===null)break;z=d,d=z.next,z.next=null,a.lastBaseUpdate=z,a.shared.pending=null}}while(!0);D===null&&(b=U),a.baseState=b,a.firstBaseUpdate=R,a.lastBaseUpdate=D,s===null&&(a.shared.lanes=0),Cn|=o,e.lanes=o,e.memoizedState=U}}function of(e,t){if(typeof e!="function")throw Error(c(191,e));e.call(t)}function ff(e,t){var n=e.callbacks;if(n!==null)for(e.callbacks=null,e=0;es?s:8;var o=j.T,d={};j.T=d,Fs(e,!1,t,n);try{var b=a(),R=j.S;if(R!==null&&R(d,b),b!==null&&typeof b=="object"&&typeof b.then=="function"){var D=S0(b,l);Sa(e,t,D,yt(e))}else Sa(e,t,l,yt(e))}catch(U){Sa(e,t,{then:function(){},status:"rejected",reason:U},yt())}finally{k.p=s,o!==null&&d.types!==null&&(o.types=d.types),j.T=o}}function N0(){}function $s(e,t,n,l){if(e.tag!==5)throw Error(c(476));var a=Gf(e).queue;Xf(e,a,t,W,n===null?N0:function(){return Vf(e),n(l)})}function Gf(e){var t=e.memoizedState;if(t!==null)return t;t={memoizedState:W,baseState:W,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:Pt,lastRenderedState:W},next:null};var n={};return t.next={memoizedState:n,baseState:n,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:Pt,lastRenderedState:n},next:null},e.memoizedState=t,e=e.alternate,e!==null&&(e.memoizedState=t),t}function Vf(e){var t=Gf(e);t.next===null&&(t=e.alternate.memoizedState),Sa(e,t.next.queue,{},yt())}function Ws(){return Je(La)}function Qf(){return we().memoizedState}function Zf(){return we().memoizedState}function C0(e){for(var t=e.return;t!==null;){switch(t.tag){case 24:case 3:var n=yt();e=xn(n);var l=_n(t,e,n);l!==null&&(ut(l,t,n),pa(l,t,n)),t={cache:As()},e.payload=t;return}t=t.return}}function R0(e,t,n){var l=yt();n={lane:l,revertLane:0,gesture:null,action:n,hasEagerState:!1,eagerState:null,next:null},Hi(e)?Jf(t,n):(n=ms(e,t,n,l),n!==null&&(ut(n,e,l),$f(n,t,l)))}function Kf(e,t,n){var l=yt();Sa(e,t,n,l)}function Sa(e,t,n,l){var a={lane:l,revertLane:0,gesture:null,action:n,hasEagerState:!1,eagerState:null,next:null};if(Hi(e))Jf(t,a);else{var s=e.alternate;if(e.lanes===0&&(s===null||s.lanes===0)&&(s=t.lastRenderedReducer,s!==null))try{var o=t.lastRenderedState,d=s(o,n);if(a.hasEagerState=!0,a.eagerState=d,ot(d,o))return gi(e,t,a,0),Te===null&&vi(),!1}catch{}finally{}if(n=ms(e,t,a,l),n!==null)return ut(n,e,l),$f(n,t,l),!0}return!1}function Fs(e,t,n,l){if(l={lane:2,revertLane:Or(),gesture:null,action:l,hasEagerState:!1,eagerState:null,next:null},Hi(e)){if(t)throw Error(c(479))}else t=ms(e,n,l,2),t!==null&&ut(t,e,2)}function Hi(e){var t=e.alternate;return e===ee||t!==null&&t===ee}function Jf(e,t){Ol=Mi=!0;var n=e.pending;n===null?t.next=t:(t.next=n.next,n.next=t),e.pending=t}function $f(e,t,n){if((n&4194048)!==0){var l=t.lanes;l&=e.pendingLanes,n|=l,t.lanes=n,Pc(e,n)}}var xa={readContext:Je,use:wi,useCallback:ze,useContext:ze,useEffect:ze,useImperativeHandle:ze,useLayoutEffect:ze,useInsertionEffect:ze,useMemo:ze,useReducer:ze,useRef:ze,useState:ze,useDebugValue:ze,useDeferredValue:ze,useTransition:ze,useSyncExternalStore:ze,useId:ze,useHostTransitionStatus:ze,useFormState:ze,useActionState:ze,useOptimistic:ze,useMemoCache:ze,useCacheRefresh:ze};xa.useEffectEvent=ze;var Wf={readContext:Je,use:wi,useCallback:function(e,t){return Ie().memoizedState=[e,t===void 0?null:t],e},useContext:Je,useEffect:jf,useImperativeHandle:function(e,t,n){n=n!=null?n.concat([e]):null,Bi(4194308,4,Lf.bind(null,t,e),n)},useLayoutEffect:function(e,t){return Bi(4194308,4,e,t)},useInsertionEffect:function(e,t){Bi(4,2,e,t)},useMemo:function(e,t){var n=Ie();t=t===void 0?null:t;var l=e();if(el){hn(!0);try{e()}finally{hn(!1)}}return n.memoizedState=[l,t],l},useReducer:function(e,t,n){var l=Ie();if(n!==void 0){var a=n(t);if(el){hn(!0);try{n(t)}finally{hn(!1)}}}else a=t;return l.memoizedState=l.baseState=a,e={pending:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:a},l.queue=e,e=e.dispatch=R0.bind(null,ee,e),[l.memoizedState,e]},useRef:function(e){var t=Ie();return e={current:e},t.memoizedState=e},useState:function(e){e=Vs(e);var t=e.queue,n=Kf.bind(null,ee,t);return t.dispatch=n,[e.memoizedState,n]},useDebugValue:Ks,useDeferredValue:function(e,t){var n=Ie();return Js(n,e,t)},useTransition:function(){var e=Vs(!1);return e=Xf.bind(null,ee,e.queue,!0,!1),Ie().memoizedState=e,[!1,e]},useSyncExternalStore:function(e,t,n){var l=ee,a=Ie();if(re){if(n===void 0)throw Error(c(407));n=n()}else{if(n=t(),Te===null)throw Error(c(349));(ue&127)!==0||vf(l,t,n)}a.memoizedState=n;var s={value:n,getSnapshot:t};return a.queue=s,jf(bf.bind(null,l,s,e),[e]),l.flags|=2048,Ml(9,{destroy:void 0},gf.bind(null,l,s,n,t),null),n},useId:function(){var e=Ie(),t=Te.identifierPrefix;if(re){var n=Bt,l=Ut;n=(l&~(1<<32-ct(l)-1)).toString(32)+n,t="_"+t+"R_"+n,n=Di++,0<\/script>",s=s.removeChild(s.firstChild);break;case"select":s=typeof l.is=="string"?o.createElement("select",{is:l.is}):o.createElement("select"),l.multiple?s.multiple=!0:l.size&&(s.size=l.size);break;default:s=typeof l.is=="string"?o.createElement(a,{is:l.is}):o.createElement(a)}}s[Ze]=t,s[et]=l;e:for(o=t.child;o!==null;){if(o.tag===5||o.tag===6)s.appendChild(o.stateNode);else if(o.tag!==4&&o.tag!==27&&o.child!==null){o.child.return=o,o=o.child;continue}if(o===t)break e;for(;o.sibling===null;){if(o.return===null||o.return===t)break e;o=o.return}o.sibling.return=o.return,o=o.sibling}t.stateNode=s;e:switch(We(s,a,l),a){case"button":case"input":case"select":case"textarea":l=!!l.autoFocus;break e;case"img":l=!0;break e;default:l=!1}l&&en(t)}}return Ce(t),fr(t,t.type,e===null?null:e.memoizedProps,t.pendingProps,n),null;case 6:if(e&&t.stateNode!=null)e.memoizedProps!==l&&en(t);else{if(typeof l!="string"&&t.stateNode===null)throw Error(c(166));if(e=le.current,_l(t)){if(e=t.stateNode,n=t.memoizedProps,l=null,a=Ke,a!==null)switch(a.tag){case 27:case 5:l=a.memoizedProps}e[Ze]=t,e=!!(e.nodeValue===n||l!==null&&l.suppressHydrationWarning===!0||ph(e.nodeValue,n)),e||gn(t,!0)}else e=au(e).createTextNode(l),e[Ze]=t,t.stateNode=e}return Ce(t),null;case 31:if(n=t.memoizedState,e===null||e.memoizedState!==null){if(l=_l(t),n!==null){if(e===null){if(!l)throw Error(c(318));if(e=t.memoizedState,e=e!==null?e.dehydrated:null,!e)throw Error(c(557));e[Ze]=t}else Kn(),(t.flags&128)===0&&(t.memoizedState=null),t.flags|=4;Ce(t),e=!1}else n=xs(),e!==null&&e.memoizedState!==null&&(e.memoizedState.hydrationErrors=n),e=!0;if(!e)return t.flags&256?(ht(t),t):(ht(t),null);if((t.flags&128)!==0)throw Error(c(558))}return Ce(t),null;case 13:if(l=t.memoizedState,e===null||e.memoizedState!==null&&e.memoizedState.dehydrated!==null){if(a=_l(t),l!==null&&l.dehydrated!==null){if(e===null){if(!a)throw Error(c(318));if(a=t.memoizedState,a=a!==null?a.dehydrated:null,!a)throw Error(c(317));a[Ze]=t}else Kn(),(t.flags&128)===0&&(t.memoizedState=null),t.flags|=4;Ce(t),a=!1}else a=xs(),e!==null&&e.memoizedState!==null&&(e.memoizedState.hydrationErrors=a),a=!0;if(!a)return t.flags&256?(ht(t),t):(ht(t),null)}return ht(t),(t.flags&128)!==0?(t.lanes=n,t):(n=l!==null,e=e!==null&&e.memoizedState!==null,n&&(l=t.child,a=null,l.alternate!==null&&l.alternate.memoizedState!==null&&l.alternate.memoizedState.cachePool!==null&&(a=l.alternate.memoizedState.cachePool.pool),s=null,l.memoizedState!==null&&l.memoizedState.cachePool!==null&&(s=l.memoizedState.cachePool.pool),s!==a&&(l.flags|=2048)),n!==e&&n&&(t.child.flags|=8192),Gi(t,t.updateQueue),Ce(t),null);case 4:return De(),e===null&&jr(t.stateNode.containerInfo),Ce(t),null;case 10:return Wt(t.type),Ce(t),null;case 19:if(B(je),l=t.memoizedState,l===null)return Ce(t),null;if(a=(t.flags&128)!==0,s=l.rendering,s===null)if(a)Ea(l,!1);else{if(Me!==0||e!==null&&(e.flags&128)!==0)for(e=t.child;e!==null;){if(s=zi(e),s!==null){for(t.flags|=128,Ea(l,!1),e=s.updateQueue,t.updateQueue=e,Gi(t,e),t.subtreeFlags=0,e=n,n=t.child;n!==null;)Zo(n,e),n=n.sibling;return X(je,je.current&1|2),re&&Jt(t,l.treeForkCount),t.child}e=e.sibling}l.tail!==null&&st()>Ji&&(t.flags|=128,a=!0,Ea(l,!1),t.lanes=4194304)}else{if(!a)if(e=zi(s),e!==null){if(t.flags|=128,a=!0,e=e.updateQueue,t.updateQueue=e,Gi(t,e),Ea(l,!0),l.tail===null&&l.tailMode==="hidden"&&!s.alternate&&!re)return Ce(t),null}else 2*st()-l.renderingStartTime>Ji&&n!==536870912&&(t.flags|=128,a=!0,Ea(l,!1),t.lanes=4194304);l.isBackwards?(s.sibling=t.child,t.child=s):(e=l.last,e!==null?e.sibling=s:t.child=s,l.last=s)}return l.tail!==null?(e=l.tail,l.rendering=e,l.tail=e.sibling,l.renderingStartTime=st(),e.sibling=null,n=je.current,X(je,a?n&1|2:n&1),re&&Jt(t,l.treeForkCount),e):(Ce(t),null);case 22:case 23:return ht(t),ws(),l=t.memoizedState!==null,e!==null?e.memoizedState!==null!==l&&(t.flags|=8192):l&&(t.flags|=8192),l?(n&536870912)!==0&&(t.flags&128)===0&&(Ce(t),t.subtreeFlags&6&&(t.flags|=8192)):Ce(t),n=t.updateQueue,n!==null&&Gi(t,n.retryQueue),n=null,e!==null&&e.memoizedState!==null&&e.memoizedState.cachePool!==null&&(n=e.memoizedState.cachePool.pool),l=null,t.memoizedState!==null&&t.memoizedState.cachePool!==null&&(l=t.memoizedState.cachePool.pool),l!==n&&(t.flags|=2048),e!==null&&B(Wn),null;case 24:return n=null,e!==null&&(n=e.memoizedState.cache),t.memoizedState.cache!==n&&(t.flags|=2048),Wt(Be),Ce(t),null;case 25:return null;case 30:return null}throw Error(c(156,t.tag))}function j0(e,t){switch(bs(t),t.tag){case 1:return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return Wt(Be),De(),e=t.flags,(e&65536)!==0&&(e&128)===0?(t.flags=e&-65537|128,t):null;case 26:case 27:case 5:return ei(t),null;case 31:if(t.memoizedState!==null){if(ht(t),t.alternate===null)throw Error(c(340));Kn()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 13:if(ht(t),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(c(340));Kn()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return B(je),null;case 4:return De(),null;case 10:return Wt(t.type),null;case 22:case 23:return ht(t),ws(),e!==null&&B(Wn),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 24:return Wt(Be),null;case 25:return null;default:return null}}function Sd(e,t){switch(bs(t),t.tag){case 3:Wt(Be),De();break;case 26:case 27:case 5:ei(t);break;case 4:De();break;case 31:t.memoizedState!==null&&ht(t);break;case 13:ht(t);break;case 19:B(je);break;case 10:Wt(t.type);break;case 22:case 23:ht(t),ws(),e!==null&&B(Wn);break;case 24:Wt(Be)}}function Ta(e,t){try{var n=t.updateQueue,l=n!==null?n.lastEffect:null;if(l!==null){var a=l.next;n=a;do{if((n.tag&e)===e){l=void 0;var s=n.create,o=n.inst;l=s(),o.destroy=l}n=n.next}while(n!==a)}}catch(d){ye(t,t.return,d)}}function An(e,t,n){try{var l=t.updateQueue,a=l!==null?l.lastEffect:null;if(a!==null){var s=a.next;l=s;do{if((l.tag&e)===e){var o=l.inst,d=o.destroy;if(d!==void 0){o.destroy=void 0,a=t;var b=n,R=d;try{R()}catch(D){ye(a,b,D)}}}l=l.next}while(l!==s)}}catch(D){ye(t,t.return,D)}}function xd(e){var t=e.updateQueue;if(t!==null){var n=e.stateNode;try{ff(t,n)}catch(l){ye(e,e.return,l)}}}function _d(e,t,n){n.props=tl(e.type,e.memoizedProps),n.state=e.memoizedState;try{n.componentWillUnmount()}catch(l){ye(e,t,l)}}function Aa(e,t){try{var n=e.ref;if(n!==null){switch(e.tag){case 26:case 27:case 5:var l=e.stateNode;break;case 30:l=e.stateNode;break;default:l=e.stateNode}typeof n=="function"?e.refCleanup=n(l):n.current=l}}catch(a){ye(e,t,a)}}function Lt(e,t){var n=e.ref,l=e.refCleanup;if(n!==null)if(typeof l=="function")try{l()}catch(a){ye(e,t,a)}finally{e.refCleanup=null,e=e.alternate,e!=null&&(e.refCleanup=null)}else if(typeof n=="function")try{n(null)}catch(a){ye(e,t,a)}else n.current=null}function Ed(e){var t=e.type,n=e.memoizedProps,l=e.stateNode;try{e:switch(t){case"button":case"input":case"select":case"textarea":n.autoFocus&&l.focus();break e;case"img":n.src?l.src=n.src:n.srcSet&&(l.srcset=n.srcSet)}}catch(a){ye(e,e.return,a)}}function dr(e,t,n){try{var l=e.stateNode;ty(l,e.type,n,t),l[et]=t}catch(a){ye(e,e.return,a)}}function Td(e){return e.tag===5||e.tag===3||e.tag===26||e.tag===27&&Dn(e.type)||e.tag===4}function hr(e){e:for(;;){for(;e.sibling===null;){if(e.return===null||Td(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&&Dn(e.type)||e.flags&2||e.child===null||e.tag===4)continue e;e.child.return=e,e=e.child}if(!(e.flags&2))return e.stateNode}}function mr(e,t,n){var l=e.tag;if(l===5||l===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(l!==4&&(l===27&&Dn(e.type)&&(n=e.stateNode,t=null),e=e.child,e!==null))for(mr(e,t,n),e=e.sibling;e!==null;)mr(e,t,n),e=e.sibling}function Vi(e,t,n){var l=e.tag;if(l===5||l===6)e=e.stateNode,t?n.insertBefore(e,t):n.appendChild(e);else if(l!==4&&(l===27&&Dn(e.type)&&(n=e.stateNode),e=e.child,e!==null))for(Vi(e,t,n),e=e.sibling;e!==null;)Vi(e,t,n),e=e.sibling}function Ad(e){var t=e.stateNode,n=e.memoizedProps;try{for(var l=e.type,a=t.attributes;a.length;)t.removeAttributeNode(a[0]);We(t,l,n),t[Ze]=e,t[et]=n}catch(s){ye(e,e.return,s)}}var tn=!1,qe=!1,pr=!1,Nd=typeof WeakSet=="function"?WeakSet:Set,Qe=null;function w0(e,t){if(e=e.containerInfo,Br=fu,e=Lo(e),rs(e)){if("selectionStart"in e)var n={start:e.selectionStart,end:e.selectionEnd};else e:{n=(n=e.ownerDocument)&&n.defaultView||window;var l=n.getSelection&&n.getSelection();if(l&&l.rangeCount!==0){n=l.anchorNode;var a=l.anchorOffset,s=l.focusNode;l=l.focusOffset;try{n.nodeType,s.nodeType}catch{n=null;break e}var o=0,d=-1,b=-1,R=0,D=0,U=e,O=null;t:for(;;){for(var z;U!==n||a!==0&&U.nodeType!==3||(d=o+a),U!==s||l!==0&&U.nodeType!==3||(b=o+l),U.nodeType===3&&(o+=U.nodeValue.length),(z=U.firstChild)!==null;)O=U,U=z;for(;;){if(U===e)break t;if(O===n&&++R===a&&(d=o),O===s&&++D===l&&(b=o),(z=U.nextSibling)!==null)break;U=O,O=U.parentNode}U=z}n=d===-1||b===-1?null:{start:d,end:b}}else n=null}n=n||{start:0,end:0}}else n=null;for(Lr={focusedElem:e,selectionRange:n},fu=!1,Qe=t;Qe!==null;)if(t=Qe,e=t.child,(t.subtreeFlags&1028)!==0&&e!==null)e.return=t,Qe=e;else for(;Qe!==null;){switch(t=Qe,s=t.alternate,e=t.flags,t.tag){case 0:if((e&4)!==0&&(e=t.updateQueue,e=e!==null?e.events:null,e!==null))for(n=0;n title"))),We(s,l,n),s[Ze]=e,Ve(s),l=s;break e;case"link":var o=Dh("link","href",a).get(l+(n.href||""));if(o){for(var d=0;dxe&&(o=xe,xe=$,$=o);var A=Uo(d,$),x=Uo(d,xe);if(A&&x&&(z.rangeCount!==1||z.anchorNode!==A.node||z.anchorOffset!==A.offset||z.focusNode!==x.node||z.focusOffset!==x.offset)){var C=U.createRange();C.setStart(A.node,A.offset),z.removeAllRanges(),$>xe?(z.addRange(C),z.extend(x.node,x.offset)):(C.setEnd(x.node,x.offset),z.addRange(C))}}}}for(U=[],z=d;z=z.parentNode;)z.nodeType===1&&U.push({element:z,left:z.scrollLeft,top:z.scrollTop});for(typeof d.focus=="function"&&d.focus(),d=0;dn?32:n,j.T=null,n=_r,_r=null;var s=On,o=sn;if(Xe=0,Bl=On=null,sn=0,(he&6)!==0)throw Error(c(331));var d=he;if(he|=4,Ld(s.current),wd(s,s.current,o,n),he=d,Ma(0,!1),rt&&typeof rt.onPostCommitFiberRoot=="function")try{rt.onPostCommitFiberRoot($l,s)}catch{}return!0}finally{k.p=a,j.T=l,th(e,t)}}function lh(e,t,n){t=xt(n,t),t=tr(e.stateNode,t,2),e=_n(e,t,2),e!==null&&(Fl(e,2),Ht(e))}function ye(e,t,n){if(e.tag===3)lh(e,e,n);else for(;t!==null;){if(t.tag===3){lh(t,e,n);break}else if(t.tag===1){var l=t.stateNode;if(typeof t.type.getDerivedStateFromError=="function"||typeof l.componentDidCatch=="function"&&(Rn===null||!Rn.has(l))){e=xt(n,e),n=ad(2),l=_n(t,n,2),l!==null&&(id(n,l,t,e),Fl(l,2),Ht(l));break}}t=t.return}}function Nr(e,t,n){var l=e.pingCache;if(l===null){l=e.pingCache=new L0;var a=new Set;l.set(t,a)}else a=l.get(t),a===void 0&&(a=new Set,l.set(t,a));a.has(n)||(gr=!0,a.add(n),e=X0.bind(null,e,t,n),t.then(e,e))}function X0(e,t,n){var l=e.pingCache;l!==null&&l.delete(t),e.pingedLanes|=e.suspendedLanes&n,e.warmLanes&=~n,Te===e&&(ue&n)===n&&(Me===4||Me===3&&(ue&62914560)===ue&&300>st()-Ki?(he&2)===0&&Ll(e,0):br|=n,Ul===ue&&(Ul=0)),Ht(e)}function ah(e,t){t===0&&(t=Wc()),e=Qn(e,t),e!==null&&(Fl(e,t),Ht(e))}function G0(e){var t=e.memoizedState,n=0;t!==null&&(n=t.retryLane),ah(e,n)}function V0(e,t){var n=0;switch(e.tag){case 31:case 13:var l=e.stateNode,a=e.memoizedState;a!==null&&(n=a.retryLane);break;case 19:l=e.stateNode;break;case 22:l=e.stateNode._retryCache;break;default:throw Error(c(314))}l!==null&&l.delete(t),ah(e,n)}function Q0(e,t){return qu(e,t)}var eu=null,ql=null,Cr=!1,tu=!1,Rr=!1,Mn=0;function Ht(e){e!==ql&&e.next===null&&(ql===null?eu=ql=e:ql=ql.next=e),tu=!0,Cr||(Cr=!0,K0())}function Ma(e,t){if(!Rr&&tu){Rr=!0;do for(var n=!1,l=eu;l!==null;){if(e!==0){var a=l.pendingLanes;if(a===0)var s=0;else{var o=l.suspendedLanes,d=l.pingedLanes;s=(1<<31-ct(42|e)+1)-1,s&=a&~(o&~d),s=s&201326741?s&201326741|1:s?s|2:0}s!==0&&(n=!0,rh(l,s))}else s=ue,s=ii(l,l===Te?s:0,l.cancelPendingCommit!==null||l.timeoutHandle!==-1),(s&3)===0||Wl(l,s)||(n=!0,rh(l,s));l=l.next}while(n);Rr=!1}}function Z0(){ih()}function ih(){tu=Cr=!1;var e=0;Mn!==0&&ly()&&(e=Mn);for(var t=st(),n=null,l=eu;l!==null;){var a=l.next,s=uh(l,t);s===0?(l.next=null,n===null?eu=a:n.next=a,a===null&&(ql=n)):(n=l,(e!==0||(s&3)!==0)&&(tu=!0)),l=a}Xe!==0&&Xe!==5||Ma(e),Mn!==0&&(Mn=0)}function uh(e,t){for(var n=e.suspendedLanes,l=e.pingedLanes,a=e.expirationTimes,s=e.pendingLanes&-62914561;0d)break;var D=b.transferSize,U=b.initiatorType;D&&yh(U)&&(b=b.responseEnd,o+=D*(b"u"?null:document;function Rh(e,t,n){var l=Yl;if(l&&typeof t=="string"&&t){var a=bt(t);a='link[rel="'+e+'"][href="'+a+'"]',typeof n=="string"&&(a+='[crossorigin="'+n+'"]'),Ch.has(a)||(Ch.add(a),e={rel:e,crossOrigin:n,href:t},l.querySelector(a)===null&&(t=l.createElement("link"),We(t,"link",e),Ve(t),l.head.appendChild(t)))}}function dy(e){rn.D(e),Rh("dns-prefetch",e,null)}function hy(e,t){rn.C(e,t),Rh("preconnect",e,t)}function my(e,t,n){rn.L(e,t,n);var l=Yl;if(l&&e&&t){var a='link[rel="preload"][as="'+bt(t)+'"]';t==="image"&&n&&n.imageSrcSet?(a+='[imagesrcset="'+bt(n.imageSrcSet)+'"]',typeof n.imageSizes=="string"&&(a+='[imagesizes="'+bt(n.imageSizes)+'"]')):a+='[href="'+bt(e)+'"]';var s=a;switch(t){case"style":s=kl(e);break;case"script":s=Xl(e)}Ct.has(s)||(e=S({rel:"preload",href:t==="image"&&n&&n.imageSrcSet?void 0:e,as:t},n),Ct.set(s,e),l.querySelector(a)!==null||t==="style"&&l.querySelector(Ua(s))||t==="script"&&l.querySelector(Ba(s))||(t=l.createElement("link"),We(t,"link",e),Ve(t),l.head.appendChild(t)))}}function py(e,t){rn.m(e,t);var n=Yl;if(n&&e){var l=t&&typeof t.as=="string"?t.as:"script",a='link[rel="modulepreload"][as="'+bt(l)+'"][href="'+bt(e)+'"]',s=a;switch(l){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":s=Xl(e)}if(!Ct.has(s)&&(e=S({rel:"modulepreload",href:e},t),Ct.set(s,e),n.querySelector(a)===null)){switch(l){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":if(n.querySelector(Ba(s)))return}l=n.createElement("link"),We(l,"link",e),Ve(l),n.head.appendChild(l)}}}function yy(e,t,n){rn.S(e,t,n);var l=Yl;if(l&&e){var a=cl(l).hoistableStyles,s=kl(e);t=t||"default";var o=a.get(s);if(!o){var d={loading:0,preload:null};if(o=l.querySelector(Ua(s)))d.loading=5;else{e=S({rel:"stylesheet",href:e,"data-precedence":t},n),(n=Ct.get(s))&&Vr(e,n);var b=o=l.createElement("link");Ve(b),We(b,"link",e),b._p=new Promise(function(R,D){b.onload=R,b.onerror=D}),b.addEventListener("load",function(){d.loading|=1}),b.addEventListener("error",function(){d.loading|=2}),d.loading|=4,uu(o,t,l)}o={type:"stylesheet",instance:o,count:1,state:d},a.set(s,o)}}}function vy(e,t){rn.X(e,t);var n=Yl;if(n&&e){var l=cl(n).hoistableScripts,a=Xl(e),s=l.get(a);s||(s=n.querySelector(Ba(a)),s||(e=S({src:e,async:!0},t),(t=Ct.get(a))&&Qr(e,t),s=n.createElement("script"),Ve(s),We(s,"link",e),n.head.appendChild(s)),s={type:"script",instance:s,count:1,state:null},l.set(a,s))}}function gy(e,t){rn.M(e,t);var n=Yl;if(n&&e){var l=cl(n).hoistableScripts,a=Xl(e),s=l.get(a);s||(s=n.querySelector(Ba(a)),s||(e=S({src:e,async:!0,type:"module"},t),(t=Ct.get(a))&&Qr(e,t),s=n.createElement("script"),Ve(s),We(s,"link",e),n.head.appendChild(s)),s={type:"script",instance:s,count:1,state:null},l.set(a,s))}}function Oh(e,t,n,l){var a=(a=le.current)?iu(a):null;if(!a)throw Error(c(446));switch(e){case"meta":case"title":return null;case"style":return typeof n.precedence=="string"&&typeof n.href=="string"?(t=kl(n.href),n=cl(a).hoistableStyles,l=n.get(t),l||(l={type:"style",instance:null,count:0,state:null},n.set(t,l)),l):{type:"void",instance:null,count:0,state:null};case"link":if(n.rel==="stylesheet"&&typeof n.href=="string"&&typeof n.precedence=="string"){e=kl(n.href);var s=cl(a).hoistableStyles,o=s.get(e);if(o||(a=a.ownerDocument||a,o={type:"stylesheet",instance:null,count:0,state:{loading:0,preload:null}},s.set(e,o),(s=a.querySelector(Ua(e)))&&!s._p&&(o.instance=s,o.state.loading=5),Ct.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},Ct.set(e,n),s||by(a,e,n,o.state))),t&&l===null)throw Error(c(528,""));return o}if(t&&l!==null)throw Error(c(529,""));return null;case"script":return t=n.async,n=n.src,typeof n=="string"&&t&&typeof t!="function"&&typeof t!="symbol"?(t=Xl(n),n=cl(a).hoistableScripts,l=n.get(t),l||(l={type:"script",instance:null,count:0,state:null},n.set(t,l)),l):{type:"void",instance:null,count:0,state:null};default:throw Error(c(444,e))}}function kl(e){return'href="'+bt(e)+'"'}function Ua(e){return'link[rel="stylesheet"]['+e+"]"}function zh(e){return S({},e,{"data-precedence":e.precedence,precedence:null})}function by(e,t,n,l){e.querySelector('link[rel="preload"][as="style"]['+t+"]")?l.loading=1:(t=e.createElement("link"),l.preload=t,t.addEventListener("load",function(){return l.loading|=1}),t.addEventListener("error",function(){return l.loading|=2}),We(t,"link",n),Ve(t),e.head.appendChild(t))}function Xl(e){return'[src="'+bt(e)+'"]'}function Ba(e){return"script[async]"+e}function Mh(e,t,n){if(t.count++,t.instance===null)switch(t.type){case"style":var l=e.querySelector('style[data-href~="'+bt(n.href)+'"]');if(l)return t.instance=l,Ve(l),l;var a=S({},n,{"data-href":n.href,"data-precedence":n.precedence,href:null,precedence:null});return l=(e.ownerDocument||e).createElement("style"),Ve(l),We(l,"style",a),uu(l,n.precedence,e),t.instance=l;case"stylesheet":a=kl(n.href);var s=e.querySelector(Ua(a));if(s)return t.state.loading|=4,t.instance=s,Ve(s),s;l=zh(n),(a=Ct.get(a))&&Vr(l,a),s=(e.ownerDocument||e).createElement("link"),Ve(s);var o=s;return o._p=new Promise(function(d,b){o.onload=d,o.onerror=b}),We(s,"link",l),t.state.loading|=4,uu(s,n.precedence,e),t.instance=s;case"script":return s=Xl(n.src),(a=e.querySelector(Ba(s)))?(t.instance=a,Ve(a),a):(l=n,(a=Ct.get(s))&&(l=S({},n),Qr(l,a)),e=e.ownerDocument||e,a=e.createElement("script"),Ve(a),We(a,"link",l),e.head.appendChild(a),t.instance=a);case"void":return null;default:throw Error(c(443,t.type))}else t.type==="stylesheet"&&(t.state.loading&4)===0&&(l=t.instance,t.state.loading|=4,uu(l,n.precedence,e));return t.instance}function uu(e,t,n){for(var l=n.querySelectorAll('link[rel="stylesheet"][data-precedence],style[data-precedence]'),a=l.length?l[l.length-1]:null,s=a,o=0;o title"):null)}function Sy(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 wh(e){return!(e.type==="stylesheet"&&(e.state.loading&3)===0)}function xy(e,t,n,l){if(n.type==="stylesheet"&&(typeof l.media!="string"||matchMedia(l.media).matches!==!1)&&(n.state.loading&4)===0){if(n.instance===null){var a=kl(l.href),s=t.querySelector(Ua(a));if(s){t=s._p,t!==null&&typeof t=="object"&&typeof t.then=="function"&&(e.count++,e=ru.bind(e),t.then(e,e)),n.state.loading|=4,n.instance=s,Ve(s);return}s=t.ownerDocument||t,l=zh(l),(a=Ct.get(a))&&Vr(l,a),s=s.createElement("link"),Ve(s);var o=s;o._p=new Promise(function(d,b){o.onload=d,o.onerror=b}),We(s,"link",l),n.instance=s}e.stylesheets===null&&(e.stylesheets=new Map),e.stylesheets.set(n,t),(t=n.state.preload)&&(n.state.loading&3)===0&&(e.count++,n=ru.bind(e),t.addEventListener("load",n),t.addEventListener("error",n))}}var Zr=0;function _y(e,t){return e.stylesheets&&e.count===0&&ou(e,e.stylesheets),0Zr?50:800)+t);return e.unsuspend=n,function(){e.unsuspend=null,clearTimeout(l),clearTimeout(a)}}:null}function ru(){if(this.count--,this.count===0&&(this.imgCount===0||!this.waitingForImages)){if(this.stylesheets)ou(this,this.stylesheets);else if(this.unsuspend){var e=this.unsuspend;this.unsuspend=null,e()}}}var cu=null;function ou(e,t){e.stylesheets=null,e.unsuspend!==null&&(e.count++,cu=new Map,t.forEach(Ey,e),cu=null,ru.call(e))}function Ey(e,t){if(!(t.state.loading&4)){var n=cu.get(e);if(n)var l=n.get(null);else{n=new Map,cu.set(e,n);for(var a=e.querySelectorAll("link[data-precedence],style[data-precedence]"),s=0;s"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(u)}catch(i){console.error(i)}}return u(),tc.exports=qy(),tc.exports}var ky=Yy();var am="popstate";function Xy(u={}){function i(c,f){let{pathname:h,search:m,hash:g}=c.location;return hc("",{pathname:h,search:m,hash:g},f.state&&f.state.usr||null,f.state&&f.state.key||"default")}function r(c,f){return typeof f=="string"?f:Wa(f)}return Vy(i,r,null,u)}function Oe(u,i){if(u===!1||u===null||typeof u>"u")throw new Error(i)}function wt(u,i){if(!u){typeof console<"u"&&console.warn(i);try{throw new Error(i)}catch{}}}function Gy(){return Math.random().toString(36).substring(2,10)}function im(u,i){return{usr:u.state,key:u.key,idx:i}}function hc(u,i,r=null,c){return{pathname:typeof u=="string"?u:u.pathname,search:"",hash:"",...typeof i=="string"?Ql(i):i,state:r,key:i&&i.key||c||Gy()}}function Wa({pathname:u="/",search:i="",hash:r=""}){return i&&i!=="?"&&(u+=i.charAt(0)==="?"?i:"?"+i),r&&r!=="#"&&(u+=r.charAt(0)==="#"?r:"#"+r),u}function Ql(u){let i={};if(u){let r=u.indexOf("#");r>=0&&(i.hash=u.substring(r),u=u.substring(0,r));let c=u.indexOf("?");c>=0&&(i.search=u.substring(c),u=u.substring(0,c)),u&&(i.pathname=u)}return i}function Vy(u,i,r,c={}){let{window:f=document.defaultView,v5Compat:h=!1}=c,m=f.history,g="POP",y=null,v=T();v==null&&(v=0,m.replaceState({...m.state,idx:v},""));function T(){return(m.state||{idx:null}).idx}function S(){g="POP";let q=T(),H=q==null?null:q-v;v=q,y&&y({action:g,location:G.location,delta:H})}function N(q,H){g="PUSH";let Y=hc(G.location,q,H);v=T()+1;let V=im(Y,v),ne=G.createHref(Y);try{m.pushState(V,"",ne)}catch(de){if(de instanceof DOMException&&de.name==="DataCloneError")throw de;f.location.assign(ne)}h&&y&&y({action:g,location:G.location,delta:1})}function M(q,H){g="REPLACE";let Y=hc(G.location,q,H);v=T();let V=im(Y,v),ne=G.createHref(Y);m.replaceState(V,"",ne),h&&y&&y({action:g,location:G.location,delta:0})}function L(q){return Qy(q)}let G={get action(){return g},get location(){return u(f,m)},listen(q){if(y)throw new Error("A history only accepts one active listener");return f.addEventListener(am,S),y=q,()=>{f.removeEventListener(am,S),y=null}},createHref(q){return i(f,q)},createURL:L,encodeLocation(q){let H=L(q);return{pathname:H.pathname,search:H.search,hash:H.hash}},push:N,replace:M,go(q){return m.go(q)}};return G}function Qy(u,i=!1){let r="http://localhost";typeof window<"u"&&(r=window.location.origin!=="null"?window.location.origin:window.location.href),Oe(r,"No window.location.(origin|href) available to create URL");let c=typeof u=="string"?u:Wa(u);return c=c.replace(/ $/,"%20"),!i&&c.startsWith("//")&&(c=r+c),new URL(c,r)}function Em(u,i,r="/"){return Zy(u,i,r,!1)}function Zy(u,i,r,c){let f=typeof i=="string"?Ql(i):i,h=fn(f.pathname||"/",r);if(h==null)return null;let m=Tm(u);Ky(m);let g=null;for(let y=0;g==null&&y{let T={relativePath:v===void 0?m.path||"":v,caseSensitive:m.caseSensitive===!0,childrenIndex:g,route:m};if(T.relativePath.startsWith("/")){if(!T.relativePath.startsWith(c)&&y)return;Oe(T.relativePath.startsWith(c),`Absolute route path "${T.relativePath}" nested under path "${c}" is not valid. An absolute child route path must start with the combined path of all its parent routes.`),T.relativePath=T.relativePath.slice(c.length)}let S=on([c,T.relativePath]),N=r.concat(T);m.children&&m.children.length>0&&(Oe(m.index!==!0,`Index routes must not have child routes. Please remove all child routes from route path "${S}".`),Tm(m.children,i,N,S,y)),!(m.path==null&&!m.index)&&i.push({path:S,score:ev(S,m.index),routesMeta:N})};return u.forEach((m,g)=>{if(m.path===""||!m.path?.includes("?"))h(m,g);else for(let y of Am(m.path))h(m,g,!0,y)}),i}function Am(u){let i=u.split("/");if(i.length===0)return[];let[r,...c]=i,f=r.endsWith("?"),h=r.replace(/\?$/,"");if(c.length===0)return f?[h,""]:[h];let m=Am(c.join("/")),g=[];return g.push(...m.map(y=>y===""?h:[h,y].join("/"))),f&&g.push(...m),g.map(y=>u.startsWith("/")&&y===""?"/":y)}function Ky(u){u.sort((i,r)=>i.score!==r.score?r.score-i.score:tv(i.routesMeta.map(c=>c.childrenIndex),r.routesMeta.map(c=>c.childrenIndex)))}var Jy=/^:[\w-]+$/,$y=3,Wy=2,Fy=1,Py=10,Iy=-2,um=u=>u==="*";function ev(u,i){let r=u.split("/"),c=r.length;return r.some(um)&&(c+=Iy),i&&(c+=Wy),r.filter(f=>!um(f)).reduce((f,h)=>f+(Jy.test(h)?$y:h===""?Fy:Py),c)}function tv(u,i){return u.length===i.length&&u.slice(0,-1).every((c,f)=>c===i[f])?u[u.length-1]-i[i.length-1]:0}function nv(u,i,r=!1){let{routesMeta:c}=u,f={},h="/",m=[];for(let g=0;g{if(T==="*"){let L=g[N]||"";m=h.slice(0,h.length-L.length).replace(/(.)\/+$/,"$1")}const M=g[N];return S&&!M?v[T]=void 0:v[T]=(M||"").replace(/%2F/g,"/"),v},{}),pathname:h,pathnameBase:m,pattern:u}}function lv(u,i=!1,r=!0){wt(u==="*"||!u.endsWith("*")||u.endsWith("/*"),`Route path "${u}" will be treated as if it were "${u.replace(/\*$/,"/*")}" because the \`*\` character must always follow a \`/\` in the pattern. To get rid of this warning, please change the route path to "${u.replace(/\*$/,"/*")}".`);let c=[],f="^"+u.replace(/\/*\*?$/,"").replace(/^\/*/,"/").replace(/[\\.*+^${}|()[\]]/g,"\\$&").replace(/\/:([\w-]+)(\?)?/g,(m,g,y)=>(c.push({paramName:g,isOptional:y!=null}),y?"/?([^\\/]+)?":"/([^\\/]+)")).replace(/\/([\w-]+)\?(\/|$)/g,"(/$1)?$2");return u.endsWith("*")?(c.push({paramName:"*"}),f+=u==="*"||u==="/*"?"(.*)$":"(?:\\/(.+)|\\/*)$"):r?f+="\\/*$":u!==""&&u!=="/"&&(f+="(?:(?=\\/|$))"),[new RegExp(f,i?void 0:"i"),c]}function av(u){try{return u.split("/").map(i=>decodeURIComponent(i).replace(/\//g,"%2F")).join("/")}catch(i){return wt(!1,`The URL path "${u}" could not be decoded because it is a malformed URL segment. This is probably due to a bad percent encoding (${i}).`),u}}function fn(u,i){if(i==="/")return u;if(!u.toLowerCase().startsWith(i.toLowerCase()))return null;let r=i.endsWith("/")?i.length-1:i.length,c=u.charAt(r);return c&&c!=="/"?null:u.slice(r)||"/"}var iv=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,uv=u=>iv.test(u);function sv(u,i="/"){let{pathname:r,search:c="",hash:f=""}=typeof u=="string"?Ql(u):u,h;if(r)if(uv(r))h=r;else{if(r.includes("//")){let m=r;r=r.replace(/\/\/+/g,"/"),wt(!1,`Pathnames cannot have embedded double slashes - normalizing ${m} -> ${r}`)}r.startsWith("/")?h=sm(r.substring(1),"/"):h=sm(r,i)}else h=i;return{pathname:h,search:ov(c),hash:fv(f)}}function sm(u,i){let r=i.replace(/\/+$/,"").split("/");return u.split("/").forEach(f=>{f===".."?r.length>1&&r.pop():f!=="."&&r.push(f)}),r.length>1?r.join("/"):"/"}function ic(u,i,r,c){return`Cannot include a '${u}' character in a manually specified \`to.${i}\` field [${JSON.stringify(c)}]. Please separate it out to the \`to.${r}\` field. Alternatively you may provide the full path as a string in and the router will parse it for you.`}function rv(u){return u.filter((i,r)=>r===0||i.route.path&&i.route.path.length>0)}function Nm(u){let i=rv(u);return i.map((r,c)=>c===i.length-1?r.pathname:r.pathnameBase)}function Cm(u,i,r,c=!1){let f;typeof u=="string"?f=Ql(u):(f={...u},Oe(!f.pathname||!f.pathname.includes("?"),ic("?","pathname","search",f)),Oe(!f.pathname||!f.pathname.includes("#"),ic("#","pathname","hash",f)),Oe(!f.search||!f.search.includes("#"),ic("#","search","hash",f)));let h=u===""||f.pathname==="",m=h?"/":f.pathname,g;if(m==null)g=r;else{let S=i.length-1;if(!c&&m.startsWith("..")){let N=m.split("/");for(;N[0]==="..";)N.shift(),S-=1;f.pathname=N.join("/")}g=S>=0?i[S]:"/"}let y=sv(f,g),v=m&&m!=="/"&&m.endsWith("/"),T=(h||m===".")&&r.endsWith("/");return!y.pathname.endsWith("/")&&(v||T)&&(y.pathname+="/"),y}var on=u=>u.join("/").replace(/\/\/+/g,"/"),cv=u=>u.replace(/\/+$/,"").replace(/^\/*/,"/"),ov=u=>!u||u==="?"?"":u.startsWith("?")?u:"?"+u,fv=u=>!u||u==="#"?"":u.startsWith("#")?u:"#"+u;function dv(u){return u!=null&&typeof u.status=="number"&&typeof u.statusText=="string"&&typeof u.internal=="boolean"&&"data"in u}Object.getOwnPropertyNames(Object.prototype).sort().join("\0");var Rm=["POST","PUT","PATCH","DELETE"];new Set(Rm);var hv=["GET",...Rm];new Set(hv);var Zl=E.createContext(null);Zl.displayName="DataRouter";var Ou=E.createContext(null);Ou.displayName="DataRouterState";E.createContext(!1);var Om=E.createContext({isTransitioning:!1});Om.displayName="ViewTransition";var mv=E.createContext(new Map);mv.displayName="Fetchers";var pv=E.createContext(null);pv.displayName="Await";var kt=E.createContext(null);kt.displayName="Navigation";var Fa=E.createContext(null);Fa.displayName="Location";var dn=E.createContext({outlet:null,matches:[],isDataRoute:!1});dn.displayName="Route";var _c=E.createContext(null);_c.displayName="RouteError";function yv(u,{relative:i}={}){Oe(Pa(),"useHref() may be used only in the context of a component.");let{basename:r,navigator:c}=E.useContext(kt),{hash:f,pathname:h,search:m}=Ia(u,{relative:i}),g=h;return r!=="/"&&(g=h==="/"?r:on([r,h])),c.createHref({pathname:g,search:m,hash:f})}function Pa(){return E.useContext(Fa)!=null}function il(){return Oe(Pa(),"useLocation() may be used only in the context of a component."),E.useContext(Fa).location}var zm="You should call navigate() in a React.useEffect(), not when your component is first rendered.";function Mm(u){E.useContext(kt).static||E.useLayoutEffect(u)}function vv(){let{isDataRoute:u}=E.useContext(dn);return u?zv():gv()}function gv(){Oe(Pa(),"useNavigate() may be used only in the context of a component.");let u=E.useContext(Zl),{basename:i,navigator:r}=E.useContext(kt),{matches:c}=E.useContext(dn),{pathname:f}=il(),h=JSON.stringify(Nm(c)),m=E.useRef(!1);return Mm(()=>{m.current=!0}),E.useCallback((y,v={})=>{if(wt(m.current,zm),!m.current)return;if(typeof y=="number"){r.go(y);return}let T=Cm(y,JSON.parse(h),f,v.relative==="path");u==null&&i!=="/"&&(T.pathname=T.pathname==="/"?i:on([i,T.pathname])),(v.replace?r.replace:r.push)(T,v.state,v)},[i,r,h,f,u])}E.createContext(null);function Ia(u,{relative:i}={}){let{matches:r}=E.useContext(dn),{pathname:c}=il(),f=JSON.stringify(Nm(r));return E.useMemo(()=>Cm(u,JSON.parse(f),c,i==="path"),[u,f,c,i])}function bv(u,i){return Dm(u,i)}function Dm(u,i,r,c,f){Oe(Pa(),"useRoutes() may be used only in the context of a component.");let{navigator:h}=E.useContext(kt),{matches:m}=E.useContext(dn),g=m[m.length-1],y=g?g.params:{},v=g?g.pathname:"/",T=g?g.pathnameBase:"/",S=g&&g.route;{let Y=S&&S.path||"";jm(v,!S||Y.endsWith("*")||Y.endsWith("*?"),`You rendered descendant (or called \`useRoutes()\`) at "${v}" (under ) 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 to .`)}let N=il(),M;if(i){let Y=typeof i=="string"?Ql(i):i;Oe(T==="/"||Y.pathname?.startsWith(T),`When overriding the location using \`\` 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 "${T}" but pathname "${Y.pathname}" was given in the \`location\` prop.`),M=Y}else M=N;let L=M.pathname||"/",G=L;if(T!=="/"){let Y=T.replace(/^\//,"").split("/");G="/"+L.replace(/^\//,"").split("/").slice(Y.length).join("/")}let q=Em(u,{pathname:G});wt(S||q!=null,`No routes matched location "${M.pathname}${M.search}${M.hash}" `),wt(q==null||q[q.length-1].route.element!==void 0||q[q.length-1].route.Component!==void 0||q[q.length-1].route.lazy!==void 0,`Matched leaf route at location "${M.pathname}${M.search}${M.hash}" does not have an element or Component. This means it will render an with a null value by default resulting in an "empty" page.`);let H=Tv(q&&q.map(Y=>Object.assign({},Y,{params:Object.assign({},y,Y.params),pathname:on([T,h.encodeLocation?h.encodeLocation(Y.pathname.replace(/\?/g,"%3F").replace(/#/g,"%23")).pathname:Y.pathname]),pathnameBase:Y.pathnameBase==="/"?T:on([T,h.encodeLocation?h.encodeLocation(Y.pathnameBase.replace(/\?/g,"%3F").replace(/#/g,"%23")).pathname:Y.pathnameBase])})),m,r,c,f);return i&&H?E.createElement(Fa.Provider,{value:{location:{pathname:"/",search:"",hash:"",state:null,key:"default",...M},navigationType:"POP"}},H):H}function Sv(){let u=Ov(),i=dv(u)?`${u.status} ${u.statusText}`:u instanceof Error?u.message:JSON.stringify(u),r=u instanceof Error?u.stack:null,c="rgba(200,200,200, 0.5)",f={padding:"0.5rem",backgroundColor:c},h={padding:"2px 4px",backgroundColor:c},m=null;return console.error("Error handled by React Router default ErrorBoundary:",u),m=E.createElement(E.Fragment,null,E.createElement("p",null,"💿 Hey developer 👋"),E.createElement("p",null,"You can provide a way better UX than this when your app throws errors by providing your own ",E.createElement("code",{style:h},"ErrorBoundary")," or"," ",E.createElement("code",{style:h},"errorElement")," prop on your route.")),E.createElement(E.Fragment,null,E.createElement("h2",null,"Unexpected Application Error!"),E.createElement("h3",{style:{fontStyle:"italic"}},i),r?E.createElement("pre",{style:f},r):null,m)}var xv=E.createElement(Sv,null),_v=class extends E.Component{constructor(u){super(u),this.state={location:u.location,revalidation:u.revalidation,error:u.error}}static getDerivedStateFromError(u){return{error:u}}static getDerivedStateFromProps(u,i){return i.location!==u.location||i.revalidation!=="idle"&&u.revalidation==="idle"?{error:u.error,location:u.location,revalidation:u.revalidation}:{error:u.error!==void 0?u.error:i.error,location:i.location,revalidation:u.revalidation||i.revalidation}}componentDidCatch(u,i){this.props.onError?this.props.onError(u,i):console.error("React Router caught the following error during render",u)}render(){return this.state.error!==void 0?E.createElement(dn.Provider,{value:this.props.routeContext},E.createElement(_c.Provider,{value:this.state.error,children:this.props.component})):this.props.children}};function Ev({routeContext:u,match:i,children:r}){let c=E.useContext(Zl);return c&&c.static&&c.staticContext&&(i.route.errorElement||i.route.ErrorBoundary)&&(c.staticContext._deepestRenderedBoundaryId=i.route.id),E.createElement(dn.Provider,{value:u},r)}function Tv(u,i=[],r=null,c=null,f=null){if(u==null){if(!r)return null;if(r.errors)u=r.matches;else if(i.length===0&&!r.initialized&&r.matches.length>0)u=r.matches;else return null}let h=u,m=r?.errors;if(m!=null){let T=h.findIndex(S=>S.route.id&&m?.[S.route.id]!==void 0);Oe(T>=0,`Could not find a matching route for errors on route IDs: ${Object.keys(m).join(",")}`),h=h.slice(0,Math.min(h.length,T+1))}let g=!1,y=-1;if(r)for(let T=0;T=0?h=h.slice(0,y+1):h=[h[0]];break}}}let v=r&&c?(T,S)=>{c(T,{location:r.location,params:r.matches?.[0]?.params??{},errorInfo:S})}:void 0;return h.reduceRight((T,S,N)=>{let M,L=!1,G=null,q=null;r&&(M=m&&S.route.id?m[S.route.id]:void 0,G=S.route.errorElement||xv,g&&(y<0&&N===0?(jm("route-fallback",!1,"No `HydrateFallback` element provided to render during initial hydration"),L=!0,q=null):y===N&&(L=!0,q=S.route.hydrateFallbackElement||null)));let H=i.concat(h.slice(0,N+1)),Y=()=>{let V;return M?V=G:L?V=q:S.route.Component?V=E.createElement(S.route.Component,null):S.route.element?V=S.route.element:V=T,E.createElement(Ev,{match:S,routeContext:{outlet:T,matches:H,isDataRoute:r!=null},children:V})};return r&&(S.route.ErrorBoundary||S.route.errorElement||N===0)?E.createElement(_v,{location:r.location,revalidation:r.revalidation,component:G,error:M,children:Y(),routeContext:{outlet:null,matches:H,isDataRoute:!0},onError:v}):Y()},null)}function Ec(u){return`${u} must be used within a data router. See https://reactrouter.com/en/main/routers/picking-a-router.`}function Av(u){let i=E.useContext(Zl);return Oe(i,Ec(u)),i}function Nv(u){let i=E.useContext(Ou);return Oe(i,Ec(u)),i}function Cv(u){let i=E.useContext(dn);return Oe(i,Ec(u)),i}function Tc(u){let i=Cv(u),r=i.matches[i.matches.length-1];return Oe(r.route.id,`${u} can only be used on routes that contain a unique "id"`),r.route.id}function Rv(){return Tc("useRouteId")}function Ov(){let u=E.useContext(_c),i=Nv("useRouteError"),r=Tc("useRouteError");return u!==void 0?u:i.errors?.[r]}function zv(){let{router:u}=Av("useNavigate"),i=Tc("useNavigate"),r=E.useRef(!1);return Mm(()=>{r.current=!0}),E.useCallback(async(f,h={})=>{wt(r.current,zm),r.current&&(typeof f=="number"?u.navigate(f):await u.navigate(f,{fromRouteId:i,...h}))},[u,i])}var rm={};function jm(u,i,r){!i&&!rm[u]&&(rm[u]=!0,wt(!1,r))}E.memo(Mv);function Mv({routes:u,future:i,state:r,unstable_onError:c}){return Dm(u,void 0,r,c,i)}function mc(u){Oe(!1,"A is only ever to be used as the child of element, never rendered directly. Please wrap your in a .")}function Dv({basename:u="/",children:i=null,location:r,navigationType:c="POP",navigator:f,static:h=!1}){Oe(!Pa(),"You cannot render a inside another . You should never have more than one in your app.");let m=u.replace(/^\/*/,"/"),g=E.useMemo(()=>({basename:m,navigator:f,static:h,future:{}}),[m,f,h]);typeof r=="string"&&(r=Ql(r));let{pathname:y="/",search:v="",hash:T="",state:S=null,key:N="default"}=r,M=E.useMemo(()=>{let L=fn(y,m);return L==null?null:{location:{pathname:L,search:v,hash:T,state:S,key:N},navigationType:c}},[m,y,v,T,S,N,c]);return wt(M!=null,` is not able to match the URL "${y}${v}${T}" because it does not start with the basename, so the won't render anything.`),M==null?null:E.createElement(kt.Provider,{value:g},E.createElement(Fa.Provider,{children:i,value:M}))}function jv({children:u,location:i}){return bv(pc(u),i)}function pc(u,i=[]){let r=[];return E.Children.forEach(u,(c,f)=>{if(!E.isValidElement(c))return;let h=[...i,f];if(c.type===E.Fragment){r.push.apply(r,pc(c.props.children,h));return}Oe(c.type===mc,`[${typeof c.type=="string"?c.type:c.type.name}] is not a component. All component children of must be a or `),Oe(!c.props.index||!c.props.children,"An index route cannot have child routes.");let m={id:c.props.id||h.join("-"),caseSensitive:c.props.caseSensitive,element:c.props.element,Component:c.props.Component,index:c.props.index,path:c.props.path,middleware:c.props.middleware,loader:c.props.loader,action:c.props.action,hydrateFallbackElement:c.props.hydrateFallbackElement,HydrateFallback:c.props.HydrateFallback,errorElement:c.props.errorElement,ErrorBoundary:c.props.ErrorBoundary,hasErrorBoundary:c.props.hasErrorBoundary===!0||c.props.ErrorBoundary!=null||c.props.errorElement!=null,shouldRevalidate:c.props.shouldRevalidate,handle:c.props.handle,lazy:c.props.lazy};c.props.children&&(m.children=pc(c.props.children,h)),r.push(m)}),r}var xu="get",_u="application/x-www-form-urlencoded";function zu(u){return u!=null&&typeof u.tagName=="string"}function wv(u){return zu(u)&&u.tagName.toLowerCase()==="button"}function Uv(u){return zu(u)&&u.tagName.toLowerCase()==="form"}function Bv(u){return zu(u)&&u.tagName.toLowerCase()==="input"}function Lv(u){return!!(u.metaKey||u.altKey||u.ctrlKey||u.shiftKey)}function Hv(u,i){return u.button===0&&(!i||i==="_self")&&!Lv(u)}var gu=null;function qv(){if(gu===null)try{new FormData(document.createElement("form"),0),gu=!1}catch{gu=!0}return gu}var Yv=new Set(["application/x-www-form-urlencoded","multipart/form-data","text/plain"]);function uc(u){return u!=null&&!Yv.has(u)?(wt(!1,`"${u}" is not a valid \`encType\` for \`
\`/\`\` and will default to "${_u}"`),null):u}function kv(u,i){let r,c,f,h,m;if(Uv(u)){let g=u.getAttribute("action");c=g?fn(g,i):null,r=u.getAttribute("method")||xu,f=uc(u.getAttribute("enctype"))||_u,h=new FormData(u)}else if(wv(u)||Bv(u)&&(u.type==="submit"||u.type==="image")){let g=u.form;if(g==null)throw new Error('Cannot submit a - ) : ( - Auto-assigned - )} - - ))} - - - ); -} - -function AssignmentCard() { - const { session, releaseControl } = useSession(); - const assignment = session?.assignment; - const roverId = assignment?.roverId; - - const [busy, setBusy] = useState(false); - - async function handleRelease() { - if (!roverId) return; - setBusy(true); - try { - await releaseControl(roverId); - } catch (err) { - alert(err.message); - } finally { - setBusy(false); - } - } - - return ( -
-

Assignment

- {roverId ? ( -
-

Currently driving rover {roverId}

- -
- ) : ( -
-

Status: {assignment?.status ?? 'not assigned'}

- {assignment?.queuePosition && ( -

Queue position: {assignment.queuePosition}

- )} -
- )} -
- ); -} - -function SessionInspector() { - const { session } = useSession(); - const formatted = useMemo(() => JSON.stringify(session ?? {}, null, 2), [session]); - return ( -
-

Session snapshot

-
{formatted}
-
- ); -} - function DriverVideoPanel() { const { session } = useSession(); const roverId = session?.assignment?.roverId; @@ -217,25 +91,19 @@ function DriverVideoPanel() { }, [session?.roster, roverId]); return ( -
-
-
-

Video Feed

-

- {roverId ? `Rover ${roverId}` : 'No rover assigned'} -

-
-
+
{roverId ? ( - +
+ +
) : ( -

Assignment required to initialize video.

+

Assign a rover to view the video feed.

)}
); @@ -262,17 +130,17 @@ function AuthPanel() { } return ( -
-

Authentication

- +
+

Admin login

+ setUsername(e.target.value)} /> - {loading ? 'Logging in…' : 'Login as admin'} + {loading ? 'Logging in…' : 'Login'} -
+
@@ -308,24 +176,19 @@ function AuthPanel() { function DesktopLayout() { return ( -
-
+
+
-
-
+
+
-
-
- - - -
+
); @@ -333,47 +196,41 @@ function DesktopLayout() { function MobilePortraitLayout() { return ( -
+
- - -
); } function MobileLandscapeLayout() { return ( -
-
-
+
+
+
-
+
-
-
- - +
+
-
+
-
@@ -381,21 +238,15 @@ function MobileLandscapeLayout() { } function App() { - const { connected, session } = useSession(); const layout = useLayoutMode(); const renderedLayout = layout === 'desktop' ? : layout === 'mobile-landscape' ? : ; return (
-
- -
- -
- {renderedLayout} - -
-
+ +
{renderedLayout}
+ +
); } diff --git a/webui/src/components/AdminPanel.jsx b/webui/src/components/AdminPanel.jsx index ddffabb3..25f5f838 100644 --- a/webui/src/components/AdminPanel.jsx +++ b/webui/src/components/AdminPanel.jsx @@ -57,49 +57,43 @@ export default function AdminPanel() { if (!isAdmin) return null; return ( -
-
-

Admin Controls

-
- - -
-
+
+
+ Admin controls + +
-
+
{roster.map((rover) => ( -
+
-

{rover.name}

-

Locked: {lockMap[rover.id] ? 'yes' : 'no'}

+

{rover.name}

+

{lockMap[rover.id] ? 'locked' : 'unlocked'}

-
+
diff --git a/webui/src/components/AlertFeed.jsx b/webui/src/components/AlertFeed.jsx index 8d54069d..c3fcc0b5 100644 --- a/webui/src/components/AlertFeed.jsx +++ b/webui/src/components/AlertFeed.jsx @@ -30,7 +30,7 @@ export default function AlertFeed() { if (!visible.length) return null; return ( -
+
{visible.map((toast) => ( ))} @@ -41,14 +41,14 @@ export default function AlertFeed() { function AlertToast({ alert }) { const colorClasses = alert.color === 'error' - ? 'border-red-500/50 bg-red-500/20 text-red-100' + ? 'bg-red-500/30 text-red-100' : alert.color === 'warn' - ? 'border-amber-500/50 bg-amber-500/20 text-amber-100' - : 'border-emerald-500/40 bg-emerald-500/10 text-emerald-100'; + ? 'bg-amber-500/30 text-amber-100' + : 'bg-emerald-500/30 text-emerald-100'; return ( -
-

{alert.title || 'Alert'}

-

{alert.message}

+
+

{alert.title || 'Alert'}

+

{alert.message}

); } diff --git a/webui/src/components/DrivePanel.jsx b/webui/src/components/DrivePanel.jsx index e288655c..b191f7dd 100644 --- a/webui/src/components/DrivePanel.jsx +++ b/webui/src/components/DrivePanel.jsx @@ -19,25 +19,25 @@ export default function DrivePanel() { const updated = frame?.receivedAt ? new Date(frame.receivedAt).toLocaleTimeString() : null; return ( -
-
- Drive Control +
+
+ Drive control {roverId ? `Rover ${roverId}` : 'unassigned'}
-
+
-

Runs Start → Dock → Full commands to ready the rover.

-
- - {updated && Updated {updated}} +

Runs Start → Dock → Full to prep sensors.

+
+ + {updated && Sensors {updated}}
@@ -45,13 +45,11 @@ export default function DrivePanel() { type="button" onClick={seekDock} disabled={!roverId} - className="w-full rounded border border-cyan-500/40 bg-cyan-500/10 py-1 text-[0.7rem] font-semibold uppercase tracking-[0.3em] text-cyan-200 disabled:opacity-40" + className="w-full rounded-sm bg-black/50 px-1 py-1 text-xs text-slate-200 disabled:opacity-30" > - Seek Dock + Seek dock -

- Point the rover straight at the dock, about one foot away, before triggering. -

+

Point the rover straight at the dock, about one foot away.

@@ -59,7 +57,7 @@ export default function DrivePanel() {
-

Manual OI

+

Manual OI

{manualOiButtons.map((btn) => ( @@ -79,26 +77,26 @@ export default function DrivePanel() { type="button" onClick={stopMotors} disabled={!roverId} - className="flex-1 rounded border border-red-500/50 bg-red-500/10 py-1 text-[0.7rem] font-semibold uppercase tracking-[0.3em] text-red-200 disabled:opacity-40" + className="flex-1 rounded-sm bg-red-600/60 px-1 py-1 text-xs text-white disabled:opacity-40" > - Stop Motors + Stop motors
-

Sensor streaming auto-starts after each OI change.

+

Sensor streaming auto-starts after each OI change.

); } function SpeedRow({ left, right }) { return ( -
+
-

Left

+

Left

{left}

-

Right

+

Right

{right}

@@ -108,10 +106,8 @@ function SpeedRow({ left, right }) { function StatusPill({ label, active }) { return ( {label} diff --git a/webui/src/components/MobileControls.jsx b/webui/src/components/MobileControls.jsx index 3182b7d4..d295b426 100644 --- a/webui/src/components/MobileControls.jsx +++ b/webui/src/components/MobileControls.jsx @@ -27,9 +27,9 @@ function MobileJoystick() { }, [disabled, driveWithVector]); return ( -
-
Joystick
-
+
+
Joystick
+
-

+

Drag to drive. Release to stop sending drive commands.

@@ -79,14 +79,14 @@ function AuxMotorControls() { ]; return ( -
-
Aux Motors
-
+
+
Aux motors
+
@@ -94,19 +94,19 @@ function AuxMotorControls() { type="button" onClick={stopAll} disabled={disabled} - className="flex-1 rounded border border-slate-800 bg-black/40 py-1 text-[0.7rem] font-semibold uppercase tracking-[0.2em] text-slate-200 disabled:opacity-40" + className="flex-1 rounded-sm bg-black/40 px-1 py-1 text-xs text-slate-200 disabled:opacity-40" > Stop all
-
+
{auxButtons.map((btn) => ( @@ -118,7 +118,7 @@ function AuxMotorControls() { export default function MobileControlsStack() { return ( -
+
diff --git a/webui/src/components/TelemetryPanel.jsx b/webui/src/components/TelemetryPanel.jsx index 298a1443..b4860721 100644 --- a/webui/src/components/TelemetryPanel.jsx +++ b/webui/src/components/TelemetryPanel.jsx @@ -1,3 +1,4 @@ +import { useMemo, useState } from 'react'; import { useSession } from '../context/SessionContext.jsx'; import { useTelemetryFrame } from '../context/TelemetryContext.jsx'; @@ -7,50 +8,99 @@ function formatMetric(value, fallback = '--') { } export default function TelemetryPanel() { - const { session } = useSession(); + const { connected, session, requestControl } = useSession(); const roverId = session?.assignment?.roverId; const frame = useTelemetryFrame(roverId); const sensors = frame?.sensors || {}; - const voltage = sensors.voltageMv != null ? (sensors.voltageMv / 1000).toFixed(2) : null; - const current = sensors.currentMa != null ? (sensors.currentMa / 1000).toFixed(2) : null; + const voltage = sensors.voltageMv != null ? `${(sensors.voltageMv / 1000).toFixed(2)} V` : null; + const current = sensors.currentMa != null ? `${sensors.currentMa} mA` : null; const charge = sensors.batteryChargeMah; const capacity = sensors.batteryCapacityMah; const updated = frame?.receivedAt ? new Date(frame.receivedAt).toLocaleTimeString() : null; const rawSnippet = frame?.raw ? (frame.raw.length > 80 ? `${frame.raw.slice(0, 80)}…` : frame.raw) : null; + const roster = session?.roster ?? []; + const isAdmin = useMemo( + () => session?.role === 'admin' || session?.role === 'lockdown' || session?.role === 'lockdown-admin', + [session?.role], + ); + const [pending, setPending] = useState({}); + + async function handleRequest(roverId) { + if (!roverId) return; + setPending((prev) => ({ ...prev, [roverId]: true })); + try { + await requestControl(roverId); + } catch (err) { + alert(err.message); + } finally { + setPending((prev) => ({ ...prev, [roverId]: false })); + } + } return ( -
-
- Telemetry - {updated ? `Updated ${updated}` : 'waiting'} +
+
+ {connected ? 'online' : 'offline'} + · role {session?.role || 'unknown'} + · mode {session?.mode || '--'} + {updated && · sensors {updated}}
{!roverId ? ( -

Assignment required to view sensors.

+

Assign a rover to view sensors.

) : !frame ? ( -

No sensor frames yet.

+

Waiting for sensor frames…

) : ( -
+
- - - + + +
)} {rawSnippet && ( -
+        
           {rawSnippet}
         
)} +
+

Rovers

+ {roster.length === 0 ? ( +

No roster data.

+ ) : ( +
    + {roster.map((rover) => ( +
  • +
    +

    {rover.name}

    +

    + {rover.locked ? 'locked' : 'free'} · {rover.lastSeen ? 'seen' : 'unknown'} +

    +
    + {isAdmin && ( + + )} +
  • + ))} +
+ )} +
); } function Metric({ label, value }) { return ( -
- {label} - {value} +
+ {label} + {value}
); } diff --git a/webui/src/components/VideoTile.jsx b/webui/src/components/VideoTile.jsx index 8558a4be..7f076e72 100644 --- a/webui/src/components/VideoTile.jsx +++ b/webui/src/components/VideoTile.jsx @@ -124,8 +124,8 @@ export default function VideoTile({ sessionInfo, label, forceMute = false, telem : status; return ( -
-
+
+
- -
- {label} · {renderedStatus} -
+
); } -function BatteryBar({ charge, capacity, config }) { +function BatteryBar({ charge, capacity, config, label, status }) { if (charge == null || !config?.full || config.warn == null) { - return null; + return ( +
+ {label} + {status} +
+ ); } const span = config.full - config.warn; if (span <= 0) return null; @@ -160,23 +158,20 @@ function BatteryBar({ charge, capacity, config }) { const percentDisplay = Math.round(percent * 100); const depleted = normalized <= 0; const urgent = config.urgent != null && charge <= config.urgent; - const barClass = depleted - ? 'bg-red-500 animate-pulse' - : urgent - ? 'bg-amber-400' - : 'bg-emerald-500'; + const barClass = depleted ? 'bg-red-500 animate-pulse' : urgent ? 'bg-amber-400' : 'bg-emerald-500'; const capText = capacity ? `${charge}/${capacity}` : `${charge}`; return ( -
-
+
+
+ {label} + {status} +
+
Battery {capText} mAh
-
-
+
+
); @@ -199,20 +194,16 @@ function HudOverlay({ frame }) { { label: 'B-R', active: bumps.bumpRight }, ]; const wheelBadges = [ - { label: 'DROP L', active: bumps.wheelDropLeft }, - { label: 'DROP R', active: bumps.wheelDropRight }, + { label: 'Drop L', active: bumps.wheelDropLeft }, + { label: 'Drop R', active: bumps.wheelDropRight }, ]; return ( -
-
-
- - SENSORS +
+
+
+ + sensor
{bumperBadges.map((badge) => ( @@ -232,11 +223,7 @@ function HudOverlay({ frame }) { function HudBadge({ label, active }) { return ( {label} @@ -247,9 +234,7 @@ function OvercurrentOverlay({ active }) { if (!active) return null; return (
-
- Overcurrent -
+
Overcurrent
); } diff --git a/webui/src/hooks/useVideoRequests.js b/webui/src/hooks/useVideoRequests.js index 34a31c9b..1c4d9cda 100644 --- a/webui/src/hooks/useVideoRequests.js +++ b/webui/src/hooks/useVideoRequests.js @@ -4,13 +4,13 @@ import { useSocket } from '../context/SocketContext.jsx'; export function useVideoRequests(roverIds = []) { const socket = useSocket(); const [sources, setSources] = useState({}); - const ids = useMemo(() => Array.from(new Set(roverIds.filter(Boolean))), [roverIds]); - const idsKey = ids.join('|'); + const normalizedKey = Array.isArray(roverIds) ? roverIds.filter(Boolean).join('|') : ''; useEffect(() => { - if (!ids.length) { + if (!normalizedKey) { return undefined; } + const ids = normalizedKey.split('|'); let cancelled = false; ids.forEach((roverId) => { socket.emit('video:request', { roverId }, (resp = {}) => { @@ -25,9 +25,11 @@ export function useVideoRequests(roverIds = []) { return () => { cancelled = true; }; - }, [socket, idsKey, ids]); + }, [socket, normalizedKey]); + const filtered = useMemo(() => { - if (!ids.length) return {}; + if (!normalizedKey) return {}; + const ids = normalizedKey.split('|'); const next = {}; ids.forEach((id) => { if (sources[id]) { @@ -35,7 +37,7 @@ export function useVideoRequests(roverIds = []) { } }); return next; - }, [ids, sources]); + }, [normalizedKey, sources]); return filtered; }