@kb-labs/agent-cli 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (136) hide show
  1. package/README.md +56 -0
  2. package/dist/cli/commands/diff.d.ts +17 -0
  3. package/dist/cli/commands/diff.js +182 -0
  4. package/dist/cli/commands/diff.js.map +1 -0
  5. package/dist/cli/commands/history.d.ts +16 -0
  6. package/dist/cli/commands/history.js +216 -0
  7. package/dist/cli/commands/history.js.map +1 -0
  8. package/dist/cli/commands/quality-report.d.ts +21 -0
  9. package/dist/cli/commands/quality-report.js +457 -0
  10. package/dist/cli/commands/quality-report.js.map +1 -0
  11. package/dist/cli/commands/rollback.d.ts +27 -0
  12. package/dist/cli/commands/rollback.js +109 -0
  13. package/dist/cli/commands/rollback.js.map +1 -0
  14. package/dist/cli/commands/run.d.ts +42 -0
  15. package/dist/cli/commands/run.js +923 -0
  16. package/dist/cli/commands/run.js.map +1 -0
  17. package/dist/cli/commands/trace-context.d.ts +22 -0
  18. package/dist/cli/commands/trace-context.js +131 -0
  19. package/dist/cli/commands/trace-context.js.map +1 -0
  20. package/dist/cli/commands/trace-diagnose.d.ts +20 -0
  21. package/dist/cli/commands/trace-diagnose.js +434 -0
  22. package/dist/cli/commands/trace-diagnose.js.map +1 -0
  23. package/dist/cli/commands/trace-event-normalizer.d.ts +13 -0
  24. package/dist/cli/commands/trace-event-normalizer.js +39 -0
  25. package/dist/cli/commands/trace-event-normalizer.js.map +1 -0
  26. package/dist/cli/commands/trace-filter.d.ts +19 -0
  27. package/dist/cli/commands/trace-filter.js +153 -0
  28. package/dist/cli/commands/trace-filter.js.map +1 -0
  29. package/dist/cli/commands/trace-iteration.d.ts +18 -0
  30. package/dist/cli/commands/trace-iteration.js +192 -0
  31. package/dist/cli/commands/trace-iteration.js.map +1 -0
  32. package/dist/cli/commands/trace-stats.d.ts +17 -0
  33. package/dist/cli/commands/trace-stats.js +247 -0
  34. package/dist/cli/commands/trace-stats.js.map +1 -0
  35. package/dist/index.d.ts +2 -0
  36. package/dist/index.js +473 -0
  37. package/dist/index.js.map +1 -0
  38. package/dist/manifest.d.ts +184 -0
  39. package/dist/manifest.js +473 -0
  40. package/dist/manifest.js.map +1 -0
  41. package/dist/rest/handlers/approve-handler.d.ts +15 -0
  42. package/dist/rest/handlers/approve-handler.js +60 -0
  43. package/dist/rest/handlers/approve-handler.js.map +1 -0
  44. package/dist/rest/handlers/approve-session-plan-handler.d.ts +10 -0
  45. package/dist/rest/handlers/approve-session-plan-handler.js +52 -0
  46. package/dist/rest/handlers/approve-session-plan-handler.js.map +1 -0
  47. package/dist/rest/handlers/correct-handler.d.ts +7 -0
  48. package/dist/rest/handlers/correct-handler.js +326 -0
  49. package/dist/rest/handlers/correct-handler.js.map +1 -0
  50. package/dist/rest/handlers/create-session-handler.d.ts +7 -0
  51. package/dist/rest/handlers/create-session-handler.js +25 -0
  52. package/dist/rest/handlers/create-session-handler.js.map +1 -0
  53. package/dist/rest/handlers/execute-session-plan-handler.d.ts +10 -0
  54. package/dist/rest/handlers/execute-session-plan-handler.js +635 -0
  55. package/dist/rest/handlers/execute-session-plan-handler.js.map +1 -0
  56. package/dist/rest/handlers/generate-spec-handler.d.ts +10 -0
  57. package/dist/rest/handlers/generate-spec-handler.js +389 -0
  58. package/dist/rest/handlers/generate-spec-handler.js.map +1 -0
  59. package/dist/rest/handlers/get-file-diff-handler.d.ts +24 -0
  60. package/dist/rest/handlers/get-file-diff-handler.js +44 -0
  61. package/dist/rest/handlers/get-file-diff-handler.js.map +1 -0
  62. package/dist/rest/handlers/get-session-handler.d.ts +10 -0
  63. package/dist/rest/handlers/get-session-handler.js +23 -0
  64. package/dist/rest/handlers/get-session-handler.js.map +1 -0
  65. package/dist/rest/handlers/get-session-plan-handler.d.ts +10 -0
  66. package/dist/rest/handlers/get-session-plan-handler.js +53 -0
  67. package/dist/rest/handlers/get-session-plan-handler.js.map +1 -0
  68. package/dist/rest/handlers/get-session-turns-handler.d.ts +16 -0
  69. package/dist/rest/handlers/get-session-turns-handler.js +35 -0
  70. package/dist/rest/handlers/get-session-turns-handler.js.map +1 -0
  71. package/dist/rest/handlers/get-spec-handler.d.ts +10 -0
  72. package/dist/rest/handlers/get-spec-handler.js +39 -0
  73. package/dist/rest/handlers/get-spec-handler.js.map +1 -0
  74. package/dist/rest/handlers/list-file-changes-handler.d.ts +13 -0
  75. package/dist/rest/handlers/list-file-changes-handler.js +34 -0
  76. package/dist/rest/handlers/list-file-changes-handler.js.map +1 -0
  77. package/dist/rest/handlers/list-sessions-handler.d.ts +7 -0
  78. package/dist/rest/handlers/list-sessions-handler.js +23 -0
  79. package/dist/rest/handlers/list-sessions-handler.js.map +1 -0
  80. package/dist/rest/handlers/rollback-handler.d.ts +22 -0
  81. package/dist/rest/handlers/rollback-handler.js +91 -0
  82. package/dist/rest/handlers/rollback-handler.js.map +1 -0
  83. package/dist/rest/handlers/run-handler.d.ts +7 -0
  84. package/dist/rest/handlers/run-handler.js +516 -0
  85. package/dist/rest/handlers/run-handler.js.map +1 -0
  86. package/dist/rest/handlers/sessions-handler.d.ts +18 -0
  87. package/dist/rest/handlers/sessions-handler.js +56 -0
  88. package/dist/rest/handlers/sessions-handler.js.map +1 -0
  89. package/dist/rest/handlers/status-handler.d.ts +7 -0
  90. package/dist/rest/handlers/status-handler.js +313 -0
  91. package/dist/rest/handlers/status-handler.js.map +1 -0
  92. package/dist/rest/handlers/stop-handler.d.ts +7 -0
  93. package/dist/rest/handlers/stop-handler.js +317 -0
  94. package/dist/rest/handlers/stop-handler.js.map +1 -0
  95. package/dist/widgets/220.js +446 -0
  96. package/dist/widgets/220.js.map +1 -0
  97. package/dist/widgets/331.js +2 -0
  98. package/dist/widgets/331.js.map +1 -0
  99. package/dist/widgets/403.js +2 -0
  100. package/dist/widgets/403.js.map +1 -0
  101. package/dist/widgets/406.js +35 -0
  102. package/dist/widgets/406.js.map +1 -0
  103. package/dist/widgets/455.js +2 -0
  104. package/dist/widgets/455.js.map +1 -0
  105. package/dist/widgets/482.js +2 -0
  106. package/dist/widgets/482.js.map +1 -0
  107. package/dist/widgets/485.js +2 -0
  108. package/dist/widgets/485.js.map +1 -0
  109. package/dist/widgets/527.js +2 -0
  110. package/dist/widgets/527.js.map +1 -0
  111. package/dist/widgets/628.js +2 -0
  112. package/dist/widgets/628.js.map +1 -0
  113. package/dist/widgets/694.js +2 -0
  114. package/dist/widgets/694.js.map +1 -0
  115. package/dist/widgets/712.js +2 -0
  116. package/dist/widgets/712.js.map +1 -0
  117. package/dist/widgets/866.js +2 -0
  118. package/dist/widgets/866.js.map +1 -0
  119. package/dist/widgets/915.js +39 -0
  120. package/dist/widgets/915.js.map +1 -0
  121. package/dist/widgets/957.js +10 -0
  122. package/dist/widgets/957.js.map +1 -0
  123. package/dist/widgets/983.js +2 -0
  124. package/dist/widgets/983.js.map +1 -0
  125. package/dist/widgets/@mf-types.d.ts +3 -0
  126. package/dist/widgets/@mf-types.zip +0 -0
  127. package/dist/widgets/__federation_expose_AgentsPage.js +2 -0
  128. package/dist/widgets/__federation_expose_AgentsPage.js.map +1 -0
  129. package/dist/widgets/mf-manifest.json +260 -0
  130. package/dist/widgets/mf-stats.json +305 -0
  131. package/dist/widgets/remoteEntry.js +7 -0
  132. package/dist/widgets/remoteEntry.js.map +1 -0
  133. package/dist/ws/session-stream-handler.d.ts +8 -0
  134. package/dist/ws/session-stream-handler.js +409 -0
  135. package/dist/ws/session-stream-handler.js.map +1 -0
  136. package/package.json +83 -0
