From 972942e497de22d462e5dcd01de95be8c5d0e6d4 Mon Sep 17 00:00:00 2001 From: legop3 Date: Thu, 15 Jan 2026 18:56:35 -0500 Subject: [PATCH] no more double YOU --- server/public/assets/{index-ZuH-jWBy.js => index-poMXYqdO.js} | 2 +- server/public/index.html | 2 +- webui/src/components/UserListPanel.jsx | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) rename server/public/assets/{index-ZuH-jWBy.js => index-poMXYqdO.js} (98%) diff --git a/server/public/assets/index-ZuH-jWBy.js b/server/public/assets/index-poMXYqdO.js similarity index 98% rename from server/public/assets/index-ZuH-jWBy.js rename to server/public/assets/index-poMXYqdO.js index d880a593..1ebb09ea 100644 --- a/server/public/assets/index-ZuH-jWBy.js +++ b/server/public/assets/index-poMXYqdO.js @@ -9,7 +9,7 @@ Error generating stack: `+l.message+` `).replace(rv,"")}function qm(e,t){return t=Nm(t),Nm(e)===t}function _e(e,t,n,l,u,o){switch(n){case"children":typeof l=="string"?t==="body"||t==="textarea"&&l===""||La(e,l):(typeof l=="number"||typeof l=="bigint")&&t!=="body"&&La(e,""+l);break;case"className":Ys(e,"class",l);break;case"tabIndex":Ys(e,"tabindex",l);break;case"dir":case"role":case"viewBox":case"width":case"height":Ys(e,n,l);break;case"style":qf(e,l,o);break;case"data":if(t!=="object"){Ys(e,"data",l);break}case"src":case"href":if(l===""&&(t!=="a"||n!=="href")){e.removeAttribute(n);break}if(l==null||typeof l=="function"||typeof l=="symbol"||typeof l=="boolean"){e.removeAttribute(n);break}l=Gs(""+l),e.setAttribute(n,l);break;case"action":case"formAction":if(typeof l=="function"){e.setAttribute(n,"javascript:throw new Error('A React form was unexpectedly submitted. If you called form.submit() manually, consider using form.requestSubmit() instead. If you\\'re trying to use event.stopPropagation() in a submit event handler, consider also calling event.preventDefault().')");break}else typeof o=="function"&&(n==="formAction"?(t!=="input"&&_e(e,t,"name",u.name,u,null),_e(e,t,"formEncType",u.formEncType,u,null),_e(e,t,"formMethod",u.formMethod,u,null),_e(e,t,"formTarget",u.formTarget,u,null)):(_e(e,t,"encType",u.encType,u,null),_e(e,t,"method",u.method,u,null),_e(e,t,"target",u.target,u,null)));if(l==null||typeof l=="symbol"||typeof l=="boolean"){e.removeAttribute(n);break}l=Gs(""+l),e.setAttribute(n,l);break;case"onClick":l!=null&&(e.onclick=on);break;case"onScroll":l!=null&&xe("scroll",e);break;case"onScrollEnd":l!=null&&xe("scrollend",e);break;case"dangerouslySetInnerHTML":if(l!=null){if(typeof l!="object"||!("__html"in l))throw Error(r(61));if(n=l.__html,n!=null){if(u.children!=null)throw Error(r(60));e.innerHTML=n}}break;case"multiple":e.multiple=l&&typeof l!="function"&&typeof l!="symbol";break;case"muted":e.muted=l&&typeof l!="function"&&typeof l!="symbol";break;case"suppressContentEditableWarning":case"suppressHydrationWarning":case"defaultValue":case"defaultChecked":case"innerHTML":case"ref":break;case"autoFocus":break;case"xlinkHref":if(l==null||typeof l=="function"||typeof l=="boolean"||typeof l=="symbol"){e.removeAttribute("xlink:href");break}n=Gs(""+l),e.setAttributeNS("http://www.w3.org/1999/xlink","xlink:href",n);break;case"contentEditable":case"spellCheck":case"draggable":case"value":case"autoReverse":case"externalResourcesRequired":case"focusable":case"preserveAlpha":l!=null&&typeof l!="function"&&typeof l!="symbol"?e.setAttribute(n,""+l):e.removeAttribute(n);break;case"inert":case"allowFullScreen":case"async":case"autoPlay":case"controls":case"default":case"defer":case"disabled":case"disablePictureInPicture":case"disableRemotePlayback":case"formNoValidate":case"hidden":case"loop":case"noModule":case"noValidate":case"open":case"playsInline":case"readOnly":case"required":case"reversed":case"scoped":case"seamless":case"itemScope":l&&typeof l!="function"&&typeof l!="symbol"?e.setAttribute(n,""):e.removeAttribute(n);break;case"capture":case"download":l===!0?e.setAttribute(n,""):l!==!1&&l!=null&&typeof l!="function"&&typeof l!="symbol"?e.setAttribute(n,l):e.removeAttribute(n);break;case"cols":case"rows":case"size":case"span":l!=null&&typeof l!="function"&&typeof l!="symbol"&&!isNaN(l)&&1<=l?e.setAttribute(n,l):e.removeAttribute(n);break;case"rowSpan":case"start":l==null||typeof l=="function"||typeof l=="symbol"||isNaN(l)?e.removeAttribute(n):e.setAttribute(n,l);break;case"popover":xe("beforetoggle",e),xe("toggle",e),Vs(e,"popover",l);break;case"xlinkActuate":cn(e,"http://www.w3.org/1999/xlink","xlink:actuate",l);break;case"xlinkArcrole":cn(e,"http://www.w3.org/1999/xlink","xlink:arcrole",l);break;case"xlinkRole":cn(e,"http://www.w3.org/1999/xlink","xlink:role",l);break;case"xlinkShow":cn(e,"http://www.w3.org/1999/xlink","xlink:show",l);break;case"xlinkTitle":cn(e,"http://www.w3.org/1999/xlink","xlink:title",l);break;case"xlinkType":cn(e,"http://www.w3.org/1999/xlink","xlink:type",l);break;case"xmlBase":cn(e,"http://www.w3.org/XML/1998/namespace","xml:base",l);break;case"xmlLang":cn(e,"http://www.w3.org/XML/1998/namespace","xml:lang",l);break;case"xmlSpace":cn(e,"http://www.w3.org/XML/1998/namespace","xml:space",l);break;case"is":Vs(e,"is",l);break;case"innerText":case"textContent":break;default:(!(2x)break;var G=q.transferSize,$=q.initiatorType;G&&Em($)&&(q=q.responseEnd,h+=G*(q"u"?null:document;function Lm(e,t,n){var l=dl;if(l&&typeof t=="string"&&t){var u=Ot(t);u='link[rel="'+e+'"][href="'+u+'"]',typeof n=="string"&&(u+='[crossorigin="'+n+'"]'),Bm.has(u)||(Bm.add(u),e={rel:e,crossOrigin:n,href:t},l.querySelector(u)===null&&(t=l.createElement("link"),rt(t,"link",e),tt(t),l.head.appendChild(t)))}}function xv(e){En.D(e),Lm("dns-prefetch",e,null)}function bv(e,t){En.C(e,t),Lm("preconnect",e,t)}function Sv(e,t,n){En.L(e,t,n);var l=dl;if(l&&e&&t){var u='link[rel="preload"][as="'+Ot(t)+'"]';t==="image"&&n&&n.imageSrcSet?(u+='[imagesrcset="'+Ot(n.imageSrcSet)+'"]',typeof n.imageSizes=="string"&&(u+='[imagesizes="'+Ot(n.imageSizes)+'"]')):u+='[href="'+Ot(e)+'"]';var o=u;switch(t){case"style":o=hl(e);break;case"script":o=ml(e)}Yt.has(o)||(e=b({rel:"preload",href:t==="image"&&n&&n.imageSrcSet?void 0:e,as:t},n),Yt.set(o,e),l.querySelector(u)!==null||t==="style"&&l.querySelector(os(o))||t==="script"&&l.querySelector(fs(o))||(t=l.createElement("link"),rt(t,"link",e),tt(t),l.head.appendChild(t)))}}function Av(e,t){En.m(e,t);var n=dl;if(n&&e){var l=t&&typeof t.as=="string"?t.as:"script",u='link[rel="modulepreload"][as="'+Ot(l)+'"][href="'+Ot(e)+'"]',o=u;switch(l){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":o=ml(e)}if(!Yt.has(o)&&(e=b({rel:"modulepreload",href:e},t),Yt.set(o,e),n.querySelector(u)===null)){switch(l){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":if(n.querySelector(fs(o)))return}l=n.createElement("link"),rt(l,"link",e),tt(l),n.head.appendChild(l)}}}function jv(e,t,n){En.S(e,t,n);var l=dl;if(l&&e){var u=Da(l).hoistableStyles,o=hl(e);t=t||"default";var h=u.get(o);if(!h){var x={loading:0,preload:null};if(h=l.querySelector(os(o)))x.loading=5;else{e=b({rel:"stylesheet",href:e,"data-precedence":t},n),(n=Yt.get(o))&&Tc(e,n);var q=h=l.createElement("link");tt(q),rt(q,"link",e),q._p=new Promise(function(D,G){q.onload=D,q.onerror=G}),q.addEventListener("load",function(){x.loading|=1}),q.addEventListener("error",function(){x.loading|=2}),x.loading|=4,Vi(h,t,l)}h={type:"stylesheet",instance:h,count:1,state:x},u.set(o,h)}}}function Nv(e,t){En.X(e,t);var n=dl;if(n&&e){var l=Da(n).hoistableScripts,u=ml(e),o=l.get(u);o||(o=n.querySelector(fs(u)),o||(e=b({src:e,async:!0},t),(t=Yt.get(u))&&Rc(e,t),o=n.createElement("script"),tt(o),rt(o,"link",e),n.head.appendChild(o)),o={type:"script",instance:o,count:1,state:null},l.set(u,o))}}function qv(e,t){En.M(e,t);var n=dl;if(n&&e){var l=Da(n).hoistableScripts,u=ml(e),o=l.get(u);o||(o=n.querySelector(fs(u)),o||(e=b({src:e,async:!0,type:"module"},t),(t=Yt.get(u))&&Rc(e,t),o=n.createElement("script"),tt(o),rt(o,"link",e),n.head.appendChild(o)),o={type:"script",instance:o,count:1,state:null},l.set(u,o))}}function Um(e,t,n,l){var u=(u=ae.current)?Hi(u):null;if(!u)throw Error(r(446));switch(e){case"meta":case"title":return null;case"style":return typeof n.precedence=="string"&&typeof n.href=="string"?(t=hl(n.href),n=Da(u).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=hl(n.href);var o=Da(u).hoistableStyles,h=o.get(e);if(h||(u=u.ownerDocument||u,h={type:"stylesheet",instance:null,count:0,state:{loading:0,preload:null}},o.set(e,h),(o=u.querySelector(os(e)))&&!o._p&&(h.instance=o,h.state.loading=5),Yt.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},Yt.set(e,n),o||Ev(u,e,n,h.state))),t&&l===null)throw Error(r(528,""));return h}if(t&&l!==null)throw Error(r(529,""));return null;case"script":return t=n.async,n=n.src,typeof n=="string"&&t&&typeof t!="function"&&typeof t!="symbol"?(t=ml(n),n=Da(u).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(r(444,e))}}function hl(e){return'href="'+Ot(e)+'"'}function os(e){return'link[rel="stylesheet"]['+e+"]"}function Hm(e){return b({},e,{"data-precedence":e.precedence,precedence:null})}function Ev(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}),rt(t,"link",n),tt(t),e.head.appendChild(t))}function ml(e){return'[src="'+Ot(e)+'"]'}function fs(e){return"script[async]"+e}function Vm(e,t,n){if(t.count++,t.instance===null)switch(t.type){case"style":var l=e.querySelector('style[data-href~="'+Ot(n.href)+'"]');if(l)return t.instance=l,tt(l),l;var u=b({},n,{"data-href":n.href,"data-precedence":n.precedence,href:null,precedence:null});return l=(e.ownerDocument||e).createElement("style"),tt(l),rt(l,"style",u),Vi(l,n.precedence,e),t.instance=l;case"stylesheet":u=hl(n.href);var o=e.querySelector(os(u));if(o)return t.state.loading|=4,t.instance=o,tt(o),o;l=Hm(n),(u=Yt.get(u))&&Tc(l,u),o=(e.ownerDocument||e).createElement("link"),tt(o);var h=o;return h._p=new Promise(function(x,q){h.onload=x,h.onerror=q}),rt(o,"link",l),t.state.loading|=4,Vi(o,n.precedence,e),t.instance=o;case"script":return o=ml(n.src),(u=e.querySelector(fs(o)))?(t.instance=u,tt(u),u):(l=n,(u=Yt.get(o))&&(l=b({},n),Rc(l,u)),e=e.ownerDocument||e,u=e.createElement("script"),tt(u),rt(u,"link",l),e.head.appendChild(u),t.instance=u);case"void":return null;default:throw Error(r(443,t.type))}else t.type==="stylesheet"&&(t.state.loading&4)===0&&(l=t.instance,t.state.loading|=4,Vi(l,n.precedence,e));return t.instance}function Vi(e,t,n){for(var l=n.querySelectorAll('link[rel="stylesheet"][data-precedence],style[data-precedence]'),u=l.length?l[l.length-1]:null,o=u,h=0;h title"):null)}function Cv(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 Gm(e){return!(e.type==="stylesheet"&&(e.state.loading&3)===0)}function wv(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 u=hl(l.href),o=t.querySelector(os(u));if(o){t=o._p,t!==null&&typeof t=="object"&&typeof t.then=="function"&&(e.count++,e=Qi.bind(e),t.then(e,e)),n.state.loading|=4,n.instance=o,tt(o);return}o=t.ownerDocument||t,l=Hm(l),(u=Yt.get(u))&&Tc(l,u),o=o.createElement("link"),tt(o);var h=o;h._p=new Promise(function(x,q){h.onload=x,h.onerror=q}),rt(o,"link",l),n.instance=o}e.stylesheets===null&&(e.stylesheets=new Map),e.stylesheets.set(n,t),(t=n.state.preload)&&(n.state.loading&3)===0&&(e.count++,n=Qi.bind(e),t.addEventListener("load",n),t.addEventListener("error",n))}}var Mc=0;function Tv(e,t){return e.stylesheets&&e.count===0&&Xi(e,e.stylesheets),0Mc?50:800)+t);return e.unsuspend=n,function(){e.unsuspend=null,clearTimeout(l),clearTimeout(u)}}:null}function Qi(){if(this.count--,this.count===0&&(this.imgCount===0||!this.waitingForImages)){if(this.stylesheets)Xi(this,this.stylesheets);else if(this.unsuspend){var e=this.unsuspend;this.unsuspend=null,e()}}}var Gi=null;function Xi(e,t){e.stylesheets=null,e.unsuspend!==null&&(e.count++,Gi=new Map,t.forEach(Rv,e),Gi=null,Qi.call(e))}function Rv(e,t){if(!(t.state.loading&4)){var n=Gi.get(e);if(n)var l=n.get(null);else{n=new Map,Gi.set(e,n);for(var u=e.querySelectorAll("link[data-precedence],style[data-precedence]"),o=0;o"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(a)}catch(s){console.error(s)}}return a(),Hc.exports=$v(),Hc.exports}var Jv=Zv();var mp="popstate";function Fv(a={}){function s(r,f){let{pathname:d,search:p,hash:m}=r.location;return ro("",{pathname:d,search:p,hash:m},f.state&&f.state.usr||null,f.state&&f.state.key||"default")}function i(r,f){return typeof f=="string"?f:qs(f)}return Iv(s,i,null,a)}function Ye(a,s){if(a===!1||a===null||typeof a>"u")throw new Error(s)}function Wt(a,s){if(!a){typeof console<"u"&&console.warn(s);try{throw new Error(s)}catch{}}}function Wv(){return Math.random().toString(36).substring(2,10)}function pp(a,s){return{usr:a.state,key:a.key,idx:s}}function ro(a,s,i=null,r){return{pathname:typeof a=="string"?a:a.pathname,search:"",hash:"",...typeof s=="string"?xl(s):s,state:i,key:s&&s.key||r||Wv()}}function qs({pathname:a="/",search:s="",hash:i=""}){return s&&s!=="?"&&(a+=s.charAt(0)==="?"?s:"?"+s),i&&i!=="#"&&(a+=i.charAt(0)==="#"?i:"#"+i),a}function xl(a){let s={};if(a){let i=a.indexOf("#");i>=0&&(s.hash=a.substring(i),a=a.substring(0,i));let r=a.indexOf("?");r>=0&&(s.search=a.substring(r),a=a.substring(0,r)),a&&(s.pathname=a)}return s}function Iv(a,s,i,r={}){let{window:f=document.defaultView,v5Compat:d=!1}=r,p=f.history,m="POP",y=null,v=S();v==null&&(v=0,p.replaceState({...p.state,idx:v},""));function S(){return(p.state||{idx:null}).idx}function b(){m="POP";let A=S(),N=A==null?null:A-v;v=A,y&&y({action:m,location:w.location,delta:N})}function R(A,N){m="PUSH";let M=ro(w.location,A,N);v=S()+1;let Y=pp(M,v),J=w.createHref(M);try{p.pushState(Y,"",J)}catch(P){if(P instanceof DOMException&&P.name==="DataCloneError")throw P;f.location.assign(J)}d&&y&&y({action:m,location:w.location,delta:1})}function j(A,N){m="REPLACE";let M=ro(w.location,A,N);v=S();let Y=pp(M,v),J=w.createHref(M);p.replaceState(Y,"",J),d&&y&&y({action:m,location:w.location,delta:0})}function E(A){return Pv(A)}let w={get action(){return m},get location(){return a(f,p)},listen(A){if(y)throw new Error("A history only accepts one active listener");return f.addEventListener(mp,b),y=A,()=>{f.removeEventListener(mp,b),y=null}},createHref(A){return s(f,A)},createURL:E,encodeLocation(A){let N=E(A);return{pathname:N.pathname,search:N.search,hash:N.hash}},push:R,replace:j,go(A){return p.go(A)}};return w}function Pv(a,s=!1){let i="http://localhost";typeof window<"u"&&(i=window.location.origin!=="null"?window.location.origin:window.location.href),Ye(i,"No window.location.(origin|href) available to create URL");let r=typeof a=="string"?a:qs(a);return r=r.replace(/ $/,"%20"),!s&&r.startsWith("//")&&(r=i+r),new URL(r,i)}function a0(a,s,i="/"){return ex(a,s,i,!1)}function ex(a,s,i,r){let f=typeof s=="string"?xl(s):s,d=Mn(f.pathname||"/",i);if(d==null)return null;let p=l0(a);tx(p);let m=null;for(let y=0;m==null&&y{let S={relativePath:v===void 0?p.path||"":v,caseSensitive:p.caseSensitive===!0,childrenIndex:m,route:p};if(S.relativePath.startsWith("/")){if(!S.relativePath.startsWith(r)&&y)return;Ye(S.relativePath.startsWith(r),`Absolute route path "${S.relativePath}" nested under path "${r}" is not valid. An absolute child route path must start with the combined path of all its parent routes.`),S.relativePath=S.relativePath.slice(r.length)}let b=Tn([r,S.relativePath]),R=i.concat(S);p.children&&p.children.length>0&&(Ye(p.index!==!0,`Index routes must not have child routes. Please remove all child routes from route path "${b}".`),l0(p.children,s,R,b,y)),!(p.path==null&&!p.index)&&s.push({path:b,score:ux(b,p.index),routesMeta:R})};return a.forEach((p,m)=>{if(p.path===""||!p.path?.includes("?"))d(p,m);else for(let y of s0(p.path))d(p,m,!0,y)}),s}function s0(a){let s=a.split("/");if(s.length===0)return[];let[i,...r]=s,f=i.endsWith("?"),d=i.replace(/\?$/,"");if(r.length===0)return f?[d,""]:[d];let p=s0(r.join("/")),m=[];return m.push(...p.map(y=>y===""?d:[d,y].join("/"))),f&&m.push(...p),m.map(y=>a.startsWith("/")&&y===""?"/":y)}function tx(a){a.sort((s,i)=>s.score!==i.score?i.score-s.score:cx(s.routesMeta.map(r=>r.childrenIndex),i.routesMeta.map(r=>r.childrenIndex)))}var nx=/^:[\w-]+$/,ax=3,lx=2,sx=1,ix=10,rx=-2,gp=a=>a==="*";function ux(a,s){let i=a.split("/"),r=i.length;return i.some(gp)&&(r+=rx),s&&(r+=lx),i.filter(f=>!gp(f)).reduce((f,d)=>f+(nx.test(d)?ax:d===""?sx:ix),r)}function cx(a,s){return a.length===s.length&&a.slice(0,-1).every((r,f)=>r===s[f])?a[a.length-1]-s[s.length-1]:0}function ox(a,s,i=!1){let{routesMeta:r}=a,f={},d="/",p=[];for(let m=0;m{if(S==="*"){let E=m[R]||"";p=d.slice(0,d.length-E.length).replace(/(.)\/+$/,"$1")}const j=m[R];return b&&!j?v[S]=void 0:v[S]=(j||"").replace(/%2F/g,"/"),v},{}),pathname:d,pathnameBase:p,pattern:a}}function fx(a,s=!1,i=!0){Wt(a==="*"||!a.endsWith("*")||a.endsWith("/*"),`Route path "${a}" will be treated as if it were "${a.replace(/\*$/,"/*")}" because the \`*\` character must always follow a \`/\` in the pattern. To get rid of this warning, please change the route path to "${a.replace(/\*$/,"/*")}".`);let r=[],f="^"+a.replace(/\/*\*?$/,"").replace(/^\/*/,"/").replace(/[\\.*+^${}|()[\]]/g,"\\$&").replace(/\/:([\w-]+)(\?)?/g,(p,m,y)=>(r.push({paramName:m,isOptional:y!=null}),y?"/?([^\\/]+)?":"/([^\\/]+)")).replace(/\/([\w-]+)\?(\/|$)/g,"(/$1)?$2");return a.endsWith("*")?(r.push({paramName:"*"}),f+=a==="*"||a==="/*"?"(.*)$":"(?:\\/(.+)|\\/*)$"):i?f+="\\/*$":a!==""&&a!=="/"&&(f+="(?:(?=\\/|$))"),[new RegExp(f,s?void 0:"i"),r]}function dx(a){try{return a.split("/").map(s=>decodeURIComponent(s).replace(/\//g,"%2F")).join("/")}catch(s){return Wt(!1,`The URL path "${a}" could not be decoded because it is a malformed URL segment. This is probably due to a bad percent encoding (${s}).`),a}}function Mn(a,s){if(s==="/")return a;if(!a.toLowerCase().startsWith(s.toLowerCase()))return null;let i=s.endsWith("/")?s.length-1:s.length,r=a.charAt(i);return r&&r!=="/"?null:a.slice(i)||"/"}var hx=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,mx=a=>hx.test(a);function px(a,s="/"){let{pathname:i,search:r="",hash:f=""}=typeof a=="string"?xl(a):a,d;if(i)if(mx(i))d=i;else{if(i.includes("//")){let p=i;i=i.replace(/\/\/+/g,"/"),Wt(!1,`Pathnames cannot have embedded double slashes - normalizing ${p} -> ${i}`)}i.startsWith("/")?d=yp(i.substring(1),"/"):d=yp(i,s)}else d=s;return{pathname:d,search:vx(r),hash:xx(f)}}function yp(a,s){let i=s.replace(/\/+$/,"").split("/");return a.split("/").forEach(f=>{f===".."?i.length>1&&i.pop():f!=="."&&i.push(f)}),i.length>1?i.join("/"):"/"}function Gc(a,s,i,r){return`Cannot include a '${a}' character in a manually specified \`to.${s}\` field [${JSON.stringify(r)}]. Please separate it out to the \`to.${i}\` field. Alternatively you may provide the full path as a string in and the router will parse it for you.`}function gx(a){return a.filter((s,i)=>i===0||s.route.path&&s.route.path.length>0)}function i0(a){let s=gx(a);return s.map((i,r)=>r===s.length-1?i.pathname:i.pathnameBase)}function r0(a,s,i,r=!1){let f;typeof a=="string"?f=xl(a):(f={...a},Ye(!f.pathname||!f.pathname.includes("?"),Gc("?","pathname","search",f)),Ye(!f.pathname||!f.pathname.includes("#"),Gc("#","pathname","hash",f)),Ye(!f.search||!f.search.includes("#"),Gc("#","search","hash",f)));let d=a===""||f.pathname==="",p=d?"/":f.pathname,m;if(p==null)m=i;else{let b=s.length-1;if(!r&&p.startsWith("..")){let R=p.split("/");for(;R[0]==="..";)R.shift(),b-=1;f.pathname=R.join("/")}m=b>=0?s[b]:"/"}let y=px(f,m),v=p&&p!=="/"&&p.endsWith("/"),S=(d||p===".")&&i.endsWith("/");return!y.pathname.endsWith("/")&&(v||S)&&(y.pathname+="/"),y}var Tn=a=>a.join("/").replace(/\/\/+/g,"/"),yx=a=>a.replace(/\/+$/,"").replace(/^\/*/,"/"),vx=a=>!a||a==="?"?"":a.startsWith("?")?a:"?"+a,xx=a=>!a||a==="#"?"":a.startsWith("#")?a:"#"+a;function bx(a){return a!=null&&typeof a.status=="number"&&typeof a.statusText=="string"&&typeof a.internal=="boolean"&&"data"in a}Object.getOwnPropertyNames(Object.prototype).sort().join("\0");var u0=["POST","PUT","PATCH","DELETE"];new Set(u0);var Sx=["GET",...u0];new Set(Sx);var bl=g.createContext(null);bl.displayName="DataRouter";var br=g.createContext(null);br.displayName="DataRouterState";g.createContext(!1);var c0=g.createContext({isTransitioning:!1});c0.displayName="ViewTransition";var Ax=g.createContext(new Map);Ax.displayName="Fetchers";var jx=g.createContext(null);jx.displayName="Await";var ln=g.createContext(null);ln.displayName="Navigation";var Rs=g.createContext(null);Rs.displayName="Location";var _n=g.createContext({outlet:null,matches:[],isDataRoute:!1});_n.displayName="Route";var No=g.createContext(null);No.displayName="RouteError";function Nx(a,{relative:s}={}){Ye(Ms(),"useHref() may be used only in the context of a component.");let{basename:i,navigator:r}=g.useContext(ln),{hash:f,pathname:d,search:p}=_s(a,{relative:s}),m=d;return i!=="/"&&(m=d==="/"?i:Tn([i,d])),r.createHref({pathname:m,search:p,hash:f})}function Ms(){return g.useContext(Rs)!=null}function wa(){return Ye(Ms(),"useLocation() may be used only in the context of a component."),g.useContext(Rs).location}var o0="You should call navigate() in a React.useEffect(), not when your component is first rendered.";function f0(a){g.useContext(ln).static||g.useLayoutEffect(a)}function qx(){let{isDataRoute:a}=g.useContext(_n);return a?Lx():Ex()}function Ex(){Ye(Ms(),"useNavigate() may be used only in the context of a component.");let a=g.useContext(bl),{basename:s,navigator:i}=g.useContext(ln),{matches:r}=g.useContext(_n),{pathname:f}=wa(),d=JSON.stringify(i0(r)),p=g.useRef(!1);return f0(()=>{p.current=!0}),g.useCallback((y,v={})=>{if(Wt(p.current,o0),!p.current)return;if(typeof y=="number"){i.go(y);return}let S=r0(y,JSON.parse(d),f,v.relative==="path");a==null&&s!=="/"&&(S.pathname=S.pathname==="/"?s:Tn([s,S.pathname])),(v.replace?i.replace:i.push)(S,v.state,v)},[s,i,d,f,a])}g.createContext(null);function _s(a,{relative:s}={}){let{matches:i}=g.useContext(_n),{pathname:r}=wa(),f=JSON.stringify(i0(i));return g.useMemo(()=>r0(a,JSON.parse(f),r,s==="path"),[a,f,r,s])}function Cx(a,s){return d0(a,s)}function d0(a,s,i,r,f){Ye(Ms(),"useRoutes() may be used only in the context of a component.");let{navigator:d}=g.useContext(ln),{matches:p}=g.useContext(_n),m=p[p.length-1],y=m?m.params:{},v=m?m.pathname:"/",S=m?m.pathnameBase:"/",b=m&&m.route;{let M=b&&b.path||"";h0(v,!b||M.endsWith("*")||M.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 R=wa(),j;if(s){let M=typeof s=="string"?xl(s):s;Ye(S==="/"||M.pathname?.startsWith(S),`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 "${S}" but pathname "${M.pathname}" was given in the \`location\` prop.`),j=M}else j=R;let E=j.pathname||"/",w=E;if(S!=="/"){let M=S.replace(/^\//,"").split("/");w="/"+E.replace(/^\//,"").split("/").slice(M.length).join("/")}let A=a0(a,{pathname:w});Wt(b||A!=null,`No routes matched location "${j.pathname}${j.search}${j.hash}" `),Wt(A==null||A[A.length-1].route.element!==void 0||A[A.length-1].route.Component!==void 0||A[A.length-1].route.lazy!==void 0,`Matched leaf route at location "${j.pathname}${j.search}${j.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 N=_x(A&&A.map(M=>Object.assign({},M,{params:Object.assign({},y,M.params),pathname:Tn([S,d.encodeLocation?d.encodeLocation(M.pathname.replace(/\?/g,"%3F").replace(/#/g,"%23")).pathname:M.pathname]),pathnameBase:M.pathnameBase==="/"?S:Tn([S,d.encodeLocation?d.encodeLocation(M.pathnameBase.replace(/\?/g,"%3F").replace(/#/g,"%23")).pathname:M.pathnameBase])})),p,i,r,f);return s&&N?g.createElement(Rs.Provider,{value:{location:{pathname:"/",search:"",hash:"",state:null,key:"default",...j},navigationType:"POP"}},N):N}function wx(){let a=Bx(),s=bx(a)?`${a.status} ${a.statusText}`:a instanceof Error?a.message:JSON.stringify(a),i=a instanceof Error?a.stack:null,r="rgba(200,200,200, 0.5)",f={padding:"0.5rem",backgroundColor:r},d={padding:"2px 4px",backgroundColor:r},p=null;return console.error("Error handled by React Router default ErrorBoundary:",a),p=g.createElement(g.Fragment,null,g.createElement("p",null,"💿 Hey developer 👋"),g.createElement("p",null,"You can provide a way better UX than this when your app throws errors by providing your own ",g.createElement("code",{style:d},"ErrorBoundary")," or"," ",g.createElement("code",{style:d},"errorElement")," prop on your route.")),g.createElement(g.Fragment,null,g.createElement("h2",null,"Unexpected Application Error!"),g.createElement("h3",{style:{fontStyle:"italic"}},s),i?g.createElement("pre",{style:f},i):null,p)}var Tx=g.createElement(wx,null),Rx=class extends g.Component{constructor(a){super(a),this.state={location:a.location,revalidation:a.revalidation,error:a.error}}static getDerivedStateFromError(a){return{error:a}}static getDerivedStateFromProps(a,s){return s.location!==a.location||s.revalidation!=="idle"&&a.revalidation==="idle"?{error:a.error,location:a.location,revalidation:a.revalidation}:{error:a.error!==void 0?a.error:s.error,location:s.location,revalidation:a.revalidation||s.revalidation}}componentDidCatch(a,s){this.props.onError?this.props.onError(a,s):console.error("React Router caught the following error during render",a)}render(){return this.state.error!==void 0?g.createElement(_n.Provider,{value:this.props.routeContext},g.createElement(No.Provider,{value:this.state.error,children:this.props.component})):this.props.children}};function Mx({routeContext:a,match:s,children:i}){let r=g.useContext(bl);return r&&r.static&&r.staticContext&&(s.route.errorElement||s.route.ErrorBoundary)&&(r.staticContext._deepestRenderedBoundaryId=s.route.id),g.createElement(_n.Provider,{value:a},i)}function _x(a,s=[],i=null,r=null,f=null){if(a==null){if(!i)return null;if(i.errors)a=i.matches;else if(s.length===0&&!i.initialized&&i.matches.length>0)a=i.matches;else return null}let d=a,p=i?.errors;if(p!=null){let S=d.findIndex(b=>b.route.id&&p?.[b.route.id]!==void 0);Ye(S>=0,`Could not find a matching route for errors on route IDs: ${Object.keys(p).join(",")}`),d=d.slice(0,Math.min(d.length,S+1))}let m=!1,y=-1;if(i)for(let S=0;S=0?d=d.slice(0,y+1):d=[d[0]];break}}}let v=i&&r?(S,b)=>{r(S,{location:i.location,params:i.matches?.[0]?.params??{},errorInfo:b})}:void 0;return d.reduceRight((S,b,R)=>{let j,E=!1,w=null,A=null;i&&(j=p&&b.route.id?p[b.route.id]:void 0,w=b.route.errorElement||Tx,m&&(y<0&&R===0?(h0("route-fallback",!1,"No `HydrateFallback` element provided to render during initial hydration"),E=!0,A=null):y===R&&(E=!0,A=b.route.hydrateFallbackElement||null)));let N=s.concat(d.slice(0,R+1)),M=()=>{let Y;return j?Y=w:E?Y=A:b.route.Component?Y=g.createElement(b.route.Component,null):b.route.element?Y=b.route.element:Y=S,g.createElement(Mx,{match:b,routeContext:{outlet:S,matches:N,isDataRoute:i!=null},children:Y})};return i&&(b.route.ErrorBoundary||b.route.errorElement||R===0)?g.createElement(Rx,{location:i.location,revalidation:i.revalidation,component:w,error:j,children:M(),routeContext:{outlet:null,matches:N,isDataRoute:!0},onError:v}):M()},null)}function qo(a){return`${a} must be used within a data router. See https://reactrouter.com/en/main/routers/picking-a-router.`}function kx(a){let s=g.useContext(bl);return Ye(s,qo(a)),s}function Ox(a){let s=g.useContext(br);return Ye(s,qo(a)),s}function Dx(a){let s=g.useContext(_n);return Ye(s,qo(a)),s}function Eo(a){let s=Dx(a),i=s.matches[s.matches.length-1];return Ye(i.route.id,`${a} can only be used on routes that contain a unique "id"`),i.route.id}function zx(){return Eo("useRouteId")}function Bx(){let a=g.useContext(No),s=Ox("useRouteError"),i=Eo("useRouteError");return a!==void 0?a:s.errors?.[i]}function Lx(){let{router:a}=kx("useNavigate"),s=Eo("useNavigate"),i=g.useRef(!1);return f0(()=>{i.current=!0}),g.useCallback(async(f,d={})=>{Wt(i.current,o0),i.current&&(typeof f=="number"?a.navigate(f):await a.navigate(f,{fromRouteId:s,...d}))},[a,s])}var vp={};function h0(a,s,i){!s&&!vp[a]&&(vp[a]=!0,Wt(!1,i))}g.memo(Ux);function Ux({routes:a,future:s,state:i,unstable_onError:r}){return d0(a,void 0,i,r,s)}function rr(a){Ye(!1,"A is only ever to be used as the child of element, never rendered directly. Please wrap your in a .")}function Hx({basename:a="/",children:s=null,location:i,navigationType:r="POP",navigator:f,static:d=!1}){Ye(!Ms(),"You cannot render a inside another . You should never have more than one in your app.");let p=a.replace(/^\/*/,"/"),m=g.useMemo(()=>({basename:p,navigator:f,static:d,future:{}}),[p,f,d]);typeof i=="string"&&(i=xl(i));let{pathname:y="/",search:v="",hash:S="",state:b=null,key:R="default"}=i,j=g.useMemo(()=>{let E=Mn(y,p);return E==null?null:{location:{pathname:E,search:v,hash:S,state:b,key:R},navigationType:r}},[p,y,v,S,b,R,r]);return Wt(j!=null,` is not able to match the URL "${y}${v}${S}" because it does not start with the basename, so the won't render anything.`),j==null?null:g.createElement(ln.Provider,{value:m},g.createElement(Rs.Provider,{children:s,value:j}))}function Vx({children:a,location:s}){return Cx(uo(a),s)}function uo(a,s=[]){let i=[];return g.Children.forEach(a,(r,f)=>{if(!g.isValidElement(r))return;let d=[...s,f];if(r.type===g.Fragment){i.push.apply(i,uo(r.props.children,d));return}Ye(r.type===rr,`[${typeof r.type=="string"?r.type:r.type.name}] is not a component. All component children of must be a or `),Ye(!r.props.index||!r.props.children,"An index route cannot have child routes.");let p={id:r.props.id||d.join("-"),caseSensitive:r.props.caseSensitive,element:r.props.element,Component:r.props.Component,index:r.props.index,path:r.props.path,middleware:r.props.middleware,loader:r.props.loader,action:r.props.action,hydrateFallbackElement:r.props.hydrateFallbackElement,HydrateFallback:r.props.HydrateFallback,errorElement:r.props.errorElement,ErrorBoundary:r.props.ErrorBoundary,hasErrorBoundary:r.props.hasErrorBoundary===!0||r.props.ErrorBoundary!=null||r.props.errorElement!=null,shouldRevalidate:r.props.shouldRevalidate,handle:r.props.handle,lazy:r.props.lazy};r.props.children&&(p.children=uo(r.props.children,d)),i.push(p)}),i}var ur="get",cr="application/x-www-form-urlencoded";function Sr(a){return a!=null&&typeof a.tagName=="string"}function Yx(a){return Sr(a)&&a.tagName.toLowerCase()==="button"}function Qx(a){return Sr(a)&&a.tagName.toLowerCase()==="form"}function Gx(a){return Sr(a)&&a.tagName.toLowerCase()==="input"}function Xx(a){return!!(a.metaKey||a.altKey||a.ctrlKey||a.shiftKey)}function Kx(a,s){return a.button===0&&(!s||s==="_self")&&!Xx(a)}var Pi=null;function $x(){if(Pi===null)try{new FormData(document.createElement("form"),0),Pi=!1}catch{Pi=!0}return Pi}var Zx=new Set(["application/x-www-form-urlencoded","multipart/form-data","text/plain"]);function Xc(a){return a!=null&&!Zx.has(a)?(Wt(!1,`"${a}" is not a valid \`encType\` for \`
\`/\`\` and will default to "${cr}"`),null):a}function Jx(a,s){let i,r,f,d,p;if(Qx(a)){let m=a.getAttribute("action");r=m?Mn(m,s):null,i=a.getAttribute("method")||ur,f=Xc(a.getAttribute("enctype"))||cr,d=new FormData(a)}else if(Yx(a)||Gx(a)&&(a.type==="submit"||a.type==="image")){let m=a.form;if(m==null)throw new Error('Cannot submit a