PageSourceSearch

https://scunthorpe-united.co.uk/_next/static/chunks/2ryz5-ycxv0cy.js

js scunthorpe-united.co.uk collected 2026-09-25 00:38:20 UTC 122,728 bytes, 2,849 lines download raw bytes

1(globalThis["TURBOPACK"] || (globalThis["TURBOPACK"] = [])).push([typeof document === "object" ? document.currentScript : undefined,
254394, ((__turbopack_context__, module, exports) => {
3"use strict";
4
5Object.defineProperty(exports, "__esModule", {
6    value: true
7});
80 && (module.exports = {
9    HTTPAccessErrorStatus: null,
10    HTTP_ERROR_FALLBACK_ERROR_CODE: null,
11    getAccessFallbackErrorTypeByStatus: null,
12    getAccessFallbackHTTPStatus: null,
13    isHTTPAccessFallbackError: null
14});
15function _export(target, all) {
16    for(var name in all)Object.defineProperty(target, name, {
17        enumerable: true,
18        get: all[name]
19    });
20}
21_export(exports, {
22    HTTPAccessErrorStatus: function() {
23        return HTTPAccessErrorStatus;
24    },
25    HTTP_ERROR_FALLBACK_ERROR_CODE: function() {
26        return HTTP_ERROR_FALLBACK_ERROR_CODE;
27    },
28    getAccessFallbackErrorTypeByStatus: function() {
29        return getAccessFallbackErrorTypeByStatus;
30    },
31    getAccessFallbackHTTPStatus: function() {
32        return getAccessFallbackHTTPStatus;
33    },
34    isHTTPAccessFallbackError: function() {
35        return isHTTPAccessFallbackError;
36    }
37});
38const HTTPAccessErrorStatus = {
39    NOT_FOUND: 404,
40    FORBIDDEN: 403,
41    UNAUTHORIZED: 401
42};
43const ALLOWED_CODES = new Set(Object.values(HTTPAccessErrorStatus));
44const HTTP_ERROR_FALLBACK_ERROR_CODE = 'NEXT_HTTP_ERROR_FALLBACK';
45function isHTTPAccessFallbackError(error) {
46    if (typeof error !== 'object' || error === null || !('digest' in error) || typeof error.digest !== 'string') {
47        return false;
48    }
49    const [prefix, httpStatus] = error.digest.split(';');
50    return prefix === HTTP_ERROR_FALLBACK_ERROR_CODE && ALLOWED_CODES.has(Number(httpStatus));
51}
52function getAccessFallbackHTTPStatus(error) {
53    const httpStatus = error.digest.split(';')[1];
54    return Number(httpStatus);
55}
56function getAccessFallbackErrorTypeByStatus(status) {
57    switch(status){
58        case 401:
59            return 'unauthorized';
60        case 403:
61            return 'forbidden';
62        case 404:
63            return 'not-found';
64        default:
65            return;
66    }
67}
68if ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {
69    Object.defineProperty(exports.default, '__esModule', {
70        value: true
71    });
72    Object.assign(exports.default, exports);
73    module.exports = exports.default;
74}
75}),
7665713, ((__turbopack_context__, module, exports) => {
77"use strict";
78
79Object.defineProperty(exports, "__esModule", {
80    value: true
81});
82Object.defineProperty(exports, "isNextRouterError", {
83    enumerable: true,
84    get: function() {
85        return isNextRouterError;
86    }
87});
88const _httpaccessfallback = __turbopack_context__.r(54394);
89const _redirecterror = __turbopack_context__.r(68391);
90function isNextRouterError(error) {
91    return (0, _redirecterror.isRedirectError)(error) || (0, _httpaccessfallback.isHTTPAccessFallbackError)(error);
92}
93if ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {
94    Object.defineProperty(exports.default, '__esModule', {
95        value: true
96    });
97    Object.assign(exports.default, exports);
98    module.exports = exports.default;
99}
100}),
1013680, ((__turbopack_context__, module, exports) => {
102"use strict";
103
104/**
105 * ReadonlyURLSearchParams implementation shared between client and server.
106 * This file is intentionally not marked as 'use client' or 'use server'
107 * so it can be imported by both environments.
108 */ /** @internal */ Object.defineProperty(exports, "__esModule", {
109    value: true
110});
111Object.defineProperty(exports, "ReadonlyURLSearchParams", {
112    enumerable: true,
113    get: function() {
114        return ReadonlyURLSearchParams;
115    }
116});
117class ReadonlyURLSearchParamsError extends Error {
118    constructor(){
119        super('Method unavailable on `ReadonlyURLSearchParams`. Read more: https://nextjs.org/docs/app/api-reference/functions/use-search-params#updating-searchparams');
120    }
121}
122class ReadonlyURLSearchParams extends URLSearchParams {
123    /** @deprecated Method unavailable on `ReadonlyURLSearchParams`. Read more: https://nextjs.org/docs/app/api-reference/functions/use-search-params#updating-searchparams */ append() {
124        throw new ReadonlyURLSearchParamsError();
125    }
126    /** @deprecated Method unavailable on `ReadonlyURLSearchParams`. Read more: https://nextjs.org/docs/app/api-reference/functions/use-search-params#updating-searchparams */ delete() {
127        throw new ReadonlyURLSearchParamsError();
128    }
129    /** @deprecated Method unavailable on `ReadonlyURLSearchParams`. Read more: https://nextjs.org/docs/app/api-reference/functions/use-search-params#updating-searchparams */ set() {
130        throw new ReadonlyURLSearchParamsError();
131    }
132    /** @deprecated Method unavailable on `ReadonlyURLSearchParams`. Read more: https://nextjs.org/docs/app/api-reference/functions/use-search-params#updating-searchparams */ sort() {
133        throw new ReadonlyURLSearchParamsError();
134    }
135}
136if ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {
137    Object.defineProperty(exports.default, '__esModule', {
138        value: true
139    });
140    Object.assign(exports.default, exports);
141    module.exports = exports.default;
142}
143}),
14461994, ((__turbopack_context__, module, exports) => {
145"use strict";
146
147var __TURBOPACK__imported__module__47167__ = /*#__PURE__*/ __turbopack_context__.i(47167);
148'use client';
149"use strict";
150Object.defineProperty(exports, "__esModule", {
151    value: true
152});
1530 && (module.exports = {
154    NavigationPromisesContext: null,
155    PathParamsContext: null,
156    PathnameContext: null,
157    ReadonlyURLSearchParams: null,
158    SearchParamsContext: null,
159    createDevToolsInstrumentedPromise: null
160});
161function _export(target, all) {
162    for(var name in all)Object.defineProperty(target, name, {
163        enumerable: true,
164        get: all[name]
165    });
166}
167_export(exports, {
168    NavigationPromisesContext: function() {
169        return NavigationPromisesContext;
170    },
171    PathParamsContext: function() {
172        return PathParamsContext;
173    },
174    PathnameContext: function() {
175        return PathnameContext;
176    },
177    ReadonlyURLSearchParams: function() {
178        return _readonlyurlsearchparams.ReadonlyURLSearchParams;
179    },
180    SearchParamsContext: function() {
181        return SearchParamsContext;
182    },
183    createDevToolsInstrumentedPromise: function() {
184        return createDevToolsInstrumentedPromise;
185    }
186});
187const _react = __turbopack_context__.r(71645);
188const _readonlyurlsearchparams = __turbopack_context__.r(3680);
189const SearchParamsContext = (0, _react.createContext)(null);
190const PathnameContext = (0, _react.createContext)(null);
191const PathParamsContext = (0, _react.createContext)(null);
192const NavigationPromisesContext = (0, _react.createContext)(null);
193function createDevToolsInstrumentedPromise(displayName, value) {
194    const promise = Promise.resolve(value);
195    promise.status = 'fulfilled';
196    promise.value = value;
197    promise.displayName = `${displayName} (SSR)`;
198    return promise;
199}
200if ("TURBOPACK compile-time truthy", 1) {
201    SearchParamsContext.displayName = 'SearchParamsContext';
202    PathnameContext.displayName = 'PathnameContext';
203    PathParamsContext.displayName = 'PathParamsContext';
204    NavigationPromisesContext.displayName = 'NavigationPromisesContext';
205}
206}),
20745955, ((__turbopack_context__, module, exports) => {
208"use strict";
209
210Object.defineProperty(exports, "__esModule", {
211    value: true
212});
213Object.defineProperty(exports, "workUnitAsyncStorageInstance", {
214    enumerable: true,
215    get: function() {
216        return workUnitAsyncStorageInstance;
217    }
218});
219const _asynclocalstorage = __turbopack_context__.r(90317);
220const workUnitAsyncStorageInstance = (0, _asynclocalstorage.createAsyncLocalStorage)();
221}),
22242852, ((__turbopack_context__, module, exports) => {
223"use strict";
224
225Object.defineProperty(exports, "__esModule", {
226    value: true
227});
2280 && (module.exports = {
229    RenderStage: null,
230    StagedRenderingController: null
231});
232function _export(target, all) {
233    for(var name in all)Object.defineProperty(target, name, {
234        enumerable: true,
235        get: all[name]
236    });
237}
238_export(exports, {
239    RenderStage: function() {
240        return RenderStage;
241    },
242    StagedRenderingController: function() {
243        return StagedRenderingController;
244    }
245});
246const _invarianterror = __turbopack_context__.r(12718);
247const _promisewithresolvers = __turbopack_context__.r(39470);
248var RenderStage = /*#__PURE__*/ function(RenderStage) {
249    RenderStage[RenderStage["Before"] = 1] = "Before";
250    RenderStage[RenderStage["EarlyStatic"] = 2] = "EarlyStatic";
251    RenderStage[RenderStage["Static"] = 3] = "Static";
252    RenderStage[RenderStage["EarlyRuntime"] = 4] = "EarlyRuntime";
253    RenderStage[RenderStage["Runtime"] = 5] = "Runtime";
254    RenderStage[RenderStage["Dynamic"] = 6] = "Dynamic";
255    RenderStage[RenderStage["Abandoned"] = 7] = "Abandoned";
256    return RenderStage;
257}({});
258class StagedRenderingController {
259    constructor(abortSignal, abandonController, shouldTrackSyncIO){
260        this.abortSignal = abortSignal;
261        this.abandonController = abandonController;
262        this.shouldTrackSyncIO = shouldTrackSyncIO;
263        this.currentStage = 1;
264        this.syncInterruptReason = null;
265        this.staticStageEndTime = Infinity;
266        this.runtimeStageEndTime = Infinity;
267        this.staticStageListeners = [];
268        this.earlyRuntimeStageListeners = [];
269        this.runtimeStageListeners = [];
270        this.dynamicStageListeners = [];
271        this.staticStagePromise = (0, _promisewithresolvers.createPromiseWithResolvers)();
272        this.earlyRuntimeStagePromise = (0, _promisewithresolvers.createPromiseWithResolvers)();
273        this.runtimeStagePromise = (0, _promisewithresolvers.createPromiseWithResolvers)();
274        this.dynamicStagePromise = (0, _promisewithresolvers.createPromiseWithResolvers)();
275        if (abortSignal) {
276            abortSignal.addEventListener('abort', ()=>{
277                // Reject all stage promises that haven't already been resolved.
278                // If a promise was already resolved via advanceStage, the reject
279                // is a no-op. The ignoreReject handler suppresses unhandled
280                // rejection warnings for promises that no one is awaiting.
281                const { reason } = abortSignal;
282                this.staticStagePromise.promise.catch(ignoreReject);
283                this.staticStagePromise.reject(reason);
284                this.earlyRuntimeStagePromise.promise.catch(ignoreReject);
285                this.earlyRuntimeStagePromise.reject(reason);
286                this.runtimeStagePromise.promise.catch(ignoreReject);
287                this.runtimeStagePromise.reject(reason);
288                this.dynamicStagePromise.promise.catch(ignoreReject);
289                this.dynamicStagePromise.reject(reason);
290            }, {
291                once: true
292            });
293        }
294        if (abandonController) {
295            abandonController.signal.addEventListener('abort', ()=>{
296                this.abandonRender();
297            }, {
298                once: true
299            });
300        }
301    }
302    onStage(stage, callback) {
303        if (this.currentStage >= stage) {
304            callback();
305        } else if (stage === 3) {
306            this.staticStageListeners.push(callback);
307        } else if (stage === 4) {
308            this.earlyRuntimeStageListeners.push(callback);
309        } else if (stage === 5) {
310            this.runtimeStageListeners.push(callback);
311        } else if (stage === 6) {
312            this.dynamicStageListeners.push(callback);
313        } else {
314            // This should never happen
315            throw Object.defineProperty(new _invarianterror.InvariantError(`Invalid render stage: ${stage}`), "__NEXT_ERROR_CODE", {
316                value: "E881",
317                enumerable: false,
318                configurable: true
319            });
320        }
321    }
322    shouldTrackSyncInterrupt() {
323        if (!this.shouldTrackSyncIO) {
324            return false;
325        }
326        switch(this.currentStage){
327            case 1:
328                // If we haven't started the render yet, it can't be interrupted.
329                return false;
330            case 2:
331            case 3:
332                return true;
333            case 4:
334                // EarlyRuntime is for runtime-prefetchable segments. Sync IO
335                // should error because it would abort a runtime prefetch.
336                return true;
337            case 5:
338                // Runtime is for non-prefetchable segments. Sync IO is fine there
339                // because in practice this segment will never be runtime prefetched
340                return false;
341            case 6:
342            case 7:
343                return false;
344            default:
345                return false;
346        }
347    }
348    syncInterruptCurrentStageWithReason(reason) {
349        if (this.currentStage === 1) {
350            return;
351        }
352        // If the render has already been abandoned, there's nothing to interrupt.
353        if (this.currentStage === 7) {
354            return;
355        }
356        // If Sync IO occurs during an abandonable render, we trigger the abandon.
357        // The abandon listener will call abandonRender which advances through
358        // stages to let caches fill before marking as Abandoned.
359        if (this.abandonController) {
360            this.abandonController.abort();
361            return;
362        }
363        if (this.abortSignal) {
364            // If this is an abortable render, we capture the interruption reason and stop advancing.
365            // We don't release any more promises.
366            // The caller is expected to abort the signal.
367            this.syncInterruptReason = reason;
368            this.currentStage = 7;
369            return;
370        }
371        // If we're in a non-abandonable & non-abortable render,
372        // we need to advance to the Dynamic stage and capture the interruption reason.
373        // (in dev, this will be the restarted render)
374        switch(this.currentStage){
375            case 2:
376            case 3:
377            case 4:
378                {
379                    // EarlyRuntime is for runtime-prefetchable segments. Sync IO here
380                    // means the prefetch would be aborted too early.
381                    this.syncInterruptReason = reason;
382                    this.advanceStage(6);
383                    return;
384                }
385            case 5:
386                {
387                    // canSyncInterrupt returns false for Runtime, so we should
388                    // never get here. Defensive no-op.
389                    return;
390                }
391            case 6:
392            default:
393        }
394    }
395    getSyncInterruptReason() {
396        return this.syncInterruptReason;
397    }
398    getStaticStageEndTime() {
399        return this.staticStageEndTime;
400    }
401    getRuntimeStageEndTime() {
402        return this.runtimeStageEndTime;
403    }
404    abandonRender() {
405        // In staged rendering, only the initial render is abandonable.
406        // We can abandon the initial render if
407        //   1. We notice a cache miss, and need to wait for caches to fill
408        //   2. A sync IO error occurs, and the render should be interrupted
409        //      (this might be a lazy intitialization of a module,
410        //       so we still want to restart in this case and see if it still occurs)
411        // In either case, we'll be doing another render after this one,
412        // so we only want to unblock the next stage, not Dynamic, because
413        // unblocking the dynamic stage would likely lead to wasted (uncached) IO.
414        const { currentStage } = this;
415        switch(currentStage){
416            case 2:
417                {
418                    this.resolveStaticStage();
419                }
420            // intentional fallthrough
421            case 3:
422                {
423                    this.resolveEarlyRuntimeStage();
424                }
425            // intentional fallthrough
426            case 4:
427                {
428                    this.resolveRuntimeStage();
429                }
430            // intentional fallthrough
431            case 5:
432                {
433                    this.currentStage = 7;
434                    return;
435                }
436            case 6:
437            case 1:
438            case 7:
439                break;
440            default:
441                {
442                    currentStage;
443                }
444        }
445    }
446    advanceStage(stage) {
447        // If we're already at the target stage or beyond, do nothing.
448        // (this can happen e.g. if sync IO advanced us to the dynamic stage)
449        if (stage <= this.currentStage) {
450            return;
451        }
452        let currentStage = this.currentStage;
453        this.currentStage = stage;
454        if (currentStage < 3 && stage >= 3) {
455            this.resolveStaticStage();
456        }
457        if (currentStage < 4 && stage >= 4) {
458            this.resolveEarlyRuntimeStage();
459        }
460        if (currentStage < 5 && stage >= 5) {
461            this.staticStageEndTime = performance.now() + performance.timeOrigin;
462            this.resolveRuntimeStage();
463        }
464        if (currentStage < 6 && stage >= 6) {
465            this.runtimeStageEndTime = performance.now() + performance.timeOrigin;
466            this.resolveDynamicStage();
467            return;
468        }
469    }
470    /** Fire the `onStage` listeners for the static stage and unblock any promises waiting for it. */ resolveStaticStage() {
471        const staticListeners = this.staticStageListeners;
472        for(let i = 0; i < staticListeners.length; i++){
473            staticListeners[i]();
474        }
475        staticListeners.length = 0;
476        this.staticStagePromise.resolve();
477    }
478    /** Fire the `onStage` listeners for the early runtime stage and unblock any promises waiting for it. */ resolveEarlyRuntimeStage() {
479        const earlyRuntimeListeners = this.earlyRuntimeStageListeners;
480        for(let i = 0; i < earlyRuntimeListeners.length; i++){
481            earlyRuntimeListeners[i]();
482        }
483        earlyRuntimeListeners.length = 0;
484        this.earlyRuntimeStagePromise.resolve();
485    }
486    /** Fire the `onStage` listeners for the runtime stage and unblock any promises waiting for it. */ resolveRuntimeStage() {
487        const runtimeListeners = this.runtimeStageListeners;
488        for(let i = 0; i < runtimeListeners.length; i++){
489            runtimeListeners[i]();
490        }
491        runtimeListeners.length = 0;
492        this.runtimeStagePromise.resolve();
493    }
494    /** Fire the `onStage` listeners for the dynamic stage and unblock any promises waiting for it. */ resolveDynamicStage() {
495        const dynamicListeners = this.dynamicStageListeners;
496        for(let i = 0; i < dynamicListeners.length; i++){
497            dynamicListeners[i]();
498        }
499        dynamicListeners.length = 0;
500        this.dynamicStagePromise.resolve();
501    }
502    getStagePromise(stage) {
503        switch(stage){
504            case 3:
505                {
506                    return this.staticStagePromise.promise;
507                }
508            case 4:
509                {
510                    return this.earlyRuntimeStagePromise.promise;
511                }
512            case 5:
513                {
514                    return this.runtimeStagePromise.promise;
515                }
516            case 6:
517                {
518                    return this.dynamicStagePromise.promise;
519                }
520            default:
521                {
522                    stage;
523                    throw Object.defineProperty(new _invarianterror.InvariantError(`Invalid render stage: ${stage}`), "__NEXT_ERROR_CODE", {
524                        value: "E881",
525                        enumerable: false,
526                        configurable: true
527                    });
528                }
529        }
530    }
531    waitForStage(stage) {
532        return this.getStagePromise(stage);
533    }
534    delayUntilStage(stage, displayName, resolvedValue) {
535        const ioTriggerPromise = this.getStagePromise(stage);
536        const promise = makeDevtoolsIOPromiseFromIOTrigger(ioTriggerPromise, displayName, resolvedValue);
537        // Analogously to `makeHangingPromise`, we might reject this promise if the signal is invoked.
538        // (e.g. in the case where we don't want want the render to proceed to the dynamic stage and abort it).
539        // We shouldn't consider this an unhandled rejection, so we attach a noop catch handler here to suppress this warning.
540        if (this.abortSignal) {
541            promise.catch(ignoreReject);
542        }
543        return promise;
544    }
545}
546function ignoreReject() {}
547// TODO(restart-on-cache-miss): the layering of `delayUntilStage`,
548// `makeDevtoolsIOPromiseFromIOTrigger` and and `makeDevtoolsIOAwarePromise`
549// is confusing, we should clean it up.
550function makeDevtoolsIOPromiseFromIOTrigger(ioTrigger, displayName, resolvedValue) {
551    // If we create a `new Promise` and give it a displayName
552    // (with no userspace code above us in the stack)
553    // React Devtools will use it as the IO cause when determining "suspended by".
554    // In particular, it should shadow any inner IO that resolved/rejected the promise
555    // (in case of staged rendering, this will be the `setTimeout` that triggers the relevant stage)
556    const promise = new Promise((resolve, reject)=>{
557        ioTrigger.then(resolve.bind(null, resolvedValue), reject);
558    });
559    if (displayName !== undefined) {
560        // @ts-expect-error
561        promise.displayName = displayName;
562    }
563    return promise;
564}
565}),
56662141, ((__turbopack_context__, module, exports) => {
567"use strict";
568
569var __TURBOPACK__imported__module__47167__ = /*#__PURE__*/ __turbopack_context__.i(47167);
570"use strict";
571Object.defineProperty(exports, "__esModule", {
572    value: true
573});
5740 && (module.exports = {
575    getCacheSignal: null,
576    getDraftModeProviderForCacheScope: null,
577    getHmrRefreshHash: null,
578    getPrerenderResumeDataCache: null,
579    getRenderResumeDataCache: null,
580    getServerComponentsHmrCache: null,
581    getStagedRenderingController: null,
582    isHmrRefresh: null,
583    isInEarlyRenderStage: null,
584    throwForMissingRequestStore: null,
585    throwInvariantForMissingStore: null,
586    workUnitAsyncStorage: null
587});
588function _export(target, all) {
589    for(var name in all)Object.defineProperty(target, name, {
590        enumerable: true,
591        get: all[name]
592    });
593}
594_export(exports, {
595    getCacheSignal: function() {
596        return getCacheSignal;
597    },
598    getDraftModeProviderForCacheScope: function() {
599        return getDraftModeProviderForCacheScope;
600    },
601    getHmrRefreshHash: function() {
602        return getHmrRefreshHash;
603    },
604    getPrerenderResumeDataCache: function() {
605        return getPrerenderResumeDataCache;
606    },
607    getRenderResumeDataCache: function() {
608        return getRenderResumeDataCache;
609    },
610    getServerComponentsHmrCache: function() {
611        return getServerComponentsHmrCache;
612    },
613    getStagedRenderingController: function() {
614        return getStagedRenderingController;
615    },
616    isHmrRefresh: function() {
617        return isHmrRefresh;
618    },
619    isInEarlyRenderStage: function() {
620        return isInEarlyRenderStage;
621    },
622    throwForMissingRequestStore: function() {
623        return throwForMissingRequestStore;
624    },
625    throwInvariantForMissingStore: function() {
626        return throwInvariantForMissingStore;
627    },
628    workUnitAsyncStorage: function() {
629        return _workunitasyncstorageinstance.workUnitAsyncStorageInstance;
630    }
631});
632const _workunitasyncstorageinstance = __turbopack_context__.r(45955);
633const _approuterheaders = __turbopack_context__.r(21768);
634const _invarianterror = __turbopack_context__.r(12718);
635const _stagedrendering = __turbopack_context__.r(42852);
636function isInEarlyRenderStage(requestStore) {
637    const stagedRendering = requestStore.stagedRendering;
638    if (stagedRendering) {
639        return stagedRendering.currentStage === _stagedrendering.RenderStage.EarlyStatic || stagedRendering.currentStage === _stagedrendering.RenderStage.EarlyRuntime;
640    }
641    return false;
642}
643function throwForMissingRequestStore(callingExpression) {
644    throw Object.defineProperty(new Error(`\`${callingExpression}\` was called outside a request scope. Read more: https://nextjs.org/docs/messages/next-dynamic-api-wrong-context`), "__NEXT_ERROR_CODE", {
645        value: "E251",
646        enumerable: false,
647        configurable: true
648    });
649}
650function throwInvariantForMissingStore() {
651    throw Object.defineProperty(new _invarianterror.InvariantError('Expected workUnitAsyncStorage to have a store.'), "__NEXT_ERROR_CODE", {
652        value: "E696",
653        enumerable: false,
654        configurable: true
655    });
656}
657function getPrerenderResumeDataCache(workUnitStore) {
658    switch(workUnitStore.type){
659        case 'prerender':
660        case 'prerender-runtime':
661        case 'prerender-ppr':
662            return workUnitStore.prerenderResumeDataCache;
663        case 'prerender-client':
664        case 'validation-client':
665            // TODO eliminate fetch caching in client scope and stop exposing this data
666            // cache during SSR.
667            return workUnitStore.prerenderResumeDataCache;
668        case 'request':
669            {
670                // In dev, we might fill caches even during a dynamic request.
671                if (workUnitStore.prerenderResumeDataCache) {
672                    return workUnitStore.prerenderResumeDataCache;
673                }
674            // fallthrough
675            }
676        case 'prerender-legacy':
677        case 'cache':
678        case 'private-cache':
679        case 'unstable-cache':
680        case 'generate-static-params':
681            return null;
682        default:
683            return workUnitStore;
684    }
685}
686function getRenderResumeDataCache(workUnitStore) {
687    switch(workUnitStore.type){
688        case 'request':
689        case 'prerender':
690        case 'prerender-runtime':
691        case 'prerender-client':
692        case 'validation-client':
693            if (workUnitStore.renderResumeDataCache) {
694                // If we are in a prerender, we might have a render resume data cache
695                // that is used to read from prefilled caches.
696                return workUnitStore.renderResumeDataCache;
697            }
698        // fallthrough
699        case 'prerender-ppr':
700            // Otherwise we return the mutable resume data cache here as an immutable
701            // version of the cache as it can also be used for reading.
702            return workUnitStore.prerenderResumeDataCache ?? null;
703        case 'cache':
704        case 'private-cache':
705        case 'unstable-cache':
706        case 'prerender-legacy':
707        case 'generate-static-params':
708            return null;
709        default:
710            return workUnitStore;
711    }
712}
713function getHmrRefreshHash(workUnitStore) {
714    if ("TURBOPACK compile-time falsy", 0) //TURBOPACK unreachable
715    {
716        var _workUnitStore_cookies_get;
717    /*TURBOPACK member replacement*/ }
718    return undefined;
719}
720function isHmrRefresh(workUnitStore) {
721    if ("TURBOPACK compile-time falsy", 0) //TURBOPACK unreachable
722    ;
723    return false;
724}
725function getServerComponentsHmrCache(workUnitStore) {
726    if ("TURBOPACK compile-time falsy", 0) //TURBOPACK unreachable
727    ;
728    return undefined;
729}
730function getDraftModeProviderForCacheScope(workStore, workUnitStore) {
731    if (workStore.isDraftMode) {
732        switch(workUnitStore.type){
733            case 'cache':
734            case 'private-cache':
735            case 'unstable-cache':
736            case 'prerender-runtime':
737            case 'request':
738                return workUnitStore.draftMode;
739            case 'prerender':
740            case 'prerender-client':
741            case 'validation-client':
742            case 'prerender-ppr':
743            case 'prerender-legacy':
744            case 'generate-static-params':
745                break;
746            default:
747                workUnitStore;
748        }
749    }
750    return undefined;
751}
752function getStagedRenderingController(workUnitStore) {
753    switch(workUnitStore.type){
754        case 'request':
755        case 'prerender-runtime':
756            return workUnitStore.stagedRendering ?? null;
757        case 'prerender':
758        case 'prerender-client':
759        case 'validation-client':
760        case 'prerender-ppr':
761        case 'prerender-legacy':
762        case 'cache':
763        case 'private-cache':
764        case 'unstable-cache':
765        case 'generate-static-params':
766            return null;
767        default:
768            return workUnitStore;
769    }
770}
771function getCacheSignal(workUnitStore) {
772    switch(workUnitStore.type){
773        case 'prerender':
774        case 'prerender-client':
775        case 'validation-client':
776        case 'prerender-runtime':
777            return workUnitStore.cacheSignal;
778        case 'request':
779            {
780                // In dev, we might fill caches even during a dynamic request.
781                if (workUnitStore.cacheSignal) {
782                    return workUnitStore.cacheSignal;
783                }
784            // fallthrough
785            }
786        case 'prerender-ppr':
787        case 'prerender-legacy':
788        case 'cache':
789        case 'private-cache':
790        case 'unstable-cache':
791        case 'generate-static-params':
792            return null;
793        default:
794            return workUnitStore;
795    }
796}
797}),
79822783, ((__turbopack_context__, module, exports) => {
799"use strict";
800
801Object.defineProperty(exports, "__esModule", {
802    value: true
803});
804Object.defineProperty(exports, "notFound", {
805    enumerable: true,
806    get: function() {
807        return notFound;
808    }
809});
810const _httpaccessfallback = __turbopack_context__.r(54394);
811/**
812 * This function allows you to render the [not-found.js file](https://nextjs.org/docs/app/api-reference/file-conventions/not-found)
813 * within a route segment as well as inject a tag.
814 *
815 * `notFound()` can be used in
816 * [Server Components](https://nextjs.org/docs/app/building-your-application/rendering/server-components),
817 * [Route Handlers](https://nextjs.org/docs/app/building-your-application/routing/route-handlers), and
818 * [Server Actions](https://nextjs.org/docs/app/building-your-application/data-fetching/server-actions-and-mutations).
819 *
820 * - In a Server Component, this will insert a `<meta name="robots" content="noindex" />` meta tag and set the status code to 404.
821 * - In a Route Handler or Server Action, it will serve a 404 to the caller.
822 *
823 * Read more: [Next.js Docs: `notFound`](https://nextjs.org/docs/app/api-reference/functions/not-found)
824 */ const DIGEST = `${_httpaccessfallback.HTTP_ERROR_FALLBACK_ERROR_CODE};404`;
825function notFound() {
826    const error = Object.defineProperty(new Error(DIGEST), "__NEXT_ERROR_CODE", {
827        value: "E1041",
828        enumerable: false,
829        configurable: true
830    });
831    error.digest = DIGEST;
832    throw error;
833}
834if ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {
835    Object.defineProperty(exports.default, '__esModule', {
836        value: true
837    });
838    Object.assign(exports.default, exports);
839    module.exports = exports.default;
840}
841}),
84213957, ((__turbopack_context__, module, exports) => {
843"use strict";
844
845Object.defineProperty(exports, "__esModule", {
846    value: true
847});
8480 && (module.exports = {
849    ServerInsertedHTMLContext: null,
850    useServerInsertedHTML: null
851});
852function _export(target, all) {
853    for(var name in all)Object.defineProperty(target, name, {
854        enumerable: true,
855        get: all[name]
856    });
857}
858_export(exports, {
859    ServerInsertedHTMLContext: function() {
860        return ServerInsertedHTMLContext;
861    },
862    useServerInsertedHTML: function() {
863        return useServerInsertedHTML;
864    }
865});
866const _interop_require_wildcard = __turbopack_context__.r(90809);
867const _react = /*#__PURE__*/ _interop_require_wildcard._(__turbopack_context__.r(71645));
868const ServerInsertedHTMLContext = /*#__PURE__*/ _react.default.createContext(null);
869function useServerInsertedHTML(callback) {
870    const addInsertedServerHTMLCallback = (0, _react.useContext)(ServerInsertedHTMLContext);
871    // Should have no effects on client where there's no flush effects provider
872    if (addInsertedServerHTMLCallback) {
873        addInsertedServerHTMLCallback(callback);
874    }
875}
876}),
87779854, ((__turbopack_context__, module, exports) => {
878"use strict";
879
880var __TURBOPACK__imported__module__47167__ = /*#__PURE__*/ __turbopack_context__.i(47167);
881"use strict";
882Object.defineProperty(exports, "__esModule", {
883    value: true
884});
885Object.defineProperty(exports, "forbidden", {
886    enumerable: true,
887    get: function() {
888        return forbidden;
889    }
890});
891const _httpaccessfallback = __turbopack_context__.r(54394);
892// TODO: Add `forbidden` docs
893/**
894 * @experimental
895 * This function allows you to render the [forbidden.js file](https://nextjs.org/docs/app/api-reference/file-conventions/forbidden)
896 * within a route segment as well as inject a tag.
897 *
898 * `forbidden()` can be used in
899 * [Server Components](https://nextjs.org/docs/app/building-your-application/rendering/server-components),
900 * [Route Handlers](https://nextjs.org/docs/app/building-your-application/routing/route-handlers), and
901 * [Server Actions](https://nextjs.org/docs/app/building-your-application/data-fetching/server-actions-and-mutations).
902 *
903 * Read more: [Next.js Docs: `forbidden`](https://nextjs.org/docs/app/api-reference/functions/forbidden)
904 */ const DIGEST = `${_httpaccessfallback.HTTP_ERROR_FALLBACK_ERROR_CODE};403`;
905function forbidden() {
906    if ("TURBOPACK compile-time truthy", 1) {
907        throw Object.defineProperty(new Error(`\`forbidden()\` is experimental and only allowed to be enabled when \`experimental.authInterrupts\` is enabled.`), "__NEXT_ERROR_CODE", {
908            value: "E488",
909            enumerable: false,
910            configurable: true
911        });
912    }
913    const error = Object.defineProperty(new Error(DIGEST), "__NEXT_ERROR_CODE", {
914        value: "E1019",
915        enumerable: false,
916        configurable: true
917    });
918    error.digest = DIGEST;
919    throw error;
920}
921if ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {
922    Object.defineProperty(exports.default, '__esModule', {
923        value: true
924    });
925    Object.assign(exports.default, exports);
926    module.exports = exports.default;
927}
928}),
92922683, ((__turbopack_context__, module, exports) => {
930"use strict";
931
932var __TURBOPACK__imported__module__47167__ = /*#__PURE__*/ __turbopack_context__.i(47167);
933"use strict";
934Object.defineProperty(exports, "__esModule", {
935    value: true
936});
937Object.defineProperty(exports, "unauthorized", {
938    enumerable: true,
939    get: function() {
940        return unauthorized;
941    }
942});
943const _httpaccessfallback = __turbopack_context__.r(54394);
944// TODO: Add `unauthorized` docs
945/**
946 * @experimental
947 * This function allows you to render the [unauthorized.js file](https://nextjs.org/docs/app/api-reference/file-conventions/unauthorized)
948 * within a route segment as well as inject a tag.
949 *
950 * `unauthorized()` can be used in
951 * [Server Components](https://nextjs.org/docs/app/building-your-application/rendering/server-components),
952 * [Route Handlers](https://nextjs.org/docs/app/building-your-application/routing/route-handlers), and
953 * [Server Actions](https://nextjs.org/docs/app/building-your-application/data-fetching/server-actions-and-mutations).
954 *
955 *
956 * Read more: [Next.js Docs: `unauthorized`](https://nextjs.org/docs/app/api-reference/functions/unauthorized)
957 */ const DIGEST = `${_httpaccessfallback.HTTP_ERROR_FALLBACK_ERROR_CODE};401`;
958function unauthorized() {
959    if ("TURBOPACK compile-time truthy", 1) {
960        throw Object.defineProperty(new Error(`\`unauthorized()\` is experimental and only allowed to be used when \`experimental.authInterrupts\` is enabled.`), "__NEXT_ERROR_CODE", {
961            value: "E411",
962            enumerable: false,
963            configurable: true
964        });
965    }
966    const error = Object.defineProperty(new Error(DIGEST), "__NEXT_ERROR_CODE", {
967        value: "E1002",
968        enumerable: false,
969        configurable: true
970    });
971    error.digest = DIGEST;
972    throw error;
973}
974if ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {
975    Object.defineProperty(exports.default, '__esModule', {
976        value: true
977    });
978    Object.assign(exports.default, exports);
979    module.exports = exports.default;
980}
981}),
98215507, ((__turbopack_context__, module, exports) => {
983"use strict";
984
985Object.defineProperty(exports, "__esModule", {
986    value: true
987});
988Object.defineProperty(exports, "unstable_rethrow", {
989    enumerable: true,
990    get: function() {
991        return unstable_rethrow;
992    }
993});
994const _bailouttocsr = __turbopack_context__.r(32061);
995const _isnextroutererror = __turbopack_context__.r(65713);
996function unstable_rethrow(error) {
997    if ((0, _isnextroutererror.isNextRouterError)(error) || (0, _bailouttocsr.isBailoutToCSRError)(error)) {
998        throw error;
999    }
1000    if (error instanceof Error && 'cause' in error) {
1001        unstable_rethrow(error.cause);
1002    }
1003}
1004if ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {
1005    Object.defineProperty(exports.default, '__esModule', {
1006        value: true
1007    });
1008    Object.assign(exports.default, exports);
1009    module.exports = exports.default;
1010}
1011}),
101263138, ((__turbopack_context__, module, exports) => {
1013"use strict";
1014
1015Object.defineProperty(exports, "__esModule", {
1016    value: true
1017});
10180 && (module.exports = {
1019    delayUntilRuntimeStage: null,
1020    getRuntimeStage: null,
1021    isHangingPromiseRejectionError: null,
1022    makeDevtoolsIOAwarePromise: null,
1023    makeHangingPromise: null
1024});
1025function _export(target, all) {
1026    for(var name in all)Object.defineProperty(target, name, {
1027        enumerable: true,
1028        get: all[name]
1029    });
1030}
1031_export(exports, {
1032    delayUntilRuntimeStage: function() {
1033        return delayUntilRuntimeStage;
1034    },
1035    getRuntimeStage: function() {
1036        return getRuntimeStage;
1037    },
1038    isHangingPromiseRejectionError: function() {
1039        return isHangingPromiseRejectionError;
1040    },
1041    makeDevtoolsIOAwarePromise: function() {
1042        return makeDevtoolsIOAwarePromise;
1043    },
1044    makeHangingPromise: function() {
1045        return makeHangingPromise;
1046    }
1047});
1048const _stagedrendering = __turbopack_context__.r(42852);
1049function isHangingPromiseRejectionError(err) {
1050    if (typeof err !== 'object' || err === null || !('digest' in err)) {
1051        return false;
1052    }
1053    return err.digest === HANGING_PROMISE_REJECTION;
1054}
1055const HANGING_PROMISE_REJECTION = 'HANGING_PROMISE_REJECTION';
1056class HangingPromiseRejectionError extends Error {
1057    constructor(route, expression){
1058        super(`During prerendering, ${expression} rejects when the prerender is complete. Typically these errors are handled by React but if you move ${expression} to a different context by using \`setTimeout\`, \`after\`, or similar functions you may observe this error and you should handle it in that context. This occurred at route "${route}".`), this.route = route, this.expression = expression, this.digest = HANGING_PROMISE_REJECTION;
1059    }
1060}
1061const abortListenersBySignal = new WeakMap();
1062function makeHangingPromise(signal, route, expression) {
1063    if (signal.aborted) {
1064        return Promise.reject(new HangingPromiseRejectionError(route, expression));
1065    } else {
1066        const hangingPromise = new Promise((_, reject)=>{
1067            const boundRejection = reject.bind(null, new HangingPromiseRejectionError(route, expression));
1068            let currentListeners = abortListenersBySignal.get(signal);
1069            if (currentListeners) {
1070                currentListeners.push(boundRejection);
1071            } else {
1072                const listeners = [
1073                    boundRejection
1074                ];
1075                abortListenersBySignal.set(signal, listeners);
1076                signal.addEventListener('abort', ()=>{
1077                    for(let i = 0; i < listeners.length; i++){
1078                        listeners[i]();
1079                    }
1080                }, {
1081                    once: true
1082                });
1083            }
1084        });
1085        // We are fine if no one actually awaits this promise. We shouldn't consider this an unhandled rejection so
1086        // we attach a noop catch handler here to suppress this warning. If you actually await somewhere or construct
1087        // your own promise out of it you'll need to ensure you handle the error when it rejects.
1088        hangingPromise.catch(ignoreReject);
1089        return hangingPromise;
1090    }
1091}
1092function ignoreReject() {}
1093function makeDevtoolsIOAwarePromise(underlying, requestStore, stage) {
1094    if (requestStore.stagedRendering) {
1095        // We resolve each stage in a timeout, so React DevTools will pick this up as IO.
1096        return requestStore.stagedRendering.delayUntilStage(stage, undefined, underlying);
1097    }
1098    // in React DevTools if we resolve in a setTimeout we will observe
1099    // the promise resolution as something that can suspend a boundary or root.
1100    return new Promise((resolve)=>{
1101        // Must use setTimeout to be considered IO React DevTools. setImmediate will not work.
1102        setTimeout(()=>{
1103            resolve(underlying);
1104        }, 0);
1105    });
1106}
1107function getRuntimeStage(stagedRendering) {
1108    if (stagedRendering.currentStage === _stagedrendering.RenderStage.EarlyStatic || stagedRendering.currentStage === _stagedrendering.RenderStage.EarlyRuntime) {
1109        return _stagedrendering.RenderStage.EarlyRuntime;
1110    }
1111    return _stagedrendering.RenderStage.Runtime;
1112}
1113function delayUntilRuntimeStage(prerenderStore, result) {
1114    const { stagedRendering } = prerenderStore;
1115    if (!stagedRendering) {
1116        return result;
1117    }
1118    return stagedRendering.waitForStage(getRuntimeStage(stagedRendering)).then(()=>result);
1119}
1120}),
112167287, ((__turbopack_context__, module, exports) => {
1122"use strict";
1123
1124Object.defineProperty(exports, "__esModule", {
1125    value: true
1126});
1127Object.defineProperty(exports, "isPostpone", {
1128    enumerable: true,
1129    get: function() {
1130        return isPostpone;
1131    }
1132});
1133const REACT_POSTPONE_TYPE = Symbol.for('react.postpone');
1134function isPostpone(error) {
1135    return typeof error === 'object' && error !== null && error.$$typeof === REACT_POSTPONE_TYPE;
1136}
1137}),
113876353, ((__turbopack_context__, module, exports) => {
1139"use strict";
1140
1141Object.defineProperty(exports, "__esModule", {
1142    value: true
1143});
11440 && (module.exports = {
1145    DynamicServerError: null,
1146    isDynamicServerError: null
1147});
1148function _export(target, all) {
1149    for(var name in all)Object.defineProperty(target, name, {
1150        enumerable: true,
1151        get: all[name]
1152    });
1153}
1154_export(exports, {
1155    DynamicServerError: function() {
1156        return DynamicServerError;
1157    },
1158    isDynamicServerError: function() {
1159        return isDynamicServerError;
1160    }
1161});
1162const DYNAMIC_ERROR_CODE = 'DYNAMIC_SERVER_USAGE';
1163class DynamicServerError extends Error {
1164    constructor(description){
1165        super(`Dynamic server usage: ${description}`), this.description = description, this.digest = DYNAMIC_ERROR_CODE;
1166    }
1167}
1168function isDynamicServerError(err) {
1169    if (typeof err !== 'object' || err === null || !('digest' in err) || typeof err.digest !== 'string') {
1170        return false;
1171    }
1172    return err.digest === DYNAMIC_ERROR_CODE;
1173}
1174if ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {
1175    Object.defineProperty(exports.default, '__esModule', {
1176        value: true
1177    });
1178    Object.assign(exports.default, exports);
1179    module.exports = exports.default;
1180}
1181}),
118243248, ((__turbopack_context__, module, exports) => {
1183"use strict";
1184
1185Object.defineProperty(exports, "__esModule", {
1186    value: true
1187});
11880 && (module.exports = {
1189    StaticGenBailoutError: null,
1190    isStaticGenBailoutError: null
1191});
1192function _export(target, all) {
1193    for(var name in all)Object.defineProperty(target, name, {
1194        enumerable: true,
1195        get: all[name]
1196    });
1197}
1198_export(exports, {
1199    StaticGenBailoutError: function() {
1200        return StaticGenBailoutError;
1201    },
1202    isStaticGenBailoutError: function() {
1203        return isStaticGenBailoutError;
1204    }
1205});
1206const NEXT_STATIC_GEN_BAILOUT = 'NEXT_STATIC_GEN_BAILOUT';
1207class StaticGenBailoutError extends Error {
1208    constructor(...args){
1209        super(...args), this.code = NEXT_STATIC_GEN_BAILOUT;
1210    }
1211}
1212function isStaticGenBailoutError(error) {
1213    if (typeof error !== 'object' || error === null || !('code' in error)) {
1214        return false;
1215    }
1216    return error.code === NEXT_STATIC_GEN_BAILOUT;
1217}
1218if ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {
1219    Object.defineProperty(exports.default, '__esModule', {
1220        value: true
1221    });
1222    Object.assign(exports.default, exports);
1223    module.exports = exports.default;
1224}
1225}),
122654839, ((__turbopack_context__, module, exports) => {
1227"use strict";
1228
1229Object.defineProperty(exports, "__esModule", {
1230    value: true
1231});
12320 && (module.exports = {
1233    METADATA_BOUNDARY_NAME: null,
1234    OUTLET_BOUNDARY_NAME: null,
1235    ROOT_LAYOUT_BOUNDARY_NAME: null,
1236    VIEWPORT_BOUNDARY_NAME: null
1237});
1238function _export(target, all) {
1239    for(var name in all)Object.defineProperty(target, name, {
1240        enumerable: true,
1241        get: all[name]
1242    });
1243}
1244_export(exports, {
1245    METADATA_BOUNDARY_NAME: function() {
1246        return METADATA_BOUNDARY_NAME;
1247    },
1248    OUTLET_BOUNDARY_NAME: function() {
1249        return OUTLET_BOUNDARY_NAME;
1250    },
1251    ROOT_LAYOUT_BOUNDARY_NAME: function() {
1252        return ROOT_LAYOUT_BOUNDARY_NAME;
1253    },
1254    VIEWPORT_BOUNDARY_NAME: function() {
1255        return VIEWPORT_BOUNDARY_NAME;
1256    }
1257});
1258const METADATA_BOUNDARY_NAME = '__next_metadata_boundary__';
1259const VIEWPORT_BOUNDARY_NAME = '__next_viewport_boundary__';
1260const OUTLET_BOUNDARY_NAME = '__next_outlet_boundary__';
1261const ROOT_LAYOUT_BOUNDARY_NAME = '__next_root_layout_boundary__';
1262}),
126329419, ((__turbopack_context__, module, exports) => {
1264"use strict";
1265
1266var __TURBOPACK__imported__module__47167__ = /*#__PURE__*/ __turbopack_context__.i(47167);
1267"use strict";
1268Object.defineProperty(exports, "__esModule", {
1269    value: true
1270});
12710 && (module.exports = {
1272    atLeastOneTask: null,
1273    scheduleImmediate: null,
1274    scheduleOnNextTick: null,
1275    waitAtLeastOneReactRenderTask: null
1276});
1277function _export(target, all) {
1278    for(var name in all)Object.defineProperty(target, name, {
1279        enumerable: true,
1280        get: all[name]
1281    });
1282}
1283_export(exports, {
1284    atLeastOneTask: function() {
1285        return atLeastOneTask;
1286    },
1287    scheduleImmediate: function() {
1288        return scheduleImmediate;
1289    },
1290    scheduleOnNextTick: function() {
1291        return scheduleOnNextTick;
1292    },
1293    waitAtLeastOneReactRenderTask: function() {
1294        return waitAtLeastOneReactRenderTask;
1295    }
1296});
1297const scheduleOnNextTick = (cb)=>{
1298    // We use Promise.resolve().then() here so that the operation is scheduled at
1299    // the end of the promise job queue, we then add it to the next process tick
1300    // to ensure it's evaluated afterwards.
1301    //
1302    // This was inspired by the implementation of the DataLoader interface: https://github.com/graphql/dataloader/blob/d336bd15282664e0be4b4a657cb796f09bafbc6b/src/index.js#L213-L255
1303    //
1304    Promise.resolve().then(()=>{
1305        if ("TURBOPACK compile-time falsy", 0) //TURBOPACK unreachable
1306        ;
1307        else {
1308            __TURBOPACK__imported__module__47167__["default"].nextTick(cb);
1309        }
1310    });
1311};
1312const scheduleImmediate = (cb)=>{
1313    if ("TURBOPACK compile-time falsy", 0) //TURBOPACK unreachable
1314    ;
1315    else {
1316        setImmediate(cb);
1317    }
1318};
1319function atLeastOneTask() {
1320    return new Promise((resolve)=>scheduleImmediate(resolve));
1321}
1322function waitAtLeastOneReactRenderTask() {
1323    if ("TURBOPACK compile-time falsy", 0) //TURBOPACK unreachable
1324    ;
1325    else {
1326        return new Promise((r)=>setImmediate(r));
1327    }
1328}
1329}),
13302897, ((__turbopack_context__, module, exports) => {
1331"use strict";
1332
1333Object.defineProperty(exports, "__esModule", {
1334    value: true
1335});
1336Object.defineProperty(exports, "INSTANT_VALIDATION_BOUNDARY_NAME", {
1337    enumerable: true,
1338    get: function() {
1339        return INSTANT_VALIDATION_BOUNDARY_NAME;
1340    }
1341});
1342const INSTANT_VALIDATION_BOUNDARY_NAME = '__next_instant_validation_boundary__';
1343}),
134467673, ((__turbopack_context__, module, exports) => {
1345"use strict";
1346
1347var __TURBOPACK__imported__module__47167__ = /*#__PURE__*/ __turbopack_context__.i(47167);
1348/**
1349 * The functions provided by this module are used to communicate certain properties
1350 * about the currently running code so that Next.js can make decisions on how to handle
1351 * the current execution in different rendering modes such as pre-rendering, resuming, and SSR.
1352 *
1353 * Today Next.js treats all code as potentially static. Certain APIs may only make sense when dynamically rendering.
1354 * Traditionally this meant deopting the entire render to dynamic however with PPR we can now deopt parts
1355 * of a React tree as dynamic while still keeping other parts static. There are really two different kinds of
1356 * Dynamic indications.
1357 *
1358 * The first is simply an intention to be dynamic. unstable_noStore is an example of this where
1359 * the currently executing code simply declares that the current scope is dynamic but if you use it
1360 * inside unstable_cache it can still be cached. This type of indication can be removed if we ever
1361 * make the default dynamic to begin with because the only way you would ever be static is inside
1362 * a cache scope which this indication does not affect.
1363 *
1364 * The second is an indication that a dynamic data source was read. This is a stronger form of dynamic
1365 * because it means that it is inappropriate to cache this at all. using a dynamic data source inside
1366 * unstable_cache should error. If you want to use some dynamic data inside unstable_cache you should
1367 * read that data outside the cache and pass it in as an argument to the cached function.
1368 */ "use strict";
1369Object.defineProperty(exports, "__esModule", {
1370    value: true
1371});
13720 && (module.exports = {
1373    DynamicHoleKind: null,
1374    Postpone: null,
1375    PreludeState: null,
1376    abortAndThrowOnSynchronousRequestDataAccess: null,
1377    abortOnSynchronousPlatformIOAccess: null,
1378    accessedDynamicData: null,
1379    annotateDynamicAccess: null,
1380    consumeDynamicAccess: null,
1381    createDynamicTrackingState: null,
1382    createDynamicValidationState: null,
1383    createHangingInputAbortSignal: null,
1384    createInstantValidationState: null,
1385    createRenderInBrowserAbortSignal: null,
1386    formatDynamicAPIAccesses: null,
1387    getFirstDynamicReason: null,
1388    getNavigationDisallowedDynamicReasons: null,
1389    getStaticShellDisallowedDynamicReasons: null,
1390    isDynamicPostpone: null,
1391    isPrerenderInterruptedError: null,
1392    logDisallowedDynamicError: null,
1393    markCurrentScopeAsDynamic: null,
1394    postponeWithTracking: null,
1395    throwIfDisallowedDynamic: null,
1396    throwToInterruptStaticGeneration: null,
1397    trackAllowedDynamicAccess: null,
1398    trackDynamicDataInDynamicRender: null,
1399    trackDynamicHoleInNavigation: null,
1400    trackDynamicHoleInRuntimeShell: null,
1401    trackDynamicHoleInStaticShell: null,
1402    trackThrownErrorInNavigation: null,
1403    useDynamicRouteParam
1403s: null,
1404    useDynamicSearchParams: null
1405});
1406function _export(target, all) {
1407    for(var name in all)Object.defineProperty(target, name, {
1408        enumerable: true,
1409        get: all[name]
1410    });
1411}
1412_export(exports, {
1413    DynamicHoleKind: function() {
1414        return DynamicHoleKind;
1415    },
1416    Postpone: function() {
1417        return Postpone;
1418    },
1419    PreludeState: function() {
1420        return PreludeState;
1421    },
1422    abortAndThrowOnSynchronousRequestDataAccess: function() {
1423        return abortAndThrowOnSynchronousRequestDataAccess;
1424    },
1425    abortOnSynchronousPlatformIOAccess: function() {
1426        return abortOnSynchronousPlatformIOAccess;
1427    },
1428    accessedDynamicData: function() {
1429        return accessedDynamicData;
1430    },
1431    annotateDynamicAccess: function() {
1432        return annotateDynamicAccess;
1433    },
1434    consumeDynamicAccess: function() {
1435        return consumeDynamicAccess;
1436    },
1437    createDynamicTrackingState: function() {
1438        return createDynamicTrackingState;
1439    },
1440    createDynamicValidationState: function() {
1441        return createDynamicValidationState;
1442    },
1443    createHangingInputAbortSignal: function() {
1444        return createHangingInputAbortSignal;
1445    },
1446    createInstantValidationState: function() {
1447        return createInstantValidationState;
1448    },
1449    createRenderInBrowserAbortSignal: function() {
1450        return createRenderInBrowserAbortSignal;
1451    },
1452    formatDynamicAPIAccesses: function() {
1453        return formatDynamicAPIAccesses;
1454    },
1455    getFirstDynamicReason: function() {
1456        return getFirstDynamicReason;
1457    },
1458    getNavigationDisallowedDynamicReasons: function() {
1459        return getNavigationDisallowedDynamicReasons;
1460    },
1461    getStaticShellDisallowedDynamicReasons: function() {
1462        return getStaticShellDisallowedDynamicReasons;
1463    },
1464    isDynamicPostpone: function() {
1465        return isDynamicPostpone;
1466    },
1467    isPrerenderInterruptedError: function() {
1468        return isPrerenderInterruptedError;
1469    },
1470    logDisallowedDynamicError: function() {
1471        return logDisallowedDynamicError;
1472    },
1473    markCurrentScopeAsDynamic: function() {
1474        return markCurrentScopeAsDynamic;
1475    },
1476    postponeWithTracking: function() {
1477        return postponeWithTracking;
1478    },
1479    throwIfDisallowedDynamic: function() {
1480        return throwIfDisallowedDynamic;
1481    },
1482    throwToInterruptStaticGeneration: function() {
1483        return throwToInterruptStaticGeneration;
1484    },
1485    trackAllowedDynamicAccess: function() {
1486        return trackAllowedDynamicAccess;
1487    },
1488    trackDynamicDataInDynamicRender: function() {
1489        return trackDynamicDataInDynamicRender;
1490    },
1491    trackDynamicHoleInNavigation: function() {
1492        return trackDynamicHoleInNavigation;
1493    },
1494    trackDynamicHoleInRuntimeShell: function() {
1495        return trackDynamicHoleInRuntimeShell;
1496    },
1497    trackDynamicHoleInStaticShell: function() {
1498        return trackDynamicHoleInStaticShell;
1499    },
1500    trackThrownErrorInNavigation: function() {
1501        return trackThrownErrorInNavigation;
1502    },
1503    useDynamicRouteParams: function() {
1504        return useDynamicRouteParams;
1505    },
1506    useDynamicSearchParams: function() {
1507        return useDynamicSearchParams;
1508    }
1509});
1510const _react = /*#__PURE__*/ _interop_require_default(__turbopack_context__.r(71645));
1511const _hooksservercontext = __turbopack_context__.r(76353);
1512const _staticgenerationbailout = __turbopack_context__.r(43248);
1513const _workunitasyncstorageexternal = __turbopack_context__.r(62141);
1514const _workasyncstorageexternal = __turbopack_context__.r(63599);
1515const _dynamicrenderingutils = __turbopack_context__.r(63138);
1516const _boundaryconstants = __turbopack_context__.r(54839);
1517const _scheduler = __turbopack_context__.r(29419);
1518const _bailouttocsr = __turbopack_context__.r(32061);
1519const _invarianterror = __turbopack_context__.r(12718);
1520const _boundaryconstants1 = __turbopack_context__.r(2897);
1521function _interop_require_default(obj) {
1522    return obj && obj.__esModule ? obj : {
1523        default: obj
1524    };
1525}
1526const hasPostpone = typeof _react.default.unstable_postpone === 'function';
1527function createDynamicTrackingState(isDebugDynamicAccesses) {
1528    return {
1529        isDebugDynamicAccesses,
1530        dynamicAccesses: [],
1531        syncDynamicErrorWithStack: null
1532    };
1533}
1534function createDynamicValidationState() {
1535    return {
1536        hasSuspenseAboveBody: false,
1537        hasDynamicMetadata: false,
1538        dynamicMetadata: null,
1539        hasDynamicViewport: false,
1540        hasAllowedDynamic: false,
1541        dynamicErrors: []
1542    };
1543}
1544function getFirstDynamicReason(trackingState) {
1545    var _trackingState_dynamicAccesses_;
1546    return (_trackingState_dynamicAccesses_ = trackingState.dynamicAccesses[0]) == null ? void 0 : _trackingState_dynamicAccesses_.expression;
1547}
1548function markCurrentScopeAsDynamic(store, workUnitStore, expression) {
1549    if (workUnitStore) {
1550        switch(workUnitStore.type){
1551            case 'cache':
1552            case 'unstable-cache':
1553                // Inside cache scopes, marking a scope as dynamic has no effect,
1554                // because the outer cache scope creates a cache boundary. This is
1555                // subtly different from reading a dynamic data source, which is
1556                // forbidden inside a cache scope.
1557                return;
1558            case 'private-cache':
1559                // A private cache scope is already dynamic by definition.
1560                return;
1561            case 'prerender-legacy':
1562            case 'prerender-ppr':
1563            case 'request':
1564            case 'generate-static-params':
1565                break;
1566            default:
1567                workUnitStore;
1568        }
1569    }
1570    // If we're forcing dynamic rendering or we're forcing static rendering, we
1571    // don't need to do anything here because the entire page is already dynamic
1572    // or it's static and it should not throw or postpone here.
1573    if (store.forceDynamic || store.forceStatic) return;
1574    if (store.dynamicShouldError) {
1575        throw Object.defineProperty(new _staticgenerationbailout.StaticGenBailoutError(`Route ${store.route} with \`dynamic = "error"\` couldn't be rendered statically because it used \`${expression}\`. See more info here: https://nextjs.org/docs/app/building-your-application/rendering/static-and-dynamic#dynamic-rendering`), "__NEXT_ERROR_CODE", {
1576            value: "E553",
1577            enumerable: false,
1578            configurable: true
1579        });
1580    }
1581    if (workUnitStore) {
1582        switch(workUnitStore.type){
1583            case 'prerender-ppr':
1584                return postponeWithTracking(store.route, expression, workUnitStore.dynamicTracking);
1585            case 'prerender-legacy':
1586                workUnitStore.revalidate = 0;
1587                // We aren't prerendering, but we are generating a static page. We need
1588                // to bail out of static generation.
1589                const err = Object.defineProperty(new _hooksservercontext.DynamicServerError(`Route ${store.route} couldn't be rendered statically because it used ${expression}. See more info here: https://nextjs.org/docs/messages/dynamic-server-error`), "__NEXT_ERROR_CODE", {
1590                    value: "E550",
1591                    enumerable: false,
1592                    configurable: true
1593                });
1594                store.dynamicUsageDescription = expression;
1595                store.dynamicUsageStack = err.stack;
1596                throw err;
1597            case 'request':
1598                if ("TURBOPACK compile-time truthy", 1) {
1599                    workUnitStore.usedDynamic = true;
1600                }
1601                break;
1602            case 'generate-static-params':
1603                break;
1604            default:
1605                workUnitStore;
1606        }
1607    }
1608}
1609function throwToInterruptStaticGeneration(expression, store, prerenderStore) {
1610    // We aren't prerendering but we are generating a static page. We need to bail out of static generation
1611    const err = Object.defineProperty(new _hooksservercontext.DynamicServerError(`Route ${store.route} couldn't be rendered statically because it used \`${expression}\`. See more info here: https://nextjs.org/docs/messages/dynamic-server-error`), "__NEXT_ERROR_CODE", {
1612        value: "E558",
1613        enumerable: false,
1614        configurable: true
1615    });
1616    prerenderStore.revalidate = 0;
1617    store.dynamicUsageDescription = expression;
1618    store.dynamicUsageStack = err.stack;
1619    throw err;
1620}
1621function trackDynamicDataInDynamicRender(workUnitStore) {
1622    switch(workUnitStore.type){
1623        case 'cache':
1624        case 'unstable-cache':
1625            // Inside cache scopes, marking a scope as dynamic has no effect,
1626            // because the outer cache scope creates a cache boundary. This is
1627            // subtly different from reading a dynamic data source, which is
1628            // forbidden inside a cache scope.
1629            return;
1630        case 'private-cache':
1631            // A private cache scope is already dynamic by definition.
1632            return;
1633        case 'prerender':
1634        case 'prerender-runtime':
1635        case 'prerender-legacy':
1636        case 'prerender-ppr':
1637        case 'prerender-client':
1638        case 'validation-client':
1639        case 'generate-static-params':
1640            break;
1641        case 'request':
1642            if ("TURBOPACK compile-time truthy", 1) {
1643                workUnitStore.usedDynamic = true;
1644            }
1645            break;
1646        default:
1647            workUnitStore;
1648    }
1649}
1650function abortOnSynchronousDynamicDataAccess(route, expression, prerenderStore) {
1651    const reason = `Route ${route}
1651 needs to bail out of prerendering at this point because it used ${expression}.`;
1652    const error = createPrerenderInterruptedError(reason);
1653    prerenderStore.controller.abort(error);
1654    const dynamicTracking = prerenderStore.dynamicTracking;
1655    if (dynamicTracking) {
1656        dynamicTracking.dynamicAccesses.push({
1657            // When we aren't debugging, we don't need to create another error for the
1658            // stack trace.
1659            stack: dynamicTracking.isDebugDynamicAccesses ? new Error().stack : undefined,
1660            expression
1661        });
1662    }
1663}
1664function abortOnSynchronousPlatformIOAccess(route, expression, errorWithStack, prerenderStore) {
1665    const dynamicTracking = prerenderStore.dynamicTracking;
1666    abortOnSynchronousDynamicDataAccess(route, expression, prerenderStore);
1667    // It is important that we set this tracking value after aborting. Aborts are executed
1668    // synchronously except for the case where you abort during render itself. By setting this
1669    // value late we can use it to determine if any of the aborted tasks are the task that
1670    // called the sync IO expression in the first place.
1671    if (dynamicTracking) {
1672        if (dynamicTracking.syncDynamicErrorWithStack === null) {
1673            dynamicTracking.syncDynamicErrorWithStack = errorWithStack;
1674        }
1675    }
1676}
1677function abortAndThrowOnSynchronousRequestDataAccess(route, expression, errorWithStack, prerenderStore) {
1678    const prerenderSignal = prerenderStore.controller.signal;
1679    if (prerenderSignal.aborted === false) {
1680        // TODO it would be better to move this aborted check into the callsite so we can avoid making
1681        // the error object when it isn't relevant to the aborting of the prerender however
1682        // since we need the throw semantics regardless of whether we abort it is easier to land
1683        // this way. See how this was handled with `abortOnSynchronousPlatformIOAccess` for a closer
1684        // to ideal implementation
1685        abortOnSynchronousDynamicDataAccess(route, expression, prerenderStore);
1686        // It is important that we set this tracking value after aborting. Aborts are executed
1687        // synchronously except for the case where you abort during render itself. By setting this
1688        // value late we can use it to determine if any of the aborted tasks are the task that
1689        // called the sync IO expression in the first place.
1690        const dynamicTracking = prerenderStore.dynamicTracking;
1691        if (dynamicTracking) {
1692            if (dynamicTracking.syncDynamicErrorWithStack === null) {
1693                dynamicTracking.syncDynamicErrorWithStack = errorWithStack;
1694            }
1695        }
1696    }
1697    throw createPrerenderInterruptedError(`Route ${route} needs to bail out of prerendering at this point because it used ${expression}.`);
1698}
1699function Postpone({ reason, route }) {
1700    const prerenderStore = _workunitasyncstorageexternal.workUnitAsyncStorage.getStore();
1701    const dynamicTracking = prerenderStore && prerenderStore.type === 'prerender-ppr' ? prerenderStore.dynamicTracking : null;
1702    postponeWithTracking(route, reason, dynamicTracking);
1703}
1704function postponeWithTracking(route, expression, dynamicTracking) {
1705    assertPostpone();
1706    if (dynamicTracking) {
1707        dynamicTracking.dynamicAccesses.push({
1708            // When we aren't debugging, we don't need to create another error for the
1709            // stack trace.
1710            stack: dynamicTracking.isDebugDynamicAccesses ? new Error().stack : undefined,
1711            expression
1712        });
1713    }
1714    _react.default.unstable_postpone(createPostponeReason(route, expression));
1715}
1716function createPostponeReason(route, expression) {
1717    return `Route ${route} needs to bail out of prerendering at this point because it used ${expression}. ` + `React throws this special object to indicate where. It should not be caught by ` + `your own try/catch. Learn more: https://nextjs.org/docs/messages/ppr-caught-error`;
1718}
1719function isDynamicPostpone(err) {
1720    if (typeof err === 'object' && err !== null && typeof err.message === 'string') {
1721        return isDynamicPostponeReason(err.message);
1722    }
1723    return false;
1724}
1725function isDynamicPostponeReason(reason) {
1726    return reason.includes('needs to bail out of prerendering at this point because it used') && reason.includes('Learn more: https://nextjs.org/docs/messages/ppr-caught-error');
1727}
1728if (isDynamicPostponeReason(createPostponeReason('%%%', '^^^')) === false) {
1729    throw Object.defineProperty(new Error('Invariant: isDynamicPostpone misidentified a postpone reason. This is a bug in Next.js'), "__NEXT_ERROR_CODE", {
1730        value: "E296",
1731        enumerable: false,
1732        configurable: true
1733    });
1734}
1735const NEXT_PRERENDER_INTERRUPTED = 'NEXT_PRERENDER_INTERRUPTED';
1736function createPrerenderInterruptedError(message) {
1737    const error = Object.defineProperty(new Error(message), "__NEXT_ERROR_CODE", {
1738        value: "E394",
1739        enumerable: false,
1740        configurable: true
1741    });
1742    error.digest = NEXT_PRERENDER_INTERRUPTED;
1743    return error;
1744}
1745function isPrerenderInterruptedError(error) {
1746    return typeof error === 'object' && error !== null && error.digest === NEXT_PRERENDER_INTERRUPTED && 'name' in error && 'message' in error && error instanceof Error;
1747}
1748function accessedDynamicData(dynamicAccesses) {
1749    return dynamicAccesses.length > 0;
1750}
1751function consumeDynamicAccess(serverDynamic, clientDynamic) {
1752    // We mutate because we only call this once we are no longer writing
1753    // to the dynamicTrackingState and it's more efficient than creating a new
1754    // array.
1755    serverDynamic.dynamicAccesses.push(...clientDynamic.dynamicAccesses);
1756    return serverDynamic.dynamicAccesses;
1757}
1758function formatDynamicAPIAccesses(dynamicAccesses) {
1759    return dynamicAccesses.filter((access)=>typeof access.stack === 'string' && access.stack.length > 0).map(({ expression, stack })=>{
1760        stack = stack.split('\n') // Remove the "Error: " prefix from the first line of the stack trace as
1761        // well as the first 4 lines of the stack trace which is the distance
1762        // from the user code and the `new Error().stack` call.
1763        .slice(4).filter((line)=>{
1764            // Exclude Next.js internals from the stack trace.
1765            if (line.includes('node_modules/next/')) {
1766                return false;
1767            }
1768            // Exclude anonymous functions from the stack trace.
1769            if (line.includes(' (<anonymous>)')) {
1770                return false;
1771            }
1772            // Exclude Node.js internals from the stack trace.
1773            if (line.includes(' (node:')) {
1774                return false;
1775            }
1776            return true;
1777        }).join('\n');
1778        return `Dynamic API Usage Debug - ${expression}:\n${stack}`;
1779    });
1780}
1781function assertPostpone() {
1782    if (!hasPostpone) {
1783        throw Object.defineProperty(new Error(`Invariant: React.unstable_postpone is not defined. This suggests the wrong version of React was loaded. This is a bug in Next.js`), "__NEXT_ERROR_CODE", {
1784            value: "E224",
1785            enumerable: false,
1786            configurable: true
1787        });
1788    }
1789}
1790function createRenderInBrowserAbortSignal() {
1791    const controller = new AbortController();
1792    controller.abort(Object.defineProperty(new _bailouttocsr.BailoutToCSRError('Render in Browser'), "__NEXT_ERROR_CODE", {
1793        value: "E721",
1794        enumerable: false,
1795        configurable: true
1796    }));
1797    return controller.signal;
1798}
1799function createHangingInputAbortSignal(workUnitStore) {
1800    switch(workUnitStore.type){
1801        case 'prerender':
1802        case 'prerender-runtime':
1803            const controller = new AbortController();
1804            if (workUnitStore.cacheSignal) {
1805                // If we have a cacheSignal it means we're in a prospective render. If
1806                // the input we're waiting on is coming from another cache, we do want
1807                // to wait for it so that we can resolve this cache entry too.
1808                workUnitStore.cacheSignal.inputReady().then(()=>{
1809                    controller.abort();
1810                });
1811            } else {
1812                // Otherwise we're in the final render and we should already have all
1813                // our caches filled.
1814                // If the prerender uses stages, we have wait until the runtime stage,
1815                // at which point all runtime inputs will be resolved.
1816                // (otherwise, a runtime prerender might consider `cookies()` hanging
1817                //  even though they'd resolve in the next task.)
1818                //
1819                // We might still be waiting on some microtasks so we
1820                // wait one tick before giving up. When we give up, we still want to
1821                // render the content of this cache as deeply as we can so that we can
1822                // suspend as deeply as possible in the tree or not at all if we don't
1823                // end up waiting for the input.
1824                if (workUnitStore.type === 'prerender-runtime' && workUnitStore.stagedRendering) {
1825                    const { stagedRendering } = workUnitStore;
1826                    stagedRendering.waitForStage((0, _dynamicrenderingutils.getRuntimeStage)(stagedRendering)).then(()=>(0, _scheduler.scheduleOnNextTick)(()=>controller.abort()));
1827                } else {
1828                    (0, _scheduler.scheduleOnNextTick)(()=>controller.abort());
1829                }
1830            }
1831            return controller.signal;
1832        case 'prerender-client':
1833        case 'validation-client':
1834        case 'prerender-ppr':
1835        case 'prerender-legacy':
1836        case 'request':
1837        case 'cache':
1838        case 'private-cache':
1839        case 'unstable-cache':
1840        case 'generate-static-params':
1841            return undefined;
1842        default:
1843            workUnitStore;
1844    }
1845}
1846function annotateDynamicAccess(expression, prerenderStore) {
1847    const dynamicTracking = prerenderStore.dynamicTracking;
1848    if (dynamicTracking) {
1849        dynamicTracking.dynamicAccesses.push({
1850            stack: dynamicTracking.isDebugDynamicAccesses ? new Error().stack : undefined,
1851            expression
1852        });
1853    }
1854}
1855function useDynamicRouteParams(expression) {
1856    const workStore = _workasyncstorageexternal.workAsyncStorage.getStore();
1857    const workUnitStore = _workunitasyncstorageexternal.workUnitAsyncStorage.getStore();
1858    if (workStore && workUnitStore) {
1859        switch(workUnitStore.type){
1860            case 'prerender-client':
1861            case 'prerender':
1862                {
1863                    const fallbackParams = workUnitStore.fallbackRouteParams;
1864                    if (fallbackParams && fallbackParams.size > 0) {
1865                        // We are in a prerender with cacheComponents semantics. We are going to
1866                        // hang here and never resolve. This will cause the currently
1867                        // rendering component to effectively be a dynamic hole.
1868                        _react.default.use((0, _dynamicrenderingutils.makeHangingPromise)(workUnitStore.renderSignal, workStore.route, expression));
1869                    }
1870                    break;
1871                }
1872            case 'prerender-ppr':
1873                {
1874                    const fallbackParams = workUnitStore.fallbackRouteParams;
1875                    if (fallbackParams && fallbackParams.size > 0) {
1876                        return postponeWithTracking(workStore.route, expression, workUnitStore.dynamicTracking);
1877                    }
1878                    break;
1879                }
1880            case 'validation-client':
1881                {
1882                    break;
1883                }
1884            case 'prerender-runtime':
1885                throw Object.defineProperty(new _invarianterror.InvariantError(`\`${expression}\` was called during a runtime prerender. Next.js should be preventing ${expression} from being included in server components statically, but did not in this case.`), "__NEXT_ERROR_CODE", {
1886                    value: "E771",
1887                    enumerable: false,
1888                    configurable: true
1889                });
1890            case 'cache':
1891            case 'private-cache':
1892                throw Object.defineProperty(new _invarianterror.InvariantError(`\`${expression}\` was called inside a cache scope. Next.js should be preventing ${expression} from being included in server components statically, but did not in this case.`), "__NEXT_ERROR_CODE", {
1893                    value: "E745",
1894                    enumerable: false,
1895                    configurable: true
1896                });
1897            case 'generate-static-params':
1898                throw Object.defineProperty(new _invarianterror.InvariantError(`\`${expression}\` was called in \`generateStaticParams\`. Next.js should be preventing ${expression} from being included in server component files statically, but did not in this case.`), "__NEXT_ERROR_CODE", {
1899                    value: "E1130",
1900                    enumerable: false,
1901                    configurable: true
1902                });
1903            case 'prerender-legacy':
1904            case 'request':
1905            case 'unstable-cache':
1906                break;
1907            default:
1908                workUnitStore;
1909        }
1910    }
1911}
1912function useDynamicSearchParams(expression) {
1913    const workStore = _workasyncstorageexternal.workAsyncStorage.getStore();
1914    const workUnitStore = _workunitasyncstorageexternal.workUnitAsyncStorage.getStore();
1915    if (!workStore) {
1916        // We assume pages router context and just return
1917        return;
1918    }
1919    if (!workUnitStore) {
1920        (0, _workunitasyncstorageexternal.throwForMissingRequestStore)(expression);
1921    }
1922    switch(workUnitStore.type){
1923        case 'validation-client':
1924            // During instant validation we try to behave as close to client as possible,
1925            // so this shouldn't hang during SSR.
1926            return;
1927        case 'prerender-client':
1928            {
1929                _react.default.use((0, _dynamicrenderingutils.makeHangingPromise)(workUnitStore.renderSignal, workStore.route, expression));
1930                break;
1931            }
1932        case 'prerender-legacy':
1933        case 'prerender-ppr':
1934            {
1935                if (workStore.forceStatic) {
1936                    return;
1937                }
1938                throw Object.defineProperty(new _bailouttocsr.BailoutToCSRError(expression), "__NEXT_ERROR_CODE", {
1939                    value: "E394",
1940                    enumerable: false,
1941                    configurable: true
1942                });
1943            }
1944        case 'prerender':
1945        case 'prerender-runtime':
1946            throw Object.defineProperty(new _invarianterror.InvariantError(`\`${expression}\` was called from a Server Component. Next.js should be preventing ${expression} from being included in server components statically, but did not in this case.`), "__NEXT_ERROR_CODE", {
1947                value: "E795",
1948                enumerable: false,
1949                configurable: true
1950            });
1951        case 'cache':
1952        case 'unstable-cache':
1953        case 'private-cache':
1954            throw Object.defineProperty(new _invarianterror.InvariantError(`\`${expression}
1954\` was called inside a cache scope. Next.js should be preventing ${expression} from being included in server components statically, but did not in this case.`), "__NEXT_ERROR_CODE", {
1955                value: "E745",
1956                enumerable: false,
1957                configurable: true
1958            });
1959        case 'generate-static-params':
1960            throw Object.defineProperty(new _invarianterror.InvariantError(`\`${expression}\` was called in \`generateStaticParams\`. Next.js should be preventing ${expression} from being included in server component files statically, but did not in this case.`), "__NEXT_ERROR_CODE", {
1961                value: "E1130",
1962                enumerable: false,
1963                configurable: true
1964            });
1965        case 'request':
1966            return;
1967        default:
1968            workUnitStore;
1969    }
1970}
1971const hasSuspenseRegex = /\n\s+at Suspense \(<anonymous>\)/;
1972// Common implicit body tags that React will treat as body when placed directly in html
1973const bodyAndImplicitTags = 'body|div|main|section|article|aside|header|footer|nav|form|p|span|h1|h2|h3|h4|h5|h6';
1974// Detects when RootLayoutBoundary (our framework marker component) appears
1975// after Suspense in the component stack, indicating the root layout is wrapped
1976// within a Suspense boundary. Ensures no body/html/implicit-body components are in between.
1977//
1978// Example matches:
1979//   at Suspense (<anonymous>)
1980//   at __next_root_layout_boundary__ (<anonymous>)
1981//
1982// Or with other components in between (but not body/html/implicit-body):
1983//   at Suspense (<anonymous>)
1984//   at SomeComponent (<anonymous>)
1985//   at __next_root_layout_boundary__ (<anonymous>)
1986const hasSuspenseBeforeRootLayoutWithoutBodyOrImplicitBodyRegex = new RegExp(`\\n\\s+at Suspense \\(<anonymous>\\)(?:(?!\\n\\s+at (?:${bodyAndImplicitTags}) \\(<anonymous>\\))[\\s\\S])*?\\n\\s+at ${_boundaryconstants.ROOT_LAYOUT_BOUNDARY_NAME} \\([^\\n]*\\)`);
1987const hasMetadataRegex = new RegExp(`\\n\\s+at ${_boundaryconstants.METADATA_BOUNDARY_NAME}[\\n\\s]`);
1988const hasViewportRegex = new RegExp(`\\n\\s+at ${_boundaryconstants.VIEWPORT_BOUNDARY_NAME}[\\n\\s]`);
1989const hasOutletRegex = new RegExp(`\\n\\s+at ${_boundaryconstants.OUTLET_BOUNDARY_NAME}[\\n\\s]`);
1990const hasInstantValidationBoundaryRegex = new RegExp(`\\n\\s+at ${_boundaryconstants1.INSTANT_VALIDATION_BOUNDARY_NAME}[\\n\\s]`);
1991function trackAllowedDynamicAccess(workStore, componentStack, dynamicValidation, clientDynamic) {
1992    if (hasOutletRegex.test(componentStack)) {
1993        // We don't need to track that this is dynamic. It is only so when something else is also dynamic.
1994        return;
1995    } else if (hasMetadataRegex.test(componentStack)) {
1996        dynamicValidation.hasDynamicMetadata = true;
1997        return;
1998    } else if (hasViewportRegex.test(componentStack)) {
1999        dynamicValidation.hasDynamicViewport = true;
2000        return;
2001    } else if (hasSuspenseBeforeRootLayoutWithoutBodyOrImplicitBodyRegex.test(componentStack)) {
2002        // For Suspense within body, the prelude wouldn't be empty so it wouldn't violate the empty static shells rule.
2003        // But if you have Suspense above body, the prelude is empty but we allow that because having Suspense
2004        // is an explicit signal from the user that they acknowledge the empty shell and want dynamic rendering.
2005        dynamicValidation.hasAllowedDynamic = true;
2006        dynamicValidation.hasSuspenseAboveBody = true;
2007        return;
2008    } else if (hasSuspenseRegex.test(componentStack)) {
2009        // this error had a Suspense boundary above it so we don't need to report it as a source
2010        // of disallowed
2011        dynamicValidation.hasAllowedDynamic = true;
2012        return;
2013    } else if (clientDynamic.syncDynamicErrorWithStack) {
2014        // This task was the task that called the sync error.
2015        dynamicValidation.dynamicErrors.push(clientDynamic.syncDynamicErrorWithStack);
2016        return;
2017    } else {
2018        const message = `Route "${workStore.route}": Uncached data was accessed outside of ` + '<Suspense>. This delays the entire page from rendering, resulting in a ' + 'slow user experience. Learn more: ' + 'https://nextjs.org/docs/messages/blocking-route';
2019        const error = addErrorContext(Object.defineProperty(new Error(message), "__NEXT_ERROR_CODE", {
2020            value: "E1079",
2021            enumerable: false,
2022            configurable: true
2023        }), componentStack, null);
2024        dynamicValidation.dynamicErrors.push(error);
2025        return;
2026    }
2027}
2028var DynamicHoleKind = /*#__PURE__*/ function(DynamicHoleKind) {
2029    /** We know that this hole is caused by runtime data. */ DynamicHoleKind[DynamicHoleKind["Runtime"] = 1] = "Runtime";
2030    /** We know that this hole is caused by dynamic data. */ DynamicHoleKind[DynamicHoleKind["Dynamic"] = 2] = "Dynamic";
2031    return DynamicHoleKind;
2032}({});
2033function createInstantValidationState(createInstantStack) {
2034    return {
2035        hasDynamicMetadata: false,
2036        hasAllowedClientDynamicAboveBoundary: false,
2037        dynamicMetadata: null,
2038        hasDynamicViewport: false,
2039        hasAllowedDynamic: false,
2040        dynamicErrors: [],
2041        validationPreventingErrors: [],
2042        thrownErrorsOutsideBoundary: [],
2043        createInstantStack
2044    };
2045}
2046function trackDynamicHoleInNavigation(workStore, componentStack, dynamicValidation, clientDynamic, kind, boundaryState) {
2047    if (hasOutletRegex.test(componentStack)) {
2048        // We don't need to track that this is dynamic. It is only so when something else is also dynamic.
2049        return;
2050    }
2051    if (hasMetadataRegex.test(componentStack)) {
2052        const usageDescription = kind === 1 ? `Runtime data such as \`cookies()\`, \`headers()\`, \`params\`, or \`searchParams\` was accessed inside \`generateMetadata\` or you have file-based metadata such as icons that depend on dynamic params segments.` : `Uncached data or \`connection()\` was accessed inside \`generateMetadata\`.`;
2053        const message = `Route "${workStore.route}": ${usageDescription} Except for this instance, the page would have been entirely prerenderable which may have been the intended behavior. See more info here: https://nextjs.org/docs/messages/next-prerender-dynamic-metadata`;
2054        const error = addErrorContext(Object.defineProperty(new Error(message), "__NEXT_ERROR_CODE", {
2055            value: "E1076",
2056            enumerable: false,
2057            configurable: true
2058        }), componentStack, dynamicValidation.createInstantStack);
2059        dynamicValidation.dynamicMetadata = error;
2060        return;
2061    }
2062    if (hasViewportRegex.test(componentStack)) {
2063        const usageDescription = kind === 1 ? `Runtime data such as \`cookies()\`, \`headers()\`, \`params\`, or \`searchParams\` was accessed inside \`generateViewport\`.` : `Uncached data or \`connection()\` was accessed inside \`generateViewport\`.`;
2064        const message = `Route "${workStore.route}": ${usageDescription} This delays the entire page from rendering, resulting in a slow user experience. Learn more: https://nextjs.org/docs/messages/next-prerender-dynamic-viewport`;
2065        const error = addErrorContext(Object.defineProperty(new Error(message), "__NEXT_ERROR_CODE", {
2066            value: "E1086",
2067            enumerable: false,
2068            configurable: true
2069        }), componentStack, dynamicValidation.createInstantStack);
2070        dynamicValidation.dynamicErrors.push(error);
2071        return;
2072    }
2073    const boundaryLocation = hasInstantValidationBoundaryRegex.exec(componentStack);
2074    if (!boundaryLocation) {
2075        // We don't see the validation boundary in the component stack,
2076        // so this hole must be coming from a shared parent.
2077        // Shared parents are fully resolved and don't have RSC holes,
2078        // but they can still suspend in a client component during SSR.
2079        // If we managed to render all the validation boundaries, that means
2080        // that the client holes aren't blocking validation and we can disregard them.
2081        // Note that we don't even care whether they have suspense or not.
2082        if (boundaryState.expectedIds.size === boundaryState.renderedIds.size) {
2083            dynamicValidation.hasAllowedClientDynamicAboveBoundary = true;
2084            dynamicValidation.hasAllowedDynamic = true // Holes outside the boundary contribute to allowing dynamic metadata
2085            ;
2086            return;
2087        } else {
2088            // TODO(instant-validation) TODO(NAR-787)
2089            // If shared parents blocked us from validating, we should only log
2090            // the errors from the innermost (segments), i.e. omit layouts whose
2091            // slots managed to render (because clearly they didn't block validation)
2092            const message = `Route "${workStore.route}": Could not validate \`unstable_instant\` because a Client Component in a parent segment prevented the page from rendering.`;
2093            const error = addErrorContext(Object.defineProperty(new Error(message), "__NEXT_ERROR_CODE", {
2094                value: "E1082",
2095                enumerable: false,
2096                configurable: true
2097            }), componentStack, dynamicValidation.createInstantStack);
2098            dynamicValidation.validationPreventingErrors.push(error);
2099            return;
2100        }
2101    } else {
2102        // The hole originates inside the validation boundary.
2103        //
2104        // Check if we have a Suspense above the hole, but below the validation boundary.
2105        // If we do, then this dynamic usage wouldn't block a navigation to this subtree.
2106        // Conversely, if the nearest suspense is above the validation boundary, then this subtree would block.
2107        //
2108        // Note that in the component stack, children come before parents.
2109        //
2110        // Valid:
2111        //   ...
2112        //   at Suspense
2113        //   ...
2114        //   at __next_prefetch_validation_boundary__
2115        //
2116        // Invalid:
2117        //   ...
2118        //   at __next_prefetch_validation_boundary__
2119        //   ...
2120        //   at Suspense
2121        //
2122        const suspenseLocation = hasSuspenseRegex.exec(componentStack);
2123        if (suspenseLocation) {
2124            if (suspenseLocation.index < boundaryLocation.index) {
2125                dynamicValidation.hasAllowedDynamic = true;
2126                return;
2127            } else {
2128            // invalid - fallthrough
2129            }
2130        }
2131    }
2132    if (clientDynamic.syncDynamicErrorWithStack) {
2133        // This task was the task that called the sync error.
2134        const syncError = clientDynamic.syncDynamicErrorWithStack;
2135        if (dynamicValidation.createInstantStack !== null && syncError.cause === undefined) {
2136            syncError.cause = dynamicValidation.createInstantStack();
2137        }
2138        dynamicValidation.dynamicErrors.push(syncError);
2139        return;
2140    }
2141    const usageDescription = kind === 1 ? `Runtime data such as \`cookies()\`, \`headers()\`, \`params\`, or \`searchParams\` was accessed outside of \`<Suspense>\`.` : `Uncached data or \`connection()\` was accessed outside of \`<Suspense>\`.`;
2142    const message = `Route "${workStore.route}": ${usageDescription} This delays the entire page from rendering, resulting in a slow user experience. Learn more: https://nextjs.org/docs/messages/blocking-route`;
2143    const error = addErrorContext(Object.defineProperty(new Error(message), "__NEXT_ERROR_CODE", {
2144        value: "E1078",
2145        enumerable: false,
2146        configurable: true
2147    }), componentStack, dynamicValidation.createInstantStack);
2148    dynamicValidation.dynamicErrors.push(error);
2149    return;
2150}
2151function trackThrownErrorInNavigation(workStore, dynamicValidation, thrownValue, componentStack) {
2152    const boundaryLocation = hasInstantValidationBoundaryRegex.exec(componentStack);
2153    if (!boundaryLocation) {
2154        // There's no validation boundary on the component stack.
2155        // This error may have blocked a boundary from rendering.
2156        // Wrap the error to provide component context.
2157        // This helps for errors from node_modules which would otherwise
2158        // have no useful stack information due to ignore-listing,
2159        // e.g. next/dynamic with `ssr: false`.
2160        const error = addErrorContext(Object.defineProperty(new Error('An error occurred while attempting to validate instant UI. This error may be preventing the validation from completing.', {
2161            cause: thrownValue
2162        }), "__NEXT_ERROR_CODE", {
2163            value: "E1118",
2164            enumerable: false,
2165            configurable: true
2166        }), componentStack, null);
2167        dynamicValidation.thrownErrorsOutsideBoundary.push(error);
2168    } else {
2169        // There's validation boundary on the component stack,
2170        // so we know this error didn't block a validation boundary from rendering.
2171        // However, this error might be hiding be hiding dynamic content that would
2172        // cause validation to fail.
2173        const suspenseLocation = hasSuspenseRegex.exec(componentStack);
2174        if (suspenseLocation) {
2175            if (suspenseLocation.index < boundaryLocation.index) {
2176                // There's a Suspense below the validation boundary but above this error's location.
2177                // This subtree can't fail instant validation because any potential
2178                // dynamic holes would be guarded by the Suspense anyway,
2179                // so we can allow this.
2180                return;
2181            } else {
2182            // invalid - fallthrough
2183            }
2184        }
2185        const message = `Route "${workStore.route}": Could not validate \`unstable_instant\` because an error prevented the target segment from rendering.`;
2186        const error = addErrorContext(Object.defineProperty(new Error(message, {
2187            cause: thrownValue
2188        }), "__NEXT_ERROR_CODE", {
2189            value: "E1112",
2190            enumerable: false,
2191            configurable: true
2192        }), componentStack, null // TODO(instant-validation-build): conflicting use of cause
2193        );
2194        dynamicValidation.validationPreventingErrors.push(error);
2195    }
2196}
2197function trackDynamicHoleInRuntimeShell(workStore, componentStack, dynamicValidation, clientDynamic) {
2198    if (hasOutletRegex.test(componentStack)) {
2199        // We don't need to track that this is dynamic. It is only so when something else is also dynamic.
2200        return;
2201    } else if (hasMetadataRegex.test(componentStack)) {
2202        const message = `Route "${workStore.route}": Uncached data or \`connection()\` was accessed inside \`generateMetadata\`. Except for this instance, the page would have been entirely prerenderable which may have been the intended behavior. See more info here: https://nextjs.org/docs/messages/next-prerender-dynamic-metadata`;
2203        const error = addErrorContext(Object.defineProperty(new Error(message), "__NEXT_ERROR_CODE", {
2204            value: "E1080",
2205            enumerable: false,
2206            configurable: true
2207        }), componentStack, null);
2208        dynamicValidation.dynamicMetadata = error;
2209        return;
2210    } else if (hasViewportRegex.test(componentStack)) {
2211        // TODO(instant-validation): If the page only has holes caused by runtime data,
2212        // we won't find out if there's a suspense-above-body and error for dynamic viewport
2213        // even if there is in fact a suspense-above-body
2214        const message = `Route "${workStore.route}": Uncached data or \`connection()\` was accessed inside \`generateViewport\`. This delays the entire page from rendering, resulting in a slow user experience. Learn more: https://nextjs.org/docs/messages/next-prerender-dynamic-viewport`;
2215        const error = addErrorContext(Object.defineProperty(new Error(message), "__NEXT_ERROR_CODE", {
2216            value: "E1077",
2217            enumerable: false,
2218            configurable: true
2219        }), componentStack, null);
2220        dynamicValidation.dynamicErrors.push(error);
2221        return;
2222    } else if (hasSuspenseBeforeRootLayoutWithoutBodyOrImplicitBodyRegex.test(componentStack)) {
2223        // For Suspense within body, the prelude wouldn't be empty so it wouldn't violate the empty static shells rule.
2224        // But if you have Suspense above body, the prelude is empty but we allow that because having Suspense
2225        // is an explicit signal from the user that they acknowledge the empty shell and want dynamic rendering.
2226        dynamicValidation.hasAllowedDynamic = true;
2227        dynamicValidation.hasSuspenseAboveBody = true;
2228        return;
2229    } else if (hasSuspenseRegex.test(componentStack)) {
2230        // this error had a Suspense boundary above it so we don't need to report it as a source
2231        // of disallowed
2232        dynamicValidation.hasAllowedDynamic = true;
2233        return;
2234    } else if (clientDynamic.syncDynamicErrorWithStack) {
2235        // This task was the task that called the sync error.
2236        dynamicValidation.dynamicErrors.push(clientDynamic.syncDynamicErrorWithStack);
2237        return;
2238    }
2239    const message = `Route "${workStore.route}": Uncached data or \`connection()\` was accessed outside of \`<Su
2239spense>\`. This delays the entire page from rendering, resulting in a slow user experience. Learn more: https://nextjs.org/docs/messages/blocking-route`;
2240    const error = addErrorContext(Object.defineProperty(new Error(message), "__NEXT_ERROR_CODE", {
2241        value: "E1084",
2242        enumerable: false,
2243        configurable: true
2244    }), componentStack, null);
2245    dynamicValidation.dynamicErrors.push(error);
2246    return;
2247}
2248function trackDynamicHoleInStaticShell(workStore, componentStack, dynamicValidation, clientDynamic) {
2249    if (hasOutletRegex.test(componentStack)) {
2250        // We don't need to track that this is dynamic. It is only so when something else is also dynamic.
2251        return;
2252    } else if (hasMetadataRegex.test(componentStack)) {
2253        const message = `Route "${workStore.route}": Runtime data such as \`cookies()\`, \`headers()\`, \`params\`, or \`searchParams\` was accessed inside \`generateMetadata\` or you have file-based metadata such as icons that depend on dynamic params segments. Except for this instance, the page would have been entirely prerenderable which may have been the intended behavior. See more info here: https://nextjs.org/docs/messages/next-prerender-dynamic-metadata`;
2254        const error = addErrorContext(Object.defineProperty(new Error(message), "__NEXT_ERROR_CODE", {
2255            value: "E1085",
2256            enumerable: false,
2257            configurable: true
2258        }), componentStack, null);
2259        dynamicValidation.dynamicMetadata = error;
2260        return;
2261    } else if (hasViewportRegex.test(componentStack)) {
2262        const message = `Route "${workStore.route}": Runtime data such as \`cookies()\`, \`headers()\`, \`params\`, or \`searchParams\` was accessed inside \`generateViewport\`. This delays the entire page from rendering, resulting in a slow user experience. Learn more: https://nextjs.org/docs/messages/next-prerender-dynamic-viewport`;
2263        const error = addErrorContext(Object.defineProperty(new Error(message), "__NEXT_ERROR_CODE", {
2264            value: "E1081",
2265            enumerable: false,
2266            configurable: true
2267        }), componentStack, null);
2268        dynamicValidation.dynamicErrors.push(error);
2269        return;
2270    } else if (hasSuspenseBeforeRootLayoutWithoutBodyOrImplicitBodyRegex.test(componentStack)) {
2271        // For Suspense within body, the prelude wouldn't be empty so it wouldn't violate the empty static shells rule.
2272        // But if you have Suspense above body, the prelude is empty but we allow that because having Suspense
2273        // is an explicit signal from the user that they acknowledge the empty shell and want dynamic rendering.
2274        dynamicValidation.hasAllowedDynamic = true;
2275        dynamicValidation.hasSuspenseAboveBody = true;
2276        return;
2277    } else if (hasSuspenseRegex.test(componentStack)) {
2278        // this error had a Suspense boundary above it so we don't need to report it as a source
2279        // of disallowed
2280        dynamicValidation.hasAllowedDynamic = true;
2281        return;
2282    } else if (clientDynamic.syncDynamicErrorWithStack) {
2283        // This task was the task that called the sync error.
2284        dynamicValidation.dynamicErrors.push(clientDynamic.syncDynamicErrorWithStack);
2285        return;
2286    } else {
2287        const message = `Route "${workStore.route}": Runtime data such as \`cookies()\`, \`headers()\`, \`params\`, or \`searchParams\` was accessed outside of \`<Suspense>\`. This delays the entire page from rendering, resulting in a slow user experience. Learn more: https://nextjs.org/docs/messages/blocking-route`;
2288        const error = addErrorContext(Object.defineProperty(new Error(message), "__NEXT_ERROR_CODE", {
2289            value: "E1083",
2290            enumerable: false,
2291            configurable: true
2292        }), componentStack, null);
2293        dynamicValidation.dynamicErrors.push(error);
2294        return;
2295    }
2296}
2297/**
2298 * In dev mode, we prefer using the owner stack, otherwise the provided
2299 * component stack is used.
2300 *
2301 * Accepts an already-created Error so the SWC error-code plugin can see the
2302 * `new Error(...)` call at each call site and auto-assign error codes.
2303 */ function addErrorContext(error, componentStack, createInstantStack) {
2304    const ownerStack = ("TURBOPACK compile-time value", "development") !== 'production' && _react.default.captureOwnerStack ? _react.default.captureOwnerStack() : null;
2305    if (createInstantStack !== null) {
2306        error.cause = createInstantStack();
2307    }
2308    // TODO go back to owner stack here if available. This is temporarily using componentStack to get the right
2309    //
2310    error.stack = error.name + ': ' + error.message + (ownerStack || componentStack);
2311    return error;
2312}
2313var PreludeState = /*#__PURE__*/ function(PreludeState) {
2314    PreludeState[PreludeState["Full"] = 0] = "Full";
2315    PreludeState[PreludeState["Empty"] = 1] = "Empty";
2316    PreludeState[PreludeState["Errored"] = 2] = "Errored";
2317    return PreludeState;
2318}({});
2319function logDisallowedDynamicError(workStore, error) {
2320    console.error(error);
2321    if ("TURBOPACK compile-time falsy", 0) //TURBOPACK unreachable
2322    ;
2323    else if ("TURBOPACK compile-time truthy", 1) {
2324        console.error(`To debug the issue, start the app in development mode by running \`next dev\`, then open "${workStore.route}" in your browser to investigate the error.`);
2325    }
2326}
2327function throwIfDisallowedDynamic(workStore, prelude, dynamicValidation, serverDynamic) {
2328    if (serverDynamic.syncDynamicErrorWithStack) {
2329        logDisallowedDynamicError(workStore, serverDynamic.syncDynamicErrorWithStack);
2330        throw new _staticgenerationbailout.StaticGenBailoutError();
2331    }
2332    if (prelude !== 0) {
2333        if (dynamicValidation.hasSuspenseAboveBody) {
2334            // This route has opted into allowing fully dynamic rendering
2335            // by including a Suspense boundary above the body. In this case
2336            // a lack of a shell is not considered disallowed so we simply return
2337            return;
2338        }
2339        // We didn't have any sync bailouts but there may be user code which
2340        // blocked the root. We would have captured these during the prerender
2341        // and can log them here and then terminate the build/validating render
2342        const dynamicErrors = dynamicValidation.dynamicErrors;
2343        if (dynamicErrors.length > 0) {
2344            for(let i = 0; i < dynamicErrors.length; i++){
2345                logDisallowedDynamicError(workStore, dynamicErrors[i]);
2346            }
2347            throw new _staticgenerationbailout.StaticGenBailoutError();
2348        }
2349        // If we got this far then the only other thing that could be blocking
2350        // the root is dynamic Viewport. If this is dynamic then
2351        // you need to opt into that by adding a Suspense boundary above the body
2352        // to indicate your are ok with fully dynamic rendering.
2353        if (dynamicValidation.hasDynamicViewport) {
2354            console.error(`Route "${workStore.route}" has a \`generateViewport\` that depends on Request data (\`cookies()\`, etc...) or uncached external data (\`fetch(...)\`, etc...) without explicitly allowing fully dynamic rendering. See more info here: https://nextjs.org/docs/messages/next-prerender-dynamic-viewport`);
2355            throw new _staticgenerationbailout.StaticGenBailoutError();
2356        }
2357        if (prelude === 1) {
2358            // If we ever get this far then we messed up the tracking of invalid dynamic.
2359            // We still adhere to the constraint that you must produce a shell but invite the
2360            // user to report this as a bug in Next.js.
2361            console.error(`Route "${workStore.route}" did not produce a static shell and Next.js was unable to determine a reason. This is a bug in Next.js.`);
2362            throw new _staticgenerationbailout.StaticGenBailoutError();
2363        }
2364    } else {
2365        if (dynamicValidation.hasAllowedDynamic === false && dynamicValidation.hasDynamicMetadata) {
2366            console.error(`Route "${workStore.route}" has a \`generateMetadata\` that depends on Request data (\`cookies()\`, etc...) or uncached external data (\`fetch(...)\`, etc...) when the rest of the route does not. See more info here: https://nextjs.org/docs/messages/next-prerender-dynamic-metadata`);
2367            throw new _staticgenerationbailout.StaticGenBailoutError();
2368        }
2369    }
2370}
2371function getStaticShellDisallowedDynamicReasons(workStore, prelude, dynamicValidation, configAllowsBlocking) {
2372    if (configAllowsBlocking || dynamicValidation.hasSuspenseAboveBody) {
2373        // This route has opted into allowing fully dynamic rendering
2374        // by including a Suspense boundary above the body. In this case
2375        // a lack of a shell is not considered disallowed so we simply return
2376        return [];
2377    }
2378    if (prelude !== 0) {
2379        // We didn't have any sync bailouts but there may be user code which
2380        // blocked the root. We would have captured these during the prerender
2381        // and can log them here and then terminate the build/validating render
2382        const dynamicErrors = dynamicValidation.dynamicErrors;
2383        if (dynamicErrors.length > 0) {
2384            return dynamicErrors;
2385        }
2386        if (prelude === 1) {
2387            // If we ever get this far then we messed up the tracking of invalid dynamic.
2388            // We still adhere to the constraint that you must produce a shell but invite the
2389            // user to report this as a bug in Next.js.
2390            return [
2391                Object.defineProperty(new _invarianterror.InvariantError(`Route "${workStore.route}" did not produce a static shell and Next.js was unable to determine a reason.`), "__NEXT_ERROR_CODE", {
2392                    value: "E936",
2393                    enumerable: false,
2394                    configurable: true
2395                })
2396            ];
2397        }
2398    } else {
2399        // We have a prelude but we might still have dynamic metadata without any other dynamic access
2400        if (dynamicValidation.hasAllowedDynamic === false && dynamicValidation.dynamicErrors.length === 0 && dynamicValidation.dynamicMetadata) {
2401            return [
2402                dynamicValidation.dynamicMetadata
2403            ];
2404        }
2405    }
2406    // We had a non-empty prelude and there are no dynamic holes
2407    return [];
2408}
2409function getNavigationDisallowedDynamicReasons(workStore, prelude, dynamicValidation, validationSampleTracking, boundaryState) {
2410    // If we have errors related to missing samples, those should take precedence over everything else.
2411    if (validationSampleTracking) {
2412        const { missingSampleErrors } = validationSampleTracking;
2413        if (missingSampleErrors.length > 0) {
2414            return missingSampleErrors;
2415        }
2416    }
2417    const { validationPreventingErrors } = dynamicValidation;
2418    if (validationPreventingErrors.length > 0) {
2419        return validationPreventingErrors;
2420    }
2421    if (boundaryState.renderedIds.size < boundaryState.expectedIds.size) {
2422        const { thrownErrorsOutsideBoundary, createInstantStack } = dynamicValidation;
2423        if (thrownErrorsOutsideBoundary.length === 0) {
2424            const message = `Route "${workStore.route}
2424": Could not validate \`unstable_instant\` because the target segment was prevented from rendering for an unknown reason.`;
2425            const error = createInstantStack !== null ? createInstantStack() : new Error();
2426            error.name = 'Error';
2427            error.message = message;
2428            return [
2429                error
2430            ];
2431        } else if (thrownErrorsOutsideBoundary.length === 1) {
2432            const message = `Route "${workStore.route}": Could not validate \`unstable_instant\` because the target segment was prevented from rendering, likely due to the following error.`;
2433            const error = createInstantStack !== null ? createInstantStack() : new Error();
2434            error.name = 'Error';
2435            error.message = message;
2436            return [
2437                error,
2438                thrownErrorsOutsideBoundary[0]
2439            ];
2440        } else {
2441            const message = `Route "${workStore.route}": Could not validate \`unstable_instant\` because the target segment was prevented from rendering, likely due to one of the following errors.`;
2442            const error = createInstantStack !== null ? createInstantStack() : new Error();
2443            error.name = 'Error';
2444            error.message = message;
2445            return [
2446                error,
2447                ...thrownErrorsOutsideBoundary
2448            ];
2449        }
2450    }
2451    // NOTE: We don't care about Suspense above body here,
2452    // we're only concerned with the validation boundary
2453    if (prelude !== 0) {
2454        const dynamicErrors = dynamicValidation.dynamicErrors;
2455        if (dynamicErrors.length > 0) {
2456            return dynamicErrors;
2457        }
2458        if (prelude === 1) {
2459            // If a client component suspended prevented us from rendering a shell
2460            // but didn't block validation, we don't require a prelude.
2461            if (dynamicValidation.hasAllowedClientDynamicAboveBoundary) {
2462                return [];
2463            }
2464            // If we ever get this far then we messed up the tracking of invalid dynamic.
2465            return [
2466                Object.defineProperty(new _invarianterror.InvariantError(`Route "${workStore.route}" failed to render during instant validation and Next.js was unable to determine a reason.`), "__NEXT_ERROR_CODE", {
2467                    value: "E1055",
2468                    enumerable: false,
2469                    configurable: true
2470                })
2471            ];
2472        }
2473    } else {
2474        const dynamicErrors = dynamicValidation.dynamicErrors;
2475        if (dynamicErrors.length > 0) {
2476            return dynamicErrors;
2477        }
2478        if (dynamicValidation.hasAllowedDynamic === false && dynamicValidation.dynamicMetadata) {
2479            return [
2480                dynamicValidation.dynamicMetadata
2481            ];
2482        }
2483    }
2484    // We had a non-empty prelude and there are no dynamic holes
2485    return [];
2486}
2487}),
248891414, ((__turbopack_context__, module, exports) => {
2489"use strict";
2490
2491Object.defineProperty(exports, "__esModule", {
2492    value: true
2493});
2494Object.defineProperty(exports, "unstable_rethrow", {
2495    enumerable: true,
2496    get: function() {
2497        return unstable_rethrow;
2498    }
2499});
2500const _dynamicrenderingutils = __turbopack_context__.r(63138);
2501const _ispostpone = __turbopack_context__.r(67287);
2502const _bailouttocsr = __turbopack_context__.r(32061);
2503const _isnextroutererror = __turbopack_context__.r(65713);
2504const _dynamicrendering = __turbopack_context__.r(67673);
2505const _hooksservercontext = __turbopack_context__.r(76353);
2506function unstable_rethrow(error) {
2507    if ((0, _isnextroutererror.isNextRouterError)(error) || (0, _bailouttocsr.isBailoutToCSRError)(error) || (0, _hooksservercontext.isDynamicServerError)(error) || (0, _dynamicrendering.isDynamicPostpone)(error) || (0, _ispostpone.isPostpone)(error) || (0, _dynamicrenderingutils.isHangingPromiseRejectionError)(error) || (0, _dynamicrendering.isPrerenderInterruptedError)(error)) {
2508        throw error;
2509    }
2510    if (error instanceof Error && 'cause' in error) {
2511        unstable_rethrow(error.cause);
2512    }
2513}
2514if ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {
2515    Object.defineProperty(exports.default, '__esModule', {
2516        value: true
2517    });
2518    Object.assign(exports.default, exports);
2519    module.exports = exports.default;
2520}
2521}),
252290508, ((__turbopack_context__, module, exports) => {
2523"use strict";
2524
2525/**
2526 * This function should be used to rethrow internal Next.js errors so that they can be handled by the framework.
2527 * When wrapping an API that uses errors to interrupt control flow, you should use this function before you do any error handling.
2528 * This function will rethrow the error if it is a Next.js error so it can be handled, otherwise it will do nothing.
2529 *
2530 * Read more: [Next.js Docs: `unstable_rethrow`](https://nextjs.org/docs/app/api-reference/functions/unstable_rethrow)
2531 */ Object.defineProperty(exports, "__esModule", {
2532    value: true
2533});
2534Object.defineProperty(exports, "unstable_rethrow", {
2535    enumerable: true,
2536    get: function() {
2537        return unstable_rethrow;
2538    }
2539});
2540const unstable_rethrow = typeof window === 'undefined' ? __turbopack_context__.r(91414).unstable_rethrow : __turbopack_context__.r(15507).unstable_rethrow;
2541if ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {
2542    Object.defineProperty(exports.default, '__esModule', {
2543        value: true
2544    });
2545    Object.assign(exports.default, exports);
2546    module.exports = exports.default;
2547}
2548}),
254992805, ((__turbopack_context__, module, exports) => {
2550"use strict";
2551
2552Object.defineProperty(exports, "__esModule", {
2553    value: true
2554});
25550 && (module.exports = {
2556    ReadonlyURLSearchParams: null,
2557    RedirectType: null,
2558    forbidden: null,
2559    notFound: null,
2560    permanentRedirect: null,
2561    redirect: null,
2562    unauthorized: null,
2563    unstable_isUnrecognizedActionError: null,
2564    unstable_rethrow: null
2565});
2566function _export(target, all) {
2567    for(var name in all)Object.defineProperty(target, name, {
2568        enumerable: true,
2569        get: all[name]
2570    });
2571}
2572_export(exports, {
2573    ReadonlyURLSearchParams: function() {
2574        return _readonlyurlsearchparams.ReadonlyURLSearchParams;
2575    },
2576    RedirectType: function() {
2577        return RedirectType;
2578    },
2579    forbidden: function() {
2580        return _forbidden.forbidden;
2581    },
2582    notFound: function() {
2583        return _notfound.notFound;
2584    },
2585    permanentRedirect: function() {
2586        return _redirect.permanentRedirect;
2587    },
2588    redirect: function() {
2589        return _redirect.redirect;
2590    },
2591    unauthorized: function() {
2592        return _unauthorized.unauthorized;
2593    },
2594    unstable_isUnrecognizedActionError: function() {
2595        return unstable_isUnrecognizedActionError;
2596    },
2597    unstable_rethrow: function() {
2598        return _unstablerethrow.unstable_rethrow;
2599    }
2600});
2601const _readonlyurlsearchparams = __turbopack_context__.r(3680);
2602const _redirect = __turbopack_context__.r(24063);
2603const _notfound = __turbopack_context__.r(22783);
2604const _forbidden = __turbopack_context__.r(79854);
2605const _unauthorized = __turbopack_context__.r(22683);
2606const _unstablerethrow = __turbopack_context__.r(90508);
2607function unstable_isUnrecognizedActionError() {
2608    throw Object.defineProperty(new Error('`unstable_isUnrecognizedActionError` can only be used on the client.'), "__NEXT_ERROR_CODE", {
2609        value: "E776",
2610        enumerable: false,
2611        configurable: true
2612    });
2613}
2614const RedirectType = {
2615    push: 'push',
2616    replace: 'replace'
2617};
2618if ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {
2619    Object.defineProperty(exports.default, '__esModule', {
2620        value: true
2621    });
2622    Object.assign(exports.default, exports);
2623    module.exports = exports.default;
2624}
2625}),
262676562, ((__turbopack_context__, module, exports) => {
2627"use strict";
2628
2629var __TURBOPACK__imported__module__47167__ = /*#__PURE__*/ __turbopack_context__.i(47167);
2630"use strict";
2631Object.defineProperty(exports, "__esModule", {
2632    value: true
2633});
26340 && (module.exports = {
2635    ReadonlyURLSearchParams: null,
2636    RedirectType: null,
2637    ServerInsertedHTMLContext: null,
2638    forbidden: null,
2639    notFound: null,
2640    permanentRedirect: null,
2641    redirect: null,
2642    unauthorized: null,
2643    unstable_isUnrecognizedActionError: null,
2644    unstable_rethrow: null,
2645    useParams: null,
2646    usePathname: null,
2647    useRouter: null,
2648    useSearchParams: null,
2649    useSelectedLayoutSegment: null,
2650    useSelectedLayoutSegments: null,
2651    useServerInsertedHTML: null
2652});
2653function _export(target, all) {
2654    for(var name in all)Object.defineProperty(target, name, {
2655        enumerable: true,
2656        get: all[name]
2657    });
2658}
2659_export(exports, {
2660    // We need the same class that was used to instantiate the context value
2661    // Otherwise instanceof checks will fail in usercode
2662    ReadonlyURLSearchParams: function() {
2663        return _hooksclientcontextsharedruntime.ReadonlyURLSearchParams;
2664    },
2665    RedirectType: function() {
2666        return _navigationreactserver.RedirectType;
2667    },
2668    ServerInsertedHTMLContext: function() {
2669        return _serverinsertedhtmlsharedruntime.ServerInsertedHTMLContext;
2670    },
2671    forbidden: function() {
2672        return _navigationreactserver.forbidden;
2673    },
2674    notFound: function() {
2675        return _navigationreactserver.notFound;
2676    },
2677    permanentRedirect: function() {
2678        return _navigationreactserver.permanentRedirect;
2679    },
2680    redirect: function() {
2681        return _navigationreactserver.redirect;
2682    },
2683    unauthorized: function() {
2684        return _navigationreactserver.unauthorized;
2685    },
2686    unstable_isUnrecognizedActionError: function() {
2687        return _unrecognizedactionerror.unstable_isUnrecognizedActionError;
2688    },
2689    unstable_rethrow: function() {
2690        return _navigationreactserver.unstable_rethrow;
2691    },
2692    useParams: function() {
2693        return useParams;
2694    },
2695    usePathname: function() {
2696        return usePathname;
2697    },
2698    useRouter: function() {
2699        return useRouter;
2700    },
2701    useSearchParams: function() {
2702        return useSearchParams;
2703    },
2704    useSelectedLayoutSegment: function() {
2705        return useSelectedLayoutSegment;
2706    },
2707    useSelectedLayoutSegments: function() {
2708        return useSelectedLayoutSegments;
2709    },
2710    useServerInsertedHTML: function() {
2711        return _serverinsertedhtmlsharedruntime.useServerInsertedHTML;
2712    }
2713});
2714const _interop_require_wildcard = __turbopack_context__.r(90809);
2715const _react = /*#__PURE__*/ _interop_require_wildcard._(__turbopack_context__.r(71645));
2716const _approutercontextsharedruntime = __turbopack_context__.r(8372);
2717const _hooksclientcontextsharedruntime = __turbopack_context__.r(61994);
2718const _segment = __turbopack_context__.r(13258);
2719const _serverinsertedhtmlsharedruntime = __turbopack_context__.r(13957);
2720const _unrecognizedactionerror = __turbopack_context__.r(92838);
2721const _navigationreactserver = __turbopack_context__.r(92805);
2722const useDynamicRouteParams = typeof window === 'undefined' ? __turbopack_context__.r(67673).useDynamicRouteParams : undefined;
2723const useDynamicSearchParams = typeof window === 'undefined' ? __turbopack_context__.r(67673).useDynamicSearchParams : undefined;
2724const { instrumentParamsForClientValidation, instrumentSearchParamsForClientValidation, expectCompleteParamsInClientValidation } = ("TURBOPACK compile-time falsy", 0) ? "TURBOPACK unreachable" : {};
2725function useSearchParams() {
2726    useDynamicSearchParams?.('useSearchParams()');
2727    const searchParams = (0, _react.useContext)(_hooksclientcontextsharedruntime.SearchParamsContext);
2728    // In the case where this is `null`, the compat types added in
2729    // `next-env.d.ts` will add a new overload that changes the return type to
2730    // include `null`.
2731    const readonlySearchParams = (0, _react.useMemo)(()=>{
2732        if (!searchParams) {
2733            // When the router is not ready in pages, we won't have the search params
2734            // available.
2735            return null;
2736        }
2737        return new _hooksclientcontextsharedruntime.ReadonlyURLSearchParams(searchParams);
2738    }, [
2739        searchParams
2740    ]);
2741    // During build-time instant validation, wrap with an proxy
2742    // so that accessing undeclared search params throws an error.
2743    if ("TURBOPACK compile-time falsy", 0) //TURBOPACK unreachable
2744    ;
2745    // Instrument with Suspense DevTools (dev-only)
2746    if (("TURBOPACK compile-time value", "development") !== 'production' && 'use' in _react.default) {
2747        const navigationPromises = (0, _react.use)(_hooksclientcontextsharedruntime.NavigationPromisesContext);
2748        if (navigationPromises) {
2749            return (0, _react.use)(navigationPromises.searchParams);
2750        }
2751    }
2752    return readonlySearchParams;
2753}
2754function usePathname() {
2755    useDynamicRouteParams?.('usePathname()');
2756    // In the case where this is `null`, the compat types added in `next-env.d.ts`
2757    // will add a new overload that changes the return type to include `null`.
2758    const pathname = (0, _react.useContext)(_hooksclientcontextsharedruntime.PathnameContext);
2759    // During build-time instant validation, error if fallback params exist
2760    // because usePathname() can't return a sensible value without all params.
2761    if ("TURBOPACK compile-time falsy", 0) //TURBOPACK unreachable
2762    ;
2763    // Instrument with Suspense DevTools (dev-only)
2764    if (("TURBOPACK compile-time value", "development") !== 'production' && 'use' in _react.default) {
2765        const navigationPromises = (0, _react.use)(_hooksclientcontextsharedruntime.NavigationPromisesContext);
2766        if (navigationPromises) {
2767            return (0, _react.use)(navigationPromises.pathname);
2768        }
2769    }
2770    return pathname;
2771}
2772function useRouter() {
2773    const router = (0, _react.useContext)(_approutercontextsharedruntime.AppRouterContext);
2774    if (router === null) {
2775        throw Object.defineProperty(new Error('invariant expected app router to be mounted'), "__NEXT_ERROR_CODE", {
2776            value: "E238",
2777            enumerable: false,
2778            configurable: true
2779        });
2780    }
2781    return router;
2782}
2783function useParams() {
2784    useDynamicRouteParams?.('useParams()');
2785    const params = (0, _react.useContext)(_hooksclientcontextsharedruntime.PathParamsContext);
2786    // During build-time instant validation, wrap with a proxy
2787    // so that accessing undeclared params throws an error.
2788    if ("TURBOPACK compile-time falsy", 0) //TURBOPACK unreachable
2789    ;
2790    // Instrument with Suspense DevTools (dev-only)
2791    if (("TURBOPACK compile-time value", "development") !== 'production' && 'use' in _react.default) {
2792        const navigationPromises = (0, _react.use)(_hooksclientcontextsharedruntime.NavigationPromisesContext);
2793        if (navigationPromises) {
2794            return (0, _react.use)(navigationPromises.params);
2795        }
2796    }
2797    return params;
2798}
2799function useSelectedLayoutSegments(parallelRouteKey = 'children') {
2800    useDynamicRouteParams?.('useSelectedLayoutSegments()');
2801    const context = (0, _react.useContext)(_approutercontextsharedruntime.LayoutRouterContext);
2802    // @ts-expect-error This only happens in `pages`. Type is overwritten in navigation.d.ts
2803    if (!context) return null;
2804    // During build-time instant validation, error if fallback params exist
2805    // because useSelectedLayoutSegments() can't return a sensible value without all params.
2806    if ("TURBOPACK compile-time falsy", 0) //TURBOPACK unreachable
2807    ;
2808    // Instrument with Suspense DevTools (dev-only)
2809    if (("TURBOPACK compile-time value", "development") !== 'production' && 'use' in _react.default) {
2810        const navigationPromises = (0, _react.use)(_hooksclientcontextsharedruntime.NavigationPromisesContext);
2811        if (navigationPromises) {
2812            const promise = navigationPromises.selectedLayoutSegmentsPromises?.get(parallelRouteKey);
2813            if (promise) {
2814                // We should always have a promise here, but if we don't, it's not worth erroring over.
2815                // We just won't be able to instrument it, but can still provide the value.
2816                return (0, _react.use)(promise);
2817            }
2818        }
2819    }
2820    return (0, _segment.getSelectedLayoutSegmentPath)(context.parentTree, parallelRouteKey);
2821}
2822function useSelectedLayoutSegment(parallelRouteKey = 'children') {
2823    useDynamicRouteParams?.('useSelectedLayoutSegment()');
2824    const navigationPromises = (0, _react.useContext)(_hooksclientcontextsharedruntime.NavigationPromisesContext);
2825    const selectedLayoutSegments = useSelectedLayoutSegments(parallelRouteKey);
2826    // During build-time instant validation, error if fallback params exist
2827    // because useSelectedLayoutSegment() can't return a sensible value without all params.
2828    if ("TURBOPACK compile-time falsy", 0) //TURBOPACK unreachable
2829    ;
2830    // Instrument with Suspense DevTools (dev-only)
2831    if (("TURBOPACK compile-time value", "development") !== 'production' && navigationPromises && 'use' in _react.default) {
2832        const promise = navigationPromises.selectedLayoutSegmentPromises?.get(parallelRouteKey);
2833        if (promise) {
2834            // We should always have a promise here, but if we don't, it's not worth erroring over.
2835            // We just won't be able to instrument it, but can still provide the value.
2836            return (0, _react.use)(promise);
2837        }
2838    }
2839    return (0, _segment.computeSelectedLayoutSegment)(selectedLayoutSegments, parallelRouteKey);
2840}
2841if ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {
2842    Object.defineProperty(exports.default, '__esModule', {
2843        value: true
2844    });
2845    Object.assign(exports.default, exports);
2846    module.exports = exports.default;
2847}
2848}),
2849]);

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.