{"version":3,"sources":["../../../src/react/sign-up/index.ts","../../../src/react/sign-up/root.tsx","../../../src/internals/machines/sign-up/continue.machine.ts","../../../src/internals/machines/sign-up/utils/fields-to-params.ts","../../../src/internals/machines/sign-up/router.machine.ts","../../../src/internals/machines/sign-up/start.machine.ts","../../../src/internals/machines/sign-up/verification.machine.ts","../../../src/internals/machines/sign-up/verification.types.ts","../../../src/react/sign-up/action/action.tsx","../../../src/react/sign-up/action/navigate.tsx","../../../src/react/sign-up/action/resend.tsx","../../../src/react/sign-up/captcha.tsx"],"sourcesContent":["// Mark as a client-only package. This will error if you try to import it in a React Server Component.\nimport 'client-only';\n\nexport { SignUpRoot as SignUp, SignUpRoot as Root } from './root';\nexport { SignUpStep as Step } from './step';\nexport { SignUpAction as Action } from './action';\nexport { SignUpStrategy as Strategy } from './verifications';\nexport { SignUpCaptcha as Captcha } from './captcha';\n","import { useClerk } from '@clerk/shared/react';\nimport { eventComponentMounted } from '@clerk/shared/telemetry';\nimport { useSelector } from '@xstate/react';\nimport { useEffect } from 'react';\nimport { createActor } from 'xstate';\n\nimport { ROUTING, SIGN_IN_DEFAULT_BASE_PATH, SIGN_UP_DEFAULT_BASE_PATH } from '~/internals/constants';\nimport { FormStoreProvider, useFormStore } from '~/internals/machines/form/form.context';\nimport type { SignUpRouterInitEvent } from '~/internals/machines/sign-up';\nimport { SignUpRouterMachine } from '~/internals/machines/sign-up';\nimport { inspect } from '~/internals/utils/inspector';\nimport { ClerkHostRouterContext, Router, useClerkRouter, useNextRouter, useVirtualRouter } from '~/react/router';\nimport { SignUpRouterCtx } from '~/react/sign-up/context';\n\nimport { Form } from '../common/form';\n\ntype SignUpFlowProviderProps = {\n  children: React.ReactNode;\n  exampleMode?: boolean;\n  /**\n   * Fallback markup to render while Clerk is loading\n   */\n  fallback?: React.ReactNode;\n  isRootPath: boolean;\n};\n\nconst actor = createActor(SignUpRouterMachine, { inspect });\nactor.start();\n\nfunction SignUpFlowProvider({ children, exampleMode, fallback, isRootPath }: SignUpFlowProviderProps) {\n  const clerk = useClerk();\n  const router = useClerkRouter();\n  const formRef = useFormStore();\n  const isReady = useSelector(actor, state => state.value !== 'Idle');\n\n  useEffect(() => {\n    if (!clerk || !router) {\n      return;\n    }\n\n    const cb = () => {\n      const evt: SignUpRouterInitEvent = {\n        type: 'INIT',\n        // @ts-expect-error - ignore error for now\n        clerk,\n        exampleMode,\n        formRef,\n        router,\n        signInPath: SIGN_IN_DEFAULT_BASE_PATH,\n      };\n\n      if (actor.getSnapshot().can(evt)) {\n        actor.send(evt);\n      }\n\n      // Ensure that the latest instantiated formRef is attached to the router\n      if (formRef && actor.getSnapshot().can({ type: 'RESET.STEP' })) {\n        actor.send({\n          type: 'FORM.ATTACH',\n          formRef,\n        });\n      }\n    };\n\n    if ('addOnLoaded' in clerk) {\n      // @ts-expect-error - addOnLoaded doesn't exist on the clerk type, but it does on IsomorphicClerk, which can be hit when Elements is used standalone\n      clerk.addOnLoaded(cb);\n    } else {\n      cb();\n    }\n    // eslint-disable-next-line react-hooks/exhaustive-deps\n  }, [clerk, exampleMode, formRef?.id, !!router, clerk.loaded]);\n\n  return (\n    <SignUpRouterCtx.Provider actorRef={actor}>\n      {isRootPath && !isReady && fallback ? <Form>{fallback}</Form> : null}\n      {clerk.loaded && isReady ? children : null}\n    </SignUpRouterCtx.Provider>\n  );\n}\n\nexport type SignUpRootProps = Omit<SignUpFlowProviderProps, 'isRootPath'> & {\n  /**\n   * The base path for your sign-up route.\n   * Will be automatically inferred in Next.js.\n   * @example `/sign-up`\n   */\n  path?: string;\n  /**\n   * If you want to render Clerk Elements in e.g. a modal, use the `virtual` routing mode.\n   */\n  routing?: ROUTING;\n};\n\n/**\n * Root component for the sign-up flow. It sets up providers and state management for its children.\n * Must wrap all sign-up related components.\n *\n * @param {string} path - The root path the sign-up flow is mounted at. Will be automatically inferred in Next.js. You can set it to `/sign-up` for example.\n * @param {React.ReactNode} fallback - Fallback markup to render while Clerk is loading. Default: `null`\n * @param {string} routing - If you want to render Clerk Elements in e.g. a modal, use the `'virtual'` routing mode. Default: `'path'`\n *\n * @example\n * import * as SignUp from \"@clerk/elements/sign-up\"\n *\n * export default SignUpPage = () => (\n *  <SignUp.Root>\n *  </SignUp.Root>\n * )\n */\nexport function SignUpRoot({\n  children,\n  exampleMode = false,\n  fallback = null,\n  path: pathProp,\n  routing = ROUTING.path,\n}: SignUpRootProps): JSX.Element | null {\n  const clerk = useClerk();\n  const router = (routing === ROUTING.virtual ? useVirtualRouter : useNextRouter)();\n  const pathname = router.pathname();\n  const inferredPath = router.inferredBasePath?.();\n  const path = pathProp || inferredPath || SIGN_UP_DEFAULT_BASE_PATH;\n  const isRootPath = path === pathname;\n\n  clerk.telemetry?.record(\n    eventComponentMounted('Elements_SignUpRoot', {\n      exampleMode,\n      fallback: Boolean(fallback),\n      path,\n      routing,\n    }),\n  );\n\n  return (\n    <ClerkHostRouterContext.Provider value={router}>\n      <Router basePath={path}>\n        <FormStoreProvider>\n          <SignUpFlowProvider\n            exampleMode={exampleMode}\n            fallback={fallback}\n            isRootPath={isRootPath}\n          >\n            {children}\n          </SignUpFlowProvider>\n        </FormStoreProvider>\n      </Router>\n    </ClerkHostRouterContext.Provider>\n  );\n}\n","import { snakeToCamel } from '@clerk/shared/underscore';\nimport type { SignUpResource } from '@clerk/types';\nimport type { DoneActorEvent } from 'xstate';\nimport { fromPromise, not, or, setup } from 'xstate';\n\nimport { SIGN_UP_DEFAULT_BASE_PATH } from '~/internals/constants';\nimport type { FormDefaultValues, FormFields } from '~/internals/machines/form';\nimport { sendToLoading } from '~/internals/machines/shared';\nimport { fieldsToSignUpParams } from '~/internals/machines/sign-up/utils';\nimport { assertActorEventError } from '~/internals/machines/utils/assert';\n\nimport type { SignUpContinueSchema } from './continue.types';\nimport type { SignInRouterMachineActorRef } from './router.types';\n\nexport type TSignUpContinueMachine = typeof SignUpContinueMachine;\n\nexport const SignUpContinueMachineId = 'SignUpContinue';\n\nexport const SignUpContinueMachine = setup({\n  actors: {\n    attempt: fromPromise<SignUpResource, { parent: SignInRouterMachineActorRef; fields: FormFields }>(\n      ({ input: { fields, parent } }) => {\n        const params = fieldsToSignUpParams(fields);\n        return parent.getSnapshot().context.clerk.client.signUp.update(params);\n      },\n    ),\n  },\n  actions: {\n    setFormErrors: ({ context, event }) => {\n      assertActorEventError(event);\n      context.formRef.send({\n        type: 'ERRORS.SET',\n        error: event.error,\n      });\n    },\n    markFormAsProgressive: ({ context }) => {\n      const signUp = context.parent.getSnapshot().context.clerk.client.signUp;\n\n      const missing = signUp.missingFields.map(snakeToCamel);\n      const optional = signUp.optionalFields.map(snakeToCamel);\n      const required = signUp.requiredFields.map(snakeToCamel);\n\n      const progressiveFieldValues: FormDefaultValues = new Map();\n\n      for (const key of required.concat(optional) as (keyof SignUpResource)[]) {\n        if (key in signUp) {\n          progressiveFieldValues.set(key, signUp[key] as string | number | readonly string[] | undefined);\n        }\n      }\n\n      context.formRef.send({\n        type: 'MARK_AS_PROGRESSIVE',\n        missing,\n        optional,\n        required,\n        defaultValues: progressiveFieldValues,\n      });\n    },\n    unmarkFormAsProgressive: ({ context }) => context.formRef.send({ type: 'UNMARK_AS_PROGRESSIVE' }),\n    sendToNext: ({ context, event }) =>\n      context.parent.send({ type: 'NEXT', resource: (event as unknown as DoneActorEvent<SignUpResource>).output }),\n    sendToLoading,\n  },\n  guards: {\n    isStatusMissingRequirements: ({ context }) =>\n      context.parent.getSnapshot().context.clerk?.client?.signUp?.status === 'missing_requirements',\n    hasMetPreviousMissingRequirements: ({ context }) => {\n      const signUp = context.parent.getSnapshot().context.clerk.client.signUp;\n\n      const fields = context.formRef.getSnapshot().context.fields;\n      const signUpMissingFields = signUp.missingFields.map(snakeToCamel);\n      const missingFields = Array.from(context.formRef.getSnapshot().context.fields.keys()).filter(key => {\n        return !signUpMissingFields.includes(key) && !fields.get(key)?.value && !fields.get(key)?.checked;\n      });\n\n      return missingFields.length === 0;\n    },\n  },\n  types: {} as SignUpContinueSchema,\n}).createMachine({\n  id: SignUpContinueMachineId,\n  context: ({ input }) => ({\n    basePath: input.basePath || SIGN_UP_DEFAULT_BASE_PATH,\n    formRef: input.formRef,\n    parent: input.parent,\n    loadingStep: 'continue',\n  }),\n  entry: 'markFormAsProgressive',\n  onDone: {\n    actions: 'unmarkFormAsProgressive',\n  },\n  initial: 'Pending',\n  states: {\n    Pending: {\n      tags: ['state:pending'],\n      description: 'Waiting for user input',\n      on: {\n        SUBMIT: {\n          guard: or(['hasMetPreviousMissingRequirements', not('isStatusMissingRequirements')]),\n          target: 'Attempting',\n          reenter: true,\n        },\n      },\n    },\n    Attempting: {\n      tags: ['state:attempting', 'state:loading'],\n      entry: 'sendToLoading',\n      invoke: {\n        id: 'attempt',\n        src: 'attempt',\n        input: ({ context }) => ({\n          parent: context.parent,\n          fields: context.formRef.getSnapshot().context.fields,\n        }),\n        onDone: {\n          actions: ['sendToNext', 'sendToLoading'],\n        },\n        onError: {\n          actions: ['setFormErrors', 'sendToLoading'],\n          target: 'Pending',\n        },\n      },\n    },\n  },\n});\n","import type { SignUpCreateParams, SignUpUpdateParams } from '@clerk/types';\n\nimport type { FormFields } from '~/internals/machines/form';\n\nconst SignUpAdditionalKeys = [\n  'firstName',\n  'lastName',\n  'emailAddress',\n  'username',\n  'password',\n  'phoneNumber',\n  'legalAccepted',\n] as const;\n\ntype SignUpAdditionalKeys = (typeof SignUpAdditionalKeys)[number];\n\nconst signUpKeys = new Set<SignUpAdditionalKeys>(SignUpAdditionalKeys);\n\nfunction isSignUpParam<T extends SignUpAdditionalKeys>(key: string): key is T {\n  return signUpKeys.has(key as T);\n}\n\nexport function fieldsToSignUpParams<T extends SignUpCreateParams | SignUpUpdateParams>(\n  fields: FormFields,\n): Pick<T, SignUpAdditionalKeys> {\n  const params: SignUpUpdateParams = {};\n\n  fields.forEach(({ value, checked, type }, key) => {\n    if (isSignUpParam(key) && value !== undefined && type !== 'checkbox') {\n      // @ts-expect-error - Type is not narrowed to string\n      params[key] = value as string;\n    }\n\n    if (isSignUpParam(key) && checked !== undefined && type === 'checkbox') {\n      // @ts-expect-error - Type is not narrowed to boolean\n      params[key] = checked;\n    }\n  });\n\n  return params;\n}\n","import { joinURL } from '@clerk/shared/url';\nimport type { SignUpStatus, VerificationStatus } from '@clerk/types';\nimport type { NonReducibleUnknown } from 'xstate';\nimport { and, assign, enqueueActions, log, not, or, raise, sendTo, setup } from 'xstate';\n\nimport {\n  ERROR_CODES,\n  ROUTING,\n  SEARCH_PARAMS,\n  SIGN_IN_DEFAULT_BASE_PATH,\n  SIGN_UP_DEFAULT_BASE_PATH,\n  SIGN_UP_MODES,\n  SSO_CALLBACK_PATH_ROUTE,\n} from '~/internals/constants';\nimport { ClerkElementsError, ClerkElementsRuntimeError } from '~/internals/errors';\nimport { ThirdPartyMachine, ThirdPartyMachineId } from '~/internals/machines/third-party';\nimport { shouldUseVirtualRouting } from '~/internals/machines/utils/next';\n\nimport { SignUpContinueMachine } from './continue.machine';\nimport type {\n  SignUpRouterContext,\n  SignUpRouterEvents,\n  SignUpRouterNextEvent,\n  SignUpRouterSchema,\n} from './router.types';\nimport { SignUpStartMachine } from './start.machine';\nimport { SignUpVerificationMachine } from './verification.machine';\n\nexport const SignUpRouterMachineId = 'SignUpRouter';\nexport type TSignUpRouterMachine = typeof SignUpRouterMachine;\n\nconst isCurrentPath =\n  (path: `/${string}`) =>\n  ({ context }: { context: SignUpRouterContext }, _params?: NonReducibleUnknown) =>\n    context.router?.match(path) ?? false;\n\nconst needsStatus =\n  (status: SignUpStatus) =>\n  ({ context, event }: { context: SignUpRouterContext; event?: SignUpRouterEvents }, _?: NonReducibleUnknown) =>\n    (event as SignUpRouterNextEvent)?.resource?.status === status || context.clerk?.client?.signUp?.status === status;\n\nexport const SignUpRouterMachine = setup({\n  actors: {\n    continueMachine: SignUpContinueMachine,\n    startMachine: SignUpStartMachine,\n    thirdPartyMachine: ThirdPartyMachine,\n    verificationMachine: SignUpVerificationMachine,\n  },\n  actions: {\n    clearFormErrors: sendTo(({ context }) => context.formRef, { type: 'ERRORS.CLEAR' }),\n    logUnknownError: snapshot => console.error('Unknown error:', snapshot),\n    navigateInternal: ({ context }, { path, force = false }: { path: string; force?: boolean }) => {\n      if (!context.router) {\n        return;\n      }\n      if (!force && shouldUseVirtualRouting()) {\n        return;\n      }\n      if (context.exampleMode) {\n        return;\n      }\n\n      const resolvedPath = joinURL(context.router.basePath, path);\n      if (resolvedPath === context.router.pathname()) {\n        return;\n      }\n\n      context.router.shallowPush(resolvedPath);\n    },\n    navigateExternal: ({ context }, { path }: { path: string }) => context.router?.push(path),\n    raiseNext: raise({ type: 'NEXT' }),\n    setActive: ({ context, event }, params?: { sessionId?: string; useLastActiveSession?: boolean }) => {\n      if (context.exampleMode) {\n        return;\n      }\n\n      const session =\n        params?.sessionId ||\n        (params?.useLastActiveSession && context.clerk.client.lastActiveSessionId) ||\n        ((event as SignUpRouterNextEvent)?.resource || context.clerk.client.signUp).createdSessionId;\n\n      void context.clerk.setActive({\n        session,\n        redirectUrl: context.clerk.buildAfterSignUpUrl({\n          params: context.router?.searchParams(),\n        }),\n      });\n    },\n    delayedReset: raise({ type: 'RESET' }, { delay: 3000 }), // Reset machine after 3s delay.\n    setError: assign({\n      error: (_, { error }: { error?: ClerkElementsError }) => {\n        if (error) {\n          return error;\n        }\n        return new ClerkElementsRuntimeError('Unknown error');\n      },\n    }),\n    setFormOAuthErrors: ({ context }) => {\n      const errorOrig = context.clerk.client.signIn.firstFactorVerification.error;\n\n      if (!errorOrig) {\n        return;\n      }\n\n      let error: ClerkElementsError;\n\n      switch (errorOrig.code) {\n        case ERROR_CODES.NOT_ALLOWED_TO_SIGN_UP:\n        case ERROR_CODES.OAUTH_ACCESS_DENIED:\n        case ERROR_CODES.NOT_ALLOWED_ACCESS:\n        case ERROR_CODES.SAML_USER_ATTRIBUTE_MISSING:\n        case ERROR_CODES.OAUTH_EMAIL_DOMAIN_RESERVED_BY_SAML:\n        case ERROR_CODES.USER_LOCKED:\n        case ERROR_CODES.ENTERPRISE_SSO_USER_ATTRIBUTE_MISSING:\n        case ERROR_CODES.ENTERPRISE_SSO_EMAIL_ADDRESS_DOMAIN_MISMATCH:\n        case ERROR_CODES.ENTERPRISE_SSO_HOSTED_DOMAIN_MISMATCH:\n        case ERROR_CODES.SAML_EMAIL_ADDRESS_DOMAIN_MISMATCH:\n        case ERROR_CODES.ORGANIZATION_MEMBERSHIP_QUOTA_EXCEEDED_FOR_SSO:\n          // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n          error = new ClerkElementsError(errorOrig.code, errorOrig.longMessage!);\n          break;\n        default:\n          error = new ClerkElementsError(\n            'unable_to_complete',\n            'Unable to complete action at this time. If the problem persists please contact support.',\n          );\n      }\n\n      context.formRef.send({\n        type: 'ERRORS.SET',\n        error,\n      });\n    },\n    transfer: ({ context }) => context.router?.push(context.clerk.buildSignInUrl()),\n  },\n  guards: {\n    areFieldsMissing: ({ context }) => context.clerk?.client?.signUp?.missingFields?.length > 0,\n    areFieldsUnverified: ({ context }) => context.clerk?.client?.signUp?.unverifiedFields?.length > 0,\n\n    hasAuthenticatedViaClerkJS: ({ context }) =>\n      Boolean(context.clerk.client.signUp.status === null && context.clerk.client.lastActiveSessionId),\n    hasCreatedSession: ({ context }) => Boolean(context.router?.searchParams().get(SEARCH_PARAMS.createdSession)),\n    hasClerkStatus: ({ context }, params?: { status: VerificationStatus }) => {\n      const value = context.router?.searchParams().get(SEARCH_PARAMS.status);\n      if (!params) {\n        return Boolean(value);\n      }\n      return value === params.status;\n    },\n    hasClerkTransfer: ({ context }) => Boolean(context.router?.searchParams().get(SEARCH_PARAMS.transfer)),\n    hasResource: ({ context }) => Boolean(context.clerk.client.signUp),\n    hasTicket: ({ context }) => Boolean(context.ticket),\n\n    isLoggedInAndSingleSession: and(['isLoggedIn', 'isSingleSessionMode', not('isExampleMode')]),\n    isStatusAbandoned: needsStatus('abandoned'),\n    isStatusComplete: ({ context, event }) => {\n      const resource = (event as SignUpRouterNextEvent)?.resource;\n      const signUp = context.clerk?.client?.signUp;\n\n      return (\n        (resource?.status === 'complete' && Boolean(resource?.createdSessionId)) ||\n        (signUp?.status === 'complete' && Boolean(signUp?.createdSessionId))\n      );\n    },\n    isStatusMissingRequirements: needsStatus('missing_requirements'),\n\n    isLoggedIn: or(['isStatusComplete', ({ context }) => Boolean(context.clerk.user)]),\n    isSingleSessionMode: ({ context }) => Boolean(context.clerk?.__unstable__environment?.authConfig.singleSessionMode),\n    isRestricted: ({ context }) =>\n      context.clerk?.__unstable__environment?.userSettings.signUp.mode === SIGN_UP_MODES.RESTRICTED,\n    isRestrictedWithoutTicket: and(['isRestricted', not('hasTicket')]),\n    isExampleMode: ({ context }) => Boolean(context.exampleMode),\n    isMissingRequiredFields: and(['isStatusMissingRequirements', 'areFieldsMissing']),\n    isMissingRequiredUnverifiedFields: and(['isStatusMissingRequirements', 'areFieldsUnverified']),\n\n    needsIdentifier: or(['statusNeedsIdentifier', isCurrentPath('/')]),\n    needsContinue: and(['statusNeedsContinue', isCurrentPath('/continue')]),\n    needsVerification: and(['statusNeedsVerification', isCurrentPath('/verify')]),\n    needsCallback: isCurrentPath(SSO_CALLBACK_PATH_ROUTE),\n\n    statusNeedsIdentifier: or([not('hasResource'), 'isStatusAbandoned']),\n    statusNeedsContinue: or(['isMissingRequiredFields']),\n    statusNeedsVerification: or(['isMissingRequiredUnverifiedFields', and(['areFieldsMissing', 'hasClerkStatus'])]),\n  },\n  delays: {\n    'TIMEOUT.POLLING': 300_000, // 5 minutes\n  },\n  types: {} as SignUpRouterSchema,\n}).createMachine({\n  id: SignUpRouterMachineId,\n  // @ts-expect-error - Set in INIT event\n  context: {},\n  initial: 'Idle',\n  on: {\n    'AUTHENTICATE.OAUTH': {\n      actions: sendTo(ThirdPartyMachineId, ({ context, event }) => ({\n        type: 'REDIRECT',\n        params: {\n          strategy: event.strategy,\n          redirectUrl: `${\n            context.router?.mode === ROUTING.virtual\n              ? context.clerk.__unstable__environment?.displayConfig.signUpUrl\n              : context.router?.basePath\n          }${SSO_CALLBACK_PATH_ROUTE}`,\n          redirectUrlComplete: context.clerk.buildAfterSignUpUrl({\n            params: context.router?.searchParams(),\n          }),\n        },\n      })),\n    },\n    'AUTHENTICATE.SAML': {\n      actions: sendTo(ThirdPartyMachineId, ({ context }) => ({\n        type: 'REDIRECT',\n        params: {\n          strategy: 'saml',\n          emailAddress: context.formRef.getSnapshot().context.fields.get('emailAddress')?.value,\n          redirectUrl: `${\n            context.router?.mode === ROUTING.virtual\n              ? context.clerk.__unstable__environment?.displayConfig.signUpUrl\n              : context.router?.basePath\n          }${SSO_CALLBACK_PATH_ROUTE}`,\n          redirectUrlComplete: context.clerk.buildAfterSignUpUrl({\n            params: context.router?.searchParams(),\n          }),\n        },\n      })),\n    },\n    'AUTHENTICATE.ENTERPRISE_SSO': {\n      actions: sendTo(ThirdPartyMachineId, ({ context }) => ({\n        type: 'REDIRECT',\n        params: {\n          strategy: 'enterprise_sso',\n          emailAddress: context.formRef.getSnapshot().context.fields.get('emailAddress')?.value,\n          redirectUrl: `${\n            context.router?.mode === ROUTING.virtual\n              ? context.clerk.__unstable__environment?.displayConfig.signUpUrl\n              : context.router?.basePath\n          }${SSO_CALLBACK_PATH_ROUTE}`,\n          redirectUrlComplete: context.clerk.buildAfterSignUpUrl({\n            params: context.router?.searchParams(),\n          }),\n        },\n      })),\n    },\n    'AUTHENTICATE.WEB3': {\n      actions: sendTo('start', ({ event }) => event),\n    },\n    'FORM.ATTACH': {\n      description: 'Attach/re-attach the form to the router.',\n      actions: enqueueActions(({ enqueue, event }) => {\n        enqueue.assign({\n          formRef: event.formRef,\n        });\n\n        // Reset the current step, to reset the form reference.\n        enqueue.raise({ type: 'RESET.STEP' });\n      }),\n    },\n    'NAVIGATE.PREVIOUS': '.Hist',\n    'NAVIGATE.START': '.Start',\n    LOADING: {\n      actions: assign(({ event }) => ({\n        loading: {\n          isLoading: event.isLoading,\n          step: event.step,\n          strategy: event.strategy,\n          action: event.action,\n        },\n      })),\n    },\n    RESET: '.Idle',\n  },\n  states: {\n    Idle: {\n      on: {\n        INIT: {\n          actions: assign(({ event }) => {\n            const searchParams = event.router?.searchParams();\n\n            return {\n              clerk: event.clerk,\n              router: event.router,\n              signInPath: event.signInPath || SIGN_IN_DEFAULT_BASE_PATH,\n              loading: {\n                isLoading: false,\n              },\n              exampleMode: event.exampleMode || false,\n              formRef: event.formRef,\n              ticket:\n                searchParams?.get(SEARCH_PARAMS.ticket) ||\n                searchParams?.get(SEARCH_PARAMS.invitationToken) ||\n                undefined,\n            };\n          }),\n          target: 'Init',\n        },\n      },\n    },\n    Init: {\n      entry: enqueueActions(({ context, enqueue, self }) => {\n        if (!self.getSnapshot().children[ThirdPartyMachineId]) {\n          enqueue.spawnChild('thirdPartyMachine', {\n            id: ThirdPartyMachineId,\n            systemId: ThirdPartyMachineId,\n            input: {\n              basePath: context.router?.basePath ?? SIGN_UP_DEFAULT_BASE_PATH,\n              flow: 'signUp',\n              formRef: context.formRef,\n              parent: self,\n            },\n          });\n        }\n      }),\n      always: [\n        {\n          guard: 'isLoggedInAndSingleSession',\n          actions: [\n            log('Already logged in'),\n            {\n              type: 'navigateExternal',\n              params: ({ context }) => ({\n                path: context.clerk.buildAfterSignUpUrl({\n                  params: context.router?.searchParams(),\n                }),\n              }),\n            },\n          ],\n        },\n        {\n          guard: 'needsCallback',\n          target: 'Callback',\n        },\n        {\n          guard: 'hasTicket',\n          actions: { type: 'navigateInternal', params: { force: true, path: '/' } },\n          target: 'Start',\n        },\n        {\n          guard: 'needsVerification',\n          actions: { type: 'navigateInternal', params: { force: true, path: '/verify' } },\n          target: 'Verification',\n        },\n        {\n          guard: or(['needsContinue', 'hasClerkTransfer']),\n          actions: { type: 'navigateInternal', params: { force: true, path: '/continue' } },\n          target: 'Continue',\n        },\n        {\n          guard: 'isRestrictedWithoutTicket',\n          target: 'Restricted',\n        },\n        {\n          actions: { type: 'navigateInternal', params: { force: true, path: '/' } },\n          target: 'Start',\n        },\n      ],\n    },\n    Start: {\n      tags: ['step:start'],\n      exit: 'clearFormErrors',\n      invoke: {\n        id: 'start',\n        src: 'startMachine',\n        input: ({ context, self }) => ({\n          basePath: context.router?.basePath,\n          formRef: context.formRef,\n          parent: self,\n          ticket: context.ticket,\n        }),\n        onDone: {\n          actions: 'raiseNext',\n        },\n      },\n      on: {\n        'RESET.STEP': {\n          actions: enqueueActions(({ enqueue, context }) => {\n            enqueue('clearFormErrors');\n            enqueue.sendTo('start', { type: 'SET_FORM', formRef: context.formRef });\n          }),\n        },\n        NEXT: [\n          {\n            guard: 'isStatusComplete',\n            actions: ['setActive', 'delayedReset'],\n          },\n          {\n            guard: and(['hasTicket', 'statusNeedsContinue']),\n            actions: { type: 'navigateInternal', params: { path: '/' } },\n            target: 'Start',\n            reenter: true,\n          },\n          {\n            guard: 'statusNeedsVerification',\n            target: 'Verification',\n            actions: { type: 'navigateInternal', params: { path: '/verify' } },\n          },\n          {\n            guard: 'statusNeedsContinue',\n            actions: { type: 'navigateInternal', params: { path: '/continue' } },\n            target: 'Continue',\n          },\n        ],\n      },\n    },\n    Continue: {\n      tags: ['step:continue'],\n      invoke: {\n        id: 'continue',\n        src: 'continueMachine',\n        input: ({ context, self }) => ({\n          basePath: context.router?.basePath,\n          formRef: context.formRef,\n          parent: self,\n        }),\n        onDone: {\n          actions: 'raiseNext',\n        },\n      },\n      on: {\n        'RESET.STEP': {\n          target: 'Continue',\n          reenter: true,\n        },\n        NEXT: [\n          {\n            guard: 'isStatusComplete',\n            actions: ['setActive', 'delayedReset'],\n          },\n          {\n            guard: 'statusNeedsVerification',\n            target: 'Verification',\n            actions: { type: 'navigateInternal', params: { path: '/verify' } },\n          },\n        ],\n      },\n    },\n    Verification: {\n      tags: ['step:verification'],\n      invoke: {\n        id: 'verification',\n        src: 'verificationMachine',\n        input: ({ context, self }) => ({\n          attributes: context.clerk.__unstable__environment?.userSettings.attributes,\n          basePath: context.router?.basePath,\n          formRef: context.formRef,\n          parent: self,\n          resource: context.clerk.client.signUp,\n        }),\n        onDone: {\n          actions: 'raiseNext',\n        },\n      },\n      always: [\n        {\n          guard: 'hasCreatedSession',\n          actions: [\n            ({ context }) => ({\n              type: 'setActive',\n              params: { sessionId: context.router?.searchParams().get(SEARCH_PARAMS.createdSession) },\n            }),\n            'delayedReset',\n          ],\n        },\n        {\n          guard: { type: 'hasClerkStatus', params: { status: 'verified' } },\n          actions: { type: 'navigateInternal', params: { force: true, path: '/continue' } },\n        },\n        {\n          guard: { type: 'hasClerkStatus', params: { status: 'expired' } },\n          actions: { type: 'navigateInternal', params: { force: true, path: '/' } },\n        },\n      ],\n      on: {\n        'RESET.STEP': {\n          target: 'Verification',\n          reenter: true,\n        },\n        NEXT: [\n          {\n            guard: 'isStatusComplete',\n            actions: ['setActive', 'delayedReset'],\n          },\n          {\n            guard: 'statusNeedsContinue',\n            actions: { type: 'navigateInternal', params: { path: '/continue' } },\n            target: 'Continue',\n          },\n        ],\n      },\n    },\n    Callback: {\n      tags: ['step:callback'],\n      entry: sendTo(ThirdPartyMachineId, { type: 'CALLBACK' }),\n      on: {\n        NEXT: [\n          {\n            guard: 'isStatusComplete',\n            actions: ['setActive', 'delayedReset'],\n          },\n          {\n            description: 'Handle a case where the user has already been authenticated via ClerkJS',\n            guard: 'hasAuthenticatedViaClerkJS',\n            actions: [{ type: 'setActive', params: { useLastActiveSession: true } }, 'delayedReset'],\n          },\n          {\n            guard: 'statusNeedsVerification',\n            actions: { type: 'navigateInternal', params: { path: '/verify' } },\n            target: 'Verification',\n          },\n          {\n            guard: 'statusNeedsContinue',\n            actions: { type: 'navigateInternal', params: { path: '/continue' } },\n            target: 'Continue',\n          },\n          {\n            actions: { type: 'navigateInternal', params: { path: '/' } },\n            target: 'Start',\n          },\n        ],\n      },\n    },\n    Restricted: {\n      tags: ['step:restricted'],\n      on: {\n        NEXT: 'Start',\n      },\n    },\n    Error: {\n      tags: ['step:error'],\n      on: {\n        NEXT: {\n          target: 'Start',\n          actions: 'clearFormErrors',\n        },\n      },\n    },\n    Hist: {\n      type: 'history',\n      exit: 'clearFormErrors',\n    },\n  },\n});\n","import type { SignUpResource, Web3Strategy } from '@clerk/types';\nimport type { DoneActorEvent } from 'xstate';\nimport { and, assertEvent, assign, enqueueActions, fromPromise, not, sendTo, setup } from 'xstate';\n\nimport { SIGN_UP_DEFAULT_BASE_PATH } from '~/internals/constants';\nimport { ClerkElementsRuntimeError } from '~/internals/errors';\nimport type { FormFields } from '~/internals/machines/form';\nimport type { SetFormEvent } from '~/internals/machines/shared';\nimport { sendToLoading } from '~/internals/machines/shared';\nimport { fieldsToSignUpParams } from '~/internals/machines/sign-up/utils';\nimport { ThirdPartyMachine } from '~/internals/machines/third-party';\nimport { assertActorEventError } from '~/internals/machines/utils/assert';\n\nimport type { SignInRouterMachineActorRef } from './router.types';\nimport type { SignUpStartSchema } from './start.types';\n\nconst DISABLEABLE_FIELDS = ['emailAddress', 'phoneNumber'] as const;\n\nexport type TSignUpStartMachine = typeof SignUpStartMachine;\n\nexport const SignUpStartMachineId = 'SignUpStart';\n\ntype AttemptParams = { strategy: 'ticket'; ticket: string } | { strategy?: never; ticket?: never };\ntype PrefillFieldsKeys = keyof Pick<\n  SignUpResource,\n  'username' | 'firstName' | 'lastName' | 'emailAddress' | 'phoneNumber'\n>;\nconst PREFILL_FIELDS: PrefillFieldsKeys[] = ['firstName', 'lastName', 'emailAddress', 'username', 'phoneNumber'];\n\nexport const SignUpStartMachine = setup({\n  actors: {\n    attempt: fromPromise<\n      SignUpResource,\n      { parent: SignInRouterMachineActorRef; fields: FormFields; params?: AttemptParams }\n    >(({ input: { fields, parent, params } }) => {\n      const fieldParams = fieldsToSignUpParams(fields);\n      return parent.getSnapshot().context.clerk.client.signUp.create({ ...fieldParams, ...params });\n    }),\n    attemptWeb3: fromPromise<SignUpResource, { parent: SignInRouterMachineActorRef; strategy: Web3Strategy }>(\n      ({ input: { parent, strategy } }) => {\n        if (strategy === 'web3_metamask_signature') {\n          return parent.getSnapshot().context.clerk.client.signUp.authenticateWithMetamask();\n        }\n        if (strategy === 'web3_coinbase_wallet_signature') {\n          return parent.getSnapshot().context.clerk.client.signUp.authenticateWithCoinbaseWallet();\n        }\n        if (strategy === 'web3_okx_wallet_signature') {\n          return parent.getSnapshot().context.clerk.client.signUp.authenticateWithOKXWallet();\n        }\n        throw new ClerkElementsRuntimeError(`Unsupported Web3 strategy: ${strategy}`);\n      },\n    ),\n    thirdParty: ThirdPartyMachine,\n  },\n  actions: {\n    sendToNext: ({ context, event }) =>\n      context.parent.send({ type: 'NEXT', resource: (event as unknown as DoneActorEvent<SignUpResource>).output }),\n    sendToLoading,\n    setFormRef: assign(({ event }) => {\n      return {\n        formRef: (event as unknown as SetFormEvent).formRef,\n      };\n    }),\n    setFormDisabledTicketFields: enqueueActions(({ context, enqueue }) => {\n      if (!context.ticket) {\n        return;\n      }\n\n      const currentFields = context.formRef.getSnapshot().context.fields;\n\n      for (const name of DISABLEABLE_FIELDS) {\n        if (currentFields.has(name)) {\n          enqueue.sendTo(context.formRef, { type: 'FIELD.DISABLE', field: { name } });\n        }\n      }\n    }),\n    setFormErrors: sendTo(\n      ({ context }) => context.formRef,\n      ({ event }) => {\n        assertActorEventError(event);\n        return {\n          type: 'ERRORS.SET',\n          error: event.error,\n        };\n      },\n    ),\n    setDefaultFormValues: ({ context }) => {\n      const signUp = context.parent.getSnapshot().context.clerk.client.signUp;\n      const prefilledDefaultValues = new Map();\n\n      for (const key of PREFILL_FIELDS) {\n        if (key in signUp) {\n          prefilledDefaultValues.set(key, signUp[key]);\n        }\n      }\n\n      context.formRef.send({\n        type: 'PREFILL_DEFAULT_VALUES',\n        defaultValues: prefilledDefaultValues,\n      });\n    },\n  },\n  guards: {\n    isMissingRequirements: ({ context }) =>\n      context.parent.getSnapshot().context.clerk?.client?.signUp?.status === 'missing_requirements',\n    hasTicket: ({ context }) => Boolean(context.ticket),\n    isExampleMode: ({ context }) => Boolean(context.parent.getSnapshot().context.exampleMode),\n  },\n  types: {} as SignUpStartSchema,\n}).createMachine({\n  id: SignUpStartMachineId,\n  context: ({ input }) => ({\n    basePath: input.basePath || SIGN_UP_DEFAULT_BASE_PATH,\n    formRef: input.formRef,\n    parent: input.parent,\n    loadingStep: 'start',\n    ticket: input.ticket,\n  }),\n  entry: 'setDefaultFormValues',\n  initial: 'Init',\n  on: {\n    SET_FORM: {\n      actions: 'setFormRef',\n    },\n  },\n  states: {\n    Init: {\n      description:\n        'Handle ticket, if present; Else, default to Pending state. Per tickets, `Attempting` makes a `signUp.create` request allowing for an incomplete sign up to contain progressively filled fields on the Start step.',\n      always: [\n        {\n          guard: and(['hasTicket', 'isMissingRequirements']),\n          target: 'Pending',\n        },\n        {\n          guard: 'hasTicket',\n          target: 'Attempting',\n        },\n        {\n          target: 'Pending',\n        },\n      ],\n    },\n    Pending: {\n      tags: ['state:pending'],\n      description: 'Waiting for user input',\n      on: {\n        SUBMIT: {\n          guard: not('isExampleMode'),\n          target: 'Attempting',\n          reenter: true,\n        },\n        'AUTHENTICATE.WEB3': {\n          guard: not('isExampleMode'),\n          target: 'AttemptingWeb3',\n          reenter: true,\n        },\n      },\n    },\n    Attempting: {\n      tags: ['state:attempting', 'state:loading'],\n      entry: 'sendToLoading',\n      invoke: {\n        id: 'attemptCreate',\n        src: 'attempt',\n        input: ({ context }) => {\n          // Standard fields\n          const defaultParams = {\n            fields: context.formRef.getSnapshot().context.fields,\n            parent: context.parent,\n          };\n\n          // Handle ticket-specific flows\n          const params: AttemptParams = context.ticket\n            ? {\n                strategy: 'ticket',\n                ticket: context.ticket,\n              }\n            : {};\n\n          return { ...defaultParams, params };\n        },\n        onDone: {\n          actions: ['setFormDisabledTicketFields', 'sendToNext', 'sendToLoading'],\n        },\n        onError: {\n          actions: ['setFormDisabledTicketFields', 'setFormErrors', 'sendToLoading'],\n          target: 'Pending',\n        },\n      },\n    },\n    AttemptingWeb3: {\n      tags: ['state:attempting', 'state:loading'],\n      entry: 'sendToLoading',\n      invoke: {\n        id: 'attemptCreateWeb3',\n        src: 'attemptWeb3',\n        input: ({ context, event }) => {\n          assertEvent(event, 'AUTHENTICATE.WEB3');\n          return {\n            parent: context.parent,\n            strategy: event.strategy,\n          };\n        },\n        onDone: {\n          actions: ['sendToNext', 'sendToLoading'],\n        },\n        onError: {\n          actions: ['setFormErrors', 'sendToLoading'],\n          target: 'Pending',\n        },\n      },\n    },\n  },\n});\n","import { Poller } from '@clerk/shared/poller';\nimport type {\n  AttemptVerificationParams,\n  Attribute,\n  PrepareVerificationParams,\n  SignUpResource,\n  SignUpVerifiableField,\n  SignUpVerificationsResource,\n  VerificationStrategy,\n} from '@clerk/types';\nimport type { Writable } from 'type-fest';\nimport { and, assign, enqueueActions, fromCallback, fromPromise, log, raise, sendParent, sendTo, setup } from 'xstate';\n\nimport {\n  MAGIC_LINK_VERIFY_PATH_ROUTE,\n  RESENDABLE_COUNTDOWN_DEFAULT,\n  SIGN_UP_DEFAULT_BASE_PATH,\n} from '~/internals/constants';\nimport { ClerkElementsError, ClerkElementsRuntimeError } from '~/internals/errors';\nimport type { WithParams } from '~/internals/machines/shared';\nimport { sendToLoading } from '~/internals/machines/shared';\nimport { assertActorEventError } from '~/internals/machines/utils/assert';\n\nimport type { SignInRouterMachineActorRef } from './router.types';\nimport {\n  type SignUpVerificationContext,\n  SignUpVerificationDelays,\n  type SignUpVerificationEmailLinkFailedEvent,\n  type SignUpVerificationEvents,\n  type SignUpVerificationSchema,\n} from './verification.types';\n\nexport type SignUpVerificationsResourceKey = keyof SignUpVerificationsResource;\nexport type TSignUpVerificationMachine = typeof SignUpVerificationMachine;\n\nexport type StartSignUpEmailLinkFlowEvents = { type: 'STOP' };\nexport type StartSignUpEmailLinkFlowInput = {\n  parent: SignInRouterMachineActorRef;\n};\n\nexport const SignUpVerificationMachineId = 'SignUpVerification';\n\nconst shouldVerify = (field: SignUpVerifiableField, strategy?: VerificationStrategy) => {\n  const guards: Writable<Parameters<typeof and<SignUpVerificationContext, SignUpVerificationEvents, any>>[0]> = [\n    {\n      type: 'isFieldUnverified',\n      params: {\n        field,\n      },\n    },\n  ];\n\n  if (strategy) {\n    guards.push({\n      type: 'isStrategyEnabled',\n      params: {\n        attribute: field,\n        strategy,\n      },\n    });\n  }\n\n  return and(guards);\n};\n\nexport type PrepareVerificationInput = {\n  parent: SignInRouterMachineActorRef;\n} & WithParams<PrepareVerificationParams>;\nexport type AttemptVerificationInput = {\n  parent: SignInRouterMachineActorRef;\n} & WithParams<AttemptVerificationParams>;\n\nexport const SignUpVerificationMachine = setup({\n  actors: {\n    prepare: fromPromise<SignUpResource, PrepareVerificationInput>(({ input: { params, parent } }) => {\n      const clerk = parent.getSnapshot().context.clerk;\n\n      if (params.strategy === 'email_link' && params.redirectUrl) {\n        params.redirectUrl = clerk.buildUrlWithAuth(params.redirectUrl);\n      }\n\n      return clerk.client.signUp.prepareVerification(params);\n    }),\n    attempt: fromPromise<SignUpResource, AttemptVerificationInput>(async ({ input: { params, parent } }) =>\n      parent.getSnapshot().context.clerk.client.signUp.attemptVerification(params),\n    ),\n    attemptEmailLinkVerification: fromCallback<StartSignUpEmailLinkFlowEvents, StartSignUpEmailLinkFlowInput>(\n      ({ receive, sendBack, input: { parent } }) => {\n        const { run, stop } = Poller();\n\n        const clerk = parent.getSnapshot().context.clerk;\n\n        void run(async () =>\n          clerk.client.signUp\n            .reload()\n            .then((resource: SignUpResource) => {\n              const signInStatus = resource.status;\n              const verificationStatus = resource.verifications.emailAddress.status;\n\n              // Short-circuit if the sign-up resource is already complete\n              if (signInStatus === 'complete') {\n                return sendBack({ type: 'EMAIL_LINK.VERIFIED', resource });\n              }\n\n              switch (verificationStatus) {\n                case 'verified':\n                case 'transferable':\n                case 'expired': {\n                  sendBack({ type: `EMAIL_LINK.${verificationStatus.toUpperCase()}`, resource });\n                  break;\n                }\n                case 'failed': {\n                  sendBack({\n                    type: 'EMAIL_LINK.FAILED',\n                    error: new ClerkElementsError('email-link-verification-failed', 'Email verification failed'),\n                    resource,\n                  });\n                  break;\n                }\n                // case 'unverified':\n                default:\n                  return;\n              }\n\n              stop();\n            })\n            .catch((error: Error) => {\n              stop();\n              new ClerkElementsRuntimeError(error.message);\n            }),\n        );\n\n        receive(event => {\n          if (event.type === 'STOP') {\n            stop();\n          }\n        });\n\n        return () => stop();\n      },\n    ),\n  },\n  actions: {\n    resendableTick: assign(({ context }) => ({\n      resendable: context.resendableAfter === 1,\n      resendableAfter: context.resendableAfter > 1 ? context.resendableAfter - 1 : context.resendableAfter,\n    })),\n    resendableReset: assign({\n      resendable: false,\n      resendableAfter: RESENDABLE_COUNTDOWN_DEFAULT,\n    }),\n    sendToLoading,\n    setFormErrors: sendTo(\n      ({ context }) => context.formRef,\n      ({ event }) => {\n        assertActorEventError(event);\n        return {\n          type: 'ERRORS.SET',\n          error: event.error,\n        };\n      },\n    ),\n  },\n  guards: {\n    isComplete: ({ context }) => context.resource.status === 'complete',\n    isFieldUnverified: ({ context, event }, { field }: { field: SignUpVerifiableField }) => {\n      let resource = context.resource;\n\n      if (event?.type === 'NEXT' && event.resource) {\n        resource = event.resource;\n      }\n\n      return resource.unverifiedFields.includes(field);\n    },\n    isResendable: ({ context }) => context.resendable || context.resendableAfter === 0,\n    isStrategyEnabled: (\n      { context },\n      { attribute, strategy }: { attribute: Attribute; strategy: VerificationStrategy },\n    ) => Boolean(context.attributes?.[attribute].verifications.includes(strategy)),\n    shouldVerifyPhoneCode: shouldVerify('phone_number'),\n    shouldVerifyEmailLink: shouldVerify('email_address', 'email_link'),\n    shouldVerifyEmailCode: shouldVerify('email_address', 'email_code'),\n  },\n  delays: SignUpVerificationDelays,\n  types: {} as SignUpVerificationSchema,\n}).createMachine({\n  id: SignUpVerificationMachineId,\n  initial: 'Init',\n  context: ({ input }) => ({\n    attributes: input.attributes,\n    basePath: input.basePath || SIGN_UP_DEFAULT_BASE_PATH,\n    loadingStep: 'verifications',\n    formRef: input.formRef,\n    parent: input.parent,\n    resendable: false,\n    resendableAfter: RESENDABLE_COUNTDOWN_DEFAULT,\n    resource: input.resource,\n  }),\n  on: {\n    NEXT: [\n      {\n        guard: 'isComplete',\n        actions: sendParent(({ event }) => ({ type: 'NEXT', resource: event.resource })),\n      },\n      {\n        description: 'Validate via phone number',\n        guard: 'shouldVerifyPhoneCode',\n        target: '.PhoneCode',\n      },\n      {\n        description: 'Validate via email link',\n        guard: 'shouldVerifyEmailLink',\n        target: '.EmailLink',\n      },\n      {\n        description: 'Verify via email code',\n        guard: 'shouldVerifyEmailCode',\n        target: '.EmailCode',\n      },\n      {\n        actions: sendParent(({ event }) => ({ type: 'NEXT', resource: event.resource })),\n      },\n    ],\n  },\n  states: {\n    Init: {\n      always: [\n        {\n          description: 'Validate via phone number',\n          guard: 'shouldVerifyPhoneCode',\n          target: 'PhoneCode',\n        },\n        {\n          description: 'Validate via email link',\n          guard: 'shouldVerifyEmailLink',\n          target: 'EmailLink',\n        },\n        {\n          description: 'Verify via email code',\n          guard: 'shouldVerifyEmailCode',\n          target: 'EmailCode',\n        },\n        {\n          actions: sendParent(({ context }) => ({ type: 'NEXT', resource: context.resource })),\n        },\n      ],\n    },\n    EmailLink: {\n      tags: ['verification:method:email', 'verification:category:link', 'verification:email_link'],\n      initial: 'Preparing',\n      on: {\n        RETRY: '.Preparing',\n        'EMAIL_LINK.RESTART': {\n          target: '.Attempting',\n          reenter: true,\n        },\n        'EMAIL_LINK.FAILED': {\n          actions: [\n            {\n              type: 'setFormErrors',\n              params: ({ event }: { event: SignUpVerificationEmailLinkFailedEvent }) => ({ error: event.error }),\n            },\n            assign({ resource: ({ event }) => event.resource }),\n          ],\n          target: '.Pending',\n        },\n        'EMAIL_LINK.*': {\n          actions: enqueueActions(({ enqueue, event }) => {\n            if (event.type === 'EMAIL_LINK.RESTART') {\n              return;\n            }\n\n            enqueue.assign({ resource: event.resource });\n            enqueue.raise({ type: 'NEXT', resource: event.resource });\n          }),\n        },\n      },\n      states: {\n        Preparing: {\n          tags: ['state:preparing', 'state:loading'],\n          exit: 'resendableReset',\n          invoke: {\n            id: 'prepareEmailLinkVerification',\n            src: 'prepare',\n            input: ({ context }) => ({\n              parent: context.parent,\n              params: {\n                strategy: 'email_link',\n                redirectUrl: `${context.basePath}${MAGIC_LINK_VERIFY_PATH_ROUTE}`,\n              },\n            }),\n            onDone: {\n              target: 'Attempting',\n              actions: assign({ resource: ({ event }) => event.output }),\n            },\n            onError: {\n              actions: 'setFormErrors',\n              target: 'Pending',\n            },\n          },\n        },\n        Pending: {\n          description: 'Placeholder for allowing resending of email link',\n          tags: ['state:pending'],\n          on: {\n            NEXT: 'Preparing',\n          },\n        },\n        Attempting: {\n          tags: ['state:attempting'],\n          invoke: {\n            id: 'attemptEmailLinkVerification',\n            src: 'attemptEmailLinkVerification',\n            input: ({ context }) => ({\n              parent: context.parent,\n            }),\n          },\n          after: {\n            emailLinkTimeout: {\n              description: 'Timeout after 5 minutes',\n              target: 'Pending',\n              actions: sendTo(({ context }) => context.formRef, {\n                type: 'ERRORS.SET',\n                error: new ClerkElementsError('verify-email-link-timeout', 'Email link verification timed out'),\n              }),\n            },\n          },\n          initial: 'NotResendable',\n          states: {\n            Resendable: {\n              description: 'Waiting for user to retry',\n            },\n            NotResendable: {\n              description: 'Handle countdowns',\n              on: {\n                RETRY: {\n                  actions: log(({ context }) => `Not retriable; Try again in ${context.resendableAfter}s`),\n                },\n              },\n              after: {\n                resendableTimeout: [\n                  {\n                    description: 'Set as retriable if countdown is 0',\n                    guard: 'isResendable',\n                    actions: 'resendableTick',\n                    target: 'Resendable',\n                  },\n                  {\n                    description: 'Continue countdown if not retriable',\n                    actions: 'resendableTick',\n                    target: 'NotResendable',\n                    reenter: true,\n                  },\n                ],\n              },\n            },\n          },\n        },\n      },\n    },\n    EmailCode: {\n      tags: ['verification:method:email', 'verification:category:code', 'verification:email_code'],\n      initial: 'Preparing',\n      states: {\n        Preparing: {\n          tags: ['state:preparing', 'state:loading'],\n          exit: 'resendableReset',\n          invoke: {\n            id: 'prepareEmailAddressCodeVerification',\n            src: 'prepare',\n            input: ({ context }) => ({\n              parent: context.parent,\n              params: {\n                strategy: 'email_code',\n              },\n            }),\n            onDone: [\n              {\n                guard: 'shouldVerifyEmailCode',\n                target: 'Pending',\n              },\n              {\n                actions: [\n                  assign({ resource: ({ event }) => event.output }),\n                  raise(({ event }) => ({ type: 'NEXT', resource: event.output })),\n                ],\n              },\n            ],\n            onError: {\n              actions: 'setFormErrors',\n              target: 'Pending',\n            },\n          },\n        },\n        Pending: {\n          tags: ['state:pending'],\n          on: {\n            RETRY: 'Preparing',\n            SUBMIT: {\n              target: 'Attempting',\n              reenter: true,\n            },\n          },\n          initial: 'NotResendable',\n          states: {\n            Resendable: {\n              description: 'Waiting for user to retry',\n            },\n            NotResendable: {\n              description: 'Handle countdowns',\n              on: {\n                RETRY: {\n                  actions: log(({ context }) => `Not retriable; Try again in ${context.resendableAfter}s`),\n                },\n              },\n              after: {\n                resendableTimeout: [\n                  {\n                    description: 'Set as retriable if countdown is 0',\n                    guard: 'isResendable',\n                    actions: 'resendableTick',\n                    target: 'Resendable',\n                  },\n                  {\n                    description: 'Continue countdown if not retriable',\n                    actions: 'resendableTick',\n                    target: 'NotResendable',\n                    reenter: true,\n                  },\n                ],\n              },\n            },\n          },\n        },\n        Attempting: {\n          tags: ['state:attempting', 'state:loading'],\n          entry: 'sendToLoading',\n          invoke: {\n            id: 'attemptEmailAddressCodeVerification',\n            src: 'attempt',\n            input: ({ context }) => ({\n              parent: context.parent,\n              params: {\n                strategy: 'email_code',\n                code: (context.formRef.getSnapshot().context.fields.get('code')?.value as string) || '',\n              },\n            }),\n            onDone: {\n              actions: [raise(({ event }) => ({ type: 'NEXT', resource: event.output })), 'sendToLoading'],\n            },\n            onError: {\n              actions: ['setFormErrors', 'sendToLoading'],\n              target: 'Pending',\n            },\n          },\n        },\n      },\n    },\n    PhoneCode: {\n      tags: ['verification:method:phone', 'verification:category:code', 'verification:phone_code'],\n      initial: 'Preparing',\n      states: {\n        Preparing: {\n          tags: ['state:preparing', 'state:loading'],\n          exit: 'resendableReset',\n          invoke: {\n            id: 'preparePhoneCodeVerification',\n            src: 'prepare',\n            input: ({ context }) => ({\n              parent: context.parent,\n              params: {\n                strategy: 'phone_code',\n              },\n            }),\n            onDone: [\n              {\n                guard: 'shouldVerifyPhoneCode',\n                target: 'Pending',\n                actions: assign({ resource: ({ event }) => event.output }),\n              },\n              {\n                actions: [\n                  assign({ resource: ({ event }) => event.output }),\n                  raise(({ event }) => ({ type: 'NEXT', resource: event.output })),\n                ],\n              },\n            ],\n            onError: {\n              actions: 'setFormErrors',\n              target: 'Pending',\n            },\n          },\n        },\n        Pending: {\n          tags: ['state:pending'],\n          on: {\n            RETRY: 'Preparing',\n            SUBMIT: {\n              target: 'Attempting',\n              reenter: true,\n            },\n          },\n          initial: 'NotResendable',\n          states: {\n            Resendable: {\n              description: 'Waiting for user to retry',\n            },\n            NotResendable: {\n              description: 'Handle countdowns',\n              on: {\n                RETRY: {\n                  actions: log(({ context }) => `Not retriable; Try again in ${context.resendableAfter}s`),\n                },\n              },\n              after: {\n                resendableTimeout: [\n                  {\n                    description: 'Set as retriable if countdown is 0',\n                    guard: 'isResendable',\n                    actions: 'resendableTick',\n                    target: 'Resendable',\n                  },\n                  {\n                    description: 'Continue countdown if not retriable',\n                    actions: 'resendableTick',\n                    target: 'NotResendable',\n                    reenter: true,\n                  },\n                ],\n              },\n            },\n          },\n        },\n        Attempting: {\n          tags: ['state:attempting', 'state:loading'],\n          entry: 'sendToLoading',\n          invoke: {\n            id: 'attemptPhoneNumberVerification',\n            src: 'attempt',\n            input: ({ context }) => ({\n              parent: context.parent,\n              params: {\n                strategy: 'phone_code',\n                code: (context.formRef.getSnapshot().context.fields.get('code')?.value as string) || '',\n              },\n            }),\n            onDone: {\n              actions: [raise(({ event }) => ({ type: 'NEXT', resource: event.output })), 'sendToLoading'],\n            },\n            onError: {\n              actions: ['setFormErrors', 'sendToLoading'],\n              target: 'Pending',\n            },\n          },\n        },\n      },\n    },\n  },\n});\n","import type { ClerkAPIResponseError } from '@clerk/shared/error';\nimport type { Attributes, SignUpResource } from '@clerk/types';\nimport type { ActorRefFrom, DoneActorEvent, ErrorActorEvent } from 'xstate';\n\nimport type { FormMachine } from '~/internals/machines/form';\n\nimport type { SignInRouterMachineActorRef } from './router.types';\n\n// ---------------------------------- Tags ---------------------------------- //\n\nexport type SignUpVerificationStateTags = 'state:preparing' | 'state:pending' | 'state:attempting' | 'state:loading';\n\nexport type SignUpVerificationVerificationCategoryTags = 'verification:category:code' | 'verification:category:link';\nexport type SignUpVerificationVerificationMethodTags = 'verification:method:email' | 'verification:method:phone';\nexport type SignUpVerificationVerificationTypeTags =\n  | 'verification:email_link'\n  | 'verification:email_code'\n  | 'verification:phone_code';\n\nexport type SignUpVerificationVerificationTags =\n  | SignUpVerificationVerificationCategoryTags\n  | SignUpVerificationVerificationMethodTags\n  | SignUpVerificationVerificationTypeTags;\n\nexport type SignUpVerificationTags = SignUpVerificationStateTags | SignUpVerificationVerificationTags;\nexport type SignUpVerificationFriendlyTags = 'code' | 'email_link' | 'email_code' | 'phone_code';\n\n// ---------------------------------- Events ---------------------------------- //\n\nexport type SignUpVerificationSubmitEvent = { type: 'SUBMIT'; action: 'submit' };\nexport type SignUpVerificationNextEvent = { type: 'NEXT'; resource?: SignUpResource };\nexport type SignUpVerificationRetryEvent = { type: 'RETRY' };\n\nexport type SignUpVerificationEmailLinkVerifiedEvent = { type: 'EMAIL_LINK.VERIFIED'; resource: SignUpResource };\nexport type SignUpVerificationEmailLinkUnverifiedEvent = { type: 'EMAIL_LINK.UNVERIFIED'; resource: SignUpResource };\nexport type SignUpVerificationEmailLinkExpiredEvent = { type: 'EMAIL_LINK.EXPIRED'; resource: SignUpResource };\nexport type SignUpVerificationEmailLinkTransferrableEvent = {\n  type: 'EMAIL_LINK.TRANSFERRABLE';\n  resource: SignUpResource;\n};\nexport type SignUpVerificationEmailLinkRestartEvent = { type: 'EMAIL_LINK.RESTART' };\nexport type SignUpVerificationEmailLinkFailedEvent = {\n  type: 'EMAIL_LINK.FAILED';\n  resource: SignUpResource;\n  error: Error;\n};\n\nexport type SignUpVerificationEmailLinkEvent =\n  | SignUpVerificationEmailLinkVerifiedEvent\n  | SignUpVerificationEmailLinkUnverifiedEvent\n  | SignUpVerificationEmailLinkExpiredEvent\n  | SignUpVerificationEmailLinkRestartEvent\n  | SignUpVerificationEmailLinkFailedEvent;\n\nexport type SignUpVerificationEvents =\n  | DoneActorEvent\n  | ErrorActorEvent\n  | SignUpVerificationRetryEvent\n  | SignUpVerificationSubmitEvent\n  | SignUpVerificationNextEvent\n  | SignUpVerificationEmailLinkEvent;\n\n// ---------------------------------- Input ---------------------------------- //\n\nexport type SignUpVerificationInput = {\n  attributes: Attributes | undefined;\n  basePath?: string;\n  formRef: ActorRefFrom<typeof FormMachine>;\n  parent: SignInRouterMachineActorRef;\n  resource: SignUpResource;\n};\n\n// ---------------------------------- Delays ---------------------------------- //\n\nexport const SignUpVerificationDelays = {\n  emailLinkTimeout: 300_000, // 5 minutes\n  resendableTimeout: 1_000, // 1 second\n} as const;\n\nexport type SignUpVerificationDelays = keyof typeof SignUpVerificationDelays;\n\n// ---------------------------------- Context ---------------------------------- //\n\nexport interface SignUpVerificationContext {\n  attributes: Attributes | undefined;\n  basePath: string;\n  resource: SignUpResource;\n  error?: Error | ClerkAPIResponseError;\n  formRef: ActorRefFrom<typeof FormMachine>;\n  parent: SignInRouterMachineActorRef;\n  loadingStep: 'verifications';\n  resendable: boolean;\n  resendableAfter: number;\n}\n\n// ---------------------------------- Schema ---------------------------------- //\n\nexport interface SignUpVerificationSchema {\n  context: SignUpVerificationContext;\n  delays: SignUpVerificationDelays;\n  input: SignUpVerificationInput;\n  events: SignUpVerificationEvents;\n  tags: SignUpVerificationTags;\n}\n","import * as React from 'react';\n\nimport type { FormSubmitProps } from '~/react/common';\nimport { Submit } from '~/react/common';\n\nimport type { SignUpNavigateProps } from './navigate';\nimport { SignUpNavigate } from './navigate';\nimport type { SignUpResendProps } from './resend';\nimport { SignUpResend } from './resend';\n\nexport type SignUpActionProps = { asChild?: boolean } & FormSubmitProps &\n  (\n    | ({\n        navigate: SignUpNavigateProps['to'];\n        resend?: never;\n        submit?: never;\n      } & Omit<SignUpNavigateProps, 'to'>)\n    | { navigate?: never; resend?: never; submit: true }\n    | ({ navigate?: never; resend: true; submit?: never } & SignUpResendProps)\n  );\n\n/**\n * Perform various actions during the sign-in process. This component is used to navigate between steps, submit the form, or resend a verification codes.\n *\n * @param {boolean} [submit] - If `true`, the action will submit the form.\n * @param {string} [navigate] - The name of the step to navigate to.\n * @param {boolean} [resend] - If `true`, the action will resend the verification code for the currently active strategy, if applicable.\n * @param {Function} [fallback] - Only used when `resend` is `true`. If provided, the fallback markup will be rendered before the resend delay has expired.\n *\n * @example\n * <SignUp.Action navigate=\"start\">Go Back</SignUp.Action>\n *\n * @example\n * <SignUp.Action submit>Sign Up</SignUp.Action>\n *\n * @example\n * <SignUp.Action resend>Resend</SignUp.Action>\n */\n\nexport const SignUpAction = React.forwardRef<React.ElementRef<'button'>, SignUpActionProps>((props, forwardedRef) => {\n  const { submit, navigate, resend, ...rest } = props;\n  let Comp: React.ForwardRefExoticComponent<any> | undefined;\n\n  if (submit) {\n    Comp = Submit;\n  } else if (navigate) {\n    Comp = SignUpNavigate;\n  } else if (resend) {\n    Comp = SignUpResend;\n  }\n\n  return Comp ? (\n    <Comp\n      to={navigate}\n      {...rest}\n      ref={forwardedRef}\n    />\n  ) : null;\n});\n\nSignUpAction.displayName = 'SignUpAction';\n","import { Slot } from '@radix-ui/react-slot';\nimport * as React from 'react';\n\nimport { SignUpRouterCtx } from '~/react/sign-up/context';\n\nconst SIGN_UP_NAVIGATE_NAME = 'SignInNavigate';\nconst SignUpNavigationEventMap = {\n  start: `NAVIGATE.START`,\n  previous: `NAVIGATE.PREVIOUS`,\n} as const;\n\nexport type SignUpNavigateElementKey = keyof typeof SignUpNavigationEventMap;\n\nexport type SignUpNavigateElement = React.ElementRef<'button'>;\nexport type SignUpNavigateProps = {\n  asChild?: boolean;\n  to: SignUpNavigateElementKey;\n  children: React.ReactNode;\n};\n\n/**\n * Renders a button which will navigate to a different step in the sign-up flow.\n *\n * @param {SignUpNavigateElementKey} to - The step to navigate to.\n * @param {boolean} [asChild] - When `true`, the component will render its child and passes all props to it.\n *\n * @example\n * <Navigate to=\"start\">\n *    Start over...\n * </Navigate>\n */\nexport const SignUpNavigate = React.forwardRef<SignUpNavigateElement, SignUpNavigateProps>(\n  ({ asChild, to, ...rest }, forwardedRef) => {\n    const actorRef = SignUpRouterCtx.useActorRef();\n\n    const Comp = asChild ? Slot : 'button';\n    const defaultProps = asChild ? {} : { type: 'button' as const };\n\n    const sendEvent = React.useCallback(() => {\n      const type = SignUpNavigationEventMap[to];\n\n      if (actorRef.getSnapshot().can({ type })) {\n        actorRef.send({ type });\n      } else {\n        console.warn(\n          `Clerk: <SignUp.Action navigate=\"${to}\"> is an invalid navigation event. You can only navigate to: ${Object.keys(SignUpNavigationEventMap).join(', ')}.`,\n        );\n      }\n    }, [actorRef, to]);\n\n    return (\n      <Comp\n        {...defaultProps}\n        {...rest}\n        onClick={sendEvent}\n        ref={forwardedRef}\n      />\n    );\n  },\n);\n\nSignUpNavigate.displayName = SIGN_UP_NAVIGATE_NAME;\n","import { Slot } from '@radix-ui/react-slot';\nimport { useSelector } from '@xstate/react';\nimport * as React from 'react';\n\nimport { SignUpVerificationCtx } from '../verifications';\n\nexport type SignUpResendElement = React.ElementRef<'button'>;\nexport type SignUpResendFallbackProps = {\n  resendable: boolean;\n  resendableAfter: number;\n};\nexport type SignUpResendProps = {\n  asChild?: boolean;\n  children: React.ReactNode;\n  /**\n   * A fallback component to render when the resend action is not available.\n   * This can be a React element or a function that receives the `resendableAfter` prop.\n   */\n  fallback?: React.ReactNode | ((props: SignUpResendFallbackProps) => React.ReactNode);\n};\n\nconst SIGN_UP_RESEND_NAME = 'SignUpResend';\n\n/**\n * Resend verification codes during the sign-in process.\n * This component must be used within the <Step name=\"verifications\">.\n *\n * > [!NOTE]\n * > This component is not intended to be used directly. Instead, use the `<Action resend>` component.\n *\n * @example\n * ```tsx\n * import { Action } from '@clerk/elements/sign-in';\n * <Action resend fallback={({ resendableAfter }) => <p>Resendable in: {resendableAfter}s</p>}>Resend</Action>;\n * ```\n */\nexport const SignUpResend = React.forwardRef<SignUpResendElement, SignUpResendProps>(\n  ({ asChild, fallback, ...rest }, forwardedRef) => {\n    const ref = SignUpVerificationCtx.useActorRef(true);\n\n    if (!ref) {\n      throw new Error('The resend action must be used within <SignUp.Step name=\"verifications\">.');\n    }\n\n    const fallbackProps: SignUpResendFallbackProps = useSelector(\n      ref,\n      state => ({\n        resendable: state.context.resendable,\n        resendableAfter: state.context.resendableAfter,\n      }),\n      (a, b) => a.resendableAfter === b.resendableAfter && a.resendable === b.resendable,\n    );\n\n    if (fallback && !fallbackProps.resendable) {\n      return typeof fallback === 'function' ? fallback(fallbackProps) : fallback;\n    }\n\n    const Comp = asChild ? Slot : 'button';\n    const defaultProps = asChild ? {} : { type: 'button' as const };\n\n    return (\n      <Comp\n        {...defaultProps}\n        {...rest}\n        disabled={!fallbackProps.resendable}\n        onClick={() => ref.send({ type: 'RETRY' })}\n        ref={forwardedRef}\n      />\n    );\n  },\n);\n\nSignUpResend.displayName = SIGN_UP_RESEND_NAME;\n","import { Slot } from '@radix-ui/react-slot';\nimport * as React from 'react';\n\nimport { CAPTCHA_ELEMENT_ID } from '~/internals/constants';\nimport { ClerkElementsRuntimeError } from '~/internals/errors';\n\nimport { SignUpStartCtx } from './start';\n\nexport type SignUpCaptchaElement = React.ElementRef<'div'>;\n\ntype CaptchaElementProps = Omit<\n  React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>,\n  'id' | 'children'\n>;\n\nexport type SignUpCaptchaProps =\n  | ({\n      asChild: true;\n      /* Must only be a self-closing element/component */\n      children: React.ReactElement;\n    } & CaptchaElementProps)\n  | ({ asChild?: false; children?: undefined } & CaptchaElementProps);\n\n/**\n * The `<SignUp.Captcha>` component is used to render the Cloudflare Turnstile widget. It must be used within the `<SignUp.Step name=\"start\">` component.\n *\n * If utilizing the `asChild` prop, the component must be a self-closing element or component. Any children passed to the immediate child component of <SignUp.Captcha> will be ignored.\n *\n * @param {boolean} [asChild] - If true, `<Captcha />` will render as its child element, passing along any necessary props.\n *\n * @example\n * <SignUp.Root>\n *   <SignUp.Step name=\"start\">\n *     <SignUp.Captcha />\n *     <Clerk.Action submit>Sign Up</Clerk.Action>\n *   </SignUp.Step>\n * </SignUp.Root>\n *\n * @example\n * <SignUp.Root>\n *   <SignUp.Step name=\"start\">\n *     <SignUp.Captcha asChild>\n *       <aside/>\n *     </SignUp.Captcha>\n *     <Clerk.Action submit>Sign Up</Clerk.Action>\n *   </SignUp.Step>\n * </SignUp.Root>\n */\n\nexport const SignUpCaptcha = React.forwardRef<SignUpCaptchaElement, SignUpCaptchaProps>(\n  ({ asChild, children, ...rest }, forwardedRef) => {\n    const ref = SignUpStartCtx.useActorRef(true);\n\n    if (!ref) {\n      throw new ClerkElementsRuntimeError('<Captcha> must be used within the <SignUp.Step name=\"start\"> component.');\n    }\n\n    const Comp = asChild ? Slot : 'div';\n\n    return (\n      <Comp\n        id={CAPTCHA_ELEMENT_ID}\n        {...rest}\n        ref={forwardedRef}\n      />\n    );\n  },\n);\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,OAAO;;;ACDP,SAAS,gBAAgB;AACzB,SAAS,6BAA6B;AACtC,SAAS,mBAAmB;AAC5B,SAAS,iBAAiB;AAC1B,SAAS,mBAAmB;;;ACJ5B,SAAS,oBAAoB;AAG7B,SAAS,aAAa,KAAK,IAAI,aAAa;;;ACC5C,IAAM,uBAAuB;AAAA,EAC3B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAIA,IAAM,aAAa,IAAI,IAA0B,oBAAoB;AAErE,SAAS,cAA8C,KAAuB;AAC5E,SAAO,WAAW,IAAI,GAAQ;AAChC;AAEO,SAAS,qBACd,QAC+B;AAC/B,QAAM,SAA6B,CAAC;AAEpC,SAAO,QAAQ,CAAC,EAAE,OAAO,SAAS,KAAK,GAAG,QAAQ;AAChD,QAAI,cAAc,GAAG,KAAK,UAAU,UAAa,SAAS,YAAY;AAEpE,aAAO,GAAG,IAAI;AAAA,IAChB;AAEA,QAAI,cAAc,GAAG,KAAK,YAAY,UAAa,SAAS,YAAY;AAEtE,aAAO,GAAG,IAAI;AAAA,IAChB;AAAA,EACF,CAAC;AAED,SAAO;AACT;;;ADxBO,IAAM,0BAA0B;AAEhC,IAAM,wBAAwB,MAAM;AAAA,EACzC,QAAQ;AAAA,IACN,SAAS;AAAA,MACP,CAAC,EAAE,OAAO,EAAE,QAAQ,OAAO,EAAE,MAAM;AACjC,cAAM,SAAS,qBAAqB,MAAM;AAC1C,eAAO,OAAO,YAAY,EAAE,QAAQ,MAAM,OAAO,OAAO,OAAO,MAAM;AAAA,MACvE;AAAA,IACF;AAAA,EACF;AAAA,EACA,SAAS;AAAA,IACP,eAAe,CAAC,EAAE,SAAS,MAAM,MAAM;AACrC,4BAAsB,KAAK;AAC3B,cAAQ,QAAQ,KAAK;AAAA,QACnB,MAAM;AAAA,QACN,OAAO,MAAM;AAAA,MACf,CAAC;AAAA,IACH;AAAA,IACA,uBAAuB,CAAC,EAAE,QAAQ,MAAM;AACtC,YAAM,SAAS,QAAQ,OAAO,YAAY,EAAE,QAAQ,MAAM,OAAO;AAEjE,YAAM,UAAU,OAAO,cAAc,IAAI,YAAY;AACrD,YAAM,WAAW,OAAO,eAAe,IAAI,YAAY;AACvD,YAAM,WAAW,OAAO,eAAe,IAAI,YAAY;AAEvD,YAAM,yBAA4C,oBAAI,IAAI;AAE1D,iBAAW,OAAO,SAAS,OAAO,QAAQ,GAA+B;AACvE,YAAI,OAAO,QAAQ;AACjB,iCAAuB,IAAI,KAAK,OAAO,GAAG,CAAoD;AAAA,QAChG;AAAA,MACF;AAEA,cAAQ,QAAQ,KAAK;AAAA,QACnB,MAAM;AAAA,QACN;AAAA,QACA;AAAA,QACA;AAAA,QACA,eAAe;AAAA,MACjB,CAAC;AAAA,IACH;AAAA,IACA,yBAAyB,CAAC,EAAE,QAAQ,MAAM,QAAQ,QAAQ,KAAK,EAAE,MAAM,wBAAwB,CAAC;AAAA,IAChG,YAAY,CAAC,EAAE,SAAS,MAAM,MAC5B,QAAQ,OAAO,KAAK,EAAE,MAAM,QAAQ,UAAW,MAAoD,OAAO,CAAC;AAAA,IAC7G;AAAA,EACF;AAAA,EACA,QAAQ;AAAA,IACN,6BAA6B,CAAC,EAAE,QAAQ,MAAG;AAhE/C;AAiEM,wCAAQ,OAAO,YAAY,EAAE,QAAQ,UAArC,mBAA4C,WAA5C,mBAAoD,WAApD,mBAA4D,YAAW;AAAA;AAAA,IACzE,mCAAmC,CAAC,EAAE,QAAQ,MAAM;AAClD,YAAM,SAAS,QAAQ,OAAO,YAAY,EAAE,QAAQ,MAAM,OAAO;AAEjE,YAAM,SAAS,QAAQ,QAAQ,YAAY,EAAE,QAAQ;AACrD,YAAM,sBAAsB,OAAO,cAAc,IAAI,YAAY;AACjE,YAAM,gBAAgB,MAAM,KAAK,QAAQ,QAAQ,YAAY,EAAE,QAAQ,OAAO,KAAK,CAAC,EAAE,OAAO,SAAO;AAvE1G;AAwEQ,eAAO,CAAC,oBAAoB,SAAS,GAAG,KAAK,GAAC,YAAO,IAAI,GAAG,MAAd,mBAAiB,UAAS,GAAC,YAAO,IAAI,GAAG,MAAd,mBAAiB;AAAA,MAC5F,CAAC;AAED,aAAO,cAAc,WAAW;AAAA,IAClC;AAAA,EACF;AAAA,EACA,OAAO,CAAC;AACV,CAAC,EAAE,cAAc;AAAA,EACf,IAAI;AAAA,EACJ,SAAS,CAAC,EAAE,MAAM,OAAO;AAAA,IACvB,UAAU,MAAM,YAAY;AAAA,IAC5B,SAAS,MAAM;AAAA,IACf,QAAQ,MAAM;AAAA,IACd,aAAa;AAAA,EACf;AAAA,EACA,OAAO;AAAA,EACP,QAAQ;AAAA,IACN,SAAS;AAAA,EACX;AAAA,EACA,SAAS;AAAA,EACT,QAAQ;AAAA,IACN,SAAS;AAAA,MACP,MAAM,CAAC,eAAe;AAAA,MACtB,aAAa;AAAA,MACb,IAAI;AAAA,QACF,QAAQ;AAAA,UACN,OAAO,GAAG,CAAC,qCAAqC,IAAI,6BAA6B,CAAC,CAAC;AAAA,UACnF,QAAQ;AAAA,UACR,SAAS;AAAA,QACX;AAAA,MACF;AAAA,IACF;AAAA,IACA,YAAY;AAAA,MACV,MAAM,CAAC,oBAAoB,eAAe;AAAA,MAC1C,OAAO;AAAA,MACP,QAAQ;AAAA,QACN,IAAI;AAAA,QACJ,KAAK;AAAA,QACL,OAAO,CAAC,EAAE,QAAQ,OAAO;AAAA,UACvB,QAAQ,QAAQ;AAAA,UAChB,QAAQ,QAAQ,QAAQ,YAAY,EAAE,QAAQ;AAAA,QAChD;AAAA,QACA,QAAQ;AAAA,UACN,SAAS,CAAC,cAAc,eAAe;AAAA,QACzC;AAAA,QACA,SAAS;AAAA,UACP,SAAS,CAAC,iBAAiB,eAAe;AAAA,UAC1C,QAAQ;AAAA,QACV;AAAA,MACF;AAAA,IACF;AAAA,EACF;AACF,CAAC;;;AE5HD,SAAS,eAAe;AAGxB,SAAS,OAAAA,MAAK,UAAAC,SAAQ,kBAAAC,iBAAgB,OAAAC,MAAK,OAAAC,MAAK,MAAAC,KAAI,SAAAC,QAAO,UAAAC,SAAQ,SAAAC,cAAa;;;ACDhF,SAAS,KAAK,aAAa,QAAQ,gBAAgB,eAAAC,cAAa,OAAAC,MAAK,QAAQ,SAAAC,cAAa;AAc1F,IAAM,qBAAqB,CAAC,gBAAgB,aAAa;AAIlD,IAAM,uBAAuB;AAOpC,IAAM,iBAAsC,CAAC,aAAa,YAAY,gBAAgB,YAAY,aAAa;AAExG,IAAM,qBAAqBC,OAAM;AAAA,EACtC,QAAQ;AAAA,IACN,SAASC,aAGP,CAAC,EAAE,OAAO,EAAE,QAAQ,QAAQ,OAAO,EAAE,MAAM;AAC3C,YAAM,cAAc,qBAAqB,MAAM;AAC/C,aAAO,OAAO,YAAY,EAAE,QAAQ,MAAM,OAAO,OAAO,OAAO,EAAE,GAAG,aAAa,GAAG,OAAO,CAAC;AAAA,IAC9F,CAAC;AAAA,IACD,aAAaA;AAAA,MACX,CAAC,EAAE,OAAO,EAAE,QAAQ,SAAS,EAAE,MAAM;AACnC,YAAI,aAAa,2BAA2B;AAC1C,iBAAO,OAAO,YAAY,EAAE,QAAQ,MAAM,OAAO,OAAO,yBAAyB;AAAA,QACnF;AACA,YAAI,aAAa,kCAAkC;AACjD,iBAAO,OAAO,YAAY,EAAE,QAAQ,MAAM,OAAO,OAAO,+BAA+B;AAAA,QACzF;AACA,YAAI,aAAa,6BAA6B;AAC5C,iBAAO,OAAO,YAAY,EAAE,QAAQ,MAAM,OAAO,OAAO,0BAA0B;AAAA,QACpF;AACA,cAAM,IAAI,0BAA0B,8BAA8B,QAAQ,EAAE;AAAA,MAC9E;AAAA,IACF;AAAA,IACA,YAAY;AAAA,EACd;AAAA,EACA,SAAS;AAAA,IACP,YAAY,CAAC,EAAE,SAAS,MAAM,MAC5B,QAAQ,OAAO,KAAK,EAAE,MAAM,QAAQ,UAAW,MAAoD,OAAO,CAAC;AAAA,IAC7G;AAAA,IACA,YAAY,OAAO,CAAC,EAAE,MAAM,MAAM;AAChC,aAAO;AAAA,QACL,SAAU,MAAkC;AAAA,MAC9C;AAAA,IACF,CAAC;AAAA,IACD,6BAA6B,eAAe,CAAC,EAAE,SAAS,QAAQ,MAAM;AACpE,UAAI,CAAC,QAAQ,QAAQ;AACnB;AAAA,MACF;AAEA,YAAM,gBAAgB,QAAQ,QAAQ,YAAY,EAAE,QAAQ;AAE5D,iBAAW,QAAQ,oBAAoB;AACrC,YAAI,cAAc,IAAI,IAAI,GAAG;AAC3B,kBAAQ,OAAO,QAAQ,SAAS,EAAE,MAAM,iBAAiB,OAAO,EAAE,KAAK,EAAE,CAAC;AAAA,QAC5E;AAAA,MACF;AAAA,IACF,CAAC;AAAA,IACD,eAAe;AAAA,MACb,CAAC,EAAE,QAAQ,MAAM,QAAQ;AAAA,MACzB,CAAC,EAAE,MAAM,MAAM;AACb,8BAAsB,KAAK;AAC3B,eAAO;AAAA,UACL,MAAM;AAAA,UACN,OAAO,MAAM;AAAA,QACf;AAAA,MACF;AAAA,IACF;AAAA,IACA,sBAAsB,CAAC,EAAE,QAAQ,MAAM;AACrC,YAAM,SAAS,QAAQ,OAAO,YAAY,EAAE,QAAQ,MAAM,OAAO;AACjE,YAAM,yBAAyB,oBAAI,IAAI;AAEvC,iBAAW,OAAO,gBAAgB;AAChC,YAAI,OAAO,QAAQ;AACjB,iCAAuB,IAAI,KAAK,OAAO,GAAG,CAAC;AAAA,QAC7C;AAAA,MACF;AAEA,cAAQ,QAAQ,KAAK;AAAA,QACnB,MAAM;AAAA,QACN,eAAe;AAAA,MACjB,CAAC;AAAA,IACH;AAAA,EACF;AAAA,EACA,QAAQ;AAAA,IACN,uBAAuB,CAAC,EAAE,QAAQ,MAAG;AAvGzC;AAwGM,wCAAQ,OAAO,YAAY,EAAE,QAAQ,UAArC,mBAA4C,WAA5C,mBAAoD,WAApD,mBAA4D,YAAW;AAAA;AAAA,IACzE,WAAW,CAAC,EAAE,QAAQ,MAAM,QAAQ,QAAQ,MAAM;AAAA,IAClD,eAAe,CAAC,EAAE,QAAQ,MAAM,QAAQ,QAAQ,OAAO,YAAY,EAAE,QAAQ,WAAW;AAAA,EAC1F;AAAA,EACA,OAAO,CAAC;AACV,CAAC,EAAE,cAAc;AAAA,EACf,IAAI;AAAA,EACJ,SAAS,CAAC,EAAE,MAAM,OAAO;AAAA,IACvB,UAAU,MAAM,YAAY;AAAA,IAC5B,SAAS,MAAM;AAAA,IACf,QAAQ,MAAM;AAAA,IACd,aAAa;AAAA,IACb,QAAQ,MAAM;AAAA,EAChB;AAAA,EACA,OAAO;AAAA,EACP,SAAS;AAAA,EACT,IAAI;AAAA,IACF,UAAU;AAAA,MACR,SAAS;AAAA,IACX;AAAA,EACF;AAAA,EACA,QAAQ;AAAA,IACN,MAAM;AAAA,MACJ,aACE;AAAA,MACF,QAAQ;AAAA,QACN;AAAA,UACE,OAAO,IAAI,CAAC,aAAa,uBAAuB,CAAC;AAAA,UACjD,QAAQ;AAAA,QACV;AAAA,QACA;AAAA,UACE,OAAO;AAAA,UACP,QAAQ;AAAA,QACV;AAAA,QACA;AAAA,UACE,QAAQ;AAAA,QACV;AAAA,MACF;AAAA,IACF;AAAA,IACA,SAAS;AAAA,MACP,MAAM,CAAC,eAAe;AAAA,MACtB,aAAa;AAAA,MACb,IAAI;AAAA,QACF,QAAQ;AAAA,UACN,OAAOC,KAAI,eAAe;AAAA,UAC1B,QAAQ;AAAA,UACR,SAAS;AAAA,QACX;AAAA,QACA,qBAAqB;AAAA,UACnB,OAAOA,KAAI,eAAe;AAAA,UAC1B,QAAQ;AAAA,UACR,SAAS;AAAA,QACX;AAAA,MACF;AAAA,IACF;AAAA,IACA,YAAY;AAAA,MACV,MAAM,CAAC,oBAAoB,eAAe;AAAA,MAC1C,OAAO;AAAA,MACP,QAAQ;AAAA,QACN,IAAI;AAAA,QACJ,KAAK;AAAA,QACL,OAAO,CAAC,EAAE,QAAQ,MAAM;AAEtB,gBAAM,gBAAgB;AAAA,YACpB,QAAQ,QAAQ,QAAQ,YAAY,EAAE,QAAQ;AAAA,YAC9C,QAAQ,QAAQ;AAAA,UAClB;AAGA,gBAAM,SAAwB,QAAQ,SAClC;AAAA,YACE,UAAU;AAAA,YACV,QAAQ,QAAQ;AAAA,UAClB,IACA,CAAC;AAEL,iBAAO,EAAE,GAAG,eAAe,OAAO;AAAA,QACpC;AAAA,QACA,QAAQ;AAAA,UACN,SAAS,CAAC,+BAA+B,cAAc,eAAe;AAAA,QACxE;AAAA,QACA,SAAS;AAAA,UACP,SAAS,CAAC,+BAA+B,iBAAiB,eAAe;AAAA,UACzE,QAAQ;AAAA,QACV;AAAA,MACF;AAAA,IACF;AAAA,IACA,gBAAgB;AAAA,MACd,MAAM,CAAC,oBAAoB,eAAe;AAAA,MAC1C,OAAO;AAAA,MACP,QAAQ;AAAA,QACN,IAAI;AAAA,QACJ,KAAK;AAAA,QACL,OAAO,CAAC,EAAE,SAAS,MAAM,MAAM;AAC7B,sBAAY,OAAO,mBAAmB;AACtC,iBAAO;AAAA,YACL,QAAQ,QAAQ;AAAA,YAChB,UAAU,MAAM;AAAA,UAClB;AAAA,QACF;AAAA,QACA,QAAQ;AAAA,UACN,SAAS,CAAC,cAAc,eAAe;AAAA,QACzC;AAAA,QACA,SAAS;AAAA,UACP,SAAS,CAAC,iBAAiB,eAAe;AAAA,UAC1C,QAAQ;AAAA,QACV;AAAA,MACF;AAAA,IACF;AAAA,EACF;AACF,CAAC;;;ACtND,SAAS,cAAc;AAWvB,SAAS,OAAAC,MAAK,UAAAC,SAAQ,kBAAAC,iBAAgB,cAAc,eAAAC,cAAa,KAAK,OAAO,YAAY,UAAAC,SAAQ,SAAAC,cAAa;;;AC+DvG,IAAM,2BAA2B;AAAA,EACtC,kBAAkB;AAAA;AAAA,EAClB,mBAAmB;AAAA;AACrB;;;ADrCO,IAAM,8BAA8B;AAE3C,IAAM,eAAe,CAAC,OAA8B,aAAoC;AACtF,QAAM,SAAwG;AAAA,IAC5G;AAAA,MACE,MAAM;AAAA,MACN,QAAQ;AAAA,QACN;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAEA,MAAI,UAAU;AACZ,WAAO,KAAK;AAAA,MACV,MAAM;AAAA,MACN,QAAQ;AAAA,QACN,WAAW;AAAA,QACX;AAAA,MACF;AAAA,IACF,CAAC;AAAA,EACH;AAEA,SAAOC,KAAI,MAAM;AACnB;AASO,IAAM,4BAA4BC,OAAM;AAAA,EAC7C,QAAQ;AAAA,IACN,SAASC,aAAsD,CAAC,EAAE,OAAO,EAAE,QAAQ,OAAO,EAAE,MAAM;AAChG,YAAM,QAAQ,OAAO,YAAY,EAAE,QAAQ;AAE3C,UAAI,OAAO,aAAa,gBAAgB,OAAO,aAAa;AAC1D,eAAO,cAAc,MAAM,iBAAiB,OAAO,WAAW;AAAA,MAChE;AAEA,aAAO,MAAM,OAAO,OAAO,oBAAoB,MAAM;AAAA,IACvD,CAAC;AAAA,IACD,SAASA;AAAA,MAAsD,OAAO,EAAE,OAAO,EAAE,QAAQ,OAAO,EAAE,MAChG,OAAO,YAAY,EAAE,QAAQ,MAAM,OAAO,OAAO,oBAAoB,MAAM;AAAA,IAC7E;AAAA,IACA,8BAA8B;AAAA,MAC5B,CAAC,EAAE,SAAS,UAAU,OAAO,EAAE,OAAO,EAAE,MAAM;AAC5C,cAAM,EAAE,KAAK,KAAK,IAAI,OAAO;AAE7B,cAAM,QAAQ,OAAO,YAAY,EAAE,QAAQ;AAE3C,aAAK;AAAA,UAAI,YACP,MAAM,OAAO,OACV,OAAO,EACP,KAAK,CAAC,aAA6B;AAClC,kBAAM,eAAe,SAAS;AAC9B,kBAAM,qBAAqB,SAAS,cAAc,aAAa;AAG/D,gBAAI,iBAAiB,YAAY;AAC/B,qBAAO,SAAS,EAAE,MAAM,uBAAuB,SAAS,CAAC;AAAA,YAC3D;AAEA,oBAAQ,oBAAoB;AAAA,cAC1B,KAAK;AAAA,cACL,KAAK;AAAA,cACL,KAAK,WAAW;AACd,yBAAS,EAAE,MAAM,cAAc,mBAAmB,YAAY,CAAC,IAAI,SAAS,CAAC;AAC7E;AAAA,cACF;AAAA,cACA,KAAK,UAAU;AACb,yBAAS;AAAA,kBACP,MAAM;AAAA,kBACN,OAAO,IAAI,mBAAmB,kCAAkC,2BAA2B;AAAA,kBAC3F;AAAA,gBACF,CAAC;AACD;AAAA,cACF;AAAA;AAAA,cAEA;AACE;AAAA,YACJ;AAEA,iBAAK;AAAA,UACP,CAAC,EACA,MAAM,CAAC,UAAiB;AACvB,iBAAK;AACL,gBAAI,0BAA0B,MAAM,OAAO;AAAA,UAC7C,CAAC;AAAA,QACL;AAEA,gBAAQ,WAAS;AACf,cAAI,MAAM,SAAS,QAAQ;AACzB,iBAAK;AAAA,UACP;AAAA,QACF,CAAC;AAED,eAAO,MAAM,KAAK;AAAA,MACpB;AAAA,IACF;AAAA,EACF;AAAA,EACA,SAAS;AAAA,IACP,gBAAgBC,QAAO,CAAC,EAAE,QAAQ,OAAO;AAAA,MACvC,YAAY,QAAQ,oBAAoB;AAAA,MACxC,iBAAiB,QAAQ,kBAAkB,IAAI,QAAQ,kBAAkB,IAAI,QAAQ;AAAA,IACvF,EAAE;AAAA,IACF,iBAAiBA,QAAO;AAAA,MACtB,YAAY;AAAA,MACZ,iBAAiB;AAAA,IACnB,CAAC;AAAA,IACD;AAAA,IACA,eAAeC;AAAA,MACb,CAAC,EAAE,QAAQ,MAAM,QAAQ;AAAA,MACzB,CAAC,EAAE,MAAM,MAAM;AACb,8BAAsB,KAAK;AAC3B,eAAO;AAAA,UACL,MAAM;AAAA,UACN,OAAO,MAAM;AAAA,QACf;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAAA,EACA,QAAQ;AAAA,IACN,YAAY,CAAC,EAAE,QAAQ,MAAM,QAAQ,SAAS,WAAW;AAAA,IACzD,mBAAmB,CAAC,EAAE,SAAS,MAAM,GAAG,EAAE,MAAM,MAAwC;AACtF,UAAI,WAAW,QAAQ;AAEvB,WAAI,+BAAO,UAAS,UAAU,MAAM,UAAU;AAC5C,mBAAW,MAAM;AAAA,MACnB;AAEA,aAAO,SAAS,iBAAiB,SAAS,KAAK;AAAA,IACjD;AAAA,IACA,cAAc,CAAC,EAAE,QAAQ,MAAM,QAAQ,cAAc,QAAQ,oBAAoB;AAAA,IACjF,mBAAmB,CACjB,EAAE,QAAQ,GACV,EAAE,WAAW,SAAS,MACtB;AAlLN;AAkLS,sBAAQ,aAAQ,eAAR,mBAAqB,WAAW,cAAc,SAAS,SAAS;AAAA;AAAA,IAC7E,uBAAuB,aAAa,cAAc;AAAA,IAClD,uBAAuB,aAAa,iBAAiB,YAAY;AAAA,IACjE,uBAAuB,aAAa,iBAAiB,YAAY;AAAA,EACnE;AAAA,EACA,QAAQ;AAAA,EACR,OAAO,CAAC;AACV,CAAC,EAAE,cAAc;AAAA,EACf,IAAI;AAAA,EACJ,SAAS;AAAA,EACT,SAAS,CAAC,EAAE,MAAM,OAAO;AAAA,IACvB,YAAY,MAAM;AAAA,IAClB,UAAU,MAAM,YAAY;AAAA,IAC5B,aAAa;AAAA,IACb,SAAS,MAAM;AAAA,IACf,QAAQ,MAAM;AAAA,IACd,YAAY;AAAA,IACZ,iBAAiB;AAAA,IACjB,UAAU,MAAM;AAAA,EAClB;AAAA,EACA,IAAI;AAAA,IACF,MAAM;AAAA,MACJ;AAAA,QACE,OAAO;AAAA,QACP,SAAS,WAAW,CAAC,EAAE,MAAM,OAAO,EAAE,MAAM,QAAQ,UAAU,MAAM,SAAS,EAAE;AAAA,MACjF;AAAA,MACA;AAAA,QACE,aAAa;AAAA,QACb,OAAO;AAAA,QACP,QAAQ;AAAA,MACV;AAAA,MACA;AAAA,QACE,aAAa;AAAA,QACb,OAAO;AAAA,QACP,QAAQ;AAAA,MACV;AAAA,MACA;AAAA,QACE,aAAa;AAAA,QACb,OAAO;AAAA,QACP,QAAQ;AAAA,MACV;AAAA,MACA;AAAA,QACE,SAAS,WAAW,CAAC,EAAE,MAAM,OAAO,EAAE,MAAM,QAAQ,UAAU,MAAM,SAAS,EAAE;AAAA,MACjF;AAAA,IACF;AAAA,EACF;AAAA,EACA,QAAQ;AAAA,IACN,MAAM;AAAA,MACJ,QAAQ;AAAA,QACN;AAAA,UACE,aAAa;AAAA,UACb,OAAO;AAAA,UACP,QAAQ;AAAA,QACV;AAAA,QACA;AAAA,UACE,aAAa;AAAA,UACb,OAAO;AAAA,UACP,QAAQ;AAAA,QACV;AAAA,QACA;AAAA,UACE,aAAa;AAAA,UACb,OAAO;AAAA,UACP,QAAQ;AAAA,QACV;AAAA,QACA;AAAA,UACE,SAAS,WAAW,CAAC,EAAE,QAAQ,OAAO,EAAE,MAAM,QAAQ,UAAU,QAAQ,SAAS,EAAE;AAAA,QACrF;AAAA,MACF;AAAA,IACF;AAAA,IACA,WAAW;AAAA,MACT,MAAM,CAAC,6BAA6B,8BAA8B,yBAAyB;AAAA,MAC3F,SAAS;AAAA,MACT,IAAI;AAAA,QACF,OAAO;AAAA,QACP,sBAAsB;AAAA,UACpB,QAAQ;AAAA,UACR,SAAS;AAAA,QACX;AAAA,QACA,qBAAqB;AAAA,UACnB,SAAS;AAAA,YACP;AAAA,cACE,MAAM;AAAA,cACN,QAAQ,CAAC,EAAE,MAAM,OAA0D,EAAE,OAAO,MAAM,MAAM;AAAA,YAClG;AAAA,YACAD,QAAO,EAAE,UAAU,CAAC,EAAE,MAAM,MAAM,MAAM,SAAS,CAAC;AAAA,UACpD;AAAA,UACA,QAAQ;AAAA,QACV;AAAA,QACA,gBAAgB;AAAA,UACd,SAASE,gBAAe,CAAC,EAAE,SAAS,MAAM,MAAM;AAC9C,gBAAI,MAAM,SAAS,sBAAsB;AACvC;AAAA,YACF;AAEA,oBAAQ,OAAO,EAAE,UAAU,MAAM,SAAS,CAAC;AAC3C,oBAAQ,MAAM,EAAE,MAAM,QAAQ,UAAU,MAAM,SAAS,CAAC;AAAA,UAC1D,CAAC;AAAA,QACH;AAAA,MACF;AAAA,MACA,QAAQ;AAAA,QACN,WAAW;AAAA,UACT,MAAM,CAAC,mBAAmB,eAAe;AAAA,UACzC,MAAM;AAAA,UACN,QAAQ;AAAA,YACN,IAAI;AAAA,YACJ,KAAK;AAAA,YACL,OAAO,CAAC,EAAE,QAAQ,OAAO;AAAA,cACvB,QAAQ,QAAQ;AAAA,cAChB,QAAQ;AAAA,gBACN,UAAU;AAAA,gBACV,aAAa,GAAG,QAAQ,QAAQ,GAAG,4BAA4B;AAAA,cACjE;AAAA,YACF;AAAA,YACA,QAAQ;AAAA,cACN,QAAQ;AAAA,cACR,SAASF,QAAO,EAAE,UAAU,CAAC,EAAE,MAAM,MAAM,MAAM,OAAO,CAAC;AAAA,YAC3D;AAAA,YACA,SAAS;AAAA,cACP,SAAS;AAAA,cACT,QAAQ;AAAA,YACV;AAAA,UACF;AAAA,QACF;AAAA,QACA,SAAS;AAAA,UACP,aAAa;AAAA,UACb,MAAM,CAAC,eAAe;AAAA,UACtB,IAAI;AAAA,YACF,MAAM;AAAA,UACR;AAAA,QACF;AAAA,QACA,YAAY;AAAA,UACV,MAAM,CAAC,kBAAkB;AAAA,UACzB,QAAQ;AAAA,YACN,IAAI;AAAA,YACJ,KAAK;AAAA,YACL,OAAO,CAAC,EAAE,QAAQ,OAAO;AAAA,cACvB,QAAQ,QAAQ;AAAA,YAClB;AAAA,UACF;AAAA,UACA,OAAO;AAAA,YACL,kBAAkB;AAAA,cAChB,aAAa;AAAA,cACb,QAAQ;AAAA,cACR,SAASC,QAAO,CAAC,EAAE,QAAQ,MAAM,QAAQ,SAAS;AAAA,gBAChD,MAAM;AAAA,gBACN,OAAO,IAAI,mBAAmB,6BAA6B,mCAAmC;AAAA,cAChG,CAAC;AAAA,YACH;AAAA,UACF;AAAA,UACA,SAAS;AAAA,UACT,QAAQ;AAAA,YACN,YAAY;AAAA,cACV,aAAa;AAAA,YACf;AAAA,YACA,eAAe;AAAA,cACb,aAAa;AAAA,cACb,IAAI;AAAA,gBACF,OAAO;AAAA,kBACL,SAAS,IAAI,CAAC,EAAE,QAAQ,MAAM,+BAA+B,QAAQ,eAAe,GAAG;AAAA,gBACzF;AAAA,cACF;AAAA,cACA,OAAO;AAAA,gBACL,mBAAmB;AAAA,kBACjB;AAAA,oBACE,aAAa;AAAA,oBACb,OAAO;AAAA,oBACP,SAAS;AAAA,oBACT,QAAQ;AAAA,kBACV;AAAA,kBACA;AAAA,oBACE,aAAa;AAAA,oBACb,SAAS;AAAA,oBACT,QAAQ;AAAA,oBACR,SAAS;AAAA,kBACX;AAAA,gBACF;AAAA,cACF;AAAA,YACF;AAAA,UACF;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA,IACA,WAAW;AAAA,MACT,MAAM,CAAC,6BAA6B,8BAA8B,yBAAyB;AAAA,MAC3F,SAAS;AAAA,MACT,QAAQ;AAAA,QACN,WAAW;AAAA,UACT,MAAM,CAAC,mBAAmB,eAAe;AAAA,UACzC,MAAM;AAAA,UACN,QAAQ;AAAA,YACN,IAAI;AAAA,YACJ,KAAK;AAAA,YACL,OAAO,CAAC,EAAE,QAAQ,OAAO;AAAA,cACvB,QAAQ,QAAQ;AAAA,cAChB,QAAQ;AAAA,gBACN,UAAU;AAAA,cACZ;AAAA,YACF;AAAA,YACA,QAAQ;AAAA,cACN;AAAA,gBACE,OAAO;AAAA,gBACP,QAAQ;AAAA,cACV;AAAA,cACA;AAAA,gBACE,SAAS;AAAA,kBACPD,QAAO,EAAE,UAAU,CAAC,EAAE,MAAM,MAAM,MAAM,OAAO,CAAC;AAAA,kBAChD,MAAM,CAAC,EAAE,MAAM,OAAO,EAAE,MAAM,QAAQ,UAAU,MAAM,OAAO,EAAE;AAAA,gBACjE;AAAA,cACF;AAAA,YACF;AAAA,YACA,SAAS;AAAA,cACP,SAAS;AAAA,cACT,QAAQ;AAAA,YACV;AAAA,UACF;AAAA,QACF;AAAA,QACA,SAAS;AAAA,UACP,MAAM,CAAC,eAAe;AAAA,UACtB,IAAI;AAAA,YACF,OAAO;AAAA,YACP,QAAQ;AAAA,cACN,QAAQ;AAAA,cACR,SAAS;AAAA,YACX;AAAA,UACF;AAAA,UACA,SAAS;AAAA,UACT,QAAQ;AAAA,YACN,YAAY;AAAA,cACV,aAAa;AAAA,YACf;AAAA,YACA,eAAe;AAAA,cACb,aAAa;AAAA,cACb,IAAI;AAAA,gBACF,OAAO;AAAA,kBACL,SAAS,IAAI,CAAC,EAAE,QAAQ,MAAM,+BAA+B,QAAQ,eAAe,GAAG;AAAA,gBACzF;AAAA,cACF;AAAA,cACA,OAAO;AAAA,gBACL,mBAAmB;AAAA,kBACjB;AAAA,oBACE,aAAa;AAAA,oBACb,OAAO;AAAA,oBACP,SAAS;AAAA,oBACT,QAAQ;AAAA,kBACV;AAAA,kBACA;AAAA,oBACE,aAAa;AAAA,oBACb,SAAS;AAAA,oBACT,QAAQ;AAAA,oBACR,SAAS;AAAA,kBACX;AAAA,gBACF;AAAA,cACF;AAAA,YACF;AAAA,UACF;AAAA,QACF;AAAA,QACA,YAAY;AAAA,UACV,MAAM,CAAC,oBAAoB,eAAe;AAAA,UAC1C,OAAO;AAAA,UACP,QAAQ;AAAA,YACN,IAAI;AAAA,YACJ,KAAK;AAAA,YACL,OAAO,CAAC,EAAE,QAAQ,MAAG;AAxbjC;AAwbqC;AAAA,gBACvB,QAAQ,QAAQ;AAAA,gBAChB,QAAQ;AAAA,kBACN,UAAU;AAAA,kBACV,QAAO,aAAQ,QAAQ,YAAY,EAAE,QAAQ,OAAO,IAAI,MAAM,MAAvD,mBAA0D,UAAoB;AAAA,gBACvF;AAAA,cACF;AAAA;AAAA,YACA,QAAQ;AAAA,cACN,SAAS,CAAC,MAAM,CAAC,EAAE,MAAM,OAAO,EAAE,MAAM,QAAQ,UAAU,MAAM,OAAO,EAAE,GAAG,eAAe;AAAA,YAC7F;AAAA,YACA,SAAS;AAAA,cACP,SAAS,CAAC,iBAAiB,eAAe;AAAA,cAC1C,QAAQ;AAAA,YACV;AAAA,UACF;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA,IACA,WAAW;AAAA,MACT,MAAM,CAAC,6BAA6B,8BAA8B,yBAAyB;AAAA,MAC3F,SAAS;AAAA,MACT,QAAQ;AAAA,QACN,WAAW;AAAA,UACT,MAAM,CAAC,mBAAmB,eAAe;AAAA,UACzC,MAAM;AAAA,UACN,QAAQ;AAAA,YACN,IAAI;AAAA,YACJ,KAAK;AAAA,YACL,OAAO,CAAC,EAAE,QAAQ,OAAO;AAAA,cACvB,QAAQ,QAAQ;AAAA,cAChB,QAAQ;AAAA,gBACN,UAAU;AAAA,cACZ;AAAA,YACF;AAAA,YACA,QAAQ;AAAA,cACN;AAAA,gBACE,OAAO;AAAA,gBACP,QAAQ;AAAA,gBACR,SAASA,QAAO,EAAE,UAAU,CAAC,EAAE,MAAM,MAAM,MAAM,OAAO,CAAC;AAAA,cAC3D;AAAA,cACA;AAAA,gBACE,SAAS;AAAA,kBACPA,QAAO,EAAE,UAAU,CAAC,EAAE,MAAM,MAAM,MAAM,OAAO,CAAC;AAAA,kBAChD,MAAM,CAAC,EAAE,MAAM,OAAO,EAAE,MAAM,QAAQ,UAAU,MAAM,OAAO,EAAE;AAAA,gBACjE;AAAA,cACF;AAAA,YACF;AAAA,YACA,SAAS;AAAA,cACP,SAAS;AAAA,cACT,QAAQ;AAAA,YACV;AAAA,UACF;AAAA,QACF;AAAA,QACA,SAAS;AAAA,UACP,MAAM,CAAC,eAAe;AAAA,UACtB,IAAI;AAAA,YACF,OAAO;AAAA,YACP,QAAQ;AAAA,cACN,QAAQ;AAAA,cACR,SAAS;AAAA,YACX;AAAA,UACF;AAAA,UACA,SAAS;AAAA,UACT,QAAQ;AAAA,YACN,YAAY;AAAA,cACV,aAAa;AAAA,YACf;AAAA,YACA,eAAe;AAAA,cACb,aAAa;AAAA,cACb,IAAI;AAAA,gBACF,OAAO;AAAA,kBACL,SAAS,IAAI,CAAC,EAAE,QAAQ,MAAM,+BAA+B,QAAQ,eAAe,GAAG;AAAA,gBACzF;AAAA,cACF;AAAA,cACA,OAAO;AAAA,gBACL,mBAAmB;AAAA,kBACjB;AAAA,oBACE,aAAa;AAAA,oBACb,OAAO;AAAA,oBACP,SAAS;AAAA,oBACT,QAAQ;AAAA,kBACV;AAAA,kBACA;AAAA,oBACE,aAAa;AAAA,oBACb,SAAS;AAAA,oBACT,QAAQ;AAAA,oBACR,SAAS;AAAA,kBACX;AAAA,gBACF;AAAA,cACF;AAAA,YACF;AAAA,UACF;AAAA,QACF;AAAA,QACA,YAAY;AAAA,UACV,MAAM,CAAC,oBAAoB,eAAe;AAAA,UAC1C,OAAO;AAAA,UACP,QAAQ;AAAA,YACN,IAAI;AAAA,YACJ,KAAK;AAAA,YACL,OAAO,CAAC,EAAE,QAAQ,MAAG;AA3hBjC;AA2hBqC;AAAA,gBACvB,QAAQ,QAAQ;AAAA,gBAChB,QAAQ;AAAA,kBACN,UAAU;AAAA,kBACV,QAAO,aAAQ,QAAQ,YAAY,EAAE,QAAQ,OAAO,IAAI,MAAM,MAAvD,mBAA0D,UAAoB;AAAA,gBACvF;AAAA,cACF;AAAA;AAAA,YACA,QAAQ;AAAA,cACN,SAAS,CAAC,MAAM,CAAC,EAAE,MAAM,OAAO,EAAE,MAAM,QAAQ,UAAU,MAAM,OAAO,EAAE,GAAG,eAAe;AAAA,YAC7F;AAAA,YACA,SAAS;AAAA,cACP,SAAS,CAAC,iBAAiB,eAAe;AAAA,cAC1C,QAAQ;AAAA,YACV;AAAA,UACF;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA,EACF;AACF,CAAC;;;AFlhBM,IAAM,wBAAwB;AAGrC,IAAM,gBACJ,CAAC,SACD,CAAC,EAAE,QAAQ,GAAqC,YAA+B;AAjCjF;AAkCI,6BAAQ,WAAR,mBAAgB,MAAM,UAAtB,YAA+B;AAAA;AAEnC,IAAM,cACJ,CAAC,WACD,CAAC,EAAE,SAAS,MAAM,GAAiE,MAAyB;AAtC9G;AAuCK,+CAAiC,aAAjC,mBAA2C,YAAW,YAAU,yBAAQ,UAAR,mBAAe,WAAf,mBAAuB,WAAvB,mBAA+B,YAAW;AAAA;AAExG,IAAM,sBAAsBG,OAAM;AAAA,EACvC,QAAQ;AAAA,IACN,iBAAiB;AAAA,IACjB,cAAc;AAAA,IACd,mBAAmB;AAAA,IACnB,qBAAqB;AAAA,EACvB;AAAA,EACA,SAAS;AAAA,IACP,iBAAiBC,QAAO,CAAC,EAAE,QAAQ,MAAM,QAAQ,SAAS,EAAE,MAAM,eAAe,CAAC;AAAA,IAClF,iBAAiB,cAAY,QAAQ,MAAM,kBAAkB,QAAQ;AAAA,IACrE,kBAAkB,CAAC,EAAE,QAAQ,GAAG,EAAE,MAAM,QAAQ,MAAM,MAAyC;AAC7F,UAAI,CAAC,QAAQ,QAAQ;AACnB;AAAA,MACF;AACA,UAAI,CAAC,SAAS,wBAAwB,GAAG;AACvC;AAAA,MACF;AACA,UAAI,QAAQ,aAAa;AACvB;AAAA,MACF;AAEA,YAAM,eAAe,QAAQ,QAAQ,OAAO,UAAU,IAAI;AAC1D,UAAI,iBAAiB,QAAQ,OAAO,SAAS,GAAG;AAC9C;AAAA,MACF;AAEA,cAAQ,OAAO,YAAY,YAAY;AAAA,IACzC;AAAA,IACA,kBAAkB,CAAC,EAAE,QAAQ,GAAG,EAAE,KAAK,MAAqB;AArEhE;AAqEmE,2BAAQ,WAAR,mBAAgB,KAAK;AAAA;AAAA,IACpF,WAAWC,OAAM,EAAE,MAAM,OAAO,CAAC;AAAA,IACjC,WAAW,CAAC,EAAE,SAAS,MAAM,GAAG,WAAoE;AAvExG;AAwEM,UAAI,QAAQ,aAAa;AACvB;AAAA,MACF;AAEA,YAAM,WACJ,iCAAQ,eACP,iCAAQ,yBAAwB,QAAQ,MAAM,OAAO,yBACpD,+BAAiC,aAAY,QAAQ,MAAM,OAAO,QAAQ;AAE9E,WAAK,QAAQ,MAAM,UAAU;AAAA,QAC3B;AAAA,QACA,aAAa,QAAQ,MAAM,oBAAoB;AAAA,UAC7C,SAAQ,aAAQ,WAAR,mBAAgB;AAAA,QAC1B,CAAC;AAAA,MACH,CAAC;AAAA,IACH;AAAA,IACA,cAAcA,OAAM,EAAE,MAAM,QAAQ,GAAG,EAAE,OAAO,IAAK,CAAC;AAAA;AAAA,IACtD,UAAUC,QAAO;AAAA,MACf,OAAO,CAAC,GAAG,EAAE,MAAM,MAAsC;AACvD,YAAI,OAAO;AACT,iBAAO;AAAA,QACT;AACA,eAAO,IAAI,0BAA0B,eAAe;AAAA,MACtD;AAAA,IACF,CAAC;AAAA,IACD,oBAAoB,CAAC,EAAE,QAAQ,MAAM;AACnC,YAAM,YAAY,QAAQ,MAAM,OAAO,OAAO,wBAAwB;AAEtE,UAAI,CAAC,WAAW;AACd;AAAA,MACF;AAEA,UAAI;AAEJ,cAAQ,UAAU,MAAM;AAAA,QACtB,KAAK,YAAY;AAAA,QACjB,KAAK,YAAY;AAAA,QACjB,KAAK,YAAY;AAAA,QACjB,KAAK,YAAY;AAAA,QACjB,KAAK,YAAY;AAAA,QACjB,KAAK,YAAY;AAAA,QACjB,KAAK,YAAY;AAAA,QACjB,KAAK,YAAY;AAAA,QACjB,KAAK,YAAY;AAAA,QACjB,KAAK,YAAY;AAAA,QACjB,KAAK,YAAY;AAEf,kBAAQ,IAAI,mBAAmB,UAAU,MAAM,UAAU,WAAY;AACrE;AAAA,QACF;AACE,kBAAQ,IAAI;AAAA,YACV;AAAA,YACA;AAAA,UACF;AAAA,MACJ;AAEA,cAAQ,QAAQ,KAAK;AAAA,QACnB,MAAM;AAAA,QACN;AAAA,MACF,CAAC;AAAA,IACH;AAAA,IACA,UAAU,CAAC,EAAE,QAAQ,MAAG;AArI5B;AAqI+B,2BAAQ,WAAR,mBAAgB,KAAK,QAAQ,MAAM,eAAe;AAAA;AAAA,EAC/E;AAAA,EACA,QAAQ;AAAA,IACN,kBAAkB,CAAC,EAAE,QAAQ,MAAG;AAxIpC;AAwIuC,8CAAQ,UAAR,mBAAe,WAAf,mBAAuB,WAAvB,mBAA+B,kBAA/B,mBAA8C,UAAS;AAAA;AAAA,IAC1F,qBAAqB,CAAC,EAAE,QAAQ,MAAG;AAzIvC;AAyI0C,8CAAQ,UAAR,mBAAe,WAAf,mBAAuB,WAAvB,mBAA+B,qBAA/B,mBAAiD,UAAS;AAAA;AAAA,IAEhG,4BAA4B,CAAC,EAAE,QAAQ,MACrC,QAAQ,QAAQ,MAAM,OAAO,OAAO,WAAW,QAAQ,QAAQ,MAAM,OAAO,mBAAmB;AAAA,IACjG,mBAAmB,CAAC,EAAE,QAAQ,MAAG;AA7IrC;AA6IwC,sBAAQ,aAAQ,WAAR,mBAAgB,eAAe,IAAI,cAAc,eAAe;AAAA;AAAA,IAC5G,gBAAgB,CAAC,EAAE,QAAQ,GAAG,WAA4C;AA9I9E;AA+IM,YAAM,SAAQ,aAAQ,WAAR,mBAAgB,eAAe,IAAI,cAAc;AAC/D,UAAI,CAAC,QAAQ;AACX,eAAO,QAAQ,KAAK;AAAA,MACtB;AACA,aAAO,UAAU,OAAO;AAAA,IAC1B;AAAA,IACA,kBAAkB,CAAC,EAAE,QAAQ,MAAG;AArJpC;AAqJuC,sBAAQ,aAAQ,WAAR,mBAAgB,eAAe,IAAI,cAAc,SAAS;AAAA;AAAA,IACrG,aAAa,CAAC,EAAE,QAAQ,MAAM,QAAQ,QAAQ,MAAM,OAAO,MAAM;AAAA,IACjE,WAAW,CAAC,EAAE,QAAQ,MAAM,QAAQ,QAAQ,MAAM;AAAA,IAElD,4BAA4BC,KAAI,CAAC,cAAc,uBAAuBC,KAAI,eAAe,CAAC,CAAC;AAAA,IAC3F,mBAAmB,YAAY,WAAW;AAAA,IAC1C,kBAAkB,CAAC,EAAE,SAAS,MAAM,MAAM;AA3J9C;AA4JM,YAAM,WAAY,+BAAiC;AACnD,YAAM,UAAS,mBAAQ,UAAR,mBAAe,WAAf,mBAAuB;AAEtC,cACG,qCAAU,YAAW,cAAc,QAAQ,qCAAU,gBAAgB,MACrE,iCAAQ,YAAW,cAAc,QAAQ,iCAAQ,gBAAgB;AAAA,IAEtE;AAAA,IACA,6BAA6B,YAAY,sBAAsB;AAAA,IAE/D,YAAYC,IAAG,CAAC,oBAAoB,CAAC,EAAE,QAAQ,MAAM,QAAQ,QAAQ,MAAM,IAAI,CAAC,CAAC;AAAA,IACjF,qBAAqB,CAAC,EAAE,QAAQ,MAAG;AAvKvC;AAuK0C,sBAAQ,mBAAQ,UAAR,mBAAe,4BAAf,mBAAwC,WAAW,iBAAiB;AAAA;AAAA,IAClH,cAAc,CAAC,EAAE,QAAQ,MAAG;AAxKhC;AAyKM,kCAAQ,UAAR,mBAAe,4BAAf,mBAAwC,aAAa,OAAO,UAAS,cAAc;AAAA;AAAA,IACrF,2BAA2BF,KAAI,CAAC,gBAAgBC,KAAI,WAAW,CAAC,CAAC;AAAA,IACjE,eAAe,CAAC,EAAE,QAAQ,MAAM,QAAQ,QAAQ,WAAW;AAAA,IAC3D,yBAAyBD,KAAI,CAAC,+BAA+B,kBAAkB,CAAC;AAAA,IAChF,mCAAmCA,KAAI,CAAC,+BAA+B,qBAAqB,CAAC;AAAA,IAE7F,iBAAiBE,IAAG,CAAC,yBAAyB,cAAc,GAAG,CAAC,CAAC;AAAA,IACjE,eAAeF,KAAI,CAAC,uBAAuB,cAAc,WAAW,CAAC,CAAC;AAAA,IACtE,mBAAmBA,KAAI,CAAC,2BAA2B,cAAc,SAAS,CAAC,CAAC;AAAA,IAC5E,eAAe,cAAc,uBAAuB;AAAA,IAEpD,uBAAuBE,IAAG,CAACD,KAAI,aAAa,GAAG,mBAAmB,CAAC;AAAA,IACnE,qBAAqBC,IAAG,CAAC,yBAAyB,CAAC;AAAA,IACnD,yBAAyBA,IAAG,CAAC,qCAAqCF,KAAI,CAAC,oBAAoB,gBAAgB,CAAC,CAAC,CAAC;AAAA,EAChH;AAAA,EACA,QAAQ;AAAA,IACN,mBAAmB;AAAA;AAAA,EACrB;AAAA,EACA,OAAO,CAAC;AACV,CAAC,EAAE,cAAc;AAAA,EACf,IAAI;AAAA;AAAA,EAEJ,SAAS,CAAC;AAAA,EACV,SAAS;AAAA,EACT,IAAI;AAAA,IACF,sBAAsB;AAAA,MACpB,SAASH,QAAO,qBAAqB,CAAC,EAAE,SAAS,MAAM,MAAG;AAnMhE;AAmMoE;AAAA,UAC5D,MAAM;AAAA,UACN,QAAQ;AAAA,YACN,UAAU,MAAM;AAAA,YAChB,aAAa,KACX,aAAQ,WAAR,mBAAgB,UAAS,QAAQ,WAC7B,aAAQ,MAAM,4BAAd,mBAAuC,cAAc,aACrD,aAAQ,WAAR,mBAAgB,QACtB,GAAG,uBAAuB;AAAA,YAC1B,qBAAqB,QAAQ,MAAM,oBAAoB;AAAA,cACrD,SAAQ,aAAQ,WAAR,mBAAgB;AAAA,YAC1B,CAAC;AAAA,UACH;AAAA,QACF;AAAA,OAAE;AAAA,IACJ;AAAA,IACA,qBAAqB;AAAA,MACnB,SAASA,QAAO,qBAAqB,CAAC,EAAE,QAAQ,MAAG;AAnNzD;AAmN6D;AAAA,UACrD,MAAM;AAAA,UACN,QAAQ;AAAA,YACN,UAAU;AAAA,YACV,eAAc,aAAQ,QAAQ,YAAY,EAAE,QAAQ,OAAO,IAAI,cAAc,MAA/D,mBAAkE;AAAA,YAChF,aAAa,KACX,aAAQ,WAAR,mBAAgB,UAAS,QAAQ,WAC7B,aAAQ,MAAM,4BAAd,mBAAuC,cAAc,aACrD,aAAQ,WAAR,mBAAgB,QACtB,GAAG,uBAAuB;AAAA,YAC1B,qBAAqB,QAAQ,MAAM,oBAAoB;AAAA,cACrD,SAAQ,aAAQ,WAAR,mBAAgB;AAAA,YAC1B,CAAC;AAAA,UACH;AAAA,QACF;AAAA,OAAE;AAAA,IACJ;AAAA,IACA,+BAA+B;AAAA,MAC7B,SAASA,QAAO,qBAAqB,CAAC,EAAE,QAAQ,MAAG;AApOzD;AAoO6D;AAAA,UACrD,MAAM;AAAA,UACN,QAAQ;AAAA,YACN,UAAU;AAAA,YACV,eAAc,aAAQ,QAAQ,YAAY,EAAE,QAAQ,OAAO,IAAI,cAAc,MAA/D,mBAAkE;AAAA,YAChF,aAAa,KACX,aAAQ,WAAR,mBAAgB,UAAS,QAAQ,WAC7B,aAAQ,MAAM,4BAAd,mBAAuC,cAAc,aACrD,aAAQ,WAAR,mBAAgB,QACtB,GAAG,uBAAuB;AAAA,YAC1B,qBAAqB,QAAQ,MAAM,oBAAoB;AAAA,cACrD,SAAQ,aAAQ,WAAR,mBAAgB;AAAA,YAC1B,CAAC;AAAA,UACH;AAAA,QACF;AAAA,OAAE;AAAA,IACJ;AAAA,IACA,qBAAqB;AAAA,MACnB,SAASA,QAAO,SAAS,CAAC,EAAE,MAAM,MAAM,KAAK;AAAA,IAC/C;AAAA,IACA,eAAe;AAAA,MACb,aAAa;AAAA,MACb,SAASM,gBAAe,CAAC,EAAE,SAAS,MAAM,MAAM;AAC9C,gBAAQ,OAAO;AAAA,UACb,SAAS,MAAM;AAAA,QACjB,CAAC;AAGD,gBAAQ,MAAM,EAAE,MAAM,aAAa,CAAC;AAAA,MACtC,CAAC;AAAA,IACH;AAAA,IACA,qBAAqB;AAAA,IACrB,kBAAkB;AAAA,IAClB,SAAS;AAAA,MACP,SAASJ,QAAO,CAAC,EAAE,MAAM,OAAO;AAAA,QAC9B,SAAS;AAAA,UACP,WAAW,MAAM;AAAA,UACjB,MAAM,MAAM;AAAA,UACZ,UAAU,MAAM;AAAA,UAChB,QAAQ,MAAM;AAAA,QAChB;AAAA,MACF,EAAE;AAAA,IACJ;AAAA,IACA,OAAO;AAAA,EACT;AAAA,EACA,QAAQ;AAAA,IACN,MAAM;AAAA,MACJ,IAAI;AAAA,QACF,MAAM;AAAA,UACJ,SAASA,QAAO,CAAC,EAAE,MAAM,MAAM;AApRzC;AAqRY,kBAAM,gBAAe,WAAM,WAAN,mBAAc;AAEnC,mBAAO;AAAA,cACL,OAAO,MAAM;AAAA,cACb,QAAQ,MAAM;AAAA,cACd,YAAY,MAAM,cAAc;AAAA,cAChC,SAAS;AAAA,gBACP,WAAW;AAAA,cACb;AAAA,cACA,aAAa,MAAM,eAAe;AAAA,cAClC,SAAS,MAAM;AAAA,cACf,SACE,6CAAc,IAAI,cAAc,aAChC,6CAAc,IAAI,cAAc,qBAChC;AAAA,YACJ;AAAA,UACF,CAAC;AAAA,UACD,QAAQ;AAAA,QACV;AAAA,MACF;AAAA,IACF;AAAA,IACA,MAAM;AAAA,MACJ,OAAOI,gBAAe,CAAC,EAAE,SAAS,SAAS,KAAK,MAAM;AA3S5D;AA4SQ,YAAI,CAAC,KAAK,YAAY,EAAE,SAAS,mBAAmB,GAAG;AACrD,kBAAQ,WAAW,qBAAqB;AAAA,YACtC,IAAI;AAAA,YACJ,UAAU;AAAA,YACV,OAAO;AAAA,cACL,WAAU,mBAAQ,WAAR,mBAAgB,aAAhB,YAA4B;AAAA,cACtC,MAAM;AAAA,cACN,SAAS,QAAQ;AAAA,cACjB,QAAQ;AAAA,YACV;AAAA,UACF,CAAC;AAAA,QACH;AAAA,MACF,CAAC;AAAA,MACD,QAAQ;AAAA,QACN;AAAA,UACE,OAAO;AAAA,UACP,SAAS;AAAA,YACPC,KAAI,mBAAmB;AAAA,YACvB;AAAA,cACE,MAAM;AAAA,cACN,QAAQ,CAAC,EAAE,QAAQ,MAAG;AAhUpC;AAgUwC;AAAA,kBACxB,MAAM,QAAQ,MAAM,oBAAoB;AAAA,oBACtC,SAAQ,aAAQ,WAAR,mBAAgB;AAAA,kBAC1B,CAAC;AAAA,gBACH;AAAA;AAAA,YACF;AAAA,UACF;AAAA,QACF;AAAA,QACA;AAAA,UACE,OAAO;AAAA,UACP,QAAQ;AAAA,QACV;AAAA,QACA;AAAA,UACE,OAAO;AAAA,UACP,SAAS,EAAE,MAAM,oBAAoB,QAAQ,EAAE,OAAO,MAAM,MAAM,IAAI,EAAE;AAAA,UACxE,QAAQ;AAAA,QACV;AAAA,QACA;AAAA,UACE,OAAO;AAAA,UACP,SAAS,EAAE,MAAM,oBAAoB,QAAQ,EAAE,OAAO,MAAM,MAAM,UAAU,EAAE;AAAA,UAC9E,QAAQ;AAAA,QACV;AAAA,QACA;AAAA,UACE,OAAOF,IAAG,CAAC,iBAAiB,kBAAkB,CAAC;AAAA,UAC/C,SAAS,EAAE,MAAM,oBAAoB,QAAQ,EAAE,OAAO,MAAM,MAAM,YAAY,EAAE;AAAA,UAChF,QAAQ;AAAA,QACV;AAAA,QACA;AAAA,UACE,OAAO;AAAA,UACP,QAAQ;AAAA,QACV;AAAA,QACA;AAAA,UACE,SAAS,EAAE,MAAM,oBAAoB,QAAQ,EAAE,OAAO,MAAM,MAAM,IAAI,EAAE;AAAA,UACxE,QAAQ;AAAA,QACV;AAAA,MACF;AAAA,IACF;AAAA,IACA,OAAO;AAAA,MACL,MAAM,CAAC,YAAY;AAAA,MACnB,MAAM;AAAA,MACN,QAAQ;AAAA,QACN,IAAI;AAAA,QACJ,KAAK;AAAA,QACL,OAAO,CAAC,EAAE,SAAS,KAAK,MAAG;AA3WnC;AA2WuC;AAAA,YAC7B,WAAU,aAAQ,WAAR,mBAAgB;AAAA,YAC1B,SAAS,QAAQ;AAAA,YACjB,QAAQ;AAAA,YACR,QAAQ,QAAQ;AAAA,UAClB;AAAA;AAAA,QACA,QAAQ;AAAA,UACN,SAAS;AAAA,QACX;AAAA,MACF;AAAA,MACA,IAAI;AAAA,QACF,cAAc;AAAA,UACZ,SAASC,gBAAe,CAAC,EAAE,SAAS,QAAQ,MAAM;AAChD,oBAAQ,iBAAiB;AACzB,oBAAQ,OAAO,SAAS,EAAE,MAAM,YAAY,SAAS,QAAQ,QAAQ,CAAC;AAAA,UACxE,CAAC;AAAA,QACH;AAAA,QACA,MAAM;AAAA,UACJ;AAAA,YACE,OAAO;AAAA,YACP,SAAS,CAAC,aAAa,cAAc;AAAA,UACvC;AAAA,UACA;AAAA,YACE,OAAOH,KAAI,CAAC,aAAa,qBAAqB,CAAC;AAAA,YAC/C,SAAS,EAAE,MAAM,oBAAoB,QAAQ,EAAE,MAAM,IAAI,EAAE;AAAA,YAC3D,QAAQ;AAAA,YACR,SAAS;AAAA,UACX;AAAA,UACA;AAAA,YACE,OAAO;AAAA,YACP,QAAQ;AAAA,YACR,SAAS,EAAE,MAAM,oBAAoB,QAAQ,EAAE,MAAM,UAAU,EAAE;AAAA,UACnE;AAAA,UACA;AAAA,YACE,OAAO;AAAA,YACP,SAAS,EAAE,MAAM,oBAAoB,QAAQ,EAAE,MAAM,YAAY,EAAE;AAAA,YACnE,QAAQ;AAAA,UACV;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA,IACA,UAAU;AAAA,MACR,MAAM,CAAC,eAAe;AAAA,MACtB,QAAQ;AAAA,QACN,IAAI;AAAA,QACJ,KAAK;AAAA,QACL,OAAO,CAAC,EAAE,SAAS,KAAK,MAAG;AAzZnC;AAyZuC;AAAA,YAC7B,WAAU,aAAQ,WAAR,mBAAgB;AAAA,YAC1B,SAAS,QAAQ;AAAA,YACjB,QAAQ;AAAA,UACV;AAAA;AAAA,QACA,QAAQ;AAAA,UACN,SAAS;AAAA,QACX;AAAA,MACF;AAAA,MACA,IAAI;AAAA,QACF,cAAc;AAAA,UACZ,QAAQ;AAAA,UACR,SAAS;AAAA,QACX;AAAA,QACA,MAAM;AAAA,UACJ;AAAA,YACE,OAAO;AAAA,YACP,SAAS,CAAC,aAAa,cAAc;AAAA,UACvC;AAAA,UACA;AAAA,YACE,OAAO;AAAA,YACP,QAAQ;AAAA,YACR,SAAS,EAAE,MAAM,oBAAoB,QAAQ,EAAE,MAAM,UAAU,EAAE;AAAA,UACnE;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA,IACA,cAAc;AAAA,MACZ,MAAM,CAAC,mBAAmB;AAAA,MAC1B,QAAQ;AAAA,QACN,IAAI;AAAA,QACJ,KAAK;AAAA,QACL,OAAO,CAAC,EAAE,SAAS,KAAK,MAAG;AAzbnC;AAybuC;AAAA,YAC7B,aAAY,aAAQ,MAAM,4BAAd,mBAAuC,aAAa;AAAA,YAChE,WAAU,aAAQ,WAAR,mBAAgB;AAAA,YAC1B,SAAS,QAAQ;AAAA,YACjB,QAAQ;AAAA,YACR,UAAU,QAAQ,MAAM,OAAO;AAAA,UACjC;AAAA;AAAA,QACA,QAAQ;AAAA,UACN,SAAS;AAAA,QACX;AAAA,MACF;AAAA,MACA,QAAQ;AAAA,QACN;AAAA,UACE,OAAO;AAAA,UACP,SAAS;AAAA,YACP,CAAC,EAAE,QAAQ,MAAG;AAxc1B;AAwc8B;AAAA,gBAChB,MAAM;AAAA,gBACN,QAAQ,EAAE,YAAW,aAAQ,WAAR,mBAAgB,eAAe,IAAI,cAAc,gBAAgB;AAAA,cACxF;AAAA;AAAA,YACA;AAAA,UACF;AAAA,QACF;AAAA,QACA;AAAA,UACE,OAAO,EAAE,MAAM,kBAAkB,QAAQ,EAAE,QAAQ,WAAW,EAAE;AAAA,UAChE,SAAS,EAAE,MAAM,oBAAoB,QAAQ,EAAE,OAAO,MAAM,MAAM,YAAY,EAAE;AAAA,QAClF;AAAA,QACA;AAAA,UACE,OAAO,EAAE,MAAM,kBAAkB,QAAQ,EAAE,QAAQ,UAAU,EAAE;AAAA,UAC/D,SAAS,EAAE,MAAM,oBAAoB,QAAQ,EAAE,OAAO,MAAM,MAAM,IAAI,EAAE;AAAA,QAC1E;AAAA,MACF;AAAA,MACA,IAAI;AAAA,QACF,cAAc;AAAA,UACZ,QAAQ;AAAA,UACR,SAAS;AAAA,QACX;AAAA,QACA,MAAM;AAAA,UACJ;AAAA,YACE,OAAO;AAAA,YACP,SAAS,CAAC,aAAa,cAAc;AAAA,UACvC;AAAA,UACA;AAAA,YACE,OAAO;AAAA,YACP,SAAS,EAAE,MAAM,oBAAoB,QAAQ,EAAE,MAAM,YAAY,EAAE;AAAA,YACnE,QAAQ;AAAA,UACV;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA,IACA,UAAU;AAAA,MACR,MAAM,CAAC,eAAe;AAAA,MACtB,OAAOH,QAAO,qBAAqB,EAAE,MAAM,WAAW,CAAC;AAAA,MACvD,IAAI;AAAA,QACF,MAAM;AAAA,UACJ;AAAA,YACE,OAAO;AAAA,YACP,SAAS,CAAC,aAAa,cAAc;AAAA,UACvC;AAAA,UACA;AAAA,YACE,aAAa;AAAA,YACb,OAAO;AAAA,YACP,SAAS,CAAC,EAAE,MAAM,aAAa,QAAQ,EAAE,sBAAsB,KAAK,EAAE,GAAG,cAAc;AAAA,UACzF;AAAA,UACA;AAAA,YACE,OAAO;AAAA,YACP,SAAS,EAAE,MAAM,oBAAoB,QAAQ,EAAE,MAAM,UAAU,EAAE;AAAA,YACjE,QAAQ;AAAA,UACV;AAAA,UACA;AAAA,YACE,OAAO;AAAA,YACP,SAAS,EAAE,MAAM,oBAAoB,QAAQ,EAAE,MAAM,YAAY,EAAE;AAAA,YACnE,QAAQ;AAAA,UACV;AAAA,UACA;AAAA,YACE,SAAS,EAAE,MAAM,oBAAoB,QAAQ,EAAE,MAAM,IAAI,EAAE;AAAA,YAC3D,QAAQ;AAAA,UACV;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA,IACA,YAAY;AAAA,MACV,MAAM,CAAC,iBAAiB;AAAA,MACxB,IAAI;AAAA,QACF,MAAM;AAAA,MACR;AAAA,IACF;AAAA,IACA,OAAO;AAAA,MACL,MAAM,CAAC,YAAY;AAAA,MACnB,IAAI;AAAA,QACF,MAAM;AAAA,UACJ,QAAQ;AAAA,UACR,SAAS;AAAA,QACX;AAAA,MACF;AAAA,IACF;AAAA,IACA,MAAM;AAAA,MACJ,MAAM;AAAA,MACN,MAAM;AAAA,IACR;AAAA,EACF;AACF,CAAC;;;AHndG,SACwC,KADxC;AAhDJ,IAAM,QAAQ,YAAY,qBAAqB,EAAE,QAAQ,CAAC;AAC1D,MAAM,MAAM;AAEZ,SAAS,mBAAmB,EAAE,UAAU,aAAa,UAAU,WAAW,GAA4B;AACpG,QAAM,QAAQ,SAAS;AACvB,QAAM,SAAS,eAAe;AAC9B,QAAM,UAAU,aAAa;AAC7B,QAAM,UAAU,YAAY,OAAO,WAAS,MAAM,UAAU,MAAM;AAElE,YAAU,MAAM;AACd,QAAI,CAAC,SAAS,CAAC,QAAQ;AACrB;AAAA,IACF;AAEA,UAAM,KAAK,MAAM;AACf,YAAM,MAA6B;AAAA,QACjC,MAAM;AAAA;AAAA,QAEN;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA,YAAY;AAAA,MACd;AAEA,UAAI,MAAM,YAAY,EAAE,IAAI,GAAG,GAAG;AAChC,cAAM,KAAK,GAAG;AAAA,MAChB;AAGA,UAAI,WAAW,MAAM,YAAY,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC,GAAG;AAC9D,cAAM,KAAK;AAAA,UACT,MAAM;AAAA,UACN;AAAA,QACF,CAAC;AAAA,MACH;AAAA,IACF;AAEA,QAAI,iBAAiB,OAAO;AAE1B,YAAM,YAAY,EAAE;AAAA,IACtB,OAAO;AACL,SAAG;AAAA,IACL;AAAA,EAEF,GAAG,CAAC,OAAO,aAAa,mCAAS,IAAI,CAAC,CAAC,QAAQ,MAAM,MAAM,CAAC;AAE5D,SACE,qBAAC,gBAAgB,UAAhB,EAAyB,UAAU,OACjC;AAAA,kBAAc,CAAC,WAAW,WAAW,oBAAC,QAAM,oBAAS,IAAU;AAAA,IAC/D,MAAM,UAAU,UAAU,WAAW;AAAA,KACxC;AAEJ;AA+BO,SAAS,WAAW;AAAA,EACzB;AAAA,EACA,cAAc;AAAA,EACd,WAAW;AAAA,EACX,MAAM;AAAA,EACN,UAAU,QAAQ;AACpB,GAAwC;AApHxC;AAqHE,QAAM,QAAQ,SAAS;AACvB,QAAM,UAAU,YAAY,QAAQ,UAAU,mBAAmB,eAAe;AAChF,QAAM,WAAW,OAAO,SAAS;AACjC,QAAM,gBAAe,YAAO,qBAAP;AACrB,QAAM,OAAO,YAAY,gBAAgB;AACzC,QAAM,aAAa,SAAS;AAE5B,cAAM,cAAN,mBAAiB;AAAA,IACf,sBAAsB,uBAAuB;AAAA,MAC3C;AAAA,MACA,UAAU,QAAQ,QAAQ;AAAA,MAC1B;AAAA,MACA;AAAA,IACF,CAAC;AAAA;AAGH,SACE,oBAAC,uBAAuB,UAAvB,EAAgC,OAAO,QACtC,8BAAC,UAAO,UAAU,MAChB,8BAAC,qBACC;AAAA,IAAC;AAAA;AAAA,MACC;AAAA,MACA;AAAA,MACA;AAAA,MAEC;AAAA;AAAA,EACH,GACF,GACF,GACF;AAEJ;;;AOpJA,YAAYQ,YAAW;;;ACAvB,SAAS,YAAY;AACrB,YAAY,WAAW;AAkDjB,gBAAAC,YAAA;AA9CN,IAAM,wBAAwB;AAC9B,IAAM,2BAA2B;AAAA,EAC/B,OAAO;AAAA,EACP,UAAU;AACZ;AAsBO,IAAM,iBAAuB;AAAA,EAClC,CAAC,EAAE,SAAS,IAAI,GAAG,KAAK,GAAG,iBAAiB;AAC1C,UAAM,WAAW,gBAAgB,YAAY;AAE7C,UAAM,OAAO,UAAU,OAAO;AAC9B,UAAM,eAAe,UAAU,CAAC,IAAI,EAAE,MAAM,SAAkB;AAE9D,UAAM,YAAkB,kBAAY,MAAM;AACxC,YAAM,OAAO,yBAAyB,EAAE;AAExC,UAAI,SAAS,YAAY,EAAE,IAAI,EAAE,KAAK,CAAC,GAAG;AACxC,iBAAS,KAAK,EAAE,KAAK,CAAC;AAAA,MACxB,OAAO;AACL,gBAAQ;AAAA,UACN,mCAAmC,EAAE,gEAAgE,OAAO,KAAK,wBAAwB,EAAE,KAAK,IAAI,CAAC;AAAA,QACvJ;AAAA,MACF;AAAA,IACF,GAAG,CAAC,UAAU,EAAE,CAAC;AAEjB,WACE,gBAAAA;AAAA,MAAC;AAAA;AAAA,QACE,GAAG;AAAA,QACH,GAAG;AAAA,QACJ,SAAS;AAAA,QACT,KAAK;AAAA;AAAA,IACP;AAAA,EAEJ;AACF;AAEA,eAAe,cAAc;;;AC7D7B,SAAS,QAAAC,aAAY;AACrB,SAAS,eAAAC,oBAAmB;AAC5B,YAAYC,YAAW;AA2DjB,gBAAAC,YAAA;AAxCN,IAAM,sBAAsB;AAerB,IAAM,eAAqB;AAAA,EAChC,CAAC,EAAE,SAAS,UAAU,GAAG,KAAK,GAAG,iBAAiB;AAChD,UAAM,MAAM,sBAAsB,YAAY,IAAI;AAElD,QAAI,CAAC,KAAK;AACR,YAAM,IAAI,MAAM,2EAA2E;AAAA,IAC7F;AAEA,UAAM,gBAA2CC;AAAA,MAC/C;AAAA,MACA,YAAU;AAAA,QACR,YAAY,MAAM,QAAQ;AAAA,QAC1B,iBAAiB,MAAM,QAAQ;AAAA,MACjC;AAAA,MACA,CAAC,GAAG,MAAM,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,eAAe,EAAE;AAAA,IAC1E;AAEA,QAAI,YAAY,CAAC,cAAc,YAAY;AACzC,aAAO,OAAO,aAAa,aAAa,SAAS,aAAa,IAAI;AAAA,IACpE;AAEA,UAAM,OAAO,UAAUC,QAAO;AAC9B,UAAM,eAAe,UAAU,CAAC,IAAI,EAAE,MAAM,SAAkB;AAE9D,WACE,gBAAAF;AAAA,MAAC;AAAA;AAAA,QACE,GAAG;AAAA,QACH,GAAG;AAAA,QACJ,UAAU,CAAC,cAAc;AAAA,QACzB,SAAS,MAAM,IAAI,KAAK,EAAE,MAAM,QAAQ,CAAC;AAAA,QACzC,KAAK;AAAA;AAAA,IACP;AAAA,EAEJ;AACF;AAEA,aAAa,cAAc;;;AFpBvB,gBAAAG,YAAA;AAbG,IAAM,eAAqB,kBAA0D,CAAC,OAAO,iBAAiB;AACnH,QAAM,EAAE,QAAQ,UAAU,QAAQ,GAAG,KAAK,IAAI;AAC9C,MAAI;AAEJ,MAAI,QAAQ;AACV,WAAO;AAAA,EACT,WAAW,UAAU;AACnB,WAAO;AAAA,EACT,WAAW,QAAQ;AACjB,WAAO;AAAA,EACT;AAEA,SAAO,OACL,gBAAAA;AAAA,IAAC;AAAA;AAAA,MACC,IAAI;AAAA,MACH,GAAG;AAAA,MACJ,KAAK;AAAA;AAAA,EACP,IACE;AACN,CAAC;AAED,aAAa,cAAc;;;AG5D3B,SAAS,QAAAC,aAAY;AACrB,YAAYC,YAAW;AA2DjB,gBAAAC,YAAA;AAXC,IAAM,gBAAsB;AAAA,EACjC,CAAC,EAAE,SAAS,UAAU,GAAG,KAAK,GAAG,iBAAiB;AAChD,UAAM,MAAM,eAAe,YAAY,IAAI;AAE3C,QAAI,CAAC,KAAK;AACR,YAAM,IAAI,0BAA0B,yEAAyE;AAAA,IAC/G;AAEA,UAAM,OAAO,UAAUC,QAAO;AAE9B,WACE,gBAAAD;AAAA,MAAC;AAAA;AAAA,QACC,IAAI;AAAA,QACH,GAAG;AAAA,QACJ,KAAK;AAAA;AAAA,IACP;AAAA,EAEJ;AACF;","names":["and","assign","enqueueActions","log","not","or","raise","sendTo","setup","fromPromise","not","setup","setup","fromPromise","not","and","assign","enqueueActions","fromPromise","sendTo","setup","and","setup","fromPromise","assign","sendTo","enqueueActions","setup","sendTo","raise","assign","and","not","or","enqueueActions","log","React","jsx","Slot","useSelector","React","jsx","useSelector","Slot","jsx","Slot","React","jsx","Slot"]}