From d6ba44acc75906884ad59d6493007f9f0b622652 Mon Sep 17 00:00:00 2001 From: Victor Shallangwa <103379966+Don-Vicks@users.noreply.github.com> Date: Sat, 27 Dec 2025 09:49:13 +0100 Subject: [PATCH 1/8] feat(react): implement Buy Now and Cart modes in PaymentButton - Add 'buyNow' and 'cart' commerce modes - Implement product total calculation and list rendering - Update PaymentButton to accept paymentConfig - fix(sdk): resolve RPC stability and lint errors - chore(docs): simplify demo flow --- apps/docs/app/api/rpc-endpoints/route.ts | 3 + apps/docs/app/client-root-provider.tsx | 24 +- .../components/ui/payment-modal-content.tsx | 401 +++++++++++++----- .../src/components/ui/secure-iframe-shell.tsx | 53 ++- packages/react/src/hooks/use-solana-pay.ts | 24 +- packages/react/src/iframe-app/bundle.ts | 2 +- packages/react/src/iframe-app/index.tsx | 9 +- packages/react/src/index.tsx | 139 +++--- packages/react/src/types.ts | 6 +- .../__tests__/utils/sol-conversion.test.ts | 12 +- .../src/core/__tests__/arc-provider.test.tsx | 32 +- .../sdk/src/core/commerce-client-provider.tsx | 16 +- packages/sdk/src/core/error-handler.ts | 12 +- packages/sdk/src/core/web-client.ts | 44 +- .../hooks/__tests__/use-transfer-sol.test.tsx | 19 +- .../__tests__/use-transfer-token.test.tsx | 48 ++- packages/sdk/src/hooks/use-transfer-sol.ts | 2 +- packages/sdk/src/hooks/use-transfer-token.ts | 60 +-- packages/sdk/src/index.ts | 12 +- packages/solana-pay/src/encode-url.ts | 9 +- 20 files changed, 611 insertions(+), 316 deletions(-) create mode 100644 apps/docs/app/api/rpc-endpoints/route.ts diff --git a/apps/docs/app/api/rpc-endpoints/route.ts b/apps/docs/app/api/rpc-endpoints/route.ts new file mode 100644 index 0000000..147128c --- /dev/null +++ b/apps/docs/app/api/rpc-endpoints/route.ts @@ -0,0 +1,3 @@ +import { rpcEndpointsHandler } from '@solana-commerce/react'; + +export const POST = rpcEndpointsHandler; diff --git a/apps/docs/app/client-root-provider.tsx b/apps/docs/app/client-root-provider.tsx index b089a5f..220c623 100644 --- a/apps/docs/app/client-root-provider.tsx +++ b/apps/docs/app/client-root-provider.tsx @@ -1,19 +1,19 @@ 'use client' -import React, { type ReactNode, useMemo, useState } from 'react' -import { QueryClient } from '@tanstack/react-query' import { AppProvider } from '@solana-commerce/connector' import { ArcProvider } from '@solana-commerce/sdk/react' +import { QueryClient } from '@tanstack/react-query' +import { type ReactNode, useMemo, useState } from 'react' // Removed unused createProvider import import { FloatingCommerceButton } from './components/floating-commerce-button' export function ClientRootProvider({ children }: { children: ReactNode }) { const [queryClient] = useState(() => new QueryClient({ - defaultOptions: { - queries: { - staleTime: 5 * 60 * 1000, - retry: 3 - } + defaultOptions: { + queries: { + staleTime: 5 * 60 * 1000, + retry: 3 + } } })) @@ -32,11 +32,11 @@ export function ClientRootProvider({ children }: { children: ReactNode }) { return ( - <> diff --git a/packages/react/src/components/ui/payment-modal-content.tsx b/packages/react/src/components/ui/payment-modal-content.tsx index 8045140..0502c74 100644 --- a/packages/react/src/components/ui/payment-modal-content.tsx +++ b/packages/react/src/components/ui/payment-modal-content.tsx @@ -1,126 +1,293 @@ -import React, { memo } from 'react'; -import { DialogClose } from '../../ui-primitives/react'; -import { getBorderRadius, getModalBorderRadius, sanitizeString, formatSolAmount } from '../../utils'; +import { memo, useCallback, useEffect, useMemo, useRef, useState } from 'react'; +import { ALL_CURRENCIES } from '../../constants/tip-modal'; +import { useAnimationStyles } from '../../hooks/use-animation-styles'; +import { + convertUsdToLamports, + convertUsdToSol, + getBorderRadius, + getDecimals, + getModalBorderRadius +} from '../../utils'; +import { WalletIcon } from '../icons'; +import { QRPaymentContent } from '../iframe/iframe-qr-payment'; +import { WalletPaymentContent } from '../iframe/iframe-wallet-payment'; +import { ActionButton } from '../tip-modal/action-button'; +import { CurrencySelector } from '../tip-modal/currency-selector'; +import { PaymentMethodSelector } from '../tip-modal/payment-method-selector'; +import { TipModalHeader } from '../tip-modal/tip-modal-header'; -import type { PaymentModalContentProps } from '../../types'; +import type { Currency, PaymentMethod, PaymentModalContentProps, TransactionState } from '../../types'; + +type PaymentStep = 'review' | 'payment'; export const PaymentModalContent = memo( - ({ config, theme, totalAmount, paymentUrl, onPayment, onCancel }) => ( -
- {/* Header */} -
- {config.merchant.logo && ( - {sanitizeString(config.merchant.name)} - )} -

- {sanitizeString(config.merchant.name)} -

- {config.merchant.description && ( -

- {sanitizeString(config.merchant.description)} -

- )} -
+ ({ config, theme, totalAmount, onPayment, onCancel, paymentConfig }) => { + // State + const [currentStep, setCurrentStep] = useState('review'); + const [selectedPaymentMethod, setSelectedPaymentMethod] = useState('wallet'); + const [transactionState, setTransactionState] = useState('idle'); - {/* Note: Products removed - focusing on tip flow MVP */} - - {/* QR Code section */} - {config.showQR !== false && ( -
-

QR Code Implementation

-
- )} - - {/* Payment URL */} -

(initialCurrency); + const [currencyDropdownOpen, setCurrencyDropdownOpen] = useState(false); + const [qrAmount, setQrAmount] = useState(0); + + // Derive available currencies + const availableCurrencies = useMemo(() => { + if (config.allowedMints && config.allowedMints.length > 0) { + return ALL_CURRENCIES.filter(c => config.allowedMints?.includes(c.value)); + } + // Default set if no restriction + return ALL_CURRENCIES.filter(c => ['USDC', 'SOL', 'USDC_DEVNET', 'SOL_DEVNET'].includes(c.value)); + }, [config.allowedMints]); + + // Ensure we have products to show + const products = paymentConfig?.products || []; + const hasProducts = products.length > 0; + + // Calculate USD total from products + const totalUsd = useMemo(() => { + if (products.length > 0) { + return products.reduce((acc, curr) => acc + ((curr.price ?? curr.unitAmount ?? 0) * (curr.quantity ?? 1)), 0); + } + return totalAmount; // Fallback if no products (e.g. passed prop) assuming it's USD? + }, [products, totalAmount]); + + // Formatted Total Display + const formattedTotal = useMemo(() => { + return `$${totalUsd.toFixed(2)}`; + }, [totalUsd]); + + // Update QR Amount when currency changes + useEffect(() => { + let isMounted = true; + + const updateAmount = async () => { + const isSol = selectedCurrency === 'SOL' || selectedCurrency === 'SOL_DEVNET'; + if (isSol) { + try { + const solAmount = await convertUsdToSol(totalUsd); + if (isMounted) setQrAmount(solAmount); + } catch (e) { + console.error("Failed to convert USD to SOL", e); + // Fallback? stay 0 or show error + } + } else { + // Stablecoins are assumed 1:1 with USD + if (isMounted) setQrAmount(totalUsd); + } + }; + + updateAmount(); + + return () => { isMounted = false; }; + }, [totalUsd, selectedCurrency]); + + const handleProceedToPayment = () => { + setCurrentStep('payment'); + }; + + // Ref to prevent multiple wallet completion calls + const walletCompletionRef = useRef(false); + + // Reset completion ref on mount + useEffect(() => { + walletCompletionRef.current = false; + }, []); + + // Payment Handler with Conversion + const handleProcessPayment = useCallback(async () => { + let finalAmount = 0; + const isSol = selectedCurrency === 'SOL' || selectedCurrency === 'SOL_DEVNET'; + + try { + if (isSol) { + // Convert USD to Lamports + finalAmount = await convertUsdToLamports(totalUsd); + } else { + // Stablecoin: Convert USD to atomic units (e.g. 6 decimals) + const decimals = getDecimals(selectedCurrency); + finalAmount = Math.round(totalUsd * 10 ** decimals); + } + + onPayment(finalAmount, selectedCurrency); + } catch (e) { + console.error("Payment conversion failed", e); + // Should ideally show error state + } + }, [totalUsd, selectedCurrency, onPayment]); + + const handleWalletPaymentComplete = useCallback(() => { + if (walletCompletionRef.current) return; + walletCompletionRef.current = true; + handleProcessPayment().then(() => { + setTimeout(onCancel, 2000); + }); + }, [handleProcessPayment, onCancel]); + + const handleQRPaymentComplete = useCallback(() => { + handleProcessPayment().then(() => { + setTimeout(onCancel, 2000); + }); + }, [handleProcessPayment, onCancel]); + + // Initialize animation styles + useAnimationStyles(); + + return ( +

- {paymentUrl || 'Generating payment URL...'} -

