1(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,33525,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"warnOnce",{enumerable:!0,get:function(){return r}});let r=e=>{}},18967,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0});var r={DecodeError:function(){return m},MiddlewareNotFoundError:function(){return k},MissingStaticPage:function(){return b},NormalizeError:function(){return y},PageNotFoundError:function(){return p},SP:function(){return w},ST:function(){return v},WEB_VITALS:function(){return i},execOnce:function(){return a},getDisplayName:function(){return d},getLocationOrigin:function(){return s},getURL:function(){return c},isAbsoluteUrl:function(){return u},isResSent:function(){return f},loadGetInitialProps:function(){return h},normalizeRepeatedSlashes:function(){return g},stringifyError:function(){return x}};for(var o in r)Object.defineProperty(n,o,{enumerable:!0,get:r[o]});let i=["CLS","FCP","FID","INP","LCP","TTFB"];function a(e){let t,n=!1;return(...r)=>(n||(n=!0,t=e(...r)),t)}let l=/^[a-zA-Z][a-zA-Z\d+\-.]*?:/,u=e=>l.test(e);function s(){let{protocol:e,hostname:t,port:n}=window.location;return`${e}//${t}${n?":"+n:""}`}function c(){let{href:e}=window.location,t=s();return e.substring(t.length)}function d(e){return"string"==typeof e?e:e.displayName||e.name||"Unknown"}function f(e){return e.finished||e.headersSent}function g(e){let t=e.split("?");return t[0].replace(/\\/g,"/").replace(/\/\/+/g,"/")+(t[1]?`?${t.slice(1).join("?")}`:"")}async function h(e,t){let n=t.res||t.ctx&&t.ctx.res;if(!e.getInitialProps)return t.ctx&&t.Component?{pageProps:await h(t.Component,t.ctx)}:{};let r=await e.getInitialProps(t);if(n&&f(n))return r;if(!r)throw Object.defineProperty(Error(`"${d(e)}.getInitialProps()" should resolve to an object. But found "${r}" instead.`),"__NEXT_ERROR_CODE",{value:"E1025",enumerable:!1,configurable:!0});return r}let w="u">typeof performance,v=w&&["mark","measure","getEntriesByName"].every(e=>"function"==typeof performance[e]);class m extends Error{}class y extends Error{}
1class p extends Error{constructor(e){super(),this.code="ENOENT",this.name="PageNotFoundError",this.message=`Cannot find module for page: ${e}`}}class b extends Error{constructor(e,t){super(),this.message=`Failed to load static file for page: ${e} ${t}`}}class k extends Error{constructor(){super(),this.code="ENOENT",this.message="Cannot find the middleware module"}}function x(e){return JSON.stringify({message:e.message,stack:e.stack})}},98183,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0});var r={assign:function(){return u},searchParamsToUrlQuery:function(){return i},urlQueryToSearchParams:function(){return l}};for(var o in r)Object.defineProperty(n,o,{enumerable:!0,get:r[o]});function i(e){let t={};for(let[n,r]of e.entries()){let e=t[n];void 0===e?t[n]=r:Array.isArray(e)?e.push(r):t[n]=[e,r]}return t}function a(e){return"string"==typeof e?e:("number"!=typeof e||isNaN(e))&&"boolean"!=typeof e?"":String(e)}function l(e){let t=new URLSearchParams;for(let[n,r]of Object.entries(e))if(Array.isArray(r))for(let e of r)t.append(n,a(e));else t.set(n,a(r));return t}function u(e,...t){for(let n of t){for(let t of n.keys())e.delete(t);for(let[t,r]of n.entries())e.append(t,r)}return e}},85313,e=>{"use strict";e.i(47167);var t=e.i(43476);e.i(20344);var n=e.i(71482);e.i(50711);var r=e.i(81958),o=e.i(71645);let i=Object.prototype.toString,a=new Set(["network error","Failed to fetch","NetworkError when attempting to fetch resource.","The Internet connection appears to be offline.","Network request failed","fetch failed","terminated"," A network error occurred.","Network connection lost"]),l=[500,2e3],u=(0,o.createContext)(void 0),s=(0,o.createContext)(void 0);function c(){return(0,o.useContext)(s)}let d=(0,o.createContext)(null),f="__convexAuthOAuthVerifier",g="__convexAuthJWT",h="__convexAuthRefreshToken",w="__convexAuthServerStateFetchTime";function v({client:e,serverState:n,onChange:r,shouldHandleCode:c,storage:y,storageNamespace:p,replaceURL:b,children:k}){var C,S;let P,E,A,T,R=(0,o.useRef)(n?._state.token??null),[O,$]=(0,o.useState)(null===R.current),[N,j]=(0,o.useState)(R.current),I=e.verbose??!1,M=(0,o.useCallback)(t=>{I&&(console.debug(`${new Date().toISOString()} ${t}`),e.logger?.logVerbose(t))},[I]),{storageSet:F,storageGet:L,storageRemove:U,storageKey:D}=(C=y,S=p,P=function(){let[e,t]=(0,o.useState)({});return()=>({getItem:t=>e[t],setItem:(e,n)=>{t(t=>({...t,[e]:n}))},removeItem:e=>{t(t=>{let{[e]:n,...r}=t;return r})}})}(),E=(0,o.useMemo)(()=>C??P(),[C]),A=S.replace(/[^a-zA-Z0-9]/g,""),T=(0,o.useCallback)(e=>`${e}_${A}`,[S]),{storageSet:(0,o.useCallback)((e,t)=>E.setItem(T(e),t),[E,T]),storageGet:(0,o.useCallback)(e=>E.getItem(T(e)),[E,T]),storageRemove:(0,o.useCallback)(e=>E.removeItem(T(e)),[E,T]),storageKey:T}),[B,z]=(0,o.useState)(!1),V=(0,o.useCallback)(async e=>{let t,n=null!==R.current;if(null===e.tokens)R.current=null,e.shouldStore&&(await U(g),await U(h)),t=null;else{let{token:n}=e.tokens;if(R.current=n,e.shouldStore){let{refreshToken:t}=e.tokens;await F(g,n),await F(h,t)}t=n}n!==(null!==t)&&await r?.(),j(t),$(!1)},[F,U]);(0,o.useEffect)(()=>{let e=async e=>{if(B)return e.preventDefault(),e.returnValue=!0,"Are you sure you want to leave? Your changes may not be saved."};return x("beforeunload",e),()=>{_("beforeunload",e)}}),(0,o.useEffect)(()=>{let e=e=>{(async()=>{if(e.storageArea===y&&e.key===D(g)){let t=e.newValue;M(`synced access token, is null: ${null===t}`),await V({shouldStore:!1,tokens:null===t?null:{token:t}})}})()};return x("storage",e),()=>_("storage",e)},[V]);let W=(0,o.useCallback)(async t=>{let n,r=0;for(;r<l.length;)try{return await e.unauthenticatedCall("auth:signIn","code"in t?{params:{code:t.code},verifier:t.verifier}:t)}catch(t){if(n=t,!function(e){if(!(e&&"[object Error]"===i.call(e)&&"TypeError"===e.name&&"string"==typeof e.message))return!1;let{message:t,stack:n}=e;return"Load failed"===t?void 0===n||"__sentry_captured__"in e:!!t.startsWith("error sending request for url")||a.has(t)}(t))break;let e=l[r]+100*Math.random();r++,M(`verifyCode failed with network error, retry ${r} of ${l.length} in ${e}ms`),await new Promise(t=>setTimeout(t,e))}throw n},[e]),q=(0,o.useCallback)(async e=>{let{tokens:t}=await W(e);return M(`retrieved tokens, is null: ${null===t}`),await V({shouldStore:!0,tokens:t??null}),null!==t},[e,V]),Z=(0,o.useCallback)(async(t,n)=>{let r=n instanceof FormData?Array.from(n.entries()).reduce((e,[t,n])=>(e[t]=n,e),{}):n??{},o=await L(f)??void 0;await U(f);let i=await e.authenticatedCall("auth:signIn",{provider:t,params:r,verifier:o});if(void 0!==i.redirect){let e=new URL(i.redirect);return await F(f,i.verifier),"ReactNative"!==navigator.product&&(window.location.href=e.toString()),{signingIn:!1,redirect:e}}if(void 0!==i.tokens){let{tokens:e}=i;return M(`signed in and got tokens, is null: ${null===e}`),await V({shouldStore:!0,tokens:e}),{signingIn:null!==i.tokens}}return{signingIn:!1}},[e,V,L]),G=(0,o.useCallback)(async()=>{try{await e.authenticatedCall("auth:signOut")}catch(e){}M("signed out, erasing tokens"),await V({shouldStore:!0,tokens:null})},[V,e]),H=(0,o.useCallback)(async({forceRefreshToken:e})=>
1{if(e){let e=R.current;return await m(h,async()=>{let t=R.current;if(t!==e)return M(`returning synced token, is null: ${null===t}`),t;let n=await L(h)??null;return null!==n?(z(!0),await q({refreshToken:n}).finally(()=>{z(!1)}),M(`returning retrieved token, is null: ${null===t}`),R.current):(z(!1),M("returning null, there is no refresh token"),null)})}return R.current},[q,G,L]),J=(0,o.useRef)(!1);(0,o.useEffect)(()=>{if(void 0===y)throw Error("`localStorage` is not available in this environment, set the `storage` prop on `ConvexAuthProvider`!");let e=async()=>{let e=await L(g)??null;M(`retrieved token from storage, is null: ${null===e}`),await V({shouldStore:!1,tokens:null===e?null:{token:e}})};if(void 0!==n){let t=L(w),r=t=>{if(!t||n._timeFetched>+t){let{token:e,refreshToken:t}=n._state;F(w,n._timeFetched.toString()),V({tokens:null===e||null===t?null:{token:e,refreshToken:t},shouldStore:!0})}else e()};t instanceof Promise?t.then(r):r(t);return}let t=void 0!==window?.location?.search?new URLSearchParams(window.location.search).get("code"):null;if((J.current||t)&&!J.current&&(void 0===c||("function"==typeof c?c():c))){J.current=!0;let e=new URL(window.location.href);e.searchParams.delete("code"),(async()=>{await b(e.pathname+e.search+e.hash),await Z(void 0,{code:t}),J.current=!1})()}else e()},[e,L]);let K=(0,o.useMemo)(()=>({signIn:Z,signOut:G}),[Z,G]),Q=null!==N,X=(0,o.useMemo)(()=>({isLoading:O,isAuthenticated:Q,fetchAccessToken:H}),[H,O,Q]);return(0,t.jsx)(s.Provider,{value:X,children:(0,t.jsx)(u.Provider,{value:K,children:(0,t.jsx)(d.Provider,{value:N,children:k})})})}async function m(e,t){let n=window?.navigator?.locks;return void 0!==n?await n.request(e,t):await k(e,t)}function y(e){void 0===globalThis.__convexAuthMutexes&&(globalThis.__convexAuthMutexes={});let t=globalThis.__convexAuthMutexes[e];return void 0===t&&(globalThis.__convexAuthMutexes[e]={currentlyRunning:null,waiting:[]}),t=globalThis.__convexAuthMutexes[e]}function p(e,t){globalThis.__convexAuthMutexes[e]=t}async function b(e,t){let n=y(e);null===n.currentlyRunning?p(e,{currentlyRunning:t().finally(()=>{let t=y(e).waiting.shift();y(e).currentlyRunning=null,p(e,{...y(e),currentlyRunning:void 0===t?null:b(e,t)})}),waiting:[]}):p(e,{...n,waiting:[...n.waiting,t]})}async function k(e,t){return new Promise((n,r)=>{b(e,()=>t().then(e=>n(e)).catch(e=>r(e)))})}function x(e,t,n){window.addEventListener?.(e,t,n)}function _(e,t,n){window.removeEventListener?.(e,t,n)}function C(e){let{client:i,storage:a,storageNamespace:l,replaceURL:u,shouldHandleCode:s,children:d}=e,f=(0,o.useMemo)(()=>({authenticatedCall:(e,t)=>i.action(e,t),unauthenticatedCall:(e,t)=>new n.ConvexHttpClient(i.address,{logger:i.logger}).action(e,t),verbose:i.options?.verbose,logger:i.logger}),[i]);return(0,t.jsx)(v,{client:f,storage:a??("u"<typeof window?void 0:window?.localStorage),storageNamespace:l??i.address,replaceURL:u??(e=>{window.history.replaceState({},"",e)}),shouldHandleCode:s,children:(0,t.jsx)(r.ConvexProviderWithAuth,{client:i,useAuth:c,children:d})})}let S=new(e.i(82045)).ConvexReactClient("https://cautious-wombat-2.eu-west-1.convex.cloud");e.s(["ConvexClientProvider",0,function({children:e}){return S?(0,t.jsx)(C,{client:S,children:e}):(0,t.jsx)(t.Fragment,{children:e})}],85313)}]);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.