diff --git a/build/bundle.js b/build/bundle.js index d2f1491..21c0158 100644 --- a/build/bundle.js +++ b/build/bundle.js @@ -1,2 +1,2 @@ -!function(e){var t={};function n(r){if(t[r])return t[r].exports;var a=t[r]={i:r,l:!1,exports:{}};return e[r].call(a.exports,a,a.exports,n),a.l=!0,a.exports}n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var a in e)n.d(r,a,function(t){return e[t]}.bind(null,a));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="/build/",n(n.s=25)}([function(e,t,n){"use strict";e.exports=n(18)},function(e,t,n){"use strict";function r(){return r=Object.assign?Object.assign.bind():function(e){for(var t=1;th(e,"string"==typeof e?null:e.state,0===t?"default":void 0)));let l=u(null==r?t.length-1:r),o=a.Pop,s=null;function u(e){return Math.min(Math.max(e,0),t.length-1)}function d(){return t[l]}function h(e,n,r){void 0===n&&(n=null);let a=f(t?d().pathname:"/",e,n,r);return c("/"===a.pathname.charAt(0),"relative pathnames are not supported in memory history: "+JSON.stringify(e)),a}function g(e){return"string"==typeof e?e:m(e)}return{get index(){return l},get action(){return o},get location(){return d()},createHref:g,createURL:e=>new URL(g(e),"http://localhost"),encodeLocation(e){let t="string"==typeof e?p(e):e;return{pathname:t.pathname||"",search:t.search||"",hash:t.hash||""}},push(e,n){o=a.Push;let r=h(e,n);l+=1,t.splice(l,t.length,r),i&&s&&s({action:o,location:r,delta:1})},replace(e,n){o=a.Replace;let r=h(e,n);t[l]=r,i&&s&&s({action:o,location:r,delta:0})},go(e){o=a.Pop;let n=u(l+e),r=t[n];l=n,s&&s({action:o,location:r,delta:e})},listen:e=>(s=e,()=>{s=null})}}function o(e){return void 0===e&&(e={}),h((function(e,t){let{pathname:n,search:r,hash:a}=e.location;return f("",{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:m(t)}),null,e)}function s(e){return void 0===e&&(e={}),h((function(e,t){let{pathname:n="/",search:r="",hash:a=""}=p(e.location.hash.substr(1));return n.startsWith("/")||n.startsWith(".")||(n="/"+n),f("",{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:m(t))}),(function(e,t){c("/"===e.pathname.charAt(0),"relative pathnames are not supported in hash history.push("+JSON.stringify(t)+")")}),e)}function u(e,t){if(!1===e||null==e)throw new Error(t)}function c(e,t){if(!e){"undefined"!=typeof console&&console.warn(t);try{throw new Error(t)}catch(e){}}}function d(e,t){return{usr:e.state,key:e.key,idx:t}}function f(e,t,n,a){return void 0===n&&(n=null),r({pathname:"string"==typeof e?e:e.pathname,search:"",hash:""},"string"==typeof t?p(t):t,{state:n,key:t&&t.key||a||Math.random().toString(36).substr(2,8)})}function m(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 p(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 h(e,t,n,l){void 0===l&&(l={});let{window:o=document.defaultView,v5Compat:s=!1}=l,c=o.history,p=a.Pop,h=null,g=v();function v(){return(c.state||{idx:null}).idx}function y(){p=a.Pop;let e=v(),t=null==e?null:e-g;g=e,h&&h({action:p,location:w.location,delta:t})}function b(e){let t="null"!==o.location.origin?o.location.origin:o.location.href,n="string"==typeof e?e:m(e);return u(t,"No window.location.(origin|href) available to create URL for href: "+n),new URL(n,t)}null==g&&(g=0,c.replaceState(r({},c.state,{idx:g}),""));let w={get action(){return p},get location(){return e(o,c)},listen(e){if(h)throw new Error("A history only accepts one active listener");return o.addEventListener(i,y),h=e,()=>{o.removeEventListener(i,y),h=null}},createHref:e=>t(o,e),createURL:b,encodeLocation(e){let t=b(e);return{pathname:t.pathname,search:t.search,hash:t.hash}},push:function(e,t){p=a.Push;let r=f(w.location,e,t);n&&n(r,e),g=v()+1;let i=d(r,g),l=w.createHref(r);try{c.pushState(i,"",l)}catch(e){if(e instanceof DOMException&&"DataCloneError"===e.name)throw e;o.location.assign(l)}s&&h&&h({action:p,location:w.location,delta:1})},replace:function(e,t){p=a.Replace;let r=f(w.location,e,t);n&&n(r,e),g=v();let i=d(r,g),l=w.createHref(r);c.replaceState(i,"",l),s&&h&&h({action:p,location:w.location,delta:0})},go:e=>c.go(e)};return w}var g;!function(e){e.data="data",e.deferred="deferred",e.redirect="redirect",e.error="error"}(g||(g={}));const v=new Set(["lazy","caseSensitive","path","id","index","children"]);function y(e,t,n,a){return void 0===n&&(n=[]),void 0===a&&(a={}),e.map(((e,i)=>{let l=[...n,i],o="string"==typeof e.id?e.id:l.join("-");if(u(!0!==e.index||!e.children,"Cannot specify children on an index route"),u(!a[o],'Found a route id collision on id "'+o+"\". 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:o});return a[o]=n,n}{let n=r({},e,t(e),{id:o,children:void 0});return a[o]=n,e.children&&(n.children=y(e.children,t,l,a)),n}}))}function b(e,t,n){void 0===n&&(n="/");let r=I(("string"==typeof t?p(t):t).pathname||"/",n);if(null==r)return null;let a=x(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 e=0;null==i&&e{let l={relativePath:void 0===i?e.path||"":i,caseSensitive:!0===e.caseSensitive,childrenIndex:a,route:e};l.relativePath.startsWith("/")&&(u(l.relativePath.startsWith(r),'Absolute route path "'+l.relativePath+'" nested under path "'+r+'" is not valid. An absolute child route path must start with the combined path of all its parent routes.'),l.relativePath=l.relativePath.slice(r.length));let o=U([r,l.relativePath]),s=n.concat(l);e.children&&e.children.length>0&&(u(!0!==e.index,'Index routes must not have child routes. Please remove all child routes from route path "'+o+'".'),x(e.children,t,s,o)),(null!=e.path||e.index)&&t.push({path:o,score:P(o,e.index),routesMeta:s})};return e.forEach(((e,t)=>{var n;if(""!==e.path&&null!=(n=e.path)&&n.includes("?"))for(let n of k(e.path))a(e,t,n);else a(e,t)})),t}function k(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 l=k(r.join("/")),o=[];return o.push(...l.map((e=>""===e?i:[i,e].join("/")))),a&&o.push(...l),o.map((t=>e.startsWith("/")&&""===t?"/":t))}const S=/^:\w+$/,E=3,C=2,N=1,T=10,D=-2,L=e=>"*"===e;function P(e,t){let n=e.split("/"),r=n.length;return n.some(L)&&(r+=D),t&&(r+=C),n.filter((e=>!L(e))).reduce(((e,t)=>e+(S.test(t)?E:""===t?N:T)),r)}function F(e,t){let{routesMeta:n}=e,r={},a="/",i=[];for(let e=0;e(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],l=i.replace(/(.)\/+$/,"$1"),o=a.slice(1);return{params:r.reduce(((e,t,n)=>{let{paramName:r,isOptional:a}=t;if("*"===r){let e=o[n]||"";l=i.slice(0,i.length-e.length).replace(/(.)\/+$/,"$1")}const s=o[n];return e[r]=a&&!s?void 0:function(e,t){try{return decodeURIComponent(e)}catch(n){return c(!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}}(s||"",r),e}),{}),pathname:i,pathnameBase:l,pattern:e}}function _(e){try{return decodeURI(e)}catch(t){return c(!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 I(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 O(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 R(e){return e.filter(((e,t)=>0===t||e.route.path&&e.route.path.length>0))}function z(e,t){let n=R(e);return t?n.map(((t,n)=>n===e.length-1?t.pathname:t.pathnameBase)):n.map((e=>e.pathnameBase))}function j(e,t,n,a){let i;void 0===a&&(a=!1),"string"==typeof e?i=p(e):(i=r({},e),u(!i.pathname||!i.pathname.includes("?"),O("?","pathname","search",i)),u(!i.pathname||!i.pathname.includes("#"),O("#","pathname","hash",i)),u(!i.search||!i.search.includes("#"),O("#","search","hash",i)));let l,o=""===e||""===i.pathname,s=o?"/":i.pathname;if(null==s)l=n;else{let e=t.length-1;if(!a&&s.startsWith("..")){let t=s.split("/");for(;".."===t[0];)t.shift(),e-=1;i.pathname=t.join("/")}l=e>=0?t[e]:"/"}let c=function(e,t){void 0===t&&(t="/");let{pathname:n,search:r="",hash:a=""}="string"==typeof e?p(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:H(r),hash:B(a)}}(i,l),d=s&&"/"!==s&&s.endsWith("/"),f=(o||"."===s)&&n.endsWith("/");return c.pathname.endsWith("/")||!d&&!f||(c.pathname+="/"),c}const U=e=>e.join("/").replace(/\/\/+/g,"/"),A=e=>e.replace(/\/+$/,"").replace(/^\/*/,"/"),H=e=>e&&"?"!==e?e.startsWith("?")?e:"?"+e:"",B=e=>e&&"#"!==e?e.startsWith("#")?e:"#"+e:"";class V extends Error{}class W{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 $(e){return null!=e&&"number"==typeof e.status&&"string"==typeof e.statusText&&"boolean"==typeof e.internal&&"data"in e}const q=["post","put","patch","delete"],Q=new Set(q),Z=["get",...q],Y=new Set(Z),G=new Set([301,302,303,307,308]),J=new Set([307,308]),K={state:"idle",location:void 0,formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0},X={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},te=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,ne=e=>({hasErrorBoundary:Boolean(e.hasErrorBoundary)}),re="remix-router-transitions";function ae(e){const t=e.window?e.window:"undefined"!=typeof window?window:void 0,n=void 0!==t&&void 0!==t.document&&void 0!==t.document.createElement,i=!n;let l;if(u(e.routes.length>0,"You must provide a non-empty routes array to createRouter"),e.mapRouteProperties)l=e.mapRouteProperties;else if(e.detectErrorBoundary){let t=e.detectErrorBoundary;l=e=>({hasErrorBoundary:t(e)})}else l=ne;let o,s,d={},m=y(e.routes,l,void 0,d),p=e.basename||"/",h=r({v7_fetcherPersist:!1,v7_normalizeFormMethod:!1,v7_partialHydration:!1,v7_prependBasename:!1,v7_relativeSplatPath:!1},e.future),v=null,x=new Set,k=null,S=null,E=null,C=null!=e.hydrationData,N=b(m,e.history.location,p),T=null;if(null==N){let t=xe(404,{pathname:e.history.location.pathname}),{matches:n,route:r}=we(m);N=n,T={[r.id]:t}}let D,L=N.some((e=>e.route.lazy)),P=N.some((e=>e.route.loader));if(L)s=!1;else if(P)if(h.v7_partialHydration){let t=e.hydrationData?e.hydrationData.loaderData:null,n=e.hydrationData?e.hydrationData.errors:null;s=N.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 s=null!=e.hydrationData;else s=!0;let F,M={historyAction:e.history.action,location:e.history.location,matches:N,initialized:s,navigation:K,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||T,fetchers:new Map,blockers:new Map},_=a.Pop,O=!1,R=!1,z=new Map,j=null,U=!1,A=!1,H=[],B=[],V=new Map,W=0,$=-1,q=new Map,Q=new Set,Z=new Map,Y=new Map,G=new Set,ae=new Map,oe=new Map,ue=!1;function ce(e,t){void 0===t&&(t={}),M=r({},M,e);let n=[],a=[];h.v7_fetcherPersist&&M.fetchers.forEach(((e,t)=>{"idle"===e.state&&(G.has(t)?a.push(t):n.push(t))})),[...x].forEach((e=>e(M,{deletedFetchers:a,unstable_viewTransitionOpts:t.viewTransitionOpts,unstable_flushSync:!0===t.flushSync}))),h.v7_fetcherPersist&&(n.forEach((e=>M.fetchers.delete(e))),a.forEach((e=>je(e))))}function de(t,n,i){var l,s;let u,{flushSync:c}=void 0===i?{}:i,d=null!=M.actionData&&null!=M.navigation.formMethod&&Le(M.navigation.formMethod)&&"loading"===M.navigation.state&&!0!==(null==(l=t.state)?void 0:l._isRedirect);u=n.actionData?Object.keys(n.actionData).length>0?n.actionData:null:d?M.actionData:null;let f=n.loaderData?ye(M.loaderData,n.loaderData,n.matches||[],n.errors):M.loaderData,p=M.blockers;p.size>0&&(p=new Map(p),p.forEach(((e,t)=>p.set(t,ee))));let h,g=!0===O||null!=M.navigation.formMethod&&Le(M.navigation.formMethod)&&!0!==(null==(s=t.state)?void 0:s._isRedirect);if(o&&(m=o,o=void 0),U||_===a.Pop||(_===a.Push?e.history.push(t,t.state):_===a.Replace&&e.history.replace(t,t.state)),_===a.Pop){let e=z.get(M.location.pathname);e&&e.has(t.pathname)?h={currentLocation:M.location,nextLocation:t}:z.has(t.pathname)&&(h={currentLocation:t,nextLocation:M.location})}else if(R){let e=z.get(M.location.pathname);e?e.add(t.pathname):(e=new Set([t.pathname]),z.set(M.location.pathname,e)),h={currentLocation:M.location,nextLocation:t}}ce(r({},n,{actionData:u,loaderData:f,historyAction:_,location:t,initialized:!0,navigation:K,revalidation:"idle",restoreScrollPosition:Ze(t,n.matches||M.matches),preventScrollReset:g,blockers:p}),{viewTransitionOpts:h,flushSync:!0===c}),_=a.Pop,O=!1,R=!1,U=!1,A=!1,H=[],B=[]}async function pe(t,n,i){F&&F.abort(),F=null,_=t,U=!0===(i&&i.startUninterruptedRevalidation),function(e,t){if(k&&E){let n=Qe(e,t);k[n]=E()}}(M.location,M.matches),O=!0===(i&&i.preventScrollReset),R=!0===(i&&i.enableViewTransition);let s=o||m,u=i&&i.overrideNavigation,c=b(s,n,p),f=!0===(i&&i.flushSync);if(!c){let e=xe(404,{pathname:n.pathname}),{matches:t,route:r}=we(s);return qe(),void de(n,{matches:t,loaderData:{},errors:{[r.id]:e}},{flushSync:f})}if(M.initialized&&!A&&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}(M.location,n)&&!(i&&i.submission&&Le(i.submission.formMethod)))return void de(n,{matches:c},{flushSync:f});F=new AbortController;let v,y,w=me(e.history,n,F.signal,i&&i.submission);if(i&&i.pendingError)y={[be(c).route.id]:i.pendingError};else if(i&&i.submission&&Le(i.submission.formMethod)){let e=await async function(e,t,n,r,i){void 0===i&&(i={});Se();let o,s=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);ce({navigation:s},{flushSync:!0===i.flushSync});let u=_e(r,t);if(u.route.action||u.route.lazy){if(o=await fe("action",e,u,r,d,l,p,h.v7_relativeSplatPath),e.signal.aborted)return{shortCircuited:!0}}else o={type:g.error,error:xe(405,{method:e.method,pathname:t.pathname,routeId:u.route.id})};if(Ne(o)){let e;return e=i&&null!=i.replace?i.replace:o.location===M.location.pathname+M.location.search,await he(M,o,{submission:n,replace:e}),{shortCircuited:!0}}if(Ce(o)){let e=be(r,u.route.id);return!0!==(i&&i.replace)&&(_=a.Push),{pendingActionData:{},pendingActionError:{[e.route.id]:o.error}}}if(Ee(o))throw xe(400,{type:"defer-action"});return{pendingActionData:{[u.route.id]:o.data}}}(w,n,i.submission,c,{replace:i.replace,flushSync:f});if(e.shortCircuited)return;v=e.pendingActionData,y=e.pendingActionError,u=Oe(n,i.submission),f=!1,w=new Request(w.url,{signal:w.signal})}let{shortCircuited:x,loaderData:S,errors:C}=await async function(t,n,a,i,l,s,u,c,d,f,g){let v=i||Oe(n,l),y=l||s||Ie(v),b=o||m,[w,x]=se(e.history,M,a,y,n,h.v7_partialHydration&&!0===c,A,H,B,G,Z,Q,b,p,f,g);if(qe((e=>!(a&&a.some((t=>t.route.id===e)))||w&&w.some((t=>t.route.id===e)))),$=++W,0===w.length&&0===x.length){let e=He();return de(n,r({matches:a,loaderData:{},errors:g||null},f?{actionData:f}:{},e?{fetchers:new Map(M.fetchers)}:{}),{flushSync:d}),{shortCircuited:!0}}if(!(U||h.v7_partialHydration&&c)){x.forEach((e=>{let t=M.fetchers.get(e.key),n=Re(void 0,t?t.data:void 0);M.fetchers.set(e.key,n)}));let e=f||M.actionData;ce(r({navigation:v},e?0===Object.keys(e).length?{actionData:null}:{actionData:e}:{},x.length>0?{fetchers:new Map(M.fetchers)}:{}),{flushSync:d})}x.forEach((e=>{V.has(e.key)&&Ue(e.key),e.controller&&V.set(e.key,e.controller)}));let k=()=>x.forEach((e=>Ue(e.key)));F&&F.signal.addEventListener("abort",k);let{results:S,loaderResults:E,fetcherResults:C}=await ge(M.matches,a,w,x,t);if(t.signal.aborted)return{shortCircuited:!0};F&&F.signal.removeEventListener("abort",k);x.forEach((e=>V.delete(e.key)));let N=ke(S);if(N){if(N.idx>=w.length){let e=x[N.idx-w.length].key;Q.add(e)}return await he(M,N.result,{replace:u}),{shortCircuited:!0}}let{loaderData:T,errors:D}=ve(M,a,w,E,g,x,C,ae);ae.forEach(((e,t)=>{e.subscribe((n=>{(n||e.done)&&ae.delete(t)}))}));let L=He(),P=Be($),_=L||P||x.length>0;return r({loaderData:T,errors:D},_?{fetchers:new Map(M.fetchers)}:{})}(w,n,c,u,i&&i.submission,i&&i.fetcherSubmission,i&&i.replace,i&&!0===i.initialHydration,f,v,y);x||(F=null,de(n,r({matches:c},v?{actionData:v}:{},{loaderData:S,errors:C})))}async function he(i,l,o){let{submission:s,fetcherSubmission:c,replace:d}=void 0===o?{}:o;l.revalidate&&(A=!0);let m=f(i.location,l.location,{_isRedirect:!0});if(u(m,"Expected a location on the redirect navigation"),n){let n=!1;if(l.reloadDocument)n=!0;else if(te.test(l.location)){const r=e.history.createURL(l.location);n=r.origin!==t.location.origin||null==I(r.pathname,p)}if(n)return void(d?t.location.replace(l.location):t.location.assign(l.location))}F=null;let h=!0===d?a.Replace:a.Push,{formMethod:g,formAction:v,formEncType:y}=i.navigation;!s&&!c&&g&&v&&y&&(s=Ie(i.navigation));let b=s||c;if(J.has(l.status)&&b&&Le(b.formMethod))await pe(h,m,{submission:r({},b,{formAction:l.location}),preventScrollReset:O});else{let e=Oe(m,s);await pe(h,m,{overrideNavigation:e,fetcherSubmission:c,preventScrollReset:O})}}async function ge(t,n,r,a,i){let o=await Promise.all([...r.map((e=>fe("loader",i,e,n,d,l,p,h.v7_relativeSplatPath))),...a.map((t=>{if(t.matches&&t.match&&t.controller)return fe("loader",me(e.history,t.path,t.controller.signal),t.match,t.matches,d,l,p,h.v7_relativeSplatPath);return{type:g.error,error:xe(404,{pathname:t.path})}}))]),s=o.slice(0,r.length),u=o.slice(r.length);return await Promise.all([Pe(t,r,s,s.map((()=>i.signal)),!1,M.loaderData),Pe(t,a.map((e=>e.match)),u,a.map((e=>e.controller?e.controller.signal:null)),!0)]),{results:o,loaderResults:s,fetcherResults:u}}function Se(){A=!0,H.push(...qe()),Z.forEach(((e,t)=>{V.has(t)&&(B.push(t),Ue(t))}))}function Te(e,t,n){void 0===n&&(n={}),M.fetchers.set(e,t),ce({fetchers:new Map(M.fetchers)},{flushSync:!0===(n&&n.flushSync)})}function De(e,t,n,r){void 0===r&&(r={});let a=be(M.matches,t);je(e),ce({errors:{[a.route.id]:n},fetchers:new Map(M.fetchers)},{flushSync:!0===(r&&r.flushSync)})}function Me(e){return h.v7_fetcherPersist&&(Y.set(e,(Y.get(e)||0)+1),G.has(e)&&G.delete(e)),M.fetchers.get(e)||X}function je(e){let t=M.fetchers.get(e);!V.has(e)||t&&"loading"===t.state&&q.has(e)||Ue(e),Z.delete(e),q.delete(e),Q.delete(e),G.delete(e),M.fetchers.delete(e)}function Ue(e){let t=V.get(e);u(t,"Expected fetch controller: "+e),t.abort(),V.delete(e)}function Ae(e){for(let t of e){let e=ze(Me(t).data);M.fetchers.set(t,e)}}function He(){let e=[],t=!1;for(let n of Q){let r=M.fetchers.get(n);u(r,"Expected fetcher: "+n),"loading"===r.state&&(Q.delete(n),e.push(n),t=!0)}return Ae(e),t}function Be(e){let t=[];for(let[n,r]of q)if(r0}function Ve(e){M.blockers.delete(e),oe.delete(e)}function We(e,t){let n=M.blockers.get(e)||ee;u("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(M.blockers);r.set(e,t),ce({blockers:r})}function $e(e){let{currentLocation:t,nextLocation:n,historyAction:r}=e;if(0===oe.size)return;oe.size>1&&c(!1,"A router only supports one blocker at a time");let a=Array.from(oe.entries()),[i,l]=a[a.length-1],o=M.blockers.get(i);return o&&"proceeding"===o.state?void 0:l({currentLocation:t,nextLocation:n,historyAction:r})?i:void 0}function qe(e){let t=[];return ae.forEach(((n,r)=>{e&&!e(r)||(n.cancel(),t.push(r),ae.delete(r))})),t}function Qe(e,t){if(S){return S(e,t.map((e=>w(e,M.loaderData))))||e.key}return e.key}function Ze(e,t){if(k){let n=Qe(e,t),r=k[n];if("number"==typeof r)return r}return null}return D={get basename(){return p},get future(){return h},get state(){return M},get routes(){return m},get window(){return t},initialize:function(){if(v=e.history.listen((t=>{let{action:n,location:r,delta:a}=t;if(ue)return void(ue=!1);c(0===oe.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=$e({currentLocation:M.location,nextLocation:r,historyAction:n});return i&&null!=a?(ue=!0,e.history.go(-1*a),void We(i,{state:"blocked",location:r,proceed(){We(i,{state:"proceeding",proceed:void 0,reset:void 0,location:r}),e.history.go(a)},reset(){let e=new Map(M.blockers);e.set(i,ee),ce({blockers:e})}})):pe(n,r)})),n){!function(e,t){try{let n=e.sessionStorage.getItem(re);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(e){}}(t,z);let e=()=>function(e,t){if(t.size>0){let n={};for(let[e,r]of t)n[e]=[...r];try{e.sessionStorage.setItem(re,JSON.stringify(n))}catch(e){c(!1,"Failed to save applied view transitions in sessionStorage ("+e+").")}}}(t,z);t.addEventListener("pagehide",e),j=()=>t.removeEventListener("pagehide",e)}return M.initialized||pe(a.Pop,M.location,{initialHydration:!0}),D},subscribe:function(e){return x.add(e),()=>x.delete(e)},enableScrollRestoration:function(e,t,n){if(k=e,E=t,S=n||null,!C&&M.navigation===K){C=!0;let e=Ze(M.location,M.matches);null!=e&&ce({restoreScrollPosition:e})}return()=>{k=null,E=null,S=null}},navigate:async function t(n,i){if("number"==typeof n)return void e.history.go(n);let l=ie(M.location,M.matches,p,h.v7_prependBasename,n,h.v7_relativeSplatPath,null==i?void 0:i.fromRouteId,null==i?void 0:i.relative),{path:o,submission:s,error:u}=le(h.v7_normalizeFormMethod,!1,l,i),c=M.location,d=f(M.location,o,i&&i.state);d=r({},d,e.history.encodeLocation(d));let m=i&&null!=i.replace?i.replace:void 0,g=a.Push;!0===m?g=a.Replace:!1===m||null!=s&&Le(s.formMethod)&&s.formAction===M.location.pathname+M.location.search&&(g=a.Replace);let v=i&&"preventScrollReset"in i?!0===i.preventScrollReset:void 0,y=!0===(i&&i.unstable_flushSync),b=$e({currentLocation:c,nextLocation:d,historyAction:g});if(!b)return await pe(g,d,{submission:s,pendingError:u,preventScrollReset:v,replace:i&&i.replace,enableViewTransition:i&&i.unstable_viewTransition,flushSync:y});We(b,{state:"blocked",location:d,proceed(){We(b,{state:"proceeding",proceed:void 0,reset:void 0,location:d}),t(n,i)},reset(){let e=new Map(M.blockers);e.set(b,ee),ce({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.");V.has(t)&&Ue(t);let s=!0===(a&&a.unstable_flushSync),c=o||m,f=ie(M.location,M.matches,p,h.v7_prependBasename,r,h.v7_relativeSplatPath,n,null==a?void 0:a.relative),g=b(c,f,p);if(!g)return void De(t,n,xe(404,{pathname:f}),{flushSync:s});let{path:v,submission:y,error:w}=le(h.v7_normalizeFormMethod,!0,f,a);if(w)return void De(t,n,w,{flushSync:s});let x=_e(g,v);O=!0===(a&&a.preventScrollReset),y&&Le(y.formMethod)?async function(t,n,r,a,i,s,c){if(Se(),Z.delete(t),!a.route.action&&!a.route.lazy){let e=xe(405,{method:c.formMethod,pathname:r,routeId:n});return void De(t,n,e,{flushSync:s})}let f=M.fetchers.get(t);Te(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}(c,f),{flushSync:s});let g=new AbortController,v=me(e.history,r,g.signal,c);V.set(t,g);let y=W,w=await fe("action",v,a,i,d,l,p,h.v7_relativeSplatPath);if(v.signal.aborted)return void(V.get(t)===g&&V.delete(t));if(h.v7_fetcherPersist&&G.has(t)){if(Ne(w)||Ce(w))return void Te(t,ze(void 0))}else{if(Ne(w))return V.delete(t),$>y?void Te(t,ze(void 0)):(Q.add(t),Te(t,Re(c)),he(M,w,{fetcherSubmission:c}));if(Ce(w))return void De(t,n,w.error)}if(Ee(w))throw xe(400,{type:"defer-action"});let x=M.navigation.location||M.location,k=me(e.history,x,g.signal),S=o||m,E="idle"!==M.navigation.state?b(S,M.navigation.location,p):M.matches;u(E,"Didn't find any matches after fetcher action");let C=++W;q.set(t,C);let N=Re(c,w.data);M.fetchers.set(t,N);let[T,D]=se(e.history,M,E,c,x,!1,A,H,B,G,Z,Q,S,p,{[a.route.id]:w.data},void 0);D.filter((e=>e.key!==t)).forEach((e=>{let t=e.key,n=M.fetchers.get(t),r=Re(void 0,n?n.data:void 0);M.fetchers.set(t,r),V.has(t)&&Ue(t),e.controller&&V.set(t,e.controller)})),ce({fetchers:new Map(M.fetchers)});let L=()=>D.forEach((e=>Ue(e.key)));g.signal.addEventListener("abort",L);let{results:P,loaderResults:I,fetcherResults:O}=await ge(M.matches,E,T,D,k);if(g.signal.aborted)return;g.signal.removeEventListener("abort",L),q.delete(t),V.delete(t),D.forEach((e=>V.delete(e.key)));let R=ke(P);if(R){if(R.idx>=T.length){let e=D[R.idx-T.length].key;Q.add(e)}return he(M,R.result)}let{loaderData:z,errors:j}=ve(M,M.matches,T,I,void 0,D,O,ae);if(M.fetchers.has(t)){let e=ze(w.data);M.fetchers.set(t,e)}Be(C),"loading"===M.navigation.state&&C>$?(u(_,"Expected pending action"),F&&F.abort(),de(M.navigation.location,{matches:E,loaderData:z,errors:j,fetchers:new Map(M.fetchers)})):(ce({errors:j,loaderData:ye(M.loaderData,z,E,j),fetchers:new Map(M.fetchers)}),A=!1)}(t,n,v,x,g,s,y):(Z.set(t,{routeId:n,path:v}),async function(t,n,r,a,i,o,s){let c=M.fetchers.get(t);Te(t,Re(s,c?c.data:void 0),{flushSync:o});let f=new AbortController,m=me(e.history,r,f.signal);V.set(t,f);let g=W,v=await fe("loader",m,a,i,d,l,p,h.v7_relativeSplatPath);Ee(v)&&(v=await Fe(v,m.signal,!0)||v);V.get(t)===f&&V.delete(t);if(m.signal.aborted)return;if(G.has(t))return void Te(t,ze(void 0));if(Ne(v))return $>g?void Te(t,ze(void 0)):(Q.add(t),void await he(M,v));if(Ce(v))return void De(t,n,v.error);u(!Ee(v),"Unhandled fetcher deferred data"),Te(t,ze(v.data))}(t,n,v,x,g,s,y))},revalidate:function(){Se(),ce({revalidation:"loading"}),"submitting"!==M.navigation.state&&("idle"!==M.navigation.state?pe(_||M.historyAction,M.navigation.location,{overrideNavigation:M.navigation}):pe(M.historyAction,M.location,{startUninterruptedRevalidation:!0}))},createHref:t=>e.history.createHref(t),encodeLocation:t=>e.history.encodeLocation(t),getFetcher:Me,deleteFetcher:function(e){if(h.v7_fetcherPersist){let t=(Y.get(e)||0)-1;t<=0?(Y.delete(e),G.add(e)):Y.set(e,t)}else je(e);ce({fetchers:new Map(M.fetchers)})},dispose:function(){v&&v(),j&&j(),x.clear(),F&&F.abort(),M.fetchers.forEach(((e,t)=>je(t))),M.blockers.forEach(((e,t)=>Ve(t)))},getBlocker:function(e,t){let n=M.blockers.get(e)||ee;return oe.get(e)!==t&&oe.set(e,t),n},deleteBlocker:Ve,_internalFetchControllers:V,_internalActiveDeferreds:ae,_internalSetRoutes:function(e){d={},o=y(e,l,void 0,d)}},D}Symbol("deferred");function ie(e,t,n,r,a,i,l,o){let s,u;if(l){s=[];for(let e of t)if(s.push(e),e.route.id===l){u=e;break}}else s=t,u=t[t.length-1];let c=j(a||".",z(s,i),I(e.pathname,n)||e.pathname,"path"===o);return null==a&&(c.search=e.search,c.hash=e.hash),null!=a&&""!==a&&"."!==a||!u||!u.route.index||Me(c.search)||(c.search=c.search?c.search.replace(/^\?/,"?index&"):"?index"),r&&"/"!==n&&(c.pathname="/"===c.pathname?n:U([n,c.pathname])),m(c)}function le(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&&!De(r.formMethod))return{path:n,error:xe(405,{method:r.formMethod})};let a,i,l=()=>({path:n,error:xe(400,{type:"invalid-body"})}),o=r.formMethod||"get",s=e?o.toUpperCase():o.toLowerCase(),c=Se(n);if(void 0!==r.body){if("text/plain"===r.formEncType){if(!Le(s))return l();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:s,formAction:c,formEncType:r.formEncType,formData:void 0,json:void 0,text:e}}}if("application/json"===r.formEncType){if(!Le(s))return l();try{let e="string"==typeof r.body?JSON.parse(r.body):r.body;return{path:n,submission:{formMethod:s,formAction:c,formEncType:r.formEncType,formData:void 0,json:e,text:void 0}}}catch(e){return l()}}}if(u("function"==typeof FormData,"FormData is not available in this environment"),r.formData)a=pe(r.formData),i=r.formData;else if(r.body instanceof FormData)a=pe(r.body),i=r.body;else if(r.body instanceof URLSearchParams)a=r.body,i=he(a);else if(null==r.body)a=new URLSearchParams,i=new FormData;else try{a=new URLSearchParams(r.body),i=he(a)}catch(e){return l()}let d={formMethod:s,formAction:c,formEncType:r&&r.formEncType||"application/x-www-form-urlencoded",formData:i,json:void 0,text:void 0};if(Le(d.formMethod))return{path:n,submission:d};let f=p(n);return t&&f.search&&Me(f.search)&&a.append("index",""),f.search="?"+a,{path:m(f),submission:d}}function oe(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 se(e,t,n,a,i,l,o,s,u,c,d,f,m,p,h,g){let v=g?Object.values(g)[0]:h?Object.values(h)[0]:void 0,y=e.createURL(t.location),w=e.createURL(i),x=g?Object.keys(g)[0]:void 0,k=oe(n,x).filter(((e,n)=>{let{route:i}=e;if(i.lazy)return!0;if(null==i.loader)return!1;if(l)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)||s.some((t=>t===e.route.id)))return!0;let u=t.matches[n],c=e;return ce(e,r({currentUrl:y,currentParams:u.params,nextUrl:w,nextParams:c.params},a,{actionResult:v,defaultShouldRevalidate:o||y.pathname+y.search===w.pathname+w.search||y.search!==w.search||ue(u,c)}))})),S=[];return d.forEach(((e,i)=>{if(l||!n.some((t=>t.route.id===e.routeId))||c.has(i))return;let s=b(m,e.path,p);if(!s)return void S.push({key:i,routeId:e.routeId,path:e.path,matches:null,match:null,controller:null});let d=t.fetchers.get(i),h=_e(s,e.path),g=!1;g=!f.has(i)&&(!!u.includes(i)||(d&&"idle"!==d.state&&void 0===d.data?o:ce(h,r({currentUrl:y,currentParams:t.matches[t.matches.length-1].params,nextUrl:w,nextParams:n[n.length-1].params},a,{actionResult:v,defaultShouldRevalidate:o})))),g&&S.push({key:i,routeId:e.routeId,path:e.path,matches:s,match:h,controller:new AbortController})})),[k,S]}function ue(e,t){let n=e.route.path;return e.pathname!==t.pathname||null!=n&&n.endsWith("*")&&e.params["*"]!==t.params["*"]}function ce(e,t){if(e.route.shouldRevalidate){let n=e.route.shouldRevalidate(t);if("boolean"==typeof n)return n}return t.defaultShouldRevalidate}async function de(e,t,n){if(!e.lazy)return;let a=await e.lazy();if(!e.lazy)return;let i=n[e.id];u(i,"No route found in manifest");let l={};for(let e in a){let t=void 0!==i[e]&&"hasErrorBoundary"!==e;c(!t,'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.'),t||v.has(e)||(l[e]=a[e])}Object.assign(i,l),Object.assign(i,r({},t(i),{lazy:void 0}))}async function fe(e,t,n,r,a,i,l,o,s){let c,d,f;void 0===s&&(s={});let m=e=>{let r,a=new Promise(((e,t)=>r=t));return f=()=>r(),t.signal.addEventListener("abort",f),Promise.race([e({request:t,params:n.params,context:s.requestContext}),a])};try{let r=n.route[e];if(n.route.lazy)if(r){let e,t=await Promise.all([m(r).catch((t=>{e=t})),de(n.route,i,a)]);if(e)throw e;d=t[0]}else{if(await de(n.route,i,a),r=n.route[e],!r){if("action"===e){let e=new URL(t.url),r=e.pathname+e.search;throw xe(405,{method:t.method,pathname:r,routeId:n.route.id})}return{type:g.data,data:void 0}}d=await m(r)}else{if(!r){let e=new URL(t.url);throw xe(404,{pathname:e.pathname+e.search})}d=await m(r)}u(void 0!==d,"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(e){c=g.error,d=e}finally{f&&t.signal.removeEventListener("abort",f)}if(Te(d)){let e,a=d.status;if(G.has(a)){let e=d.headers.get("Location");if(u(e,"Redirects returned/thrown from loaders/actions must have a Location header"),te.test(e)){if(!s.isStaticRequest){let n=new URL(t.url),r=e.startsWith("//")?new URL(n.protocol+e):new URL(e),a=null!=I(r.pathname,l);r.origin===n.origin&&a&&(e=r.pathname+r.search+r.hash)}}else e=ie(new URL(t.url),r.slice(0,r.indexOf(n)+1),l,!0,e,o);if(s.isStaticRequest)throw d.headers.set("Location",e),d;return{type:g.redirect,status:a,location:e,revalidate:null!==d.headers.get("X-Remix-Revalidate"),reloadDocument:null!==d.headers.get("X-Remix-Reload-Document")}}if(s.isRouteRequest){throw{type:c===g.error?g.error:g.data,response:d}}try{let t=d.headers.get("Content-Type");e=t&&/\bapplication\/json\b/.test(t)?await d.json():await d.text()}catch(e){return{type:g.error,error:e}}return c===g.error?{type:c,error:new W(a,d.statusText,e),headers:d.headers}:{type:g.data,data:e,statusCode:d.status,headers:d.headers}}return c===g.error?{type:c,error:d}: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}(d)?{type:g.deferred,deferredData:d,statusCode:null==(p=d.init)?void 0:p.status,headers:(null==(h=d.init)?void 0:h.headers)&&new Headers(d.init.headers)}:{type:g.data,data:d};var p,h}function me(e,t,n,r){let a=e.createURL(Se(t)).toString(),i={signal:n};if(r&&Le(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=pe(r.formData):i.body=r.formData}return new Request(a,i)}function pe(e){let t=new URLSearchParams;for(let[n,r]of e.entries())t.append(n,"string"==typeof r?r:r.name);return t}function he(e){let t=new FormData;for(let[n,r]of e.entries())t.append(n,r);return t}function ge(e,t,n,r,a){let i,l={},o=null,s=!1,c={};return n.forEach(((n,d)=>{let f=t[d].route.id;if(u(!Ne(n),"Cannot handle redirect results in processLoaderData"),Ce(n)){let t=be(e,f),a=n.error;r&&(a=Object.values(r)[0],r=void 0),o=o||{},null==o[t.route.id]&&(o[t.route.id]=a),l[f]=void 0,s||(s=!0,i=$(n.error)?n.error.status:500),n.headers&&(c[f]=n.headers)}else Ee(n)?(a.set(f,n.deferredData),l[f]=n.deferredData.data):l[f]=n.data,null==n.statusCode||200===n.statusCode||s||(i=n.statusCode),n.headers&&(c[f]=n.headers)})),r&&(o=r,l[Object.keys(r)[0]]=void 0),{loaderData:l,errors:o,statusCode:i||200,loaderHeaders:c}}function ve(e,t,n,a,i,l,o,s){let{loaderData:c,errors:d}=ge(t,n,a,i,s);for(let t=0;te.route.id===t))+1):[...e]).reverse().find((e=>!0===e.route.hasErrorBoundary))||e[0]}function we(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 xe(e,t){let{pathname:n,routeId:r,method:a,type:i}=void 0===t?{}:t,l="Unknown Server Error",o="Unknown @remix-run/router error";return 400===e?(l="Bad Request",a&&n&&r?o="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?o="defer() is not supported in actions":"invalid-body"===i&&(o="Unable to encode submission body")):403===e?(l="Forbidden",o='Route "'+r+'" does not match URL "'+n+'"'):404===e?(l="Not Found",o='No route matches URL "'+n+'"'):405===e&&(l="Method Not Allowed",a&&n&&r?o="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&&(o='Invalid request method "'+a.toUpperCase()+'"')),new W(e||500,l,new Error(o),!0)}function ke(e){for(let t=e.length-1;t>=0;t--){let n=e[t];if(Ne(n))return{result:n,idx:t}}}function Se(e){return m(r({},"string"==typeof e?p(e):e,{hash:""}))}function Ee(e){return e.type===g.deferred}function Ce(e){return e.type===g.error}function Ne(e){return(e&&e.type)===g.redirect}function Te(e){return null!=e&&"number"==typeof e.status&&"string"==typeof e.statusText&&"object"==typeof e.headers&&void 0!==e.body}function De(e){return Y.has(e.toLowerCase())}function Le(e){return Q.has(e.toLowerCase())}async function Pe(e,t,n,r,a,i){for(let l=0;le.route.id===s.route.id)),d=null!=c&&!ue(c,s)&&void 0!==(i&&i[s.route.id]);if(Ee(o)&&(a||d)){let e=r[l];u(e,"Expected an AbortSignal for revalidating fetcher deferred result"),await Fe(o,e,a).then((e=>{e&&(n[l]=e||n[l])}))}}}async function Fe(e,t,n){if(void 0===n&&(n=!1),!await e.deferredData.resolveData(t)){if(n)try{return{type:g.data,data:e.deferredData.unwrappedData}}catch(e){return{type:g.error,error:e}}return{type:g.data,data:e.deferredData.data}}}function Me(e){return new URLSearchParams(e).getAll("index").some((e=>""===e))}function _e(e,t){let n="string"==typeof t?p(t).search:t.search;if(e[e.length-1].route.index&&Me(n||""))return e[e.length-1];let r=R(e);return r[r.length-1]}function Ie(e){let{formMethod:t,formAction:n,formEncType:r,text:a,formData:i,json:l}=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!==l?{formMethod:t,formAction:n,formEncType:r,formData:void 0,json:l,text:void 0}:void 0}function Oe(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 Re(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 ze(e){return{state:"idle",formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0,data:e}}},function(e,t,n){"use strict";n.d(t,"a",(function(){return R})),n.d(t,"b",(function(){return z})),n.d(t,"c",(function(){return j})),n.d(t,"d",(function(){return U})),n.d(t,"e",(function(){return l})),n.d(t,"f",(function(){return o})),n.d(t,"g",(function(){return s})),n.d(t,"h",(function(){return c})),n.d(t,"i",(function(){return H})),n.d(t,"j",(function(){return P})),n.d(t,"k",(function(){return b})),n.d(t,"l",(function(){return I})),n.d(t,"m",(function(){return f})),n.d(t,"n",(function(){return p})),n.d(t,"o",(function(){return M})),n.d(t,"p",(function(){return g})),n.d(t,"q",(function(){return F})),n.d(t,"r",(function(){return v})),n.d(t,"s",(function(){return y}));var r=n(0),a=n(1);function i(){return i=Object.assign?Object.assign.bind():function(e){for(var t=1;t{n.current=!0})),r.useCallback((function(r,a){void 0===a&&(a={}),n.current&&("number"==typeof r?e.navigate(r):e.navigate(r,i({fromRouteId:t},a)))}),[e,t])}():function(){m()||Object(a.h)(!1);let e=r.useContext(l),{basename:t,future:n,navigator:i}=r.useContext(s),{matches:o}=r.useContext(c),{pathname:u}=p(),d=JSON.stringify(Object(a.g)(o,n.v7_relativeSplatPath)),f=r.useRef(!1);return h((()=>{f.current=!0})),r.useCallback((function(n,r){if(void 0===r&&(r={}),!f.current)return;if("number"==typeof n)return void i.go(n);let l=Object(a.s)(n,JSON.parse(d),u,"path"===r.relative);null==e&&"/"!==t&&(l.pathname="/"===l.pathname?t:Object(a.o)([t,l.pathname])),(r.replace?i.replace:i.push)(l,r.state,r)}),[t,i,d,u,e])}()}function v(){let{matches:e}=r.useContext(c),t=e[e.length-1];return t?t.params:{}}function y(e,t){let{relative:n}=void 0===t?{}:t,{future:i}=r.useContext(s),{matches:l}=r.useContext(c),{pathname:o}=p(),u=JSON.stringify(Object(a.g)(l,i.v7_relativeSplatPath));return r.useMemo((()=>Object(a.s)(e,JSON.parse(u),o,"path"===n)),[e,u,o,n])}function b(e,t,n,l){m()||Object(a.h)(!1);let{navigator:o}=r.useContext(s),{matches:d}=r.useContext(c),f=d[d.length-1],h=f?f.params:{},g=(f&&f.pathname,f?f.pathnameBase:"/");f&&f.route;let v,y=p();if(t){var b;let e="string"==typeof t?Object(a.r)(t):t;"/"===g||(null==(b=e.pathname)?void 0:b.startsWith(g))||Object(a.h)(!1),v=e}else v=y;let w=v.pathname||"/",x="/"===g?w:w.slice(g.length)||"/",k=Object(a.q)(e,{pathname:x});let S=E(k&&k.map((e=>Object.assign({},e,{params:Object.assign({},h,e.params),pathname:Object(a.o)([g,o.encodeLocation?o.encodeLocation(e.pathname).pathname:e.pathname]),pathnameBase:"/"===e.pathnameBase?g:Object(a.o)([g,o.encodeLocation?o.encodeLocation(e.pathnameBase).pathname:e.pathnameBase])}))),d,n,l);return t&&S?r.createElement(u.Provider,{value:{location:i({pathname:"/",search:"",hash:"",state:null,key:"default"},v),navigationType:a.b.Pop}},S):S}function w(){let e=function(){var e;let t=r.useContext(d),n=D(N.UseRouteError),a=L(N.UseRouteError);if(void 0!==t)return t;return null==(e=n.errors)?void 0:e[a]}(),t=Object(a.n)(e)?e.status+" "+e.statusText:e instanceof Error?e.message:JSON.stringify(e),n=e instanceof Error?e.stack:null,i="rgba(200,200,200, 0.5)",l={padding:"0.5rem",backgroundColor:i};return r.createElement(r.Fragment,null,r.createElement("h2",null,"Unexpected Application Error!"),r.createElement("h3",{style:{fontStyle:"italic"}},t),n?r.createElement("pre",{style:l},n):null,null)}const x=r.createElement(w,null);class k extends r.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){console.error("React Router caught the following error during render",e,t)}render(){return void 0!==this.state.error?r.createElement(c.Provider,{value:this.props.routeContext},r.createElement(d.Provider,{value:this.state.error,children:this.props.component})):this.props.children}}function S(e){let{routeContext:t,match:n,children:a}=e,i=r.useContext(l);return i&&i.static&&i.staticContext&&(n.route.errorElement||n.route.ErrorBoundary)&&(i.staticContext._deepestRenderedBoundaryId=n.route.id),r.createElement(c.Provider,{value:t},a)}function E(e,t,n,i){var l;if(void 0===t&&(t=[]),void 0===n&&(n=null),void 0===i&&(i=null),null==e){var o;if(null==(o=n)||!o.errors)return null;e=n.matches}let s=e,u=null==(l=n)?void 0:l.errors;if(null!=u){let e=s.findIndex((e=>e.route.id&&(null==u?void 0:u[e.route.id])));e>=0||Object(a.h)(!1),s=s.slice(0,Math.min(s.length,e+1))}let c=!1,d=-1;if(n&&i&&i.v7_partialHydration)for(let e=0;e=0?s.slice(0,d+1):[s[0]];break}}}return s.reduceRight(((e,a,i)=>{let l,o=!1,f=null,m=null;var p;n&&(l=u&&a.route.id?u[a.route.id]:void 0,f=a.route.errorElement||x,c&&(d<0&&0===i?(p="route-fallback",!1||O[p]||(O[p]=!0),o=!0,m=null):d===i&&(o=!0,m=a.route.hydrateFallbackElement||null)));let h=t.concat(s.slice(0,i+1)),g=()=>{let t;return t=l?f:o?m:a.route.Component?r.createElement(a.route.Component,null):a.route.element?a.route.element:e,r.createElement(S,{match:a,routeContext:{outlet:e,matches:h,isDataRoute:null!=n},children:t})};return n&&(a.route.ErrorBoundary||a.route.errorElement||0===i)?r.createElement(k,{location:n.location,revalidation:n.revalidation,component:f,error:l,children:g(),routeContext:{outlet:null,matches:h,isDataRoute:!0}}):g()}),null)}var C=function(e){return e.UseBlocker="useBlocker",e.UseRevalidator="useRevalidator",e.UseNavigateStable="useNavigate",e}(C||{}),N=function(e){return e.UseBlocker="useBlocker",e.UseLoaderData="useLoaderData",e.UseActionData="useActionData",e.UseRouteError="useRouteError",e.UseNavigation="useNavigation",e.UseRouteLoaderData="useRouteLoaderData",e.UseMatches="useMatches",e.UseRevalidator="useRevalidator",e.UseNavigateStable="useNavigate",e.UseRouteId="useRouteId",e}(N||{});function T(e){let t=r.useContext(l);return t||Object(a.h)(!1),t}function D(e){let t=r.useContext(o);return t||Object(a.h)(!1),t}function L(e){let t=function(e){let t=r.useContext(c);return t||Object(a.h)(!1),t}(),n=t.matches[t.matches.length-1];return n.route.id||Object(a.h)(!1),n.route.id}function P(){return L(N.UseRouteId)}function F(){return D(N.UseNavigation).navigation}function M(){let{matches:e,loaderData:t}=D(N.UseMatches);return r.useMemo((()=>e.map((e=>Object(a.f)(e,t)))),[e,t])}let _=0;function I(e){let{router:t,basename:n}=T(C.UseBlocker),l=D(N.UseBlocker),[o,s]=r.useState(""),u=r.useCallback((t=>{if("function"!=typeof e)return!!e;if("/"===n)return e(t);let{currentLocation:r,nextLocation:l,historyAction:o}=t;return e({currentLocation:i({},r,{pathname:Object(a.t)(r.pathname,n)||r.pathname}),nextLocation:i({},l,{pathname:Object(a.t)(l.pathname,n)||l.pathname}),historyAction:o})}),[n,e]);return r.useEffect((()=>{let e=String(++_);return s(e),()=>t.deleteBlocker(e)}),[t]),r.useEffect((()=>{""!==o&&t.getBlocker(o,u)}),[t,o,u]),o&&l.blockers.has(o)?l.blockers.get(o):a.c}const O={};r.startTransition;function R(e){let{to:t,replace:n,state:i,relative:l}=e;m()||Object(a.h)(!1);let{future:o,static:u}=r.useContext(s),{matches:d}=r.useContext(c),{pathname:f}=p(),h=g(),v=Object(a.s)(t,Object(a.g)(d,o.v7_relativeSplatPath),f,"path"===l),y=JSON.stringify(v);return r.useEffect((()=>h(JSON.parse(y),{replace:n,state:i,relative:l})),[h,y,l,n,i]),null}function z(e){Object(a.h)(!1)}function j(e){let{basename:t="/",children:n=null,location:l,navigationType:o=a.b.Pop,navigator:c,static:d=!1,future:f}=e;m()&&Object(a.h)(!1);let p=t.replace(/^\/*/,"/"),h=r.useMemo((()=>({basename:p,navigator:c,static:d,future:i({v7_relativeSplatPath:!1},f)})),[p,f,c,d]);"string"==typeof l&&(l=Object(a.r)(l));let{pathname:g="/",search:v="",hash:y="",state:b=null,key:w="default"}=l,x=r.useMemo((()=>{let e=Object(a.t)(g,p);return null==e?null:{location:{pathname:e,search:v,hash:y,state:b,key:w},navigationType:o}}),[p,g,v,y,b,w,o]);return null==x?null:r.createElement(s.Provider,{value:h},r.createElement(u.Provider,{children:n,value:x}))}function U(e){let{children:t,location:n}=e;return b(A(t),n)}new Promise((()=>{}));r.Component;function A(e,t){void 0===t&&(t=[]);let n=[];return r.Children.forEach(e,((e,i)=>{if(!r.isValidElement(e))return;let l=[...t,i];if(e.type===r.Fragment)return void n.push.apply(n,A(e.props.children,l));e.type!==z&&Object(a.h)(!1),e.props.index&&e.props.children&&Object(a.h)(!1);let o={id:e.props.id||l.join("-"),caseSensitive:e.props.caseSensitive,element:e.props.element,Component:e.props.Component,index:e.props.index,path:e.props.path,loader:e.props.loader,action:e.props.action,errorElement:e.props.errorElement,ErrorBoundary:e.props.ErrorBoundary,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=A(e.props.children,l)),n.push(o)})),n}function H(e){let t={hasErrorBoundary:null!=e.ErrorBoundary||null!=e.errorElement};return e.Component&&Object.assign(t,{element:r.createElement(e.Component),Component:void 0}),e.HydrateFallback&&Object.assign(t,{hydrateFallbackElement:r.createElement(e.HydrateFallback),HydrateFallback:void 0}),e.ErrorBoundary&&Object.assign(t,{errorElement:r.createElement(e.ErrorBoundary),ErrorBoundary:void 0}),t}},function(e,t,n){"use strict";var r,a=function(){return void 0===r&&(r=Boolean(window&&document&&document.all&&!window.atob)),r},i=function(){var e={};return function(t){if(void 0===e[t]){var n=document.querySelector(t);if(window.HTMLIFrameElement&&n instanceof window.HTMLIFrameElement)try{n=n.contentDocument.head}catch(e){n=null}e[t]=n}return e[t]}}(),l=[];function o(e){for(var t=-1,n=0;n{let r=e[n];return t.concat(Array.isArray(r)?r.map((e=>[n,e])):[[n,r]])}),[]))}new Set(["application/x-www-form-urlencoded","multipart/form-data","text/plain"]);new Map;const s=r.startTransition;a.flushSync;function u(e){let{basename:t,children:n,future:a,window:o}=e,u=r.useRef();null==u.current&&(u.current=Object(l.i)({window:o,v5Compat:!0}));let c=u.current,[d,f]=r.useState({action:c.action,location:c.location}),{v7_startTransition:m}=a||{},p=r.useCallback((e=>{m&&s?s((()=>f(e))):f(e)}),[f,m]);return r.useLayoutEffect((()=>c.listen(p)),[c,p]),r.createElement(i.c,{basename:t,children:n,location:d.location,navigationType:d.action,navigator:c,future:a})}"undefined"!=typeof window&&void 0!==window.document&&window.document.createElement;var c,d;function f(e){let t=r.useRef(o(e)),n=r.useRef(!1),a=Object(i.n)(),l=r.useMemo((()=>function(e,t){let n=o(e);return t&&t.forEach(((e,r)=>{n.has(r)||t.getAll(r).forEach((e=>{n.append(r,e)}))})),n}(a.search,n.current?null:t.current)),[a.search]),s=Object(i.p)(),u=r.useCallback(((e,t)=>{const r=o("function"==typeof e?e(l):e);n.current=!0,s("?"+r,t)}),[s,l]);return[l,u]}(function(e){e.UseScrollRestoration="useScrollRestoration",e.UseSubmit="useSubmit",e.UseSubmitFetcher="useSubmitFetcher",e.UseFetcher="useFetcher",e.useViewTransitionState="useViewTransitionState"})(c||(c={})),function(e){e.UseFetcher="useFetcher",e.UseFetchers="useFetchers",e.UseScrollRestoration="useScrollRestoration"}(d||(d={}))},function(e,t,n){"use strict";!function e(){if("undefined"!=typeof __REACT_DEVTOOLS_GLOBAL_HOOK__&&"function"==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE)try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(e)}catch(e){console.error(e)}}(),e.exports=n(19)},function(e,t,n){(e.exports=n(4)(!1)).push([e.i,".main-container {\n overflow: hidden;\n}\n\n.about-container {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-orient: vertical;\n -webkit-box-direction: normal;\n -ms-flex-direction: column;\n flex-direction: column;\n -webkit-box-align: start;\n -ms-flex-align: start;\n align-items: flex-start;\n gap: 1.25rem;\n}\n\n/* Journey section */\n#journey-container {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-pack: start;\n -ms-flex-pack: start;\n justify-content: start;\n -webkit-box-align: start;\n -ms-flex-align: start;\n align-items: flex-start;\n -ms-flex-line-pack: start;\n align-content: flex-start;\n -webkit-column-gap: calc((100vw + (2.5rem * 2 + 16px * 4) * 4) / 20);\n -moz-column-gap: calc((100vw + (2.5rem * 2 + 16px * 4) * 4) / 20);\n column-gap: calc((100vw + (2.5rem * 2 + 16px * 4) * 4) / 20);\n row-gap: 0px;\n -ms-flex-item-align: stretch;\n -ms-grid-row-align: stretch;\n align-self: stretch;\n -ms-flex-wrap: wrap;\n flex-wrap: wrap;\n margin-top: 0rem;\n}\n.journey-section {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n position: relative;\n -webkit-box-orient: vertical;\n -webkit-box-direction: normal;\n -ms-flex-direction: column;\n flex-direction: column;\n -webkit-box-align: start;\n -ms-flex-align: start;\n align-items: flex-start;\n gap: 0.75rem;\n}\n.journey-section p {\n z-index: 1;\n}\n.journey-section img {\n display: block;\n position: absolute;\n -webkit-filter: brightness(0.7);\n filter: brightness(0.7);\n -ms-flex-negative: 0;\n flex-shrink: 0;\n z-index: 0;\n}\n.journey-section img.landscape {\n width: 10rem;\n}\n.journey-section img.portrait {\n height: 10rem;\n}\n@media all and (max-width: 641px) {\n .journey-section img {\n display: none;\n }\n}\n@media screen and (min-width: 1024px) {\n #journey-container :nth-child(4n + 2).journey-section {\n margin-top: 3rem;\n }\n #journey-container :nth-child(4n + 3).journey-section {\n margin-top: 6rem;\n }\n #journey-container :nth-child(4n).journey-section {\n margin-top: 9rem;\n }\n}\n@media screen and (max-width: 1024px) {\n #about-page .width-30,\n #about-page .width-60 {\n width: calc(100vw - 2.5rem * 2);\n }\n #journey-container :nth-child(2n).journey-section {\n margin-top: 5rem;\n }\n #journey-container {\n -webkit-column-gap: 16px;\n -moz-column-gap: 16px;\n column-gap: 16px;\n }\n}\n@media screen and (max-width: 641px) {\n #about-page .width-30,\n #about-page .width-60 {\n width: calc(100vw - 1rem * 2);\n }\n}\n\n/* Experience section */\n#experience-container {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-orient: vertical;\n -webkit-box-direction: normal;\n -ms-flex-direction: column;\n flex-direction: column;\n -webkit-box-align: start;\n -ms-flex-align: start;\n align-items: flex-start;\n gap: 1.875rem;\n -ms-flex-item-align: stretch;\n -ms-grid-row-align: stretch;\n align-self: stretch;\n}\n#experience-container :nth-last-child(1).divider {\n display: none;\n}\n.experience-section {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-align: start;\n -ms-flex-align: start;\n align-items: flex-start;\n -ms-flex-line-pack: start;\n align-content: flex-start;\n gap: 1rem;\n -ms-flex-item-align: stretch;\n -ms-grid-row-align: stretch;\n align-self: stretch;\n -ms-flex-wrap: wrap;\n flex-wrap: wrap;\n}\n.description-container {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-orient: vertical;\n -webkit-box-direction: normal;\n -ms-flex-direction: column;\n flex-direction: column;\n -webkit-box-align: start;\n -ms-flex-align: start;\n align-items: flex-start;\n gap: 1rem;\n}\n.stats-container {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-align: start;\n -ms-flex-align: start;\n align-items: flex-start;\n gap: 5rem;\n -ms-flex-item-align: stretch;\n -ms-grid-row-align: stretch;\n align-self: stretch;\n}\n.stats-section {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-orient: vertical;\n -webkit-box-direction: normal;\n -ms-flex-direction: column;\n flex-direction: column;\n -webkit-box-align: start;\n -ms-flex-align: start;\n align-items: flex-start;\n}\n.tool-container {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-orient: vertical;\n -webkit-box-direction: normal;\n -ms-flex-direction: column;\n flex-direction: column;\n -webkit-box-align: start;\n -ms-flex-align: start;\n align-items: flex-start;\n gap: 0.875rem;\n -ms-flex-item-align: stretch;\n -ms-grid-row-align: stretch;\n align-self: stretch;\n}\n.tool-section-about {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-align: start;\n -ms-flex-align: start;\n align-items: flex-start;\n -ms-flex-line-pack: start;\n align-content: flex-start;\n gap: 0.5rem 1rem;\n -ms-flex-item-align: stretch;\n -ms-grid-row-align: stretch;\n align-self: stretch;\n -ms-flex-wrap: wrap;\n flex-wrap: wrap;\n}\n.tool-items {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center;\n gap: 0.375rem;\n}\n.tool-items img {\n width: 1.5rem;\n height: 1.5rem;\n}\n",""])},function(e,t,n){(e.exports=n(4)(!1)).push([e.i,".contact-section {\n -webkit-box-orient: vertical;\n -webkit-box-direction: normal;\n -ms-flex-direction: column;\n flex-direction: column;\n -webkit-box-align: start;\n -ms-flex-align: start;\n align-items: flex-start;\n gap: 1rem;\n}\n\n.info-connect-container {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-orient: vertical;\n -webkit-box-direction: normal;\n -ms-flex-direction: column;\n flex-direction: column;\n -webkit-box-align: start;\n -ms-flex-align: start;\n align-items: flex-start;\n gap: 0.4rem;\n -ms-flex-item-align: stretch;\n -ms-grid-row-align: stretch;\n align-self: stretch;\n}\n\n.info-connect-section {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center;\n gap: 0.75rem;\n -ms-flex-item-align: stretch;\n -ms-grid-row-align: stretch;\n align-self: stretch;\n}\n\n/* Information section */\n.info-subsection {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n padding: 0rem 0.375rem;\n}\n\n/* Connect me section */\n.connect-subsection {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n width: 6.25rem;\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center;\n gap: 0.5rem;\n}\n",""])},function(e,t,n){(e.exports=n(4)(!1)).push([e.i,".message-container {\n -webkit-box-orient: vertical;\n -webkit-box-direction: normal;\n -ms-flex-direction: column;\n flex-direction: column;\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center;\n -webkit-box-pack: center;\n -ms-flex-pack: center;\n justify-content: center;\n gap: 2.5rem;\n height: calc(100vh - 3.5rem);\n}\n\n#message-section {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-orient: horizontal;\n -webkit-box-direction: normal;\n -ms-flex-direction: row;\n flex-direction: row;\n gap: 0px;\n}\n\n.title {\n position: relative;\n height: 10rem;\n}\n",""])},function(e,t,n){(e.exports=n(4)(!1)).push([e.i,"#footer-container {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-orient: vertical;\n -webkit-box-direction: normal;\n -ms-flex-direction: column;\n flex-direction: column;\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center;\n gap: 2.25rem;\n background-repeat: no-repeat;\n background-size: contain;\n background-position-y: bottom;\n}\n\n/* Logo */\n#footer-logo-section {\n position: relative;\n height: calc(5.3rem / 2);\n}\n\n#footer-logo {\n position: absolute;\n left: 50%;\n top: 50%;\n margin-top: calc(-5.3rem / 2);\n margin-left: calc(-5.3rem / 2);\n width: 5.3rem;\n height: 5.3rem;\n}\n\n/* Links */\n#footer-link-section {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-orient: vertical;\n -webkit-box-direction: normal;\n -ms-flex-direction: column;\n flex-direction: column;\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center;\n gap: 0.25rem;\n}\n\n#footer-connect-section {\n width: 100%;\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-pack: center;\n -ms-flex-pack: center;\n justify-content: center;\n -webkit-box-align: start;\n -ms-flex-align: start;\n align-items: flex-start;\n -ms-flex-line-pack: start;\n align-content: flex-start;\n gap: 0.25rem;\n -ms-flex-item-align: stretch;\n -ms-grid-row-align: stretch;\n align-self: stretch;\n -ms-flex-wrap: wrap;\n flex-wrap: wrap;\n}\n\n/* Sitemap */\n#footer-sitemap-section {\n -webkit-box-orient: horizontal;\n -webkit-box-direction: normal;\n -ms-flex-direction: row;\n flex-direction: row;\n -ms-flex-pack: distribute;\n justify-content: space-around;\n -webkit-box-align: baseline;\n -ms-flex-align: baseline;\n align-items: baseline;\n -ms-flex-wrap: wrap;\n flex-wrap: wrap;\n row-gap: 0.75rem;\n}\n\n#footer-nav-links {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-align: start;\n -ms-flex-align: start;\n align-items: flex-start;\n gap: 0.5rem;\n}\n",""])},function(e,t,n){(e.exports=n(4)(!1)).push([e.i,"#header-container {\n position: fixed;\n top: 0px;\n left: 0px;\n height: 3.5rem;\n padding: 1.5rem calc(2.5rem - 1.25rem / 2);\n background: var(--ultimate-gray);\n -webkit-box-pack: justify;\n -ms-flex-pack: justify;\n justify-content: space-between;\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center;\n -ms-flex-negative: 0;\n flex-shrink: 0;\n z-index: 10;\n}\n@media (max-width: 641px) {\n #header-container {\n padding: 1.5rem calc(1.5rem - 1.25rem / 2);\n }\n}\n\n/* Logo section */\n#nav-logo {\n width: -webkit-fit-content;\n width: -moz-fit-content;\n width: fit-content;\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-align: start;\n -ms-flex-align: start;\n align-items: flex-start;\n}\n#nav-logo img {\n height: 1.5rem;\n}\n@media (max-width: 641px) {\n #nav-logo img {\n height: 1.125rem;\n }\n}\n\n/* Item section */\n#nav-items {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-pack: center;\n -ms-flex-pack: center;\n justify-content: center;\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center;\n gap: 1rem;\n}\n\n#nav-container {\n position: fixed;\n left: 0px;\n top: 0px;\n z-index: 9;\n}\n\n#nav-burger,\n#nav-container {\n display: none;\n}\n\n#nav-burger path {\n fill: var(--illuminating-yellow);\n}\n\n#nav-mobile {\n height: 100vh;\n background: var(--ultimate-gray);\n -webkit-box-orient: vertical;\n -webkit-box-direction: normal;\n -ms-flex-direction: column;\n flex-direction: column;\n -webkit-box-pack: center;\n -ms-flex-pack: center;\n justify-content: center;\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center;\n gap: 1.25rem;\n -ms-flex-negative: 0;\n flex-shrink: 0;\n}\n\n@media screen and (max-width: 640px) {\n #nav-items,\n #nav-mobile,\n #burger-close,\n #burger-open {\n display: none;\n }\n\n #nav-burger,\n #nav-container {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-transition: all 0.3s ease-in-out;\n -o-transition: all 0.3s ease-in-out;\n transition: all 0.3s ease-in-out;\n }\n\n #burger-close.active,\n #burger-open.active {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n }\n}\n\nnav {\n -webkit-transition: all 0.3s ease-in-out;\n -o-transition: all 0.3s ease-in-out;\n transition: all 0.3s ease-in-out;\n}\n",""])},function(e,t,n){(e.exports=n(4)(!1)).push([e.i,"/* Responsive styling\n Note: 806px = (experience's content width (42.5rem) + margin (2.5rem) * 3) * px/rem (16) + margin (8px) * 2\n*/\n@media all and (min-width: 800px) {\n .desktop {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n }\n .about-section .about-items {\n width: 15vw;\n }\n .about-section .about-items:last-of-type {\n width: 30vw;\n }\n}\n@media all and (max-width: 800px) {\n .desktop {\n display: none;\n }\n .about-section .about-items {\n width: 30vw;\n }\n .about-section .about-items:first-of-type {\n width: 20vw;\n }\n}\n\n/* Local styling */\n.main-section {\n -webkit-box-orient: vertical;\n -webkit-box-direction: normal;\n -ms-flex-direction: column;\n flex-direction: column;\n -webkit-box-align: start;\n -ms-flex-align: start;\n align-items: flex-start;\n gap: 1rem;\n padding: 2rem 0px;\n}\n.more-container {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-pack: justify;\n -ms-flex-pack: justify;\n justify-content: space-between;\n -webkit-box-align: baseline;\n -ms-flex-align: baseline;\n align-items: baseline;\n -ms-flex-item-align: stretch;\n -ms-grid-row-align: stretch;\n align-self: stretch;\n}\n.more-section {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center;\n}\n\n/* Thumbnail section */\n#thumbnail-container {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n height: calc(100vh - 4rem);\n -webkit-box-orient: vertical;\n -webkit-box-direction: normal;\n -ms-flex-direction: column;\n flex-direction: column;\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center;\n background-size: cover;\n background-repeat: no-repeat;\n background-position: center;\n}\n#thumbnail-section {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-orient: vertical;\n -webkit-box-direction: normal;\n -ms-flex-direction: column;\n flex-direction: column;\n -webkit-box-pack: end;\n -ms-flex-pack: end;\n justify-content: end;\n gap: 0.75rem;\n position: absolute;\n bottom: 4rem;\n right: 2.5rem;\n text-align: right;\n}\n@media screen and (max-width: 641px) {\n #thumbnail-section {\n right: 1.25rem;\n }\n}\n\n/* About section */\n#about-container {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-orient: vertical;\n -webkit-box-direction: normal;\n -ms-flex-direction: column;\n flex-direction: column;\n -webkit-box-align: start;\n -ms-flex-align: start;\n align-items: flex-start;\n gap: 2.5rem;\n -ms-flex-item-align: stretch;\n -ms-grid-row-align: stretch;\n align-self: stretch;\n}\n.about-section {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-pack: justify;\n -ms-flex-pack: justify;\n justify-content: space-between;\n -webkit-box-align: start;\n -ms-flex-align: start;\n align-items: flex-start;\n -ms-flex-item-align: stretch;\n -ms-grid-row-align: stretch;\n align-self: stretch;\n}\n.about-items.general-section {\n -webkit-box-orient: vertical;\n -webkit-box-direction: normal;\n -ms-flex-direction: column;\n flex-direction: column;\n}\n",""])},function(e,t,n){(e.exports=n(4)(!1)).push([e.i,"#work-container {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-orient: vertical;\n -webkit-box-direction: normal;\n -ms-flex-direction: column;\n flex-direction: column;\n -webkit-box-align: start;\n -ms-flex-align: start;\n align-items: flex-start;\n gap: 1rem;\n}\n\n/* Filter and sort */\n#tool-container {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-pack: justify;\n -ms-flex-pack: justify;\n justify-content: space-between;\n -webkit-box-align: start;\n -ms-flex-align: start;\n align-items: flex-start;\n -ms-flex-line-pack: start;\n align-content: flex-start;\n row-gap: 1rem;\n -ms-flex-item-align: stretch;\n -ms-grid-row-align: stretch;\n align-self: stretch;\n -ms-flex-wrap: wrap;\n flex-wrap: wrap;\n}\n\n.tool-section-work {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-orient: vertical;\n -webkit-box-direction: normal;\n -ms-flex-direction: column;\n flex-direction: column;\n -webkit-box-align: start;\n -ms-flex-align: start;\n align-items: flex-start;\n gap: 0.5rem;\n}\n\n.tool-title {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-align: start;\n -ms-flex-align: start;\n align-items: flex-start;\n gap: 0.25rem;\n}\n\n.filter-section,\n.sort-section {\n background-color: var(--ultimate-gray);\n cursor: pointer;\n}\n\n.filter-section:hover,\n.sort-section:hover,\n.filter-section.active,\n.sort-section.active {\n background-color: var(--illuminating-yellow);\n}\n\n.filter-section p,\n.sort-section p {\n color: var(--illuminating-yellow);\n}\n\n.filter-section path,\n.sort-section path {\n fill: '#363B48';\n}\n\n.filter-section:hover *,\n.sort-section:hover * {\n color: var(--ultimate-gray);\n fill: var(--ultimate-gray);\n}\n\n.filter-section.active *,\n.sort-section.active * {\n color: var(--blue-nights);\n fill: var(--blue-nights);\n}\n\n@media screen and (max-width: 640px) {\n .tool-section-work {\n -webkit-box-orient: horizontal;\n -webkit-box-direction: normal;\n -ms-flex-direction: row;\n flex-direction: row;\n }\n\n #tool-container {\n -webkit-box-orient: horizontal;\n -webkit-box-direction: normal;\n -ms-flex-direction: row;\n flex-direction: row;\n }\n\n .tool-title h2 {\n display: none;\n }\n}\n\n/* Filter section */\n#filter-container {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n max-width: var(--width-90);\n -webkit-box-align: start;\n -ms-flex-align: start;\n align-items: flex-start;\n gap: 0.5rem;\n -ms-flex-wrap: wrap;\n flex-wrap: wrap;\n}\n\n.filter-section {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n padding: 0.5rem 0.85rem;\n border-radius: 0.84375rem;\n border: 1px solid var(--illuminating-yellow);\n -webkit-box-orient: horizontal;\n -webkit-box-direction: normal;\n -ms-flex-direction: row;\n flex-direction: row;\n gap: 0.35rem;\n -webkit-box-pack: center;\n -ms-flex-pack: center;\n justify-content: center;\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center;\n}\n@media (max-width: 641px) {\n .filter-section {\n padding: 0.25rem 0.5rem;\n }\n}\n\n.filter-section svg {\n display: none;\n}\n\n.filter-section.active svg {\n display: block;\n}\n\n/* Sort section */\n#sort-container {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-align: start;\n -ms-flex-align: start;\n align-items: flex-start;\n margin: 0px;\n padding: 0px;\n}\n\n.sort-section {\n display: -webkit-inline-box;\n display: -ms-inline-flexbox;\n display: inline-flex;\n padding: 0.5rem 0.625rem;\n border: 1px solid var(--illuminating-yellow);\n -webkit-box-orient: vertical;\n -webkit-box-direction: normal;\n -ms-flex-direction: column;\n flex-direction: column;\n -webkit-box-pack: center;\n -ms-flex-pack: center;\n justify-content: center;\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center;\n}\n\n.sort-section:first-child {\n border-radius: 0.84375rem 0rem 0rem 0.84375rem;\n padding: 0.5rem 0.5rem 0.5rem 0.85rem;\n -webkit-box-align: end;\n -ms-flex-align: end;\n align-items: flex-end;\n}\n\n.sort-section:last-child {\n border-radius: 0rem 0.84375rem 0.84375rem 0rem;\n padding: 0.5rem 0.85rem 0.5rem 0.5rem;\n -webkit-box-align: start;\n -ms-flex-align: start;\n align-items: flex-start;\n}\n@media (max-width: 641px) {\n .sort-section {\n padding: 0.25rem 0.425rem;\n }\n .sort-section:first-child {\n padding: 0.25rem 0.425rem 0.25rem 0.675rem;\n }\n .sort-section:last-child {\n padding: 0.25rem 0.675rem 0.25rem 0.425rem;\n }\n}\n\n/* Save changes button */\n#save-container {\n display: none;\n -webkit-box-orient: horizontal;\n -webkit-box-direction: normal;\n -ms-flex-direction: row;\n flex-direction: row;\n margin-left: auto;\n padding: 0.25rem 2rem;\n}\n#save-container.active {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n}\n\n/* Post section */\n#post-container {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-align: start;\n -ms-flex-align: start;\n align-items: flex-start;\n -ms-flex-line-pack: start;\n align-content: flex-start;\n gap: 1rem;\n -ms-flex-wrap: wrap;\n flex-wrap: wrap;\n}\n\n.post-section {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n position: relative;\n height: calc((100vw - 2.5rem * 2 - 16px * 2) * 4 / 9);\n background-repeat: no-repeat;\n background-size: cover;\n -ms-flex-negative: 0;\n flex-shrink: 0;\n -webkit-box-pack: center;\n -ms-flex-pack: center;\n justify-content: center;\n}\n\n.post-overlay {\n display: -webkit-inline-box;\n display: -ms-inline-flexbox;\n display: inline-flex;\n position: absolute;\n width: 100%;\n height: 100%;\n background: var(--overlay);\n -ms-flex-negative: 0;\n flex-shrink: 0;\n}\n\n.post-view {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n position: absolute;\n top: 50%;\n margin-top: -1rem;\n padding: 0.375rem 1rem;\n border-color: var(--illuminating-yellow);\n border-radius: 1rem;\n border-style: solid;\n -webkit-box-pack: center;\n -ms-flex-pack: center;\n justify-content: center;\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center;\n gap: 0.375rem;\n}\n\n.post-view * {\n fill: var(--illuminating-yellow);\n color: var(--illuminating-yellow);\n}\n\n.post-title {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n position: absolute;\n width: 100%;\n padding: 1.25rem 1.25rem 0rem 1.25rem;\n -webkit-box-orient: vertical;\n -webkit-box-direction: normal;\n -ms-flex-direction: column;\n flex-direction: column;\n -webkit-box-align: start;\n -ms-flex-align: start;\n align-items: flex-start;\n gap: 0.25rem;\n}\n\n.post-items {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-align: start;\n -ms-flex-align: start;\n align-items: flex-start;\n gap: 0.375rem;\n}\n\n.post-title p,\n.post-title h3,\n.post-title path {\n color: var(--illuminating-yellow);\n fill: var(--illuminating-yellow);\n}\n\n.post-view,\n.post-title,\n.post-overlay {\n opacity: 0;\n -webkit-transition: all 0.2s ease-out;\n -o-transition: all 0.2s ease-out;\n transition: all 0.2s ease-out;\n}\n\n.post-section:hover .post-view,\n.post-section:hover .post-title,\n.post-section:hover .post-overlay {\n opacity: 1;\n}\n\n.post-view:hover {\n background: var(--illuminating-yellow);\n -webkit-transition: all 0.2s ease-out;\n -o-transition: all 0.2s ease-out;\n transition: all 0.2s ease-out;\n}\n\n.post-view:hover * {\n fill: var(--ultimate-gray);\n color: var(--ultimate-gray);\n -webkit-transition: all 0.2s ease-out;\n -o-transition: all 0.2s ease-out;\n transition: all 0.2s ease-out;\n}\n\n@media screen and (max-width: 1024px) {\n .post-section {\n height: calc((100vw - 2.5rem * 2 - 16px) * 2 / 3);\n }\n}\n\n@media screen and (max-width: 640px) {\n .post-section {\n height: calc((100vw - 2.5rem * 2) * 4 / 3);\n }\n}\n\n.listing {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-orient: horizontal;\n -webkit-box-direction: normal;\n -ms-flex-direction: row;\n flex-direction: row;\n gap: 0.25rem;\n min-width: -webkit-max-content;\n min-width: -moz-max-content;\n min-width: max-content;\n}\n.listing :nth-child(n)::after {\n content: ',';\n}\n.listing :nth-last-child(1)::after {\n content: '';\n}\n",""])},function(e,t,n){(e.exports=n(4)(!1)).push([e.i,"/* Responsive styling */\n@media all and (min-width: 640px) {\n .mobile {\n display: none;\n }\n\n .desktop {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n }\n}\n\n@media all and (max-width: 640px) {\n .mobile {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n }\n\n .desktop {\n display: none;\n }\n}\n\n/* Title section */\n#heading-section {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-orient: vertical;\n -webkit-box-direction: normal;\n -ms-flex-direction: column;\n flex-direction: column;\n -webkit-box-align: start;\n -ms-flex-align: start;\n align-items: start;\n}\n\n#title-container,\n#title-section {\n padding: 1.25rem 0rem;\n -webkit-box-pack: justify;\n -ms-flex-pack: justify;\n justify-content: space-between;\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center;\n background-color: var(--ultimate-gray);\n}\n\n#title-container {\n display: none;\n position: fixed;\n top: 3.5rem;\n -webkit-box-pack: center;\n -ms-flex-pack: center;\n justify-content: center;\n z-index: 8;\n}\n\n#title-section {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n padding: 0px;\n}\n\n.metadata-container {\n -webkit-box-pack: end;\n -ms-flex-pack: end;\n justify-content: flex-end;\n -webkit-box-align: start;\n -ms-flex-align: start;\n align-items: flex-start;\n gap: 2.5rem;\n}\n\n.metadata-section {\n -webkit-box-orient: vertical;\n -webkit-box-direction: normal;\n -ms-flex-direction: column;\n flex-direction: column;\n -webkit-box-align: start;\n -ms-flex-align: start;\n align-items: flex-start;\n}\n\n#mobile-container {\n -webkit-box-pack: justify;\n -ms-flex-pack: justify;\n justify-content: space-between;\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center;\n width: 100%;\n}\n\n.mobile-section {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-pack: end;\n -ms-flex-pack: end;\n justify-content: flex-end;\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center;\n gap: 0.4rem;\n}\n\n.metadata-items {\n padding: 0rem 0.375rem;\n}\n\n/* Post section */\n#content-container {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-orient: vertical;\n -webkit-box-direction: normal;\n -ms-flex-direction: column;\n flex-direction: column;\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center;\n -webkit-box-pack: center;\n -ms-flex-pack: center;\n justify-content: center;\n gap: 2.5rem;\n}\n\n.content-section {\n height: auto;\n -webkit-box-align: start;\n -ms-flex-align: start;\n align-items: start;\n -webkit-box-pack: center;\n -ms-flex-pack: center;\n justify-content: center;\n gap: 1rem;\n -ms-flex-wrap: wrap;\n flex-wrap: wrap;\n}\n\n.content-heading {\n width: 100%;\n text-align: center;\n}\n\n#content-container p {\n display: block;\n}\n\n.top-padding {\n padding-top: 2rem;\n}\n\n@media screen and (max-width: 1024px) {\n #content-container .width-30 {\n width: calc((100vw - 2.5rem * 2 - 16px) / 2);\n }\n}\n\n/* CTA button */\n#cta-button {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-orient: vertical;\n -webkit-box-direction: normal;\n -ms-flex-direction: column;\n flex-direction: column;\n -webkit-box-pack: center;\n -ms-flex-pack: center;\n justify-content: center;\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center;\n gap: 1.5rem;\n padding: 4rem 0px;\n}\n\n#cta-button .button {\n padding: 0.5rem 20vw;\n}\n",""])},function(e,t,n){"use strict";n.r(t),n.d(t,"About",(function(){return u})),n.d(t,"Contact",(function(){return m})),n.d(t,"NotFound",(function(){return v})),n.d(t,"Footer",(function(){return x})),n.d(t,"Header",(function(){return C})),n.d(t,"Home",(function(){return M})),n.d(t,"Post",(function(){return A})),n.d(t,"Work",(function(){return O})),n.d(t,"WorkSection",(function(){return R}));var r=n(0),a=n(3),i=n.n(a),l=n(7),o=n.n(l),s={insert:"head",singleton:!1},u=(i()(o.a,s),o.a.locals,function(e){var t=e.title,n=e.aboutJourney,a=e.aboutExp;function i(e,t){return r.createElement(r.Fragment,null,r.createElement("div",{className:"stats-section"},r.createElement("h3",null,e),r.createElement("p",{className:"large-number"},t)))}return Object(r.useEffect)((function(){document.title=t}),[]),r.createElement(r.Fragment,null,r.createElement("div",{className:"main-container",id:"about-page"},r.createElement("picture",null,r.createElement("source",{media:"(max-width: 640px)",srcSet:"../assets/graphics/About@0.5x.svg",className:"width-90"}),r.createElement("source",{media:"(min-width: 641px)",srcSet:"../assets/graphics/About.svg",className:"width-90"}),r.createElement("img",{src:"../assets/graphics/About.svg",alt:"About",className:"width-90"})),r.createElement("div",{className:"width-90"},r.createElement("p",{className:"mid width-60"},"I am Quan, a creative UX engineer with 5 years of experience in developing and designing innovative solutions. ",r.createElement("br",null),r.createElement("br",null)," My main fields are Product Development and Software Engineering. I also enjoy experimenting with AI and designing graphic arts in my free time.")),r.createElement("div",{className:"divider"}),r.createElement("div",{className:"about-container width-90"},r.createElement("h1",null,"Journey"),r.createElement("div",{id:"journey-container"},r.createElement(r.Fragment,null,null==n?void 0:n.map((function(e){return r.createElement(r.Fragment,null,r.createElement("div",{className:"journey-section width-20",key:e.Year},r.createElement("p",{className:"large"},e.Year),r.createElement("p",null,e.Description),r.createElement("img",{src:e.Image+e.Format,alt:e.Year,style:{left:e.HorizontalOffset+"rem",top:e.VerticalOffset+"rem"},className:e.Landspace?"landscape":"portrait"})))}))))),r.createElement("div",{className:"divider"}),r.createElement("div",{className:"about-container width-90"},r.createElement("h1",null,"Experience"),r.createElement("div",{id:"experience-container"},r.createElement(r.Fragment,null,null==a?void 0:a.map((function(e){return r.createElement(r.Fragment,null,r.createElement("div",{className:"experience-section",id:e.Name},r.createElement("div",{className:"description-container width-30"},r.createElement("h2",null,e.Name),r.createElement("p",{dangerouslySetInnerHTML:{__html:e.Description}}),r.createElement("div",{className:"stats-container"},i("Years",e.Years),i("Projects",e.Project)),r.createElement("div",{className:"tool-container"},r.createElement("h3",null,"Tools and skills"),r.createElement("div",{className:"tool-section-about"},(t=e.Skills,r.createElement(r.Fragment,null,null==t?void 0:t.map((function(e){return r.createElement(r.Fragment,null,r.createElement("div",{className:"tool-items",key:e.SkillName},r.createElement("img",{src:e.Image+e.Format,alt:e.SkillName}),r.createElement("p",null,e.SkillName)))}))))))),r.createElement("div",{style:{gap:"1rem",display:"flex",flexDirection:"column"}},r.createElement("img",{src:e.Thumbnail+e.Format,alt:e.Name,className:"width-60"}),r.createElement("a",{href:"Software Engineering"==e.Name?"/works?pd=false&ds=false&gd=false":"Product Development"==e.Name?"/works?se=false&ds=false&gd=false":"Data Science and AI"==e.Name?"/works?se=false&pd=false&gd=false":"Graphic Design"==e.Name?"/works?se=false&pd=false&ds=false":"/works",className:"button large width-60"},r.createElement("p",{className:"button-text"},"View ".concat(e.Name," works"))))),r.createElement("div",{className:"divider"}));var t}))))),r.createElement("div",{className:"divider"}),r.createElement("div",{className:"about-container width-90"},r.createElement("h1",null,"Future Development"),r.createElement("div",{className:"width-90"},r.createElement("p",{className:"width-60"},"I am seeking to leverage my expertise in software engineer and product development by joining cutting-edge projects that aims at solving real-world problems. ",r.createElement("br",null),r.createElement("br",null)," Besides, a job/title in academia is what I'm aiming for in longer terms. I am fascinated in the phenomenally interactive application of AI and Large Language Model (i.e., Chat GPT) on everyday's tasks, including but not limited to write emails, design graphics, browse inspirations, and write “bugs”.")))))}),c=n(8),d=n.n(c),f={insert:"head",singleton:!1},m=(i()(d.a,f),d.a.locals,function(e){var t=e.title,n=e.contactEmail,a=e.contactConnect,i=e.contactInfo,l=e.icons;return Object(r.useEffect)((function(){document.title=t}),[]),r.createElement(r.Fragment,null,r.createElement("div",{className:"main-container"},r.createElement("picture",null,r.createElement("source",{media:"(max-width: 640px)",srcSet:"../assets/graphics/".concat(t,"@0.5x.svg"),className:"width-90"}),r.createElement("source",{media:"(min-width: 641px)",srcSet:"../assets/graphics/".concat(t,".svg"),className:"width-90"}),r.createElement("img",{src:"../assets/graphics/".concat(t,".svg"),alt:t,className:"width-90"})),r.createElement("p",{className:"mid width-90"},"Let's create memorable experiences together"),r.createElement("div",{className:"contact-section width-90"},r.createElement("h1",null,"CONTACT INFORMATION"),r.createElement("div",{className:"info-connect-container"},r.createElement(r.Fragment,null,null==i?void 0:i.map((function(e){return r.createElement("div",{className:"info-connect-section",key:e.Details},r.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"20",height:"20",viewBox:"0 0 20 20",fill:"none"},r.createElement("path",{d:l[e.SVG]})),r.createElement("div",{className:"info-subsection"},r.createElement("p",null,e.Details)))}))),r.createElement("div",{className:"info-connect-section"},r.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"20",height:"20",viewBox:"0 0 20 20",fill:"none"},r.createElement("path",{d:l[n.SVG]})),r.createElement("a",{href:"mailto:"+n.Link,className:"button"},r.createElement("p",null,n.Details))))),r.createElement("div",{className:"contact-section width-90"},r.createElement("h1",null,"CONNECT ME ON"),r.createElement("div",{className:"info-connect-container"},r.createElement(r.Fragment,null,null==a?void 0:a.map((function(e){return r.createElement("div",{className:"info-connect-section",key:e.Name},r.createElement("div",{className:"connect-subsection"},r.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"18",height:"14",viewBox:e.ViewBox},r.createElement("path",{d:l[e.SVG]})),r.createElement("h3",null,e.Name)),r.createElement("a",{href:e.Link,className:"button"},r.createElement("p",null,e.Details)))})))))))}),p=n(9),h=n.n(p),g={insert:"head",singleton:!1},v=(i()(h.a,g),h.a.locals,function(e){var t=e.title,n=e.message,a=e.icons;return Object(r.useEffect)((function(){document.title=t}),[]),r.createElement(r.Fragment,null,r.createElement("div",{className:"main-container"},r.createElement("div",{className:"message-container width-90"},r.createElement("p",{className:"mid"},n),r.createElement("div",{id:"message-section"},r.createElement("img",{src:"/assets/graphics/4.svg",alt:"4",className:"title"}),r.createElement("img",{src:"/assets/graphics/LogoFull.svg",alt:"Quan\\'s logo representing 0",className:"title rotating"}),r.createElement("img",{src:"/assets/graphics/4.svg",alt:"4",className:"title"})),r.createElement("a",{href:"/",className:"button large width-25"},r.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"22",height:"20",viewBox:"0 0 19 18",fill:"none"},r.createElement("path",{d:a.Home})),r.createElement("p",{className:"button-text"},"Back to Home")))))}),y=n(10),b=n.n(y),w={insert:"head",singleton:!1},x=(i()(b.a,w),b.a.locals,function(e){var t=e.contactEmail,n=e.contactConnect,a=e.icons;function i(e,t,n,a,i,l){return r.createElement(r.Fragment,null,r.createElement("a",{href:n,className:"button large "+l},r.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:i,height:i,viewBox:a},r.createElement("path",{d:t})),r.createElement("p",{className:"button-text"},e)))}return r.createElement(r.Fragment,null,r.createElement("div",{className:"width-100",style:{height:"5.775rem"}}),r.createElement("div",{id:"footer-container",style:{backgroundImage:"url(../assets/graphics/Footer.svg)"}},r.createElement("div",{id:"footer-logo-section",className:"width-100"},r.createElement("div",{className:"divider"}),r.createElement("img",{id:"footer-logo",className:"rotating",src:"/assets/graphics/LogoFull.svg",alt:"Quan smiley logo"})),r.createElement("p",{className:"large",style:{textAlign:"center"}},"Stay connected"),r.createElement("div",{id:"footer-link-section",className:"width-90"},i(t.Details,a[t.SVG],"mailto:"+t.Link,t.ViewBox,t.Size,"width-70"),r.createElement("div",{id:"footer-connect-section"},function(e){return r.createElement(r.Fragment,null,null==e?void 0:e.map((function(e){return r.createElement("div",{key:e.Name},i(e.Name,a[e.SVG],e.Link,e.ViewBox,e.Size,"width-25"))})))}(n))),r.createElement("div",{id:"footer-sitemap-section",className:"width-90"},r.createElement("p",{className:"caption"},"Copyright © 2023 Do Duc Quan. All rights reserved."),r.createElement("div",{id:"footer-nav-links"},r.createElement("a",{href:"/",className:"button mid-2"},r.createElement("h2",null,"Home")),r.createElement("a",{href:"/about",className:"button mid-2"},r.createElement("h2",null,"About")),r.createElement("a",{href:"/works",className:"button mid-2"},r.createElement("h2",null,"Works")),r.createElement("a",{href:"/contact",className:"button mid-2"},r.createElement("h2",null,"Contact")))),r.createElement("div",{style:{height:"1rem"}})))}),k=n(11),S=n.n(k),E={insert:"head",singleton:!1},C=(i()(S.a,E),S.a.locals,function(e){var t=e.icons,n=Object(r.useState)("active"),a=n[0],i=n[1],l=Object(r.useState)(""),o=l[0],s=l[1],u=Object(r.useState)("none"),c=u[0],d=u[1],f=[{Link:"/",Name:"Home"},{Link:"/about",Name:"About"},{Link:"/works",Name:"Works"},{Link:"/contact",Name:"Contact"}];return r.createElement(r.Fragment,null,r.createElement("nav",null,r.createElement("div",{id:"header-container",className:"width-100"},r.createElement("a",{href:"/",id:"nav-logo"},r.createElement("img",{src:"/assets/graphics/Header.svg",alt:"Do Duc Quan's logo"})),r.createElement("span",null),r.createElement("div",{id:"nav-items"},r.createElement(r.Fragment,null,null==f?void 0:f.map((function(e){return r.createElement("a",{href:e.Link,className:"button mid-1",key:e.Name},r.createElement("h2",null,e.Name))})))),r.createElement("div",{id:"nav-burger",onClick:function(){""==a?(document.body.style.overflow="visible",i("active"),s(""),d("none")):(document.body.style.overflow="hidden",i(""),s("active"),d("flex"))}},r.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"17.5",height:"17.5",viewBox:"0 0 20 20",fill:"none"},r.createElement("path",{d:t.HamburgerClose,id:"burger-close",className:o}),r.createElement("path",{d:t.HamburgerOpen,id:"burger-open",className:a})))),r.createElement("div",{id:"nav-container",className:"width-100"},r.createElement("div",{id:"nav-mobile",className:"width-100",style:{display:c}},r.createElement(r.Fragment,null,null==f?void 0:f.map((function(e){return r.createElement("a",{href:e.Link,key:e.Name},r.createElement("img",{src:"/assets/graphics/"+e.Name+".svg",alt:e.Name+" page",className:"width-90"}))})))))))}),N=n(12),T=n.n(N),D={insert:"head",singleton:!1},L=(i()(T.a,D),T.a.locals,n(13)),P=n.n(L),F={insert:"head",singleton:!1},M=(i()(P.a,F),P.a.locals,function(e){var t=e.icons,n=e.aboutGen,a=e.contactEmail,i=e.workHighlight,l=e.workPost,o=e.workField;function s(){return r.createElement(r.Fragment,null,null==i?void 0:i.map((function(e){return l[e].Highlight?r.createElement(r.Fragment,null,r.createElement("a",{href:"/works"+l[e].Link,key:l[e]},r.createElement("div",{style:{backgroundImage:"url("+l[e].Thumbnail+")"},className:"post-section width-30"},r.createElement("div",{className:"post-overlay"}),r.createElement("div",{className:"post-title"},r.createElement("h3",null,l[e].Name),r.createElement("div",{className:"post-items"},r.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"15",height:"15",viewBox:"0 0 15 15",fill:"none"},r.createElement("path",{d:t.Field})),r.createElement("div",{className:"listing",style:{display:"flex"}},function(e){return r.createElement(r.Fragment,null,Object.entries(o).map((function(t){var n=t[1];return n.PostID.includes(e)?r.createElement("p",{className:"caption",key:n.ID+e},n.Alias):r.createElement(r.Fragment,null)})))}(e))),r.createElement("div",{className:"post-items"},r.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"14",height:"16",viewBox:"0 0 14 16",fill:"none"},r.createElement("path",{d:t.Calendar})),r.createElement("p",{className:"caption"},l[e].Duration+" ("+l[e].Date+")")),r.createElement("div",{className:"post-items"},r.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"14",height:"14",viewBox:"0 0 16 16",fill:"none"},r.createElement("path",{d:t.Tag})),r.createElement("p",{className:"caption"},l[e].Tags))),r.createElement("div",{className:"post-view"},r.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"18",height:"12",viewBox:"0 0 18 12",fill:"none"},r.createElement("path",{d:t.Eye})),r.createElement("p",{className:"button-text"},"View project"))))):r.createElement(r.Fragment,null)})))}return r.createElement(r.Fragment,null,r.createElement(r.Fragment,null,r.createElement("div",{className:"main-container"},r.createElement("div",{id:"thumbnail-container",className:"width-100",style:{backgroundImage:"image-set('../assets/pictures/Thumbnail.png' 1x, '../assets/pictures/Thumbnail@0.33x.png' 0.33x, '../assets/pictures/Thumbnail@0.5x.png' 0.5x, '../assets/pictures/Thumbnail@2x.png' 2x)"}},r.createElement("picture",null,r.createElement("source",{media:"(max-width: 640px)",srcSet:"../assets/graphics/DoDucQuan@0.5x.svg",className:"width-90"}),r.createElement("source",{media:"(min-width: 641px)",srcSet:"../assets/graphics/DoDucQuan.svg",className:"width-90"}),r.createElement("img",{src:"../assets/graphics/DoDucQuan.svg",alt:"Do Duc Quan",className:"width-90"})),r.createElement("div",{id:"thumbnail-section",className:"width-25"},r.createElement("p",{className:"mid"},"Computer intelligence fuels my visual creations"),r.createElement("h2",null,"I am QUAN. Welcome to my nomadic advanture 👋"))))),r.createElement(r.Fragment,null,r.createElement("div",{className:"main-section width-100"},r.createElement("div",{className:"more-container width-90",style:{margin:"auto"}},r.createElement("h1",null,"About"),r.createElement("a",{href:"/about",className:"button more"},r.createElement("p",{className:"button-text"},"More"),r.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"19",height:"20",viewBox:"0 0 19 20",fill:"none"},r.createElement("path",{d:t.More})))),r.createElement("div",{id:"about-container"},r.createElement("div",{className:"width-90",style:{margin:"auto"}},r.createElement("p",{className:"mid width-60"},"Quan is an UX engineer with 5 years of experience in developing and designing innovative solutions.")),r.createElement("div",{className:"about-section width-90",style:{margin:"auto"}},r.createElement("div",{className:"about-items general-section"},r.createElement("h3",null,"Experience"),r.createElement("p",{className:"large-number"},n.Years)),r.createElement("div",{className:"about-items general-section"},r.createElement("h3",null,"Projects"),r.createElement("p",{className:"large-number"},n.Project)),r.createElement("div",{className:"about-items general-section desktop"},r.createElement("h3",null,"Happy clients"),r.createElement("p",{className:"large-number"},n.Stakeholders)))))),r.createElement("div",{className:"divider"}),r.createElement(r.Fragment,null,r.createElement("div",{className:"main-section width-90",style:{margin:"auto"}},r.createElement("div",{className:"more-container"},r.createElement("h1",null,"Featured works"),r.createElement("a",{href:"/works",className:"button more"},r.createElement("p",{className:"button-text"},"More"),r.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"19",height:"20",viewBox:"0 0 19 20",fill:"none"},r.createElement("path",{d:t.More})))),r.createElement("div",{id:"post-container",className:"width-90"},s()))),r.createElement("div",{className:"divider"}),r.createElement(r.Fragment,null,r.createElement("div",{className:"main-section width-90",style:{margin:"auto"}},r.createElement("div",{className:"more-container"},r.createElement("h1",null,"Contact"),r.createElement("a",{href:"/contact",className:"button more"},r.createElement("p",{className:"button-text"},"More"),r.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"19",height:"20",viewBox:"0 0 19 20",fill:"none"},r.createElement("path",{d:t.More})))),r.createElement("div",{className:"width-60"},r.createElement("p",{className:"mid"},"If you want to start a new project or have questions, feel free to reach out at ",r.createElement("br",null),r.createElement("span",{style:{position:"relative",left:"-0.375rem"}},r.createElement("a",{href:"mailto:"+a.Link,className:"button"},a.Details)))),r.createElement("p",null,"Based in Ho Chi Minh City, Vietnam ",r.createElement("br",null)," Work worldwide"))))}),_=n(2),I=n(5),O=function(e){var t,n,a,i,l,o=e.workField,s=e.workFilter,u=e.allPosts,c=e.icons,d=Object(I.b)()[0],f=Object(r.useState)(null!==(t=d.get("sort"))&&void 0!==t?t:"curated"),m=f[0],p=f[1],h=Object(r.useState)(null===(n=d.get("se")&&"true"==d.get("se"))||void 0===n||n),g=h[0],v=h[1],y=Object(r.useState)(null===(a=d.get("pd")&&"true"==d.get("pd"))||void 0===a||a),b=y[0],w=y[1],x=Object(r.useState)(null===(i=d.get("ds")&&"true"==d.get("ds"))||void 0===i||i),k=x[0],S=x[1],E=Object(r.useState)(null===(l=d.get("gd")&&"true"==d.get("gd"))||void 0===l||l),C=E[0],N=E[1];return r.createElement(r.Fragment,null,r.createElement("div",{className:"main-container"},r.createElement("picture",null,r.createElement("source",{media:"(max-width: 640px)",srcSet:"../assets/graphics/Works@0.5x.svg",className:"width-90"}),r.createElement("source",{media:"(min-width: 641px)",srcSet:"../assets/graphics/Works.svg",className:"width-90"}),r.createElement("img",{src:"../assets/graphics/Works.svg",alt:"Works",className:"width-90"})),r.createElement("div",{id:"work-container"},r.createElement("div",{id:"tool-container",className:"width-90"},r.createElement("div",{className:"tool-section-work"},r.createElement("div",{className:"tool-title"},r.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"23",height:"18",viewBox:"0 -1 15 15",fill:"none"},r.createElement("path",{d:c.Field})),r.createElement("h2",null,"Field")),r.createElement("div",{id:"filter-container"},r.createElement(r.Fragment,null,Object.entries(o).map((function(e){var t=e[1],n="se"==t.ID&&g||"pd"==t.ID&&b||"gd"==t.ID&&C||"ds"==t.ID&&k?" active":"";return r.createElement(r.Fragment,null,r.createElement("div",{className:"filter-section"+n,id:t.ID,key:t.ID,onClick:function(){var e;"se"==(e=t.ID)?v(!g):"pd"==e?w(!b):"gd"==e?N(!C):"ds"==e&&S(!k)}},r.createElement("p",{className:"button-text"},t.Alias),r.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"10",height:"8",viewBox:"0 0 10 8",fill:"none"},r.createElement("path",{d:c.Check}))))}))))),r.createElement("div",{className:"tool-section-work"},r.createElement("div",{className:"tool-title"},r.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"23",height:"23",viewBox:"0 0 23 23",fill:"none"},r.createElement("path",{d:c.Sort})),r.createElement("h2",null,"Sort")),r.createElement("ul",{id:"sort-container"},["Curated","Name","Recent"].map((function(e){var t=e.toLowerCase(),n=t==m?" active":"";return r.createElement(r.Fragment,null,r.createElement("li",{className:"sort-section"+n,id:t,onClick:function(){p(t)}},r.createElement("p",{className:"button-text"},e)))}))))),r.createElement("div",{className:"divider"}),r.createElement("div",{id:"post-container",className:"width-90"},r.createElement(r.Fragment,null,s[m].Index.map((function(e){return Object.entries({se:g,pd:b,gd:C,ds:k}).map((function(t){return t[1]&&o[t[0]].PostID.includes(e)})).reduce((function(e,t){return e+t}))>=1?r.createElement(r.Fragment,null,R(e,u,o,c)):r.createElement(r.Fragment,null)})))))))};function R(e,t,n,a){return r.createElement(r.Fragment,null,r.createElement("a",{href:"/works"+t[e].Link,style:{backgroundImage:"url("+t[e].Thumbnail+")"},className:"post-section width-30"},r.createElement("div",{className:"post-overlay"}),r.createElement("div",{className:"post-title"},r.createElement("h3",null,t[e].Name),r.createElement("div",{className:"post-items"},r.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"15",height:"15",viewBox:"0 0 15 15",fill:"none"},r.createElement("path",{d:a.Field})),r.createElement("div",{className:"listing"},Object.entries(n).map((function(t){var n=t[1];return n.PostID.includes(e)?r.createElement("p",{className:"caption"},n.Alias):r.createElement(r.Fragment,null)})))),r.createElement("div",{className:"post-items"},r.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"14",height:"16",viewBox:"0 0 14 16",fill:"none"},r.createElement("path",{d:a.Calendar})),r.createElement("p",{className:"caption"},t[e].Duration+" ("+t[e].Date+")")),r.createElement("div",{className:"post-items"},r.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"14",height:"14",viewBox:"0 0 16 16",fill:"none"},r.createElement("path",{d:a.Tag})),r.createElement("p",{className:"caption"},t[e].Tags))),r.createElement("div",{className:"post-view"},r.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"18",height:"12",viewBox:"0 0 18 12",fill:"none"},r.createElement("path",{d:a.Eye})),r.createElement("p",{className:"button-text"},"View project"))))}var z=n(14),j=n.n(z),U={insert:"head",singleton:!1},A=(i()(j.a,U),j.a.locals,function(e){var t=e.icons,n=e.workField,a=e.allPosts,i=Object(_.r)().workID,l=Object(r.useRef)(null),o=Object(r.useState)(0),s=o[0],u=o[1],c=Object(r.useState)("none"),d=c[0],f=c[1];if(null==i||null==a[i])return r.createElement(_.a,{to:"/404",replace:!0});var m=["se","pd","gd","ds"].map((function(e){return e+"="+n[e].PostID.includes(i)})).reduce((function(e,t){return e+"&"+t})),p=a[i],h=p.Name;return Object(r.useEffect)((function(){document.title=h;var e=function(e){var t=4.5*parseFloat(getComputedStyle(document.documentElement).fontSize),n=s;l.current&&(n=l.current.getBoundingClientRect().top,u(l.current.getBoundingClientRect().top)),f(n