- - {/* Action buttons */} -
- - - - + {/* Header */} + setCurrentStep('review') : () => { }} + onClose={onCancel} + /> + + {/* Content Body */} +
+ {/* Review Step */} +
+
+ {hasProducts ? ( +
+ {/* Product List */} +
+ {products.map((p, i) => ( +
+
+ {p.name} + {p.quantity > 1 && ( + Qty: {p.quantity} + )} +
+
+ ${((p.price ?? p.unitAmount ?? 0) * (p.quantity ?? 1)).toFixed(2)} +
+
+ ))} +
+ + {/* Total Row */} +
+ Total + {formattedTotal} +
+
+ ) : ( +
+

+ Payment Amount +

+
+ {formattedTotal} +
+
+ )} + + {/* Currency Selection */} + + + {/* Payment Method Selection */} + + + {/* Action Button */} +
+ + Pay {formattedTotal} + +
+
+
+ + {/* Payment Step */} +
+ {selectedPaymentMethod === 'qr' ? ( + console.error(e)} + /> + ) : ( + setTransactionState('success')} + onTransactionError={() => setTransactionState('error')} + onTransactionReset={() => setTransactionState('idle')} + walletIcon={} + /> + )} +
+
-
- ), + ); + }, ); PaymentModalContent.displayName = 'PaymentModalContent'; diff --git a/packages/react/src/components/ui/secure-iframe-shell.tsx b/packages/react/src/components/ui/secure-iframe-shell.tsx index 1809b49..bfc0007 100644 --- a/packages/react/src/components/ui/secure-iframe-shell.tsx +++ b/packages/react/src/components/ui/secure-iframe-shell.tsx @@ -1,12 +1,11 @@ 'use client'; -import { useCallback, useEffect, useMemo, useRef, useState } from 'react'; import { ConnectorClient, useConnectorClient } from '@solana-commerce/connector'; -import { useTransferSOL, useTransferToken, useArcClient, address } from '@solana-commerce/sdk'; +import { useArcClient, useTransferSOL, useTransferToken } from '@solana-commerce/sdk'; +import { useCallback, useEffect, useMemo, useRef, useState } from 'react'; +import { IFRAME_BUNDLE, IFRAME_STYLES } from '../../iframe-app/bundle'; import type { SolanaCommerceConfig, ThemeConfig } from '../../types'; import { CurrencyMap } from '../../types'; -import { IFRAME_BUNDLE } from '../../iframe-app/bundle'; -import { IFRAME_STYLES } from '../../iframe-app/bundle'; import { fetchSolPrice, getModalBorderRadius } from '../../utils'; /** @@ -141,7 +140,7 @@ export function SecureIframeShell({ config, theme, onPayment, onCancel, paymentC ); } -interface SecureIframeShellInnerProps extends SecureIframeShellProps {} +interface SecureIframeShellInnerProps extends SecureIframeShellProps { } function SecureIframeShellInner({ config, theme, onPayment, onCancel, paymentConfig }: SecureIframeShellInnerProps) { // Use the ConnectorClient from context @@ -176,34 +175,57 @@ function SecureIframeShellInner({ config, theme, onPayment, onCancel, paymentCon // Helper to wait for wallet signer to be available const waitForSigner = useCallback( - async (timeoutMs = 3000): Promise => { - // Check if already available + async (timeoutMs = 15000): Promise => { + // Check if already available via Arc client if (walletStateRef.current.signer) return; - if (config.debug) { - console.log('[SecureIframeShell] Waiting for signer to sync...'); - } - - // Wait for signer via polling ref + // Wait for signer via polling const startTime = Date.now(); while (Date.now() - startTime < timeoutMs) { + // Check Arc client ref if (walletStateRef.current.signer) { if (config.debug) { - console.log('[SecureIframeShell] Signer available after', Date.now() - startTime, 'ms'); + console.log('[SecureIframeShell] Signer available via ArcClient after', Date.now() - startTime, 'ms'); } return; } - await new Promise(resolve => setTimeout(resolve, 50)); + + // Fallback: Check ConnectorClient state directly + // (Sometimes ArcClient sync is delayed, but ConnectorClient is the source of truth) + try { + const state = (connectorClient as any).getConnectorState(); + const account = state.accounts?.find((a: any) => a.address === state.selectedAccount); + + // If we have a connected account, we might have a signer capability implicitly + // or ArcClient just hasn't updated yet. + if (state.connected && state.selectedAccount && account) { + // Force update ref if possible? No, but we can verify we "should" be ready + // However, to execute transaction we NEED the adapter/signer. + + // Check if the selected wallet provides a standard adapter that is ready + const wallet = state.selectedWallet; + if (wallet && (wallet.adapter || wallet.signer)) { + // If we have access to adapter/signer here, we can consider it ready + // But ArcClient wraps it. We'll wait a bit more for ArcClient to pick it up. + } + } + } catch (e) { + // Ignore + } + + await new Promise(resolve => setTimeout(resolve, 100)); } console.error('[executePayment] Signer not available. Wallet state:', { connected: walletStateRef.current.connected, address: walletStateRef.current.address, hasSigner: !!walletStateRef.current.signer, + // Log connector state to debug mismatch + connectorConnected: (connectorClient as any)?.getConnectorState?.()?.connected }); throw new Error('Timeout waiting for wallet signer'); }, - [config.debug], + [config.debug, connectorClient], // added connectorClient dependency ); // State to track current payment attempt @@ -662,6 +684,7 @@ function SecureIframeShellInner({ config, theme, onPayment, onCancel, paymentCon totalAmount, paymentUrl, wallets: initialWallets, + paymentConfig, }, '*', ); diff --git a/packages/react/src/hooks/use-solana-pay.ts b/packages/react/src/hooks/use-solana-pay.ts index bded3fd..d638fce 100644 --- a/packages/react/src/hooks/use-solana-pay.ts +++ b/packages/react/src/hooks/use-solana-pay.ts @@ -1,6 +1,6 @@ import { createSolanaPayRequest, SolanaPayRequestOptions, toMinorUnits } from '@solana-commerce/headless'; import { Recipient } from '@solana-commerce/solana-pay'; -import { useMemo } from 'react'; +import { useMemo, useRef } from 'react'; import { Currency, CurrencyMap } from '../types'; import { useAsync } from './use-async'; @@ -22,14 +22,29 @@ function validateCurrency(currency: Currency): void { } export function useSolanaPay(recipient: string, amount: number, currency: Currency, opts?: SolanaPayQROptions) { + // Use a ref to store the reference so it remains stable across re-renders + // unless critical parameters change. + const referenceRef = useRef(null); + const paramsRef = useRef<{ r: string; a: number; c: string } | null>(null); + const requestParams = useMemo(() => { if (!recipient || !amount || !currency) return null; - // Validate currency before proceeding validateCurrency(currency); - // Generate a unique reference for this payment - const reference = `tip-${Math.floor(Math.random() * 1000000)}`; + // check if we need a new reference + const paramsChanged = + !paramsRef.current || + paramsRef.current.r !== recipient || + paramsRef.current.a !== amount || + paramsRef.current.c !== currency; + + if (paramsChanged || !referenceRef.current) { + referenceRef.current = `tip-${Math.floor(Math.random() * 1000000)}`; + paramsRef.current = { r: recipient, a: amount, c: currency }; + } + + const reference = referenceRef.current!; // Get token info from enhanced currency map const tokenInfo = CurrencyMap[currency]; @@ -45,6 +60,7 @@ export function useSolanaPay(recipient: string, amount: number, currency: Curren memo: reference, label: opts?.label ?? 'commerceKit', message: opts?.message, + decimals, // Pass decimals for proper URL encoding }, qrOptions: { size: opts?.size ?? 256, diff --git a/packages/react/src/iframe-app/bundle.ts b/packages/react/src/iframe-app/bundle.ts index e9bd5b6..3475f25 100644 --- a/packages/react/src/iframe-app/bundle.ts +++ b/packages/react/src/iframe-app/bundle.ts @@ -1,5 +1,5 @@ // This file is auto-generated. Do not edit manually. // Generated from: dist/iframe/index.global.js -export const IFRAME_BUNDLE = "\"use strict\";var CommerceIframe=(()=>{var KC=Object.create;var $a=Object.defineProperty;var YC=Object.getOwnPropertyDescriptor;var qC=Object.getOwnPropertyNames;var ZC=Object.getPrototypeOf,XC=Object.prototype.hasOwnProperty;var jC=(e,t,n)=>t in e?$a(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;var B=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),$C=(e,t)=>{for(var n in t)$a(e,n,{get:t[n],enumerable:!0})},mg=(e,t,n,r)=>{if(t&&typeof t==\"object\"||typeof t==\"function\")for(let a of qC(t))!XC.call(e,a)&&a!==n&&$a(e,a,{get:()=>t[a],enumerable:!(r=YC(t,a))||r.enumerable});return e};var R=(e,t,n)=>(n=e!=null?KC(ZC(e)):{},mg(t||!e||!e.__esModule?$a(n,\"default\",{value:e,enumerable:!0}):n,e)),QC=e=>mg($a({},\"__esModule\",{value:!0}),e);var Li=(e,t,n)=>jC(e,typeof t!=\"symbol\"?t+\"\":t,n);var hg=B(w=>{\"use strict\";var mu=Symbol.for(\"react.transitional.element\"),JC=Symbol.for(\"react.portal\"),eS=Symbol.for(\"react.fragment\"),tS=Symbol.for(\"react.strict_mode\"),nS=Symbol.for(\"react.profiler\"),rS=Symbol.for(\"react.consumer\"),aS=Symbol.for(\"react.context\"),oS=Symbol.for(\"react.forward_ref\"),iS=Symbol.for(\"react.suspense\"),cS=Symbol.for(\"react.memo\"),Tg=Symbol.for(\"react.lazy\"),gg=Symbol.iterator;function sS(e){return e===null||typeof e!=\"object\"?null:(e=gg&&e[gg]||e[\"@@iterator\"],typeof e==\"function\"?e:null)}var Rg={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},pg=Object.assign,Cg={};function kr(e,t,n){this.props=e,this.context=t,this.refs=Cg,this.updater=n||Rg}kr.prototype.isReactComponent={};kr.prototype.setState=function(e,t){if(typeof e!=\"object\"&&typeof e!=\"function\"&&e!=null)throw Error(\"takes an object of state variables to update or a function which returns an object of state variables.\");this.updater.enqueueSetState(this,e,t,\"setState\")};kr.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,\"forceUpdate\")};function Sg(){}Sg.prototype=kr.prototype;function gu(e,t,n){this.props=e,this.context=t,this.refs=Cg,this.updater=n||Rg}var Au=gu.prototype=new Sg;Au.constructor=gu;pg(Au,kr.prototype);Au.isPureReactComponent=!0;var Ag=Array.isArray,ee={H:null,A:null,T:null,S:null,V:null},Ng=Object.prototype.hasOwnProperty;function Iu(e,t,n,r,a,o){return n=o.ref,{$$typeof:mu,type:e,key:t,ref:n!==void 0?n:null,props:o}}function uS(e,t){return Iu(e.type,t,void 0,void 0,void 0,e.props)}function _u(e){return typeof e==\"object\"&&e!==null&&e.$$typeof===mu}function lS(e){var t={\"=\":\"=0\",\":\":\"=2\"};return\"$\"+e.replace(/[=:]/g,function(n){return t[n]})}var Ig=/\\/+/g;function fu(e,t){return typeof e==\"object\"&&e!==null&&e.key!=null?lS(\"\"+e.key):t.toString(36)}function _g(){}function dS(e){switch(e.status){case\"fulfilled\":return e.value;case\"rejected\":throw e.reason;default:switch(typeof e.status==\"string\"?e.then(_g,_g):(e.status=\"pending\",e.then(function(t){e.status===\"pending\"&&(e.status=\"fulfilled\",e.value=t)},function(t){e.status===\"pending\"&&(e.status=\"rejected\",e.reason=t)})),e.status){case\"fulfilled\":return e.value;case\"rejected\":throw e.reason}}throw e}function Fr(e,t,n,r,a){var o=typeof e;(o===\"undefined\"||o===\"boolean\")&&(e=null);var i=!1;if(e===null)i=!0;else switch(o){case\"bigint\":case\"string\":case\"number\":i=!0;break;case\"object\":switch(e.$$typeof){case mu:case JC:i=!0;break;case Tg:return i=e._init,Fr(i(e._payload),t,n,r,a)}}if(i)return a=a(e),i=r===\"\"?\".\"+fu(e,0):r,Ag(a)?(n=\"\",i!=null&&(n=i.replace(Ig,\"$&/\")+\"/\"),Fr(a,t,n,\"\",function(u){return u})):a!=null&&(_u(a)&&(a=uS(a,n+(a.key==null||e&&e.key===a.key?\"\":(\"\"+a.key).replace(Ig,\"$&/\")+\"/\")+i)),t.push(a)),1;i=0;var c=r===\"\"?\".\":r+\":\";if(Ag(e))for(var s=0;s{\"use strict\";Dg.exports=hg()});var Pg=B(te=>{\"use strict\";function pu(e,t){var n=e.length;e.push(t);e:for(;0>>1,a=e[r];if(0>>1;rBi(c,n))sBi(u,c)?(e[r]=u,e[s]=n,r=s):(e[r]=c,e[i]=n,r=i);else if(sBi(u,n))e[r]=u,e[s]=n,r=s;else break e}}return t}function Bi(e,t){var n=e.sortIndex-t.sortIndex;return n!==0?n:e.id-t.id}te.unstable_now=void 0;typeof performance==\"object\"&&typeof performance.now==\"function\"?(yg=performance,te.unstable_now=function(){return yg.now()}):(Eu=Date,Og=Eu.now(),te.unstable_now=function(){return Eu.now()-Og});var yg,Eu,Og,Jt=[],Dn=[],gS=1,ot=null,ye=3,Cu=!1,Qa=!1,Ja=!1,Su=!1,bg=typeof setTimeout==\"function\"?setTimeout:null,wg=typeof clearTimeout==\"function\"?clearTimeout:null,Mg=typeof setImmediate<\"u\"?setImmediate:null;function Pi(e){for(var t=vt(Dn);t!==null;){if(t.callback===null)zi(Dn);else if(t.startTime<=e)zi(Dn),t.sortIndex=t.expirationTime,pu(Jt,t);else break;t=vt(Dn)}}function Nu(e){if(Ja=!1,Pi(e),!Qa)if(vt(Jt)!==null)Qa=!0,Hr||(Hr=!0,Gr());else{var t=vt(Dn);t!==null&&hu(Nu,t.startTime-e)}}var Hr=!1,eo=-1,Lg=5,Ug=-1;function Bg(){return Su?!0:!(te.unstable_now()-Uge&&Bg());){var r=ot.callback;if(typeof r==\"function\"){ot.callback=null,ye=ot.priorityLevel;var a=r(ot.expirationTime<=e);if(e=te.unstable_now(),typeof a==\"function\"){ot.callback=a,Pi(e),t=!0;break t}ot===vt(Jt)&&zi(Jt),Pi(e)}else zi(Jt);ot=vt(Jt)}if(ot!==null)t=!0;else{var o=vt(Dn);o!==null&&hu(Nu,o.startTime-e),t=!1}}break e}finally{ot=null,ye=n,Cu=!1}t=void 0}}finally{t?Gr():Hr=!1}}}var Gr;typeof Mg==\"function\"?Gr=function(){Mg(Tu)}:typeof MessageChannel<\"u\"?(Ru=new MessageChannel,vg=Ru.port2,Ru.port1.onmessage=Tu,Gr=function(){vg.postMessage(null)}):Gr=function(){bg(Tu,0)};var Ru,vg;function hu(e,t){eo=bg(function(){e(te.unstable_now())},t)}te.unstable_IdlePriority=5;te.unstable_ImmediatePriority=1;te.unstable_LowPriority=4;te.unstable_NormalPriority=3;te.unstable_Profiling=null;te.unstable_UserBlockingPriority=2;te.unstable_cancelCallback=function(e){e.callback=null};te.unstable_forceFrameRate=function(e){0>e||125r?(e.sortIndex=n,pu(Dn,e),vt(Jt)===null&&e===vt(Dn)&&(Ja?(wg(eo),eo=-1):Ja=!0,hu(Nu,n-r))):(e.sortIndex=a,pu(Jt,e),Qa||Cu||(Qa=!0,Hr||(Hr=!0,Gr()))),e};te.unstable_shouldYield=Bg;te.unstable_wrapCallback=function(e){var t=ye;return function(){var n=ye;ye=t;try{return e.apply(this,arguments)}finally{ye=n}}}});var xg=B((Ab,zg)=>{\"use strict\";zg.exports=Pg()});var kg=B(Ue=>{\"use strict\";var AS=x();function Fg(e){var t=\"https://react.dev/errors/\"+e;if(1{\"use strict\";function Gg(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>\"u\"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!=\"function\"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(Gg)}catch(e){console.error(e)}}Gg(),Hg.exports=kg()});var KE=B(is=>{\"use strict\";var Ee=xg(),dI=x(),ES=Wg();function p(e){var t=\"https://react.dev/errors/\"+e;if(1jr||(e.current=sl[jr],sl[jr]=null,jr--)}function re(e,t){jr++,sl[jr]=e.current,e.current=t}var Ut=zt(null),Mo=zt(null),kn=zt(null),Ac=zt(null);function Ic(e,t){switch(re(kn,t),re(Mo,e),re(Ut,null),t.nodeType){case 9:case 11:e=(e=t.documentElement)&&(e=e.namespaceURI)?$A(e):0;break;default:if(e=t.tagName,t=t.namespaceURI)t=$A(t),e=LE(t,e);else switch(e){case\"svg\":e=1;break;case\"math\":e=2;break;default:e=0}}Ce(Ut),re(Ut,e)}function Aa(){Ce(Ut),Ce(Mo),Ce(kn)}function ul(e){e.memoizedState!==null&&re(Ac,e);var t=Ut.current,n=LE(t,e.type);t!==n&&(re(Mo,e),re(Ut,n))}function _c(e){Mo.current===e&&(Ce(Ut),Ce(Mo)),Ac.current===e&&(Ce(Ac),Fo._currentValue=fr)}var ll=Object.prototype.hasOwnProperty,ed=Ee.unstable_scheduleCallback,Du=Ee.unstable_cancelCallback,NS=Ee.unstable_shouldYield,hS=Ee.unstable_requestPaint,Bt=Ee.unstable_now,DS=Ee.unstable_getCurrentPriorityLevel,_I=Ee.unstable_ImmediatePriority,EI=Ee.unstable_UserBlockingPriority,Ec=Ee.unstable_NormalPriority,yS=Ee.unstable_LowPriority,TI=Ee.unstable_IdlePriority,OS=Ee.log,MS=Ee.unstable_setDisableYieldValue,Vo=null,Xe=null;function Pn(e){if(typeof OS==\"function\"&&MS(e),Xe&&typeof Xe.setStrictMode==\"function\")try{Xe.setStrictMode(Vo,e)}catch{}}var je=Math.clz32?Math.clz32:wS,vS=Math.log,bS=Math.LN2;function wS(e){return e>>>=0,e===0?32:31-(vS(e)/bS|0)|0}var ki=256,Gi=4194304;function ur(e){var t=e&42;if(t!==0)return t;switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:return 64;case 128:return 128;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return e&4194048;case 4194304:case 8388608:case 16777216:case 33554432:return e&62914560;case 67108864:return 67108864;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 0;default:return e}}function Kc(e,t,n){var r=e.pendingLanes;if(r===0)return 0;var a=0,o=e.suspendedLanes,i=e.pingedLanes;e=e.warmLanes;var c=r&134217727;return c!==0?(r=c&~o,r!==0?a=ur(r):(i&=c,i!==0?a=ur(i):n||(n=c&~e,n!==0&&(a=ur(n))))):(c=r&~o,c!==0?a=ur(c):i!==0?a=ur(i):n||(n=r&~e,n!==0&&(a=ur(n)))),a===0?0:t!==0&&t!==a&&(t&o)===0&&(o=a&-a,n=t&-t,o>=n||o===32&&(n&4194048)!==0)?t:a}function Ko(e,t){return(e.pendingLanes&~(e.suspendedLanes&~e.pingedLanes)&t)===0}function LS(e,t){switch(e){case 1:case 2:case 4:case 8:case 64:return t+250;case 16:case 32:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return t+5e3;case 4194304:case 8388608:case 16777216:case 33554432:return-1;case 67108864:case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}function RI(){var e=ki;return ki<<=1,(ki&4194048)===0&&(ki=256),e}function pI(){var e=Gi;return Gi<<=1,(Gi&62914560)===0&&(Gi=4194304),e}function yu(e){for(var t=[],n=0;31>n;n++)t.push(e);return t}function Yo(e,t){e.pendingLanes|=t,t!==268435456&&(e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0)}function US(e,t,n,r,a,o){var i=e.pendingLanes;e.pendingLanes=n,e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0,e.expiredLanes&=n,e.entangledLanes&=n,e.errorRecoveryDisabledLanes&=n,e.shellSuspendCounter=0;var c=e.entanglements,s=e.expirationTimes,u=e.hiddenUpdates;for(n=i&~n;0)\":-1a||s[r]!==u[a]){var d=`\n`+s[r].replace(\" at new \",\" at \");return e.displayName&&d.includes(\"\")&&(d=d.replace(\"\",e.displayName)),d}while(1<=r&&0<=a);break}}}finally{Mu=!1,Error.prepareStackTrace=n}return(n=e?e.displayName||e.name:\"\")?Yr(n):\"\"}function kS(e){switch(e.tag){case 26:case 27:case 5:return Yr(e.type);case 16:return Yr(\"Lazy\");case 13:return Yr(\"Suspense\");case 19:return Yr(\"SuspenseList\");case 0:case 15:return vu(e.type,!1);case 11:return vu(e.type.render,!1);case 1:return vu(e.type,!0);case 31:return Yr(\"Activity\");default:return\"\"}}function jg(e){try{var t=\"\";do t+=kS(e),e=e.return;while(e);return t}catch(n){return`\nError generating stack: `+n.message+`\n`+n.stack}}function ct(e){switch(typeof e){case\"bigint\":case\"boolean\":case\"number\":case\"string\":case\"undefined\":return e;case\"object\":return e;default:return\"\"}}function yI(e){var t=e.type;return(e=e.nodeName)&&e.toLowerCase()===\"input\"&&(t===\"checkbox\"||t===\"radio\")}function GS(e){var t=yI(e)?\"checked\":\"value\",n=Object.getOwnPropertyDescriptor(e.constructor.prototype,t),r=\"\"+e[t];if(!e.hasOwnProperty(t)&&typeof n<\"u\"&&typeof n.get==\"function\"&&typeof n.set==\"function\"){var a=n.get,o=n.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return a.call(this)},set:function(i){r=\"\"+i,o.call(this,i)}}),Object.defineProperty(e,t,{enumerable:n.enumerable}),{getValue:function(){return r},setValue:function(i){r=\"\"+i},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}function Tc(e){e._valueTracker||(e._valueTracker=GS(e))}function OI(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),r=\"\";return e&&(r=yI(e)?e.checked?\"true\":\"false\":e.value),e=r,e!==n?(t.setValue(e),!0):!1}function Rc(e){if(e=e||(typeof document<\"u\"?document:void 0),typeof e>\"u\")return null;try{return e.activeElement||e.body}catch{return e.body}}var HS=/[\\n\"\\\\]/g;function lt(e){return e.replace(HS,function(t){return\"\\\\\"+t.charCodeAt(0).toString(16)+\" \"})}function fl(e,t,n,r,a,o,i,c){e.name=\"\",i!=null&&typeof i!=\"function\"&&typeof i!=\"symbol\"&&typeof i!=\"boolean\"?e.type=i:e.removeAttribute(\"type\"),t!=null?i===\"number\"?(t===0&&e.value===\"\"||e.value!=t)&&(e.value=\"\"+ct(t)):e.value!==\"\"+ct(t)&&(e.value=\"\"+ct(t)):i!==\"submit\"&&i!==\"reset\"||e.removeAttribute(\"value\"),t!=null?ml(e,i,ct(t)):n!=null?ml(e,i,ct(n)):r!=null&&e.removeAttribute(\"value\"),a==null&&o!=null&&(e.defaultChecked=!!o),a!=null&&(e.checked=a&&typeof a!=\"function\"&&typeof a!=\"symbol\"),c!=null&&typeof c!=\"function\"&&typeof c!=\"symbol\"&&typeof c!=\"boolean\"?e.name=\"\"+ct(c):e.removeAttribute(\"name\")}function MI(e,t,n,r,a,o,i,c){if(o!=null&&typeof o!=\"function\"&&typeof o!=\"symbol\"&&typeof o!=\"boolean\"&&(e.type=o),t!=null||n!=null){if(!(o!==\"submit\"&&o!==\"reset\"||t!=null))return;n=n!=null?\"\"+ct(n):\"\",t=t!=null?\"\"+ct(t):n,c||t===e.value||(e.value=t),e.defaultValue=t}r=r??a,r=typeof r!=\"function\"&&typeof r!=\"symbol\"&&!!r,e.checked=c?e.checked:!!r,e.defaultChecked=!!r,i!=null&&typeof i!=\"function\"&&typeof i!=\"symbol\"&&typeof i!=\"boolean\"&&(e.name=i)}function ml(e,t,n){t===\"number\"&&Rc(e.ownerDocument)===e||e.defaultValue===\"\"+n||(e.defaultValue=\"\"+n)}function sa(e,t,n,r){if(e=e.options,t){t={};for(var a=0;a\"u\"||typeof window.document>\"u\"||typeof window.document.createElement>\"u\"),Al=!1;if(fn)try{Wr={},Object.defineProperty(Wr,\"passive\",{get:function(){Al=!0}}),window.addEventListener(\"test\",Wr,Wr),window.removeEventListener(\"test\",Wr,Wr)}catch{Al=!1}var Wr,zn=null,id=null,ac=null;function UI(){if(ac)return ac;var e,t=id,n=t.length,r,a=\"value\"in zn?zn.value:zn.textContent,o=a.length;for(e=0;e=Ao),rA=\" \",aA=!1;function PI(e,t){switch(e){case\"keyup\":return IN.indexOf(t.keyCode)!==-1;case\"keydown\":return t.keyCode!==229;case\"keypress\":case\"mousedown\":case\"focusout\":return!0;default:return!1}}function zI(e){return e=e.detail,typeof e==\"object\"&&\"data\"in e?e.data:null}var Jr=!1;function EN(e,t){switch(e){case\"compositionend\":return zI(t);case\"keypress\":return t.which!==32?null:(aA=!0,rA);case\"textInput\":return e=t.data,e===rA&&aA?null:e;default:return null}}function TN(e,t){if(Jr)return e===\"compositionend\"||!sd&&PI(e,t)?(e=UI(),ac=id=zn=null,Jr=!1,e):null;switch(e){case\"paste\":return null;case\"keypress\":if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1=t)return{node:n,offset:t-e};e=r}e:{for(;n;){if(n.nextSibling){n=n.nextSibling;break e}n=n.parentNode}n=void 0}n=sA(n)}}function GI(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?GI(e,t.parentNode):\"contains\"in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function HI(e){e=e!=null&&e.ownerDocument!=null&&e.ownerDocument.defaultView!=null?e.ownerDocument.defaultView:window;for(var t=Rc(e.document);t instanceof e.HTMLIFrameElement;){try{var n=typeof t.contentWindow.location.href==\"string\"}catch{n=!1}if(n)e=t.contentWindow;else break;t=Rc(e.document)}return t}function ud(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&(t===\"input\"&&(e.type===\"text\"||e.type===\"search\"||e.type===\"tel\"||e.type===\"url\"||e.type===\"password\")||t===\"textarea\"||e.contentEditable===\"true\")}var yN=fn&&\"documentMode\"in document&&11>=document.documentMode,ea=null,Il=null,_o=null,_l=!1;function lA(e,t,n){var r=n.window===n?n.document:n.nodeType===9?n:n.ownerDocument;_l||ea==null||ea!==Rc(r)||(r=ea,\"selectionStart\"in r&&ud(r)?r={start:r.selectionStart,end:r.selectionEnd}:(r=(r.ownerDocument&&r.ownerDocument.defaultView||window).getSelection(),r={anchorNode:r.anchorNode,anchorOffset:r.anchorOffset,focusNode:r.focusNode,focusOffset:r.focusOffset}),_o&&wo(_o,r)||(_o=r,r=xc(Il,\"onSelect\"),0>=i,a-=i,on=1<<32-je(t)+a|n<o?o:8;var i=v.T,c={};v.T=c,vd(e,!1,t,n);try{var s=a(),u=v.S;if(u!==null&&u(c,s),s!==null&&typeof s==\"object\"&&typeof s.then==\"function\"){var d=PN(s,r);So(e,t,d,$e(e))}else So(e,t,r,$e(e))}catch(f){So(e,t,{then:function(){},status:\"rejected\",reason:f},$e())}finally{H.p=o,v.T=i}}function GN(){}function vl(e,t,n,r){if(e.tag!==5)throw Error(p(476));var a=y_(e).queue;D_(e,a,t,fr,n===null?GN:function(){return O_(e),n(r)})}function y_(e){var t=e.memoizedState;if(t!==null)return t;t={memoizedState:fr,baseState:fr,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:mn,lastRenderedState:fr},next:null};var n={};return t.next={memoizedState:n,baseState:n,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:mn,lastRenderedState:n},next:null},e.memoizedState=t,e=e.alternate,e!==null&&(e.memoizedState=t),t}function O_(e){var t=y_(e).next.queue;So(e,t,{},$e())}function Md(){return Me(Fo)}function M_(){return de().memoizedState}function v_(){return de().memoizedState}function HN(e){for(var t=e.return;t!==null;){switch(t.tag){case 24:case 3:var n=$e();e=Gn(n);var r=Hn(t,e,n);r!==null&&(Qe(r,t,n),Ro(r,t,n)),t={cache:Ad()},e.payload=t;return}t=t.return}}function WN(e,t,n){var r=$e();n={lane:r,revertLane:0,action:n,hasEagerState:!1,eagerState:null,next:null},es(e)?w_(t,n):(n=dd(e,t,n,r),n!==null&&(Qe(n,e,r),L_(n,t,r)))}function b_(e,t,n){var r=$e();So(e,t,n,r)}function So(e,t,n,r){var a={lane:r,revertLane:0,action:n,hasEagerState:!1,eagerState:null,next:null};if(es(e))w_(t,a);else{var o=e.alternate;if(e.lanes===0&&(o===null||o.lanes===0)&&(o=t.lastRenderedReducer,o!==null))try{var i=t.lastRenderedState,c=o(i,n);if(a.hasEagerState=!0,a.eagerState=c,Je(c,i))return jc(e,t,a,0),$===null&&Xc(),!1}catch{}finally{}if(n=dd(e,t,a,r),n!==null)return Qe(n,e,r),L_(n,t,r),!0}return!1}function vd(e,t,n,r){if(r={lane:2,revertLane:xd(),action:r,hasEagerState:!1,eagerState:null,next:null},es(e)){if(t)throw Error(p(479))}else t=dd(e,n,r,2),t!==null&&Qe(t,e,2)}function es(e){var t=e.alternate;return e===L||t!==null&&t===L}function w_(e,t){da=Dc=!0;var n=e.pending;n===null?t.next=t:(t.next=n.next,n.next=t),e.pending=t}function L_(e,t,n){if((n&4194048)!==0){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,SI(e,n)}}var Oc={readContext:Me,use:Qc,useCallback:se,useContext:se,useEffect:se,useImperativeHandle:se,useLayoutEffect:se,useInsertionEffect:se,useMemo:se,useReducer:se,useRef:se,useState:se,useDebugValue:se,useDeferredValue:se,useTransition:se,useSyncExternalStore:se,useId:se,useHostTransitionStatus:se,useFormState:se,useActionState:se,useOptimistic:se,useMemoCache:se,useCacheRefresh:se},U_={readContext:Me,use:Qc,useCallback:function(e,t){return xe().memoizedState=[e,t===void 0?null:t],e},useContext:Me,useEffect:DA,useImperativeHandle:function(e,t,n){n=n!=null?n.concat([e]):null,uc(4194308,4,p_.bind(null,t,e),n)},useLayoutEffect:function(e,t){return uc(4194308,4,e,t)},useInsertionEffect:function(e,t){uc(4,2,e,t)},useMemo:function(e,t){var n=xe();t=t===void 0?null:t;var r=e();if(pr){Pn(!0);try{e()}finally{Pn(!1)}}return n.memoizedState=[r,t],r},useReducer:function(e,t,n){var r=xe();if(n!==void 0){var a=n(t);if(pr){Pn(!0);try{n(t)}finally{Pn(!1)}}}else a=t;return r.memoizedState=r.baseState=a,e={pending:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:a},r.queue=e,e=e.dispatch=WN.bind(null,L,e),[r.memoizedState,e]},useRef:function(e){var t=xe();return e={current:e},t.memoizedState=e},useState:function(e){e=Ol(e);var t=e.queue,n=b_.bind(null,L,t);return t.dispatch=n,[e.memoizedState,n]},useDebugValue:yd,useDeferredValue:function(e,t){var n=xe();return Od(n,e,t)},useTransition:function(){var e=Ol(!1);return e=D_.bind(null,L,e.queue,!0,!1),xe().memoizedState=e,[!1,e]},useSyncExternalStore:function(e,t,n){var r=L,a=xe();if(G){if(n===void 0)throw Error(p(407));n=n()}else{if(n=t(),$===null)throw Error(p(349));(F&124)!==0||c_(r,t,n)}a.memoizedState=n;var o={value:n,getSnapshot:t};return a.queue=o,DA(u_.bind(null,r,o,e),[e]),r.flags|=2048,Ra(9,Jc(),s_.bind(null,r,o,n,t),null),n},useId:function(){var e=xe(),t=$.identifierPrefix;if(G){var n=cn,r=on;n=(r&~(1<<32-je(r)-1)).toString(32)+n,t=\"\\xAB\"+t+\"R\"+n,n=yc++,0M?(k=h,h=null):k=h.sibling;var U=l(A,h,I[M],_);if(U===null){h===null&&(h=k);break}e&&h&&U.alternate===null&&t(A,h),g=o(U,g,M),y===null?C=U:y.sibling=U,y=U,h=k}if(M===I.length)return n(A,h),G&&lr(A,M),C;if(h===null){for(;MM?(k=h,h=null):k=h.sibling;var Ae=l(A,h,U.value,_);if(Ae===null){h===null&&(h=k);break}e&&h&&Ae.alternate===null&&t(A,h),g=o(Ae,g,M),y===null?C=Ae:y.sibling=Ae,y=Ae,h=k}if(U.done)return n(A,h),G&&lr(A,M),C;if(h===null){for(;!U.done;M++,U=I.next())U=f(A,U.value,_),U!==null&&(g=o(U,g,M),y===null?C=U:y.sibling=U,y=U);return G&&lr(A,M),C}for(h=r(h);!U.done;M++,U=I.next())U=m(h,A,M,U.value,_),U!==null&&(e&&U.alternate!==null&&h.delete(U.key===null?M:U.key),g=o(U,g,M),y===null?C=U:y.sibling=U,y=U);return e&&h.forEach(function(Xa){return t(A,Xa)}),G&&lr(A,M),C}function D(A,g,I,_){if(typeof I==\"object\"&&I!==null&&I.type===Xr&&I.key===null&&(I=I.props.children),typeof I==\"object\"&&I!==null){switch(I.$$typeof){case Fi:e:{for(var C=I.key;g!==null;){if(g.key===C){if(C=I.type,C===Xr){if(g.tag===7){n(A,g.sibling),_=a(g,I.props.children),_.return=A,A=_;break e}}else if(g.elementType===C||typeof C==\"object\"&&C!==null&&C.$$typeof===vn&&yA(C)===g.type){n(A,g.sibling),_=a(g,I.props),oo(_,I),_.return=A,A=_;break e}n(A,g);break}else t(A,g);g=g.sibling}I.type===Xr?(_=mr(I.props.children,A.mode,_,I.key),_.return=A,A=_):(_=ic(I.type,I.key,I.props,null,A.mode,_),oo(_,I),_.return=A,A=_)}return i(A);case lo:e:{for(C=I.key;g!==null;){if(g.key===C)if(g.tag===4&&g.stateNode.containerInfo===I.containerInfo&&g.stateNode.implementation===I.implementation){n(A,g.sibling),_=a(g,I.children||[]),_.return=A,A=_;break e}else{n(A,g);break}else t(A,g);g=g.sibling}_=xu(I,A.mode,_),_.return=A,A=_}return i(A);case vn:return C=I._init,I=C(I._payload),D(A,g,I,_)}if(fo(I))return E(A,g,I,_);if(no(I)){if(C=no(I),typeof C!=\"function\")throw Error(p(150));return I=C.call(I),T(A,g,I,_)}if(typeof I.then==\"function\")return D(A,g,Zi(I),_);if(I.$$typeof===an)return D(A,g,Yi(A,I),_);Xi(A,I)}return typeof I==\"string\"&&I!==\"\"||typeof I==\"number\"||typeof I==\"bigint\"?(I=\"\"+I,g!==null&&g.tag===6?(n(A,g.sibling),_=a(g,I),_.return=A,A=_):(n(A,g),_=zu(I,A.mode,_),_.return=A,A=_),i(A)):n(A,g)}return function(A,g,I,_){try{Bo=0;var C=D(A,g,I,_);return ma=null,C}catch(h){if(h===Qo||h===$c)throw h;var y=Ze(29,h,null,A.mode);return y.lanes=_,y.return=A,y}finally{}}}var pa=P_(!0),z_=P_(!1),mt=zt(null),Pt=null;function Ln(e){var t=e.alternate;re(_e,_e.current&1),re(mt,e),Pt===null&&(t===null||Ta.current!==null||t.memoizedState!==null)&&(Pt=e)}function x_(e){if(e.tag===22){if(re(_e,_e.current),re(mt,e),Pt===null){var t=e.alternate;t!==null&&t.memoizedState!==null&&(Pt=e)}}else Un(e)}function Un(){re(_e,_e.current),re(mt,mt.current)}function un(e){Ce(mt),Pt===e&&(Pt=null),Ce(_e)}var _e=zt(0);function Mc(e){for(var t=e;t!==null;){if(t.tag===13){var n=t.memoizedState;if(n!==null&&(n=n.dehydrated,n===null||n.data===\"$?\"||ql(n)))return t}else if(t.tag===19&&t.memoizedProps.revealOrder!==void 0){if((t.flags&128)!==0)return t}else if(t.child!==null){t.child.return=t,t=t.child;continue}if(t===e)break;for(;t.sibling===null;){if(t.return===null||t.return===e)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}return null}function Gu(e,t,n,r){t=e.memoizedState,n=n(r,t),n=n==null?t:J({},t,n),e.memoizedState=n,e.lanes===0&&(e.updateQueue.baseState=n)}var bl={enqueueSetState:function(e,t,n){e=e._reactInternals;var r=$e(),a=Gn(r);a.payload=t,n!=null&&(a.callback=n),t=Hn(e,a,r),t!==null&&(Qe(t,e,r),Ro(t,e,r))},enqueueReplaceState:function(e,t,n){e=e._reactInternals;var r=$e(),a=Gn(r);a.tag=1,a.payload=t,n!=null&&(a.callback=n),t=Hn(e,a,r),t!==null&&(Qe(t,e,r),Ro(t,e,r))},enqueueForceUpdate:function(e,t){e=e._reactInternals;var n=$e(),r=Gn(n);r.tag=2,t!=null&&(r.callback=t),t=Hn(e,r,n),t!==null&&(Qe(t,e,n),Ro(t,e,n))}};function OA(e,t,n,r,a,o,i){return e=e.stateNode,typeof e.shouldComponentUpdate==\"function\"?e.shouldComponentUpdate(r,o,i):t.prototype&&t.prototype.isPureReactComponent?!wo(n,r)||!wo(a,o):!0}function MA(e,t,n,r){e=t.state,typeof t.componentWillReceiveProps==\"function\"&&t.componentWillReceiveProps(n,r),typeof t.UNSAFE_componentWillReceiveProps==\"function\"&&t.UNSAFE_componentWillReceiveProps(n,r),t.state!==e&&bl.enqueueReplaceState(t,t.state,null)}function Cr(e,t){var n=t;if(\"ref\"in t){n={};for(var r in t)r!==\"ref\"&&(n[r]=t[r])}if(e=e.defaultProps){n===t&&(n=J({},n));for(var a in e)n[a]===void 0&&(n[a]=e[a])}return n}var vc=typeof reportError==\"function\"?reportError:function(e){if(typeof window==\"object\"&&typeof window.ErrorEvent==\"function\"){var t=new window.ErrorEvent(\"error\",{bubbles:!0,cancelable:!0,message:typeof e==\"object\"&&e!==null&&typeof e.message==\"string\"?String(e.message):String(e),error:e});if(!window.dispatchEvent(t))return}else if(typeof process==\"object\"&&typeof process.emit==\"function\"){process.emit(\"uncaughtException\",e);return}console.error(e)};function F_(e){vc(e)}function k_(e){console.error(e)}function G_(e){vc(e)}function bc(e,t){try{var n=e.onUncaughtError;n(t.value,{componentStack:t.stack})}catch(r){setTimeout(function(){throw r})}}function vA(e,t,n){try{var r=e.onCaughtError;r(n.value,{componentStack:n.stack,errorBoundary:t.tag===1?t.stateNode:null})}catch(a){setTimeout(function(){throw a})}}function wl(e,t,n){return n=Gn(n),n.tag=3,n.payload={element:null},n.callback=function(){bc(e,t)},n}function H_(e){return e=Gn(e),e.tag=3,e}function W_(e,t,n,r){var a=n.type.getDerivedStateFromError;if(typeof a==\"function\"){var o=r.value;e.payload=function(){return a(o)},e.callback=function(){vA(t,n,r)}}var i=n.stateNode;i!==null&&typeof i.componentDidCatch==\"function\"&&(e.callback=function(){vA(t,n,r),typeof a!=\"function\"&&(Wn===null?Wn=new Set([this]):Wn.add(this));var c=r.stack;this.componentDidCatch(r.value,{componentStack:c!==null?c:\"\"})})}function KN(e,t,n,r,a){if(n.flags|=32768,r!==null&&typeof r==\"object\"&&typeof r.then==\"function\"){if(t=n.alternate,t!==null&&jo(t,n,a,!0),n=mt.current,n!==null){switch(n.tag){case 13:return Pt===null?kl():n.alternate===null&&ce===0&&(ce=3),n.flags&=-257,n.flags|=65536,n.lanes=a,r===Nl?n.flags|=16384:(t=n.updateQueue,t===null?n.updateQueue=new Set([r]):t.add(r),Qu(e,r,a)),!1;case 22:return n.flags|=65536,r===Nl?n.flags|=16384:(t=n.updateQueue,t===null?(t={transitions:null,markerInstances:null,retryQueue:new Set([r])},n.updateQueue=t):(n=t.retryQueue,n===null?t.retryQueue=new Set([r]):n.add(r)),Qu(e,r,a)),!1}throw Error(p(435,n.tag))}return Qu(e,r,a),kl(),!1}if(G)return t=mt.current,t!==null?((t.flags&65536)===0&&(t.flags|=256),t.flags|=65536,t.lanes=a,r!==Tl&&(e=Error(p(422),{cause:r}),Lo(dt(e,n)))):(r!==Tl&&(t=Error(p(423),{cause:r}),Lo(dt(t,n))),e=e.current.alternate,e.flags|=65536,a&=-a,e.lanes|=a,r=dt(r,n),a=wl(e.stateNode,r,a),Fu(e,a),ce!==4&&(ce=2)),!1;var o=Error(p(520),{cause:r});if(o=dt(o,n),Do===null?Do=[o]:Do.push(o),ce!==4&&(ce=2),t===null)return!0;r=dt(r,n),n=t;do{switch(n.tag){case 3:return n.flags|=65536,e=a&-a,n.lanes|=e,e=wl(n.stateNode,r,e),Fu(n,e),!1;case 1:if(t=n.type,o=n.stateNode,(n.flags&128)===0&&(typeof t.getDerivedStateFromError==\"function\"||o!==null&&typeof o.componentDidCatch==\"function\"&&(Wn===null||!Wn.has(o))))return n.flags|=65536,a&=-a,n.lanes|=a,a=H_(a),W_(a,e,n,r),Fu(n,a),!1}n=n.return}while(n!==null);return!1}var V_=Error(p(461)),pe=!1;function Se(e,t,n,r){t.child=e===null?z_(t,null,n,r):pa(t,e.child,n,r)}function bA(e,t,n,r,a){n=n.render;var o=t.ref;if(\"ref\"in r){var i={};for(var c in r)c!==\"ref\"&&(i[c]=r[c])}else i=r;return Rr(t),r=Rd(e,t,n,i,o,a),c=pd(),e!==null&&!pe?(Cd(e,t,a),gn(e,t,a)):(G&&c&&md(t),t.flags|=1,Se(e,t,r,a),t.child)}function wA(e,t,n,r,a){if(e===null){var o=n.type;return typeof o==\"function\"&&!fd(o)&&o.defaultProps===void 0&&n.compare===null?(t.tag=15,t.type=o,K_(e,t,o,r,a)):(e=ic(n.type,null,r,t,t.mode,a),e.ref=t.ref,e.return=t,t.child=e)}if(o=e.child,!bd(e,a)){var i=o.memoizedProps;if(n=n.compare,n=n!==null?n:wo,n(i,r)&&e.ref===t.ref)return gn(e,t,a)}return t.flags|=1,e=ln(o,r),e.ref=t.ref,e.return=t,t.child=e}function K_(e,t,n,r,a){if(e!==null){var o=e.memoizedProps;if(wo(o,r)&&e.ref===t.ref)if(pe=!1,t.pendingProps=r=o,bd(e,a))(e.flags&131072)!==0&&(pe=!0);else return t.lanes=e.lanes,gn(e,t,a)}return Ll(e,t,n,r,a)}function Y_(e,t,n){var r=t.pendingProps,a=r.children,o=e!==null?e.memoizedState:null;if(r.mode===\"hidden\"){if((t.flags&128)!==0){if(r=o!==null?o.baseLanes|n:n,e!==null){for(a=t.child=e.child,o=0;a!==null;)o=o|a.lanes|a.childLanes,a=a.sibling;t.childLanes=o&~r}else t.childLanes=0,t.child=null;return LA(e,t,r,n)}if((n&536870912)!==0)t.memoizedState={baseLanes:0,cachePool:null},e!==null&&cc(t,o!==null?o.cachePool:null),o!==null?RA(t,o):yl(),x_(t);else return t.lanes=t.childLanes=536870912,LA(e,t,o!==null?o.baseLanes|n:n,n)}else o!==null?(cc(t,o.cachePool),RA(t,o),Un(t),t.memoizedState=null):(e!==null&&cc(t,null),yl(),Un(t));return Se(e,t,a,n),t.child}function LA(e,t,n,r){var a=Id();return a=a===null?null:{parent:Ie._currentValue,pool:a},t.memoizedState={baseLanes:n,cachePool:a},e!==null&&cc(t,null),yl(),x_(t),e!==null&&jo(e,t,r,!0),null}function lc(e,t){var n=t.ref;if(n===null)e!==null&&e.ref!==null&&(t.flags|=4194816);else{if(typeof n!=\"function\"&&typeof n!=\"object\")throw Error(p(284));(e===null||e.ref!==n)&&(t.flags|=4194816)}}function Ll(e,t,n,r,a){return Rr(t),n=Rd(e,t,n,r,void 0,a),r=pd(),e!==null&&!pe?(Cd(e,t,a),gn(e,t,a)):(G&&r&&md(t),t.flags|=1,Se(e,t,n,a),t.child)}function UA(e,t,n,r,a,o){return Rr(t),t.updateQueue=null,n=o_(t,r,n,a),a_(e),r=pd(),e!==null&&!pe?(Cd(e,t,o),gn(e,t,o)):(G&&r&&md(t),t.flags|=1,Se(e,t,n,o),t.child)}function BA(e,t,n,r,a){if(Rr(t),t.stateNode===null){var o=ra,i=n.contextType;typeof i==\"object\"&&i!==null&&(o=Me(i)),o=new n(r,o),t.memoizedState=o.state!==null&&o.state!==void 0?o.state:null,o.updater=bl,t.stateNode=o,o._reactInternals=t,o=t.stateNode,o.props=r,o.state=t.memoizedState,o.refs={},_d(t),i=n.contextType,o.context=typeof i==\"object\"&&i!==null?Me(i):ra,o.state=t.memoizedState,i=n.getDerivedStateFromProps,typeof i==\"function\"&&(Gu(t,n,i,r),o.state=t.memoizedState),typeof n.getDerivedStateFromProps==\"function\"||typeof o.getSnapshotBeforeUpdate==\"function\"||typeof o.UNSAFE_componentWillMount!=\"function\"&&typeof o.componentWillMount!=\"function\"||(i=o.state,typeof o.componentWillMount==\"function\"&&o.componentWillMount(),typeof o.UNSAFE_componentWillMount==\"function\"&&o.UNSAFE_componentWillMount(),i!==o.state&&bl.enqueueReplaceState(o,o.state,null),Co(t,r,o,a),po(),o.state=t.memoizedState),typeof o.componentDidMount==\"function\"&&(t.flags|=4194308),r=!0}else if(e===null){o=t.stateNode;var c=t.memoizedProps,s=Cr(n,c);o.props=s;var u=o.context,d=n.contextType;i=ra,typeof d==\"object\"&&d!==null&&(i=Me(d));var f=n.getDerivedStateFromProps;d=typeof f==\"function\"||typeof o.getSnapshotBeforeUpdate==\"function\",c=t.pendingProps!==c,d||typeof o.UNSAFE_componentWillReceiveProps!=\"function\"&&typeof o.componentWillReceiveProps!=\"function\"||(c||u!==i)&&MA(t,o,r,i),bn=!1;var l=t.memoizedState;o.state=l,Co(t,r,o,a),po(),u=t.memoizedState,c||l!==u||bn?(typeof f==\"function\"&&(Gu(t,n,f,r),u=t.memoizedState),(s=bn||OA(t,n,s,r,l,u,i))?(d||typeof o.UNSAFE_componentWillMount!=\"function\"&&typeof o.componentWillMount!=\"function\"||(typeof o.componentWillMount==\"function\"&&o.componentWillMount(),typeof o.UNSAFE_componentWillMount==\"function\"&&o.UNSAFE_componentWillMount()),typeof o.componentDidMount==\"function\"&&(t.flags|=4194308)):(typeof o.componentDidMount==\"function\"&&(t.flags|=4194308),t.memoizedProps=r,t.memoizedState=u),o.props=r,o.state=u,o.context=i,r=s):(typeof o.componentDidMount==\"function\"&&(t.flags|=4194308),r=!1)}else{o=t.stateNode,hl(e,t),i=t.memoizedProps,d=Cr(n,i),o.props=d,f=t.pendingProps,l=o.context,u=n.contextType,s=ra,typeof u==\"object\"&&u!==null&&(s=Me(u)),c=n.getDerivedStateFromProps,(u=typeof c==\"function\"||typeof o.getSnapshotBeforeUpdate==\"function\")||typeof o.UNSAFE_componentWillReceiveProps!=\"function\"&&typeof o.componentWillReceiveProps!=\"function\"||(i!==f||l!==s)&&MA(t,o,r,s),bn=!1,l=t.memoizedState,o.state=l,Co(t,r,o,a),po();var m=t.memoizedState;i!==f||l!==m||bn||e!==null&&e.dependencies!==null&&Nc(e.dependencies)?(typeof c==\"function\"&&(Gu(t,n,c,r),m=t.memoizedState),(d=bn||OA(t,n,d,r,l,m,s)||e!==null&&e.dependencies!==null&&Nc(e.dependencies))?(u||typeof o.UNSAFE_componentWillUpdate!=\"function\"&&typeof o.componentWillUpdate!=\"function\"||(typeof o.componentWillUpdate==\"function\"&&o.componentWillUpdate(r,m,s),typeof o.UNSAFE_componentWillUpdate==\"function\"&&o.UNSAFE_componentWillUpdate(r,m,s)),typeof o.componentDidUpdate==\"function\"&&(t.flags|=4),typeof o.getSnapshotBeforeUpdate==\"function\"&&(t.flags|=1024)):(typeof o.componentDidUpdate!=\"function\"||i===e.memoizedProps&&l===e.memoizedState||(t.flags|=4),typeof o.getSnapshotBeforeUpdate!=\"function\"||i===e.memoizedProps&&l===e.memoizedState||(t.flags|=1024),t.memoizedProps=r,t.memoizedState=m),o.props=r,o.state=m,o.context=s,r=d):(typeof o.componentDidUpdate!=\"function\"||i===e.memoizedProps&&l===e.memoizedState||(t.flags|=4),typeof o.getSnapshotBeforeUpdate!=\"function\"||i===e.memoizedProps&&l===e.memoizedState||(t.flags|=1024),r=!1)}return o=r,lc(e,t),r=(t.flags&128)!==0,o||r?(o=t.stateNode,n=r&&typeof n.getDerivedStateFromError!=\"function\"?null:o.render(),t.flags|=1,e!==null&&r?(t.child=pa(t,e.child,null,a),t.child=pa(t,null,n,a)):Se(e,t,n,a),t.memoizedState=o.state,e=t.child):e=gn(e,t,a),e}function PA(e,t,n,r){return Xo(),t.flags|=256,Se(e,t,n,r),t.child}var Hu={dehydrated:null,treeContext:null,retryLane:0,hydrationErrors:null};function Wu(e){return{baseLanes:e,cachePool:JI()}}function Vu(e,t,n){return e=e!==null?e.childLanes&~n:0,t&&(e|=ft),e}function q_(e,t,n){var r=t.pendingProps,a=!1,o=(t.flags&128)!==0,i;if((i=o)||(i=e!==null&&e.memoizedState===null?!1:(_e.current&2)!==0),i&&(a=!0,t.flags&=-129),i=(t.flags&32)!==0,t.flags&=-33,e===null){if(G){if(a?Ln(t):Un(t),G){var c=ie,s;if(s=c){e:{for(s=c,c=wt;s.nodeType!==8;){if(!c){c=null;break e}if(s=St(s.nextSibling),s===null){c=null;break e}}c=s}c!==null?(t.memoizedState={dehydrated:c,treeContext:gr!==null?{id:on,overflow:cn}:null,retryLane:536870912,hydrationErrors:null},s=Ze(18,null,null,0),s.stateNode=c,s.return=t,t.child=s,Be=t,ie=null,s=!0):s=!1}s||Tr(t)}if(c=t.memoizedState,c!==null&&(c=c.dehydrated,c!==null))return ql(c)?t.lanes=32:t.lanes=536870912,null;un(t)}return c=r.children,r=r.fallback,a?(Un(t),a=t.mode,c=wc({mode:\"hidden\",children:c},a),r=mr(r,a,n,null),c.return=t,r.return=t,c.sibling=r,t.child=c,a=t.child,a.memoizedState=Wu(n),a.childLanes=Vu(e,i,n),t.memoizedState=Hu,r):(Ln(t),Ul(t,c))}if(s=e.memoizedState,s!==null&&(c=s.dehydrated,c!==null)){if(o)t.flags&256?(Ln(t),t.flags&=-257,t=Ku(e,t,n)):t.memoizedState!==null?(Un(t),t.child=e.child,t.flags|=128,t=null):(Un(t),a=r.fallback,c=t.mode,r=wc({mode:\"visible\",children:r.children},c),a=mr(a,c,n,null),a.flags|=2,r.return=t,a.return=t,r.sibling=a,t.child=r,pa(t,e.child,null,n),r=t.child,r.memoizedState=Wu(n),r.childLanes=Vu(e,i,n),t.memoizedState=Hu,t=a);else if(Ln(t),ql(c)){if(i=c.nextSibling&&c.nextSibling.dataset,i)var u=i.dgst;i=u,r=Error(p(419)),r.stack=\"\",r.digest=i,Lo({value:r,source:null,stack:null}),t=Ku(e,t,n)}else if(pe||jo(e,t,n,!1),i=(n&e.childLanes)!==0,pe||i){if(i=$,i!==null&&(r=n&-n,r=(r&42)!==0?1:td(r),r=(r&(i.suspendedLanes|n))!==0?0:r,r!==0&&r!==s.retryLane))throw s.retryLane=r,Oa(e,r),Qe(i,e,r),V_;c.data===\"$?\"||kl(),t=Ku(e,t,n)}else c.data===\"$?\"?(t.flags|=192,t.child=e.child,t=null):(e=s.treeContext,ie=St(c.nextSibling),Be=t,G=!0,Ar=null,wt=!1,e!==null&&(st[ut++]=on,st[ut++]=cn,st[ut++]=gr,on=e.id,cn=e.overflow,gr=t),t=Ul(t,r.children),t.flags|=4096);return t}return a?(Un(t),a=r.fallback,c=t.mode,s=e.child,u=s.sibling,r=ln(s,{mode:\"hidden\",children:r.children}),r.subtreeFlags=s.subtreeFlags&65011712,u!==null?a=ln(u,a):(a=mr(a,c,n,null),a.flags|=2),a.return=t,r.return=t,r.sibling=a,t.child=r,r=a,a=t.child,c=e.child.memoizedState,c===null?c=Wu(n):(s=c.cachePool,s!==null?(u=Ie._currentValue,s=s.parent!==u?{parent:u,pool:u}:s):s=JI(),c={baseLanes:c.baseLanes|n,cachePool:s}),a.memoizedState=c,a.childLanes=Vu(e,i,n),t.memoizedState=Hu,r):(Ln(t),n=e.child,e=n.sibling,n=ln(n,{mode:\"visible\",children:r.children}),n.return=t,n.sibling=null,e!==null&&(i=t.deletions,i===null?(t.deletions=[e],t.flags|=16):i.push(e)),t.child=n,t.memoizedState=null,n)}function Ul(e,t){return t=wc({mode:\"visible\",children:t},e.mode),t.return=e,e.child=t}function wc(e,t){return e=Ze(22,e,null,t),e.lanes=0,e.stateNode={_visibility:1,_pendingMarkers:null,_retryCache:null,_transitions:null},e}function Ku(e,t,n){return pa(t,e.child,null,n),e=Ul(t,t.pendingProps.children),e.flags|=2,t.memoizedState=null,e}function zA(e,t,n){e.lanes|=t;var r=e.alternate;r!==null&&(r.lanes|=t),pl(e.return,t,n)}function Yu(e,t,n,r,a){var o=e.memoizedState;o===null?e.memoizedState={isBackwards:t,rendering:null,renderingStartTime:0,last:r,tail:n,tailMode:a}:(o.isBackwards=t,o.rendering=null,o.renderingStartTime=0,o.last=r,o.tail=n,o.tailMode=a)}function Z_(e,t,n){var r=t.pendingProps,a=r.revealOrder,o=r.tail;if(Se(e,t,r.children,n),r=_e.current,(r&2)!==0)r=r&1|2,t.flags|=128;else{if(e!==null&&(e.flags&128)!==0)e:for(e=t.child;e!==null;){if(e.tag===13)e.memoizedState!==null&&zA(e,n,t);else if(e.tag===19)zA(e,n,t);else if(e.child!==null){e.child.return=e,e=e.child;continue}if(e===t)break e;for(;e.sibling===null;){if(e.return===null||e.return===t)break e;e=e.return}e.sibling.return=e.return,e=e.sibling}r&=1}switch(re(_e,r),a){case\"forwards\":for(n=t.child,a=null;n!==null;)e=n.alternate,e!==null&&Mc(e)===null&&(a=n),n=n.sibling;n=a,n===null?(a=t.child,t.child=null):(a=n.sibling,n.sibling=null),Yu(t,!1,a,n,o);break;case\"backwards\":for(n=null,a=t.child,t.child=null;a!==null;){if(e=a.alternate,e!==null&&Mc(e)===null){t.child=a;break}e=a.sibling,a.sibling=n,n=a,a=e}Yu(t,!0,n,null,o);break;case\"together\":Yu(t,!1,null,null,void 0);break;default:t.memoizedState=null}return t.child}function gn(e,t,n){if(e!==null&&(t.dependencies=e.dependencies),jn|=t.lanes,(n&t.childLanes)===0)if(e!==null){if(jo(e,t,n,!1),(n&t.childLanes)===0)return null}else return null;if(e!==null&&t.child!==e.child)throw Error(p(153));if(t.child!==null){for(e=t.child,n=ln(e,e.pendingProps),t.child=n,n.return=t;e.sibling!==null;)e=e.sibling,n=n.sibling=ln(e,e.pendingProps),n.return=t;n.sibling=null}return t.child}function bd(e,t){return(e.lanes&t)!==0?!0:(e=e.dependencies,!!(e!==null&&Nc(e)))}function YN(e,t,n){switch(t.tag){case 3:Ic(t,t.stateNode.containerInfo),wn(t,Ie,e.memoizedState.cache),Xo();break;case 27:case 5:ul(t);break;case 4:Ic(t,t.stateNode.containerInfo);break;case 10:wn(t,t.type,t.memoizedProps.value);break;case 13:var r=t.memoizedState;if(r!==null)return r.dehydrated!==null?(Ln(t),t.flags|=128,null):(n&t.child.childLanes)!==0?q_(e,t,n):(Ln(t),e=gn(e,t,n),e!==null?e.sibling:null);Ln(t);break;case 19:var a=(e.flags&128)!==0;if(r=(n&t.childLanes)!==0,r||(jo(e,t,n,!1),r=(n&t.childLanes)!==0),a){if(r)return Z_(e,t,n);t.flags|=128}if(a=t.memoizedState,a!==null&&(a.rendering=null,a.tail=null,a.lastEffect=null),re(_e,_e.current),r)break;return null;case 22:case 23:return t.lanes=0,Y_(e,t,n);case 24:wn(t,Ie,e.memoizedState.cache)}return gn(e,t,n)}function X_(e,t,n){if(e!==null)if(e.memoizedProps!==t.pendingProps)pe=!0;else{if(!bd(e,n)&&(t.flags&128)===0)return pe=!1,YN(e,t,n);pe=(e.flags&131072)!==0}else pe=!1,G&&(t.flags&1048576)!==0&&$I(t,Sc,t.index);switch(t.lanes=0,t.tag){case 16:e:{e=t.pendingProps;var r=t.elementType,a=r._init;if(r=a(r._payload),t.type=r,typeof r==\"function\")fd(r)?(e=Cr(r,e),t.tag=1,t=BA(null,t,r,e,n)):(t.tag=0,t=Ll(null,t,r,e,n));else{if(r!=null){if(a=r.$$typeof,a===Ql){t.tag=11,t=bA(null,t,r,e,n);break e}else if(a===Jl){t.tag=14,t=wA(null,t,r,e,n);break e}}throw t=cl(r)||r,Error(p(306,t,\"\"))}}return t;case 0:return Ll(e,t,t.type,t.pendingProps,n);case 1:return r=t.type,a=Cr(r,t.pendingProps),BA(e,t,r,a,n);case 3:e:{if(Ic(t,t.stateNode.containerInfo),e===null)throw Error(p(387));r=t.pendingProps;var o=t.memoizedState;a=o.element,hl(e,t),Co(t,r,null,n);var i=t.memoizedState;if(r=i.cache,wn(t,Ie,r),r!==o.cache&&Cl(t,[Ie],n,!0),po(),r=i.element,o.isDehydrated)if(o={element:r,isDehydrated:!1,cache:i.cache},t.updateQueue.baseState=o,t.memoizedState=o,t.flags&256){t=PA(e,t,r,n);break e}else if(r!==a){a=dt(Error(p(424)),t),Lo(a),t=PA(e,t,r,n);break e}else{switch(e=t.stateNode.containerInfo,e.nodeType){case 9:e=e.body;break;default:e=e.nodeName===\"HTML\"?e.ownerDocument.body:e}for(ie=St(e.firstChild),Be=t,G=!0,Ar=null,wt=!0,n=z_(t,null,r,n),t.child=n;n;)n.flags=n.flags&-3|4096,n=n.sibling}else{if(Xo(),r===a){t=gn(e,t,n);break e}Se(e,t,r,n)}t=t.child}return t;case 26:return lc(e,t),e===null?(n=nI(t.type,null,t.pendingProps,null))?t.memoizedState=n:G||(n=t.type,e=t.pendingProps,r=Fc(kn.current).createElement(n),r[Oe]=t,r[Ge]=e,he(r,n,e),Re(r),t.stateNode=r):t.memoizedState=nI(t.type,e.memoizedProps,t.pendingProps,e.memoizedState),null;case 27:return ul(t),e===null&&G&&(r=t.stateNode=BE(t.type,t.pendingProps,kn.current),Be=t,wt=!0,a=ie,Qn(t.type)?(Zl=a,ie=St(r.firstChild)):ie=a),Se(e,t,t.pendingProps.children,n),lc(e,t),e===null&&(t.flags|=4194304),t.child;case 5:return e===null&&G&&((a=r=ie)&&(r=Eh(r,t.type,t.pendingProps,wt),r!==null?(t.stateNode=r,Be=t,ie=St(r.firstChild),wt=!1,a=!0):a=!1),a||Tr(t)),ul(t),a=t.type,o=t.pendingProps,i=e!==null?e.memoizedProps:null,r=o.children,Kl(a,o)?r=null:i!==null&&Kl(a,i)&&(t.flags|=32),t.memoizedState!==null&&(a=Rd(e,t,xN,null,null,n),Fo._currentValue=a),lc(e,t),Se(e,t,r,n),t.child;case 6:return e===null&&G&&((e=n=ie)&&(n=Th(n,t.pendingProps,wt),n!==null?(t.stateNode=n,Be=t,ie=null,e=!0):e=!1),e||Tr(t)),null;case 13:return q_(e,t,n);case 4:return Ic(t,t.stateNode.containerInfo),r=t.pendingProps,e===null?t.child=pa(t,null,r,n):Se(e,t,r,n),t.child;case 11:return bA(e,t,t.type,t.pendingProps,n);case 7:return Se(e,t,t.pendingProps,n),t.child;case 8:return Se(e,t,t.pendingProps.children,n),t.child;case 12:return Se(e,t,t.pendingProps.children,n),t.child;case 10:return r=t.pendingProps,wn(t,t.type,r.value),Se(e,t,r.children,n),t.child;case 9:return a=t.type._context,r=t.pendingProps.children,Rr(t),a=Me(a),r=r(a),t.flags|=1,Se(e,t,r,n),t.child;case 14:return wA(e,t,t.type,t.pendingProps,n);case 15:return K_(e,t,t.type,t.pendingProps,n);case 19:return Z_(e,t,n);case 31:return r=t.pendingProps,n=t.mode,r={mode:r.mode,children:r.children},e===null?(n=wc(r,n),n.ref=t.ref,t.child=n,n.return=t,t=n):(n=ln(e.child,r),n.ref=t.ref,t.child=n,n.return=t,t=n),t;case 22:return Y_(e,t,n);case 24:return Rr(t),r=Me(Ie),e===null?(a=Id(),a===null&&(a=$,o=Ad(),a.pooledCache=o,o.refCount++,o!==null&&(a.pooledCacheLanes|=n),a=o),t.memoizedState={parent:r,cache:a},_d(t),wn(t,Ie,a)):((e.lanes&n)!==0&&(hl(e,t),Co(t,null,null,n),po()),a=e.memoizedState,o=t.memoizedState,a.parent!==r?(a={parent:r,cache:r},t.memoizedState=a,t.lanes===0&&(t.memoizedState=t.updateQueue.baseState=a),wn(t,Ie,r)):(r=o.cache,wn(t,Ie,r),r!==a.cache&&Cl(t,[Ie],n,!0))),Se(e,t,t.pendingProps.children,n),t.child;case 29:throw t.pendingProps}throw Error(p(156,t.tag))}function tn(e){e.flags|=4}function xA(e,t){if(t.type!==\"stylesheet\"||(t.state.loading&4)!==0)e.flags&=-16777217;else if(e.flags|=16777216,!xE(t)){if(t=mt.current,t!==null&&((F&4194048)===F?Pt!==null:(F&62914560)!==F&&(F&536870912)===0||t!==Pt))throw To=Nl,e_;e.flags|=8192}}function ji(e,t){t!==null&&(e.flags|=4),e.flags&16384&&(t=e.tag!==22?pI():536870912,e.lanes|=t,Ca|=t)}function io(e,t){if(!G)switch(e.tailMode){case\"hidden\":t=e.tail;for(var n=null;t!==null;)t.alternate!==null&&(n=t),t=t.sibling;n===null?e.tail=null:n.sibling=null;break;case\"collapsed\":n=e.tail;for(var r=null;n!==null;)n.alternate!==null&&(r=n),n=n.sibling;r===null?t||e.tail===null?e.tail=null:e.tail.sibling=null:r.sibling=null}}function ae(e){var t=e.alternate!==null&&e.alternate.child===e.child,n=0,r=0;if(t)for(var a=e.child;a!==null;)n|=a.lanes|a.childLanes,r|=a.subtreeFlags&65011712,r|=a.flags&65011712,a.return=e,a=a.sibling;else for(a=e.child;a!==null;)n|=a.lanes|a.childLanes,r|=a.subtreeFlags,r|=a.flags,a.return=e,a=a.sibling;return e.subtreeFlags|=r,e.childLanes=n,t}function qN(e,t,n){var r=t.pendingProps;switch(gd(t),t.tag){case 31:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return ae(t),null;case 1:return ae(t),null;case 3:return n=t.stateNode,r=null,e!==null&&(r=e.memoizedState.cache),t.memoizedState.cache!==r&&(t.flags|=2048),dn(Ie),Aa(),n.pendingContext&&(n.context=n.pendingContext,n.pendingContext=null),(e===null||e.child===null)&&(ao(t)?tn(t):e===null||e.memoizedState.isDehydrated&&(t.flags&256)===0||(t.flags|=1024,gA())),ae(t),null;case 26:return n=t.memoizedState,e===null?(tn(t),n!==null?(ae(t),xA(t,n)):(ae(t),t.flags&=-16777217)):n?n!==e.memoizedState?(tn(t),ae(t),xA(t,n)):(ae(t),t.flags&=-16777217):(e.memoizedProps!==r&&tn(t),ae(t),t.flags&=-16777217),null;case 27:_c(t),n=kn.current;var a=t.type;if(e!==null&&t.stateNode!=null)e.memoizedProps!==r&&tn(t);else{if(!r){if(t.stateNode===null)throw Error(p(166));return ae(t),null}e=Ut.current,ao(t)?fA(t,e):(e=BE(a,r,n),t.stateNode=e,tn(t))}return ae(t),null;case 5:if(_c(t),n=t.type,e!==null&&t.stateNode!=null)e.memoizedProps!==r&&tn(t);else{if(!r){if(t.stateNode===null)throw Error(p(166));return ae(t),null}if(e=Ut.current,ao(t))fA(t,e);else{switch(a=Fc(kn.current),e){case 1:e=a.createElementNS(\"http://www.w3.org/2000/svg\",n);break;case 2:e=a.createElementNS(\"http://www.w3.org/1998/Math/MathML\",n);break;default:switch(n){case\"svg\":e=a.createElementNS(\"http://www.w3.org/2000/svg\",n);break;case\"math\":e=a.createElementNS(\"http://www.w3.org/1998/Math/MathML\",n);break;case\"script\":e=a.createElement(\"div\"),e.innerHTML=\"