@@ -0,0 +1,35 @@
1
+ "use strict";(self.webpackChunk_kb_labs_agent_cli=self.webpackChunk_kb_labs_agent_cli||[]).push([["406"],{5196(e,t){let r;t.parse=function(e,t){let r=new l,n=e.length;if(n<2)return r;let a=t?.decode||d,o=0;do{let t=function(e,t,r){let n=e.indexOf("=",t);return n<r?n:-1}(e,o,n);if(-1===t)break;let i=function(e,t,r){let n=e.indexOf(";",t);return -1===n?r:n}(e,o,n);if(t>i){o=e.lastIndexOf(";",t-1)+1;continue}let s=c(e,o,t);void 0===r[s]&&(r[s]=a(c(e,t+1,i))),o=i+1}while(o<n);return r},t.serialize=u,t.serialize=u;let n=/^[\u0021-\u003A\u003C\u003E-\u007E]+$/,a=/^[\u0021-\u003A\u003C-\u007E]*$/,o=/^([.]?[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?)([.][a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?)*$/i,i=/^[\u0020-\u003A\u003D-\u007E]*$/,s=Object.prototype.toString,l=((r=function(){}).prototype=Object.create(null),r);function u(e,t,r){let l="object"==typeof e?e:{...r,name:e,value:String(t)},u=("object"==typeof t?t:r)?.encode||encodeURIComponent;if(!n.test(l.name))throw TypeError(`argument name is invalid: ${l.name}`);let c=l.value?u(l.value):"";if(!a.test(c))throw TypeError(`argument val is invalid: ${l.value}`);let d=l.name+"="+c;if(void 0!==l.maxAge){if(!Number.isInteger(l.maxAge))throw TypeError(`option maxAge is invalid: ${l.maxAge}`);d+="; Max-Age="+l.maxAge}if(l.domain){if(!o.test(l.domain))throw TypeError(`option domain is invalid: ${l.domain}`);d+="; Domain="+l.domain}if(l.path){if(!i.test(l.path))throw TypeError(`option path is invalid: ${l.path}`);d+="; Path="+l.path}if(l.expires){var h;if(h=l.expires,"[object Date]"!==s.call(h)||!Number.isFinite(l.expires.valueOf()))throw TypeError(`option expires is invalid: ${l.expires}`);d+="; Expires="+l.expires.toUTCString()}if(l.httpOnly&&(d+="; HttpOnly"),l.secure&&(d+="; Secure"),l.partitioned&&(d+="; Partitioned"),l.priority)switch("string"==typeof l.priority?l.priority.toLowerCase():void 0){case"low":d+="; Priority=Low";break;case"medium":d+="; Priority=Medium";break;case"high":d+="; Priority=High";break;default:throw TypeError(`option priority is invalid: ${l.priority}`)}if(l.sameSite)switch("string"==typeof l.sameSite?l.sameSite.toLowerCase():l.sameSite){case!0:case"strict":d+="; SameSite=Strict";break;case"lax":d+="; SameSite=Lax";break;case"none":d+="; SameSite=None";break;default:throw TypeError(`option sameSite is invalid: ${l.sameSite}`)}return d}function c(e,t,r){let n=t,a=r;do{let t=e.charCodeAt(n);if(32!==t&&9!==t)break}while(++n<a);for(;a>n;){let t=e.charCodeAt(a-1);if(32!==t&&9!==t)break;a--}return e.slice(n,a)}function d(e){if(-1===e.indexOf("%"))return e;try{return decodeURIComponent(e)}catch(t){return e}}},2964(e){var t={decodeValues:!0,map:!1,silent:!1};function r(e){return"string"!=typeof e||e in{}}function n(){return Object.create(null)}function a(e){return"string"==typeof e&&!!e.trim()}function o(e,o){var i,s,l,u,c=e.split(";").filter(a),d=(i=c.shift(),s="",l="",(u=i.split("=")).length>1?(s=u.shift(),l=u.join("=")):l=i,{name:s,value:l}),h=d.name,f=d.value;if(o=o?Object.assign({},t,o):t,r(h))return null;try{f=o.decodeValues?decodeURIComponent(f):f}catch(e){console.error("set-cookie-parser: failed to decode cookie value. Set options.decodeValues=false to disable decoding.",e)}var m=n();return m.name=h,m.value=f,c.forEach(function(e){var t=e.split("="),n=t.shift().trimLeft().toLowerCase();if(!r(n)){var a=t.join("=");if("expires"===n)m.expires=new Date(a);else if("max-age"===n){var o=parseInt(a,10);Number.isNaN(o)||(m.maxAge=o)}else"secure"===n?m.secure=!0:"httponly"===n?m.httpOnly=!0:"samesite"===n?m.sameSite=a:"partitioned"===n?m.partitioned=!0:n&&(m[n]=a)}}),m}function i(e,i){if(i=i?Object.assign({},t,i):t,!e)if(!i.map)return[];else return n();if(e.headers)if("function"==typeof e.headers.getSetCookie)e=e.headers.getSetCookie();else if(e.headers["set-cookie"])e=e.headers["set-cookie"];else{var s=e.headers[Object.keys(e.headers).find(function(e){return"set-cookie"===e.toLowerCase()})];s||!e.headers.cookie||i.silent||console.warn("Warning: set-cookie-parser appears to have been called on a request object. It is designed to parse Set-Cookie headers from responses, not Cookie headers from requests. Set the option {silent: true} to suppress this warning."),e=s}if(Array.isArray(e)||(e=[e]),!i.map)return e.filter(a).map(function(e){return o(e,i)}).filter(Boolean);var l=n();return e.filter(a).reduce(function(e,t){var n=o(t,i);return n&&!r(n.name)&&(e[n.name]=n),e},l)}e.exports=i,e.exports.parse=i,e.exports.parseString=o,e.exports.splitCookiesString=function(e){if(Array.isArray(e))return e;if("string"!=typeof e)return[];var t,r,n,a,o,i=[],s=0;function l(){for(;s<e.length&&/\s/.test(e.charAt(s));)s+=1;return s<e.length}for(;s<e.length;){for(t=s,o=!1;l();)if(","===(r=e.charAt(s))){for(n=s,s+=1,l(),a=s;s<e.length&&"="!==(r=e.charAt(s))&&";"!==r&&","!==r;)s+=1;s<e.length&&"="===e.charAt(s)?(o=!0,s=a,i.push(e.substring(t,n)),t=s):s=n+1}else s+=1;(!o||s>=e.length)&&i.push(e.substring(t,e.length))}return i}},1885(e,t,r){r.r(t),r.d(t,{useFetchers:()=>ad,UNSAFE_ServerMode:()=>aq,ScrollRestoration:()=>at,Route:()=>rg,UNSAFE_RSCDefaultRootErrorBoundary:()=>oC,HydratedRouter:()=>oN,MemoryRouter:()=>rm,UNSAFE_invariant:()=>y,useLoaderData:()=>t3,IDLE_BLOCKER:()=>eE,PrefetchPageLinks:()=>nJ,createCookieSessionStorage:()=>om,UNSAFE_withErrorBoundaryProps:()=>r$,createMemorySessionStorage:()=>op,useLinkClickHandler:()=>ao,useRouteError:()=>t6,replace:()=>et,useHref:()=>tO,useParams:()=>tq,useRoutes:()=>tJ,useSubmit:()=>al,Navigate:()=>rp,UNSAFE_NavigationContext:()=>t_,useAsyncError:()=>re,isSession:()=>od,unstable_usePrompt:()=>ag,Links:()=>nW,createStaticRouter:()=>ax,useFetcher:()=>ac,UNSAFE_FrameworkContext:()=>nU,useBlocker:()=>rr,data:()=>Z,createHashRouter:()=>n2,unstable_routeRSCServerRequest:()=>oL,useMatch:()=>tj,useNavigation:()=>t2,useFormAction:()=>au,useActionData:()=>t9,href:()=>oy,UNSAFE_hydrationRouteProperties:()=>ru,matchPath:()=>N,BrowserRouter:()=>n5,Form:()=>ae,createSearchParams:()=>rF,UNSAFE_LocationContext:()=>tD,Outlet:()=>ry,UNSAFE_WithHydrateFallbackProps:()=>rD,createMemoryRouter:()=>rc,UNSAFE_decodeViaTurboStream:()=>no,createStaticHandler:()=>aS,IDLE_FETCHER:()=>eb,useOutlet:()=>tB,useViewTransitionState:()=>av,Link:()=>n6,createRoutesStub:()=>aO,NavLink:()=>n7,UNSAFE_DataRouterStateContext:()=>tS,UNSAFE_AwaitContextProvider:()=>tL,UNSAFE_createBrowserHistory:()=>m,createRequestHandler:()=>on,redirectDocument:()=>ee,unstable_RSCStaticRouter:()=>o_,UNSAFE_useFogOFWarDiscovery:()=>n$,isRouteErrorResponse:()=>en,useNavigationType:()=>tN,Scripts:()=>nG,unstable_HistoryRouter:()=>n8,useMatches:()=>t5,StaticRouter:()=>aw,UNSAFE_withComponentProps:()=>rL,redirect:()=>Q,useOutletContext:()=>tI,createSessionStorage:()=>oh,createRoutesFromElements:()=>rx,UNSAFE_shouldHydrateRouteLoader:()=>n_,UNSAFE_getPatchRoutesOnNavigationFunction:()=>nO,generatePath:()=>T,UNSAFE_ViewTransitionContext:()=>tC,UNSAFE_ErrorResponseImpl:()=>er,UNSAFE_FetchersContext:()=>tk,createSession:()=>oc,createRoutesFromChildren:()=>rS,UNSAFE_withHydrateFallbackProps:()=>rA,UNSAFE_WithComponentProps:()=>rP,UNSAFE_createClientRoutes:()=>nC,UNSAFE_createRouter:()=>eC,createCookie:()=>aF,HashRouter:()=>n3,UNSAFE_mapRouteProperties:()=>rl,useResolvedPath:()=>tW,RouterContextProvider:()=>C,Router:()=>rv,Routes:()=>rw,StaticRouterProvider:()=>ab,UNSAFE_createClientRoutesWithHMRRevalidationOptOut:()=>nR,useRouteLoaderData:()=>t8,UNSAFE_deserializeErrors:()=>oD,Await:()=>rb,UNSAFE_RemixErrorBoundary:()=>nK,UNSAFE_DataRouterContext:()=>tR,IDLE_NAVIGATION:()=>ew,NavigationType:()=>d,ServerRouter:()=>aM,UNSAFE_RouteContext:()=>tA,UNSAFE_WithErrorBoundaryProps:()=>rO,parsePath:()=>E,RouterProvider:()=>oO,UNSAFE_SingleFetchRedirectSymbol:()=>r4,unstable_useRoute:()=>ro,UNSAFE_useScrollRestoration:()=>ap,unstable_setDevServerHooks:()=>aQ,matchRoutes:()=>D,createPath:()=>b,isCookie:()=>aH,resolvePath:()=>z,useInRouterContext:()=>t$,useNavigate:()=>tU,Meta:()=>nX,useAsyncValue:()=>t7,useSearchParams:()=>ai,renderMatches:()=>rC,UNSAFE_getTurboStreamSingleFetchDataStrategy:()=>r9,createContext:()=>x,useBeforeUnload:()=>ay,useLocation:()=>tT,UNSAFE_getHydrationData:()=>oA,createBrowserRouter:()=>n1,useRevalidator:()=>t4});var n,a,o,i,s=r(5259),l=r.n(s),u=e=>{throw TypeError(e)},c=(e,t,r)=>(t.has(e)||u("Cannot read from private field"),r?r.call(e):t.get(e)),d=((n=d||{}).Pop="POP",n.Push="PUSH",n.Replace="REPLACE",n),h="popstate";function f(e={}){let t,{initialEntries:r=["/"],initialIndex:n,v5Compat:a=!1}=e;t=r.map((e,t)=>u(e,"string"==typeof e?null:e.state,0===t?"default":void 0));let o=l(null==n?t.length-1:n),i="POP",s=null;function l(e){return Math.min(Math.max(e,0),t.length-1)}function u(e,r=null,n){let a=w(t?t[o].pathname:"/",e,r,n);return g("/"===a.pathname.charAt(0),`relative pathnames are not supported in memory history: ${JSON.stringify(e)}`),a}function c(e){return"string"==typeof e?e:b(e)}return{get index(){return o},get action(){return i},get location(){return t[o]},createHref:c,createURL:e=>new URL(c(e),"http://localhost"),encodeLocation(e){let t="string"==typeof e?E(e):e;return{pathname:t.pathname||"",search:t.search||"",hash:t.hash||""}},push(e,r){i="PUSH";let n=u(e,r);o+=1,t.splice(o,t.length,n),a&&s&&s({action:i,location:n,delta:1})},replace(e,r){i="REPLACE";let n=u(e,r);t[o]=n,a&&s&&s({action:i,location:n,delta:0})},go(e){i="POP";let r=l(o+e),n=t[r];o=r,s&&s({action:i,location:n,delta:e})},listen:e=>(s=e,()=>{s=null})}}function m(e={}){return R(function(e,t){let{pathname:r,search:n,hash:a}=e.location;return w("",{pathname:r,search:n,hash:a},t.state&&t.state.usr||null,t.state&&t.state.key||"default")},function(e,t){return"string"==typeof t?t:b(t)},null,e)}function p(e={}){return R(function(e,t){let{pathname:r="/",search:n="",hash:a=""}=E(e.location.hash.substring(1));return r.startsWith("/")||r.startsWith(".")||(r="/"+r),w("",{pathname:r,search:n,hash:a},t.state&&t.state.usr||null,t.state&&t.state.key||"default")},function(e,t){let r=e.document.querySelector("base"),n="";if(r&&r.getAttribute("href")){let t=e.location.href,r=t.indexOf("#");n=-1===r?t:t.slice(0,r)}return n+"#"+("string"==typeof t?t:b(t))},function(e,t){g("/"===e.pathname.charAt(0),`relative pathnames are not supported in hash history.push(${JSON.stringify(t)})`)},e)}function y(e,t){if(!1===e||null==e)throw Error(t)}function g(e,t){if(!e){"u">typeof console&&console.warn(t);try{throw Error(t)}catch(e){}}}function v(e,t){return{usr:e.state,key:e.key,idx:t}}function w(e,t,r=null,n){return{pathname:"string"==typeof e?e:e.pathname,search:"",hash:"",..."string"==typeof t?E(t):t,state:r,key:t&&t.key||n||Math.random().toString(36).substring(2,10)}}function b({pathname:e="/",search:t="",hash:r=""}){return t&&"?"!==t&&(e+="?"===t.charAt(0)?t:"?"+t),r&&"#"!==r&&(e+="#"===r.charAt(0)?r:"#"+r),e}function E(e){let t={};if(e){let r=e.indexOf("#");r>=0&&(t.hash=e.substring(r),e=e.substring(0,r));let n=e.indexOf("?");n>=0&&(t.search=e.substring(n),e=e.substring(0,n)),e&&(t.pathname=e)}return t}function R(e,t,r,n={}){let{window:a=document.defaultView,v5Compat:o=!1}=n,i=a.history,s="POP",l=null,u=c();function c(){return(i.state||{idx:null}).idx}function d(){s="POP";let e=c(),t=null==e?null:e-u;u=e,l&&l({action:s,location:f.location,delta:t})}null==u&&(u=0,i.replaceState({...i.state,idx:u},""));let f={get action(){return s},get location(){return e(a,i)},listen(e){if(l)throw Error("A history only accepts one active listener");return a.addEventListener(h,d),l=e,()=>{a.removeEventListener(h,d),l=null}},createHref:e=>t(a,e),createURL:function(e){return S(e)},encodeLocation(e){let t=S(e);return{pathname:t.pathname,search:t.search,hash:t.hash}},push:function(e,t){s="PUSH";let n=w(f.location,e,t);r&&r(n,e);let d=v(n,u=c()+1),h=f.createHref(n);try{i.pushState(d,"",h)}catch(e){if(e instanceof DOMException&&"DataCloneError"===e.name)throw e;a.location.assign(h)}o&&l&&l({action:s,location:f.location,delta:1})},replace:function(e,t){s="REPLACE";let n=w(f.location,e,t);r&&r(n,e);let a=v(n,u=c()),d=f.createHref(n);i.replaceState(a,"",d),o&&l&&l({action:s,location:f.location,delta:0})},go:e=>i.go(e)};return f}function S(e,t=!1){let r="http://localhost";"u">typeof window&&(r="null"!==window.location.origin?window.location.origin:window.location.href),y(r,"No window.location.(origin|href) available to create URL");let n="string"==typeof e?e:b(e);return n=n.replace(/ $/,"%20"),!t&&n.startsWith("//")&&(n=r+n),new URL(n,r)}function x(e){return{defaultValue:e}}var C=class{constructor(e){if(((e,t,r)=>t.has(e)?u("Cannot add the same private member more than once"):t instanceof WeakSet?t.add(e):t.set(e,r))(this,o,new Map),e)for(let[t,r]of e)this.set(t,r)}get(e){if(c(this,o).has(e))return c(this,o).get(e);if(void 0!==e.defaultValue)return e.defaultValue;throw Error("No value found for context")}set(e,t){c(this,o).set(e,t)}};o=new WeakMap;var k=new Set(["lazy","caseSensitive","path","id","index","children"]),P=new Set(["lazy","caseSensitive","path","id","index","middleware","children"]);function L(e,t,r=[],n={},a=!1){return e.map((e,o)=>{let i=[...r,String(o)],s="string"==typeof e.id?e.id:i.join("-");if(y(!0!==e.index||!e.children,"Cannot specify children on an index route"),y(a||!n[s],`Found a route id collision on id "${s}". Route id's must be globally unique within Data Router usages`),!0===e.index){let r={...e,id:s};return n[s]=_(r,t(r)),r}{let r={...e,id:s,children:void 0};return n[s]=_(r,t(r)),e.children&&(r.children=L(e.children,t,i,n,a)),r}})}function _(e,t){return Object.assign(e,{...t,..."object"==typeof t.lazy&&null!=t.lazy?{lazy:{...e.lazy,...t.lazy}}:{}})}function D(e,t,r="/"){return A(e,t,r,!1)}function A(e,t,r,n){let a=H(("string"==typeof t?E(t):t).pathname||"/",r);if(null==a)return null;let o=function e(t,r=[],n=[],a="",o=!1){let i=(t,i,s=o,l)=>{var u,c;let d,h,f={relativePath:void 0===l?t.path||"":l,caseSensitive:!0===t.caseSensitive,childrenIndex:i,route:t};if(f.relativePath.startsWith("/")){if(!f.relativePath.startsWith(a)&&s)return;y(f.relativePath.startsWith(a),`Absolute route path "${f.relativePath}" nested under path "${a}" is not valid. An absolute child route path must start with the combined path of all its parent routes.`),f.relativePath=f.relativePath.slice(a.length)}let m=Y([a,f.relativePath]),p=n.concat(f);t.children&&t.children.length>0&&(y(!0!==t.index,`Index routes must not have child routes. Please remove all child routes from route path "${m}".`),e(t.children,r,p,m,s)),(null!=t.path||t.index)&&r.push({path:m,score:(u=m,c=t.index,h=(d=u.split("/")).length,d.some($)&&(h+=-2),c&&(h+=2),d.filter(e=>!$(e)).reduce((e,t)=>e+(O.test(t)?3:""===t?1:10),h)),routesMeta:p})};return t.forEach((e,t)=>{if(""!==e.path&&e.path?.includes("?"))for(let r of function e(t){let r=t.split("/");if(0===r.length)return[];let[n,...a]=r,o=n.endsWith("?"),i=n.replace(/\?$/,"");if(0===a.length)return o?[i,""]:[i];let s=e(a.join("/")),l=[];return l.push(...s.map(e=>""===e?i:[i,e].join("/"))),o&&l.push(...s),l.map(e=>t.startsWith("/")&&""===e?"/":e)}(e.path))i(e,t,!0,r);else i(e,t)}),r}(e);o.sort((e,t)=>{var r,n;return e.score!==t.score?t.score-e.score:(r=e.routesMeta.map(e=>e.childrenIndex),n=t.routesMeta.map(e=>e.childrenIndex),r.length===n.length&&r.slice(0,-1).every((e,t)=>e===n[t])?r[r.length-1]-n[n.length-1]:0)});let i=null;for(let e=0;null==i&&e<o.length;++e){let t=F(a);i=function(e,t,r=!1){let{routesMeta:n}=e,a={},o="/",i=[];for(let e=0;e<n.length;++e){let s=n[e],l=e===n.length-1,u="/"===o?t:t.slice(o.length)||"/",c=N({path:s.relativePath,caseSensitive:s.caseSensitive,end:l},u),d=s.route;if(!c&&l&&r&&!n[n.length-1].route.index&&(c=N({path:s.relativePath,caseSensitive:s.caseSensitive,end:!1},u)),!c)return null;Object.assign(a,c.params),i.push({params:a,pathname:Y([o,c.pathname]),pathnameBase:X(Y([o,c.pathnameBase])),route:d}),"/"!==c.pathnameBase&&(o=Y([o,c.pathnameBase]))}return i}(o[e],t,n)}return i}function M(e,t){let{route:r,pathname:n,params:a}=e;return{id:r.id,pathname:n,params:a,data:t[r.id],loaderData:t[r.id],handle:r.handle}}var O=/^:[\w-]+$/,$=e=>"*"===e;function T(e,t={}){let r=e;r.endsWith("*")&&"*"!==r&&!r.endsWith("/*")&&(g(!1,`Route path "${r}" will be treated as if it were "${r.replace(/\*$/,"/*")}" because the \`*\` character must always follow a \`/\` in the pattern. To get rid of this warning, please change the route path to "${r.replace(/\*$/,"/*")}".`),r=r.replace(/\*$/,"/*"));let n=r.startsWith("/")?"/":"",a=e=>null==e?"":"string"==typeof e?e:String(e);return n+r.split(/\/+/).map((e,r,n)=>{if(r===n.length-1&&"*"===e)return a(t["*"]);let o=e.match(/^:([\w-]+)(\??)$/);if(o){let[,e,r]=o,n=t[e];return y("?"===r||null!=n,`Missing ":${e}" param`),encodeURIComponent(a(n))}return e.replace(/\?$/g,"")}).filter(e=>!!e).join("/")}function N(e,t){"string"==typeof e&&(e={path:e,caseSensitive:!1,end:!0});let[r,n]=j(e.path,e.caseSensitive,e.end),a=t.match(r);if(!a)return null;let o=a[0],i=o.replace(/(.)\/+$/,"$1"),s=a.slice(1);return{params:n.reduce((e,{paramName:t,isOptional:r},n)=>{if("*"===t){let e=s[n]||"";i=o.slice(0,o.length-e.length).replace(/(.)\/+$/,"$1")}let a=s[n];return r&&!a?e[t]=void 0:e[t]=(a||"").replace(/%2F/g,"/"),e},{}),pathname:o,pathnameBase:i,pattern:e}}function j(e,t=!1,r=!0){g("*"===e||!e.endsWith("*")||e.endsWith("/*"),`Route path "${e}" will be treated as if it were "${e.replace(/\*$/,"/*")}" because the \`*\` character must always follow a \`/\` in the pattern. To get rid of this warning, please change the route path to "${e.replace(/\*$/,"/*")}".`);let n=[],a="^"+e.replace(/\/*\*?$/,"").replace(/^\/*/,"/").replace(/[\\.*+^${}|()[\]]/g,"\\$&").replace(/\/:([\w-]+)(\?)?/g,(e,t,r)=>(n.push({paramName:t,isOptional:null!=r}),r?"/?([^\\/]+)?":"/([^\\/]+)")).replace(/\/([\w-]+)\?(\/|$)/g,"(/$1)?$2");return e.endsWith("*")?(n.push({paramName:"*"}),a+="*"===e||"/*"===e?"(.*)$":"(?:\\/(.+)|\\/*)$"):r?a+="\\/*$":""!==e&&"/"!==e&&(a+="(?:(?=\\/|$))"),[new RegExp(a,t?void 0:"i"),n]}function F(e){try{return e.split("/").map(e=>decodeURIComponent(e).replace(/\//g,"%2F")).join("/")}catch(t){return g(!1,`The URL path "${e}" could not be decoded because it is a malformed URL segment. This is probably due to a bad percent encoding (${t}).`),e}}function H(e,t){if("/"===t)return e;if(!e.toLowerCase().startsWith(t.toLowerCase()))return null;let r=t.endsWith("/")?t.length-1:t.length,n=e.charAt(r);return n&&"/"!==n?null:e.slice(r)||"/"}var U=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i;function z(e,t="/"){let r,{pathname:n,search:a="",hash:o=""}="string"==typeof e?E(e):e;if(n){let e;if(e=n,U.test(e))r=n;else{if(n.includes("//")){let e=n;n=n.replace(/\/\/+/g,"/"),g(!1,`Pathnames cannot have embedded double slashes - normalizing ${e} -> ${n}`)}r=n.startsWith("/")?I(n.substring(1),"/"):I(n,t)}}else r=t;return{pathname:r,search:V(a),hash:G(o)}}function I(e,t){let r=t.replace(/\/+$/,"").split("/");return e.split("/").forEach(e=>{".."===e?r.length>1&&r.pop():"."!==e&&r.push(e)}),r.length>1?r.join("/"):"/"}function B(e,t,r,n){return`Cannot include a '${e}' character in a manually specified \`to.${t}\` field [${JSON.stringify(n)}]. Please separate it out to the \`to.${r}\` field. Alternatively you may provide the full path as a string in <Link to="..."> and the router will parse it for you.`}function q(e){return e.filter((e,t)=>0===t||e.route.path&&e.route.path.length>0)}function W(e){let t=q(e);return t.map((e,r)=>r===t.length-1?e.pathname:e.pathnameBase)}function J(e,t,r,n=!1){let a,o;"string"==typeof e?a=E(e):(y(!(a={...e}).pathname||!a.pathname.includes("?"),B("?","pathname","search",a)),y(!a.pathname||!a.pathname.includes("#"),B("#","pathname","hash",a)),y(!a.search||!a.search.includes("#"),B("#","search","hash",a)));let i=""===e||""===a.pathname,s=i?"/":a.pathname;if(null==s)o=r;else{let e=t.length-1;if(!n&&s.startsWith("..")){let t=s.split("/");for(;".."===t[0];)t.shift(),e-=1;a.pathname=t.join("/")}o=e>=0?t[e]:"/"}let l=z(a,o),u=s&&"/"!==s&&s.endsWith("/"),c=(i||"."===s)&&r.endsWith("/");return!l.pathname.endsWith("/")&&(u||c)&&(l.pathname+="/"),l}var Y=e=>e.join("/").replace(/\/\/+/g,"/"),X=e=>e.replace(/\/+$/,"").replace(/^\/*/,"/"),V=e=>e&&"?"!==e?e.startsWith("?")?e:"?"+e:"",G=e=>e&&"#"!==e?e.startsWith("#")?e:"#"+e:"",K=class{constructor(e,t){this.type="DataWithResponseInit",this.data=e,this.init=t||null}};function Z(e,t){return new K(e,"number"==typeof t?{status:t}:t)}var Q=(e,t=302)=>{let r=t;"number"==typeof r?r={status:r}:void 0===r.status&&(r.status=302);let n=new Headers(r.headers);return n.set("Location",e),new Response(null,{...r,headers:n})},ee=(e,t)=>{let r=Q(e,t);return r.headers.set("X-Remix-Reload-Document","true"),r},et=(e,t)=>{let r=Q(e,t);return r.headers.set("X-Remix-Replace","true"),r},er=class{constructor(e,t,r,n=!1){this.status=e,this.statusText=t||"",this.internal=n,r instanceof Error?(this.data=r.toString(),this.error=r):this.data=r}};function en(e){return null!=e&&"number"==typeof e.status&&"string"==typeof e.statusText&&"boolean"==typeof e.internal&&"data"in e}function ea(e){return e.filter(Boolean).join("/").replace(/\/\/*/g,"/")||"/"}var eo=Symbol("Uninstrumented");function ei(e,t){let r={lazy:[],"lazy.loader":[],"lazy.action":[],"lazy.middleware":[],middleware:[],loader:[],action:[]};e.forEach(e=>e({id:t.id,index:t.index,path:t.path,instrument(e){for(let t of Object.keys(r))e[t]&&r[t].push(e[t])}}));let n={};if("function"==typeof t.lazy&&r.lazy.length>0){let e=es(r.lazy,t.lazy,()=>void 0);e&&(n.lazy=e)}if("object"==typeof t.lazy){let e=t.lazy;["middleware","loader","action"].forEach(t=>{let a=e[t],o=r[`lazy.${t}`];if("function"==typeof a&&o.length>0){let e=es(o,a,()=>void 0);e&&(n.lazy=Object.assign(n.lazy||{},{[t]:e}))}})}return["loader","action"].forEach(e=>{let a=t[e];if("function"==typeof a&&r[e].length>0){let t=a[eo]??a,o=es(r[e],t,(...e)=>eu(e[0]));o&&(o[eo]=t,n[e]=o)}}),t.middleware&&t.middleware.length>0&&r.middleware.length>0&&(n.middleware=t.middleware.map(e=>{let t=e[eo]??e,n=es(r.middleware,t,(...e)=>eu(e[0]));return n?(n[eo]=t,n):e})),n}function es(e,t,r){return 0===e.length?null:async(...n)=>{let a=await el(e,r(...n),()=>t(...n),e.length-1);if("error"===a.type)throw a.value;return a.value}}async function el(e,t,r,n){let a,o=e[n];if(o){let i,s=async()=>(i?console.error("You cannot call instrumented handlers more than once"):i=el(e,t,r,n-1),y(a=await i,"Expected a result"),"error"===a.type&&a.value instanceof Error)?{status:"error",error:a.value}:{status:"success",error:void 0};try{await o(s,t)}catch(e){console.error("An instrumentation function threw an error:",e)}i||await s(),await i}else try{let e=await r();a={type:"success",value:e}}catch(e){a={type:"error",value:e}}return a||{type:"error",value:Error("No result assigned in instrumentation chain.")}}function eu(e){let{request:t,context:r,params:n,unstable_pattern:a}=e;return{request:ed(t),params:{...n},unstable_pattern:a,context:eh(r)}}function ec(e,t){return{currentUrl:b(e.state.location),..."formMethod"in t?{formMethod:t.formMethod}:{},..."formEncType"in t?{formEncType:t.formEncType}:{},..."formData"in t?{formData:t.formData}:{},..."body"in t?{body:t.body}:{}}}function ed(e){return{method:e.method,url:e.url,headers:{get:(...t)=>e.headers.get(...t)}}}function eh(e){if(!function(e){if(null===e||"object"!=typeof e)return!1;let t=Object.getPrototypeOf(e);return t===Object.prototype||null===t||Object.getOwnPropertyNames(t).sort().join("\0")===ef}(e))return{get:t=>e.get(t)};{let t={...e};return Object.freeze(t),t}}var ef=Object.getOwnPropertyNames(Object.prototype).sort().join("\0"),em=["POST","PUT","PATCH","DELETE"],ep=new Set(em),ey=new Set(["GET",...em]),eg=new Set([301,302,303,307,308]),ev=new Set([307,308]),ew={state:"idle",location:void 0,formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0},eb={state:"idle",data:void 0,formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0},eE={state:"unblocked",proceed:void 0,reset:void 0,location:void 0},eR=e=>({hasErrorBoundary:!!e.hasErrorBoundary}),eS="remix-router-transitions",ex=Symbol("ResetLoaderData");function eC(e){let t,r,n,a,o,i=e.window?e.window:"u">typeof window?window:void 0,s=void 0!==i&&void 0!==i.document&&void 0!==i.document.createElement;y(e.routes.length>0,"You must provide a non-empty routes array to createRouter");let l=e.hydrationRouteProperties||[],u=e.mapRouteProperties||eR,c=u;if(e.unstable_instrumentations){let t=e.unstable_instrumentations;c=e=>({...u(e),...ei(t.map(e=>e.route).filter(Boolean),e)})}let d={},h=L(e.routes,c,void 0,d),f=e.basename||"/";f.startsWith("/")||(f=`/${f}`);let m=e.dataStrategy||eI,p={...e.future},v=null,E=new Set,R=null,x=null,k=null,P=null!=e.hydrationData,_=D(h,e.history.location,f),O=!1,$=null;if(null!=_||e.patchRoutesOnNavigation)if(_&&!e.hydrationData&&eY(_,h,e.history.location.pathname).active&&(_=null),_)if(_.some(e=>e.route.lazy))r=!1;else if(_.some(e=>eM(e.route))){let t=e.hydrationData?e.hydrationData.loaderData:null,n=e.hydrationData?e.hydrationData.errors:null;if(n){let e=_.findIndex(e=>void 0!==n[e.route.id]);r=_.slice(0,e+1).every(e=>!eO(e.route,t,n))}else r=_.every(e=>!eO(e.route,t,n))}else r=!0;else{r=!1,_=[];let t=eY(null,h,e.history.location.pathname);t.active&&t.matches&&(O=!0,_=t.matches)}else{let t=tt(404,{pathname:e.history.location.pathname}),{matches:n,route:a}=te(h);r=!0,_=n,$={[a.id]:t}}let T={historyAction:e.history.action,location:e.history.location,matches:_,initialized:r,navigation:ew,restoreScrollPosition:null==e.hydrationData&&null,preventScrollReset:!1,revalidation:"idle",loaderData:e.hydrationData&&e.hydrationData.loaderData||{},actionData:e.hydrationData&&e.hydrationData.actionData||null,errors:e.hydrationData&&e.hydrationData.errors||$,fetchers:new Map,blockers:new Map},N="POP",j=!1,F=!1,z=new Map,I=null,B=!1,q=!1,W=new Set,J=new Map,Y=0,X=-1,V=new Map,G=new Set,K=new Map,Z=new Map,Q=new Set,ee=new Map,et=null;function er(e,t={}){e.matches&&(e.matches=e.matches.map(e=>{let t=d[e.route.id],r=e.route;return r.element!==t.element||r.errorElement!==t.errorElement||r.hydrateFallbackElement!==t.hydrateFallbackElement?{...e,route:t}:e}));let r=[],n=[];(T={...T,...e}).fetchers.forEach((e,t)=>{"idle"===e.state&&(Q.has(t)?r.push(t):n.push(t))}),Q.forEach(e=>{T.fetchers.has(e)||J.has(e)||r.push(e)}),[...E].forEach(e=>e(T,{deletedFetchers:r,viewTransitionOpts:t.viewTransitionOpts,flushSync:!0===t.flushSync})),r.forEach(e=>e$(e)),n.forEach(e=>T.fetchers.delete(e))}function ea(r,n,{flushSync:a}={}){let o,i,s=null!=T.actionData&&null!=T.navigation.formMethod&&tp(T.navigation.formMethod)&&"loading"===T.navigation.state&&r.state?._isRedirect!==!0;o=n.actionData?Object.keys(n.actionData).length>0?n.actionData:null:s?T.actionData:null;let l=n.loaderData?e9(T.loaderData,n.loaderData,n.matches||[],n.errors):T.loaderData,u=T.blockers;u.size>0&&(u=new Map(u)).forEach((e,t)=>u.set(t,eE));let c=!B&&eJ(r,n.matches||T.matches),d=!0===j||null!=T.navigation.formMethod&&tp(T.navigation.formMethod)&&r.state?._isRedirect!==!0;if(t&&(h=t,t=void 0),B||"POP"===N||("PUSH"===N?e.history.push(r,r.state):"REPLACE"===N&&e.history.replace(r,r.state)),"POP"===N){let e=z.get(T.location.pathname);e&&e.has(r.pathname)?i={currentLocation:T.location,nextLocation:r}:z.has(r.pathname)&&(i={currentLocation:r,nextLocation:T.location})}else if(F){let e=z.get(T.location.pathname);e?e.add(r.pathname):(e=new Set([r.pathname]),z.set(T.location.pathname,e)),i={currentLocation:T.location,nextLocation:r}}er({...n,actionData:o,loaderData:l,historyAction:N,location:r,initialized:!0,navigation:ew,revalidation:"idle",restoreScrollPosition:c,preventScrollReset:d,blockers:u},{viewTransitionOpts:i,flushSync:!0===a}),N="POP",j=!1,F=!1,B=!1,q=!1,et?.resolve(),et=null}async function el(t,r){if("number"==typeof t)return void e.history.go(t);let{path:n,submission:a,error:o}=eD(!1,e_(T.location,T.matches,f,t,r?.fromRouteId,r?.relative),r),i=T.location,s=w(T.location,n,r&&r.state);s={...s,...e.history.encodeLocation(s)};let l=r&&null!=r.replace?r.replace:void 0,u="PUSH";!0===l?u="REPLACE":!1===l||null!=a&&tp(a.formMethod)&&a.formAction===T.location.pathname+T.location.search&&(u="REPLACE");let c=r&&"preventScrollReset"in r?!0===r.preventScrollReset:void 0,d=!0===(r&&r.flushSync),h=eB({currentLocation:i,nextLocation:s,historyAction:u});h?ez(h,{state:"blocked",location:s,proceed(){ez(h,{state:"proceeding",proceed:void 0,reset:void 0,location:s}),el(t,r)},reset(){let e=new Map(T.blockers);e.set(h,eE),er({blockers:e})}}):await eu(u,s,{submission:a,pendingError:o,preventScrollReset:c,replace:r&&r.replace,enableViewTransition:r&&r.viewTransition,flushSync:d})}async function eu(r,n,o){var i,s,l,u;let c;a&&a.abort(),a=null,N=r,B=!0===(o&&o.startUninterruptedRevalidation),i=T.location,s=T.matches,R&&k&&(R[eW(i,s)]=k()),j=!0===(o&&o.preventScrollReset),F=!0===(o&&o.enableViewTransition);let d=t||h,m=o&&o.overrideNavigation,p=o?.initialHydration&&T.matches&&T.matches.length>0&&!O?T.matches:D(d,n,f),y=!0===(o&&o.flushSync);if(p&&T.initialized&&!q&&(l=T.location,u=n,l.pathname===u.pathname&&l.search===u.search&&(""===l.hash?""!==u.hash:l.hash===u.hash||""!==u.hash||!1))&&!(o&&o.submission&&tp(o.submission.formMethod)))return void ea(n,{matches:p},{flushSync:y});let g=eY(p,d,n.pathname);if(g.active&&g.matches&&(p=g.matches),!p){let{error:e,notFoundMatches:t,route:r}=eq(n.pathname);ea(n,{matches:t,loaderData:{},errors:{[r.id]:e}},{flushSync:y});return}a=new AbortController;let v=e2(e.history,n,a.signal,o&&o.submission),w=e.getContext?await e.getContext():new C;if(o&&o.pendingError)c=[e7(p).route.id,{type:"error",error:o.pendingError}];else if(o&&o.submission&&tp(o.submission.formMethod)){let t=await ed(v,n,o.submission,p,w,g.active,o&&!0===o.initialHydration,{replace:o.replace,flushSync:y});if(t.shortCircuited)return;if(t.pendingActionResult){let[e,r]=t.pendingActionResult;if(tl(r)&&en(r.error)&&404===r.error.status){a=null,ea(n,{matches:t.matches,loaderData:{},errors:{[e]:r.error}});return}}p=t.matches||p,c=t.pendingActionResult,m=tw(n,o.submission),y=!1,g.active=!1,v=e2(e.history,v.url,v.signal)}let{shortCircuited:b,matches:E,loaderData:S,errors:x}=await eh(v,n,p,w,g.active,m,o&&o.submission,o&&o.fetcherSubmission,o&&o.replace,o&&!0===o.initialHydration,y,c);b||(a=null,ea(n,{matches:E||p,...e6(c),loaderData:S,errors:x}))}async function ed(e,t,r,n,a,o,i,s={}){var u;let m;if(eC(),er({navigation:{state:"submitting",location:t,formMethod:(u=r).formMethod,formAction:u.formAction,formEncType:u.formEncType,formData:u.formData,json:u.json,text:u.text}},{flushSync:!0===s.flushSync}),o){let r=await eX(n,t.pathname,e.signal);if("aborted"===r.type)return{shortCircuited:!0};if("error"===r.type){if(0===r.partialMatches.length){let{matches:e,route:t}=te(h);return{matches:e,pendingActionResult:[t.id,{type:"error",error:r.error}]}}let e=e7(r.partialMatches).route.id;return{matches:r.partialMatches,pendingActionResult:[e,{type:"error",error:r.error}]}}if(r.matches)n=r.matches;else{let{notFoundMatches:e,error:r,route:n}=eq(t.pathname);return{matches:e,pendingActionResult:[n.id,{type:"error",error:r}]}}}let p=tg(n,t);if(p.route.action||p.route.lazy){let t=eV(c,d,e,n,p,i?[]:l,a),r=await eg(e,t,a,null);if(!(m=r[p.route.id])){for(let e of n)if(r[e.route.id]){m=r[e.route.id];break}}if(e.signal.aborted)return{shortCircuited:!0}}else m={type:"error",error:tt(405,{method:e.method,pathname:t.pathname,routeId:p.route.id})};if(tu(m)){let t;return t=s&&null!=s.replace?s.replace:e1(m.response.headers.get("Location"),new URL(e.url),f)===T.location.pathname+T.location.search,await ey(e,m,!0,{submission:r,replace:t}),{shortCircuited:!0}}if(tl(m)){let e=e7(n,p.route.id);return!0!==(s&&s.replace)&&(N="PUSH"),{matches:n,pendingActionResult:[e.route.id,m,p.route.id]}}return{matches:n,pendingActionResult:[p.route.id,m]}}async function eh(r,n,o,i,s,u,m,p,y,g,v,w){let b=u||tw(n,m),E=m||p||tv(b),R=!B&&!g;if(s){if(R){let e=ef(w);er({navigation:b,...void 0!==e?{actionData:e}:{}},{flushSync:v})}let e=await eX(o,n.pathname,r.signal);if("aborted"===e.type)return{shortCircuited:!0};if("error"===e.type){if(0===e.partialMatches.length){let{matches:t,route:r}=te(h);return{matches:t,loaderData:{},errors:{[r.id]:e.error}}}let t=e7(e.partialMatches).route.id;return{matches:e.partialMatches,loaderData:{},errors:{[t]:e.error}}}if(e.matches)o=e.matches;else{let{error:e,notFoundMatches:t,route:r}=eq(n.pathname);return{matches:t,loaderData:{},errors:{[r.id]:e}}}}let S=t||h,{dsMatches:x,revalidatingFetchers:C}=eA(r,i,c,d,e.history,T,o,E,n,g?[]:l,!0===g,q,W,Q,K,G,S,f,null!=e.patchRoutesOnNavigation,w);if(X=++Y,!e.dataStrategy&&!x.some(e=>e.shouldLoad)&&!x.some(e=>e.route.middleware&&e.route.middleware.length>0)&&0===C.length){let e=eF();return ea(n,{matches:o,loaderData:{},errors:w&&tl(w[1])?{[w[0]]:w[1].error}:null,...e6(w),...e?{fetchers:new Map(T.fetchers)}:{}},{flushSync:v}),{shortCircuited:!0}}if(R){let e={};if(!s){e.navigation=b;let t=ef(w);void 0!==t&&(e.actionData=t)}C.length>0&&(C.forEach(e=>{let t=T.fetchers.get(e.key),r=tb(void 0,t?t.data:void 0);T.fetchers.set(e.key,r)}),e.fetchers=new Map(T.fetchers)),er(e,{flushSync:v})}C.forEach(e=>{eN(e.key),e.controller&&J.set(e.key,e.controller)});let k=()=>C.forEach(e=>eN(e.key));a&&a.signal.addEventListener("abort",k);let{loaderResults:P,fetcherResults:L}=await ex(x,C,r,i);if(r.signal.aborted)return{shortCircuited:!0};a&&a.signal.removeEventListener("abort",k),C.forEach(e=>J.delete(e.key));let _=tr(P);if(_)return await ey(r,_.result,!0,{replace:y}),{shortCircuited:!0};if(_=tr(L))return G.add(_.key),await ey(r,_.result,!0,{replace:y}),{shortCircuited:!0};let{loaderData:D,errors:A}=e8(T,o,P,w,C,L);g&&T.errors&&(A={...T.errors,...A});let M=eF(),O=eH(X);return{matches:o,loaderData:D,errors:A,...M||O||C.length>0?{fetchers:new Map(T.fetchers)}:{}}}function ef(e){if(e&&!tl(e[1]))return{[e[0]]:e[1].data};if(T.actionData)if(0===Object.keys(T.actionData).length)return null;else return T.actionData}async function em(r,n,o,i,s,u,m,p,g){var v,w;eC(),K.delete(r);let b=T.fetchers.get(r);ek(r,(v=g,w=b,{state:"submitting",formMethod:v.formMethod,formAction:v.formAction,formEncType:v.formEncType,formData:v.formData,json:v.json,text:v.text,data:w?w.data:void 0}),{flushSync:m});let E=new AbortController,R=e2(e.history,o,E.signal,g);if(u){let e=await eX(i,new URL(R.url).pathname,R.signal,r);if("aborted"===e.type)return;if("error"===e.type)return void eP(r,n,e.error,{flushSync:m});if(!e.matches)return void eP(r,n,tt(404,{pathname:o}),{flushSync:m});i=e.matches}let S=tg(i,o);if(!S.route.action&&!S.route.lazy){let e=tt(405,{method:g.formMethod,pathname:o,routeId:n});eP(r,n,e,{flushSync:m});return}J.set(r,E);let x=Y,C=eV(c,d,R,i,S,l,s),k=await eg(R,C,s,r),P=k[S.route.id];if(!P){for(let e of C)if(k[e.route.id]){P=k[e.route.id];break}}if(R.signal.aborted){J.get(r)===E&&J.delete(r);return}if(Q.has(r)){if(tu(P)||tl(P))return void ek(r,tE(void 0))}else{if(tu(P))return(J.delete(r),X>x)?void ek(r,tE(void 0)):(G.add(r),ek(r,tb(g)),ey(R,P,!1,{fetcherSubmission:g,preventScrollReset:p}));if(tl(P))return void eP(r,n,P.error)}let L=T.navigation.location||T.location,_=e2(e.history,L,E.signal),A=t||h,M="idle"!==T.navigation.state?D(A,T.navigation.location,f):T.matches;y(M,"Didn't find any matches after fetcher action");let O=++Y;V.set(r,O);let $=tb(g,P.data);T.fetchers.set(r,$);let{dsMatches:j,revalidatingFetchers:F}=eA(_,s,c,d,e.history,T,M,g,L,l,!1,q,W,Q,K,G,A,f,null!=e.patchRoutesOnNavigation,[S.route.id,P]);F.filter(e=>e.key!==r).forEach(e=>{let t=e.key,r=T.fetchers.get(t),n=tb(void 0,r?r.data:void 0);T.fetchers.set(t,n),eN(t),e.controller&&J.set(t,e.controller)}),er({fetchers:new Map(T.fetchers)});let H=()=>F.forEach(e=>eN(e.key));E.signal.addEventListener("abort",H);let{loaderResults:U,fetcherResults:z}=await ex(j,F,_,s);if(E.signal.aborted)return;if(E.signal.removeEventListener("abort",H),V.delete(r),J.delete(r),F.forEach(e=>J.delete(e.key)),T.fetchers.has(r)){let e=tE(P.data);T.fetchers.set(r,e)}let I=tr(U);if(I)return ey(_,I.result,!1,{preventScrollReset:p});if(I=tr(z))return G.add(I.key),ey(_,I.result,!1,{preventScrollReset:p});let{loaderData:B,errors:Z}=e8(T,M,U,void 0,F,z);eH(O),"loading"===T.navigation.state&&O>X?(y(N,"Expected pending action"),a&&a.abort(),ea(T.navigation.location,{matches:M,loaderData:B,errors:Z,fetchers:new Map(T.fetchers)})):(er({errors:Z,loaderData:e9(T.loaderData,B,M,Z),fetchers:new Map(T.fetchers)}),q=!1)}async function ep(t,r,n,a,o,i,s,u,h){let f=T.fetchers.get(t);ek(t,tb(h,f?f.data:void 0),{flushSync:s});let m=new AbortController,p=e2(e.history,n,m.signal);if(i){let e=await eX(a,new URL(p.url).pathname,p.signal,t);if("aborted"===e.type)return;if("error"===e.type)return void eP(t,r,e.error,{flushSync:s});if(!e.matches)return void eP(t,r,tt(404,{pathname:n}),{flushSync:s});a=e.matches}let y=tg(a,n);J.set(t,m);let g=Y,v=eV(c,d,p,a,y,l,o),w=(await eg(p,v,o,t))[y.route.id];if(J.get(t)===m&&J.delete(t),!p.signal.aborted){if(Q.has(t))return void ek(t,tE(void 0));if(tu(w))if(X>g)return void ek(t,tE(void 0));else{G.add(t),await ey(p,w,!1,{preventScrollReset:u});return}if(tl(w))return void eP(t,r,w.error);ek(t,tE(w.data))}}async function ey(e,t,r,{submission:n,fetcherSubmission:o,preventScrollReset:l,replace:u}={}){t.response.headers.has("X-Remix-Revalidate")&&(q=!0);let c=t.response.headers.get("Location");y(c,"Expected a Location header on the redirect Response"),c=e1(c,new URL(e.url),f);let d=w(T.location,c,{_isRedirect:!0});if(s){let e=!1;if(t.response.headers.has("X-Remix-Reload-Document"))e=!0;else{let t;if(t=c,U.test(t)){let t=S(c,!0);e=t.origin!==i.location.origin||null==H(t.pathname,f)}}if(e)return void(u?i.location.replace(c):i.location.assign(c))}a=null;let h=!0===u||t.response.headers.has("X-Remix-Replace")?"REPLACE":"PUSH",{formMethod:m,formAction:p,formEncType:g}=T.navigation;!n&&!o&&m&&p&&g&&(n=tv(T.navigation));let v=n||o;if(ev.has(t.response.status)&&v&&tp(v.formMethod))await eu(h,d,{submission:{...v,formAction:c},preventScrollReset:l||j,enableViewTransition:r?F:void 0});else{let e=tw(d,n);await eu(h,d,{overrideNavigation:e,fetcherSubmission:o,preventScrollReset:l||j,enableViewTransition:r?F:void 0})}}async function eg(e,t,r,n){let a,o={};try{a=await eG(m,e,t,n,r,!1)}catch(e){return t.filter(e=>e.shouldLoad).forEach(t=>{o[t.route.id]={type:"error",error:e}}),o}if(e.signal.aborted)return o;for(let[r,n]of Object.entries(a))if(ts(n)){let a=n.result;o[r]={type:"redirect",response:e0(a,e,r,t,f)}}else o[r]=await eQ(n);return o}async function ex(e,t,r,n){let a=eg(r,e,n,null),o=Promise.all(t.map(async e=>{if(!e.matches||!e.match||!e.request||!e.controller)return Promise.resolve({[e.key]:{type:"error",error:tt(404,{pathname:e.path})}});{let t=(await eg(e.request,e.matches,n,e.key))[e.match.route.id];return{[e.key]:t}}}));return{loaderResults:await a,fetcherResults:(await o).reduce((e,t)=>Object.assign(e,t),{})}}function eC(){q=!0,K.forEach((e,t)=>{J.has(t)&&W.add(t),eN(t)})}function ek(e,t,r={}){T.fetchers.set(e,t),er({fetchers:new Map(T.fetchers)},{flushSync:!0===(r&&r.flushSync)})}function eP(e,t,r,n={}){let a=e7(T.matches,t);e$(e),er({errors:{[a.route.id]:r},fetchers:new Map(T.fetchers)},{flushSync:!0===(n&&n.flushSync)})}function eL(e){return Z.set(e,(Z.get(e)||0)+1),Q.has(e)&&Q.delete(e),T.fetchers.get(e)||eb}function e$(e){let t=T.fetchers.get(e);J.has(e)&&!(t&&"loading"===t.state&&V.has(e))&&eN(e),K.delete(e),V.delete(e),G.delete(e),Q.delete(e),W.delete(e),T.fetchers.delete(e)}function eN(e,t){let r=J.get(e);r&&(r.abort(t),J.delete(e))}function ej(e){for(let t of e){let e=tE(eL(t).data);T.fetchers.set(t,e)}}function eF(){let e=[],t=!1;for(let r of G){let n=T.fetchers.get(r);y(n,`Expected fetcher: ${r}`),"loading"===n.state&&(G.delete(r),e.push(r),t=!0)}return ej(e),t}function eH(e){let t=[];for(let[r,n]of V)if(n<e){let e=T.fetchers.get(r);y(e,`Expected fetcher: ${r}`),"loading"===e.state&&(eN(r),V.delete(r),t.push(r))}return ej(t),t.length>0}function eU(e){T.blockers.delete(e),ee.delete(e)}function ez(e,t){let r=T.blockers.get(e)||eE;y("unblocked"===r.state&&"blocked"===t.state||"blocked"===r.state&&"blocked"===t.state||"blocked"===r.state&&"proceeding"===t.state||"blocked"===r.state&&"unblocked"===t.state||"proceeding"===r.state&&"unblocked"===t.state,`Invalid blocker state transition: ${r.state} -> ${t.state}`);let n=new Map(T.blockers);n.set(e,t),er({blockers:n})}function eB({currentLocation:e,nextLocation:t,historyAction:r}){if(0===ee.size)return;ee.size>1&&g(!1,"A router only supports one blocker at a time");let n=Array.from(ee.entries()),[a,o]=n[n.length-1],i=T.blockers.get(a);if((!i||"proceeding"!==i.state)&&o({currentLocation:e,nextLocation:t,historyAction:r}))return a}function eq(e){let r=tt(404,{pathname:e}),{matches:n,route:a}=te(t||h);return{notFoundMatches:n,route:a,error:r}}function eW(e,t){return x&&x(e,t.map(e=>M(e,T.loaderData)))||e.key}function eJ(e,t){if(R){let r=R[eW(e,t)];if("number"==typeof r)return r}return null}function eY(t,r,n){if(e.patchRoutesOnNavigation){if(!t)return{active:!0,matches:A(r,n,f,!0)||[]};else if(Object.keys(t[0].params).length>0)return{active:!0,matches:A(r,n,f,!0)}}return{active:!1,matches:null}}async function eX(r,n,a,o){if(!e.patchRoutesOnNavigation)return{type:"success",matches:r};let i=r;for(;;){let r=null==t,s=t||h,l=d;try{await e.patchRoutesOnNavigation({signal:a,path:n,matches:i,fetcherKey:o,patch:(e,t)=>{a.aborted||eT(e,t,s,l,c,!1)}})}catch(e){return{type:"error",error:e,partialMatches:i}}finally{r&&!a.aborted&&(h=[...h])}if(a.aborted)return{type:"aborted"};let u=D(s,n,f),m=null;if(u){if(0===Object.keys(u[0].params).length)return{type:"success",matches:u};else if(!((m=A(s,n,f,!0))&&i.length<m.length&&eK(i,m.slice(0,i.length))))return{type:"success",matches:u}}if(m||(m=A(s,n,f,!0)),!m||eK(i,m))return{type:"success",matches:null};i=m}}function eK(e,t){return e.length===t.length&&e.every((e,r)=>e.route.id===t[r].route.id)}return n={get basename(){return f},get future(){return p},get state(){return T},get routes(){return h},get window(){return i},initialize:function(){if(v=e.history.listen(({action:t,location:r,delta:n})=>{if(o){o(),o=void 0;return}g(0===ee.size||null!=n,"You are trying to use a blocker on a POP navigation to a location that was not created by @remix-run/router. This will fail silently in production. This can happen if you are navigating outside the router via `window.history.pushState`/`window.location.hash` instead of using router navigation APIs. This can also happen if you are using createHashRouter and the user manually changes the URL.");let a=eB({currentLocation:T.location,nextLocation:r,historyAction:t});if(a&&null!=n){let t=new Promise(e=>{o=e});e.history.go(-1*n),ez(a,{state:"blocked",location:r,proceed(){ez(a,{state:"proceeding",proceed:void 0,reset:void 0,location:r}),t.then(()=>e.history.go(n))},reset(){let e=new Map(T.blockers);e.set(a,eE),er({blockers:e})}});return}return eu(t,r)}),s){var t=i,r=z;try{let e=t.sessionStorage.getItem(eS);if(e){let t=JSON.parse(e);for(let[e,n]of Object.entries(t||{}))n&&Array.isArray(n)&&r.set(e,new Set(n||[]))}}catch(e){}let e=()=>(function(e,t){if(t.size>0){let r={};for(let[e,n]of t)r[e]=[...n];try{e.sessionStorage.setItem(eS,JSON.stringify(r))}catch(e){g(!1,`Failed to save applied view transitions in sessionStorage (${e}).`)}}})(i,z);i.addEventListener("pagehide",e),I=()=>i.removeEventListener("pagehide",e)}return T.initialized||eu("POP",T.location,{initialHydration:!0}),n},subscribe:function(e){return E.add(e),()=>E.delete(e)},enableScrollRestoration:function(e,t,r){if(R=e,k=t,x=r||null,!P&&T.navigation===ew){P=!0;let e=eJ(T.location,T.matches);null!=e&&er({restoreScrollPosition:e})}return()=>{R=null,k=null,x=null}},navigate:el,fetch:async function r(r,n,a,o){eN(r);let i=!0===(o&&o.flushSync),s=t||h,l=e_(T.location,T.matches,f,a,n,o?.relative),u=D(s,l,f),c=eY(u,s,l);if(c.active&&c.matches&&(u=c.matches),!u)return void eP(r,n,tt(404,{pathname:l}),{flushSync:i});let{path:d,submission:m,error:p}=eD(!0,l,o);if(p)return void eP(r,n,p,{flushSync:i});let y=e.getContext?await e.getContext():new C,g=!0===(o&&o.preventScrollReset);m&&tp(m.formMethod)?await em(r,n,d,u,y,c.active,i,g,m):(K.set(r,{routeId:n,path:d}),await ep(r,n,d,u,y,c.active,i,g,m))},revalidate:function(){let e,t,r;et||(et={promise:r=new Promise((n,a)=>{e=async e=>{n(e);try{await r}catch(e){}},t=async e=>{a(e);try{await r}catch(e){}}}),resolve:e,reject:t}),eC(),er({revalidation:"loading"});let n=et.promise;return"submitting"===T.navigation.state||("idle"===T.navigation.state?eu(T.historyAction,T.location,{startUninterruptedRevalidation:!0}):eu(N||T.historyAction,T.navigation.location,{overrideNavigation:T.navigation,enableViewTransition:!0===F})),n},createHref:t=>e.history.createHref(t),encodeLocation:t=>e.history.encodeLocation(t),getFetcher:eL,resetFetcher:function(e,t){eN(e,t?.reason),ek(e,tE(null))},deleteFetcher:function(e){let t=(Z.get(e)||0)-1;t<=0?(Z.delete(e),Q.add(e)):Z.set(e,t),er({fetchers:new Map(T.fetchers)})},dispose:function(){v&&v(),I&&I(),E.clear(),a&&a.abort(),T.fetchers.forEach((e,t)=>e$(t)),T.blockers.forEach((e,t)=>eU(t))},getBlocker:function(e,t){let r=T.blockers.get(e)||eE;return ee.get(e)!==t&&ee.set(e,t),r},deleteBlocker:eU,patchRoutes:function(e,r,n=!1){let a=null==t;eT(e,r,t||h,d,c,n),a&&(h=[...h],er({}))},_internalFetchControllers:J,_internalSetRoutes:function(e){t=L(e,c,void 0,d={})},_internalSetStateDoNotUseOrYouWillBreakYourApp(e){er(e)}},e.unstable_instrumentations&&(n=function(e,t){let r={navigate:[],fetch:[]};if(t.forEach(e=>e({instrument(e){for(let t of Object.keys(e))e[t]&&r[t].push(e[t])}})),r.navigate.length>0){let t=e.navigate[eo]??e.navigate,n=es(r.navigate,t,(...t)=>{let[r,n]=t;return{to:"number"==typeof r||"string"==typeof r?r:r?b(r):".",...ec(e,n??{})}});n&&(n[eo]=t,e.navigate=n)}if(r.fetch.length>0){let t=e.fetch[eo]??e.fetch,n=es(r.fetch,t,(...t)=>{let[r,,n,a]=t;return{href:n??".",fetcherKey:r,...ec(e,a??{})}});n&&(n[eo]=t,e.fetch=n)}return e}(n,e.unstable_instrumentations.map(e=>e.router).filter(Boolean))),n}function ek(e,t){y(e.length>0,"You must provide a non-empty routes array to createStaticHandler");let r={},n=(t?t.basename:null)||"/",a=t?.mapRouteProperties||eR,o=a;if(t?.unstable_instrumentations){let e=t.unstable_instrumentations;o=t=>({...a(t),...ei(e.map(e=>e.route).filter(Boolean),t)})}let i=L(e,o,void 0,r);async function s(e,{requestContext:t,filterMatchesToLoad:a,skipLoaderErrorBubbling:l,skipRevalidation:c,dataStrategy:d,generateMiddlewareResponse:h}={}){let f=new URL(e.url),m=e.method,p=w("",b(f),null,"default"),g=D(i,p,n);if(t=null!=t?t:new C,tm(m)||"HEAD"===m){if(!g){let e=tt(404,{pathname:p.pathname}),{matches:t,route:r}=te(i),a={basename:n,location:p,matches:t,loaderData:{},actionData:null,errors:{[r.id]:e},statusCode:e.status,loaderHeaders:{},actionHeaders:{}};return h?h(()=>Promise.resolve(a)):a}}else{let e=tt(405,{method:m}),{matches:t,route:r}=te(i),a={basename:n,location:p,matches:t,loaderData:{},actionData:null,errors:{[r.id]:e},statusCode:e.status,loaderHeaders:{},actionHeaders:{}};return h?h(()=>Promise.resolve(a)):a}if(h){y(t instanceof C,"When using middleware in `staticHandler.query()`, any provided `requestContext` must be an instance of `RouterContextProvider`");try{let s;await eU(g,r,o);let f=await eB({request:e,unstable_pattern:ea(g.map(e=>e.route.path)),matches:g,params:g[0].params,context:t},async()=>await h(async(e,r={})=>{let o=await u(e,p,g,t,d||null,!0===l,null,"filterMatchesToLoad"in r?r.filterMatchesToLoad??null:a??null,!0===c);return td(o)?o:s={location:p,basename:n,...o}}),async(e,t)=>{var r;if(tf(e))return e;if(td(e))try{e=new er(e.status,e.statusText,await eZ(e))}catch(t){e=t}if(tc(e)&&(r=e,e=new er(r.init?.status??500,r.init?.statusText??"Internal Server Error",r.data)),s){t in s.loaderData&&(s.loaderData[t]=void 0);let r=eP(i,s,e,l?t:e7(g,t).route.id);return h(()=>Promise.resolve(r))}{let r=l?t:e7(g,g.find(e=>e.route.id===t||e.route.loader)?.route.id||t).route.id,a={matches:g,location:p,basename:n,loaderData:{},actionData:null,errors:{[r]:e},statusCode:en(e)?e.status:500,actionHeaders:{},loaderHeaders:{}};return h(()=>Promise.resolve(a))}});return y(td(f),"Expected a response in query()"),f}catch(e){if(td(e))return e;throw e}}let v=await u(e,p,g,t,d||null,!0===l,null,a||null,!0===c);return td(v)?v:{location:p,basename:n,...v}}async function l(e,{routeId:t,requestContext:a,dataStrategy:s,generateMiddlewareResponse:c}={}){let d=new URL(e.url),h=e.method,f=w("",b(d),null,"default"),m=D(i,f,n);if(a=null!=a?a:new C,tm(h)||"HEAD"===h||"OPTIONS"===h){if(!m)throw tt(404,{pathname:f.pathname})}else throw tt(405,{method:h});let p=t?m.find(e=>e.route.id===t):tg(m,f);if(t&&!p)throw tt(403,{pathname:f.pathname,routeId:t});if(!p)throw tt(404,{pathname:f.pathname});if(c)return y(a instanceof C,"When using middleware in `staticHandler.queryRoute()`, any provided `requestContext` must be an instance of `RouterContextProvider`"),await eU(m,r,o),await eB({request:e,unstable_pattern:ea(m.map(e=>e.route.path)),matches:m,params:m[0].params,context:a},async()=>await c(async e=>{let t=g(await u(e,f,m,a,s||null,!1,p,null,!1));return td(t)?t:"string"==typeof t?new Response(t):Response.json(t)}),e=>{if(tc(e))return Promise.resolve(ta(e));if(td(e))return Promise.resolve(e);throw e});return g(await u(e,f,m,a,s||null,!1,p,null,!1));function g(e){if(td(e))return e;let t=e.errors?Object.values(e.errors)[0]:void 0;if(void 0!==t)throw t;return e.actionData?Object.values(e.actionData)[0]:e.loaderData?Object.values(e.loaderData)[0]:void 0}}async function u(e,t,r,n,a,o,i,s,l){y(e.signal,"query()/queryRoute() requests must contain an AbortController signal");try{if(tp(e.method))return await c(e,r,i||tg(r,t),n,a,o,null!=i,s,l);let u=await d(e,r,n,a,o,i,s);return td(u)?u:{...u,actionData:null,actionHeaders:{}}}catch(e){if(ti(e)&&td(e.result)){if("error"===e.type)throw e.result;return e.result}if(tf(e))return e;throw e}}async function c(e,t,n,a,i,s,l,u,c){let f;if(n.route.action||n.route.lazy){let s=eV(o,r,e,t,n,[],a);f=(await h(e,s,l,a,i))[n.route.id],e.signal.aborted&&eL(e,l)}else{let t=tt(405,{method:e.method,pathname:new URL(e.url).pathname,routeId:n.route.id});if(l)throw t;f={type:"error",error:t}}if(tu(f))throw new Response(null,{status:f.response.status,headers:{Location:f.response.headers.get("Location")}});if(l){if(tl(f))throw f.error;return{matches:[n],loaderData:{},actionData:{[n.route.id]:f.data},errors:null,statusCode:200,loaderHeaders:{},actionHeaders:{}}}if(c)if(!tl(f))return{actionData:{[n.route.id]:f.data},actionHeaders:f.headers?{[n.route.id]:f.headers}:{},matches:t,loaderData:{},errors:null,statusCode:f.statusCode||200,loaderHeaders:{}};else{let e=s?n:e7(t,n.route.id);return{statusCode:en(f.error)?f.error.status:null!=f.statusCode?f.statusCode:500,actionData:null,actionHeaders:{...f.headers?{[n.route.id]:f.headers}:{}},matches:t,loaderData:{},errors:{[e.route.id]:f.error},loaderHeaders:{}}}let m=new Request(e.url,{headers:e.headers,redirect:e.redirect,signal:e.signal});if(tl(f)){let e=s?n:e7(t,n.route.id);return{...await d(m,t,a,i,s,null,u,[e.route.id,f]),statusCode:en(f.error)?f.error.status:null!=f.statusCode?f.statusCode:500,actionData:null,actionHeaders:{...f.headers?{[n.route.id]:f.headers}:{}}}}return{...await d(m,t,a,i,s,null,u),actionData:{[n.route.id]:f.data},...f.statusCode?{statusCode:f.statusCode}:{},actionHeaders:f.headers?{[n.route.id]:f.headers}:{}}}async function d(e,t,n,a,i,s,l,u){let c,d=null!=s;if(d&&!s?.route.loader&&!s?.route.lazy)throw tt(400,{method:e.method,pathname:new URL(e.url).pathname,routeId:s?.route.id});if(s)c=eV(o,r,e,t,s,[],n);else{let a=u&&tl(u[1])?t.findIndex(e=>e.route.id===u[0])-1:void 0,i=ea(t.map(e=>e.route.path));c=t.map((t,s)=>null!=a&&s>a?eX(o,r,e,i,t,[],n,!1):eX(o,r,e,i,t,[],n,null!=(t.route.loader||t.route.lazy)&&(!l||l(t))))}if(!a&&!c.some(e=>e.shouldLoad))return{matches:t,loaderData:{},errors:u&&tl(u[1])?{[u[0]]:u[1].error}:null,statusCode:200,loaderHeaders:{}};let f=await h(e,c,d,n,a);return e.signal.aborted&&eL(e,d),{...e3(t,f,u,!0,i),matches:t}}async function h(e,t,r,a,o){let i=await eG(o||ez,e,t,null,a,!0),s={};return await Promise.all(t.map(async a=>{if(!(a.route.id in i))return;let o=i[a.route.id];if(ts(o))throw e0(o.result,e,a.route.id,t,n);if(r){if(td(o.result))throw o;else if(tc(o.result))throw ta(o.result)}s[a.route.id]=await eQ(o)})),s}return{dataRoutes:i,query:s,queryRoute:l}}function eP(e,t,r,n){let a=n||t._deepestRenderedBoundaryId||e[0].id;return{...t,statusCode:en(r)?r.status:500,errors:{[a]:r}}}function eL(e,t){if(void 0!==e.signal.reason)throw e.signal.reason;throw Error(`${t?"queryRoute":"query"}() call aborted without an \`AbortSignal.reason\`: ${e.method} ${e.url}`)}function e_(e,t,r,n,a,o){let i,s;if(a){for(let e of(i=[],t))if(i.push(e),e.route.id===a){s=e;break}}else i=t,s=t[t.length-1];let l=J(n||".",W(i),H(e.pathname,r)||e.pathname,"path"===o);if(null==n&&(l.search=e.search,l.hash=e.hash),(null==n||""===n||"."===n)&&s){let e=ty(l.search);if(s.route.index&&!e)l.search=l.search?l.search.replace(/^\?/,"?index&"):"?index";else if(!s.route.index&&e){let e=new URLSearchParams(l.search),t=e.getAll("index");e.delete("index"),t.filter(e=>e).forEach(t=>e.append("index",t));let r=e.toString();l.search=r?`?${r}`:""}}return"/"!==r&&(l.pathname=function({basename:e,pathname:t}){return"/"===t?e:Y([e,t])}({basename:r,pathname:l.pathname})),b(l)}function eD(e,t,r){let n,a;if(!r||!(null!=r&&("formData"in r&&null!=r.formData||"body"in r&&void 0!==r.body)))return{path:t};if(r.formMethod&&!tm(r.formMethod))return{path:t,error:tt(405,{method:r.formMethod})};let o=()=>({path:t,error:tt(400,{type:"invalid-body"})}),i=(r.formMethod||"get").toUpperCase(),s=tn(t);if(void 0!==r.body){if("text/plain"===r.formEncType){if(!tp(i))return o();let e="string"==typeof r.body?r.body:r.body instanceof FormData||r.body instanceof URLSearchParams?Array.from(r.body.entries()).reduce((e,[t,r])=>`${e}${t}=${r}
2
+ `,""):String(r.body);return{path:t,submission:{formMethod:i,formAction:s,formEncType:r.formEncType,formData:void 0,json:void 0,text:e}}}else if("application/json"===r.formEncType){if(!tp(i))return o();try{let e="string"==typeof r.body?JSON.parse(r.body):r.body;return{path:t,submission:{formMethod:i,formAction:s,formEncType:r.formEncType,formData:void 0,json:e,text:void 0}}}catch(e){return o()}}}if(y("function"==typeof FormData,"FormData is not available in this environment"),r.formData)n=e4(r.formData),a=r.formData;else if(r.body instanceof FormData)n=e4(r.body),a=r.body;else if(r.body instanceof URLSearchParams)a=e5(n=r.body);else if(null==r.body)n=new URLSearchParams,a=new FormData;else try{n=new URLSearchParams(r.body),a=e5(n)}catch(e){return o()}let l={formMethod:i,formAction:s,formEncType:r&&r.formEncType||"application/x-www-form-urlencoded",formData:a,json:void 0,text:void 0};if(tp(l.formMethod))return{path:t,submission:l};let u=E(t);return e&&u.search&&ty(u.search)&&n.append("index",""),u.search=`?${n}`,{path:b(u),submission:l}}function eA(e,t,r,n,a,o,i,s,l,u,c,d,h,f,m,p,y,g,v,w){let b,E=w?tl(w[1])?w[1].error:w[1].data:void 0,R=a.createURL(o.location),S=a.createURL(l);if(c&&o.errors){let e=Object.keys(o.errors)[0];b=i.findIndex(t=>t.route.id===e)}else if(w&&tl(w[1])){let e=w[0];b=i.findIndex(t=>t.route.id===e)-1}let x=w?w[1].statusCode:void 0,C=x&&x>=400,k={currentUrl:R,currentParams:o.matches[0]?.params||{},nextUrl:S,nextParams:i[0].params,...s,actionResult:E,actionStatus:x},P=ea(i.map(e=>e.route.path)),L=i.map((a,i)=>{var s,l,h,f,m;let p,y,g,{route:v}=a,w=null;if(null!=b&&i>b?w=!1:v.lazy?w=!0:eM(v)?c?w=eO(v,o.loaderData,o.errors):(s=o.loaderData,l=o.matches[i],h=a,p=!l||h.route.id!==l.route.id,y=!s.hasOwnProperty(h.route.id),(p||y)&&(w=!0)):w=!1,null!==w)return eX(r,n,e,P,a,u,t,w);let E=!C&&(d||R.pathname+R.search===S.pathname+S.search||R.search!==S.search||(f=o.matches[i],m=a,g=f.route.path,f.pathname!==m.pathname||null!=g&&g.endsWith("*")&&f.params["*"]!==m.params["*"])),x={...k,defaultShouldRevalidate:E},L=e$(a,x);return eX(r,n,e,P,a,u,t,L,x)}),_=[];return m.forEach((e,s)=>{if(c||!i.some(t=>t.route.id===e.routeId)||f.has(s))return;let l=o.fetchers.get(s),m=l&&"idle"!==l.state&&void 0===l.data,w=D(y,e.path,g);if(!w){if(v&&m)return;_.push({key:s,routeId:e.routeId,path:e.path,matches:null,match:null,request:null,controller:null});return}if(p.has(s))return;let b=tg(w,e.path),E=new AbortController,R=e2(a,e.path,E.signal),S=null;if(h.has(s))h.delete(s),S=eV(r,n,R,w,b,u,t);else if(m)d&&(S=eV(r,n,R,w,b,u,t));else{let e={...k,defaultShouldRevalidate:!C&&d};e$(b,e)&&(S=eV(r,n,R,w,b,u,t,e))}S&&_.push({key:s,routeId:e.routeId,path:e.path,matches:S,match:b,request:R,controller:E})}),{dsMatches:L,revalidatingFetchers:_}}function eM(e){return null!=e.loader||null!=e.middleware&&e.middleware.length>0}function eO(e,t,r){if(e.lazy)return!0;if(!eM(e))return!1;let n=null!=t&&e.id in t,a=null!=r&&void 0!==r[e.id];return(!!n||!a)&&("function"==typeof e.loader&&!0===e.loader.hydrate||!n&&!a)}function e$(e,t){if(e.route.shouldRevalidate){let r=e.route.shouldRevalidate(t);if("boolean"==typeof r)return r}return t.defaultShouldRevalidate}function eT(e,t,r,n,a,o){let i;if(e){let t=n[e];y(t,`No route found to patch children into: routeId = ${e}`),t.children||(t.children=[]),i=t.children}else i=r;let s=[],l=[];if(t.forEach(e=>{let t=i.find(t=>(function e(t,r){return"id"in t&&"id"in r&&t.id===r.id||t.index===r.index&&t.path===r.path&&t.caseSensitive===r.caseSensitive&&((!t.children||0===t.children.length)&&(!r.children||0===r.children.length)||t.children.every((t,n)=>r.children?.some(r=>e(t,r))))})(e,t));t?l.push({existingRoute:t,newRoute:e}):s.push(e)}),s.length>0){let t=L(s,a,[e||"_","patch",String(i?.length||"0")],n);i.push(...t)}if(o&&l.length>0)for(let e=0;e<l.length;e++){let{existingRoute:t,newRoute:r}=l[e],[n]=L([r],a,[],{},!0);Object.assign(t,{element:n.element?n.element:t.element,errorElement:n.errorElement?n.errorElement:t.errorElement,hydrateFallbackElement:n.hydrateFallbackElement?n.hydrateFallbackElement:t.hydrateFallbackElement})}}var eN=new WeakMap,ej=({key:e,route:t,manifest:r,mapRouteProperties:n})=>{let a=r[t.id];if(y(a,"No route found in manifest"),!a.lazy||"object"!=typeof a.lazy)return;let o=a.lazy[e];if(!o)return;let i=eN.get(a);i||(i={},eN.set(a,i));let s=i[e];if(s)return s;let l=(async()=>{let t=k.has(e),r=void 0!==a[e]&&"hasErrorBoundary"!==e;if(t)g(!t,"Route property "+e+" is not a supported lazy route property. This property will be ignored."),i[e]=Promise.resolve();else if(r)g(!1,`Route "${a.id}" has a static property "${e}" defined. The lazy property will be ignored.`);else{let t=await o();null!=t&&(Object.assign(a,{[e]:t}),Object.assign(a,n(a)))}"object"==typeof a.lazy&&(a.lazy[e]=void 0,Object.values(a.lazy).every(e=>void 0===e)&&(a.lazy=void 0))})();return i[e]=l,l},eF=new WeakMap;function eH(e){return void 0!==e}function eU(e,t,r){let n=e.map(({route:e})=>{if("object"==typeof e.lazy&&e.lazy.middleware)return ej({key:"middleware",route:e,manifest:t,mapRouteProperties:r})}).filter(eH);return n.length>0?Promise.all(n):void 0}async function ez(e){let t=e.matches.filter(e=>e.shouldLoad),r={};return(await Promise.all(t.map(e=>e.resolve()))).forEach((e,n)=>{r[t[n].route.id]=e}),r}async function eI(e){return e.matches.some(e=>e.route.middleware)?eq(e,()=>ez(e)):ez(e)}function eB(e,t,r){return eW(e,t,function(e){return tc(e)?ta(e):e},td,r)}function eq(e,t){return eW(e,t,e=>e,to,function(t,r,n){if(n)return Promise.resolve(Object.assign(n.value,{[r]:{type:"error",result:t}}));{let{matches:n}=e,a=Math.min(Math.max(n.findIndex(e=>e.route.id===r),0),Math.max(n.findIndex(e=>e.unstable_shouldCallHandler()),0));return Promise.resolve({[e7(n,n[a].route.id).route.id]:{type:"error",result:t}})}})}async function eW(e,t,r,n,a){let{matches:o,request:i,params:s,context:l,unstable_pattern:u}=e,c=o.flatMap(e=>e.route.middleware?e.route.middleware.map(t=>[e.route.id,t]):[]);return await eJ({request:i,params:s,context:l,unstable_pattern:u},c,t,r,n,a)}async function eJ(e,t,r,n,a,o,i=0){let s,{request:l}=e;if(l.signal.aborted)throw l.signal.reason??Error(`Request aborted: ${l.method} ${l.url}`);let u=t[i];if(!u)return await r();let[c,d]=u,h=async()=>{if(s)throw Error("You may only call `next()` once per middleware");try{return(s={value:await eJ(e,t,r,n,a,o,i+1)}).value}catch(e){return(s={value:await o(e,c,s)}).value}};try{let t=await d(e,h),r=null!=t?n(t):void 0;if(a(r))return r;if(s)return r??s.value;return(s={value:await h()}).value}catch(e){return await o(e,c,s)}}function eY(e,t,r,n,a){let o=ej({key:"middleware",route:n.route,manifest:t,mapRouteProperties:e}),i=function(e,t,r,n,a){let o,i=r[e.id];if(y(i,"No route found in manifest"),!e.lazy)return{lazyRoutePromise:void 0,lazyHandlerPromise:void 0};if("function"==typeof e.lazy){let t=eF.get(i);if(t)return{lazyRoutePromise:t,lazyHandlerPromise:t};let r=(async()=>{y("function"==typeof e.lazy,"No lazy route function found");let t=await e.lazy(),r={};for(let e in t){let n=t[e];if(void 0===n)continue;let a=P.has(e),o=void 0!==i[e]&&"hasErrorBoundary"!==e;a?g(!a,"Route property "+e+" is not a supported property to be returned from a lazy route function. This property will be ignored."):o?g(!o,`Route "${i.id}" has a static property "${e}" defined but its lazy function is also returning a value for this property. The lazy route property "${e}" will be ignored.`):r[e]=n}Object.assign(i,r),Object.assign(i,{...n(i),lazy:void 0})})();return eF.set(i,r),r.catch(()=>{}),{lazyRoutePromise:r,lazyHandlerPromise:r}}let s=Object.keys(e.lazy),l=[];for(let i of s){if(a&&a.includes(i))continue;let s=ej({key:i,route:e,manifest:r,mapRouteProperties:n});s&&(l.push(s),i===t&&(o=s))}let u=l.length>0?Promise.all(l).then(()=>{}):void 0;return u?.catch(()=>{}),o?.catch(()=>{}),{lazyRoutePromise:u,lazyHandlerPromise:o}}(n.route,tp(r.method)?"action":"loader",t,e,a);return{middleware:o,route:i.lazyRoutePromise,handler:i.lazyHandlerPromise}}function eX(e,t,r,n,a,o,i,s,l=null){let u=!1,c=eY(e,t,r,a,o);return{...a,_lazyPromises:c,shouldLoad:s,unstable_shouldRevalidateArgs:l,unstable_shouldCallHandler:e=>(u=!0,l)?"boolean"==typeof e?e$(a,{...l,defaultShouldRevalidate:e}):e$(a,l):s,resolve(e){let{lazy:t,loader:o,middleware:l}=a.route,d=u||s||e&&!tp(r.method)&&(t||o),h=l&&l.length>0&&!o&&!t;return d&&(tp(r.method)||!h)?eK({request:r,unstable_pattern:n,match:a,lazyHandlerPromise:c?.handler,lazyRoutePromise:c?.route,handlerOverride:e,scopedContext:i}):Promise.resolve({type:"data",result:void 0})}}}function eV(e,t,r,n,a,o,i,s=null){return n.map(l=>l.route.id!==a.route.id?{...l,shouldLoad:!1,unstable_shouldRevalidateArgs:s,unstable_shouldCallHandler:()=>!1,_lazyPromises:eY(e,t,r,l,o),resolve:()=>Promise.resolve({type:"data",result:void 0})}:eX(e,t,r,ea(n.map(e=>e.route.path)),l,o,i,!0,s))}async function eG(e,t,r,n,a,o){r.some(e=>e._lazyPromises?.middleware)&&await Promise.all(r.map(e=>e._lazyPromises?.middleware));let i={request:t,unstable_pattern:ea(r.map(e=>e.route.path)),params:r[0].params,context:a,matches:r},s=o?()=>{throw Error("You cannot call `runClientMiddleware()` from a static handler `dataStrategy`. Middleware is run outside of `dataStrategy` during SSR in order to bubble up the Response. You can enable middleware via the `respond` API in `query`/`queryRoute`")}:e=>eq(i,()=>e({...i,fetcherKey:n,runClientMiddleware:()=>{throw Error("Cannot call `runClientMiddleware()` from within an `runClientMiddleware` handler")}})),l=await e({...i,fetcherKey:n,runClientMiddleware:s});try{await Promise.all(r.flatMap(e=>[e._lazyPromises?.handler,e._lazyPromises?.route]))}catch(e){}return l}async function eK({request:e,unstable_pattern:t,match:r,lazyHandlerPromise:n,lazyRoutePromise:a,handlerOverride:o,scopedContext:i}){let s,l,u=tp(e.method),c=u?"action":"loader",d=n=>{let a,s=new Promise((e,t)=>a=t);l=()=>a(),e.signal.addEventListener("abort",l);let u=a=>"function"!=typeof n?Promise.reject(Error(`You cannot call the handler for a route which defines a boolean "${c}" [routeId: ${r.route.id}]`)):n({request:e,unstable_pattern:t,params:r.params,context:i},...void 0!==a?[a]:[]);return Promise.race([(async()=>{try{let e=await (o?o(e=>u(e)):u());return{type:"data",result:e}}catch(e){return{type:"error",result:e}}})(),s])};try{let t=u?r.route.action:r.route.loader;if(n||a)if(t){let e,[r]=await Promise.all([d(t).catch(t=>{e=t}),n,a]);if(void 0!==e)throw e;s=r}else{await n;let t=u?r.route.action:r.route.loader;if(t)[s]=await Promise.all([d(t),a]);else{if("action"!==c)return{type:"data",result:void 0};let t=new URL(e.url),n=t.pathname+t.search;throw tt(405,{method:e.method,pathname:n,routeId:r.route.id})}}else if(t)s=await d(t);else{let t=new URL(e.url),r=t.pathname+t.search;throw tt(404,{pathname:r})}}catch(e){return{type:"error",result:e}}finally{l&&e.signal.removeEventListener("abort",l)}return s}async function eZ(e){let t=e.headers.get("Content-Type");return t&&/\bapplication\/json\b/.test(t)?null==e.body?null:e.json():e.text()}async function eQ(e){let{result:t,type:r}=e;if(td(t)){let e;try{e=await eZ(t)}catch(e){return{type:"error",error:e}}return"error"===r?{type:"error",error:new er(t.status,t.statusText,e),statusCode:t.status,headers:t.headers}:{type:"data",data:e,statusCode:t.status,headers:t.headers}}if("error"===r)return tc(t)?t.data instanceof Error?{type:"error",error:t.data,statusCode:t.init?.status,headers:t.init?.headers?new Headers(t.init.headers):void 0}:{type:"error",error:new er(t.init?.status||500,void 0,t.data),statusCode:en(t)?t.status:void 0,headers:t.init?.headers?new Headers(t.init.headers):void 0}:{type:"error",error:t,statusCode:en(t)?t.status:void 0};return tc(t)?{type:"data",data:t.data,statusCode:t.init?.status,headers:t.init?.headers?new Headers(t.init.headers):void 0}:{type:"data",data:t}}function e0(e,t,r,n,a){let o,i=e.headers.get("Location");if(y(i,"Redirects returned/thrown from loaders/actions must have a Location header"),o=i,!U.test(o)){let o=n.slice(0,n.findIndex(e=>e.route.id===r)+1);i=e_(new URL(t.url),o,a,i),e.headers.set("Location",i)}return e}function e1(e,t,r){if(U.test(e)){let n=new URL(e.startsWith("//")?t.protocol+e:e),a=null!=H(n.pathname,r);if(n.origin===t.origin&&a)return n.pathname+n.search+n.hash}return e}function e2(e,t,r,n){let a=e.createURL(tn(t)).toString(),o={signal:r};if(n&&tp(n.formMethod)){let{formMethod:e,formEncType:t}=n;o.method=e.toUpperCase(),"application/json"===t?(o.headers=new Headers({"Content-Type":t}),o.body=JSON.stringify(n.json)):"text/plain"===t?o.body=n.text:"application/x-www-form-urlencoded"===t&&n.formData?o.body=e4(n.formData):o.body=n.formData}return new Request(a,o)}function e4(e){let t=new URLSearchParams;for(let[r,n]of e.entries())t.append(r,"string"==typeof n?n:n.name);return t}function e5(e){let t=new FormData;for(let[r,n]of e.entries())t.append(r,n);return t}function e3(e,t,r,n=!1,a=!1){let o,i={},s=null,l=!1,u={},c=r&&tl(r[1])?r[1].error:void 0;return e.forEach(r=>{if(!(r.route.id in t))return;let d=r.route.id,h=t[d];if(y(!tu(h),"Cannot handle redirect results in processLoaderData"),tl(h)){let t=h.error;if(void 0!==c&&(t=c,c=void 0),s=s||{},a)s[d]=t;else{let r=e7(e,d);null==s[r.route.id]&&(s[r.route.id]=t)}n||(i[d]=ex),l||(l=!0,o=en(h.error)?h.error.status:500),h.headers&&(u[d]=h.headers)}else i[d]=h.data,h.statusCode&&200!==h.statusCode&&!l&&(o=h.statusCode),h.headers&&(u[d]=h.headers)}),void 0!==c&&r&&(s={[r[0]]:c},r[2]&&(i[r[2]]=void 0)),{loaderData:i,errors:s,statusCode:o||200,loaderHeaders:u}}function e8(e,t,r,n,a,o){let{loaderData:i,errors:s}=e3(t,r,n);return a.filter(e=>!e.matches||e.matches.some(e=>e.shouldLoad)).forEach(t=>{let{key:r,match:n,controller:a}=t;if(a&&a.signal.aborted)return;let i=o[r];if(y(i,"Did not find corresponding fetcher result"),tl(i)){let t=e7(e.matches,n?.route.id);s&&s[t.route.id]||(s={...s,[t.route.id]:i.error}),e.fetchers.delete(r)}else if(tu(i))y(!1,"Unhandled fetcher revalidation redirect");else{let t=tE(i.data);e.fetchers.set(r,t)}}),{loaderData:i,errors:s}}function e9(e,t,r,n){let a=Object.entries(t).filter(([,e])=>e!==ex).reduce((e,[t,r])=>(e[t]=r,e),{});for(let o of r){let r=o.route.id;if(!t.hasOwnProperty(r)&&e.hasOwnProperty(r)&&o.route.loader&&(a[r]=e[r]),n&&n.hasOwnProperty(r))break}return a}function e6(e){return e?tl(e[1])?{actionData:{}}:{actionData:{[e[0]]:e[1].data}}:{}}function e7(e,t){return(t?e.slice(0,e.findIndex(e=>e.route.id===t)+1):[...e]).reverse().find(e=>!0===e.route.hasErrorBoundary)||e[0]}function te(e){let t=1===e.length?e[0]:e.find(e=>e.index||!e.path||"/"===e.path)||{id:"__shim-error-route__"};return{matches:[{params:{},pathname:"",pathnameBase:"",route:t}],route:t}}function tt(e,{pathname:t,routeId:r,method:n,type:a,message:o}={}){let i="Unknown Server Error",s="Unknown @remix-run/router error";return 400===e?(i="Bad Request",n&&t&&r?s=`You made a ${n} request to "${t}" but did not provide a \`loader\` for route "${r}", so there is no way to handle the request.`:"invalid-body"===a&&(s="Unable to encode submission body")):403===e?(i="Forbidden",s=`Route "${r}" does not match URL "${t}"`):404===e?(i="Not Found",s=`No route matches URL "${t}"`):405===e&&(i="Method Not Allowed",n&&t&&r?s=`You made a ${n.toUpperCase()} request to "${t}" but did not provide an \`action\` for route "${r}", so there is no way to handle the request.`:n&&(s=`Invalid request method "${n.toUpperCase()}"`)),new er(e||500,i,Error(s),!0)}function tr(e){let t=Object.entries(e);for(let e=t.length-1;e>=0;e--){let[r,n]=t[e];if(tu(n))return{key:r,result:n}}}function tn(e){return b({..."string"==typeof e?E(e):e,hash:""})}function ta(e){return Response.json(e.data,e.init??void 0)}function to(e){return null!=e&&"object"==typeof e&&Object.entries(e).every(([e,t])=>"string"==typeof e&&ti(t))}function ti(e){return null!=e&&"object"==typeof e&&"type"in e&&"result"in e&&("data"===e.type||"error"===e.type)}function ts(e){return td(e.result)&&eg.has(e.result.status)}function tl(e){return"error"===e.type}function tu(e){return"redirect"===(e&&e.type)}function tc(e){return"object"==typeof e&&null!=e&&"type"in e&&"data"in e&&"init"in e&&"DataWithResponseInit"===e.type}function td(e){return null!=e&&"number"==typeof e.status&&"string"==typeof e.statusText&&"object"==typeof e.headers&&void 0!==e.body}function th(e){return eg.has(e)}function tf(e){return td(e)&&th(e.status)&&e.headers.has("Location")}function tm(e){return ey.has(e.toUpperCase())}function tp(e){return ep.has(e.toUpperCase())}function ty(e){return new URLSearchParams(e).getAll("index").some(e=>""===e)}function tg(e,t){let r="string"==typeof t?E(t).search:t.search;if(e[e.length-1].route.index&&ty(r||""))return e[e.length-1];let n=q(e);return n[n.length-1]}function tv(e){let{formMethod:t,formAction:r,formEncType:n,text:a,formData:o,json:i}=e;if(t&&r&&n){if(null!=a)return{formMethod:t,formAction:r,formEncType:n,formData:void 0,json:void 0,text:a};else if(null!=o)return{formMethod:t,formAction:r,formEncType:n,formData:o,json:void 0,text:void 0};else if(void 0!==i)return{formMethod:t,formAction:r,formEncType:n,formData:void 0,json:i,text:void 0}}}function tw(e,t){return t?{state:"loading",location:e,formMethod:t.formMethod,formAction:t.formAction,formEncType:t.formEncType,formData:t.formData,json:t.json,text:t.text}:{state:"loading",location:e,formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0}}function tb(e,t){return e?{state:"loading",formMethod:e.formMethod,formAction:e.formAction,formEncType:e.formEncType,formData:e.formData,json:e.json,text:e.text,data:t}:{state:"loading",formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0,data:t}}function tE(e){return{state:"idle",formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0,data:e}}var tR=s.createContext(null);tR.displayName="DataRouter";var tS=s.createContext(null);tS.displayName="DataRouterState";var tx=s.createContext(!1),tC=s.createContext({isTransitioning:!1});tC.displayName="ViewTransition";var tk=s.createContext(new Map);tk.displayName="Fetchers";var tP=s.createContext(null);tP.displayName="Await";var tL=e=>s.createElement(tP.Provider,e),t_=s.createContext(null);t_.displayName="Navigation";var tD=s.createContext(null);tD.displayName="Location";var tA=s.createContext({outlet:null,matches:[],isDataRoute:!1});tA.displayName="Route";var tM=s.createContext(null);function tO(e,{relative:t}={}){y(t$(),"useHref() may be used only in the context of a <Router> component.");let{basename:r,navigator:n}=s.useContext(t_),{hash:a,pathname:o,search:i}=tW(e,{relative:t}),l=o;return"/"!==r&&(l="/"===o?r:Y([r,o])),n.createHref({pathname:l,search:i,hash:a})}function t$(){return null!=s.useContext(tD)}function tT(){return y(t$(),"useLocation() may be used only in the context of a <Router> component."),s.useContext(tD).location}function tN(){return s.useContext(tD).navigationType}function tj(e){y(t$(),"useMatch() may be used only in the context of a <Router> component.");let{pathname:t}=tT();return s.useMemo(()=>N(e,F(t)),[t,e])}tM.displayName="RouteError";var tF="You should call navigate() in a React.useEffect(), not when your component is first rendered.";function tH(e){s.useContext(t_).static||s.useLayoutEffect(e)}function tU(){let{isDataRoute:e}=s.useContext(tA);return e?function(){let{router:e}=tQ("useNavigate"),t=t1("useNavigate"),r=s.useRef(!1);return tH(()=>{r.current=!0}),s.useCallback(async(n,a={})=>{g(r.current,tF),r.current&&("number"==typeof n?e.navigate(n):await e.navigate(n,{fromRouteId:t,...a}))},[e,t])}():function(){y(t$(),"useNavigate() may be used only in the context of a <Router> component.");let e=s.useContext(tR),{basename:t,navigator:r}=s.useContext(t_),{matches:n}=s.useContext(tA),{pathname:a}=tT(),o=JSON.stringify(W(n)),i=s.useRef(!1);return tH(()=>{i.current=!0}),s.useCallback((n,s={})=>{if(g(i.current,tF),!i.current)return;if("number"==typeof n)return void r.go(n);let l=J(n,JSON.parse(o),a,"path"===s.relative);null==e&&"/"!==t&&(l.pathname="/"===l.pathname?t:Y([t,l.pathname])),(s.replace?r.replace:r.push)(l,s.state,s)},[t,r,o,a,e])}()}var tz=s.createContext(null);function tI(){return s.useContext(tz)}function tB(e){let t=s.useContext(tA).outlet;return s.useMemo(()=>t&&s.createElement(tz.Provider,{value:e},t),[t,e])}function tq(){let{matches:e}=s.useContext(tA),t=e[e.length-1];return t?t.params:{}}function tW(e,{relative:t}={}){let{matches:r}=s.useContext(tA),{pathname:n}=tT(),a=JSON.stringify(W(r));return s.useMemo(()=>J(e,JSON.parse(a),n,"path"===t),[e,a,n,t])}function tJ(e,t){return tY(e,t)}function tY(e,t,r,n,a){let o;y(t$(),"useRoutes() may be used only in the context of a <Router> component.");let{navigator:i}=s.useContext(t_),{matches:l}=s.useContext(tA),u=l[l.length-1],c=u?u.params:{},d=u?u.pathname:"/",h=u?u.pathnameBase:"/",f=u&&u.route;{let e=f&&f.path||"";ra(d,!f||e.endsWith("*")||e.endsWith("*?"),`You rendered descendant <Routes> (or called \`useRoutes()\`) at "${d}" (under <Route path="${e}">) but the parent route path has no trailing "*". This means if you navigate deeper, the parent won't match anymore and therefore the child routes will never render.
3
+
4
+ Please change the parent <Route path="${e}"> to <Route path="${"/"===e?"*":`${e}/*`}">.`)}let m=tT();if(t){let e="string"==typeof t?E(t):t;y("/"===h||e.pathname?.startsWith(h),`When overriding the location using \`<Routes location>\` or \`useRoutes(routes, location)\`, the location pathname must begin with the portion of the URL pathname that was matched by all parent routes. The current pathname base is "${h}" but pathname "${e.pathname}" was given in the \`location\` prop.`),o=e}else o=m;let p=o.pathname||"/",v=p;if("/"!==h){let e=h.replace(/^\//,"").split("/");v="/"+p.replace(/^\//,"").split("/").slice(e.length).join("/")}let w=D(e,{pathname:v});g(f||null!=w,`No routes matched location "${o.pathname}${o.search}${o.hash}" `),g(null==w||void 0!==w[w.length-1].route.element||void 0!==w[w.length-1].route.Component||void 0!==w[w.length-1].route.lazy,`Matched leaf route at location "${o.pathname}${o.search}${o.hash}" does not have an element or Component. This means it will render an <Outlet /> with a null value by default resulting in an "empty" page.`);let b=tK(w&&w.map(e=>Object.assign({},e,{params:Object.assign({},c,e.params),pathname:Y([h,i.encodeLocation?i.encodeLocation(e.pathname.replace(/\?/g,"%3F").replace(/#/g,"%23")).pathname:e.pathname]),pathnameBase:"/"===e.pathnameBase?h:Y([h,i.encodeLocation?i.encodeLocation(e.pathnameBase.replace(/\?/g,"%3F").replace(/#/g,"%23")).pathname:e.pathnameBase])})),l,r,n,a);return t&&b?s.createElement(tD.Provider,{value:{location:{pathname:"/",search:"",hash:"",state:null,key:"default",...o},navigationType:"POP"}},b):b}var tX=s.createElement(function(){let e=t6(),t=en(e)?`${e.status} ${e.statusText}`:e instanceof Error?e.message:JSON.stringify(e),r=e instanceof Error?e.stack:null,n="rgba(200,200,200, 0.5)",a={padding:"2px 4px",backgroundColor:n},o=null;return console.error("Error handled by React Router default ErrorBoundary:",e),o=s.createElement(s.Fragment,null,s.createElement("p",null,"\uD83D\uDCBF Hey developer \uD83D\uDC4B"),s.createElement("p",null,"You can provide a way better UX than this when your app throws errors by providing your own ",s.createElement("code",{style:a},"ErrorBoundary")," or"," ",s.createElement("code",{style:a},"errorElement")," prop on your route.")),s.createElement(s.Fragment,null,s.createElement("h2",null,"Unexpected Application Error!"),s.createElement("h3",{style:{fontStyle:"italic"}},t),r?s.createElement("pre",{style:{padding:"0.5rem",backgroundColor:n}},r):null,o)},null),tV=class extends s.Component{constructor(e){super(e),this.state={location:e.location,revalidation:e.revalidation,error:e.error}}static getDerivedStateFromError(e){return{error:e}}static getDerivedStateFromProps(e,t){return t.location!==e.location||"idle"!==t.revalidation&&"idle"===e.revalidation?{error:e.error,location:e.location,revalidation:e.revalidation}:{error:void 0!==e.error?e.error:t.error,location:t.location,revalidation:e.revalidation||t.revalidation}}componentDidCatch(e,t){this.props.onError?this.props.onError(e,t):console.error("React Router caught the following error during render",e)}render(){return void 0!==this.state.error?s.createElement(tA.Provider,{value:this.props.routeContext},s.createElement(tM.Provider,{value:this.state.error,children:this.props.component})):this.props.children}};function tG({routeContext:e,match:t,children:r}){let n=s.useContext(tR);return n&&n.static&&n.staticContext&&(t.route.errorElement||t.route.ErrorBoundary)&&(n.staticContext._deepestRenderedBoundaryId=t.route.id),s.createElement(tA.Provider,{value:e},r)}function tK(e,t=[],r=null,n=null,a=null){if(null==e){if(!r)return null;if(r.errors)e=r.matches;else{if(0!==t.length||r.initialized||!(r.matches.length>0))return null;e=r.matches}}let o=e,i=r?.errors;if(null!=i){let e=o.findIndex(e=>e.route.id&&i?.[e.route.id]!==void 0);y(e>=0,`Could not find a matching route for errors on route IDs: ${Object.keys(i).join(",")}`),o=o.slice(0,Math.min(o.length,e+1))}let l=!1,u=-1;if(r)for(let e=0;e<o.length;e++){let t=o[e];if((t.route.HydrateFallback||t.route.hydrateFallbackElement)&&(u=e),t.route.id){let{loaderData:e,errors:n}=r,a=t.route.loader&&!e.hasOwnProperty(t.route.id)&&(!n||void 0===n[t.route.id]);if(t.route.lazy||a){l=!0,o=u>=0?o.slice(0,u+1):[o[0]];break}}}let c=r&&n?(e,t)=>{n(e,{location:r.location,params:r.matches?.[0]?.params??{},errorInfo:t})}:void 0;return o.reduceRight((e,n,a)=>{let d,h=!1,f=null,m=null;r&&(d=i&&n.route.id?i[n.route.id]:void 0,f=n.route.errorElement||tX,l&&(u<0&&0===a?(ra("route-fallback",!1,"No `HydrateFallback` element provided to render during initial hydration"),h=!0,m=null):u===a&&(h=!0,m=n.route.hydrateFallbackElement||null)));let p=t.concat(o.slice(0,a+1)),y=()=>{let t;return t=d?f:h?m:n.route.Component?s.createElement(n.route.Component,null):n.route.element?n.route.element:e,s.createElement(tG,{match:n,routeContext:{outlet:e,matches:p,isDataRoute:null!=r},children:t})};return r&&(n.route.ErrorBoundary||n.route.errorElement||0===a)?s.createElement(tV,{location:r.location,revalidation:r.revalidation,component:f,error:d,children:y(),routeContext:{outlet:null,matches:p,isDataRoute:!0},onError:c}):y()},null)}function tZ(e){return`${e} must be used within a data router. See https://reactrouter.com/en/main/routers/picking-a-router.`}function tQ(e){let t=s.useContext(tR);return y(t,tZ(e)),t}function t0(e){let t=s.useContext(tS);return y(t,tZ(e)),t}function t1(e){let t,r=(y(t=s.useContext(tA),tZ(e)),t),n=r.matches[r.matches.length-1];return y(n.route.id,`${e} can only be used on routes that contain a unique "id"`),n.route.id}function t2(){return t0("useNavigation").navigation}function t4(){let e=tQ("useRevalidator"),t=t0("useRevalidator"),r=s.useCallback(async()=>{await e.router.revalidate()},[e.router]);return s.useMemo(()=>({revalidate:r,state:t.revalidation}),[r,t.revalidation])}function t5(){let{matches:e,loaderData:t}=t0("useMatches");return s.useMemo(()=>e.map(e=>M(e,t)),[e,t])}function t3(){let e=t0("useLoaderData"),t=t1("useLoaderData");return e.loaderData[t]}function t8(e){return t0("useRouteLoaderData").loaderData[e]}function t9(){let e=t0("useActionData"),t=t1("useLoaderData");return e.actionData?e.actionData[t]:void 0}function t6(){let e=s.useContext(tM),t=t0("useRouteError"),r=t1("useRouteError");return void 0!==e?e:t.errors?.[r]}function t7(){let e=s.useContext(tP);return e?._data}function re(){let e=s.useContext(tP);return e?._error}var rt=0;function rr(e){let{router:t,basename:r}=tQ("useBlocker"),n=t0("useBlocker"),[a,o]=s.useState(""),i=s.useCallback(t=>{if("function"!=typeof e)return!!e;if("/"===r)return e(t);let{currentLocation:n,nextLocation:a,historyAction:o}=t;return e({currentLocation:{...n,pathname:H(n.pathname,r)||n.pathname},nextLocation:{...a,pathname:H(a.pathname,r)||a.pathname},historyAction:o})},[r,e]);return s.useEffect(()=>{let e=String(++rt);return o(e),()=>t.deleteBlocker(e)},[t]),s.useEffect(()=>{""!==a&&t.getBlocker(a,i)},[t,a,i]),a&&n.blockers.has(a)?n.blockers.get(a):eE}var rn={};function ra(e,t,r){t||rn[e]||(rn[e]=!0,g(!1,r))}function ro(...e){let t=t1("useRoute"),r=e[0]??t,n=t0("useRoute"),a=n.matches.find(({route:e})=>e.id===r);if(void 0!==a)return{handle:a.route.handle,loaderData:n.loaderData[r],actionData:n.actionData?.[r]}}var ri={};function rs(e,t){e||ri[t]||(ri[t]=!0,console.warn(t))}function rl(e){let t={hasErrorBoundary:e.hasErrorBoundary||null!=e.ErrorBoundary||null!=e.errorElement};return e.Component&&(e.element&&g(!1,"You should not include both `Component` and `element` on your route - `Component` will be used."),Object.assign(t,{element:s.createElement(e.Component),Component:void 0})),e.HydrateFallback&&(e.hydrateFallbackElement&&g(!1,"You should not include both `HydrateFallback` and `hydrateFallbackElement` on your route - `HydrateFallback` will be used."),Object.assign(t,{hydrateFallbackElement:s.createElement(e.HydrateFallback),HydrateFallback:void 0})),e.ErrorBoundary&&(e.errorElement&&g(!1,"You should not include both `ErrorBoundary` and `errorElement` on your route - `ErrorBoundary` will be used."),Object.assign(t,{errorElement:s.createElement(e.ErrorBoundary),ErrorBoundary:void 0})),t}var ru=["HydrateFallback","hydrateFallbackElement"];function rc(e,t){return eC({basename:t?.basename,getContext:t?.getContext,future:t?.future,history:f({initialEntries:t?.initialEntries,initialIndex:t?.initialIndex}),hydrationData:t?.hydrationData,routes:e,hydrationRouteProperties:ru,mapRouteProperties:rl,dataStrategy:t?.dataStrategy,patchRoutesOnNavigation:t?.patchRoutesOnNavigation,unstable_instrumentations:t?.unstable_instrumentations}).initialize()}var rd=class{constructor(){this.status="pending",this.promise=new Promise((e,t)=>{this.resolve=t=>{"pending"===this.status&&(this.status="resolved",e(t))},this.reject=e=>{"pending"===this.status&&(this.status="rejected",t(e))}})}};function rh({router:e,flushSync:t,unstable_onError:r}){let[n,a]=s.useState(e.state),[o,i]=s.useState(),[l,u]=s.useState({isTransitioning:!1}),[c,d]=s.useState(),[h,f]=s.useState(),[m,p]=s.useState(),y=s.useRef(new Map),g=s.useCallback(e=>{a(t=>(e.errors&&r&&Object.entries(e.errors).forEach(([n,a])=>{t.errors?.[n]!==a&&r(a,{location:e.location,params:e.matches[0]?.params??{}})}),e))},[r]),v=s.useCallback((r,{deletedFetchers:n,flushSync:a,viewTransitionOpts:o})=>{r.fetchers.forEach((e,t)=>{void 0!==e.data&&y.current.set(t,e.data)}),n.forEach(e=>y.current.delete(e)),rs(!1===a||null!=t,'You provided the `flushSync` option to a router update, but you are not using the `<RouterProvider>` from `react-router/dom` so `ReactDOM.flushSync()` is unavailable. Please update your app to `import { RouterProvider } from "react-router/dom"` and ensure you have `react-dom` installed as a dependency to use the `flushSync` option.');let l=null!=e.window&&null!=e.window.document&&"function"==typeof e.window.document.startViewTransition;if(rs(null==o||l,"You provided the `viewTransition` option to a router update, but you do not appear to be running in a DOM environment as `window.startViewTransition` is not available."),!o||!l)return void(t&&a?t(()=>g(r)):s.startTransition(()=>g(r)));if(t&&a){t(()=>{h&&(c&&c.resolve(),h.skipTransition()),u({isTransitioning:!0,flushSync:!0,currentLocation:o.currentLocation,nextLocation:o.nextLocation})});let n=e.window.document.startViewTransition(()=>{t(()=>g(r))});n.finished.finally(()=>{t(()=>{d(void 0),f(void 0),i(void 0),u({isTransitioning:!1})})}),t(()=>f(n));return}h?(c&&c.resolve(),h.skipTransition(),p({state:r,currentLocation:o.currentLocation,nextLocation:o.nextLocation})):(i(r),u({isTransitioning:!0,flushSync:!1,currentLocation:o.currentLocation,nextLocation:o.nextLocation}))},[e.window,t,h,c,g]);s.useLayoutEffect(()=>e.subscribe(v),[e,v]),s.useEffect(()=>{l.isTransitioning&&!l.flushSync&&d(new rd)},[l]),s.useEffect(()=>{if(c&&o&&e.window){let t=c.promise,r=e.window.document.startViewTransition(async()=>{s.startTransition(()=>g(o)),await t});r.finished.finally(()=>{d(void 0),f(void 0),i(void 0),u({isTransitioning:!1})}),f(r)}},[o,c,e.window,g]),s.useEffect(()=>{c&&o&&n.location.key===o.location.key&&c.resolve()},[c,h,n.location,o]),s.useEffect(()=>{!l.isTransitioning&&m&&(i(m.state),u({isTransitioning:!0,flushSync:!1,currentLocation:m.currentLocation,nextLocation:m.nextLocation}),p(void 0))},[l.isTransitioning,m]);let w=s.useMemo(()=>({createHref:e.createHref,encodeLocation:e.encodeLocation,go:t=>e.navigate(t),push:(t,r,n)=>e.navigate(t,{state:r,preventScrollReset:n?.preventScrollReset}),replace:(t,r,n)=>e.navigate(t,{replace:!0,state:r,preventScrollReset:n?.preventScrollReset})}),[e]),b=e.basename||"/",E=s.useMemo(()=>({router:e,navigator:w,static:!1,basename:b,unstable_onError:r}),[e,w,b,r]);return s.createElement(s.Fragment,null,s.createElement(tR.Provider,{value:E},s.createElement(tS.Provider,{value:n},s.createElement(tk.Provider,{value:y.current},s.createElement(tC.Provider,{value:l},s.createElement(rv,{basename:b,location:n.location,navigationType:n.historyAction,navigator:w},s.createElement(rf,{routes:e.routes,future:e.future,state:n,unstable_onError:r})))))),null)}var rf=s.memo(function({routes:e,future:t,state:r,unstable_onError:n}){return tY(e,void 0,r,n,t)});function rm({basename:e,children:t,initialEntries:r,initialIndex:n}){let a=s.useRef();null==a.current&&(a.current=f({initialEntries:r,initialIndex:n,v5Compat:!0}));let o=a.current,[i,l]=s.useState({action:o.action,location:o.location}),u=s.useCallback(e=>{s.startTransition(()=>l(e))},[l]);return s.useLayoutEffect(()=>o.listen(u),[o,u]),s.createElement(rv,{basename:e,children:t,location:i.location,navigationType:i.action,navigator:o})}function rp({to:e,replace:t,state:r,relative:n}){y(t$(),"<Navigate> may be used only in the context of a <Router> component.");let{static:a}=s.useContext(t_);g(!a,"<Navigate> must not be used on the initial render in a <StaticRouter>. This is a no-op, but you should modify your code so the <Navigate> is only ever rendered in response to some user interaction or state change.");let{matches:o}=s.useContext(tA),{pathname:i}=tT(),l=tU(),u=JSON.stringify(J(e,W(o),i,"path"===n));return s.useEffect(()=>{l(JSON.parse(u),{replace:t,state:r,relative:n})},[l,u,n,t,r]),null}function ry(e){return tB(e.context)}function rg(e){y(!1,"A <Route> is only ever to be used as the child of <Routes> element, never rendered directly. Please wrap your <Route> in a <Routes>.")}function rv({basename:e="/",children:t=null,location:r,navigationType:n="POP",navigator:a,static:o=!1}){y(!t$(),"You cannot render a <Router> inside another <Router>. You should never have more than one in your app.");let i=e.replace(/^\/*/,"/"),l=s.useMemo(()=>({basename:i,navigator:a,static:o,future:{}}),[i,a,o]);"string"==typeof r&&(r=E(r));let{pathname:u="/",search:c="",hash:d="",state:h=null,key:f="default"}=r,m=s.useMemo(()=>{let e=H(u,i);return null==e?null:{location:{pathname:e,search:c,hash:d,state:h,key:f},navigationType:n}},[i,u,c,d,h,f,n]);return(g(null!=m,`<Router basename="${i}"> is not able to match the URL "${u}${c}${d}" because it does not start with the basename, so the <Router> won't render anything.`),null==m)?null:s.createElement(t_.Provider,{value:l},s.createElement(tD.Provider,{children:t,value:m}))}function rw({children:e,location:t}){return tY(rS(e),t)}function rb({children:e,errorElement:t,resolve:r}){let n=s.useContext(tR),a=s.useContext(tS),o=s.useCallback((e,t)=>{n&&n.unstable_onError&&a&&n.unstable_onError(e,{location:a.location,params:a.matches?.[0]?.params||{},errorInfo:t})},[n,a]);return s.createElement(rE,{resolve:r,errorElement:t,onError:o},s.createElement(rR,null,e))}var rE=class extends s.Component{constructor(e){super(e),this.state={error:null}}static getDerivedStateFromError(e){return{error:e}}componentDidCatch(e,t){this.props.onError?this.props.onError(e,t):console.error("<Await> caught the following error during render",e,t)}render(){let{children:e,errorElement:t,resolve:r}=this.props,n=null,a=0;if(r instanceof Promise)if(this.state.error){a=2;let e=this.state.error;Object.defineProperty(n=Promise.reject().catch(()=>{}),"_tracked",{get:()=>!0}),Object.defineProperty(n,"_error",{get:()=>e})}else r._tracked?a="_error"in(n=r)?2:+("_data"in n):(a=0,Object.defineProperty(r,"_tracked",{get:()=>!0}),n=r.then(e=>Object.defineProperty(r,"_data",{get:()=>e}),e=>{this.props.onError?.(e),Object.defineProperty(r,"_error",{get:()=>e})}));else a=1,Object.defineProperty(n=Promise.resolve(),"_tracked",{get:()=>!0}),Object.defineProperty(n,"_data",{get:()=>r});if(2===a&&!t)throw n._error;if(2===a)return s.createElement(tP.Provider,{value:n,children:t});if(1===a)return s.createElement(tP.Provider,{value:n,children:e});throw n}};function rR({children:e}){let t=t7(),r="function"==typeof e?e(t):e;return s.createElement(s.Fragment,null,r)}function rS(e,t=[]){let r=[];return s.Children.forEach(e,(e,n)=>{if(!s.isValidElement(e))return;let a=[...t,n];if(e.type===s.Fragment)return void r.push.apply(r,rS(e.props.children,a));y(e.type===rg,`[${"string"==typeof e.type?e.type:e.type.name}] is not a <Route> component. All component children of <Routes> must be a <Route> or <React.Fragment>`),y(!e.props.index||!e.props.children,"An index route cannot have child routes.");let o={id:e.props.id||a.join("-"),caseSensitive:e.props.caseSensitive,element:e.props.element,Component:e.props.Component,index:e.props.index,path:e.props.path,middleware:e.props.middleware,loader:e.props.loader,action:e.props.action,hydrateFallbackElement:e.props.hydrateFallbackElement,HydrateFallback:e.props.HydrateFallback,errorElement:e.props.errorElement,ErrorBoundary:e.props.ErrorBoundary,hasErrorBoundary:!0===e.props.hasErrorBoundary||null!=e.props.ErrorBoundary||null!=e.props.errorElement,shouldRevalidate:e.props.shouldRevalidate,handle:e.props.handle,lazy:e.props.lazy};e.props.children&&(o.children=rS(e.props.children,a)),r.push(o)}),r}var rx=rS;function rC(e){return tK(e)}function rk(){return{params:tq(),loaderData:t3(),actionData:t9(),matches:t5()}}function rP({children:e}){let t=rk();return s.cloneElement(e,t)}function rL(e){return function(){let t=rk();return s.createElement(e,t)}}function r_(){return{params:tq(),loaderData:t3(),actionData:t9()}}function rD({children:e}){let t=r_();return s.cloneElement(e,t)}function rA(e){return function(){let t=r_();return s.createElement(e,t)}}function rM(){return{params:tq(),loaderData:t3(),actionData:t9(),error:t6()}}function rO({children:e}){let t=rM();return s.cloneElement(e,t)}function r$(e){return function(){let t=rM();return s.createElement(e,t)}}var rT="get",rN="application/x-www-form-urlencoded";function rj(e){return null!=e&&"string"==typeof e.tagName}function rF(e=""){return new URLSearchParams("string"==typeof e||Array.isArray(e)||e instanceof URLSearchParams?e:Object.keys(e).reduce((t,r)=>{let n=e[r];return t.concat(Array.isArray(n)?n.map(e=>[r,e]):[[r,n]])},[]))}var rH=null,rU=new Set(["application/x-www-form-urlencoded","multipart/form-data","text/plain"]);function rz(e){return null==e||rU.has(e)?e:(g(!1,`"${e}" is not a valid \`encType\` for \`<Form>\`/\`<fetcher.Form>\` and will default to "${rN}"`),null)}var rI=class{constructor(){this.promise=new Promise((e,t)=>{this.resolve=e,this.reject=t})}};function rB(e){let{indices:t}=this,r=t.get(e);if(r)return[r];if(void 0===e)return -7;if(null===e)return -5;if(Number.isNaN(e))return -2;if(e===1/0)return -6;if(e===-1/0)return -3;if(0===e&&1/e<0)return -4;let n=this.index++;return t.set(e,n),rq.call(this,e,n),n}function rq(e,t){let{deferred:r,plugins:n,postPlugins:a}=this,o=this.stringified,i=[[e,t]];for(;i.length>0;){let[e,t]=i.pop(),s=e=>Object.keys(e).map(t=>`"_${rB.call(this,t)}":${rB.call(this,e[t])}`).join(","),l=null;switch(typeof e){case"boolean":case"number":case"string":o[t]=JSON.stringify(e);break;case"bigint":o[t]=`["B","${e}"]`;break;case"symbol":{let r=Symbol.keyFor(e);r?o[t]=`["Y",${JSON.stringify(r)}]`:l=Error("Cannot encode symbol unless created with Symbol.for()");break}case"object":{if(!e){o[t]="-5";break}let a=Array.isArray(e),i=!1;if(!a&&n)for(let r of n){let n=r(e);if(Array.isArray(n)){i=!0;let[e,...r]=n;o[t]=`[${JSON.stringify(e)}`,r.length>0&&(o[t]+=`,${r.map(e=>rB.call(this,e)).join(",")}`),o[t]+="]";break}}if(!i){let n=a?"[":"{";if(a){for(let t=0;t<e.length;t++)n+=(t?",":"")+(t in e?rB.call(this,e[t]):-1);o[t]=`${n}]`}else if(e instanceof Date){let r=e.getTime();o[t]=`["D",${Number.isNaN(r)?JSON.stringify("invalid"):r}]`}else e instanceof URL?o[t]=`["U",${JSON.stringify(e.href)}]`:e instanceof RegExp?o[t]=`["R",${JSON.stringify(e.source)},${JSON.stringify(e.flags)}]`:e instanceof Set?e.size>0?o[t]=`["S",${[...e].map(e=>rB.call(this,e)).join(",")}]`:o[t]='["S"]':e instanceof Map?e.size>0?o[t]=`["M",${[...e].flatMap(([e,t])=>[rB.call(this,e),rB.call(this,t)]).join(",")}]`:o[t]='["M"]':e instanceof Promise?(o[t]=`["P",${t}]`,r[t]=e):e instanceof Error?(o[t]=`["E",${JSON.stringify(e.message)}`,"Error"!==e.name&&(o[t]+=`,${JSON.stringify(e.name)}`),o[t]+="]"):null===Object.getPrototypeOf(e)?o[t]=`["N",{${s(e)}}]`:function(e){let t=Object.getPrototypeOf(e);return t===Object.prototype||null===t||Object.getOwnPropertyNames(t).sort().join("\0")===rW}(e)?o[t]=`{${s(e)}}`:l=Error("Cannot encode object with prototype")}break}default:{let r=Array.isArray(e),a=!1;if(!r&&n)for(let r of n){let n=r(e);if(Array.isArray(n)){a=!0;let[e,...r]=n;o[t]=`[${JSON.stringify(e)}`,r.length>0&&(o[t]+=`,${r.map(e=>rB.call(this,e)).join(",")}`),o[t]+="]";break}}a||(l=Error("Cannot encode function or unexpected type"))}}if(l){let r=!1;if(a)for(let n of a){let a=n(e);if(Array.isArray(a)){r=!0;let[e,...n]=a;o[t]=`[${JSON.stringify(e)}`,n.length>0&&(o[t]+=`,${n.map(e=>rB.call(this,e)).join(",")}`),o[t]+="]";break}}if(!r)throw l}}}var rW=Object.getOwnPropertyNames(Object.prototype).sort().join("\0"),rJ="u">typeof window?window:"u">typeof globalThis?globalThis:void 0;function rY(e){let{hydrated:t,values:r}=this;if("number"==typeof e)return rX.call(this,e);if(!Array.isArray(e)||!e.length)throw SyntaxError();let n=r.length;for(let t of e)r.push(t);return t.length=r.length,rX.call(this,n)}function rX(e){let t,{hydrated:r,values:n,deferred:a,plugins:o}=this,i=[[e,e=>{t=e}]],s=[];for(;i.length>0;){let[e,t]=i.pop();switch(e){case -7:t(void 0);continue;case -5:t(null);continue;case -2:t(NaN);continue;case -6:t(1/0);continue;case -3:t(-1/0);continue;case -4:t(-0);continue}if(r[e]){t(r[e]);continue}let l=n[e];if(!l||"object"!=typeof l){r[e]=l,t(l);continue}if(Array.isArray(l))if("string"==typeof l[0]){let[n,u,c]=l;switch(n){case"D":t(r[e]=new Date(u));continue;case"U":t(r[e]=new URL(u));continue;case"B":t(r[e]=BigInt(u));continue;case"R":t(r[e]=new RegExp(u,c));continue;case"Y":t(r[e]=Symbol.for(u));continue;case"S":let d=new Set;r[e]=d;for(let e=l.length-1;e>0;e--)i.push([l[e],e=>{d.add(e)}]);t(d);continue;case"M":let h=new Map;r[e]=h;for(let e=l.length-2;e>0;e-=2){let t=[];i.push([l[e+1],e=>{t[1]=e}]),i.push([l[e],e=>{t[0]=e}]),s.push(()=>{h.set(t[0],t[1])})}t(h);continue;case"N":let f=Object.create(null);for(let t of(r[e]=f,Object.keys(u).reverse())){let e=[];i.push([u[t],t=>{e[1]=t}]),i.push([Number(t.slice(1)),t=>{e[0]=t}]),s.push(()=>{f[e[0]]=e[1]})}t(f);continue;case"P":if(r[u])t(r[e]=r[u]);else{let n=new rI;a[u]=n,t(r[e]=n.promise)}continue;case"E":let[,m,p]=l,y=p&&rJ&&rJ[p]?new rJ[p](m):Error(m);r[e]=y,t(y);continue;case"Z":t(r[e]=r[u]);continue;default:if(Array.isArray(o)){let n=[],a=l.slice(1);for(let e=0;e<a.length;e++){let t=a[e];i.push([t,t=>{n[e]=t}])}s.push(()=>{for(let a of o){let o=a(l[0],...n);if(o)return void t(r[e]=o.value)}throw SyntaxError()});continue}throw SyntaxError()}}else{let n=[];r[e]=n;for(let e=0;e<l.length;e++){let t=l[e];-1!==t&&i.push([t,t=>{n[e]=t}])}t(n);continue}{let n={};for(let t of(r[e]=n,Object.keys(l).reverse())){let e=[];i.push([l[t],t=>{e[1]=t}]),i.push([Number(t.slice(1)),t=>{e[0]=t}]),s.push(()=>{n[e[0]]=e[1]})}t(n);continue}}for(;s.length>0;)s.pop()();return t}async function rV(e,t){let r,n,{plugins:a}=t??{},o=new rI,i=e.pipeThrough((r=new TextDecoder,n="",new TransformStream({transform(e,t){let a=r.decode(e,{stream:!0}),o=(n+a).split("\n");for(let e of(n=o.pop()||"",o))t.enqueue(e)},flush(e){n&&e.enqueue(n)}}))).getReader(),s={values:[],hydrated:[],deferred:{},plugins:a},l=await rG.call(s,i),u=o.promise;return l.done?o.resolve():u=rK.call(s,i).then(o.resolve).catch(e=>{for(let t of Object.values(s.deferred))t.reject(e);o.reject(e)}),{done:u.then(()=>i.closed),value:l.value}}async function rG(e){let t,r=await e.read();if(!r.value)throw SyntaxError();try{t=JSON.parse(r.value)}catch(e){throw SyntaxError()}return{done:r.done,value:rY.call(this,t)}}async function rK(e){let t=await e.read();for(;!t.done;){if(!t.value)continue;let r=t.value;switch(r[0]){case"P":{let e,t=r.indexOf(":"),n=Number(r.slice(1,t)),a=this.deferred[n];if(!a)throw Error(`Deferred ID ${n} not found in stream`);let o=r.slice(t+1);try{e=JSON.parse(o)}catch(e){throw SyntaxError()}let i=rY.call(this,e);a.resolve(i);break}case"E":{let e,t=r.indexOf(":"),n=Number(r.slice(1,t)),a=this.deferred[n];if(!a)throw Error(`Deferred ID ${n} not found in stream`);let o=r.slice(t+1);try{e=JSON.parse(o)}catch(e){throw SyntaxError()}let i=rY.call(this,e);a.reject(i);break}default:throw SyntaxError()}t=await e.read()}}async function rZ(e){let t={signal:e.signal};if("GET"!==e.method){t.method=e.method;let r=e.headers.get("Content-Type");r&&/\bapplication\/json\b/.test(r)?(t.headers={"Content-Type":r},t.body=JSON.stringify(await e.json())):r&&/\btext\/plain\b/.test(r)?(t.headers={"Content-Type":r},t.body=await e.text()):r&&/\bapplication\/x-www-form-urlencoded\b/.test(r)?t.body=new URLSearchParams(await e.text()):t.body=await e.formData()}return t}var rQ={"&":"\\u0026",">":"\\u003e","<":"\\u003c","\u2028":"\\u2028","\u2029":"\\u2029"},r0=/[&><\u2028\u2029]/g;function r1(e){return e.replace(r0,e=>rQ[e])}function r2(e,t){if(!1===e||null==e)throw Error(t)}var r4=Symbol("SingleFetchRedirect"),r5=class extends Error{},r3=new Set([100,101,204,205]);function r8({context:e,identifier:t,reader:r,textDecoder:n,nonce:a}){if(!e.renderMeta||!e.renderMeta.didRenderScripts)return null;e.renderMeta.streamCache||(e.renderMeta.streamCache={});let{streamCache:o}=e.renderMeta,i=o[t];if(i||(i=o[t]=r.read().then(e=>{o[t].result={done:e.done,value:n.decode(e.value,{stream:!0})}}).catch(e=>{o[t].error=e})),i.error)throw i.error;if(void 0===i.result)throw i;let{done:l,value:u}=i.result,c=u?s.createElement("script",{nonce:a,dangerouslySetInnerHTML:{__html:`window.__reactRouterContext.streamController.enqueue(${r1(JSON.stringify(u))});`}}):null;return l?s.createElement(s.Fragment,null,c,s.createElement("script",{nonce:a,dangerouslySetInnerHTML:{__html:"window.__reactRouterContext.streamController.close();"}})):s.createElement(s.Fragment,null,c,s.createElement(s.Suspense,null,s.createElement(r8,{context:e,identifier:t+1,reader:r,textDecoder:n,nonce:a})))}function r9(e,t,r,n,a){let o=function(e,t,r,n,a,o=()=>!0){return async i=>{let{request:s,matches:l,fetcherKey:u}=i,c=e();if("GET"!==s.method)return r6(i,r,a);let d=l.some(e=>{let{hasLoader:r,hasClientLoader:n}=t(e);return e.unstable_shouldCallHandler()&&r&&!n});return n||d?u?nr(i,r,a):ne(i,c,t,r,n,a,o):r7(i,t,r,a)}}(e,e=>{let n=t.routes[e.route.id];r2(n,"Route not found in manifest");let a=r[e.route.id];return{hasLoader:n.hasLoader,hasClientLoader:n.hasClientLoader,hasShouldRevalidate:!!a?.shouldRevalidate}},na,n,a);return async e=>e.runClientMiddleware(o)}async function r6(e,t,r){let n,a=e.matches.find(e=>e.unstable_shouldCallHandler());r2(a,"No action match found");let o=await a.resolve(async o=>await o(async()=>{let{data:o,status:i}=await t(e,r,[a.route.id]);return n=i,ni(o,a.route.id)}));return td(o.result)||en(o.result)||tc(o.result)?{[a.route.id]:o}:{[a.route.id]:{type:o.type,result:Z(o.result,n)}}}async function r7(e,t,r,n){let a=e.matches.filter(e=>e.unstable_shouldCallHandler()),o={};return await Promise.all(a.map(a=>a.resolve(async i=>{try{let{hasClientLoader:s}=t(a),l=a.route.id,u=s?await i(async()=>{let{data:t}=await r(e,n,[l]);return ni(t,l)}):await i();o[a.route.id]={type:"data",result:u}}catch(e){o[a.route.id]={type:"error",result:e}}}))),o}async function ne(e,t,r,n,a,o,i=()=>!0){let s=new Set,l=!1,u=e.matches.map(()=>ns()),c=ns(),d={},h=Promise.all(e.matches.map(async(t,a)=>t.resolve(async h=>{u[a].resolve();let f=t.route.id,{hasLoader:m,hasClientLoader:p,hasShouldRevalidate:y}=r(t),g=!t.unstable_shouldRevalidateArgs||null==t.unstable_shouldRevalidateArgs.actionStatus||t.unstable_shouldRevalidateArgs.actionStatus<400;if(!t.unstable_shouldCallHandler(g)){l||(l=null!=t.unstable_shouldRevalidateArgs&&m&&!0===y);return}if(i(t)&&p){m&&(l=!0);try{let t=await h(async()=>{let{data:t}=await n(e,o,[f]);return ni(t,f)});d[f]={type:"data",result:t}}catch(e){d[f]={type:"error",result:e}}return}m&&s.add(f);try{let e=await h(async()=>{let e=await c.promise;return ni(e,f)});d[f]={type:"data",result:e}}catch(e){d[f]={type:"error",result:e}}})));if(await Promise.all(u.map(e=>e.promise)),(t.state.initialized||"idle"!==t.state.navigation.state)&&0!==s.size||window.__reactRouterHdrActive){let t=a&&l&&s.size>0?[...s.keys()]:void 0;try{let r=await n(e,o,t);c.resolve(r.data)}catch(e){c.reject(e)}}else c.resolve({routes:{}});return await h,await nt(c.promise,e.matches,s,d),d}async function nt(e,t,r,n){try{let a,o=await e;if("routes"in o){for(let e of t)if(e.route.id in o.routes){let t=o.routes[e.route.id];if("error"in t){a=t.error,n[e.route.id]?.result==null&&(n[e.route.id]={type:"error",result:a});break}}}void 0!==a&&Array.from(r.values()).forEach(e=>{n[e].result instanceof r5&&(n[e].result=a)})}catch(e){}}async function nr(e,t,r){let n=e.matches.find(e=>e.unstable_shouldCallHandler());r2(n,"No fetcher match found");let a=n.route.id,o=await n.resolve(async n=>n(async()=>{let{data:n}=await t(e,r,[a]);return ni(n,a)}));return{[n.route.id]:o}}function nn(e,t,r){let n="string"==typeof e?new URL(e,"u"<typeof window?"server://singlefetch/":window.location.origin):e;return"/"===n.pathname?n.pathname=`_root.${r}`:t&&"/"===H(n.pathname,t)?n.pathname=`${t.replace(/\/$/,"")}/_root.${r}`:n.pathname=`${n.pathname.replace(/\/$/,"")}.${r}`,n}async function na(e,t,r){let{request:n}=e,a=nn(n.url,t,"data");"GET"===n.method&&(a=function(e){let t=e.searchParams.getAll("index");e.searchParams.delete("index");let r=[];for(let e of t)e&&r.push(e);for(let t of r)e.searchParams.append("index",t);return e}(a),r&&a.searchParams.set("_routes",r.join(",")));let o=await fetch(a,await rZ(n));if(o.status>=400&&!o.headers.has("X-Remix-Response"))throw new er(o.status,o.statusText,await o.text());if(204===o.status&&o.headers.has("X-Remix-Redirect"))return{status:202,data:{redirect:{redirect:o.headers.get("X-Remix-Redirect"),status:Number(o.headers.get("X-Remix-Status")||"302"),revalidate:"true"===o.headers.get("X-Remix-Revalidate"),reload:"true"===o.headers.get("X-Remix-Reload-Document"),replace:"true"===o.headers.get("X-Remix-Replace")}}};if(r3.has(o.status)){let e={};return r&&"GET"!==n.method&&(e[r[0]]={data:void 0}),{status:o.status,data:{routes:e}}}r2(o.body,"No response body to decode");try{let e,t=await no(o.body,window);if("GET"===n.method){let r=t.value;e=r4 in r?{redirect:r[r4]}:{routes:r}}else{let n=t.value,a=r?.[0];r2(a,"No routeId found for single fetch call decoding"),e="redirect"in n?{redirect:n}:{routes:{[a]:n}}}return{status:o.status,data:e}}catch(e){throw Error("Unable to decode turbo-stream response")}}function no(e,t){return rV(e,{plugins:[(e,...r)=>{if("SanitizedError"===e){let[e,n,a]=r,o=Error;e&&e in t&&"function"==typeof t[e]&&(o=t[e]);let i=new o(n);return i.stack=a,{value:i}}if("ErrorResponse"===e){let[e,t,n]=r;return{value:new er(t,n,e)}}return"SingleFetchRedirect"===e?{value:{[r4]:r[0]}}:"SingleFetchClassInstance"===e?{value:r[0]}:"SingleFetchFallback"===e?{value:void 0}:void 0}]})}function ni(e,t){if("redirect"in e){let{redirect:t,revalidate:r,reload:n,replace:a,status:o}=e.redirect;throw Q(t,{status:o,headers:{...r?{"X-Remix-Revalidate":"yes"}:null,...n?{"X-Remix-Reload-Document":"yes"}:null,...a?{"X-Remix-Replace":"yes"}:null}})}let r=e.routes[t];if(null==r)throw new r5(`No result found for routeId "${t}"`);if("error"in r)throw r.error;if("data"in r)return r.data;throw Error(`Invalid response found for routeId "${t}"`)}function ns(){let e,t,r=new Promise((n,a)=>{e=async e=>{n(e);try{await r}catch(e){}},t=async e=>{a(e);try{await r}catch(e){}}});return{promise:r,resolve:e,reject:t}}async function nl(e,t){if(e.id in t)return t[e.id];try{let r=await import(e.module);return t[e.id]=r,r}catch(t){return console.error(`Error loading route module \`${e.module}\`, reloading page...`),console.error(t),window.__reactRouterContext&&window.__reactRouterContext.isSpaMode,window.location.reload(),new Promise(()=>{})}}function nu(e){return e.css?e.css.map(e=>({rel:"stylesheet",href:e})):[]}async function nc(e){if(!e.css)return;let t=nu(e);await Promise.all(t.map(nh))}async function nd(e,t){if(!e.css&&!t.links||!function(){if(void 0!==i)return i;let e=document.createElement("link");return i=e.relList.supports("preload"),e=null,i}())return;let r=[];if(e.css&&r.push(...nu(e)),t.links&&r.push(...t.links()),0===r.length)return;let n=[];for(let e of r)nf(e)||"stylesheet"!==e.rel||n.push({...e,rel:"preload",as:"style"});await Promise.all(n.map(nh))}async function nh(e){return new Promise(t=>{if(e.media&&!window.matchMedia(e.media).matches||document.querySelector(`link[rel="stylesheet"][href="${e.href}"]`))return t();let r=document.createElement("link");function n(){document.head.contains(r)&&document.head.removeChild(r)}Object.assign(r,e),r.onload=()=>{n(),t()},r.onerror=()=>{n(),t()},document.head.appendChild(r)})}function nf(e){return null!=e&&"string"==typeof e.page}function nm(e){return null!=e&&(null==e.href?"preload"===e.rel&&"string"==typeof e.imageSrcSet&&"string"==typeof e.imageSizes:"string"==typeof e.rel&&"string"==typeof e.href)}async function np(e,t,r){return nv((await Promise.all(e.map(async e=>{let n=t.routes[e.route.id];if(n){let e=await nl(n,r);return e.links?e.links():[]}return[]}))).flat(1).filter(nm).filter(e=>"stylesheet"===e.rel||"preload"===e.rel).map(e=>"stylesheet"===e.rel?{...e,rel:"prefetch",as:"style"}:{...e,rel:"prefetch"}))}function ny(e,t,r,n,a,o){let i=(e,t)=>!r[t]||e.route.id!==r[t].route.id,s=(e,t)=>r[t].pathname!==e.pathname||r[t].route.path?.endsWith("*")&&r[t].params["*"]!==e.params["*"];return"assets"===o?t.filter((e,t)=>i(e,t)||s(e,t)):"data"===o?t.filter((t,o)=>{let l=n.routes[t.route.id];if(!l||!l.hasLoader)return!1;if(i(t,o)||s(t,o))return!0;if(t.route.shouldRevalidate){let n=t.route.shouldRevalidate({currentUrl:new URL(a.pathname+a.search+a.hash,window.origin),currentParams:r[0]?.params||{},nextUrl:new URL(e,window.origin),nextParams:t.params,defaultShouldRevalidate:!0});if("boolean"==typeof n)return n}return!0}):[]}function ng(e,t,{includeHydrateFallback:r}={}){return[...new Set(e.map(e=>{let n=t.routes[e.route.id];if(!n)return[];let a=[n.module];return n.clientActionModule&&(a=a.concat(n.clientActionModule)),n.clientLoaderModule&&(a=a.concat(n.clientLoaderModule)),r&&n.hydrateFallbackModule&&(a=a.concat(n.hydrateFallbackModule)),n.imports&&(a=a.concat(n.imports)),a}).flat(1))]}function nv(e,t){let r=new Set,n=new Set(t);return e.reduce((e,a)=>{if(t&&!nf(a)&&"script"===a.as&&a.href&&n.has(a.href))return e;let o=JSON.stringify(function(e){let t={};for(let r of Object.keys(e).sort())t[r]=e[r];return t}(a));return r.has(o)||(r.add(o),e.push({key:o,link:a})),e},[])}function nw(){return s.createElement(nQ,{title:"Loading...",renderScripts:!0},s.createElement("script",{dangerouslySetInnerHTML:{__html:`
5
+ console.log(
6
+ "\u{1F4BF} Hey developer \u{1F44B}. You can provide a way better UX than this " +
7
+ "when your app is loading JS modules and/or running \`clientLoader\` " +
8
+ "functions. Check out https://reactrouter.com/start/framework/route-module#hydratefallback " +
9
+ "for more information."
10
+ );
11
+ `}}))}function nb(e){let t={};return Object.values(e).forEach(e=>{if(e){let r=e.parentId||"";t[r]||(t[r]=[]),t[r].push(e)}}),t}function nE(e,t,r){let n=nL(t),a=t.HydrateFallback&&(!r||"root"===e.id)?t.HydrateFallback:"root"===e.id?nw:void 0,o=t.ErrorBoundary?t.ErrorBoundary:"root"===e.id?()=>s.createElement(nZ,{error:t6()}):void 0;return"root"===e.id&&t.Layout?{...n?{element:s.createElement(t.Layout,null,s.createElement(n,null))}:{Component:n},...o?{errorElement:s.createElement(t.Layout,null,s.createElement(o,null))}:{ErrorBoundary:o},...a?{hydrateFallbackElement:s.createElement(t.Layout,null,s.createElement(a,null))}:{HydrateFallback:a}}:{Component:n,ErrorBoundary:o,HydrateFallback:a}}function nR(e,t,r,n,a,o){return nC(t,r,n,a,o,"",nb(t),e)}function nS(e,t){if("loader"===e&&!t.hasLoader||"action"===e&&!t.hasAction){let r=`You are trying to call ${"action"===e?"serverAction()":"serverLoader()"} on a route that does not have a server ${e} (routeId: "${t.id}")`;throw console.error(r),new er(400,"Bad Request",Error(r),!0)}}function nx(e,t){let r="clientAction"===e?"a":"an",n=`Route "${t}" does not have ${r} ${e}, but you are trying to submit to it. To fix this, please add ${r} \`${e}\` function to the route`;throw console.error(n),new er(405,"Method Not Allowed",Error(n),!0)}function nC(e,t,r,n,a,o="",i=nb(e),s){return(i[o]||[]).map(o=>{let l=t[o.id];function u(e){return r2("function"==typeof e,"No single fetch function available for route handler"),e()}function c(e){return o.hasLoader?u(e):Promise.resolve(null)}function d(e){if(!o.hasAction)throw nx("action",o.id);return u(e)}function h(e){e.clientActionModule&&import(e.clientActionModule),e.clientLoaderModule&&import(e.clientLoaderModule)}async function f(e){let r=t[o.id],n=r?nd(o,r):Promise.resolve();try{return e()}finally{await n}}let m={id:o.id,index:o.index,path:o.path};if(l){Object.assign(m,{...m,...nE(o,l,a),middleware:l.clientMiddleware,handle:l.handle,shouldRevalidate:nk(m.path,l,o,n,s)});let e=r&&r.loaderData&&o.id in r.loaderData,t=e?r?.loaderData?.[o.id]:void 0,i=r&&r.errors&&o.id in r.errors,u=i?r?.errors?.[o.id]:void 0,h=null==s&&(l.clientLoader?.hydrate===!0||!o.hasLoader);m.loader=async({request:r,params:n,context:a,unstable_pattern:s},d)=>{try{return await f(async()=>(r2(l,"No `routeModule` available for critical-route loader"),l.clientLoader)?l.clientLoader({request:r,params:n,context:a,unstable_pattern:s,async serverLoader(){if(nS("loader",o),h){if(e)return t;if(i)throw u}return c(d)}}):c(d))}finally{h=!1}},m.loader.hydrate=n_(o.id,l.clientLoader,o.hasLoader,a),m.action=({request:e,params:t,context:r,unstable_pattern:n},i)=>f(async()=>{if(r2(l,"No `routeModule` available for critical-route action"),!l.clientAction){if(a)throw nx("clientAction",o.id);return d(i)}return l.clientAction({request:e,params:t,context:r,unstable_pattern:n,serverAction:async()=>(nS("action",o),d(i))})})}else{let e;async function p(){return e||(e=(async()=>{(o.clientLoaderModule||o.clientActionModule)&&await new Promise(e=>setTimeout(e,0));let e=nP(o,t);return h(o),await e})()),await e}o.hasClientLoader||(m.loader=(e,t)=>f(()=>c(t))),o.hasClientAction||(m.action=(e,t)=>f(()=>{if(a)throw nx("clientAction",o.id);return d(t)})),m.lazy={loader:o.hasClientLoader?async()=>{let{clientLoader:e}=o.clientLoaderModule?await import(o.clientLoaderModule):await p();return r2(e,"No `clientLoader` export found"),(t,r)=>e({...t,serverLoader:async()=>(nS("loader",o),c(r))})}:void 0,action:o.hasClientAction?async()=>{let e=o.clientActionModule?import(o.clientActionModule):p();h(o);let{clientAction:t}=await e;return r2(t,"No `clientAction` export found"),(e,r)=>t({...e,serverAction:async()=>(nS("action",o),d(r))})}:void 0,middleware:o.hasClientMiddleware?async()=>{let{clientMiddleware:e}=o.clientMiddlewareModule?await import(o.clientMiddlewareModule):await p();return r2(e,"No `clientMiddleware` export found"),e}:void 0,shouldRevalidate:async()=>{let e=await p();return nk(m.path,e,o,n,s)},handle:async()=>(await p()).handle,Component:async()=>(await p()).Component,ErrorBoundary:o.hasErrorBoundary?async()=>(await p()).ErrorBoundary:void 0}}let y=nC(e,t,r,n,a,o.id,i,s);return y.length>0&&(m.children=y),m})}function nk(e,t,r,n,a){if(a){var o,i,s;let e;return o=r.id,i=t.shouldRevalidate,s=a,e=!1,t=>e?i?i(t):t.defaultShouldRevalidate:(e=!0,s.has(o))}if(!n&&r.hasLoader&&!r.hasClientLoader){let r=e?j(e)[1].map(e=>e.paramName):[],n=e=>r.some(t=>e.currentParams[t]!==e.nextParams[t]);if(!t.shouldRevalidate)return e=>n(e);{let e=t.shouldRevalidate;return t=>e({...t,defaultShouldRevalidate:n(t)})}}if(n&&t.shouldRevalidate){let e=t.shouldRevalidate;return t=>e({...t,defaultShouldRevalidate:!0})}return t.shouldRevalidate}async function nP(e,t){let r=nl(e,t),n=nc(e),a=await r;return await Promise.all([n,nd(e,a)]),{Component:nL(a),ErrorBoundary:a.ErrorBoundary,clientMiddleware:a.clientMiddleware,clientAction:a.clientAction,clientLoader:a.clientLoader,handle:a.handle,links:a.links,meta:a.meta,shouldRevalidate:a.shouldRevalidate}}function nL(e){if(null!=e.default&&("object"!=typeof e.default||0!==Object.keys(e.default).length))return e.default}function n_(e,t,r,n){return n&&"root"!==e||null!=t&&(!0===t.hydrate||!0!==r)}var nD=new Set,nA=new Set;function nM(e,t){return"lazy"===e.mode&&!0===t}function nO(e,t,r,n,a,o){if(nM(n,r))return async({path:i,patch:s,signal:l,fetcherKey:u})=>{nA.has(i)||await nj([i],u?window.location.href:i,e,t,r,a,o,n.manifestPath,s,l)}}function n$(e,t,r,n,a,o){s.useEffect(()=>{var i;let s;if(!nM(a,n)||window.navigator?.connection?.saveData===!0)return;function l(e){let t="FORM"===e.tagName?e.getAttribute("action"):e.getAttribute("href");if(!t)return;let r="A"===e.tagName?e.pathname:new URL(t,window.location.origin).pathname;nA.has(r)||nD.add(r)}async function u(){document.querySelectorAll("a[data-discover], form[data-discover]").forEach(l);let i=Array.from(nD.keys()).filter(e=>!nA.has(e)||(nD.delete(e),!1));if(0!==i.length)try{await nj(i,null,t,r,n,o,e.basename,a.manifestPath,e.patchRoutes)}catch(e){console.error("Failed to fetch manifest patches",e)}}let c=(i=u,(...e)=>{window.clearTimeout(s),s=window.setTimeout(()=>i(...e),100)});u();let d=new MutationObserver(()=>c());return d.observe(document.documentElement,{subtree:!0,childList:!0,attributes:!0,attributeFilter:["data-discover","href","action"]}),()=>d.disconnect()},[n,o,t,r,e,a])}function nT(e,t){let r=e||"/__manifest";return null==t?r:`${t}${r}`.replace(/\/+/g,"/")}var nN="react-router-manifest-version";async function nj(e,t,r,n,a,o,i,s,l,u){let c,d=new URLSearchParams;d.set("paths",e.sort().join(",")),d.set("version",r.version);let h=new URL(nT(s,i),window.location.origin);if(h.search=d.toString(),h.toString().length>7680)return void nD.clear();try{let e=await fetch(h,{signal:u});if(e.ok){if(204===e.status&&e.headers.has("X-Remix-Reload-Document")){if(!t)return void console.warn("Detected a manifest version mismatch during eager route discovery. The next navigation/fetch to an undiscovered route will result in a new document navigation to sync up with the latest manifest.");try{if(sessionStorage.getItem(nN)===r.version)return void console.error("Unable to discover routes due to manifest version mismatch.");sessionStorage.setItem(nN,r.version)}catch{}window.location.href=t,console.warn("Detected manifest version mismatch, reloading..."),await new Promise(()=>{})}else if(e.status>=400)throw Error(await e.text())}else throw Error(`${e.status} ${e.statusText}`);try{sessionStorage.removeItem(nN)}catch{}c=await e.json()}catch(e){if(u?.aborted)return;throw e}let f=new Set(Object.keys(r.routes)),m=Object.values(c).reduce((e,t)=>(t&&!f.has(t.id)&&(e[t.id]=t),e),{});Object.assign(r.routes,m),e.forEach(e=>(function(e,t){if(t.size>=1e3){let e=t.values().next().value;t.delete(e)}t.add(e)})(e,nA));let p=new Set;Object.values(m).forEach(e=>{!e||e.parentId&&m[e.parentId]||p.add(e.parentId)}),p.forEach(e=>l(e||null,nC(m,n,null,a,o,e)))}function nF(){let e=s.useContext(tR);return r2(e,"You must render this element inside a <DataRouterContext.Provider> element"),e}function nH(){let e=s.useContext(tS);return r2(e,"You must render this element inside a <DataRouterStateContext.Provider> element"),e}var nU=s.createContext(void 0);function nz(){let e=s.useContext(nU);return r2(e,"You must render this element inside a <HydratedRouter> element"),e}function nI(e,t){return r=>{e&&e(r),r.defaultPrevented||t(r)}}function nB(e,t,r){if(r&&!nV)return[e[0]];if(t){let r=e.findIndex(e=>void 0!==t[e.route.id]);return e.slice(0,r+1)}return e}nU.displayName="FrameworkContext";var nq="data-react-router-critical-css";function nW({nonce:e}){let{isSpaMode:t,manifest:r,routeModules:n,criticalCss:a}=nz(),{errors:o,matches:i}=nH(),l=nB(i,o,t),u=s.useMemo(()=>nv(l.map(e=>{let t=n[e.route.id],a=r.routes[e.route.id];return[a&&a.css?a.css.map(e=>({rel:"stylesheet",href:e})):[],t?.links?.()||[]]}).flat(2),ng(l,r)),[l,n,r]);return s.createElement(s.Fragment,null,"string"==typeof a?s.createElement("style",{...{[nq]:""},dangerouslySetInnerHTML:{__html:a}}):null,"object"==typeof a?s.createElement("link",{...{[nq]:""},rel:"stylesheet",href:a.href,nonce:e}):null,u.map(({key:t,link:r})=>nf(r)?s.createElement(nJ,{key:t,nonce:e,...r}):s.createElement("link",{key:t,nonce:e,...r})))}function nJ({page:e,...t}){let{router:r}=nF(),n=s.useMemo(()=>D(r.routes,e,r.basename),[r.routes,e,r.basename]);return n?s.createElement(nY,{page:e,matches:n,...t}):null}function nY({page:e,matches:t,...r}){let n=tT(),{manifest:a,routeModules:o}=nz(),{basename:i}=nF(),{loaderData:l,matches:u}=nH(),c=s.useMemo(()=>ny(e,t,u,a,n,"data"),[e,t,u,a,n]),d=s.useMemo(()=>ny(e,t,u,a,n,"assets"),[e,t,u,a,n]),h=s.useMemo(()=>{if(e===n.pathname+n.search+n.hash)return[];let r=new Set,s=!1;if(t.forEach(e=>{let t=a.routes[e.route.id];t&&t.hasLoader&&(!c.some(t=>t.route.id===e.route.id)&&e.route.id in l&&o[e.route.id]?.shouldRevalidate||t.hasClientLoader?s=!0:r.add(e.route.id))}),0===r.size)return[];let u=nn(e,i,"data");return s&&r.size>0&&u.searchParams.set("_routes",t.filter(e=>r.has(e.route.id)).map(e=>e.route.id).join(",")),[u.pathname+u.search]},[i,l,n,a,c,t,e,o]),f=s.useMemo(()=>ng(d,a),[d,a]),m=function(e){let{manifest:t,routeModules:r}=nz(),[n,a]=s.useState([]);return s.useEffect(()=>{let n=!1;return np(e,t,r).then(e=>{n||a(e)}),()=>{n=!0}},[e,t,r]),n}(d);return s.createElement(s.Fragment,null,h.map(e=>s.createElement("link",{key:e,rel:"prefetch",as:"fetch",href:e,...r})),f.map(e=>s.createElement("link",{key:e,rel:"modulepreload",href:e,...r})),m.map(({key:e,link:t})=>s.createElement("link",{key:e,nonce:r.nonce,...t})))}function nX(){let{isSpaMode:e,routeModules:t}=nz(),{errors:r,matches:n,loaderData:a}=nH(),o=tT(),i=nB(n,r,e),l=null;r&&(l=r[i[i.length-1].route.id]);let u=[],c=null,d=[];for(let e=0;e<i.length;e++){let r=i[e],n=r.route.id,s=a[n],h=r.params,f=t[n],m=[],p={id:n,data:s,loaderData:s,meta:[],params:r.params,pathname:r.pathname,handle:r.route.handle,error:l};if(d[e]=p,f?.meta?m="function"==typeof f.meta?f.meta({data:s,loaderData:s,params:h,location:o,matches:d,error:l}):Array.isArray(f.meta)?[...f.meta]:f.meta:c&&(m=[...c]),!Array.isArray(m=m||[]))throw Error("The route at "+r.route.path+" returns an invalid value. All route meta functions must return an array of meta objects.\n\nTo reference the meta function API, see https://remix.run/route/meta");p.meta=m,d[e]=p,c=u=[...m]}return s.createElement(s.Fragment,null,u.flat().map(e=>{if(!e)return null;if("tagName"in e){var t;let{tagName:r,...n}=e;return"string"==typeof(t=r)&&/^(meta|link)$/.test(t)?s.createElement(r,{key:JSON.stringify(n),...n}):(console.warn(`A meta object uses an invalid tagName: ${r}. Expected either 'link' or 'meta'`),null)}if("title"in e)return s.createElement("title",{key:"title"},String(e.title));if("charset"in e&&(e.charSet??(e.charSet=e.charset),delete e.charset),"charSet"in e&&null!=e.charSet)return"string"==typeof e.charSet?s.createElement("meta",{key:"charSet",charSet:e.charSet}):null;if("script:ld+json"in e)try{let t=JSON.stringify(e["script:ld+json"]);return s.createElement("script",{key:`script:ld+json:${t}`,type:"application/ld+json",dangerouslySetInnerHTML:{__html:r1(t)}})}catch(e){return null}return s.createElement("meta",{key:JSON.stringify(e),...e})}))}var nV=!1;function nG(e){let{manifest:t,serverHandoffString:r,isSpaMode:n,renderMeta:a,routeDiscovery:o,ssr:i}=nz(),{router:l,static:u,staticContext:c}=nF(),{matches:d}=nH(),h=s.useContext(tx),f=nM(o,i);a&&(a.didRenderScripts=!0);let m=nB(d,null,n);s.useEffect(()=>{nV=!0},[]);let p=s.useMemo(()=>{if(h)return null;let n=c?`window.__reactRouterContext = ${r};window.__reactRouterContext.stream = new ReadableStream({start(controller){window.__reactRouterContext.streamController = controller;}}).pipeThrough(new TextEncoderStream());`:" ",a=u?`${t.hmr?.runtime?`import ${JSON.stringify(t.hmr.runtime)};`:""}${!f?`import ${JSON.stringify(t.url)}`:""};
12
+ ${m.map((e,r)=>{let n=`route${r}`,a=t.routes[e.route.id];r2(a,`Route ${e.route.id} not found in manifest`);let{clientActionModule:o,clientLoaderModule:i,clientMiddlewareModule:s,hydrateFallbackModule:l,module:u}=a,c=[...o?[{module:o,varName:`${n}_clientAction`}]:[],...i?[{module:i,varName:`${n}_clientLoader`}]:[],...s?[{module:s,varName:`${n}_clientMiddleware`}]:[],...l?[{module:l,varName:`${n}_HydrateFallback`}]:[],{module:u,varName:`${n}_main`}];return 1===c.length?`import * as ${n} from ${JSON.stringify(u)};`:[c.map(e=>`import * as ${e.varName} from "${e.module}";`).join("\n"),`const ${n} = {${c.map(e=>`...${e.varName}`).join(",")}};`].join("\n")}).join("\n")}
13
+ ${f?`window.__reactRouterManifest = ${JSON.stringify(function({sri:e,...t},r){let n=new Set(r.state.matches.map(e=>e.route.id)),a=r.state.location.pathname.split("/").filter(Boolean),o=["/"];for(a.pop();a.length>0;)o.push(`/${a.join("/")}`),a.pop();o.forEach(e=>{let t=D(r.routes,e,r.basename);t&&t.forEach(e=>n.add(e.route.id))});let i=[...n].reduce((e,r)=>Object.assign(e,{[r]:t.routes[r]}),{});return{...t,routes:i,sri:!!e||void 0}}(t,l),null,2)};`:""}
14
+ window.__reactRouterRouteModules = {${m.map((e,t)=>`${JSON.stringify(e.route.id)}:route${t}`).join(",")}};
15
+
16
+ import(${JSON.stringify(t.entry.module)});`:" ";return s.createElement(s.Fragment,null,s.createElement("script",{...e,suppressHydrationWarning:!0,dangerouslySetInnerHTML:{__html:n},type:void 0}),s.createElement("script",{...e,suppressHydrationWarning:!0,dangerouslySetInnerHTML:{__html:a},type:"module",async:!0}))},[]),y=nV||h?[]:[...new Set(t.entry.imports.concat(ng(m,t,{includeHydrateFallback:!0})))],g="object"==typeof t.sri?t.sri:{};return rs(!h,"The <Scripts /> element is a no-op when using RSC and can be safely removed."),nV||h?null:s.createElement(s.Fragment,null,"object"==typeof t.sri?s.createElement("script",{"rr-importmap":"",type:"importmap",suppressHydrationWarning:!0,dangerouslySetInnerHTML:{__html:JSON.stringify({integrity:g})}}):null,f?null:s.createElement("link",{rel:"modulepreload",href:t.url,crossOrigin:e.crossOrigin,integrity:g[t.url],suppressHydrationWarning:!0}),s.createElement("link",{rel:"modulepreload",href:t.entry.module,crossOrigin:e.crossOrigin,integrity:g[t.entry.module],suppressHydrationWarning:!0}),y.map(t=>s.createElement("link",{key:t,rel:"modulepreload",href:t,crossOrigin:e.crossOrigin,integrity:g[t],suppressHydrationWarning:!0})),p)}var nK=class extends s.Component{constructor(e){super(e),this.state={error:e.error||null,location:e.location}}static getDerivedStateFromError(e){return{error:e}}static getDerivedStateFromProps(e,t){return t.location!==e.location?{error:e.error||null,location:e.location}:{error:e.error||t.error,location:t.location}}render(){return this.state.error?s.createElement(nZ,{error:this.state.error,isOutsideRemixApp:!0}):this.props.children}};function nZ({error:e,isOutsideRemixApp:t}){let r;console.error(e);let n=s.createElement("script",{dangerouslySetInnerHTML:{__html:`
17
+ console.log(
18
+ "\u{1F4BF} Hey developer \u{1F44B}. You can provide a way better UX than this when your app throws errors. Check out https://reactrouter.com/how-to/error-boundary for more information."
19
+ );
20
+ `}});return en(e)?s.createElement(nQ,{title:"Unhandled Thrown Response!"},s.createElement("h1",{style:{fontSize:"24px"}},e.status," ",e.statusText),n):(r=e instanceof Error?e:Error(null==e?"Unknown Error":"object"==typeof e&&"toString"in e?e.toString():JSON.stringify(e)),s.createElement(nQ,{title:"Application Error!",isOutsideRemixApp:t},s.createElement("h1",{style:{fontSize:"24px"}},"Application Error"),s.createElement("pre",{style:{padding:"2rem",background:"hsla(10, 50%, 50%, 0.1)",color:"red",overflow:"auto"}},r.stack),n))}function nQ({title:e,renderScripts:t,isOutsideRemixApp:r,children:n}){let{routeModules:a}=nz();return a.root?.Layout&&!r?n:s.createElement("html",{lang:"en"},s.createElement("head",null,s.createElement("meta",{charSet:"utf-8"}),s.createElement("meta",{name:"viewport",content:"width=device-width,initial-scale=1,viewport-fit=cover"}),s.createElement("title",null,e)),s.createElement("body",null,s.createElement("main",{style:{fontFamily:"system-ui, sans-serif",padding:"2rem"}},n,t?s.createElement(nG,null):null)))}var n0="u">typeof window&&void 0!==window.document&&void 0!==window.document.createElement;try{n0&&(window.__reactRouterVersion="7.9.6")}catch(e){}function n1(e,t){return eC({basename:t?.basename,getContext:t?.getContext,future:t?.future,history:m({window:t?.window}),hydrationData:t?.hydrationData||n4(),routes:e,mapRouteProperties:rl,hydrationRouteProperties:ru,dataStrategy:t?.dataStrategy,patchRoutesOnNavigation:t?.patchRoutesOnNavigation,window:t?.window,unstable_instrumentations:t?.unstable_instrumentations}).initialize()}function n2(e,t){return eC({basename:t?.basename,getContext:t?.getContext,future:t?.future,history:p({window:t?.window}),hydrationData:t?.hydrationData||n4(),routes:e,mapRouteProperties:rl,hydrationRouteProperties:ru,dataStrategy:t?.dataStrategy,patchRoutesOnNavigation:t?.patchRoutesOnNavigation,window:t?.window,unstable_instrumentations:t?.unstable_instrumentations}).initialize()}function n4(){let e=window?.__staticRouterHydrationData;return e&&e.errors&&(e={...e,errors:function(e){if(!e)return null;let t=Object.entries(e),r={};for(let[e,n]of t)if(n&&"RouteErrorResponse"===n.__type)r[e]=new er(n.status,n.statusText,n.data,!0===n.internal);else if(n&&"Error"===n.__type){if(n.__subType){let t=window[n.__subType];if("function"==typeof t)try{let a=new t(n.message);a.stack="",r[e]=a}catch(e){}}if(null==r[e]){let t=Error(n.message);t.stack="",r[e]=t}}else r[e]=n;return r}(e.errors)}),e}function n5({basename:e,children:t,window:r}){let n=s.useRef();null==n.current&&(n.current=m({window:r,v5Compat:!0}));let a=n.current,[o,i]=s.useState({action:a.action,location:a.location}),l=s.useCallback(e=>{s.startTransition(()=>i(e))},[i]);return s.useLayoutEffect(()=>a.listen(l),[a,l]),s.createElement(rv,{basename:e,children:t,location:o.location,navigationType:o.action,navigator:a})}function n3({basename:e,children:t,window:r}){let n=s.useRef();null==n.current&&(n.current=p({window:r,v5Compat:!0}));let a=n.current,[o,i]=s.useState({action:a.action,location:a.location}),l=s.useCallback(e=>{s.startTransition(()=>i(e))},[i]);return s.useLayoutEffect(()=>a.listen(l),[a,l]),s.createElement(rv,{basename:e,children:t,location:o.location,navigationType:o.action,navigator:a})}function n8({basename:e,children:t,history:r}){let[n,a]=s.useState({action:r.action,location:r.location}),o=s.useCallback(e=>{s.startTransition(()=>a(e))},[a]);return s.useLayoutEffect(()=>r.listen(o),[r,o]),s.createElement(rv,{basename:e,children:t,location:n.location,navigationType:n.action,navigator:r})}n8.displayName="unstable_HistoryRouter";var n9=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,n6=s.forwardRef(function({onClick:e,discover:t="render",prefetch:r="none",relative:n,reloadDocument:a,replace:o,state:i,target:l,to:u,preventScrollReset:c,viewTransition:d,...h},f){let m,{basename:p}=s.useContext(t_),y="string"==typeof u&&n9.test(u),v=!1;if("string"==typeof u&&y&&(m=u,n0))try{let e=new URL(window.location.href),t=new URL(u.startsWith("//")?e.protocol+u:u),r=H(t.pathname,p);t.origin===e.origin&&null!=r?u=r+t.search+t.hash:v=!0}catch(e){g(!1,`<Link to="${u}"> contains an invalid URL which will probably break when clicked - please update to a valid URL path.`)}let w=tO(u,{relative:n}),[b,E,R]=function(e,t){let r=s.useContext(nU),[n,a]=s.useState(!1),[o,i]=s.useState(!1),{onFocus:l,onBlur:u,onMouseEnter:c,onMouseLeave:d,onTouchStart:h}=t,f=s.useRef(null);s.useEffect(()=>{if("render"===e&&i(!0),"viewport"===e){let e=new IntersectionObserver(e=>{e.forEach(e=>{i(e.isIntersecting)})},{threshold:.5});return f.current&&e.observe(f.current),()=>{e.disconnect()}}},[e]),s.useEffect(()=>{if(n){let e=setTimeout(()=>{i(!0)},100);return()=>{clearTimeout(e)}}},[n]);let m=()=>{a(!0)},p=()=>{a(!1),i(!1)};return r?"intent"!==e?[o,f,{}]:[o,f,{onFocus:nI(l,m),onBlur:nI(u,p),onMouseEnter:nI(c,m),onMouseLeave:nI(d,p),onTouchStart:nI(h,m)}]:[!1,f,{}]}(r,h),S=ao(u,{replace:o,state:i,target:l,preventScrollReset:c,relative:n,viewTransition:d}),x=s.createElement("a",{...h,...R,href:m||w,onClick:v||a?e:function(t){e&&e(t),t.defaultPrevented||S(t)},ref:function(...e){return t=>{e.forEach(e=>{"function"==typeof e?e(t):null!=e&&(e.current=t)})}}(f,E),target:l,"data-discover":y||"render"!==t?void 0:"true"});return b&&!y?s.createElement(s.Fragment,null,x,s.createElement(nJ,{page:w})):x});n6.displayName="Link";var n7=s.forwardRef(function({"aria-current":e="page",caseSensitive:t=!1,className:r="",end:n=!1,style:a,to:o,viewTransition:i,children:l,...u},c){let d,h=tW(o,{relative:u.relative}),f=tT(),m=s.useContext(tS),{navigator:p,basename:y}=s.useContext(t_),g=null!=m&&av(h)&&!0===i,v=p.encodeLocation?p.encodeLocation(h).pathname:h.pathname,w=f.pathname,b=m&&m.navigation&&m.navigation.location?m.navigation.location.pathname:null;t||(w=w.toLowerCase(),b=b?b.toLowerCase():null,v=v.toLowerCase()),b&&y&&(b=H(b,y)||b);let E="/"!==v&&v.endsWith("/")?v.length-1:v.length,R=w===v||!n&&w.startsWith(v)&&"/"===w.charAt(E),S=null!=b&&(b===v||!n&&b.startsWith(v)&&"/"===b.charAt(v.length)),x={isActive:R,isPending:S,isTransitioning:g},C=R?e:void 0;d="function"==typeof r?r(x):[r,R?"active":null,S?"pending":null,g?"transitioning":null].filter(Boolean).join(" ");let k="function"==typeof a?a(x):a;return s.createElement(n6,{...u,"aria-current":C,className:d,ref:c,style:k,to:o,viewTransition:i},"function"==typeof l?l(x):l)});n7.displayName="NavLink";var ae=s.forwardRef(({discover:e="render",fetcherKey:t,navigate:r,reloadDocument:n,replace:a,state:o,method:i=rT,action:l,onSubmit:u,relative:c,preventScrollReset:d,viewTransition:h,...f},m)=>{let p=al(),y=au(l,{relative:c}),g="get"===i.toLowerCase()?"get":"post",v="string"==typeof l&&n9.test(l);return s.createElement("form",{ref:m,method:g,action:y,onSubmit:n?u:e=>{if(u&&u(e),e.defaultPrevented)return;e.preventDefault();let n=e.nativeEvent.submitter,s=n?.getAttribute("formmethod")||i;p(n||e.currentTarget,{fetcherKey:t,method:s,navigate:r,replace:a,state:o,relative:c,preventScrollReset:d,viewTransition:h})},...f,"data-discover":v||"render"!==e?void 0:"true"})});function at({getKey:e,storageKey:t,...r}){let n=s.useContext(nU),{basename:a}=s.useContext(t_),o=tT(),i=t5();ap({getKey:e,storageKey:t});let l=s.useMemo(()=>{if(!n||!e)return null;let t=am(o,i,a,e);return t!==o.key?t:null},[]);if(!n||n.isSpaMode)return null;let u=((e,t)=>{if(!window.history.state||!window.history.state.key){let e=Math.random().toString(32).slice(2);window.history.replaceState({key:e},"")}try{let r=JSON.parse(sessionStorage.getItem(e)||"{}")[t||window.history.state.key];"number"==typeof r&&window.scrollTo(0,r)}catch(t){console.error(t),sessionStorage.removeItem(e)}}).toString();return s.createElement("script",{...r,suppressHydrationWarning:!0,dangerouslySetInnerHTML:{__html:`(${u})(${JSON.stringify(t||ah)}, ${JSON.stringify(l)})`}})}function ar(e){return`${e} must be used within a data router. See https://reactrouter.com/en/main/routers/picking-a-router.`}function an(e){let t=s.useContext(tR);return y(t,ar(e)),t}function aa(e){let t=s.useContext(tS);return y(t,ar(e)),t}function ao(e,{target:t,replace:r,state:n,preventScrollReset:a,relative:o,viewTransition:i}={}){let l=tU(),u=tT(),c=tW(e,{relative:o});return s.useCallback(s=>{0!==s.button||t&&"_self"!==t||s.metaKey||s.altKey||s.ctrlKey||s.shiftKey||(s.preventDefault(),l(e,{replace:void 0!==r?r:b(u)===b(c),state:n,preventScrollReset:a,relative:o,viewTransition:i}))},[u,l,c,r,n,t,e,a,o,i])}function ai(e){g("u">typeof URLSearchParams,"You cannot use the `useSearchParams` hook in a browser that does not support the URLSearchParams API. If you need to support Internet Explorer 11, we recommend you load a polyfill such as https://github.com/ungap/url-search-params.");let t=s.useRef(rF(e)),r=s.useRef(!1),n=tT(),a=s.useMemo(()=>{var e,a;let o;return e=n.search,a=r.current?null:t.current,o=rF(e),a&&a.forEach((e,t)=>{o.has(t)||a.getAll(t).forEach(e=>{o.append(t,e)})}),o},[n.search]),o=tU(),i=s.useCallback((e,t)=>{let n=rF("function"==typeof e?e(new URLSearchParams(a)):e);r.current=!0,o("?"+n,t)},[o,a]);return[a,i]}ae.displayName="Form",at.displayName="ScrollRestoration";var as=0;function al(){let{router:e}=an("useSubmit"),{basename:t}=s.useContext(t_),r=t1("useRouteId");return s.useCallback(async(n,a={})=>{let{action:o,method:i,encType:s,formData:l,body:u}=function(e,t){let r,n,a,o,i;if(rj(e)&&"form"===e.tagName.toLowerCase()){let i=e.getAttribute("action");n=i?H(i,t):null,r=e.getAttribute("method")||rT,a=rz(e.getAttribute("enctype"))||rN,o=new FormData(e)}else if(rj(e)&&"button"===e.tagName.toLowerCase()||rj(e)&&"input"===e.tagName.toLowerCase()&&("submit"===e.type||"image"===e.type)){let i=e.form;if(null==i)throw Error('Cannot submit a <button> or <input type="submit"> without a <form>');let s=e.getAttribute("formaction")||i.getAttribute("action");if(n=s?H(s,t):null,r=e.getAttribute("formmethod")||i.getAttribute("method")||rT,a=rz(e.getAttribute("formenctype"))||rz(i.getAttribute("enctype"))||rN,o=new FormData(i,e),!function(){if(null===rH)try{new FormData(document.createElement("form"),0),rH=!1}catch(e){rH=!0}return rH}()){let{name:t,type:r,value:n}=e;if("image"===r){let e=t?`${t}.`:"";o.append(`${e}x`,"0"),o.append(`${e}y`,"0")}else t&&o.append(t,n)}}else if(rj(e))throw Error('Cannot submit element that is not <form>, <button>, or <input type="submit|image">');else r=rT,n=null,a=rN,i=e;return o&&"text/plain"===a&&(i=o,o=void 0),{action:n,method:r.toLowerCase(),encType:a,formData:o,body:i}}(n,t);if(!1===a.navigate){let t=a.fetcherKey||`__${String(++as)}__`;await e.fetch(t,r,a.action||o,{preventScrollReset:a.preventScrollReset,formData:l,body:u,formMethod:a.method||i,formEncType:a.encType||s,flushSync:a.flushSync})}else await e.navigate(a.action||o,{preventScrollReset:a.preventScrollReset,formData:l,body:u,formMethod:a.method||i,formEncType:a.encType||s,replace:a.replace,state:a.state,fromRouteId:r,flushSync:a.flushSync,viewTransition:a.viewTransition})},[e,t,r])}function au(e,{relative:t}={}){let{basename:r}=s.useContext(t_),n=s.useContext(tA);y(n,"useFormAction must be used inside a RouteContext");let[a]=n.matches.slice(-1),o={...tW(e||".",{relative:t})},i=tT();if(null==e){o.search=i.search;let e=new URLSearchParams(o.search),t=e.getAll("index");if(t.some(e=>""===e)){e.delete("index"),t.filter(e=>e).forEach(t=>e.append("index",t));let r=e.toString();o.search=r?`?${r}`:""}}return(!e||"."===e)&&a.route.index&&(o.search=o.search?o.search.replace(/^\?/,"?index&"):"?index"),"/"!==r&&(o.pathname="/"===o.pathname?r:Y([r,o.pathname])),b(o)}function ac({key:e}={}){let{router:t}=an("useFetcher"),r=aa("useFetcher"),n=s.useContext(tk),a=s.useContext(tA),o=a.matches[a.matches.length-1]?.route.id;y(n,"useFetcher must be used inside a FetchersContext"),y(a,"useFetcher must be used inside a RouteContext"),y(null!=o,'useFetcher can only be used on routes that contain a unique "id"');let i=s.useId(),[l,u]=s.useState(e||i);e&&e!==l&&u(e),s.useEffect(()=>(t.getFetcher(l),()=>t.deleteFetcher(l)),[t,l]);let c=s.useCallback(async(e,r)=>{y(o,"No routeId available for fetcher.load()"),await t.fetch(l,o,e,r)},[l,o,t]),d=al(),h=s.useCallback(async(e,t)=>{await d(e,{...t,navigate:!1,fetcherKey:l})},[l,d]),f=s.useCallback(e=>t.resetFetcher(l,e),[t,l]),m=s.useMemo(()=>{let e=s.forwardRef((e,t)=>s.createElement(ae,{...e,navigate:!1,fetcherKey:l,ref:t}));return e.displayName="fetcher.Form",e},[l]),p=r.fetchers.get(l)||eb,g=n.get(l);return s.useMemo(()=>({Form:m,submit:h,load:c,unstable_reset:f,...p,data:g}),[m,h,c,f,p,g])}function ad(){return Array.from(aa("useFetchers").fetchers.entries()).map(([e,t])=>({...t,key:e}))}var ah="react-router-scroll-positions",af={};function am(e,t,r,n){let a=null;return n&&(a=n("/"!==r?{...e,pathname:H(e.pathname,r)||e.pathname}:e,t)),null==a&&(a=e.key),a}function ap({getKey:e,storageKey:t}={}){let{router:r}=an("useScrollRestoration"),{restoreScrollPosition:n,preventScrollReset:a}=aa("useScrollRestoration"),{basename:o}=s.useContext(t_),i=tT(),l=t5(),u=t2();s.useEffect(()=>(window.history.scrollRestoration="manual",()=>{window.history.scrollRestoration="auto"}),[]),function(e){let{capture:t}={};s.useEffect(()=>{let r=null!=t?{capture:t}:void 0;return window.addEventListener("pagehide",e,r),()=>{window.removeEventListener("pagehide",e,r)}},[e,t])}(s.useCallback(()=>{"idle"===u.state&&(af[am(i,l,o,e)]=window.scrollY);try{sessionStorage.setItem(t||ah,JSON.stringify(af))}catch(e){g(!1,`Failed to save scroll positions in sessionStorage, <ScrollRestoration /> will not work properly (${e}).`)}window.history.scrollRestoration="auto"},[u.state,e,o,i,l,t])),"u">typeof document&&(s.useLayoutEffect(()=>{try{let e=sessionStorage.getItem(t||ah);e&&(af=JSON.parse(e))}catch(e){}},[t]),s.useLayoutEffect(()=>{let t=r?.enableScrollRestoration(af,()=>window.scrollY,e?(t,r)=>am(t,r,o,e):void 0);return()=>t&&t()},[r,o,e]),s.useLayoutEffect(()=>{if(!1!==n){if("number"==typeof n)return void window.scrollTo(0,n);try{if(i.hash){let e=document.getElementById(decodeURIComponent(i.hash.slice(1)));if(e)return void e.scrollIntoView()}}catch{g(!1,`"${i.hash.slice(1)}" is not a decodable element ID. The view will not scroll to it.`)}!0!==a&&window.scrollTo(0,0)}},[i,n,a]))}function ay(e,t){let{capture:r}=t||{};s.useEffect(()=>{let t=null!=r?{capture:r}:void 0;return window.addEventListener("beforeunload",e,t),()=>{window.removeEventListener("beforeunload",e,t)}},[e,r])}function ag({when:e,message:t}){let r=rr(e);s.useEffect(()=>{"blocked"===r.state&&(window.confirm(t)?setTimeout(r.proceed,0):r.reset())},[r,t]),s.useEffect(()=>{"blocked"!==r.state||e||r.reset()},[r,e])}function av(e,{relative:t}={}){let r=s.useContext(tC);y(null!=r,"`useViewTransitionState` must be used within `react-router-dom`'s `RouterProvider`. Did you accidentally import `RouterProvider` from `react-router`?");let{basename:n}=an("useViewTransitionState"),a=tW(e,{relative:t});if(!r.isTransitioning)return!1;let o=H(r.currentLocation.pathname,n)||r.currentLocation.pathname,i=H(r.nextLocation.pathname,n)||r.nextLocation.pathname;return null!=N(a.pathname,i)||null!=N(a.pathname,o)}function aw({basename:e,children:t,location:r="/"}){"string"==typeof r&&(r=E(r));let n={pathname:r.pathname||"/",search:r.search||"",hash:r.hash||"",state:null!=r.state?r.state:null,key:r.key||"default"},a=aR();return s.createElement(rv,{basename:e,children:t,location:n,navigationType:"POP",navigator:a,static:!0})}function ab({context:e,router:t,hydrate:r=!0,nonce:n}){y(t&&e,"You must provide `router` and `context` to <StaticRouterProvider>");let a={router:t,navigator:aR(),static:!0,staticContext:e,basename:e.basename||"/"},o=new Map,i="";if(!1!==r){let t=JSON.stringify(JSON.stringify({loaderData:e.loaderData,actionData:e.actionData,errors:function(e){if(!e)return null;let t=Object.entries(e),r={};for(let[e,n]of t)en(n)?r[e]={...n,__type:"RouteErrorResponse"}:n instanceof Error?r[e]={message:n.message,__type:"Error",..."Error"!==n.name?{__subType:n.name}:{}}:r[e]=n;return r}(e.errors)})).replace(a_,e=>aL[e]);i=`window.__staticRouterHydrationData = JSON.parse(${t});`}let{state:l}=a.router;return s.createElement(s.Fragment,null,s.createElement(tR.Provider,{value:a},s.createElement(tS.Provider,{value:l},s.createElement(tk.Provider,{value:o},s.createElement(tC.Provider,{value:{isTransitioning:!1}},s.createElement(rv,{basename:a.basename,location:l.location,navigationType:l.historyAction,navigator:a.navigator,static:a.static},s.createElement(aE,{routes:t.routes,future:t.future,state:l})))))),i?s.createElement("script",{suppressHydrationWarning:!0,nonce:n,dangerouslySetInnerHTML:{__html:i}}):null)}function aE({routes:e,future:t,state:r}){return tY(e,void 0,r,void 0,t)}function aR(){return{createHref:aC,encodeLocation:ak,push(e){throw Error(`You cannot use navigator.push() on the server because it is a stateless environment. This error was probably triggered when you did a \`navigate(${JSON.stringify(e)})\` somewhere in your app.`)},replace(e){throw Error(`You cannot use navigator.replace() on the server because it is a stateless environment. This error was probably triggered when you did a \`navigate(${JSON.stringify(e)}, { replace: true })\` somewhere in your app.`)},go(e){throw Error(`You cannot use navigator.go() on the server because it is a stateless environment. This error was probably triggered when you did a \`navigate(${e})\` somewhere in your app.`)},back(){throw Error("You cannot use navigator.back() on the server because it is a stateless environment.")},forward(){throw Error("You cannot use navigator.forward() on the server because it is a stateless environment.")}}}function aS(e,t){return ek(e,{...t,mapRouteProperties:rl})}function ax(e,t,r={}){let n={},a=L(e,rl,void 0,n),o=t.matches.map(e=>{let t=n[e.route.id]||e.route;return{...e,route:t}}),i=e=>`You cannot use router.${e}() on the server because it is a stateless environment`;return{get basename(){return t.basename},get future(){return{v8_middleware:!1,...r?.future}},get state(){return{historyAction:"POP",location:t.location,matches:o,loaderData:t.loaderData,actionData:t.actionData,errors:t.errors,initialized:!0,navigation:ew,restoreScrollPosition:null,preventScrollReset:!1,revalidation:"idle",fetchers:new Map,blockers:new Map}},get routes(){return a},get window(){return},initialize(){throw i("initialize")},subscribe(){throw i("subscribe")},enableScrollRestoration(){throw i("enableScrollRestoration")},navigate(){throw i("navigate")},fetch(){throw i("fetch")},revalidate(){throw i("revalidate")},createHref:aC,encodeLocation:ak,getFetcher:()=>eb,deleteFetcher(){throw i("deleteFetcher")},resetFetcher(){throw i("resetFetcher")},dispose(){throw i("dispose")},getBlocker:()=>eE,deleteBlocker(){throw i("deleteBlocker")},patchRoutes(){throw i("patchRoutes")},_internalFetchControllers:new Map,_internalSetRoutes(){throw i("_internalSetRoutes")},_internalSetStateDoNotUseOrYouWillBreakYourApp(){throw i("_internalSetStateDoNotUseOrYouWillBreakYourApp")}}}function aC(e){return"string"==typeof e?e:b(e)}function ak(e){let t="string"==typeof e?e:b(e),r=aP.test(t=t.replace(/ $/,"%20"))?new URL(t):new URL(t,"http://localhost");return{pathname:r.pathname,search:r.search,hash:r.hash}}var aP=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,aL={"&":"\\u0026",">":"\\u003e","<":"\\u003c","\u2028":"\\u2028","\u2029":"\\u2029"},a_=/[&><\u2028\u2029]/g,aD=r(5196),aA=r(2964);function aM({context:e,url:t,nonce:r}){"string"==typeof t&&(t=new URL(t));let{manifest:n,routeModules:a,criticalCss:o,serverHandoffString:i}=e,l=function e(t,r,n,a,o="",i=nb(t),s=Promise.resolve({Component:()=>null})){return(i[o]||[]).map(o=>{let l=r[o.id];r2(l,"No `routeModule` available to create server routes");let u={...nE(o,l,a),caseSensitive:o.caseSensitive,id:o.id,index:o.index,path:o.path,handle:l.handle,lazy:a?()=>s:void 0,loader:o.hasLoader||o.hasClientLoader?()=>null:void 0},c=e(t,r,n,a,o.id,i,s);return c.length>0&&(u.children=c),u})}(n.routes,a,e.future,e.isSpaMode);for(let t of(e.staticHandlerContext.loaderData={...e.staticHandlerContext.loaderData},e.staticHandlerContext.matches)){let r=t.route.id,n=a[r],o=e.manifest.routes[r];n&&o&&n_(r,n.clientLoader,o.hasLoader,e.isSpaMode)&&(n.HydrateFallback||!o.hasLoader)&&delete e.staticHandlerContext.loaderData[r]}let u=ax(l,e.staticHandlerContext);return s.createElement(s.Fragment,null,s.createElement(nU.Provider,{value:{manifest:n,routeModules:a,criticalCss:o,serverHandoffString:i,future:e.future,ssr:e.ssr,isSpaMode:e.isSpaMode,routeDiscovery:e.routeDiscovery,serializeError:e.serializeError,renderMeta:e.renderMeta}},s.createElement(nK,{location:u.state.location},s.createElement(ab,{router:u,context:e.staticHandlerContext,hydrate:!1}))),e.serverHandoffStream?s.createElement(s.Suspense,null,s.createElement(r8,{context:e,identifier:0,reader:e.serverHandoffStream.getReader(),textDecoder:new TextDecoder,nonce:r})):null)}function aO(e,t){return function({initialEntries:r,initialIndex:n,hydrationData:a,future:o}){let i=s.useRef(),l=s.useRef();return null==i.current&&(l.current={future:{unstable_subResourceIntegrity:o?.unstable_subResourceIntegrity===!0,v8_middleware:o?.v8_middleware===!0},manifest:{routes:{},entry:{imports:[],module:""},url:"",version:""},routeModules:{},ssr:!1,isSpaMode:!1,routeDiscovery:{mode:"lazy",manifestPath:"/__manifest"}},i.current=rc(function e(t,r,n,a,o){return t.map(t=>{if(!t.id)throw Error("Expected a route.id in react-router processRoutes() function");let i={id:t.id,path:t.path,index:t.index,Component:t.Component?rL(t.Component):void 0,HydrateFallback:t.HydrateFallback?rA(t.HydrateFallback):void 0,ErrorBoundary:t.ErrorBoundary?r$(t.ErrorBoundary):void 0,action:t.action?e=>t.action({...e,context:r}):void 0,loader:t.loader?e=>t.loader({...e,context:r}):void 0,middleware:t.middleware?t.middleware.map(e=>(...t)=>e({...t[0],context:r},t[1])):void 0,handle:t.handle,shouldRevalidate:t.shouldRevalidate},s={id:t.id,path:t.path,index:t.index,parentId:o,hasAction:null!=t.action,hasLoader:null!=t.loader,hasClientAction:!1,hasClientLoader:!1,hasClientMiddleware:!1,hasErrorBoundary:null!=t.ErrorBoundary,module:"build/stub-path-to-module.js",clientActionModule:void 0,clientLoaderModule:void 0,clientMiddlewareModule:void 0,hydrateFallbackModule:void 0};return n.routes[i.id]=s,a[t.id]={default:i.Component||ry,ErrorBoundary:i.ErrorBoundary||void 0,handle:t.handle,links:t.links,meta:t.meta,shouldRevalidate:t.shouldRevalidate},t.children&&(i.children=e(t.children,r,n,a,i.id)),i})}(L(e,e=>e),void 0!==t?t:o?.v8_middleware?new C:{},l.current.manifest,l.current.routeModules),{initialEntries:r,initialIndex:n,hydrationData:a})),s.createElement(nU.Provider,{value:l.current},s.createElement(rh,{router:i.current}))}}var a$=new TextEncoder,aT=async(e,t)=>{let r=a$.encode(e),n=await aj(t,["sign"]);return e+"."+btoa(String.fromCharCode(...new Uint8Array(await crypto.subtle.sign("HMAC",n,r)))).replace(/=+$/,"")},aN=async(e,t)=>{let r=e.lastIndexOf("."),n=e.slice(0,r),a=e.slice(r+1),o=a$.encode(n),i=await aj(t,["verify"]);try{let e=function(e){let t=new Uint8Array(e.length);for(let r=0;r<e.length;r++)t[r]=e.charCodeAt(r);return t}(atob(a));return!!await crypto.subtle.verify("HMAC",i,e,o)&&n}catch(e){return!1}},aj=async(e,t)=>crypto.subtle.importKey("raw",a$.encode(e),{name:"HMAC",hash:"SHA-256"},!1,t),aF=(e,t={})=>{var r;let{secrets:n=[],...a}={path:"/",sameSite:"lax",...t};return r=e,rs(!a.expires,`The "${r}" cookie has an "expires" property set. This will cause the expires value to not be updated when the session is committed. Instead, you should set the expires value when serializing the cookie. You can use \`commitSession(session, { expires })\` if using a session storage object, or \`cookie.serialize("value", { expires })\` if you're using the cookie directly.`),{get name(){return e},get isSigned(){return n.length>0},get expires(){return void 0!==a.maxAge?new Date(Date.now()+1e3*a.maxAge):a.expires},async parse(t,r){if(!t)return null;let o=(0,aD.parse)(t,{...a,...r});if(!(e in o))return null;{let t=o[e];return"string"==typeof t&&""!==t?await az(t,n):""}},serialize:async(t,r)=>(0,aD.serialize)(e,""===t?"":await aU(t,n),{...a,...r})}},aH=e=>null!=e&&"string"==typeof e.name&&"boolean"==typeof e.isSigned&&"function"==typeof e.parse&&"function"==typeof e.serialize;async function aU(e,t){let r=btoa(function(e){let t,r,n=e.toString(),a="",o=0;for(;o<n.length;){if("%"===(t=n.charAt(o++))){if("u"===n.charAt(o)){if(r=n.slice(o+1,o+5),/^[\da-f]{4}$/i.exec(r)){a+=String.fromCharCode(parseInt(r,16)),o+=5;continue}}else if(r=n.slice(o,o+2),/^[\da-f]{2}$/i.exec(r)){a+=String.fromCharCode(parseInt(r,16)),o+=2;continue}}a+=t}return a}(encodeURIComponent(JSON.stringify(e))));return t.length>0&&(r=await aT(r,t[0])),r}async function az(e,t){if(t.length>0){for(let r of t){let t=await aN(e,r);if(!1!==t)return aI(t)}return null}return aI(e)}function aI(e){try{return JSON.parse(decodeURIComponent(function(e){let t,r,n=e.toString(),a="",o=0;for(;o<n.length;)t=n.charAt(o++),/[\w*+\-./@]/.exec(t)?a+=t:(r=t.charCodeAt(0))<256?a+="%"+aB(r,2):a+="%u"+aB(r,4).toUpperCase();return a}(atob(e))))}catch(e){return{}}}function aB(e,t){let r=e.toString(16);for(;r.length<t;)r="0"+r;return r}var aq=((a=aq||{}).Development="development",a.Production="production",a.Test="test",a);function aW(e,t){if(e instanceof Error&&"development"!==t){let e=Error("Unexpected Server Error");return e.stack=void 0,e}return e}function aJ(e,t){return Object.entries(e).reduce((e,[r,n])=>Object.assign(e,{[r]:aW(n,t)}),{})}function aY(e,t){let r=aW(e,t);return{message:r.message,stack:r.stack}}function aX(e,t){if(!e)return null;let r=Object.entries(e),n={};for(let[e,a]of r)if(en(a))n[e]={...a,__type:"RouteErrorResponse"};else if(a instanceof Error){let r=aW(a,t);n[e]={message:r.message,stack:r.stack,__type:"Error",..."Error"!==r.name?{__subType:r.name}:{}}}else n[e]=a;return n}function aV(e,t,r){let n=D(e,t,r);return n?n.map(e=>({params:e.params,pathname:e.pathname,route:e.route})):null}async function aG(e,t){var r;let n,a,o=await e({request:(r=function(e){let t=new URL(e.url),r=t.searchParams.getAll("index");t.searchParams.delete("index");let n=[];for(let e of r)e&&n.push(e);for(let e of n)t.searchParams.append("index",e);let a={method:e.method,body:e.body,headers:e.headers,signal:e.signal};return a.body&&(a.duplex="half"),new Request(t.href,a)}(t.request),(n=new URL(r.url)).searchParams.delete("_routes"),(a={method:r.method,body:r.body,headers:r.headers,signal:r.signal}).body&&(a.duplex="half"),new Request(n.href,a)),params:t.params,context:t.context,unstable_pattern:t.unstable_pattern});if(tc(o)&&o.init&&o.init.status&&th(o.init.status))throw new Response(null,o.init);return o}function aK(e,t){if(!1===e||null==e)throw console.error("The following error is a bug in React Router; please open an issue! https://github.com/remix-run/react-router/issues/new/choose"),Error(t)}var aZ="__reactRouterDevServerHooks";function aQ(e){globalThis[aZ]=e}function a0(){return globalThis[aZ]}function a1(e,t){if("u">typeof process)try{if(process.env?.IS_RR_BUILD_REQUEST==="yes")return e.headers.get(t)}catch(e){}return null}function a2(e){let t={};return Object.values(e).forEach(e=>{if(e){let r=e.parentId||"";t[r]||(t[r]=[]),t[r].push(e)}}),t}function a4(e){return r1(JSON.stringify(e))}function a5(e,t){return function(e,t){let r,n=e.errors?e.matches.findIndex(t=>e.errors[t.route.id]):-1,a=n>=0?e.matches.slice(0,n+1):e.matches;if(n>=0){let{actionHeaders:t,actionData:a,loaderHeaders:o,loaderData:i}=e;e.matches.slice(n).some(e=>{let n=e.route.id;return!t[n]||a&&a.hasOwnProperty(n)?o[n]&&!i.hasOwnProperty(n)&&(r=o[n]):r=t[n],null!=r})}let o=new Headers(void 0);return a.reduce((n,o,i)=>{let{id:s}=o.route,l=e.loaderHeaders[s]||new Headers,u=e.actionHeaders[s]||new Headers,c=null!=r&&i===a.length-1,d=c&&r!==l&&r!==u,h=t(o);if(null==h){let e=new Headers(n);return d&&a3(r,e),a3(u,e),a3(l,e),e}let f=new Headers("function"==typeof h?h({loaderHeaders:l,parentHeaders:n,actionHeaders:u,errorHeaders:c?r:void 0}):h);return d&&a3(r,f),a3(u,f),a3(l,f),a3(n,f),f},new Headers(o))}(e,e=>{let r=t.routes[e.route.id];return aK(r,`Route with id "${e.route.id}" not found in build`),r.module.headers})}function a3(e,t){let r=e.get("Set-Cookie");if(r){let e=(0,aA.splitCookiesString)(r),n=new Set(t.getSetCookie());e.forEach(e=>{n.has(e)||t.append("Set-Cookie",e)})}}var a8=new Set([...r3,304]);async function a9(e,t,r,n,a,o,i){try{var s;let t=new Request(a,{method:n.method,body:n.body,headers:n.headers,signal:n.signal,...n.body?{duplex:"half"}:void 0});return s=await r.query(t,{requestContext:o,skipLoaderErrorBubbling:!0,skipRevalidation:!0,generateMiddlewareResponse:e.future.v8_middleware?async e=>{try{var r;return r=await e(t),td(r)?r:u(r)}catch(e){return l(e)}}:void 0}),td(s)?s:u(s)}catch(e){return l(e)}function l(r){return i(r),a7(n,e,t,{result:{error:r},headers:new Headers,status:500})}function u(r){let a=a5(r,e);return th(r.statusCode)&&a.has("Location")?new Response(null,{status:r.statusCode,headers:a}):(r.errors&&(Object.values(r.errors).forEach(e=>{(!en(e)||e.error)&&i(e)}),r.errors=aJ(r.errors,t)),a7(n,e,t,{result:r.errors?{error:Object.values(r.errors)[0]}:{data:Object.values(r.actionData||{})[0]},headers:a,status:r.statusCode}))}}async function a6(e,t,r,n,a,o,i){let s=new URL(n.url).searchParams.get("_routes"),l=s?new Set(s.split(",")):null;try{var u;let t=new Request(a,{headers:n.headers,signal:n.signal});return u=await r.query(t,{requestContext:o,filterMatchesToLoad:e=>!l||l.has(e.route.id),skipLoaderErrorBubbling:!0,generateMiddlewareResponse:e.future.v8_middleware?async e=>{try{var r;return r=await e(t),td(r)?r:d(r)}catch(e){return c(e)}}:void 0}),td(u)?u:d(u)}catch(e){return c(e)}function c(r){return i(r),a7(n,e,t,{result:{error:r},headers:new Headers,status:500})}function d(r){let a=a5(r,e);if(th(r.statusCode)&&a.has("Location"))return new Response(null,{status:r.statusCode,headers:a});r.errors&&(Object.values(r.errors).forEach(e=>{(!en(e)||e.error)&&i(e)}),r.errors=aJ(r.errors,t));let o={},s=new Set(r.matches.filter(e=>l?l.has(e.route.id):null!=e.route.loader).map(e=>e.route.id));if(r.errors)for(let[e,t]of Object.entries(r.errors))o[e]={error:t};for(let[e,t]of Object.entries(r.loaderData))!(e in o)&&s.has(e)&&(o[e]={data:t});return a7(n,e,t,{result:o,headers:a,status:r.statusCode})}}function a7(e,t,r,{result:n,headers:a,status:o}){let i=new Headers(a);return(i.set("X-Remix-Response","yes"),a8.has(o))?new Response(null,{status:o,headers:i}):(i.set("Content-Type","text/x-script"),i.delete("Content-Length"),new Response(ot(n,e.signal,t.entry.module.streamTimeout,r),{status:o||200,headers:i}))}function oe(e,t,r,n){var a,o,i;let s,l=(a=e.status,o=e.headers,i=r.basename,s=o.get("Location"),i&&(s=H(s,i)||s),{redirect:s,status:a,revalidate:o.has("X-Remix-Revalidate")||o.has("Set-Cookie"),reload:o.has("X-Remix-Reload-Document"),replace:o.has("X-Remix-Replace")}),u=new Headers(e.headers);return u.delete("Location"),u.set("Content-Type","text/x-script"),a7(t,r,n,{result:"GET"===t.method?{[r4]:l}:l,headers:u,status:202})}function ot(e,t,r,n){let a=new AbortController,o=setTimeout(()=>a.abort(Error("Server Timeout")),"number"==typeof r?r:4950);return t.addEventListener("abort",()=>clearTimeout(o)),function(e,t){let{plugins:r,postPlugins:n,signal:a}=t??{},o={deferred:{},index:0,indices:new Map,stringified:[],plugins:r,postPlugins:n,signal:a},i=new TextEncoder,s=0;return new ReadableStream({async start(t){let r=rB.call(o,e);if(Array.isArray(r))throw Error("This should never happen");r<0?t.enqueue(i.encode(`${r}
21
+ `)):(t.enqueue(i.encode(`[${o.stringified.join(",")}]
22
+ `)),s=o.stringified.length-1);let n=new WeakSet;if(Object.keys(o.deferred).length){let e,r=new Promise((t,r)=>{if(e=t,a){let e=()=>r(a.reason||Error("Signal was aborted."));a.aborted?e():a.addEventListener("abort",t=>{e()})}});for(;Object.keys(o.deferred).length>0;){for(let[e,a]of Object.entries(o.deferred))n.has(a)||n.add(o.deferred[Number(e)]=Promise.race([r,a]).then(r=>{let n=rB.call(o,r);if(Array.isArray(n))t.enqueue(i.encode(`P${e}:[["Z",${n[0]}]]
23
+ `)),o.index++,s++;else if(n<0)t.enqueue(i.encode(`P${e}:${n}
24
+ `));else{let r=o.stringified.slice(s+1).join(",");t.enqueue(i.encode(`P${e}:[${r}]
25
+ `)),s=o.stringified.length-1}},r=>{r&&"object"==typeof r&&r instanceof Error||(r=Error("An unknown error occurred"));let n=rB.call(o,r);if(Array.isArray(n))t.enqueue(i.encode(`E${e}:[["Z",${n[0]}]]
26
+ `)),o.index++,s++;else if(n<0)t.enqueue(i.encode(`E${e}:${n}
27
+ `));else{let r=o.stringified.slice(s+1).join(",");t.enqueue(i.encode(`E${e}:[${r}]
28
+ `)),s=o.stringified.length-1}}).finally(()=>{delete o.deferred[Number(e)]}));await Promise.race(Object.values(o.deferred))}e()}await Promise.all(Object.values(o.deferred)),t.close()}})}(e,{signal:a.signal,plugins:[e=>{if(e instanceof Error){let{name:t,message:r,stack:a}="production"===n?aW(e,n):e;return["SanitizedError",t,r,a]}if(e instanceof er){let{data:t,status:r,statusText:n}=e;return["ErrorResponse",t,r,n]}if(e&&"object"==typeof e&&r4 in e)return["SingleFetchRedirect",e[r4]]}],postPlugins:[e=>{if(e&&"object"==typeof e)return["SingleFetchClassInstance",Object.fromEntries(Object.entries(e))]},()=>["SingleFetchFallback"]]})}function or(e,t){var r,n;let a,o,i=function e(t,r="",n=a2(t)){return(n[r]||[]).map(r=>({...r,children:e(t,r.id,n)}))}(e.routes),s=function e(t,r,n="",a=a2(t)){return(a[n]||[]).map(n=>{let o={hasErrorBoundary:"root"===n.id||null!=n.module.ErrorBoundary,id:n.id,path:n.path,middleware:n.module.middleware,loader:n.module.loader?async e=>{let t=a1(e.request,"X-React-Router-Prerender-Data");if(null!=t){let e=t?decodeURI(t):t;aK(e,"Missing prerendered data for route");let r=new TextEncoder().encode(e),a=new ReadableStream({start(e){e.enqueue(r),e.close()}}),o=(await no(a,global)).value;if(o&&r4 in o){let e=o[r4],t={status:e.status};if(e.reload)throw ee(e.redirect,t);if(e.replace)throw et(e.redirect,t);throw Q(e.redirect,t)}{aK(o&&n.id in o,"Unable to decode prerendered data");let e=o[n.id];return aK("data"in e,"Unable to process prerendered data"),e.data}}return await aG(n.module.loader,e)}:void 0,action:n.module.action?e=>aG(n.module.action,e):void 0,handle:n.module.handle};return n.index?{index:!0,...o}:{caseSensitive:n.caseSensitive,children:e(t,r,n.id,a),...o}})}(e.routes,e.future),l="development"===t||"production"===t||"test"===t?t:"production",u=ek(s,{basename:e.basename,unstable_instrumentations:e.entry.module.unstable_instrumentations}),c=e.entry.module.handleError||((e,{request:t})=>{"test"===l||t.signal.aborted||console.error(en(e)&&e.error?e.error:e)}),d=async(r,n)=>{let a,o,s={},d=e=>{"development"===t&&a0()?.processRequestError?.(e),c(e,{context:a,params:s,request:r})};if(e.future.v8_middleware){if(n&&!(n instanceof C)){let e=Error("Invalid `context` value provided to `handleRequest`. When middleware is enabled you must return an instance of `RouterContextProvider` from your `getLoadContext` function.");return d(e),ol(e,l)}a=n||new C}else a=n||{};let h=new URL(r.url),f=e.basename||"/",m=h.pathname;"/_root.data"===H(m,f)?m=f:m.endsWith(".data")&&(m=m.replace(/\.data$/,"")),"/"!==H(m,f)&&m.endsWith("/")&&(m=m.slice(0,-1));let p="yes"===a1(r,"X-React-Router-SPA-Mode");if(!e.ssr){let t=decodeURI(m);if("/"!==f){let e=H(t,f);if(null==e)return c(new er(404,"Not Found",`Refusing to prerender the \`${t}\` path because it does not start with the basename \`${f}\``),{context:a,params:s,request:r}),new Response("Not Found",{status:404,statusText:"Not Found"});t=e}if(0===e.prerender.length)p=!0;else if(!e.prerender.includes(t)&&!e.prerender.includes(t+"/"))if(h.pathname.endsWith(".data"))return c(new er(404,"Not Found",`Refusing to SSR the path \`${t}\` because \`ssr:false\` is set and the path is not included in the \`prerender\` config, so in production the path will be a 404.`),{context:a,params:s,request:r}),new Response("Not Found",{status:404,statusText:"Not Found"});else p=!0}let y=nT(e.routeDiscovery.manifestPath,f);if(h.pathname===y)try{return await oa(e,i,h)}catch(e){return d(e),new Response("Unknown Server Error",{status:500})}let g=aV(i,m,e.basename);if(g&&g.length>0&&Object.assign(s,g[0].params),h.pathname.endsWith(".data")){let t=new URL(r.url);t.pathname=m;let n=aV(i,t.pathname,e.basename);tf(o=await oo(l,e,u,r,t,a,d))&&(o=oe(o,r,e,l)),e.entry.module.handleDataRequest&&tf(o=await e.entry.module.handleDataRequest(o,{context:a,params:n?n[0].params:{},request:r}))&&(o=oe(o,r,e,l))}else if(!p&&g&&null==g[g.length-1].route.module.default&&null==g[g.length-1].route.module.ErrorBoundary)o=await os(l,e,u,g.slice(-1)[0].route.id,r,a,d);else{let n,{pathname:i}=h;e.unstable_getCriticalCss?n=await e.unstable_getCriticalCss({pathname:i}):"development"===t&&a0()?.getCriticalCss&&(n=await a0()?.getCriticalCss?.(i)),o=await oi(l,e,u,r,a,d,p,n)}return"HEAD"===r.method?new Response(null,{headers:o.headers,status:o.status,statusText:o.statusText}):o};return e.entry.module.unstable_instrumentations&&(r=d,n=e.entry.module.unstable_instrumentations.map(e=>e.handler).filter(Boolean),a={request:[]},n.forEach(e=>e({instrument(e){for(let t of Object.keys(e))e[t]&&a[t].push(e[t])}})),o=r,a.request.length>0&&(o=es(a.request,r,(...e)=>{let[t,r]=e;return{request:ed(t),context:null!=r?eh(r):r}})),d=o),{routes:i,dataRoutes:s,serverMode:l,staticHandler:u,errorHandler:c,requestHandler:d}}var on=(e,t)=>{let r,n,a,o,i,s;return async function(l,u){if(r="function"==typeof e?await e():e,"function"==typeof e){let e=or(r,t);n=e.routes,a=e.serverMode,o=e.staticHandler,i=e.errorHandler,s=e.requestHandler}else if(!n||!a||!o||!i||!s){let e=or(r,t);n=e.routes,a=e.serverMode,o=e.staticHandler,i=e.errorHandler,s=e.requestHandler}return s(l,u)}};async function oa(e,t,r){if(e.assets.version!==r.searchParams.get("version"))return new Response(null,{status:204,headers:{"X-Remix-Reload-Document":"true"}});let n={};if(r.searchParams.has("paths")){let a=new Set;for(let o of((r.searchParams.get("paths")||"").split(",").filter(Boolean).forEach(e=>{e.startsWith("/")||(e=`/${e}`);let t=e.split("/").slice(1);t.forEach((e,r)=>{let n=t.slice(0,r+1).join("/");a.add(`/${n}`)})}),a)){let r=aV(t,o,e.basename);if(r)for(let t of r){let r=t.route.id,a=e.assets.routes[r];a&&(n[r]=a)}}return Response.json(n,{headers:{"Cache-Control":"public, max-age=31536000, immutable"}})}return new Response("Invalid Request",{status:400})}async function oo(e,t,r,n,a,o,i){return"GET"!==n.method?await a9(t,e,r,n,a,o,i):await a6(t,e,r,n,a,o,i)}async function oi(e,t,r,n,a,o,i,s){try{let e=await r.query(n,{requestContext:a,generateMiddlewareResponse:t.future.v8_middleware?async e=>{try{let t=await e(n);return td(t)||(t=await l(t,i)),t}catch(e){return o(e),new Response(null,{status:500})}}:void 0});return td(e)||(e=await l(e,i)),e}catch(e){return o(e),new Response(null,{status:500})}async function l(i,l){var u,c;let d=a5(i,t);if(a8.has(i.statusCode))return new Response(null,{status:i.statusCode,headers:d});i.errors&&(Object.values(i.errors).forEach(e=>{(!en(e)||e.error)&&o(e)}),i.errors=aJ(i.errors,e));let h={loaderData:i.loaderData,actionData:i.actionData,errors:aX(i.errors,e)},f={basename:t.basename,future:t.future,routeDiscovery:t.routeDiscovery,ssr:t.ssr,isSpaMode:l},m={manifest:t.assets,routeModules:Object.keys(u=t.routes).reduce((e,t)=>{let r=u[t];return r&&(e[t]=r.module),e},{}),staticHandlerContext:i,criticalCss:s,serverHandoffString:a4({...f,criticalCss:s}),serverHandoffStream:ot(h,n.signal,t.entry.module.streamTimeout,e),renderMeta:{},future:t.future,ssr:t.ssr,routeDiscovery:t.routeDiscovery,isSpaMode:l,serializeError:t=>aY(t,e)},p=t.entry.module.default;try{return await p(n,i.statusCode,d,m,a)}catch(u){o(u);let s=u;if(td(u))try{let e,t=await ((e=(c=u).headers.get("Content-Type"))&&/\bapplication\/json\b/.test(e)?null==c.body?null:c.json():c.text());s=new er(u.status,u.statusText,t)}catch(e){}(i=eP(r.dataRoutes,i,s)).errors&&(i.errors=aJ(i.errors,e));let l={loaderData:i.loaderData,actionData:i.actionData,errors:aX(i.errors,e)};m={...m,staticHandlerContext:i,serverHandoffString:a4(f),serverHandoffStream:ot(l,n.signal,t.entry.module.streamTimeout,e),renderMeta:{}};try{return await p(n,i.statusCode,d,m,a)}catch(t){return o(t),ol(t,e)}}}}async function os(e,t,r,n,a,o,i){try{let e=await r.queryRoute(a,{routeId:n,requestContext:o,generateMiddlewareResponse:t.future.v8_middleware?async e=>{try{let t=await e(a);return s(t)}catch(e){return l(e)}}:void 0});return s(e)}catch(e){return l(e)}function s(e){return td(e)?e:"string"==typeof e?new Response(e):Response.json(e)}function l(t){if(td(t))return t;if(en(t)){var r,n;return i(t),r=t,n=e,Response.json(aY(r.error||Error("Unexpected Server Error"),n),{status:r.status,statusText:r.statusText})}if(t instanceof Error&&"Expected a response from queryRoute"===t.message){let t=Error("Expected a Response to be returned from resource route handler");return i(t),ol(t,e)}return i(t),ol(t,e)}}function ol(e,t){let r="Unexpected Server Error";return"production"!==t&&(r+=`
29
+
30
+ ${String(e)}`),new Response(r,{status:500,headers:{"Content-Type":"text/plain"}})}function ou(e){return`__flash_${e}__`}var oc=(e={},t="")=>{let r=new Map(Object.entries(e));return{get id(){return t},get data(){return Object.fromEntries(r)},has:e=>r.has(e)||r.has(ou(e)),get(e){if(r.has(e))return r.get(e);let t=ou(e);if(r.has(t)){let e=r.get(t);return r.delete(t),e}},set(e,t){r.set(e,t)},flash(e,t){r.set(ou(e),t)},unset(e){r.delete(e)}}},od=e=>null!=e&&"string"==typeof e.id&&void 0!==e.data&&"function"==typeof e.has&&"function"==typeof e.get&&"function"==typeof e.set&&"function"==typeof e.flash&&"function"==typeof e.unset;function oh({cookie:e,createData:t,readData:r,updateData:n,deleteData:a}){let o=aH(e)?e:aF(e?.name||"__session",e);return of(o),{async getSession(e,t){let n=e&&await o.parse(e,t);return oc(n&&await r(n)||{},n||"")},async commitSession(e,r){let{id:a,data:i}=e,s=r?.maxAge!=null?new Date(Date.now()+1e3*r.maxAge):r?.expires!=null?r.expires:o.expires;return a?await n(a,i,s):a=await t(i,s),o.serialize(a,r)},destroySession:async(e,t)=>(await a(e.id),o.serialize("",{...t,maxAge:void 0,expires:new Date(0)}))}}function of(e){rs(e.isSigned,`The "${e.name}" cookie is not signed, but session cookies should be signed to prevent tampering on the client before they are sent back to the server. See https://reactrouter.com/explanation/sessions-and-cookies#signing-cookies for more information.`)}function om({cookie:e}={}){let t=aH(e)?e:aF(e?.name||"__session",e);return of(t),{getSession:async(e,r)=>oc(e&&await t.parse(e,r)||{}),async commitSession(e,r){let n=await t.serialize(e.data,r);if(n.length>4096)throw Error("Cookie length will exceed browser maximum. Length: "+n.length);return n},destroySession:async(e,r)=>t.serialize("",{...r,maxAge:void 0,expires:new Date(0)})}}function op({cookie:e}={}){let t=new Map;return oh({cookie:e,async createData(e,r){let n=Math.random().toString(36).substring(2,10);return t.set(n,{data:e,expires:r}),n},async readData(e){if(t.has(e)){let{data:r,expires:n}=t.get(e);if(!n||n>new Date)return r;n&&t.delete(e)}return null},async updateData(e,r,n){t.set(e,{data:r,expires:n})},async deleteData(e){t.delete(e)}})}function oy(e,...t){let r=t[0],n=e.replace(/\/*\*?$/,"").replace(/\/:([\w-]+)(\?)?/g,(t,n,a)=>{let o=r?r[n]:void 0;if(void 0===a&&void 0===o)throw Error(`Path '${e}' requires param '${n}' but it was not provided`);return void 0===o?"":"/"+o});if(e.endsWith("*")){let e=r?r["*"]:void 0;void 0!==e&&(n+="/"+e)}return n||"/"}var og=new TextEncoder,ov="</body></html>";function ow(e){let t,r=new TextDecoder,n=new Promise(e=>t=e),a=!1,o=[],i=null;function s(e){for(let t of o){let n=r.decode(t,{stream:!0});n.endsWith(ov)&&(n=n.slice(0,-ov.length)),e.enqueue(og.encode(n))}o.length=0,i=null}return new TransformStream({transform(r,n){o.push(r),i||(i=setTimeout(async()=>{s(n),a||(a=!0,ob(e,n).catch(e=>n.error(e)).then(t))},0))},async flush(e){await n,i&&(clearTimeout(i),s(e)),e.enqueue(og.encode("</body></html>"))}})}async function ob(e,t){let r=new TextDecoder("utf-8",{fatal:!0}),n=e.getReader();try{let e;for(;(e=await n.read())&&!e.done;){let n=e.value;try{oE(JSON.stringify(r.decode(n,{stream:!0})),t)}catch(r){let e=JSON.stringify(btoa(String.fromCodePoint(...n)));oE(`Uint8Array.from(atob(${e}), m => m.codePointAt(0))`,t)}}}finally{n.releaseLock()}let a=r.decode();a.length&&oE(JSON.stringify(a),t)}function oE(e,t){t.enqueue(og.encode(`<script>${`(self.__FLIGHT_DATA||=[]).push(${e})`.replace(/<!--/g,"<\\!--").replace(/<\/(script)/gi,"</\\$1")}</script>`))}var oR=class extends l().Component{constructor(e){super(e),this.state={error:null,location:e.location}}static getDerivedStateFromError(e){return{error:e}}static getDerivedStateFromProps(e,t){return t.location!==e.location?{error:null,location:e.location}:{error:t.error,location:t.location}}render(){return this.state.error?l().createElement(ox,{error:this.state.error,renderAppShell:!0}):this.props.children}};function oS({renderAppShell:e,title:t,children:r}){return e?l().createElement("html",{lang:"en"},l().createElement("head",null,l().createElement("meta",{charSet:"utf-8"}),l().createElement("meta",{name:"viewport",content:"width=device-width,initial-scale=1,viewport-fit=cover"}),l().createElement("title",null,t)),l().createElement("body",null,l().createElement("main",{style:{fontFamily:"system-ui, sans-serif",padding:"2rem"}},r))):r}function ox({error:e,renderAppShell:t}){let r;console.error(e);let n=l().createElement("script",{dangerouslySetInnerHTML:{__html:`
31
+ console.log(
32
+ "\u{1F4BF} Hey developer \u{1F44B}. You can provide a way better UX than this when your app throws errors. Check out https://reactrouter.com/how-to/error-boundary for more information."
33
+ );
34
+ `}});return en(e)?l().createElement(oS,{renderAppShell:t,title:"Unhandled Thrown Response!"},l().createElement("h1",{style:{fontSize:"24px"}},e.status," ",e.statusText),n):(r=e instanceof Error?e:Error(null==e?"Unknown Error":"object"==typeof e&&"toString"in e?e.toString():JSON.stringify(e)),l().createElement(oS,{renderAppShell:t,title:"Application Error!"},l().createElement("h1",{style:{fontSize:"24px"}},"Application Error"),l().createElement("pre",{style:{padding:"2rem",background:"hsla(10, 50%, 50%, 0.1)",color:"red",overflow:"auto"}},r.stack),n))}function oC({hasRootLayout:e}){let t=t6();if(void 0===e)throw Error("Missing 'hasRootLayout' prop");return l().createElement(ox,{renderAppShell:!e,error:t})}var ok=()=>null,oP=s.use;async function oL({request:e,fetchServer:t,createFromReadableStream:r,renderHTML:n,hydrate:a=!0}){let o,i=new URL(e.url),s=i.pathname.endsWith(".rsc")||i.pathname.endsWith(".manifest")||e.headers.has("rsc-action-id"),l=await t(e);if(s||"true"===l.headers.get("React-Router-Resource"))return l;if(!l.body)throw Error("Missing body in server response");let u=l.clone(),c=null;a&&(c=l.clone());let d=l.body,h=[],f=()=>o?new ReadableStream({start(e){o.forEach(t=>e.enqueue(t)),h.push(e)}}):(o=[],d.pipeThrough(new TransformStream({transform(e,t){o.push(e),t.enqueue(e),h.forEach(t=>t.enqueue(e))},flush(){h.forEach(e=>e.close()),h=[]}}))),m=null;try{if(!u.body)throw Error("Failed to clone server response");let e=await r(u.body);if(202===l.status&&"redirect"===e.type){let t=new Headers(l.headers);return t.delete("Content-Encoding"),t.delete("Content-Length"),t.delete("Content-Type"),t.delete("X-Remix-Response"),t.set("Location",e.location),new Response(c?.body||"",{headers:t,status:e.status,statusText:l.statusText})}let t=await n(()=>{let e=Promise.resolve(r(f()));return Object.defineProperties(e,{_deepestRenderedBoundaryId:{get:()=>m,set(e){m=e}},formState:{get:()=>e.then(e=>"render"===e.type?e.formState:void 0)}})}),o=new Headers(l.headers);if(o.set("Content-Type","text/html; charset=utf-8"),!a)return new Response(t,{status:l.status,headers:o});if(!c?.body)throw Error("Failed to clone server response");let i=t.pipeThrough(ow(c.body));return new Response(i,{status:l.status,headers:o})}catch(e){if(e instanceof Response)return e;try{let t=en(e)?e.status:500,o=await n(()=>{let n=Promise.resolve(r(f())).then(r=>Object.assign(r,{status:t,errors:m?{[m]:e}:{}}));return Object.defineProperties(n,{_deepestRenderedBoundaryId:{get:()=>m,set(e){m=e}},formState:{get:()=>n.then(e=>"render"===e.type?e.formState:void 0)}})}),i=new Headers(l.headers);if(i.set("Content-Type","text/html"),!a)return new Response(o,{status:t,headers:i});if(!c?.body)throw Error("Failed to clone server response");let s=o.pipeThrough(ow(c.body));return new Response(s,{status:t,headers:i})}catch{}throw e}}function o_({getPayload:e}){let t=e(),r=function(e){if(oP)return oP(e);throw Error("React Router v7 requires React 19+ for RSC features.")}(t);if("redirect"===r.type)throw new Response(null,{status:r.status,headers:{Location:r.location}});if("render"!==r.type)return null;let n={...r.loaderData};for(let e of r.matches)n_(e.id,e.clientLoader,e.hasLoader,!1)&&(e.hydrateFallbackElement||!e.hasLoader)&&delete n[e.id];let a={get _deepestRenderedBoundaryId(){return t._deepestRenderedBoundaryId??null},set _deepestRenderedBoundaryId(boundaryId){t._deepestRenderedBoundaryId=boundaryId},actionData:r.actionData,actionHeaders:{},basename:r.basename,errors:r.errors,loaderData:n,loaderHeaders:{},location:r.location,statusCode:200,matches:r.matches.map(e=>({params:e.params,pathname:e.pathname,pathnameBase:e.pathnameBase,route:{id:e.id,action:e.hasAction||!!e.clientAction,handle:e.handle,hasErrorBoundary:e.hasErrorBoundary,loader:e.hasLoader||!!e.clientLoader,index:e.index,path:e.path,shouldRevalidate:e.shouldRevalidate}}))},o=ax(r.matches.reduceRight((e,t)=>{let r={id:t.id,action:t.hasAction||!!t.clientAction,element:t.element,errorElement:t.errorElement,handle:t.handle,hasErrorBoundary:!!t.errorElement,hydrateFallbackElement:t.hydrateFallbackElement,index:t.index,loader:t.hasLoader||!!t.clientLoader,path:t.path,shouldRevalidate:t.shouldRevalidate};return e.length>0&&(r.children=e),[r]},[]),a),i={future:{v8_middleware:!1,unstable_subResourceIntegrity:!1},isSpaMode:!1,ssr:!0,criticalCss:"",manifest:{routes:{},version:"1",url:"",entry:{module:"",imports:[]}},routeDiscovery:{mode:"lazy",manifestPath:"/__manifest"},routeModules:function(e){let t={};for(let a of e.matches){var r=t,n=a;for(let e of n=Array.isArray(n)?n:[n])r[e.id]={links:e.links,meta:e.meta,default:ok}}return t}(r)};return s.createElement(tx.Provider,{value:!0},s.createElement(oR,{location:r.location},s.createElement(nU.Provider,{value:i},s.createElement(ab,{context:a,router:o,hydrate:!1,nonce:r.nonce}))))}function oD(e){if(!e)return null;let t=Object.entries(e),r={};for(let[e,n]of t)if(n&&"RouteErrorResponse"===n.__type)r[e]=new er(n.status,n.statusText,n.data,!0===n.internal);else if(n&&"Error"===n.__type){if(n.__subType){let t=window[n.__subType];if("function"==typeof t)try{let a=new t(n.message);a.stack=n.stack,r[e]=a}catch(e){}}if(null==r[e]){let t=Error(n.message);t.stack=n.stack,r[e]=t}}else r[e]=n;return r}function oA({state:e,routes:t,getRouteInfo:r,location:n,basename:a,isSpaMode:o}){let i={...e,loaderData:{...e.loaderData}},s=D(t,n,a);if(s)for(let e of s){let t=e.route.id,n=r(t);n_(t,n.clientLoader,n.hasLoader,o)&&(n.hasHydrateFallback||!n.hasLoader)?delete i.loaderData[t]:n.hasLoader||(i.loaderData[t]=null)}return i}var oM=r(3385);function oO(e){return s.createElement(rh,{flushSync:oM.flushSync,...e})}var o$=null,oT=null;function oN(e){oT||(oT=function({getContext:e,unstable_instrumentations:t}){let r;if(!o$&&window.__reactRouterContext&&window.__reactRouterManifest&&window.__reactRouterRouteModules){if(!0===window.__reactRouterManifest.sri){let e=document.querySelector("script[rr-importmap]");if(e?.textContent)try{window.__reactRouterManifest.sri=JSON.parse(e.textContent).integrity}catch(e){console.error("Failed to parse import map",e)}}o$={context:window.__reactRouterContext,manifest:window.__reactRouterManifest,routeModules:window.__reactRouterRouteModules,stateDecodingPromise:void 0,router:void 0,routerInitialized:!1}}if(!o$)throw Error("You must be using the SSR features of React Router in order to skip passing a `router` prop to `<RouterProvider>`");let n=o$;if(!o$.stateDecodingPromise){let e=o$.context.stream;y(e,"No stream found for single fetch decoding"),o$.context.stream=void 0,o$.stateDecodingPromise=no(e,window).then(e=>{o$.context.state=e.value,n.stateDecodingPromise.value=!0}).catch(e=>{n.stateDecodingPromise.error=e})}if(o$.stateDecodingPromise.error)throw o$.stateDecodingPromise.error;if(!o$.stateDecodingPromise.value)throw o$.stateDecodingPromise;let a=nC(o$.manifest.routes,o$.routeModules,o$.context.state,o$.context.ssr,o$.context.isSpaMode);if(o$.context.isSpaMode){let{loaderData:e}=o$.context.state;o$.manifest.routes.root?.hasLoader&&e&&"root"in e&&(r={loaderData:{root:e.root}})}else(r=oA({state:o$.context.state,routes:a,getRouteInfo:e=>({clientLoader:o$.routeModules[e]?.clientLoader,hasLoader:o$.manifest.routes[e]?.hasLoader===!0,hasHydrateFallback:o$.routeModules[e]?.HydrateFallback!=null}),location:window.location,basename:window.__reactRouterContext?.basename,isSpaMode:o$.context.isSpaMode}))&&r.errors&&(r.errors=oD(r.errors));let o=eC({routes:a,history:m(),basename:o$.context.basename,getContext:e,hydrationData:r,hydrationRouteProperties:ru,unstable_instrumentations:t,mapRouteProperties:rl,future:{middleware:o$.context.future.v8_middleware},dataStrategy:r9(()=>o,o$.manifest,o$.routeModules,o$.context.ssr,o$.context.basename),patchRoutesOnNavigation:nO(o$.manifest,o$.routeModules,o$.context.ssr,o$.context.routeDiscovery,o$.context.isSpaMode,o$.context.basename)});return o$.router=o,o.state.initialized&&(o$.routerInitialized=!0,o.initialize()),o.createRoutesForHMR=nR,window.__reactRouterDataRouter=o,o}({getContext:e.getContext,unstable_instrumentations:e.unstable_instrumentations}));let[t,r]=s.useState(void 0);s.useEffect(()=>{},[]),s.useEffect(()=>{},[t]);let[n,a]=s.useState(oT.state.location);return s.useLayoutEffect(()=>{o$&&o$.router&&!o$.routerInitialized&&(o$.routerInitialized=!0,o$.router.initialize())},[]),s.useLayoutEffect(()=>{if(o$&&o$.router)return o$.router.subscribe(e=>{e.location!==n&&a(e.location)})},[n]),y(o$,"ssrInfo unavailable for HydratedRouter"),n$(oT,o$.manifest,o$.routeModules,o$.context.ssr,o$.context.routeDiscovery,o$.context.isSpaMode),s.createElement(s.Fragment,null,s.createElement(nU.Provider,{value:{manifest:o$.manifest,routeModules:o$.routeModules,future:o$.context.future,criticalCss:t,ssr:o$.context.ssr,isSpaMode:o$.context.isSpaMode,routeDiscovery:o$.context.routeDiscovery}},s.createElement(nK,{location:n},s.createElement(oO,{router:oT,unstable_onError:e.unstable_onError}))),s.createElement(s.Fragment,null))}x()}}]);
35
+ //# sourceMappingURL=406.js.map