diff --git a/docs/02-app/01-building-your-application/02-data-fetching/03-forms-and-mutations.mdx b/docs/02-app/01-building-your-application/02-data-fetching/03-forms-and-mutations.mdx index d52e1f1e83373..236b7e88200ee 100644 --- a/docs/02-app/01-building-your-application/02-data-fetching/03-forms-and-mutations.mdx +++ b/docs/02-app/01-building-your-application/02-data-fetching/03-forms-and-mutations.mdx @@ -377,7 +377,7 @@ For example, the following submit button: ```tsx filename="app/submit-button.tsx" switcher 'use client' -import { experimental_useFormStatus as useFormStatus } from 'react-dom' +import { useFormStatus } from 'react-dom' export function SubmitButton() { const { pending } = useFormStatus() @@ -393,7 +393,7 @@ export function SubmitButton() { ```jsx filename="app/submit-button.jsx" switcher 'use client' -import { experimental_useFormStatus as useFormStatus } from 'react-dom' +import { useFormStatus } from 'react-dom' export function SubmitButton() { const { pending } = useFormStatus() @@ -557,8 +557,7 @@ Then, from a Client Component, you can read this value and display an error mess ```tsx filename="app/add-form.tsx" switcher 'use client' -import { experimental_useFormState as useFormState } from 'react-dom' -import { experimental_useFormStatus as useFormStatus } from 'react-dom' +import { useFormState, useFormStatus } from 'react-dom' import { createTodo } from '@/app/actions' const initialState = { @@ -594,8 +593,7 @@ export function AddForm() { ```jsx filename="app/add-form.jsx" switcher 'use client' -import { experimental_useFormState as useFormState } from 'react-dom' -import { experimental_useFormStatus as useFormStatus } from 'react-dom' +import { useFormState, useFormStatus } from 'react-dom' import { createTodo } from '@/app/actions' const initialState = { diff --git a/examples/next-forms/app/add-form.tsx b/examples/next-forms/app/add-form.tsx index 8fb469731baf9..45725efe1f4dc 100644 --- a/examples/next-forms/app/add-form.tsx +++ b/examples/next-forms/app/add-form.tsx @@ -1,7 +1,7 @@ 'use client' import { experimental_useFormState as useFormState } from 'react-dom' -import { experimental_useFormStatus as useFormStatus } from 'react-dom' +import { useFormStatus } from 'react-dom' import { createTodo } from '@/app/actions' const initialState = { diff --git a/examples/next-forms/app/delete-form.tsx b/examples/next-forms/app/delete-form.tsx index f3901143b2e85..221b11f1a5442 100644 --- a/examples/next-forms/app/delete-form.tsx +++ b/examples/next-forms/app/delete-form.tsx @@ -1,7 +1,6 @@ 'use client' -import { experimental_useFormState as useFormState } from 'react-dom' -import { experimental_useFormStatus as useFormStatus } from 'react-dom' +import { useFormState, useFormStatus } from 'react-dom' import { deleteTodo } from '@/app/actions' const initialState = { diff --git a/examples/with-fauna/components/EntryForm.tsx b/examples/with-fauna/components/EntryForm.tsx index 71d8675905967..5f3cea173b20c 100644 --- a/examples/with-fauna/components/EntryForm.tsx +++ b/examples/with-fauna/components/EntryForm.tsx @@ -3,8 +3,7 @@ import cn from 'classnames' import { createEntryAction } from '@/actions/entry' // @ts-ignore -import { experimental_useFormState as useFormState } from 'react-dom' -import { experimental_useFormStatus as useFormStatus } from 'react-dom' +import { useFormState, useFormStatus } from 'react-dom' import LoadingSpinner from '@/components/LoadingSpinner' import SuccessMessage from '@/components/SuccessMessage' import ErrorMessage from '@/components/ErrorMessage' @@ -26,7 +25,7 @@ export default function EntryForm() { return ( <> -
+ =18.18.2", diff --git a/packages/next-swc/crates/core/src/react_server_components.rs b/packages/next-swc/crates/core/src/react_server_components.rs index 8d136e78b09d8..e383df5e4f4c5 100644 --- a/packages/next-swc/crates/core/src/react_server_components.rs +++ b/packages/next-swc/crates/core/src/react_server_components.rs @@ -612,8 +612,8 @@ pub fn server_components( JsWord::from("findDOMNode"), JsWord::from("flushSync"), JsWord::from("unstable_batchedUpdates"), - JsWord::from("experimental_useFormStatus"), - JsWord::from("experimental_useFormState"), + JsWord::from("useFormStatus"), + JsWord::from("useFormState"), ], invalid_server_react_apis: vec![ JsWord::from("Component"), diff --git a/packages/next-swc/crates/core/tests/errors/react-server-components/server-graph/react-dom-api/input.js b/packages/next-swc/crates/core/tests/errors/react-server-components/server-graph/react-dom-api/input.js index d29c808451c59..3b7a161c4b373 100644 --- a/packages/next-swc/crates/core/tests/errors/react-server-components/server-graph/react-dom-api/input.js +++ b/packages/next-swc/crates/core/tests/errors/react-server-components/server-graph/react-dom-api/input.js @@ -1,9 +1,6 @@ import { findDOMNode, flushSync, unstable_batchedUpdates } from 'react-dom' -import { - experimental_useFormStatus, - experimental_useFormState, -} from 'react-dom' +import { useFormStatus, useFormState } from 'react-dom' export default function () { return null diff --git a/packages/next-swc/crates/core/tests/errors/react-server-components/server-graph/react-dom-api/output.js b/packages/next-swc/crates/core/tests/errors/react-server-components/server-graph/react-dom-api/output.js index 8df6e6178d5de..742749a85ed92 100644 --- a/packages/next-swc/crates/core/tests/errors/react-server-components/server-graph/react-dom-api/output.js +++ b/packages/next-swc/crates/core/tests/errors/react-server-components/server-graph/react-dom-api/output.js @@ -1,5 +1,5 @@ import { findDOMNode, flushSync, unstable_batchedUpdates } from 'react-dom'; -import { experimental_useFormStatus, experimental_useFormState } from 'react-dom'; +import { useFormStatus, useFormState } from 'react-dom'; export default function() { return null; } diff --git a/packages/next-swc/crates/core/tests/errors/react-server-components/server-graph/react-dom-api/output.stderr b/packages/next-swc/crates/core/tests/errors/react-server-components/server-graph/react-dom-api/output.stderr index 786dd9f145dc8..7f4365f073eb7 100644 --- a/packages/next-swc/crates/core/tests/errors/react-server-components/server-graph/react-dom-api/output.stderr +++ b/packages/next-swc/crates/core/tests/errors/react-server-components/server-graph/react-dom-api/output.stderr @@ -17,18 +17,18 @@ : ^^^^^^^^^^^^^^^^^^^^^^^ `---- - x NEXT_RSC_ERR_REACT_API: experimental_useFormStatus + x NEXT_RSC_ERR_REACT_API: useFormStatus ,-[input.js:3:1] 3 | import { - 4 | experimental_useFormStatus, + 4 | useFormStatus, : ^^^^^^^^^^^^^^^^^^^^^^^^^^ - 5 | experimental_useFormState, + 5 | useFormState, `---- - x NEXT_RSC_ERR_REACT_API: experimental_useFormState + x NEXT_RSC_ERR_REACT_API: useFormState ,-[input.js:4:1] - 4 | experimental_useFormStatus, - 5 | experimental_useFormState, + 4 | useFormStatus, + 5 | useFormState, : ^^^^^^^^^^^^^^^^^^^^^^^^^ 6 | } from 'react-dom' `---- diff --git a/packages/next-swc/crates/core/tests/fixture/react-server-components/server-graph-no-checks/react-dom-api/input.js b/packages/next-swc/crates/core/tests/fixture/react-server-components/server-graph-no-checks/react-dom-api/input.js index d29c808451c59..3b7a161c4b373 100644 --- a/packages/next-swc/crates/core/tests/fixture/react-server-components/server-graph-no-checks/react-dom-api/input.js +++ b/packages/next-swc/crates/core/tests/fixture/react-server-components/server-graph-no-checks/react-dom-api/input.js @@ -1,9 +1,6 @@ import { findDOMNode, flushSync, unstable_batchedUpdates } from 'react-dom' -import { - experimental_useFormStatus, - experimental_useFormState, -} from 'react-dom' +import { useFormStatus, useFormState } from 'react-dom' export default function () { return null diff --git a/packages/next-swc/crates/core/tests/fixture/react-server-components/server-graph-no-checks/react-dom-api/output.js b/packages/next-swc/crates/core/tests/fixture/react-server-components/server-graph-no-checks/react-dom-api/output.js index 9621b75b305da..c8a9310228464 100644 --- a/packages/next-swc/crates/core/tests/fixture/react-server-components/server-graph-no-checks/react-dom-api/output.js +++ b/packages/next-swc/crates/core/tests/fixture/react-server-components/server-graph-no-checks/react-dom-api/output.js @@ -1,5 +1,5 @@ import { findDOMNode, flushSync, unstable_batchedUpdates } from 'react-dom'; -import { experimental_useFormStatus, experimental_useFormState } from 'react-dom'; +import { useFormStatus, useFormState } from 'react-dom'; export default function() { return null; diff --git a/packages/next/src/client/app-index.tsx b/packages/next/src/client/app-index.tsx index c4053df4e82be..43a57aa3551db 100644 --- a/packages/next/src/client/app-index.tsx +++ b/packages/next/src/client/app-index.tsx @@ -299,7 +299,7 @@ export function hydrate() { React.startTransition(() => (ReactDOMClient as any).hydrateRoot(appElement, reactEl, { ...options, - experimental_formState: initialFormStateData, + formState: initialFormStateData, }) ) } diff --git a/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-server-legacy.browser.development.js b/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-server-legacy.browser.development.js index d19392ed8d2cd..4c98eb4058596 100644 --- a/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-server-legacy.browser.development.js +++ b/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-server-legacy.browser.development.js @@ -17,7 +17,7 @@ if (process.env.NODE_ENV !== "production") { var React = require("next/dist/compiled/react-experimental"); var ReactDOM = require('react-dom'); -var ReactVersion = '18.3.0-experimental-d900fadbf-20230929'; +var ReactVersion = '18.3.0-experimental-09fbee89d-20231013'; var ReactSharedInternals = React.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED; @@ -3962,26 +3962,7 @@ function pushStartCustomElement(target, props, tag) { continue; } - if ((typeof propValue === 'function' || typeof propValue === 'object')) { - // It is normal to render functions and objects on custom elements when - // client rendering, but when server rendering the output isn't useful, - // so skip it. - continue; - } - - if (propValue === false) { - continue; - } - - if (propValue === true) { - propValue = ''; - } - - if (propKey === 'className') { - // className gets rendered as class on the client, so it should be - // rendered as class on the server. - propKey = 'class'; - } + var attributeName = propKey; switch (propKey) { case 'children': @@ -4001,9 +3982,28 @@ function pushStartCustomElement(target, props, tag) { // Ignored. These are built-in to React on the client. break; + case 'className': + { + // className gets rendered as class on the client, so it should be + // rendered as class on the server. + attributeName = 'class'; + } + + // intentional fallthrough + default: if (isAttributeNameSafe(propKey) && typeof propValue !== 'function' && typeof propValue !== 'symbol') { - target.push(attributeSeparator, stringToChunk(propKey), attributeAssign, stringToChunk(escapeTextForBrowser(propValue)), attributeEnd); + { + if (propValue === false) { + continue; + } else if (propValue === true) { + propValue = ''; + } else if (typeof propValue === 'object') { + continue; + } + } + + target.push(attributeSeparator, stringToChunk(attributeName), attributeAssign, stringToChunk(escapeTextForBrowser(propValue)), attributeEnd); } break; @@ -8196,9 +8196,12 @@ function useSyncExternalStore(subscribe, getSnapshot, getServerSnapshot) { return getServerSnapshot(); } -function useDeferredValue(value) { +function useDeferredValue(value, initialValue) { resolveCurrentlyRenderingComponent(); - return value; + + { + return initialValue !== undefined ? initialValue : value; + } } function unsupportedStartTransition() { @@ -8983,11 +8986,7 @@ function replaySuspenseBoundary(request, task, keyPath, props, id, childNodes, c try { // We use the safe form because we don't handle suspending here. Only error handling. - if (typeof childSlots === 'number') { - resumeNode(request, task, childSlots, content, -1); - } else { - renderNode(request, task, content, -1); - } + renderNode(request, task, content, -1); if (task.replay.pendingTasks === 1 && task.replay.nodes.length > 0) { throw new Error("Couldn't find all resumable slots by key/index during replaying. " + "The tree doesn't match so React will fallback to client rendering."); @@ -9038,24 +9037,15 @@ function replaySuspenseBoundary(request, task, keyPath, props, id, childNodes, c task.keyPath = prevKeyPath; } - var fallbackKeyPath = [keyPath[0], 'Suspense Fallback', keyPath[2]]; - var suspendedFallbackTask; // We create suspended task for the fallback because we don't want to actually work + var fallbackKeyPath = [keyPath[0], 'Suspense Fallback', keyPath[2]]; // We create suspended task for the fallback because we don't want to actually work // on it yet in case we finish the main content, so we queue for later. - if (typeof fallbackSlots === 'number') { - // Resuming directly in the fallback. - var resumedSegment = createPendingSegment(request, 0, null, task.formatContext, false, false); - resumedSegment.id = fallbackSlots; - resumedSegment.parentFlushed = true; - suspendedFallbackTask = createRenderTask(request, null, fallback, -1, parentBoundary, resumedSegment, fallbackAbortSet, fallbackKeyPath, task.formatContext, task.legacyContext, task.context, task.treeContext); - } else { - var fallbackReplay = { - nodes: fallbackNodes, - slots: fallbackSlots, - pendingTasks: 0 - }; - suspendedFallbackTask = createReplayTask(request, null, fallbackReplay, fallback, -1, parentBoundary, fallbackAbortSet, fallbackKeyPath, task.formatContext, task.legacyContext, task.context, task.treeContext); - } + var fallbackReplay = { + nodes: fallbackNodes, + slots: fallbackSlots, + pendingTasks: 0 + }; + var suspendedFallbackTask = createReplayTask(request, null, fallbackReplay, fallback, -1, parentBoundary, fallbackAbortSet, fallbackKeyPath, task.formatContext, task.legacyContext, task.context, task.treeContext); { suspendedFallbackTask.componentStack = task.componentStack; @@ -9063,8 +9053,7 @@ function replaySuspenseBoundary(request, task, keyPath, props, id, childNodes, c // on preparing fallbacks if we don't have any more main content to task on. - request.pingedTasks.push(suspendedFallbackTask); // TODO: Should this be in the finally? - + request.pingedTasks.push(suspendedFallbackTask); popComponentStackInDEV(task); } @@ -9605,37 +9594,6 @@ function resumeNode(request, task, segmentId, node, childIndex) { } } -function resumeElement(request, task, keyPath, segmentId, prevThenableState, type, props, ref) { - var prevReplay = task.replay; - var blockedBoundary = task.blockedBoundary; - var resumedSegment = createPendingSegment(request, 0, null, task.formatContext, false, false); - resumedSegment.id = segmentId; - resumedSegment.parentFlushed = true; - - try { - // Convert the current ReplayTask to a RenderTask. - var renderTask = task; - renderTask.replay = null; - renderTask.blockedSegment = resumedSegment; - renderElement(request, task, keyPath, prevThenableState, type, props, ref); - resumedSegment.status = COMPLETED; - - if (blockedBoundary === null) { - request.completedRootSegment = resumedSegment; - } else { - queueCompletedSegment(blockedBoundary, resumedSegment); - - if (blockedBoundary.parentFlushed) { - request.partialBoundaries.push(blockedBoundary); - } - } - } finally { - // Restore to a ReplayTask. - task.replay = prevReplay; - task.blockedSegment = null; - } -} - function replayElement(request, task, keyPath, prevThenableState, name, keyOrIndex, childIndex, type, props, ref, replay) { // We're replaying. Find the path to follow. var replayNodes = replay.nodes; @@ -9646,17 +9604,18 @@ function replayElement(request, task, keyPath, prevThenableState, name, keyOrInd if (keyOrIndex !== node[1]) { continue; - } // Let's double check that the component name matches as a precaution. - - - if (name !== null && name !== node[0]) { - throw new Error('Expected to see a component of type "' + name + '" in this slot. ' + "The tree doesn't match so React will fallback to client rendering."); } if (node.length === 4) { // Matched a replayable path. + // Let's double check that the component name matches as a precaution. + if (name !== null && name !== node[0]) { + throw new Error('Expected the resume to render <' + node[0] + '> in this slot but instead it rendered <' + name + '>. ' + "The tree doesn't match so React will fallback to client rendering."); + } + var childNodes = node[2]; var childSlots = node[3]; + var currentNode = task.node; task.replay = { nodes: childNodes, slots: childSlots, @@ -9664,37 +9623,40 @@ function replayElement(request, task, keyPath, prevThenableState, name, keyOrInd }; try { - if (typeof childSlots === 'number') { - // Matched a resumable element. - resumeElement(request, task, keyPath, childSlots, prevThenableState, type, props, ref); - } else { - renderElement(request, task, keyPath, prevThenableState, type, props, ref); - } + renderElement(request, task, keyPath, prevThenableState, type, props, ref); if (task.replay.pendingTasks === 1 && task.replay.nodes.length > 0 // TODO check remaining slots ) { throw new Error("Couldn't find all resumable slots by key/index during replaying. " + "The tree doesn't match so React will fallback to client rendering."); } + + task.replay.pendingTasks--; } catch (x) { if (typeof x === 'object' && x !== null && (x === SuspenseException || typeof x.then === 'function')) { // Suspend + if (task.node === currentNode) { + // This same element suspended so we need to pop the replay we just added. + task.replay = replay; + } + throw x; - } // Unlike regular render, we don't terminate the siblings if we error + } + + task.replay.pendingTasks--; // Unlike regular render, we don't terminate the siblings if we error // during a replay. That's because this component didn't actually error // in the original prerender. What's unable to complete is the child // replay nodes which might be Suspense boundaries which are able to // absorb the error and we can still continue with siblings. - erroredReplay(request, task.blockedBoundary, x, childNodes, childSlots); - } finally { - task.replay.pendingTasks--; - task.replay = replay; } + + task.replay = replay; } else { // Let's double check that the component type matches. if (type !== REACT_SUSPENSE_TYPE) { - throw new Error('Expected to see a Suspense boundary in this slot. ' + "The tree doesn't match so React will fallback to client rendering."); + var expectedType = 'Suspense'; + throw new Error('Expected the resume to render <' + expectedType + '> in this slot but instead it rendered <' + (getComponentNameFromType(type) || 'Unknown') + '>. ' + "The tree doesn't match so React will fallback to client rendering."); } // Matched a replayable path. @@ -9758,8 +9720,15 @@ prevThenableState, node, childIndex) { function renderNodeDestructiveImpl(request, task, prevThenableState, node, childIndex) { - // Stash the node we're working on. We'll pick up from this task in case + if (task.replay !== null && typeof task.replay.slots === 'number') { + // TODO: Figure out a cheaper place than this hot path to do this check. + var resumeSegmentID = task.replay.slots; + resumeNode(request, task, resumeSegmentID, node, childIndex); + return; + } // Stash the node we're working on. We'll pick up from this task in case // something suspends. + + task.node = node; task.childIndex = childIndex; // Handle object types @@ -9937,24 +9906,26 @@ function replayFragment(request, task, children, childIndex) { if (task.replay.pendingTasks === 1 && task.replay.nodes.length > 0) { throw new Error("Couldn't find all resumable slots by key/index during replaying. " + "The tree doesn't match so React will fallback to client rendering."); } + + task.replay.pendingTasks--; } catch (x) { if (typeof x === 'object' && x !== null && (x === SuspenseException || typeof x.then === 'function')) { // Suspend throw x; - } // Unlike regular render, we don't terminate the siblings if we error + } + + task.replay.pendingTasks--; // Unlike regular render, we don't terminate the siblings if we error // during a replay. That's because this component didn't actually error // in the original prerender. What's unable to complete is the child // replay nodes which might be Suspense boundaries which are able to // absorb the error and we can still continue with siblings. - + // This is an error, stash the component stack if it is null. erroredReplay(request, task.blockedBoundary, x, childNodes, childSlots); - } finally { - task.replay.pendingTasks--; - task.replay = replay; - } // We finished rendering this node, so now we can consume this - // slot. This must happen after in case we rerender this task. + } + task.replay = replay; // We finished rendering this node, so now we can consume this + // slot. This must happen after in case we rerender this task. replayNodes.splice(j, 1); break; @@ -9989,7 +9960,7 @@ function renderChildrenArray(request, task, children, childIndex) { task.treeContext = pushTreeContext(prevTreeContext, totalChildren, i); // We need to use the non-destructive form so that we can safely pop back // up and render the sibling if something suspends. - var resumeSegmentID = resumeSlots[i]; + var resumeSegmentID = resumeSlots[i]; // TODO: If this errors we should still continue with the next sibling. if (typeof resumeSegmentID === 'number') { resumeNode(request, task, resumeSegmentID, node, i); // We finished rendering this node, so now we can consume this @@ -10314,6 +10285,7 @@ function renderNode(request, task, node, childIndex) { task.componentStack = previousComponentStack; } + lastBoundaryErrorComponentStackDev = null; return; } } @@ -10375,6 +10347,7 @@ function erroredTask(request, boundary, error) { } if (boundary === null) { + lastBoundaryErrorComponentStackDev = null; fatalError(request, error); } else { boundary.pendingTasks--; @@ -10396,6 +10369,8 @@ function erroredTask(request, boundary, error) { // We reuse the same queue for errors. request.clientRenderedBoundaries.push(boundary); } + } else { + lastBoundaryErrorComponentStackDev = null; } } @@ -10509,8 +10484,6 @@ function abortTask(task, request, error) { } if (boundary === null) { - request.allPendingTasks--; - if (request.status !== CLOSING && request.status !== CLOSED) { var replay = task.replay; @@ -10519,6 +10492,7 @@ function abortTask(task, request, error) { // the request; logRecoverableError(request, error); fatalError(request, error); + return; } else { // If the shell aborts during a replay, that's not a fatal error. Instead // we should be able to recover by client rendering all the root boundaries in @@ -10529,6 +10503,14 @@ function abortTask(task, request, error) { var errorDigest = logRecoverableError(request, error); abortRemainingReplayNodes(request, null, replay.nodes, replay.slots, error, errorDigest); } + + request.pendingRootTasks--; + + if (request.pendingRootTasks === 0) { + request.onShellError = noop; + var onShellReady = request.onShellReady; + onShellReady(); + } } } } else { @@ -10570,12 +10552,13 @@ function abortTask(task, request, error) { return abortTask(fallbackTask, request, error); }); boundary.fallbackAbortableTasks.clear(); - request.allPendingTasks--; + } - if (request.allPendingTasks === 0) { - var onAllReady = request.onAllReady; - onAllReady(); - } + request.allPendingTasks--; + + if (request.allPendingTasks === 0) { + var onAllReady = request.onAllReady; + onAllReady(); } } @@ -10759,6 +10742,7 @@ function retryRenderTask(request, task, segment) { logPostpone(request, postponeInstance.message); trackPostpone(request, trackedPostpones, task, segment); finishedTask(request, task.blockedBoundary, segment); + lastBoundaryErrorComponentStackDev = null; return; } } @@ -10835,6 +10819,14 @@ function retryReplayTask(request, task) { task.replay.pendingTasks--; task.abortSet.delete(task); erroredReplay(request, task.blockedBoundary, x, task.replay.nodes, task.replay.slots); + request.pendingRootTasks--; + + if (request.pendingRootTasks === 0) { + request.onShellError = noop; + var onShellReady = request.onShellReady; + onShellReady(); + } + request.allPendingTasks--; if (request.allPendingTasks === 0) { diff --git a/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-server-legacy.browser.production.min.js b/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-server-legacy.browser.production.min.js index 3bfe9118b1b45..58d1d3b414b7e 100644 --- a/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-server-legacy.browser.production.min.js +++ b/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-server-legacy.browser.production.min.js @@ -31,11 +31,11 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -'use strict';var ca=require("next/dist/compiled/react-experimental"),ia=require("react-dom");function q(a){for(var b="https://reactjs.org/docs/error-decoder.html?invariant="+a,c=1;c>>16)&65535)<<16)&4294967295;f=f<<15|f>>>17;f=461845907*(f&65535)+((461845907*(f>>>16)&65535)<<16)&4294967295;e^=f;e=e<<13|e>>>19;e=5*(e&65535)+((5*(e>>>16)&65535)<<16)&4294967295;e=(e&65535)+27492+(((e>>>16)+58964&65535)<<16)}f=0;switch(c){case 3:f^=(a.charCodeAt(b+2)&255)<< +'use strict';var da=require("next/dist/compiled/react-experimental"),ja=require("react-dom");function n(a){for(var b="https://reactjs.org/docs/error-decoder.html?invariant="+a,c=1;c>>16)&65535)<<16)&4294967295;f=f<<15|f>>>17;f=461845907*(f&65535)+((461845907*(f>>>16)&65535)<<16)&4294967295;e^=f;e=e<<13|e>>>19;e=5*(e&65535)+((5*(e>>>16)&65535)<<16)&4294967295;e=(e&65535)+27492+(((e>>>16)+58964&65535)<<16)}f=0;switch(c){case 3:f^=(a.charCodeAt(b+2)&255)<< 16;case 2:f^=(a.charCodeAt(b+1)&255)<<8;case 1:f^=a.charCodeAt(b)&255,f=3432918353*(f&65535)+((3432918353*(f>>>16)&65535)<<16)&4294967295,f=f<<15|f>>>17,e^=461845907*(f&65535)+((461845907*(f>>>16)&65535)<<16)&4294967295}e^=a.length;e^=e>>>16;e=2246822507*(e&65535)+((2246822507*(e>>>16)&65535)<<16)&4294967295;e^=e>>>13;e=3266489909*(e&65535)+((3266489909*(e>>>16)&65535)<<16)&4294967295;return(e^e>>>16)>>>0} -var t=Object.assign,v=Object.prototype.hasOwnProperty,ka=RegExp("^[:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD][:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*$"),la={},wa={}; -function xa(a){if(v.call(wa,a))return!0;if(v.call(la,a))return!1;if(ka.test(a))return wa[a]=!0;la[a]=!0;return!1} +var t=Object.assign,w=Object.prototype.hasOwnProperty,la=RegExp("^[:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD][:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*$"),ma={},wa={}; +function xa(a){if(w.call(wa,a))return!0;if(w.call(ma,a))return!1;if(la.test(a))return wa[a]=!0;ma[a]=!0;return!1} var ya=new Set("animationIterationCount aspectRatio borderImageOutset borderImageSlice borderImageWidth boxFlex boxFlexGroup boxOrdinalGroup columnCount columns flex flexGrow flexPositive flexShrink flexNegative flexOrder gridArea gridRow gridRowEnd gridRowSpan gridRowStart gridColumn gridColumnEnd gridColumnSpan gridColumnStart fontWeight lineClamp lineHeight opacity order orphans scale tabSize widows zIndex zoom fillOpacity floodOpacity stopOpacity strokeDasharray strokeDashoffset strokeMiterlimit strokeOpacity strokeWidth MozAnimationIterationCount MozBoxFlex MozBoxFlexGroup MozLineClamp msAnimationIterationCount msFlex msZoom msFlexGrow msFlexNegative msFlexOrder msFlexPositive msFlexShrink msGridColumn msGridColumnSpan msGridRow msGridRowSpan WebkitAnimationIterationCount WebkitBoxFlex WebKitBoxFlexGroup WebkitBoxOrdinalGroup WebkitColumnCount WebkitColumns WebkitFlex WebkitFlexGrow WebkitFlexPositive WebkitFlexShrink WebkitLineClamp".split(" ")),za= new Map([["acceptCharset","accept-charset"],["htmlFor","for"],["httpEquiv","http-equiv"],["crossOrigin","crossorigin"],["accentHeight","accent-height"],["alignmentBaseline","alignment-baseline"],["arabicForm","arabic-form"],["baselineShift","baseline-shift"],["capHeight","cap-height"],["clipPath","clip-path"],["clipRule","clip-rule"],["colorInterpolation","color-interpolation"],["colorInterpolationFilters","color-interpolation-filters"],["colorProfile","color-profile"],["colorRendering","color-rendering"], ["dominantBaseline","dominant-baseline"],["enableBackground","enable-background"],["fillOpacity","fill-opacity"],["fillRule","fill-rule"],["floodColor","flood-color"],["floodOpacity","flood-opacity"],["fontFamily","font-family"],["fontSize","font-size"],["fontSizeAdjust","font-size-adjust"],["fontStretch","font-stretch"],["fontStyle","font-style"],["fontVariant","font-variant"],["fontWeight","font-weight"],["glyphName","glyph-name"],["glyphOrientationHorizontal","glyph-orientation-horizontal"],["glyphOrientationVertical", @@ -43,154 +43,153 @@ new Map([["acceptCharset","accept-charset"],["htmlFor","for"],["httpEquiv","http "shape-rendering"],["stopColor","stop-color"],["stopOpacity","stop-opacity"],["strikethroughPosition","strikethrough-position"],["strikethroughThickness","strikethrough-thickness"],["strokeDasharray","stroke-dasharray"],["strokeDashoffset","stroke-dashoffset"],["strokeLinecap","stroke-linecap"],["strokeLinejoin","stroke-linejoin"],["strokeMiterlimit","stroke-miterlimit"],["strokeOpacity","stroke-opacity"],["strokeWidth","stroke-width"],["textAnchor","text-anchor"],["textDecoration","text-decoration"], ["textRendering","text-rendering"],["transformOrigin","transform-origin"],["underlinePosition","underline-position"],["underlineThickness","underline-thickness"],["unicodeBidi","unicode-bidi"],["unicodeRange","unicode-range"],["unitsPerEm","units-per-em"],["vAlphabetic","v-alphabetic"],["vHanging","v-hanging"],["vIdeographic","v-ideographic"],["vMathematical","v-mathematical"],["vectorEffect","vector-effect"],["vertAdvY","vert-adv-y"],["vertOriginX","vert-origin-x"],["vertOriginY","vert-origin-y"], ["wordSpacing","word-spacing"],["writingMode","writing-mode"],["xmlnsXlink","xmlns:xlink"],["xHeight","x-height"]]),Aa=/["'&<>]/; -function w(a){if("boolean"===typeof a||"number"===typeof a)return""+a;a=""+a;var b=Aa.exec(a);if(b){var c="",d,e=0;for(d=b.index;d")} -function Cb(a,b,c,d,e,f,g,h){var k=null;"function"===typeof d&&("function"===typeof d.$$FORM_ACTION?(e=zb(b),b=d.$$FORM_ACTION(e),h=b.name,d=b.action||"",e=b.encType,f=b.method,g=b.target,k=b.data):(a.push(" ","formAction",'="',Ab,'"'),g=f=e=d=h=null,Db(b,c)));null!=h&&G(a,"name",h);null!=d&&G(a,"formAction",d);null!=e&&G(a,"formEncType",e);null!=f&&G(a,"formMethod",f);null!=g&&G(a,"formTarget",g);return k} -function G(a,b,c){switch(b){case "className":F(a,"class",c);break;case "tabIndex":F(a,"tabindex",c);break;case "dir":case "role":case "viewBox":case "width":case "height":F(a,b,c);break;case "style":ob(a,c);break;case "src":case "href":if(""===c)break;case "action":case "formAction":if(null==c||"function"===typeof c||"symbol"===typeof c||"boolean"===typeof c)break;a.push(" ",b,'="',w(""+c),'"');break;case "defaultValue":case "defaultChecked":case "innerHTML":case "suppressContentEditableWarning":case "suppressHydrationWarning":break; -case "autoFocus":case "multiple":case "muted":yb(a,b.toLowerCase(),c);break;case "xlinkHref":if("function"===typeof c||"symbol"===typeof c||"boolean"===typeof c)break;a.push(" ","xlink:href",'="',w(""+c),'"');break;case "contentEditable":case "spellCheck":case "draggable":case "value":case "autoReverse":case "externalResourcesRequired":case "focusable":case "preserveAlpha":"function"!==typeof c&&"symbol"!==typeof c&&a.push(" ",b,'="',w(c),'"');break;case "allowFullScreen":case "async":case "autoPlay":case "controls":case "default":case "defer":case "disabled":case "disablePictureInPicture":case "disableRemotePlayback":case "formNoValidate":case "hidden":case "loop":case "noModule":case "noValidate":case "open":case "playsInline":case "readOnly":case "required":case "reversed":case "scoped":case "seamless":case "itemScope":c&& -"function"!==typeof c&&"symbol"!==typeof c&&a.push(" ",b,'=""');break;case "capture":case "download":!0===c?a.push(" ",b,'=""'):!1!==c&&"function"!==typeof c&&"symbol"!==typeof c&&a.push(" ",b,'="',w(c),'"');break;case "cols":case "rows":case "size":case "span":"function"!==typeof c&&"symbol"!==typeof c&&!isNaN(c)&&1<=c&&a.push(" ",b,'="',w(c),'"');break;case "rowSpan":case "start":"function"===typeof c||"symbol"===typeof c||isNaN(c)||a.push(" ",b,'="',w(c),'"');break;case "xlinkActuate":F(a,"xlink:actuate", -c);break;case "xlinkArcrole":F(a,"xlink:arcrole",c);break;case "xlinkRole":F(a,"xlink:role",c);break;case "xlinkShow":F(a,"xlink:show",c);break;case "xlinkTitle":F(a,"xlink:title",c);break;case "xlinkType":F(a,"xlink:type",c);break;case "xmlBase":F(a,"xml:base",c);break;case "xmlLang":F(a,"xml:lang",c);break;case "xmlSpace":F(a,"xml:space",c);break;default:if(!(2")} +function Cb(a,b,c,d,e,f,g,h){var k=null;"function"===typeof d&&("function"===typeof d.$$FORM_ACTION?(e=zb(b),b=d.$$FORM_ACTION(e),h=b.name,d=b.action||"",e=b.encType,f=b.method,g=b.target,k=b.data):(a.push(" ","formAction",'="',Ab,'"'),g=f=e=d=h=null,Db(b,c)));null!=h&&E(a,"name",h);null!=d&&E(a,"formAction",d);null!=e&&E(a,"formEncType",e);null!=f&&E(a,"formMethod",f);null!=g&&E(a,"formTarget",g);return k} +function E(a,b,c){switch(b){case "className":D(a,"class",c);break;case "tabIndex":D(a,"tabindex",c);break;case "dir":case "role":case "viewBox":case "width":case "height":D(a,b,c);break;case "style":ob(a,c);break;case "src":case "href":if(""===c)break;case "action":case "formAction":if(null==c||"function"===typeof c||"symbol"===typeof c||"boolean"===typeof c)break;a.push(" ",b,'="',x(""+c),'"');break;case "defaultValue":case "defaultChecked":case "innerHTML":case "suppressContentEditableWarning":case "suppressHydrationWarning":break; +case "autoFocus":case "multiple":case "muted":yb(a,b.toLowerCase(),c);break;case "xlinkHref":if("function"===typeof c||"symbol"===typeof c||"boolean"===typeof c)break;a.push(" ","xlink:href",'="',x(""+c),'"');break;case "contentEditable":case "spellCheck":case "draggable":case "value":case "autoReverse":case "externalResourcesRequired":case "focusable":case "preserveAlpha":"function"!==typeof c&&"symbol"!==typeof c&&a.push(" ",b,'="',x(c),'"');break;case "allowFullScreen":case "async":case "autoPlay":case "controls":case "default":case "defer":case "disabled":case "disablePictureInPicture":case "disableRemotePlayback":case "formNoValidate":case "hidden":case "loop":case "noModule":case "noValidate":case "open":case "playsInline":case "readOnly":case "required":case "reversed":case "scoped":case "seamless":case "itemScope":c&& +"function"!==typeof c&&"symbol"!==typeof c&&a.push(" ",b,'=""');break;case "capture":case "download":!0===c?a.push(" ",b,'=""'):!1!==c&&"function"!==typeof c&&"symbol"!==typeof c&&a.push(" ",b,'="',x(c),'"');break;case "cols":case "rows":case "size":case "span":"function"!==typeof c&&"symbol"!==typeof c&&!isNaN(c)&&1<=c&&a.push(" ",b,'="',x(c),'"');break;case "rowSpan":case "start":"function"===typeof c||"symbol"===typeof c||isNaN(c)||a.push(" ",b,'="',x(c),'"');break;case "xlinkActuate":D(a,"xlink:actuate", +c);break;case "xlinkArcrole":D(a,"xlink:arcrole",c);break;case "xlinkRole":D(a,"xlink:role",c);break;case "xlinkShow":D(a,"xlink:show",c);break;case "xlinkTitle":D(a,"xlink:title",c);break;case "xlinkType":D(a,"xlink:type",c);break;case "xmlBase":D(a,"xml:base",c);break;case "xmlLang":D(a,"xml:lang",c);break;case "xmlSpace":D(a,"xml:space",c);break;default:if(!(2"))} -function Fb(a,b,c,d,e,f,g){var h=b.rel,k=b.href,l=b.precedence;if(3===f||g||null!=b.itemProp||"string"!==typeof h||"string"!==typeof k||""===k)return L(a,b),null;if("stylesheet"===b.rel){if("string"!==typeof l||null!=b.disabled||b.onLoad||b.onError)return L(a,b);f=d.styles.get(l);g=c.styleResources.hasOwnProperty(k)?c.styleResources[k]:void 0;null!==g?(c.styleResources[k]=null,f||(f={precedence:w(l),rules:[],hrefs:[],sheets:new Map},d.styles.set(l,f)),b={state:0,props:t({},b,{"data-precedence":b.precedence, -precedence:null})},g&&(2===g.length&&Gb(b.props,g),(c=d.preloads.stylesheets.get(k))&&0");return null}function Hb(a,b,c){a.push(M(c));for(var d in b)if(v.call(b,d)){var e=b[d];if(null!=e)switch(d){case "children":case "dangerouslySetInnerHTML":throw Error(q(399,c));default:G(a,d,e)}}a.push("/>");return null} -function Ib(a,b){a.push(M("title"));var c=null,d=null,e;for(e in b)if(v.call(b,e)){var f=b[e];if(null!=f)switch(e){case "children":c=f;break;case "dangerouslySetInnerHTML":d=f;break;default:G(a,e,f)}}a.push(">");b=Array.isArray(c)?2>c.length?c[0]:null:c;"function"!==typeof b&&"symbol"!==typeof b&&null!==b&&void 0!==b&&a.push(w(""+b));H(a,d,c);a.push("");return null} -function Jb(a,b){a.push(M("script"));var c=null,d=null,e;for(e in b)if(v.call(b,e)){var f=b[e];if(null!=f)switch(e){case "children":c=f;break;case "dangerouslySetInnerHTML":d=f;break;default:G(a,e,f)}}a.push(">");H(a,d,c);"string"===typeof c&&a.push(w(c));a.push("");return null} -function Kb(a,b,c){a.push(M(c));var d=c=null,e;for(e in b)if(v.call(b,e)){var f=b[e];if(null!=f)switch(e){case "children":c=f;break;case "dangerouslySetInnerHTML":d=f;break;default:G(a,e,f)}}a.push(">");H(a,d,c);return"string"===typeof c?(a.push(w(c)),null):c}var Lb=/^[a-zA-Z][a-zA-Z:_\.\-\d]*$/,Mb=new Map;function M(a){var b=Mb.get(a);if(void 0===b){if(!Lb.test(a))throw Error(q(65,a));b="<"+a;Mb.set(a,b)}return b} -function Nb(a,b,c,d,e,f,g){switch(b){case "div":case "span":case "svg":case "path":case "a":case "g":case "p":case "li":break;case "select":a.push(M("select"));var h=null,k=null,l;for(l in c)if(v.call(c,l)){var p=c[l];if(null!=p)switch(l){case "children":h=p;break;case "dangerouslySetInnerHTML":k=p;break;case "defaultValue":case "value":break;default:G(a,l,p)}}a.push(">");H(a,k,h);return h;case "option":var r=f.selectedValue;a.push(M("option"));var m=null,u=null,I=null,A=null,B;for(B in c)if(v.call(c, -B)){var n=c[B];if(null!=n)switch(B){case "children":m=n;break;case "selected":I=n;break;case "dangerouslySetInnerHTML":A=n;break;case "value":u=n;default:G(a,B,n)}}if(null!=r){var z=null!==u?""+u:Eb(m);if(Ha(r))for(var Z=0;Z");H(a,A,m);return m;case "textarea":a.push(M("textarea"));var J=null,x=null,D=null,C;for(C in c)if(v.call(c,C)){var K=c[C];if(null!=K)switch(C){case "children":D= -K;break;case "value":J=K;break;case "defaultValue":x=K;break;case "dangerouslySetInnerHTML":throw Error(q(91));default:G(a,C,K)}}null===J&&null!==x&&(J=x);a.push(">");if(null!=D){if(null!=J)throw Error(q(92));if(Ha(D)){if(1");null!==pb&&pb.forEach(Bb,a);return null;case "button":a.push(M("button"));var V=null,oa=null,pa=null,qa=null,Sa=null,ra=null,Dc=null,Ta;for(Ta in c)if(v.call(c,Ta)){var ba=c[Ta];if(null!=ba)switch(Ta){case "children":V=ba;break;case "dangerouslySetInnerHTML":oa=ba;break;case "name":pa=ba;break;case "formAction":qa=ba;break;case "formEncType":Sa=ba;break;case "formMethod":ra=ba;break;case "formTarget":Dc=ba;break;default:G(a,Ta,ba)}}var Ec=Cb(a,d,e,qa,Sa,ra,Dc,pa);a.push(">");null!== -Ec&&Ec.forEach(Bb,a);H(a,oa,V);if("string"===typeof V){a.push(w(V));var Fc=null}else Fc=V;return Fc;case "form":a.push(M("form"));var Ua=null,Gc=null,ea=null,Va=null,Wa=null,Xa=null,Ya;for(Ya in c)if(v.call(c,Ya)){var fa=c[Ya];if(null!=fa)switch(Ya){case "children":Ua=fa;break;case "dangerouslySetInnerHTML":Gc=fa;break;case "action":ea=fa;break;case "encType":Va=fa;break;case "method":Wa=fa;break;case "target":Xa=fa;break;default:G(a,Ya,fa)}}var Vb=null,Wb=null;if("function"===typeof ea)if("function"=== -typeof ea.$$FORM_ACTION){var ge=zb(d),Da=ea.$$FORM_ACTION(ge);ea=Da.action||"";Va=Da.encType;Wa=Da.method;Xa=Da.target;Vb=Da.data;Wb=Da.name}else a.push(" ","action",'="',Ab,'"'),Xa=Wa=Va=ea=null,Db(d,e);null!=ea&&G(a,"action",ea);null!=Va&&G(a,"encType",Va);null!=Wa&&G(a,"method",Wa);null!=Xa&&G(a,"target",Xa);a.push(">");null!==Wb&&(a.push('"),null!==Vb&&Vb.forEach(Bb,a));H(a,Gc,Ua);if("string"===typeof Ua){a.push(w(Ua));var Hc=null}else Hc=Ua;return Hc; -case "menuitem":a.push(M("menuitem"));for(var qb in c)if(v.call(c,qb)){var Ic=c[qb];if(null!=Ic)switch(qb){case "children":case "dangerouslySetInnerHTML":throw Error(q(400));default:G(a,qb,Ic)}}a.push(">");return null;case "title":if(3===f.insertionMode||f.tagScope&1||null!=c.itemProp)var Jc=Ib(a,c);else Ib(e.hoistableChunks,c),Jc=null;return Jc;case "link":return Fb(a,c,d,e,g,f.insertionMode,!!(f.tagScope&1));case "script":var Xb=c.async;if("string"!==typeof c.src||!c.src||!Xb||"function"===typeof Xb|| -"symbol"===typeof Xb||c.onLoad||c.onError||3===f.insertionMode||f.tagScope&1||null!=c.itemProp)var Kc=Jb(a,c);else{var rb=c.src;if("module"===c.type){var sb=d.moduleScriptResources;var Lc=e.preloads.moduleScripts}else sb=d.scriptResources,Lc=e.preloads.scripts;var tb=sb.hasOwnProperty(rb)?sb[rb]:void 0;if(null!==tb){sb[rb]=null;var Yb=c;if(tb){2===tb.length&&(Yb=t({},c),Gb(Yb,tb));var Mc=Lc.get(rb);Mc&&(Mc.length=0)}var Nc=[];e.scripts.add(Nc);Jb(Nc,Yb)}g&&a.push("\x3c!-- --\x3e");Kc=null}return Kc; -case "style":var ub=c.precedence,sa=c.href;if(3===f.insertionMode||f.tagScope&1||null!=c.itemProp||"string"!==typeof ub||"string"!==typeof sa||""===sa){a.push(M("style"));var Ea=null,Oc=null,Za;for(Za in c)if(v.call(c,Za)){var vb=c[Za];if(null!=vb)switch(Za){case "children":Ea=vb;break;case "dangerouslySetInnerHTML":Oc=vb;break;default:G(a,Za,vb)}}a.push(">");var $a=Array.isArray(Ea)?2>Ea.length?Ea[0]:null:Ea;"function"!==typeof $a&&"symbol"!==typeof $a&&null!==$a&&void 0!==$a&&a.push(w(""+$a));H(a, -Oc,Ea);a.push("");var Pc=null}else{var ta=e.styles.get(ub);if(null!==(d.styleResources.hasOwnProperty(sa)?d.styleResources[sa]:void 0)){d.styleResources[sa]=null;ta?ta.hrefs.push(w(sa)):(ta={precedence:w(ub),rules:[],hrefs:[w(sa)],sheets:new Map},e.styles.set(ub,ta));var Qc=ta.rules,Fa=null,Rc=null,wb;for(wb in c)if(v.call(c,wb)){var Zb=c[wb];if(null!=Zb)switch(wb){case "children":Fa=Zb;break;case "dangerouslySetInnerHTML":Rc=Zb}}var ab=Array.isArray(Fa)?2>Fa.length?Fa[0]:null:Fa;"function"!== -typeof ab&&"symbol"!==typeof ab&&null!==ab&&void 0!==ab&&Qc.push(w(""+ab));H(Qc,Rc,Fa)}ta&&e.boundaryResources&&e.boundaryResources.styles.add(ta);g&&a.push("\x3c!-- --\x3e");Pc=void 0}return Pc;case "meta":if(3===f.insertionMode||f.tagScope&1||null!=c.itemProp)var Sc=Hb(a,c,"meta");else g&&a.push("\x3c!-- --\x3e"),Sc="string"===typeof c.charSet?Hb(e.charsetChunks,c,"meta"):"viewport"===c.name?Hb(e.preconnectChunks,c,"meta"):Hb(e.hoistableChunks,c,"meta");return Sc;case "listing":case "pre":a.push(M(b)); -var bb=null,cb=null,db;for(db in c)if(v.call(c,db)){var xb=c[db];if(null!=xb)switch(db){case "children":bb=xb;break;case "dangerouslySetInnerHTML":cb=xb;break;default:G(a,db,xb)}}a.push(">");if(null!=cb){if(null!=bb)throw Error(q(60));if("object"!==typeof cb||!("__html"in cb))throw Error(q(61));var ua=cb.__html;null!==ua&&void 0!==ua&&("string"===typeof ua&&0e.highImagePreloads.size)$b.delete(eb),e.highImagePreloads.add(va)}else d.imageResources.hasOwnProperty(eb)||(d.imageResources[eb]=kb,va=[],L(va,{rel:"preload",as:"image",href:E?void 0:P,imageSrcSet:E,imageSizes:Tc,crossOrigin:c.crossOrigin,integrity:c.integrity,type:c.type,fetchPriority:c.fetchPriority,referrerPolicy:c.referrerPolicy}),"high"===c.fetchPriority||10>e.highImagePreloads.size?e.highImagePreloads.add(va):(e.bulkPreloads.add(va),$b.set(eb, +function Fb(a,b,c,d,e,f,g){var h=b.rel,k=b.href,l=b.precedence;if(3===f||g||null!=b.itemProp||"string"!==typeof h||"string"!==typeof k||""===k)return I(a,b),null;if("stylesheet"===b.rel){if("string"!==typeof l||null!=b.disabled||b.onLoad||b.onError)return I(a,b);f=d.styles.get(l);g=c.styleResources.hasOwnProperty(k)?c.styleResources[k]:void 0;null!==g?(c.styleResources[k]=null,f||(f={precedence:x(l),rules:[],hrefs:[],sheets:new Map},d.styles.set(l,f)),b={state:0,props:t({},b,{"data-precedence":b.precedence, +precedence:null})},g&&(2===g.length&&Gb(b.props,g),(c=d.preloads.stylesheets.get(k))&&0");return null}function Hb(a,b,c){a.push(J(c));for(var d in b)if(w.call(b,d)){var e=b[d];if(null!=e)switch(d){case "children":case "dangerouslySetInnerHTML":throw Error(n(399,c));default:E(a,d,e)}}a.push("/>");return null} +function Ib(a,b){a.push(J("title"));var c=null,d=null,e;for(e in b)if(w.call(b,e)){var f=b[e];if(null!=f)switch(e){case "children":c=f;break;case "dangerouslySetInnerHTML":d=f;break;default:E(a,e,f)}}a.push(">");b=Array.isArray(c)?2>c.length?c[0]:null:c;"function"!==typeof b&&"symbol"!==typeof b&&null!==b&&void 0!==b&&a.push(x(""+b));F(a,d,c);a.push("");return null} +function Jb(a,b){a.push(J("script"));var c=null,d=null,e;for(e in b)if(w.call(b,e)){var f=b[e];if(null!=f)switch(e){case "children":c=f;break;case "dangerouslySetInnerHTML":d=f;break;default:E(a,e,f)}}a.push(">");F(a,d,c);"string"===typeof c&&a.push(x(c));a.push("");return null} +function Kb(a,b,c){a.push(J(c));var d=c=null,e;for(e in b)if(w.call(b,e)){var f=b[e];if(null!=f)switch(e){case "children":c=f;break;case "dangerouslySetInnerHTML":d=f;break;default:E(a,e,f)}}a.push(">");F(a,d,c);return"string"===typeof c?(a.push(x(c)),null):c}var Lb=/^[a-zA-Z][a-zA-Z:_\.\-\d]*$/,Mb=new Map;function J(a){var b=Mb.get(a);if(void 0===b){if(!Lb.test(a))throw Error(n(65,a));b="<"+a;Mb.set(a,b)}return b} +function Nb(a,b,c,d,e,f,g){switch(b){case "div":case "span":case "svg":case "path":case "a":case "g":case "p":case "li":break;case "select":a.push(J("select"));var h=null,k=null,l;for(l in c)if(w.call(c,l)){var p=c[l];if(null!=p)switch(l){case "children":h=p;break;case "dangerouslySetInnerHTML":k=p;break;case "defaultValue":case "value":break;default:E(a,l,p)}}a.push(">");F(a,k,h);return h;case "option":var r=f.selectedValue;a.push(J("option"));var m=null,z=null,B=null,R=null,N;for(N in c)if(w.call(c, +N)){var q=c[N];if(null!=q)switch(N){case "children":m=q;break;case "selected":B=q;break;case "dangerouslySetInnerHTML":R=q;break;case "value":z=q;default:E(a,N,q)}}if(null!=r){var u=null!==z?""+z:Eb(m);if(Ha(r))for(var aa=0;aa");F(a,R,m);return m;case "textarea":a.push(J("textarea"));var G=null,O=null,v=null,A;for(A in c)if(w.call(c,A)){var V=c[A];if(null!=V)switch(A){case "children":v= +V;break;case "value":G=V;break;case "defaultValue":O=V;break;case "dangerouslySetInnerHTML":throw Error(n(91));default:E(a,A,V)}}null===G&&null!==O&&(G=O);a.push(">");if(null!=v){if(null!=G)throw Error(n(92));if(Ha(v)){if(1");null!==pb&&pb.forEach(Bb,a);return null;case "button":a.push(J("button"));var W=null,oa=null,pa=null,qa=null,Ra=null,ra=null,Dc=null,Sa;for(Sa in c)if(w.call(c,Sa)){var ca=c[Sa];if(null!=ca)switch(Sa){case "children":W=ca;break;case "dangerouslySetInnerHTML":oa=ca;break;case "name":pa=ca;break;case "formAction":qa=ca;break;case "formEncType":Ra=ca;break;case "formMethod":ra=ca;break;case "formTarget":Dc=ca;break;default:E(a,Sa,ca)}}var Ec=Cb(a,d,e,qa,Ra,ra,Dc,pa);a.push(">");null!== +Ec&&Ec.forEach(Bb,a);F(a,oa,W);if("string"===typeof W){a.push(x(W));var Fc=null}else Fc=W;return Fc;case "form":a.push(J("form"));var Ta=null,Gc=null,ha=null,Ua=null,Va=null,Wa=null,Xa;for(Xa in c)if(w.call(c,Xa)){var ia=c[Xa];if(null!=ia)switch(Xa){case "children":Ta=ia;break;case "dangerouslySetInnerHTML":Gc=ia;break;case "action":ha=ia;break;case "encType":Ua=ia;break;case "method":Va=ia;break;case "target":Wa=ia;break;default:E(a,Xa,ia)}}var Ub=null,Vb=null;if("function"===typeof ha)if("function"=== +typeof ha.$$FORM_ACTION){var he=zb(d),Ca=ha.$$FORM_ACTION(he);ha=Ca.action||"";Ua=Ca.encType;Va=Ca.method;Wa=Ca.target;Ub=Ca.data;Vb=Ca.name}else a.push(" ","action",'="',Ab,'"'),Wa=Va=Ua=ha=null,Db(d,e);null!=ha&&E(a,"action",ha);null!=Ua&&E(a,"encType",Ua);null!=Va&&E(a,"method",Va);null!=Wa&&E(a,"target",Wa);a.push(">");null!==Vb&&(a.push('"),null!==Ub&&Ub.forEach(Bb,a));F(a,Gc,Ta);if("string"===typeof Ta){a.push(x(Ta));var Hc=null}else Hc=Ta;return Hc; +case "menuitem":a.push(J("menuitem"));for(var qb in c)if(w.call(c,qb)){var Ic=c[qb];if(null!=Ic)switch(qb){case "children":case "dangerouslySetInnerHTML":throw Error(n(400));default:E(a,qb,Ic)}}a.push(">");return null;case "title":if(3===f.insertionMode||f.tagScope&1||null!=c.itemProp)var Jc=Ib(a,c);else Ib(e.hoistableChunks,c),Jc=null;return Jc;case "link":return Fb(a,c,d,e,g,f.insertionMode,!!(f.tagScope&1));case "script":var Wb=c.async;if("string"!==typeof c.src||!c.src||!Wb||"function"===typeof Wb|| +"symbol"===typeof Wb||c.onLoad||c.onError||3===f.insertionMode||f.tagScope&1||null!=c.itemProp)var Kc=Jb(a,c);else{var rb=c.src;if("module"===c.type){var sb=d.moduleScriptResources;var Lc=e.preloads.moduleScripts}else sb=d.scriptResources,Lc=e.preloads.scripts;var tb=sb.hasOwnProperty(rb)?sb[rb]:void 0;if(null!==tb){sb[rb]=null;var Xb=c;if(tb){2===tb.length&&(Xb=t({},c),Gb(Xb,tb));var Mc=Lc.get(rb);Mc&&(Mc.length=0)}var Nc=[];e.scripts.add(Nc);Jb(Nc,Xb)}g&&a.push("\x3c!-- --\x3e");Kc=null}return Kc; +case "style":var ub=c.precedence,sa=c.href;if(3===f.insertionMode||f.tagScope&1||null!=c.itemProp||"string"!==typeof ub||"string"!==typeof sa||""===sa){a.push(J("style"));var Da=null,Oc=null,Ya;for(Ya in c)if(w.call(c,Ya)){var vb=c[Ya];if(null!=vb)switch(Ya){case "children":Da=vb;break;case "dangerouslySetInnerHTML":Oc=vb;break;default:E(a,Ya,vb)}}a.push(">");var Za=Array.isArray(Da)?2>Da.length?Da[0]:null:Da;"function"!==typeof Za&&"symbol"!==typeof Za&&null!==Za&&void 0!==Za&&a.push(x(""+Za));F(a, +Oc,Da);a.push("");var Pc=null}else{var ta=e.styles.get(ub);if(null!==(d.styleResources.hasOwnProperty(sa)?d.styleResources[sa]:void 0)){d.styleResources[sa]=null;ta?ta.hrefs.push(x(sa)):(ta={precedence:x(ub),rules:[],hrefs:[x(sa)],sheets:new Map},e.styles.set(ub,ta));var Qc=ta.rules,Ea=null,Rc=null,wb;for(wb in c)if(w.call(c,wb)){var Yb=c[wb];if(null!=Yb)switch(wb){case "children":Ea=Yb;break;case "dangerouslySetInnerHTML":Rc=Yb}}var $a=Array.isArray(Ea)?2>Ea.length?Ea[0]:null:Ea;"function"!== +typeof $a&&"symbol"!==typeof $a&&null!==$a&&void 0!==$a&&Qc.push(x(""+$a));F(Qc,Rc,Ea)}ta&&e.boundaryResources&&e.boundaryResources.styles.add(ta);g&&a.push("\x3c!-- --\x3e");Pc=void 0}return Pc;case "meta":if(3===f.insertionMode||f.tagScope&1||null!=c.itemProp)var Sc=Hb(a,c,"meta");else g&&a.push("\x3c!-- --\x3e"),Sc="string"===typeof c.charSet?Hb(e.charsetChunks,c,"meta"):"viewport"===c.name?Hb(e.preconnectChunks,c,"meta"):Hb(e.hoistableChunks,c,"meta");return Sc;case "listing":case "pre":a.push(J(b)); +var ab=null,bb=null,cb;for(cb in c)if(w.call(c,cb)){var xb=c[cb];if(null!=xb)switch(cb){case "children":ab=xb;break;case "dangerouslySetInnerHTML":bb=xb;break;default:E(a,cb,xb)}}a.push(">");if(null!=bb){if(null!=ab)throw Error(n(60));if("object"!==typeof bb||!("__html"in bb))throw Error(n(61));var ua=bb.__html;null!==ua&&void 0!==ua&&("string"===typeof ua&&0e.highImagePreloads.size)Zb.delete(db),e.highImagePreloads.add(va)}else d.imageResources.hasOwnProperty(db)||(d.imageResources[db]=kb,va=[],I(va,{rel:"preload",as:"image",href:C?void 0:L,imageSrcSet:C,imageSizes:Tc,crossOrigin:c.crossOrigin,integrity:c.integrity,type:c.type,fetchPriority:c.fetchPriority,referrerPolicy:c.referrerPolicy}),"high"===c.fetchPriority||10>e.highImagePreloads.size?e.highImagePreloads.add(va):(e.bulkPreloads.add(va),Zb.set(db, va)))}return Hb(a,c,"img");case "base":case "area":case "br":case "col":case "embed":case "hr":case "keygen":case "param":case "source":case "track":case "wbr":return Hb(a,c,b);case "annotation-xml":case "color-profile":case "font-face":case "font-face-src":case "font-face-uri":case "font-face-format":case "font-face-name":case "missing-glyph":break;case "head":if(2>f.insertionMode&&null===e.headChunks){e.headChunks=[];var Uc=Kb(e.headChunks,c,"head")}else Uc=Kb(a,c,"head");return Uc;case "html":if(0=== -f.insertionMode&&null===e.htmlChunks){e.htmlChunks=[""];var Vc=Kb(e.htmlChunks,c,"html")}else Vc=Kb(a,c,"html");return Vc;default:if(-1!==b.indexOf("-")){a.push(M(b));var ac=null,Wc=null,ha;for(ha in c)if(v.call(c,ha)){var S=c[ha];if(null!=S&&"function"!==typeof S&&"object"!==typeof S&&!1!==S)switch(!0===S&&(S=""),"className"===ha&&(ha="class"),ha){case "children":ac=S;break;case "dangerouslySetInnerHTML":Wc=S;break;case "style":ob(a,S);break;case "suppressContentEditableWarning":case "suppressHydrationWarning":break; -default:xa(ha)&&"function"!==typeof S&&"symbol"!==typeof S&&a.push(" ",ha,'="',w(S),'"')}}a.push(">");H(a,Wc,ac);return ac}}return Kb(a,c,b)}function Ob(a,b){b=b.bootstrapChunks;for(var c=0;c')} +f.insertionMode&&null===e.htmlChunks){e.htmlChunks=[""];var Vc=Kb(e.htmlChunks,c,"html")}else Vc=Kb(a,c,"html");return Vc;default:if(-1!==b.indexOf("-")){a.push(J(b));var $b=null,Wc=null,Fa;for(Fa in c)if(w.call(c,Fa)){var S=c[Fa];if(null!=S){var Xc=Fa;switch(Fa){case "children":$b=S;break;case "dangerouslySetInnerHTML":Wc=S;break;case "style":ob(a,S);break;case "suppressContentEditableWarning":case "suppressHydrationWarning":break;case "className":Xc="class";default:if(xa(Fa)&&"function"!==typeof S&& +"symbol"!==typeof S&&!1!==S){if(!0===S)S="";else if("object"===typeof S)continue;a.push(" ",Xc,'="',x(S),'"')}}}}a.push(">");F(a,Wc,$b);return $b}}return Kb(a,c,b)}function Ob(a,b){b=b.bootstrapChunks;for(var c=0;c')} function Qb(a,b,c,d){switch(c.insertionMode){case 0:case 1:case 2:return a.push('