diff --git a/asset-manifest.json b/asset-manifest.json index c3f46a0..a71b0f5 100644 --- a/asset-manifest.json +++ b/asset-manifest.json @@ -1,13 +1,13 @@ { "files": { "main.css": "/markdown-text-editor/static/css/main.54d36e30.css", - "main.js": "/markdown-text-editor/static/js/main.e83cdd62.js", + "main.js": "/markdown-text-editor/static/js/main.5dfa0cba.js", "index.html": "/markdown-text-editor/index.html", "main.54d36e30.css.map": "/markdown-text-editor/static/css/main.54d36e30.css.map", - "main.e83cdd62.js.map": "/markdown-text-editor/static/js/main.e83cdd62.js.map" + "main.5dfa0cba.js.map": "/markdown-text-editor/static/js/main.5dfa0cba.js.map" }, "entrypoints": [ "static/css/main.54d36e30.css", - "static/js/main.e83cdd62.js" + "static/js/main.5dfa0cba.js" ] } \ No newline at end of file diff --git a/favicon.ico b/favicon.ico new file mode 100644 index 0000000..a11777c Binary files /dev/null and b/favicon.ico differ diff --git a/index.html b/index.html index b516cd9..0c44455 100644 --- a/index.html +++ b/index.html @@ -1 +1 @@ -Markdown/HTML Editor
\ No newline at end of file +Markdown/HTML Editor
\ No newline at end of file diff --git a/logo192.png b/logo192.png new file mode 100644 index 0000000..fc44b0a Binary files /dev/null and b/logo192.png differ diff --git a/logo512.png b/logo512.png new file mode 100644 index 0000000..a4e47a6 Binary files /dev/null and b/logo512.png differ diff --git a/static/js/main.e83cdd62.js b/static/js/main.5dfa0cba.js similarity index 72% rename from static/js/main.e83cdd62.js rename to static/js/main.5dfa0cba.js index 74814e5..6f4df7c 100644 --- a/static/js/main.e83cdd62.js +++ b/static/js/main.5dfa0cba.js @@ -1,3 +1,3 @@ -/*! For license information please see main.e83cdd62.js.LICENSE.txt */ -(()=>{var e={8278:(e,t,n)=>{"use strict";function r(){return r=Object.assign?Object.assign.bind():function(e){for(var t=1;tq,Ep:()=>p,Gn:()=>x,J0:()=>c,LX:()=>k,OF:()=>Z,PP:()=>o,PQ:()=>Q,RQ:()=>H,WK:()=>J,WS:()=>b,X3:()=>W,Zn:()=>L,aU:()=>a,cP:()=>m,cm:()=>B,fZ:()=>X,fp:()=>S,i3:()=>P,lX:()=>s,ov:()=>se,p7:()=>_e,pC:()=>G,q_:()=>l,qp:()=>le,uX:()=>K}),function(e){e.Pop="POP",e.Push="PUSH",e.Replace="REPLACE"}(a||(a={}));const i="popstate";function o(e){void 0===e&&(e={});let t,{initialEntries:n=["/"],initialIndex:r,v5Compat:i=!1}=e;t=n.map(((e,t)=>g(e,"string"===typeof e?null:e.state,0===t?"default":void 0)));let o=c(null==r?t.length-1:r),s=a.Pop,l=null;function c(e){return Math.min(Math.max(e,0),t.length-1)}function u(){return t[o]}function g(e,n,r){void 0===n&&(n=null);let a=_(t?u().pathname:"/",e,n,r);return d("/"===a.pathname.charAt(0),"relative pathnames are not supported in memory history: "+JSON.stringify(e)),a}function E(e){return"string"===typeof e?e:p(e)}return{get index(){return o},get action(){return s},get location(){return u()},createHref:E,createURL:e=>new URL(E(e),"http://localhost"),encodeLocation(e){let t="string"===typeof e?m(e):e;return{pathname:t.pathname||"",search:t.search||"",hash:t.hash||""}},push(e,n){s=a.Push;let r=g(e,n);o+=1,t.splice(o,t.length,r),i&&l&&l({action:s,location:r,delta:1})},replace(e,n){s=a.Replace;let r=g(e,n);t[o]=r,i&&l&&l({action:s,location:r,delta:0})},go(e){s=a.Pop;let n=c(o+e),r=t[n];o=n,l&&l({action:s,location:r,delta:e})},listen:e=>(l=e,()=>{l=null})}}function s(e){return void 0===e&&(e={}),g((function(e,t){let{pathname:n,search:r,hash:a}=e.location;return _("",{pathname:n,search:r,hash:a},t.state&&t.state.usr||null,t.state&&t.state.key||"default")}),(function(e,t){return"string"===typeof t?t:p(t)}),null,e)}function l(e){return void 0===e&&(e={}),g((function(e,t){let{pathname:n="/",search:r="",hash:a=""}=m(e.location.hash.substr(1));return n.startsWith("/")||n.startsWith(".")||(n="/"+n),_("",{pathname:n,search:r,hash:a},t.state&&t.state.usr||null,t.state&&t.state.key||"default")}),(function(e,t){let n=e.document.querySelector("base"),r="";if(n&&n.getAttribute("href")){let t=e.location.href,n=t.indexOf("#");r=-1===n?t:t.slice(0,n)}return r+"#"+("string"===typeof t?t:p(t))}),(function(e,t){d("/"===e.pathname.charAt(0),"relative pathnames are not supported in hash history.push("+JSON.stringify(t)+")")}),e)}function c(e,t){if(!1===e||null===e||"undefined"===typeof e)throw new Error(t)}function d(e,t){if(!e){"undefined"!==typeof console&&console.warn(t);try{throw new Error(t)}catch(n){}}}function u(e,t){return{usr:e.state,key:e.key,idx:t}}function _(e,t,n,a){return void 0===n&&(n=null),r({pathname:"string"===typeof e?e:e.pathname,search:"",hash:""},"string"===typeof t?m(t):t,{state:n,key:t&&t.key||a||Math.random().toString(36).substr(2,8)})}function p(e){let{pathname:t="/",search:n="",hash:r=""}=e;return n&&"?"!==n&&(t+="?"===n.charAt(0)?n:"?"+n),r&&"#"!==r&&(t+="#"===r.charAt(0)?r:"#"+r),t}function m(e){let t={};if(e){let n=e.indexOf("#");n>=0&&(t.hash=e.substr(n),e=e.substr(0,n));let r=e.indexOf("?");r>=0&&(t.search=e.substr(r),e=e.substr(0,r)),e&&(t.pathname=e)}return t}function g(e,t,n,o){void 0===o&&(o={});let{window:s=document.defaultView,v5Compat:l=!1}=o,d=s.history,m=a.Pop,g=null,E=f();function f(){return(d.state||{idx:null}).idx}function h(){m=a.Pop;let e=f(),t=null==e?null:e-E;E=e,g&&g({action:m,location:b.location,delta:t})}function S(e){let t="null"!==s.location.origin?s.location.origin:s.location.href,n="string"===typeof e?e:p(e);return c(t,"No window.location.(origin|href) available to create URL for href: "+n),new URL(n,t)}null==E&&(E=0,d.replaceState(r({},d.state,{idx:E}),""));let b={get action(){return m},get location(){return e(s,d)},listen(e){if(g)throw new Error("A history only accepts one active listener");return s.addEventListener(i,h),g=e,()=>{s.removeEventListener(i,h),g=null}},createHref:e=>t(s,e),createURL:S,encodeLocation(e){let t=S(e);return{pathname:t.pathname,search:t.search,hash:t.hash}},push:function(e,t){m=a.Push;let r=_(b.location,e,t);n&&n(r,e),E=f()+1;let i=u(r,E),o=b.createHref(r);try{d.pushState(i,"",o)}catch(c){if(c instanceof DOMException&&"DataCloneError"===c.name)throw c;s.location.assign(o)}l&&g&&g({action:m,location:b.location,delta:1})},replace:function(e,t){m=a.Replace;let r=_(b.location,e,t);n&&n(r,e),E=f();let i=u(r,E),o=b.createHref(r);d.replaceState(i,"",o),l&&g&&g({action:m,location:b.location,delta:0})},go:e=>d.go(e)};return b}var E;!function(e){e.data="data",e.deferred="deferred",e.redirect="redirect",e.error="error"}(E||(E={}));const f=new Set(["lazy","caseSensitive","path","id","index","children"]);function h(e,t,n,a){return void 0===n&&(n=[]),void 0===a&&(a={}),e.map(((e,i)=>{let o=[...n,i],s="string"===typeof e.id?e.id:o.join("-");if(c(!0!==e.index||!e.children,"Cannot specify children on an index route"),c(!a[s],'Found a route id collision on id "'+s+"\". Route id's must be globally unique within Data Router usages"),function(e){return!0===e.index}(e)){let n=r({},e,t(e),{id:s});return a[s]=n,n}{let n=r({},e,t(e),{id:s,children:void 0});return a[s]=n,e.children&&(n.children=h(e.children,t,o,a)),n}}))}function S(e,t,n){void 0===n&&(n="/");let r=L(("string"===typeof t?m(t):t).pathname||"/",n);if(null==r)return null;let a=T(e);!function(e){e.sort(((e,t)=>e.score!==t.score?t.score-e.score:function(e,t){let n=e.length===t.length&&e.slice(0,-1).every(((e,n)=>e===t[n]));return n?e[e.length-1]-t[t.length-1]:0}(e.routesMeta.map((e=>e.childrenIndex)),t.routesMeta.map((e=>e.childrenIndex)))))}(a);let i=null;for(let o=0;null==i&&o{let o={relativePath:void 0===i?e.path||"":i,caseSensitive:!0===e.caseSensitive,childrenIndex:a,route:e};o.relativePath.startsWith("/")&&(c(o.relativePath.startsWith(r),'Absolute route path "'+o.relativePath+'" nested under path "'+r+'" is not valid. An absolute child route path must start with the combined path of all its parent routes.'),o.relativePath=o.relativePath.slice(r.length));let s=H([r,o.relativePath]),l=n.concat(o);e.children&&e.children.length>0&&(c(!0!==e.index,'Index routes must not have child routes. Please remove all child routes from route path "'+s+'".'),T(e.children,t,l,s)),(null!=e.path||e.index)&&t.push({path:s,score:D(s,e.index),routesMeta:l})};return e.forEach(((e,t)=>{var n;if(""!==e.path&&null!=(n=e.path)&&n.includes("?"))for(let r of C(e.path))a(e,t,r);else a(e,t)})),t}function C(e){let t=e.split("/");if(0===t.length)return[];let[n,...r]=t,a=n.endsWith("?"),i=n.replace(/\?$/,"");if(0===r.length)return a?[i,""]:[i];let o=C(r.join("/")),s=[];return s.push(...o.map((e=>""===e?i:[i,e].join("/")))),a&&s.push(...o),s.map((t=>e.startsWith("/")&&""===t?"/":t))}const y=/^:\w+$/,N=3,v=2,R=1,A=10,O=-2,I=e=>"*"===e;function D(e,t){let n=e.split("/"),r=n.length;return n.some(I)&&(r+=O),t&&(r+=v),n.filter((e=>!I(e))).reduce(((e,t)=>e+(y.test(t)?N:""===t?R:A)),r)}function w(e,t){let{routesMeta:n}=e,r={},a="/",i=[];for(let o=0;onull==e?"":"string"===typeof e?e:String(e);return r+n.split(/\/+/).map(((e,n,r)=>{if(n===r.length-1&&"*"===e){return a(t["*"])}const i=e.match(/^:(\w+)(\??)$/);if(i){const[,e,n]=i;let r=t[e];return c("?"===n||null!=r,'Missing ":'+e+'" param'),a(r)}return e.replace(/\?$/g,"")})).filter((e=>!!e)).join("/")}function k(e,t){"string"===typeof e&&(e={path:e,caseSensitive:!1,end:!0});let[n,r]=function(e,t,n){void 0===t&&(t=!1);void 0===n&&(n=!0);d("*"===e||!e.endsWith("*")||e.endsWith("/*"),'Route path "'+e+'" will be treated as if it were "'+e.replace(/\*$/,"/*")+'" because the `*` character must always follow a `/` in the pattern. To get rid of this warning, please change the route path to "'+e.replace(/\*$/,"/*")+'".');let r=[],a="^"+e.replace(/\/*\*?$/,"").replace(/^\/*/,"/").replace(/[\\.*+^${}|()[\]]/g,"\\$&").replace(/\/:(\w+)(\?)?/g,((e,t,n)=>(r.push({paramName:t,isOptional:null!=n}),n?"/?([^\\/]+)?":"/([^\\/]+)")));e.endsWith("*")?(r.push({paramName:"*"}),a+="*"===e||"/*"===e?"(.*)$":"(?:\\/(.+)|\\/*)$"):n?a+="\\/*$":""!==e&&"/"!==e&&(a+="(?:(?=\\/|$))");let i=new RegExp(a,t?void 0:"i");return[i,r]}(e.path,e.caseSensitive,e.end),a=t.match(n);if(!a)return null;let i=a[0],o=i.replace(/(.)\/+$/,"$1"),s=a.slice(1);return{params:r.reduce(((e,t,n)=>{let{paramName:r,isOptional:a}=t;if("*"===r){let e=s[n]||"";o=i.slice(0,i.length-e.length).replace(/(.)\/+$/,"$1")}const l=s[n];return e[r]=a&&!l?void 0:function(e,t){try{return decodeURIComponent(e)}catch(n){return d(!1,'The value for the URL param "'+t+'" will not be decoded because the string "'+e+'" is a malformed URL segment. This is probably due to a bad percent encoding ('+n+")."),e}}(l||"",r),e}),{}),pathname:i,pathnameBase:o,pattern:e}}function M(e){try{return decodeURI(e)}catch(t){return d(!1,'The URL path "'+e+'" could not be decoded because it is is a malformed URL segment. This is probably due to a bad percent encoding ('+t+")."),e}}function L(e,t){if("/"===t)return e;if(!e.toLowerCase().startsWith(t.toLowerCase()))return null;let n=t.endsWith("/")?t.length-1:t.length,r=e.charAt(n);return r&&"/"!==r?null:e.slice(n)||"/"}function P(e,t){void 0===t&&(t="/");let{pathname:n,search:r="",hash:a=""}="string"===typeof e?m(e):e,i=n?n.startsWith("/")?n:function(e,t){let n=t.replace(/\/+$/,"").split("/");return e.split("/").forEach((e=>{".."===e?n.length>1&&n.pop():"."!==e&&n.push(e)})),n.length>1?n.join("/"):"/"}(n,t):t;return{pathname:i,search:z(r),hash:V(a)}}function F(e,t,n,r){return"Cannot include a '"+e+"' character in a manually specified `to."+t+"` field ["+JSON.stringify(r)+"]. Please separate it out to the `to."+n+'` field. Alternatively you may provide the full path as a string in and the router will parse it for you.'}function U(e){return e.filter(((e,t)=>0===t||e.route.path&&e.route.path.length>0))}function B(e,t){let n=U(e);return t?n.map(((t,n)=>n===e.length-1?t.pathname:t.pathnameBase)):n.map((e=>e.pathnameBase))}function G(e,t,n,a){let i;void 0===a&&(a=!1),"string"===typeof e?i=m(e):(i=r({},e),c(!i.pathname||!i.pathname.includes("?"),F("?","pathname","search",i)),c(!i.pathname||!i.pathname.includes("#"),F("#","pathname","hash",i)),c(!i.search||!i.search.includes("#"),F("#","search","hash",i)));let o,s=""===e||""===i.pathname,l=s?"/":i.pathname;if(null==l)o=n;else{let e=t.length-1;if(!a&&l.startsWith("..")){let t=l.split("/");for(;".."===t[0];)t.shift(),e-=1;i.pathname=t.join("/")}o=e>=0?t[e]:"/"}let d=P(i,o),u=l&&"/"!==l&&l.endsWith("/"),_=(s||"."===l)&&n.endsWith("/");return d.pathname.endsWith("/")||!u&&!_||(d.pathname+="/"),d}const H=e=>e.join("/").replace(/\/\/+/g,"/"),Y=e=>e.replace(/\/+$/,"").replace(/^\/*/,"/"),z=e=>e&&"?"!==e?e.startsWith("?")?e:"?"+e:"",V=e=>e&&"#"!==e?e.startsWith("#")?e:"#"+e:"",q=function(e,t){void 0===t&&(t={});let n="number"===typeof t?{status:t}:t,a=new Headers(n.headers);return a.has("Content-Type")||a.set("Content-Type","application/json; charset=utf-8"),new Response(JSON.stringify(e),r({},n,{headers:a}))};class W extends Error{}class j{constructor(e,t){let n;this.pendingKeysSet=new Set,this.subscribers=new Set,this.deferredKeys=[],c(e&&"object"===typeof e&&!Array.isArray(e),"defer() only accepts plain objects"),this.abortPromise=new Promise(((e,t)=>n=t)),this.controller=new AbortController;let r=()=>n(new W("Deferred data aborted"));this.unlistenAbortSignal=()=>this.controller.signal.removeEventListener("abort",r),this.controller.signal.addEventListener("abort",r),this.data=Object.entries(e).reduce(((e,t)=>{let[n,r]=t;return Object.assign(e,{[n]:this.trackPromise(n,r)})}),{}),this.done&&this.unlistenAbortSignal(),this.init=t}trackPromise(e,t){if(!(t instanceof Promise))return t;this.deferredKeys.push(e),this.pendingKeysSet.add(e);let n=Promise.race([t,this.abortPromise]).then((t=>this.onSettle(n,e,void 0,t)),(t=>this.onSettle(n,e,t)));return n.catch((()=>{})),Object.defineProperty(n,"_tracked",{get:()=>!0}),n}onSettle(e,t,n,r){if(this.controller.signal.aborted&&n instanceof W)return this.unlistenAbortSignal(),Object.defineProperty(e,"_error",{get:()=>n}),Promise.reject(n);if(this.pendingKeysSet.delete(t),this.done&&this.unlistenAbortSignal(),void 0===n&&void 0===r){let n=new Error('Deferred data for key "'+t+'" resolved/rejected with `undefined`, you must resolve/reject with a value or `null`.');return Object.defineProperty(e,"_error",{get:()=>n}),this.emit(!1,t),Promise.reject(n)}return void 0===r?(Object.defineProperty(e,"_error",{get:()=>n}),this.emit(!1,t),Promise.reject(n)):(Object.defineProperty(e,"_data",{get:()=>r}),this.emit(!1,t),r)}emit(e,t){this.subscribers.forEach((n=>n(e,t)))}subscribe(e){return this.subscribers.add(e),()=>this.subscribers.delete(e)}cancel(){this.controller.abort(),this.pendingKeysSet.forEach(((e,t)=>this.pendingKeysSet.delete(t))),this.emit(!0)}async resolveData(e){let t=!1;if(!this.done){let n=()=>this.cancel();e.addEventListener("abort",n),t=await new Promise((t=>{this.subscribe((r=>{e.removeEventListener("abort",n),(r||this.done)&&t(r)}))}))}return t}get done(){return 0===this.pendingKeysSet.size}get unwrappedData(){return c(null!==this.data&&this.done,"Can only unwrap data on initialized and settled deferreds"),Object.entries(this.data).reduce(((e,t)=>{let[n,r]=t;return Object.assign(e,{[n]:$(r)})}),{})}get pendingKeys(){return Array.from(this.pendingKeysSet)}}function $(e){if(!function(e){return e instanceof Promise&&!0===e._tracked}(e))return e;if(e._error)throw e._error;return e._data}const Q=function(e,t){return void 0===t&&(t={}),new j(e,"number"===typeof t?{status:t}:t)},K=function(e,t){void 0===t&&(t=302);let n=t;"number"===typeof n?n={status:n}:"undefined"===typeof n.status&&(n.status=302);let a=new Headers(n.headers);return a.set("Location",e),new Response(null,r({},n,{headers:a}))},X=(e,t)=>{let n=K(e,t);return n.headers.set("X-Remix-Reload-Document","true"),n};class Z{constructor(e,t,n,r){void 0===r&&(r=!1),this.status=e,this.statusText=t||"",this.internal=r,n instanceof Error?(this.data=n.toString(),this.error=n):this.data=n}}function J(e){return null!=e&&"number"===typeof e.status&&"string"===typeof e.statusText&&"boolean"===typeof e.internal&&"data"in e}const ee=["post","put","patch","delete"],te=new Set(ee),ne=["get",...ee],re=new Set(ne),ae=new Set([301,302,303,307,308]),ie=new Set([307,308]),oe={state:"idle",location:void 0,formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0},se={state:"idle",data:void 0,formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0},le={state:"unblocked",proceed:void 0,reset:void 0,location:void 0},ce=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,de=e=>({hasErrorBoundary:Boolean(e.hasErrorBoundary)}),ue="remix-router-transitions";function _e(e){const t=e.window?e.window:"undefined"!==typeof window?window:void 0,n="undefined"!==typeof t&&"undefined"!==typeof t.document&&"undefined"!==typeof t.document.createElement,i=!n;let o;if(c(e.routes.length>0,"You must provide a non-empty routes array to createRouter"),e.mapRouteProperties)o=e.mapRouteProperties;else if(e.detectErrorBoundary){let t=e.detectErrorBoundary;o=e=>({hasErrorBoundary:t(e)})}else o=de;let s,l,u={},p=h(e.routes,o,void 0,u),m=e.basename||"/",g=r({v7_fetcherPersist:!1,v7_normalizeFormMethod:!1,v7_partialHydration:!1,v7_prependBasename:!1,v7_relativeSplatPath:!1},e.future),f=null,T=new Set,C=null,y=null,N=null,v=null!=e.hydrationData,R=S(p,e.history.location,m),A=null;if(null==R){let t=Ie(404,{pathname:e.history.location.pathname}),{matches:n,route:r}=Oe(p);R=n,A={[r.id]:t}}let O,I=R.some((e=>e.route.lazy)),D=R.some((e=>e.route.loader));if(I)l=!1;else if(D)if(g.v7_partialHydration){let t=e.hydrationData?e.hydrationData.loaderData:null,n=e.hydrationData?e.hydrationData.errors:null;l=R.every((e=>e.route.loader&&!0!==e.route.loader.hydrate&&(t&&void 0!==t[e.route.id]||n&&void 0!==n[e.route.id])))}else l=null!=e.hydrationData;else l=!0;let w,x={historyAction:e.history.action,location:e.history.location,matches:R,initialized:l,navigation:oe,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||A,fetchers:new Map,blockers:new Map},k=a.Pop,M=!1,P=!1,F=new Map,U=null,B=!1,G=!1,H=[],Y=[],z=new Map,V=0,q=-1,W=new Map,j=new Set,$=new Map,Q=new Map,K=new Set,X=new Map,Z=new Map,J=!1;function ee(e,t){void 0===t&&(t={}),x=r({},x,e);let n=[],a=[];g.v7_fetcherPersist&&x.fetchers.forEach(((e,t)=>{"idle"===e.state&&(K.has(t)?a.push(t):n.push(t))})),[...T].forEach((e=>e(x,{deletedFetchers:a,unstable_viewTransitionOpts:t.viewTransitionOpts,unstable_flushSync:!0===t.flushSync}))),g.v7_fetcherPersist&&(n.forEach((e=>x.fetchers.delete(e))),a.forEach((e=>Se(e))))}function te(t,n,i){var o,l;let c,{flushSync:d}=void 0===i?{}:i,u=null!=x.actionData&&null!=x.navigation.formMethod&&Fe(x.navigation.formMethod)&&"loading"===x.navigation.state&&!0!==(null==(o=t.state)?void 0:o._isRedirect);c=n.actionData?Object.keys(n.actionData).length>0?n.actionData:null:u?x.actionData:null;let _=n.loaderData?Re(x.loaderData,n.loaderData,n.matches||[],n.errors):x.loaderData,m=x.blockers;m.size>0&&(m=new Map(m),m.forEach(((e,t)=>m.set(t,le))));let g,E=!0===M||null!=x.navigation.formMethod&&Fe(x.navigation.formMethod)&&!0!==(null==(l=t.state)?void 0:l._isRedirect);if(s&&(p=s,s=void 0),B||k===a.Pop||(k===a.Push?e.history.push(t,t.state):k===a.Replace&&e.history.replace(t,t.state)),k===a.Pop){let e=F.get(x.location.pathname);e&&e.has(t.pathname)?g={currentLocation:x.location,nextLocation:t}:F.has(t.pathname)&&(g={currentLocation:t,nextLocation:x.location})}else if(P){let e=F.get(x.location.pathname);e?e.add(t.pathname):(e=new Set([t.pathname]),F.set(x.location.pathname,e)),g={currentLocation:x.location,nextLocation:t}}ee(r({},n,{actionData:c,loaderData:_,historyAction:k,location:t,initialized:!0,navigation:oe,revalidation:"idle",restoreScrollPosition:$e(t,n.matches||x.matches),preventScrollReset:E,blockers:m}),{viewTransitionOpts:g,flushSync:!0===d}),k=a.Pop,M=!1,P=!1,B=!1,G=!1,H=[],Y=[]}async function ne(t,n,i){w&&w.abort(),w=null,k=t,B=!0===(i&&i.startUninterruptedRevalidation),function(e,t){if(C&&N){let n=je(e,t);C[n]=N()}}(x.location,x.matches),M=!0===(i&&i.preventScrollReset),P=!0===(i&&i.enableViewTransition);let l=s||p,c=i&&i.overrideNavigation,d=S(l,n,m),_=!0===(i&&i.flushSync);if(!d){let e=Ie(404,{pathname:n.pathname}),{matches:t,route:r}=Oe(l);return We(),void te(n,{matches:t,loaderData:{},errors:{[r.id]:e}},{flushSync:_})}if(x.initialized&&!G&&function(e,t){if(e.pathname!==t.pathname||e.search!==t.search)return!1;if(""===e.hash)return""!==t.hash;if(e.hash===t.hash)return!0;if(""!==t.hash)return!0;return!1}(x.location,n)&&!(i&&i.submission&&Fe(i.submission.formMethod)))return void te(n,{matches:d},{flushSync:_});w=new AbortController;let f,h,b=Te(e.history,n,w.signal,i&&i.submission);if(i&&i.pendingError)h={[Ae(d).route.id]:i.pendingError};else if(i&&i.submission&&Fe(i.submission.formMethod)){let e=await async function(e,t,n,r,i){void 0===i&&(i={});_e();let s,l=function(e,t){let n={state:"submitting",location:e,formMethod:t.formMethod,formAction:t.formAction,formEncType:t.formEncType,formData:t.formData,json:t.json,text:t.text};return n}(t,n);ee({navigation:l},{flushSync:!0===i.flushSync});let c=He(r,t);if(c.route.action||c.route.lazy){if(s=await be("action",e,c,r,u,o,m,g.v7_relativeSplatPath),e.signal.aborted)return{shortCircuited:!0}}else s={type:E.error,error:Ie(405,{method:e.method,pathname:t.pathname,routeId:c.route.id})};if(Me(s)){let e;return e=i&&null!=i.replace?i.replace:s.location===x.location.pathname+x.location.search,await re(x,s,{submission:n,replace:e}),{shortCircuited:!0}}if(ke(s)){let e=Ae(r,c.route.id);return!0!==(i&&i.replace)&&(k=a.Push),{pendingActionData:{},pendingActionError:{[e.route.id]:s.error}}}if(xe(s))throw Ie(400,{type:"defer-action"});return{pendingActionData:{[c.route.id]:s.data}}}(b,n,i.submission,d,{replace:i.replace,flushSync:_});if(e.shortCircuited)return;f=e.pendingActionData,h=e.pendingActionError,c=ze(n,i.submission),_=!1,b=new Request(b.url,{signal:b.signal})}let{shortCircuited:T,loaderData:y,errors:v}=await async function(t,n,a,i,o,l,c,d,u,_,E){let f=i||ze(n,o),h=o||l||Ye(f),S=s||p,[b,T]=Ee(e.history,x,a,h,n,g.v7_partialHydration&&!0===d,G,H,Y,K,$,j,S,m,_,E);if(We((e=>!(a&&a.some((t=>t.route.id===e)))||b&&b.some((t=>t.route.id===e)))),q=++V,0===b.length&&0===T.length){let e=Ne();return te(n,r({matches:a,loaderData:{},errors:E||null},_?{actionData:_}:{},e?{fetchers:new Map(x.fetchers)}:{}),{flushSync:u}),{shortCircuited:!0}}if(!B&&(!g.v7_partialHydration||!d)){T.forEach((e=>{let t=x.fetchers.get(e.key),n=Ve(void 0,t?t.data:void 0);x.fetchers.set(e.key,n)}));let e=_||x.actionData;ee(r({navigation:f},e?0===Object.keys(e).length?{actionData:null}:{actionData:e}:{},T.length>0?{fetchers:new Map(x.fetchers)}:{}),{flushSync:u})}T.forEach((e=>{z.has(e.key)&&Ce(e.key),e.controller&&z.set(e.key,e.controller)}));let C=()=>T.forEach((e=>Ce(e.key)));w&&w.signal.addEventListener("abort",C);let{results:y,loaderResults:N,fetcherResults:v}=await ae(x.matches,a,b,T,t);if(t.signal.aborted)return{shortCircuited:!0};w&&w.signal.removeEventListener("abort",C);T.forEach((e=>z.delete(e.key)));let R=De(y);if(R){if(R.idx>=b.length){let e=T[R.idx-b.length].key;j.add(e)}return await re(x,R.result,{replace:c}),{shortCircuited:!0}}let{loaderData:A,errors:O}=ve(x,a,b,N,E,T,v,X);X.forEach(((e,t)=>{e.subscribe((n=>{(n||e.done)&&X.delete(t)}))}));let I=Ne(),D=we(q),k=I||D||T.length>0;return r({loaderData:A,errors:O},k?{fetchers:new Map(x.fetchers)}:{})}(b,n,d,c,i&&i.submission,i&&i.fetcherSubmission,i&&i.replace,i&&!0===i.initialHydration,_,f,h);T||(w=null,te(n,r({matches:d},f?{actionData:f}:{},{loaderData:y,errors:v})))}async function re(i,o,s){let{submission:l,fetcherSubmission:d,replace:u}=void 0===s?{}:s;o.revalidate&&(G=!0);let p=_(i.location,o.location,{_isRedirect:!0});if(c(p,"Expected a location on the redirect navigation"),n){let n=!1;if(o.reloadDocument)n=!0;else if(ce.test(o.location)){const r=e.history.createURL(o.location);n=r.origin!==t.location.origin||null==L(r.pathname,m)}if(n)return void(u?t.location.replace(o.location):t.location.assign(o.location))}w=null;let g=!0===u?a.Replace:a.Push,{formMethod:E,formAction:f,formEncType:h}=i.navigation;!l&&!d&&E&&f&&h&&(l=Ye(i.navigation));let S=l||d;if(ie.has(o.status)&&S&&Fe(S.formMethod))await ne(g,p,{submission:r({},S,{formAction:o.location}),preventScrollReset:M});else{let e=ze(p,l);await ne(g,p,{overrideNavigation:e,fetcherSubmission:d,preventScrollReset:M})}}async function ae(t,n,r,a,i){let s=await Promise.all([...r.map((e=>be("loader",i,e,n,u,o,m,g.v7_relativeSplatPath))),...a.map((t=>{if(t.matches&&t.match&&t.controller)return be("loader",Te(e.history,t.path,t.controller.signal),t.match,t.matches,u,o,m,g.v7_relativeSplatPath);return{type:E.error,error:Ie(404,{pathname:t.path})}}))]),l=s.slice(0,r.length),c=s.slice(r.length);return await Promise.all([Ue(t,r,l,l.map((()=>i.signal)),!1,x.loaderData),Ue(t,a.map((e=>e.match)),c,a.map((e=>e.controller?e.controller.signal:null)),!0)]),{results:s,loaderResults:l,fetcherResults:c}}function _e(){G=!0,H.push(...We()),$.forEach(((e,t)=>{z.has(t)&&(Y.push(t),Ce(t))}))}function ge(e,t,n){void 0===n&&(n={}),x.fetchers.set(e,t),ee({fetchers:new Map(x.fetchers)},{flushSync:!0===(n&&n.flushSync)})}function fe(e,t,n,r){void 0===r&&(r={});let a=Ae(x.matches,t);Se(e),ee({errors:{[a.route.id]:n},fetchers:new Map(x.fetchers)},{flushSync:!0===(r&&r.flushSync)})}function he(e){return g.v7_fetcherPersist&&(Q.set(e,(Q.get(e)||0)+1),K.has(e)&&K.delete(e)),x.fetchers.get(e)||se}function Se(e){let t=x.fetchers.get(e);!z.has(e)||t&&"loading"===t.state&&W.has(e)||Ce(e),$.delete(e),W.delete(e),j.delete(e),K.delete(e),x.fetchers.delete(e)}function Ce(e){let t=z.get(e);c(t,"Expected fetch controller: "+e),t.abort(),z.delete(e)}function ye(e){for(let t of e){let e=qe(he(t).data);x.fetchers.set(t,e)}}function Ne(){let e=[],t=!1;for(let n of j){let r=x.fetchers.get(n);c(r,"Expected fetcher: "+n),"loading"===r.state&&(j.delete(n),e.push(n),t=!0)}return ye(e),t}function we(e){let t=[];for(let[n,r]of W)if(r0}function Le(e){x.blockers.delete(e),Z.delete(e)}function Pe(e,t){let n=x.blockers.get(e)||le;c("unblocked"===n.state&&"blocked"===t.state||"blocked"===n.state&&"blocked"===t.state||"blocked"===n.state&&"proceeding"===t.state||"blocked"===n.state&&"unblocked"===t.state||"proceeding"===n.state&&"unblocked"===t.state,"Invalid blocker state transition: "+n.state+" -> "+t.state);let r=new Map(x.blockers);r.set(e,t),ee({blockers:r})}function Ge(e){let{currentLocation:t,nextLocation:n,historyAction:r}=e;if(0===Z.size)return;Z.size>1&&d(!1,"A router only supports one blocker at a time");let a=Array.from(Z.entries()),[i,o]=a[a.length-1],s=x.blockers.get(i);return s&&"proceeding"===s.state?void 0:o({currentLocation:t,nextLocation:n,historyAction:r})?i:void 0}function We(e){let t=[];return X.forEach(((n,r)=>{e&&!e(r)||(n.cancel(),t.push(r),X.delete(r))})),t}function je(e,t){if(y){return y(e,t.map((e=>b(e,x.loaderData))))||e.key}return e.key}function $e(e,t){if(C){let n=je(e,t),r=C[n];if("number"===typeof r)return r}return null}return O={get basename(){return m},get future(){return g},get state(){return x},get routes(){return p},get window(){return t},initialize:function(){if(f=e.history.listen((t=>{let{action:n,location:r,delta:a}=t;if(J)return void(J=!1);d(0===Z.size||null!=a,"You are trying to use a blocker on a POP navigation to a location that was not created by @remix-run/router. This will fail silently in production. This can happen if you are navigating outside the router via `window.history.pushState`/`window.location.hash` instead of using router navigation APIs. This can also happen if you are using createHashRouter and the user manually changes the URL.");let i=Ge({currentLocation:x.location,nextLocation:r,historyAction:n});return i&&null!=a?(J=!0,e.history.go(-1*a),void Pe(i,{state:"blocked",location:r,proceed(){Pe(i,{state:"proceeding",proceed:void 0,reset:void 0,location:r}),e.history.go(a)},reset(){let e=new Map(x.blockers);e.set(i,le),ee({blockers:e})}})):ne(n,r)})),n){!function(e,t){try{let n=e.sessionStorage.getItem(ue);if(n){let e=JSON.parse(n);for(let[n,r]of Object.entries(e||{}))r&&Array.isArray(r)&&t.set(n,new Set(r||[]))}}catch(n){}}(t,F);let e=()=>function(e,t){if(t.size>0){let r={};for(let[e,n]of t)r[e]=[...n];try{e.sessionStorage.setItem(ue,JSON.stringify(r))}catch(n){d(!1,"Failed to save applied view transitions in sessionStorage ("+n+").")}}}(t,F);t.addEventListener("pagehide",e),U=()=>t.removeEventListener("pagehide",e)}return x.initialized||ne(a.Pop,x.location,{initialHydration:!0}),O},subscribe:function(e){return T.add(e),()=>T.delete(e)},enableScrollRestoration:function(e,t,n){if(C=e,N=t,y=n||null,!v&&x.navigation===oe){v=!0;let e=$e(x.location,x.matches);null!=e&&ee({restoreScrollPosition:e})}return()=>{C=null,N=null,y=null}},navigate:async function t(n,i){if("number"===typeof n)return void e.history.go(n);let o=pe(x.location,x.matches,m,g.v7_prependBasename,n,g.v7_relativeSplatPath,null==i?void 0:i.fromRouteId,null==i?void 0:i.relative),{path:s,submission:l,error:c}=me(g.v7_normalizeFormMethod,!1,o,i),d=x.location,u=_(x.location,s,i&&i.state);u=r({},u,e.history.encodeLocation(u));let p=i&&null!=i.replace?i.replace:void 0,E=a.Push;!0===p?E=a.Replace:!1===p||null!=l&&Fe(l.formMethod)&&l.formAction===x.location.pathname+x.location.search&&(E=a.Replace);let f=i&&"preventScrollReset"in i?!0===i.preventScrollReset:void 0,h=!0===(i&&i.unstable_flushSync),S=Ge({currentLocation:d,nextLocation:u,historyAction:E});if(!S)return await ne(E,u,{submission:l,pendingError:c,preventScrollReset:f,replace:i&&i.replace,enableViewTransition:i&&i.unstable_viewTransition,flushSync:h});Pe(S,{state:"blocked",location:u,proceed(){Pe(S,{state:"proceeding",proceed:void 0,reset:void 0,location:u}),t(n,i)},reset(){let e=new Map(x.blockers);e.set(S,le),ee({blockers:e})}})},fetch:function(t,n,r,a){if(i)throw new Error("router.fetch() was called during the server render, but it shouldn't be. You are likely calling a useFetcher() method in the body of your component. Try moving it to a useEffect or a callback.");z.has(t)&&Ce(t);let l=!0===(a&&a.unstable_flushSync),d=s||p,_=pe(x.location,x.matches,m,g.v7_prependBasename,r,g.v7_relativeSplatPath,n,null==a?void 0:a.relative),E=S(d,_,m);if(!E)return void fe(t,n,Ie(404,{pathname:_}),{flushSync:l});let{path:f,submission:h,error:b}=me(g.v7_normalizeFormMethod,!0,_,a);if(b)return void fe(t,n,b,{flushSync:l});let T=He(E,f);M=!0===(a&&a.preventScrollReset),h&&Fe(h.formMethod)?async function(t,n,r,a,i,l,d){if(_e(),$.delete(t),!a.route.action&&!a.route.lazy){let e=Ie(405,{method:d.formMethod,pathname:r,routeId:n});return void fe(t,n,e,{flushSync:l})}let _=x.fetchers.get(t);ge(t,function(e,t){let n={state:"submitting",formMethod:e.formMethod,formAction:e.formAction,formEncType:e.formEncType,formData:e.formData,json:e.json,text:e.text,data:t?t.data:void 0};return n}(d,_),{flushSync:l});let E=new AbortController,f=Te(e.history,r,E.signal,d);z.set(t,E);let h=V,b=await be("action",f,a,i,u,o,m,g.v7_relativeSplatPath);if(f.signal.aborted)return void(z.get(t)===E&&z.delete(t));if(g.v7_fetcherPersist&&K.has(t)){if(Me(b)||ke(b))return void ge(t,qe(void 0))}else{if(Me(b))return z.delete(t),q>h?void ge(t,qe(void 0)):(j.add(t),ge(t,Ve(d)),re(x,b,{fetcherSubmission:d}));if(ke(b))return void fe(t,n,b.error)}if(xe(b))throw Ie(400,{type:"defer-action"});let T=x.navigation.location||x.location,C=Te(e.history,T,E.signal),y=s||p,N="idle"!==x.navigation.state?S(y,x.navigation.location,m):x.matches;c(N,"Didn't find any matches after fetcher action");let v=++V;W.set(t,v);let R=Ve(d,b.data);x.fetchers.set(t,R);let[A,O]=Ee(e.history,x,N,d,T,!1,G,H,Y,K,$,j,y,m,{[a.route.id]:b.data},void 0);O.filter((e=>e.key!==t)).forEach((e=>{let t=e.key,n=x.fetchers.get(t),r=Ve(void 0,n?n.data:void 0);x.fetchers.set(t,r),z.has(t)&&Ce(t),e.controller&&z.set(t,e.controller)})),ee({fetchers:new Map(x.fetchers)});let I=()=>O.forEach((e=>Ce(e.key)));E.signal.addEventListener("abort",I);let{results:D,loaderResults:M,fetcherResults:L}=await ae(x.matches,N,A,O,C);if(E.signal.aborted)return;E.signal.removeEventListener("abort",I),W.delete(t),z.delete(t),O.forEach((e=>z.delete(e.key)));let P=De(D);if(P){if(P.idx>=A.length){let e=O[P.idx-A.length].key;j.add(e)}return re(x,P.result)}let{loaderData:F,errors:U}=ve(x,x.matches,A,M,void 0,O,L,X);if(x.fetchers.has(t)){let e=qe(b.data);x.fetchers.set(t,e)}we(v),"loading"===x.navigation.state&&v>q?(c(k,"Expected pending action"),w&&w.abort(),te(x.navigation.location,{matches:N,loaderData:F,errors:U,fetchers:new Map(x.fetchers)})):(ee({errors:U,loaderData:Re(x.loaderData,F,N,U),fetchers:new Map(x.fetchers)}),G=!1)}(t,n,f,T,E,l,h):($.set(t,{routeId:n,path:f}),async function(t,n,r,a,i,s,l){let d=x.fetchers.get(t);ge(t,Ve(l,d?d.data:void 0),{flushSync:s});let _=new AbortController,p=Te(e.history,r,_.signal);z.set(t,_);let E=V,f=await be("loader",p,a,i,u,o,m,g.v7_relativeSplatPath);xe(f)&&(f=await Be(f,p.signal,!0)||f);z.get(t)===_&&z.delete(t);if(p.signal.aborted)return;if(K.has(t))return void ge(t,qe(void 0));if(Me(f))return q>E?void ge(t,qe(void 0)):(j.add(t),void await re(x,f));if(ke(f))return void fe(t,n,f.error);c(!xe(f),"Unhandled fetcher deferred data"),ge(t,qe(f.data))}(t,n,f,T,E,l,h))},revalidate:function(){_e(),ee({revalidation:"loading"}),"submitting"!==x.navigation.state&&("idle"!==x.navigation.state?ne(k||x.historyAction,x.navigation.location,{overrideNavigation:x.navigation}):ne(x.historyAction,x.location,{startUninterruptedRevalidation:!0}))},createHref:t=>e.history.createHref(t),encodeLocation:t=>e.history.encodeLocation(t),getFetcher:he,deleteFetcher:function(e){if(g.v7_fetcherPersist){let t=(Q.get(e)||0)-1;t<=0?(Q.delete(e),K.add(e)):Q.set(e,t)}else Se(e);ee({fetchers:new Map(x.fetchers)})},dispose:function(){f&&f(),U&&U(),T.clear(),w&&w.abort(),x.fetchers.forEach(((e,t)=>Se(t))),x.blockers.forEach(((e,t)=>Le(t)))},getBlocker:function(e,t){let n=x.blockers.get(e)||le;return Z.get(e)!==t&&Z.set(e,t),n},deleteBlocker:Le,_internalFetchControllers:z,_internalActiveDeferreds:X,_internalSetRoutes:function(e){u={},s=h(e,o,void 0,u)}},O}Symbol("deferred");function pe(e,t,n,r,a,i,o,s){let l,c;if(o){l=[];for(let e of t)if(l.push(e),e.route.id===o){c=e;break}}else l=t,c=t[t.length-1];let d=G(a||".",B(l,i),L(e.pathname,n)||e.pathname,"path"===s);return null==a&&(d.search=e.search,d.hash=e.hash),null!=a&&""!==a&&"."!==a||!c||!c.route.index||Ge(d.search)||(d.search=d.search?d.search.replace(/^\?/,"?index&"):"?index"),r&&"/"!==n&&(d.pathname="/"===d.pathname?n:H([n,d.pathname])),p(d)}function me(e,t,n,r){if(!r||!function(e){return null!=e&&("formData"in e&&null!=e.formData||"body"in e&&void 0!==e.body)}(r))return{path:n};if(r.formMethod&&!Pe(r.formMethod))return{path:n,error:Ie(405,{method:r.formMethod})};let a,i,o=()=>({path:n,error:Ie(400,{type:"invalid-body"})}),s=r.formMethod||"get",l=e?s.toUpperCase():s.toLowerCase(),d=we(n);if(void 0!==r.body){if("text/plain"===r.formEncType){if(!Fe(l))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)=>{let[n,r]=t;return""+e+n+"="+r+"\n"}),""):String(r.body);return{path:n,submission:{formMethod:l,formAction:d,formEncType:r.formEncType,formData:void 0,json:void 0,text:e}}}if("application/json"===r.formEncType){if(!Fe(l))return o();try{let e="string"===typeof r.body?JSON.parse(r.body):r.body;return{path:n,submission:{formMethod:l,formAction:d,formEncType:r.formEncType,formData:void 0,json:e,text:void 0}}}catch(g){return o()}}}if(c("function"===typeof FormData,"FormData is not available in this environment"),r.formData)a=Ce(r.formData),i=r.formData;else if(r.body instanceof FormData)a=Ce(r.body),i=r.body;else if(r.body instanceof URLSearchParams)a=r.body,i=ye(a);else if(null==r.body)a=new URLSearchParams,i=new FormData;else try{a=new URLSearchParams(r.body),i=ye(a)}catch(g){return o()}let u={formMethod:l,formAction:d,formEncType:r&&r.formEncType||"application/x-www-form-urlencoded",formData:i,json:void 0,text:void 0};if(Fe(u.formMethod))return{path:n,submission:u};let _=m(n);return t&&_.search&&Ge(_.search)&&a.append("index",""),_.search="?"+a,{path:p(_),submission:u}}function ge(e,t){let n=e;if(t){let r=e.findIndex((e=>e.route.id===t));r>=0&&(n=e.slice(0,r))}return n}function Ee(e,t,n,a,i,o,s,l,c,d,u,_,p,m,g,E){let f=E?Object.values(E)[0]:g?Object.values(g)[0]:void 0,h=e.createURL(t.location),b=e.createURL(i),T=E?Object.keys(E)[0]:void 0,C=ge(n,T).filter(((e,n)=>{let{route:i}=e;if(i.lazy)return!0;if(null==i.loader)return!1;if(o)return!!i.loader.hydrate||void 0===t.loaderData[i.id]&&(!t.errors||void 0===t.errors[i.id]);if(function(e,t,n){let r=!t||n.route.id!==t.route.id,a=void 0===e[n.route.id];return r||a}(t.loaderData,t.matches[n],e)||l.some((t=>t===e.route.id)))return!0;let c=t.matches[n],d=e;return he(e,r({currentUrl:h,currentParams:c.params,nextUrl:b,nextParams:d.params},a,{actionResult:f,defaultShouldRevalidate:s||h.pathname+h.search===b.pathname+b.search||h.search!==b.search||fe(c,d)}))})),y=[];return u.forEach(((e,i)=>{if(o||!n.some((t=>t.route.id===e.routeId))||d.has(i))return;let l=S(p,e.path,m);if(!l)return void y.push({key:i,routeId:e.routeId,path:e.path,matches:null,match:null,controller:null});let u=t.fetchers.get(i),g=He(l,e.path),E=!1;E=!_.has(i)&&(!!c.includes(i)||(u&&"idle"!==u.state&&void 0===u.data?s:he(g,r({currentUrl:h,currentParams:t.matches[t.matches.length-1].params,nextUrl:b,nextParams:n[n.length-1].params},a,{actionResult:f,defaultShouldRevalidate:s})))),E&&y.push({key:i,routeId:e.routeId,path:e.path,matches:l,match:g,controller:new AbortController})})),[C,y]}function fe(e,t){let n=e.route.path;return e.pathname!==t.pathname||null!=n&&n.endsWith("*")&&e.params["*"]!==t.params["*"]}function he(e,t){if(e.route.shouldRevalidate){let n=e.route.shouldRevalidate(t);if("boolean"===typeof n)return n}return t.defaultShouldRevalidate}async function Se(e,t,n){if(!e.lazy)return;let a=await e.lazy();if(!e.lazy)return;let i=n[e.id];c(i,"No route found in manifest");let o={};for(let r in a){let e=void 0!==i[r]&&"hasErrorBoundary"!==r;d(!e,'Route "'+i.id+'" has a static property "'+r+'" defined but its lazy function is also returning a value for this property. The lazy route property "'+r+'" will be ignored.'),e||f.has(r)||(o[r]=a[r])}Object.assign(i,o),Object.assign(i,r({},t(i),{lazy:void 0}))}async function be(e,t,n,r,a,i,o,s,l){let d,u,_;void 0===l&&(l={});let p=e=>{let r,a=new Promise(((e,t)=>r=t));return _=()=>r(),t.signal.addEventListener("abort",_),Promise.race([e({request:t,params:n.params,context:l.requestContext}),a])};try{let r=n.route[e];if(n.route.lazy)if(r){let e,t=await Promise.all([p(r).catch((t=>{e=t})),Se(n.route,i,a)]);if(e)throw e;u=t[0]}else{if(await Se(n.route,i,a),r=n.route[e],!r){if("action"===e){let e=new URL(t.url),r=e.pathname+e.search;throw Ie(405,{method:t.method,pathname:r,routeId:n.route.id})}return{type:E.data,data:void 0}}u=await p(r)}else{if(!r){let e=new URL(t.url);throw Ie(404,{pathname:e.pathname+e.search})}u=await p(r)}c(void 0!==u,"You defined "+("action"===e?"an action":"a loader")+' for route "'+n.route.id+"\" but didn't return anything from your `"+e+"` function. Please return a value or `null`.")}catch(f){d=E.error,u=f}finally{_&&t.signal.removeEventListener("abort",_)}if(Le(u)){let e,a=u.status;if(ae.has(a)){let e=u.headers.get("Location");if(c(e,"Redirects returned/thrown from loaders/actions must have a Location header"),ce.test(e)){if(!l.isStaticRequest){let n=new URL(t.url),r=e.startsWith("//")?new URL(n.protocol+e):new URL(e),a=null!=L(r.pathname,o);r.origin===n.origin&&a&&(e=r.pathname+r.search+r.hash)}}else e=pe(new URL(t.url),r.slice(0,r.indexOf(n)+1),o,!0,e,s);if(l.isStaticRequest)throw u.headers.set("Location",e),u;return{type:E.redirect,status:a,location:e,revalidate:null!==u.headers.get("X-Remix-Revalidate"),reloadDocument:null!==u.headers.get("X-Remix-Reload-Document")}}if(l.isRouteRequest){throw{type:d===E.error?E.error:E.data,response:u}}try{let t=u.headers.get("Content-Type");e=t&&/\bapplication\/json\b/.test(t)?await u.json():await u.text()}catch(f){return{type:E.error,error:f}}return d===E.error?{type:d,error:new Z(a,u.statusText,e),headers:u.headers}:{type:E.data,data:e,statusCode:u.status,headers:u.headers}}return d===E.error?{type:d,error:u}:function(e){let t=e;return t&&"object"===typeof t&&"object"===typeof t.data&&"function"===typeof t.subscribe&&"function"===typeof t.cancel&&"function"===typeof t.resolveData}(u)?{type:E.deferred,deferredData:u,statusCode:null==(m=u.init)?void 0:m.status,headers:(null==(g=u.init)?void 0:g.headers)&&new Headers(u.init.headers)}:{type:E.data,data:u};var m,g}function Te(e,t,n,r){let a=e.createURL(we(t)).toString(),i={signal:n};if(r&&Fe(r.formMethod)){let{formMethod:e,formEncType:t}=r;i.method=e.toUpperCase(),"application/json"===t?(i.headers=new Headers({"Content-Type":t}),i.body=JSON.stringify(r.json)):"text/plain"===t?i.body=r.text:"application/x-www-form-urlencoded"===t&&r.formData?i.body=Ce(r.formData):i.body=r.formData}return new Request(a,i)}function Ce(e){let t=new URLSearchParams;for(let[n,r]of e.entries())t.append(n,"string"===typeof r?r:r.name);return t}function ye(e){let t=new FormData;for(let[n,r]of e.entries())t.append(n,r);return t}function Ne(e,t,n,r,a){let i,o={},s=null,l=!1,d={};return n.forEach(((n,u)=>{let _=t[u].route.id;if(c(!Me(n),"Cannot handle redirect results in processLoaderData"),ke(n)){let t=Ae(e,_),a=n.error;r&&(a=Object.values(r)[0],r=void 0),s=s||{},null==s[t.route.id]&&(s[t.route.id]=a),o[_]=void 0,l||(l=!0,i=J(n.error)?n.error.status:500),n.headers&&(d[_]=n.headers)}else xe(n)?(a.set(_,n.deferredData),o[_]=n.deferredData.data):o[_]=n.data,null==n.statusCode||200===n.statusCode||l||(i=n.statusCode),n.headers&&(d[_]=n.headers)})),r&&(s=r,o[Object.keys(r)[0]]=void 0),{loaderData:o,errors:s,statusCode:i||200,loaderHeaders:d}}function ve(e,t,n,a,i,o,s,l){let{loaderData:d,errors:u}=Ne(t,n,a,i,l);for(let _=0;_e.route.id===t))+1):[...e]).reverse().find((e=>!0===e.route.hasErrorBoundary))||e[0]}function Oe(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 Ie(e,t){let{pathname:n,routeId:r,method:a,type:i}=void 0===t?{}:t,o="Unknown Server Error",s="Unknown @remix-run/router error";return 400===e?(o="Bad Request",a&&n&&r?s="You made a "+a+' request to "'+n+'" but did not provide a `loader` for route "'+r+'", so there is no way to handle the request.':"defer-action"===i?s="defer() is not supported in actions":"invalid-body"===i&&(s="Unable to encode submission body")):403===e?(o="Forbidden",s='Route "'+r+'" does not match URL "'+n+'"'):404===e?(o="Not Found",s='No route matches URL "'+n+'"'):405===e&&(o="Method Not Allowed",a&&n&&r?s="You made a "+a.toUpperCase()+' request to "'+n+'" but did not provide an `action` for route "'+r+'", so there is no way to handle the request.':a&&(s='Invalid request method "'+a.toUpperCase()+'"')),new Z(e||500,o,new Error(s),!0)}function De(e){for(let t=e.length-1;t>=0;t--){let n=e[t];if(Me(n))return{result:n,idx:t}}}function we(e){return p(r({},"string"===typeof e?m(e):e,{hash:""}))}function xe(e){return e.type===E.deferred}function ke(e){return e.type===E.error}function Me(e){return(e&&e.type)===E.redirect}function Le(e){return null!=e&&"number"===typeof e.status&&"string"===typeof e.statusText&&"object"===typeof e.headers&&"undefined"!==typeof e.body}function Pe(e){return re.has(e.toLowerCase())}function Fe(e){return te.has(e.toLowerCase())}async function Ue(e,t,n,r,a,i){for(let o=0;oe.route.id===l.route.id)),u=null!=d&&!fe(d,l)&&void 0!==(i&&i[l.route.id]);if(xe(s)&&(a||u)){let e=r[o];c(e,"Expected an AbortSignal for revalidating fetcher deferred result"),await Be(s,e,a).then((e=>{e&&(n[o]=e||n[o])}))}}}async function Be(e,t,n){if(void 0===n&&(n=!1),!await e.deferredData.resolveData(t)){if(n)try{return{type:E.data,data:e.deferredData.unwrappedData}}catch(r){return{type:E.error,error:r}}return{type:E.data,data:e.deferredData.data}}}function Ge(e){return new URLSearchParams(e).getAll("index").some((e=>""===e))}function He(e,t){let n="string"===typeof t?m(t).search:t.search;if(e[e.length-1].route.index&&Ge(n||""))return e[e.length-1];let r=U(e);return r[r.length-1]}function Ye(e){let{formMethod:t,formAction:n,formEncType:r,text:a,formData:i,json:o}=e;if(t&&n&&r)return null!=a?{formMethod:t,formAction:n,formEncType:r,formData:void 0,json:void 0,text:a}:null!=i?{formMethod:t,formAction:n,formEncType:r,formData:i,json:void 0,text:void 0}:void 0!==o?{formMethod:t,formAction:n,formEncType:r,formData:void 0,json:o,text:void 0}:void 0}function ze(e,t){if(t){return{state:"loading",location:e,formMethod:t.formMethod,formAction:t.formAction,formEncType:t.formEncType,formData:t.formData,json:t.json,text:t.text}}return{state:"loading",location:e,formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0}}function Ve(e,t){if(e){return{state:"loading",formMethod:e.formMethod,formAction:e.formAction,formEncType:e.formEncType,formData:e.formData,json:e.json,text:e.text,data:t}}return{state:"loading",formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0,data:t}}function qe(e){return{state:"idle",formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0,data:e}}},8703:function(e){e.exports=function(){"use strict";const{entries:e,setPrototypeOf:t,isFrozen:n,getPrototypeOf:r,getOwnPropertyDescriptor:a}=Object;let{freeze:i,seal:o,create:s}=Object,{apply:l,construct:c}="undefined"!==typeof Reflect&&Reflect;i||(i=function(e){return e}),o||(o=function(e){return e}),l||(l=function(e,t,n){return e.apply(t,n)}),c||(c=function(e,t){return new e(...t)});const d=T(Array.prototype.forEach),u=T(Array.prototype.pop),_=T(Array.prototype.push),p=T(String.prototype.toLowerCase),m=T(String.prototype.toString),g=T(String.prototype.match),E=T(String.prototype.replace),f=T(String.prototype.indexOf),h=T(String.prototype.trim),S=T(RegExp.prototype.test),b=C(TypeError);function T(e){return function(t){for(var n=arguments.length,r=new Array(n>1?n-1:0),a=1;a2&&void 0!==arguments[2]?arguments[2]:p;t&&t(e,null);let i=r.length;for(;i--;){let t=r[i];if("string"===typeof t){const e=a(t);e!==t&&(n(r)||(r[i]=e),t=e)}e[t]=!0}return e}function N(e){for(let t=0;t/gm),G=o(/\${[\w\W]*}/gm),H=o(/^data-[\-\w.\u00B7-\uFFFF]/),Y=o(/^aria-[\-\w]+$/),z=o(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i),V=o(/^(?:\w+script|data):/i),q=o(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g),W=o(/^html$/i);var j=Object.freeze({__proto__:null,MUSTACHE_EXPR:U,ERB_EXPR:B,TMPLIT_EXPR:G,DATA_ATTR:H,ARIA_ATTR:Y,IS_ALLOWED_URI:z,IS_SCRIPT_OR_DATA:V,ATTR_WHITESPACE:q,DOCTYPE_NAME:W});const $=function(){return"undefined"===typeof window?null:window},Q=function(e,t){if("object"!==typeof e||"function"!==typeof e.createPolicy)return null;let n=null;const r="data-tt-policy-suffix";t&&t.hasAttribute(r)&&(n=t.getAttribute(r));const a="dompurify"+(n?"#"+n:"");try{return e.createPolicy(a,{createHTML:e=>e,createScriptURL:e=>e})}catch(i){return console.warn("TrustedTypes policy "+a+" could not be created."),null}};function K(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:$();const n=e=>K(e);if(n.version="3.0.8",n.removed=[],!t||!t.document||9!==t.document.nodeType)return n.isSupported=!1,n;let{document:r}=t;const a=r,o=a.currentScript,{DocumentFragment:l,HTMLTemplateElement:c,Node:T,Element:C,NodeFilter:N,NamedNodeMap:U=t.NamedNodeMap||t.MozNamedAttrMap,HTMLFormElement:B,DOMParser:G,trustedTypes:H}=t,Y=C.prototype,V=R(Y,"cloneNode"),q=R(Y,"nextSibling"),X=R(Y,"childNodes"),Z=R(Y,"parentNode");if("function"===typeof c){const e=r.createElement("template");e.content&&e.content.ownerDocument&&(r=e.content.ownerDocument)}let J,ee="";const{implementation:te,createNodeIterator:ne,createDocumentFragment:re,getElementsByTagName:ae}=r,{importNode:ie}=a;let oe={};n.isSupported="function"===typeof e&&"function"===typeof Z&&te&&void 0!==te.createHTMLDocument;const{MUSTACHE_EXPR:se,ERB_EXPR:le,TMPLIT_EXPR:ce,DATA_ATTR:de,ARIA_ATTR:ue,IS_SCRIPT_OR_DATA:_e,ATTR_WHITESPACE:pe}=j;let{IS_ALLOWED_URI:me}=j,ge=null;const Ee=y({},[...A,...O,...I,...w,...k]);let fe=null;const he=y({},[...M,...L,...P,...F]);let Se=Object.seal(s(null,{tagNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},allowCustomizedBuiltInElements:{writable:!0,configurable:!1,enumerable:!0,value:!1}})),be=null,Te=null,Ce=!0,ye=!0,Ne=!1,ve=!0,Re=!1,Ae=!1,Oe=!1,Ie=!1,De=!1,we=!1,xe=!1,ke=!0,Me=!1;const Le="user-content-";let Pe=!0,Fe=!1,Ue={},Be=null;const Ge=y({},["annotation-xml","audio","colgroup","desc","foreignobject","head","iframe","math","mi","mn","mo","ms","mtext","noembed","noframes","noscript","plaintext","script","style","svg","template","thead","title","video","xmp"]);let He=null;const Ye=y({},["audio","video","img","source","image","track"]);let ze=null;const Ve=y({},["alt","class","for","id","label","name","pattern","placeholder","role","summary","title","value","style","xmlns"]),qe="http://www.w3.org/1998/Math/MathML",We="http://www.w3.org/2000/svg",je="http://www.w3.org/1999/xhtml";let $e=je,Qe=!1,Ke=null;const Xe=y({},[qe,We,je],m);let Ze=null;const Je=["application/xhtml+xml","text/html"],et="text/html";let tt=null,nt=null;const rt=r.createElement("form"),at=function(e){return e instanceof RegExp||e instanceof Function},it=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if(!nt||nt!==e){if(e&&"object"===typeof e||(e={}),e=v(e),Ze=-1===Je.indexOf(e.PARSER_MEDIA_TYPE)?et:e.PARSER_MEDIA_TYPE,tt="application/xhtml+xml"===Ze?m:p,ge="ALLOWED_TAGS"in e?y({},e.ALLOWED_TAGS,tt):Ee,fe="ALLOWED_ATTR"in e?y({},e.ALLOWED_ATTR,tt):he,Ke="ALLOWED_NAMESPACES"in e?y({},e.ALLOWED_NAMESPACES,m):Xe,ze="ADD_URI_SAFE_ATTR"in e?y(v(Ve),e.ADD_URI_SAFE_ATTR,tt):Ve,He="ADD_DATA_URI_TAGS"in e?y(v(Ye),e.ADD_DATA_URI_TAGS,tt):Ye,Be="FORBID_CONTENTS"in e?y({},e.FORBID_CONTENTS,tt):Ge,be="FORBID_TAGS"in e?y({},e.FORBID_TAGS,tt):{},Te="FORBID_ATTR"in e?y({},e.FORBID_ATTR,tt):{},Ue="USE_PROFILES"in e&&e.USE_PROFILES,Ce=!1!==e.ALLOW_ARIA_ATTR,ye=!1!==e.ALLOW_DATA_ATTR,Ne=e.ALLOW_UNKNOWN_PROTOCOLS||!1,ve=!1!==e.ALLOW_SELF_CLOSE_IN_ATTR,Re=e.SAFE_FOR_TEMPLATES||!1,Ae=e.WHOLE_DOCUMENT||!1,De=e.RETURN_DOM||!1,we=e.RETURN_DOM_FRAGMENT||!1,xe=e.RETURN_TRUSTED_TYPE||!1,Ie=e.FORCE_BODY||!1,ke=!1!==e.SANITIZE_DOM,Me=e.SANITIZE_NAMED_PROPS||!1,Pe=!1!==e.KEEP_CONTENT,Fe=e.IN_PLACE||!1,me=e.ALLOWED_URI_REGEXP||z,$e=e.NAMESPACE||je,Se=e.CUSTOM_ELEMENT_HANDLING||{},e.CUSTOM_ELEMENT_HANDLING&&at(e.CUSTOM_ELEMENT_HANDLING.tagNameCheck)&&(Se.tagNameCheck=e.CUSTOM_ELEMENT_HANDLING.tagNameCheck),e.CUSTOM_ELEMENT_HANDLING&&at(e.CUSTOM_ELEMENT_HANDLING.attributeNameCheck)&&(Se.attributeNameCheck=e.CUSTOM_ELEMENT_HANDLING.attributeNameCheck),e.CUSTOM_ELEMENT_HANDLING&&"boolean"===typeof e.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements&&(Se.allowCustomizedBuiltInElements=e.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements),Re&&(ye=!1),we&&(De=!0),Ue&&(ge=y({},k),fe=[],!0===Ue.html&&(y(ge,A),y(fe,M)),!0===Ue.svg&&(y(ge,O),y(fe,L),y(fe,F)),!0===Ue.svgFilters&&(y(ge,I),y(fe,L),y(fe,F)),!0===Ue.mathMl&&(y(ge,w),y(fe,P),y(fe,F))),e.ADD_TAGS&&(ge===Ee&&(ge=v(ge)),y(ge,e.ADD_TAGS,tt)),e.ADD_ATTR&&(fe===he&&(fe=v(fe)),y(fe,e.ADD_ATTR,tt)),e.ADD_URI_SAFE_ATTR&&y(ze,e.ADD_URI_SAFE_ATTR,tt),e.FORBID_CONTENTS&&(Be===Ge&&(Be=v(Be)),y(Be,e.FORBID_CONTENTS,tt)),Pe&&(ge["#text"]=!0),Ae&&y(ge,["html","head","body"]),ge.table&&(y(ge,["tbody"]),delete be.tbody),e.TRUSTED_TYPES_POLICY){if("function"!==typeof e.TRUSTED_TYPES_POLICY.createHTML)throw b('TRUSTED_TYPES_POLICY configuration option must provide a "createHTML" hook.');if("function"!==typeof e.TRUSTED_TYPES_POLICY.createScriptURL)throw b('TRUSTED_TYPES_POLICY configuration option must provide a "createScriptURL" hook.');J=e.TRUSTED_TYPES_POLICY,ee=J.createHTML("")}else void 0===J&&(J=Q(H,o)),null!==J&&"string"===typeof ee&&(ee=J.createHTML(""));i&&i(e),nt=e}},ot=y({},["mi","mo","mn","ms","mtext"]),st=y({},["foreignobject","desc","title","annotation-xml"]),lt=y({},["title","style","font","a","script"]),ct=y({},[...O,...I,...D]),dt=y({},[...w,...x]),ut=function(e){let t=Z(e);t&&t.tagName||(t={namespaceURI:$e,tagName:"template"});const n=p(e.tagName),r=p(t.tagName);return!!Ke[e.namespaceURI]&&(e.namespaceURI===We?t.namespaceURI===je?"svg"===n:t.namespaceURI===qe?"svg"===n&&("annotation-xml"===r||ot[r]):Boolean(ct[n]):e.namespaceURI===qe?t.namespaceURI===je?"math"===n:t.namespaceURI===We?"math"===n&&st[r]:Boolean(dt[n]):e.namespaceURI===je?!(t.namespaceURI===We&&!st[r])&&!(t.namespaceURI===qe&&!ot[r])&&!dt[n]&&(lt[n]||!ct[n]):!("application/xhtml+xml"!==Ze||!Ke[e.namespaceURI]))},_t=function(e){_(n.removed,{element:e});try{e.parentNode.removeChild(e)}catch(t){e.remove()}},pt=function(e,t){try{_(n.removed,{attribute:t.getAttributeNode(e),from:t})}catch(r){_(n.removed,{attribute:null,from:t})}if(t.removeAttribute(e),"is"===e&&!fe[e])if(De||we)try{_t(t)}catch(r){}else try{t.setAttribute(e,"")}catch(r){}},mt=function(e){let t=null,n=null;if(Ie)e=""+e;else{const t=g(e,/^[\r\n\t ]+/);n=t&&t[0]}"application/xhtml+xml"===Ze&&$e===je&&(e=''+e+"");const a=J?J.createHTML(e):e;if($e===je)try{t=(new G).parseFromString(a,Ze)}catch(o){}if(!t||!t.documentElement){t=te.createDocument($e,"template",null);try{t.documentElement.innerHTML=Qe?ee:a}catch(o){}}const i=t.body||t.documentElement;return e&&n&&i.insertBefore(r.createTextNode(n),i.childNodes[0]||null),$e===je?ae.call(t,Ae?"html":"body")[0]:Ae?t.documentElement:i},gt=function(e){return ne.call(e.ownerDocument||e,e,N.SHOW_ELEMENT|N.SHOW_COMMENT|N.SHOW_TEXT,null)},Et=function(e){return e instanceof B&&("string"!==typeof e.nodeName||"string"!==typeof e.textContent||"function"!==typeof e.removeChild||!(e.attributes instanceof U)||"function"!==typeof e.removeAttribute||"function"!==typeof e.setAttribute||"string"!==typeof e.namespaceURI||"function"!==typeof e.insertBefore||"function"!==typeof e.hasChildNodes)},ft=function(e){return"function"===typeof T&&e instanceof T},ht=function(e,t,r){oe[e]&&d(oe[e],(e=>{e.call(n,t,r,nt)}))},St=function(e){let t=null;if(ht("beforeSanitizeElements",e,null),Et(e))return _t(e),!0;const r=tt(e.nodeName);if(ht("uponSanitizeElement",e,{tagName:r,allowedTags:ge}),e.hasChildNodes()&&!ft(e.firstElementChild)&&S(/<[/\w]/g,e.innerHTML)&&S(/<[/\w]/g,e.textContent))return _t(e),!0;if(!ge[r]||be[r]){if(!be[r]&&Tt(r)){if(Se.tagNameCheck instanceof RegExp&&S(Se.tagNameCheck,r))return!1;if(Se.tagNameCheck instanceof Function&&Se.tagNameCheck(r))return!1}if(Pe&&!Be[r]){const t=Z(e)||e.parentNode,n=X(e)||e.childNodes;if(n&&t)for(let r=n.length-1;r>=0;--r)t.insertBefore(V(n[r],!0),q(e))}return _t(e),!0}return e instanceof C&&!ut(e)?(_t(e),!0):"noscript"!==r&&"noembed"!==r&&"noframes"!==r||!S(/<\/no(script|embed|frames)/i,e.innerHTML)?(Re&&3===e.nodeType&&(t=e.textContent,d([se,le,ce],(e=>{t=E(t,e," ")})),e.textContent!==t&&(_(n.removed,{element:e.cloneNode()}),e.textContent=t)),ht("afterSanitizeElements",e,null),!1):(_t(e),!0)},bt=function(e,t,n){if(ke&&("id"===t||"name"===t)&&(n in r||n in rt))return!1;if(ye&&!Te[t]&&S(de,t));else if(Ce&&S(ue,t));else if(!fe[t]||Te[t]){if(!(Tt(e)&&(Se.tagNameCheck instanceof RegExp&&S(Se.tagNameCheck,e)||Se.tagNameCheck instanceof Function&&Se.tagNameCheck(e))&&(Se.attributeNameCheck instanceof RegExp&&S(Se.attributeNameCheck,t)||Se.attributeNameCheck instanceof Function&&Se.attributeNameCheck(t))||"is"===t&&Se.allowCustomizedBuiltInElements&&(Se.tagNameCheck instanceof RegExp&&S(Se.tagNameCheck,n)||Se.tagNameCheck instanceof Function&&Se.tagNameCheck(n))))return!1}else if(ze[t]);else if(S(me,E(n,pe,"")));else if("src"!==t&&"xlink:href"!==t&&"href"!==t||"script"===e||0!==f(n,"data:")||!He[e])if(Ne&&!S(_e,E(n,pe,"")));else if(n)return!1;return!0},Tt=function(e){return e.indexOf("-")>0},Ct=function(e){ht("beforeSanitizeAttributes",e,null);const{attributes:t}=e;if(!t)return;const r={attrName:"",attrValue:"",keepAttr:!0,allowedAttributes:fe};let a=t.length;for(;a--;){const o=t[a],{name:s,namespaceURI:l,value:c}=o,_=tt(s);let p="value"===s?c:h(c);if(r.attrName=_,r.attrValue=p,r.keepAttr=!0,r.forceKeepAttr=void 0,ht("uponSanitizeAttribute",e,r),p=r.attrValue,r.forceKeepAttr)continue;if(pt(s,e),!r.keepAttr)continue;if(!ve&&S(/\/>/i,p)){pt(s,e);continue}Re&&d([se,le,ce],(e=>{p=E(p,e," ")}));const m=tt(e.nodeName);if(bt(m,_,p)){if(!Me||"id"!==_&&"name"!==_||(pt(s,e),p=Le+p),J&&"object"===typeof H&&"function"===typeof H.getAttributeType)if(l);else switch(H.getAttributeType(m,_)){case"TrustedHTML":p=J.createHTML(p);break;case"TrustedScriptURL":p=J.createScriptURL(p)}try{l?e.setAttributeNS(l,s,p):e.setAttribute(s,p),u(n.removed)}catch(i){}}}ht("afterSanitizeAttributes",e,null)},yt=function e(t){let n=null;const r=gt(t);for(ht("beforeSanitizeShadowDOM",t,null);n=r.nextNode();)ht("uponSanitizeShadowNode",n,null),St(n)||(n.content instanceof l&&e(n.content),Ct(n));ht("afterSanitizeShadowDOM",t,null)};return n.sanitize=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=null,i=null,o=null,s=null;if(Qe=!e,Qe&&(e="\x3c!--\x3e"),"string"!==typeof e&&!ft(e)){if("function"!==typeof e.toString)throw b("toString is not a function");if("string"!==typeof(e=e.toString()))throw b("dirty is not a string, aborting")}if(!n.isSupported)return e;if(Oe||it(t),n.removed=[],"string"===typeof e&&(Fe=!1),Fe){if(e.nodeName){const t=tt(e.nodeName);if(!ge[t]||be[t])throw b("root node is forbidden and cannot be sanitized in-place")}}else if(e instanceof T)r=mt("\x3c!----\x3e"),i=r.ownerDocument.importNode(e,!0),1===i.nodeType&&"BODY"===i.nodeName||"HTML"===i.nodeName?r=i:r.appendChild(i);else{if(!De&&!Re&&!Ae&&-1===e.indexOf("<"))return J&&xe?J.createHTML(e):e;if(r=mt(e),!r)return De?null:xe?ee:""}r&&Ie&&_t(r.firstChild);const c=gt(Fe?e:r);for(;o=c.nextNode();)St(o)||(o.content instanceof l&&yt(o.content),Ct(o));if(Fe)return e;if(De){if(we)for(s=re.call(r.ownerDocument);r.firstChild;)s.appendChild(r.firstChild);else s=r;return(fe.shadowroot||fe.shadowrootmode)&&(s=ie.call(a,s,!0)),s}let u=Ae?r.outerHTML:r.innerHTML;return Ae&&ge["!doctype"]&&r.ownerDocument&&r.ownerDocument.doctype&&r.ownerDocument.doctype.name&&S(W,r.ownerDocument.doctype.name)&&(u="\n"+u),Re&&d([se,le,ce],(e=>{u=E(u,e," ")})),J&&xe?J.createHTML(u):u},n.setConfig=function(){it(arguments.length>0&&void 0!==arguments[0]?arguments[0]:{}),Oe=!0},n.clearConfig=function(){nt=null,Oe=!1},n.isValidAttribute=function(e,t,n){nt||it({});const r=tt(e),a=tt(t);return bt(r,a,n)},n.addHook=function(e,t){"function"===typeof t&&(oe[e]=oe[e]||[],_(oe[e],t))},n.removeHook=function(e){if(oe[e])return u(oe[e])},n.removeHooks=function(e){oe[e]&&(oe[e]=[])},n.removeAllHooks=function(){oe={}},n}return K()}()},1132:e=>{"use strict";var t=Object.prototype.hasOwnProperty,n=Object.prototype.toString,r=Object.defineProperty,a=Object.getOwnPropertyDescriptor,i=function(e){return"function"===typeof Array.isArray?Array.isArray(e):"[object Array]"===n.call(e)},o=function(e){if(!e||"[object Object]"!==n.call(e))return!1;var r,a=t.call(e,"constructor"),i=e.constructor&&e.constructor.prototype&&t.call(e.constructor.prototype,"isPrototypeOf");if(e.constructor&&!a&&!i)return!1;for(r in e);return"undefined"===typeof r||t.call(e,r)},s=function(e,t){r&&"__proto__"===t.name?r(e,t.name,{enumerable:!0,configurable:!0,value:t.newValue,writable:!0}):e[t.name]=t.newValue},l=function(e,n){if("__proto__"===n){if(!t.call(e,n))return;if(a)return a(e,n).value}return e[n]};e.exports=function e(){var t,n,r,a,c,d,u=arguments[0],_=1,p=arguments.length,m=!1;for("boolean"===typeof u&&(m=u,u=arguments[1]||{},_=2),(null==u||"object"!==typeof u&&"function"!==typeof u)&&(u={});_{var t=/\/\*[^*]*\*+([^/*][^*]*\*+)*\//g,n=/\n/g,r=/^\s*/,a=/^(\*?[-#/*\\\w]+(\[[0-9a-z_-]+\])?)\s*/,i=/^:\s*/,o=/^((?:'(?:\\'|.)*?'|"(?:\\"|.)*?"|\([^)]*?\)|[^};])+)/,s=/^[;\s]*/,l=/^\s+|\s+$/g,c="";function d(e){return e?e.replace(l,c):c}e.exports=function(e,l){if("string"!==typeof e)throw new TypeError("First argument must be a string");if(!e)return[];l=l||{};var u=1,_=1;function p(e){var t=e.match(n);t&&(u+=t.length);var r=e.lastIndexOf("\n");_=~r?e.length-r:_+e.length}function m(){var e={line:u,column:_};return function(t){return t.position=new g(e),S(),t}}function g(e){this.start=e,this.end={line:u,column:_},this.source=l.source}g.prototype.content=e;var E=[];function f(t){var n=new Error(l.source+":"+u+":"+_+": "+t);if(n.reason=t,n.filename=l.source,n.line=u,n.column=_,n.source=e,!l.silent)throw n;E.push(n)}function h(t){var n=t.exec(e);if(n){var r=n[0];return p(r),e=e.slice(r.length),n}}function S(){h(r)}function b(e){var t;for(e=e||[];t=T();)!1!==t&&e.push(t);return e}function T(){var t=m();if("/"==e.charAt(0)&&"*"==e.charAt(1)){for(var n=2;c!=e.charAt(n)&&("*"!=e.charAt(n)||"/"!=e.charAt(n+1));)++n;if(n+=2,c===e.charAt(n-1))return f("End of comment missing");var r=e.slice(2,n-2);return _+=2,p(r),e=e.slice(n),_+=2,t({type:"comment",comment:r})}}function C(){var e=m(),n=h(a);if(n){if(T(),!h(i))return f("property missing ':'");var r=h(o),l=e({type:"declaration",property:d(n[0].replace(t,c)),value:r?d(r[0].replace(t,c)):c});return h(s),l}}return S(),function(){var e,t=[];for(b(t);e=C();)!1!==e&&(t.push(e),b(t));return t}()}},888:(e,t,n)=>{"use strict";var r=n(9047);function a(){}function i(){}i.resetWarningCache=a,e.exports=function(){function e(e,t,n,a,i,o){if(o!==r){var s=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw s.name="Invariant Violation",s}}function t(){return e}e.isRequired=e;var n={array:e,bigint:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,elementType:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t,checkPropTypes:i,resetWarningCache:a};return n.PropTypes=n,n}},2007:(e,t,n)=>{e.exports=n(888)()},9047:e=>{"use strict";e.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},4463:(e,t,n)=>{"use strict";var r=n(2791),a=n(5296);function i(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n