{"version":3,"file":"fast-phonics-client-82a4b916a995a009238cc67651b39455.js","names":["App","Application","constructor","super","arguments","_defineProperty","this","config","modulePrefix","podModulePrefix","Resolver","_exports","default","startLog","rollbar","ignoredMessages","checkIgnore","setupDatadogRum","loadInitializers","__COLOCATED_TEMPLATE__","_templateFactory","createTemplateFactory","id","block","moduleName","isStrictMode","_component","setComponentTemplate","templateOnly","APP","ContentInteractive","_class","Component","_initializerDefineProperty","_descriptor","_descriptor2","_descriptor3","_descriptor4","AbortController","signal","abortController","loader","jesterLoader","externalController","contentActions","contentSpec","args","logger","enableMessengerLogging","name","event","_len","length","Array","_key","console","log","createExternalController","onUnrecoverableError","error","errorHandler","handleUnrecoverableError","variables","bgmDisabled","user","backgroundMusicDisabled","featureFlags","client","features","getClient","payload","flagNames","getObjectValue","jesterFlags","Set","filter","flagName","getBooleanValue","has","add","onError","aborted","reason","willDestroy","abort","_applyDecoratedDescriptor","prototype","service","configurable","enumerable","writable","initializer","action","Object","getOwnPropertyDescriptor","DebugObservable","key","subscribe","unsubscribe","next","value","currentValue","JSON","stringify","data","complete","tracked","ContentInteractiveDebugComponent","_class2","owner","debug","getDebug","actionParams","actions","params","param","entries","push","debugActions","values","defineProperty","get","debugValues","subscriptions","observable","debugSubscriptions","copyToClipboard","target","HTMLElement","dataset","navigator","clipboard","writeText","onSubmit","actionKey","_debug$actions$get","preventDefault","debugAction","debugParams","currentTarget","HTMLFormElement","Map","formData","FormData","_paramType","set","fromEntries","ToggleDebug","debugAllowed","debugMode","buttonText","enabled","toggleDebug","disable","enable","DebugModeCompleteStones","loadingUi","finish","isInteractiveActivity","activityType","isBookActivity","isQuizActivity","isVideoActivity","passQuizResult","correctAnswers","failQuizResult","incorrectAnswers","questionCount","progressionSequence","activityId","passActivity","saveActivityResult","uuid","uuidV4","correctCount","totalCount","failActivity","passVideoActivity","completeVideo","passBookQuiz","saveBookQuizResult","quizData","from","_","i","concat","toString","readRepeat","failBookQuiz","passPeakQuiz","savePeakQuizResult","failPeakQuiz","unhandledError","Error","transitionToErrorRoute","unhandledUnauthorizedError","unauthorizedError","NotAuthenticatedError","DebugModeIntroVideoComponent","goBack","DebugModePlacementTestComponent","saveTestResults","questionNumber","peakNumber","peakPlacement","skipPlacementTest","setQuestionNumber","Number","DebugModeToggleDebug","shouldDisplay","debugModeEnabled","DebugModeYetiShop","student","rewardTotals","coins","selectedYeti","yetiMenu","_this$args$yetis","yetis","purchases","map","_ref","price","purchased","slice","some","_ref2","item","purchasable","selectable","purchaseYeti","message","_error","selectYeti","ErrorScreen","furballPalette","shuffle","returnRoute","return","start","router","transitionTo","LoadingScreen","fadeDurationStyle","htmlSafe","fadeDuration","toFixed","QuestNotificationComponent","_descriptor5","_descriptor6","currencyAmount","firstName","quest","currentQuest","alertAnytime","displayQuestAlertIfRequired","showQuestAlert","questGoalForNotification","jesterManifests","acknowledgeQuestGoalAlert","goalId","awarded","close","closeQuestAlert","onContentError","handleContentUnhandledError","readyForUserInput","debugErrors","Controller","isRootRoute","routeName","currentRoute","includes","isAppBroken","progress","lessonsProgressData","placementTestRequired","showPlacementTest","isUnauthorizedError","model","errorScreenComponent","_dec","shouldRotateDevice","device","isMobile","isPortrait","currentAssignment","assignments","thumbnailUrl","title","timeRemaining","dateFromNow","Date","endAt","now","dueDate","formatDueDate","startAssignment","peak","logout","window","history","back","lastAccessiblePeak","_this","goToPeak","goToApp","appName","location","undefined","print","url","_internalGoToApp","href","_config$APP$apiEndpoi","URL","apiEndpoint","origin","appIsBroken","showLogoutErrorScreen","updateIntroVideoMutationDocument","graphql","useMutation","activityComponent","completeIntro","saveCompleteIntroResult","response","updateIntroVideo","current","mutate","input","viewed","__typename","hasFinishedProgram","hasViewedIntroVideo","goToTab","tabName","readBook","bookId","watchSoundVideo","sound","peakCertificate","pageTitle","localName","replaceWith","_dec2","type","options","numberOfPeaks","label","generatePeakOptions","positionInPeak","_dec3","_dec4","debugValue","_descriptor7","_descriptor8","_descriptor9","createActivityResultMutationDocument","isAssignmentMode","assignmentMode","assignmentId","shouldLogout","rosterEnabled","logOut","startIntroVideo","updatePeakView","peakId","peakView","transitionToPeak","goToStonesForPeak","transitionToStones","goToActivity","transitionToStoneActivity","goToSounds","transitionToSounds","goToWords","transitionToWords","goToBooks","transitionToBooks","goToProgress","transitionToProgress","goToYetiShop","saveProgress","peakRouteInfo","find","route","stoneId","activity","findStoneIdFor","chest","findActivityIdByPosition","ok","errorMessage","createActivityResult","attemptUuid","resetProgressToPlacementTest","resetPlacementTestProgress","resetProgressToPeakPosition","resetPeakProgress","parseInt","resetProgressToProgramComplete","e","r","l","call","t","Symbol","toPrimitive","TypeError","String","_toPrimitive","_toPropertyKey","n","a","keys","forEach","reverse","reduce","createPlacementTestResultMutationDocument","skipPlacementTestResultMutationDocument","goToPeaks","metrics","trackEvent","category","_validateSubmission","blob","skipPlacementTestResult","_ref3","createPlacementTestResult","createBookQuizResultMutationDocument","createPeakQuizResultMutationDocument","_descriptor0","studentFirstName","renderQuestAlert","startCase","completeVideoCalled","_incorrectAnswers$map","bookName","_bookName","createBookQuizResult","studentInput","correctAnswer","replayWithAudio","completeBookQuiz","completeBookQuizCalled","showCongratulations","queryParams","_ref4","_incorrectAnswers$map2","createPeakQuizResult","_ref5","studentName","contentError","coinsEarned","passed","certificateUrl","peakQuizResult","_ref6","activityResult","updateSelectedYetiMutationDocument","purchaseYetiMutationDocument","toLowerCase","getCoins","yeti","purchaseYetiMutation","updateSelectedYeti","fetch","setupDeprecationWorkflow","workflow","handler","matchId","source","_source","documents","types","UpdateIntroVideoDocument","PlacementTestResultDataFragmentFragmentDoc","SkipPlacementTestResultDataFragmentFragmentDoc","CreatePlacementTestResultDocument","SkipPlacementTestResultDocument","ActivityResultDataFragmentFragmentDoc","BookQuizResultDataFragmentFragmentDoc","PeakQuizResultDataFragmentFragmentDoc","CreateActivityResultDocument","CreateBookQuizResultDocument","CreatePeakQuizResultDocument","UpdateSelectedYetiDocument","PurchaseYetiDocument","GetInitialAppDataDocument","YetiDataFragmentFragmentDoc","GetYetisDocument","ActivityDataFragmentDoc","GetActivitiesDocument","StudentAssignmentDataFragmentFragmentDoc","GetStudentAssignmentDocument","ResetPeakProgressDocument","ResetPlacementTestProgressDocument","StudentProgressDataFragmentFragmentDoc","GetStudentProgressDocument","StudentQuestDataFragmentFragmentDoc","GetStudentQuestDocument","StudentQuestGoalAcknowledgeCompleteDocument","RewardTotalsDataFragmentFragmentDoc","PeakQuizSummariesDataFragmentFragmentDoc","PurchasesDataFragmentFragmentDoc","SoundsDataFragmentFragmentDoc","WordsDataFragmentFragmentDoc","StudentUserDataFragmentFragmentDoc","GetStudentDocument","Accent","ActivityType","FeatureFlagType","HouseLevel","PurchaseCatgegory","QuestGoalStatus","kind","definitions","typeCondition","selectionSet","selections","alias","operation","variableDefinitions","variable","_gql","possibleTypes","Assignment","AssignmentDetails","AssignmentTask","AssignmentTaskDetails","CreateActivityResultPayload","CreateBookQuizResultPayload","CreatePeakQuizResultPayload","CreatePlacementTestResultPayload","PrimaryGoal","PurchaseYetiPayload","SkipPlacementTestResultPayload","StudentPayload","StudentProgressPeakResetPayload","StudentProgressPlacementTestResetPayload","StudentQuestGoalAcknowledgeCompletePayload","UpdateIntroVideoPayload","UpdateSelectedYetiPayload","appVersion","hash","version","versionOnly","hideSha","shaOnly","hideVersion","match","showExtended","versionExtendedRegExp","versionRegExp","shaRegExp","helper","pluralize","singularize","styleNamespace","componentName","classname","podNames","titleCase","capitalize","decamelize","replace","initialize","initializerFactory","Ember","reopen","StyleNamespacingExtras","Modifier","modify","parent","use","resource","on","apollo","lookup","watchOptions","fragment","query","watchFragment","currentResult","cell","cache","identify","initialResult","readFragment","subscription","result","cleanup","Fragment","mutation","clientOptions","mutateResult","Mutation","watchQuery","partial","refetch","updateQuery","mapFn","Query","Router","EmberRouter","locationType","rootURL","path","initialAppQueryDocument","Route","_descriptor1","_descriptor10","_descriptor11","_descriptor12","_descriptor13","one","_trackPage","beforeModel","transition","_transition$to","_transition$to2","to","_setupSession","afterModel","_resolvedModel","checkTransition","_transition$to$name","_transition$to3","logErrorIfActionable","willTransition","_scheduleAppRefreshOnSuccessfulTransition","trackPage","page","currentURL","currentRouteName","trackTimeOnTask","timeOnTask","trackRoute","timeOnTaskV2Enabled","isEnabled","load","setup","Promise","all","studentId","sessionTracker","releaseChecker","longSessionKiller","_transition$from","fromRouteName","followRedirects","then","toRoute","toRouteName","isInsideInteractive","isErrorRoute","refresher","refreshIfSafeAndScheduled","trigger","assignment","book_id","books","bookActivity","findActivityById","manifestBundle","manifestBundleName","manifestKey","manifests","displayQuiz","book","abbreviatedName","finalPeakNbr","lastPeak","redirect","loginWarning","warning","signIn","logoutUrl","LogoutRoute","form","document","createElement","setAttribute","body","appendChild","submit","userRewards","_params","averageBestPeakQuizResult","peakQuizSummaries","peakQuizResults","sounds","words","results","acc","rewards","word","requestedTab","_initialTab","peaksWithoutSounds","PeakView","requestedPeakId","_getRequestedPeakIdFromRoute","canPlayPeak","Boolean","userProgress","requestedRouteInfo","requestedPeakView","_getRequestedPeakViewFromRoute","ASSIGNMENT_MODE","routeInfo","stones","PeakRoute","studentAccent","accent","accentOverride","flatMap","s","StoneRoute","peak_id","stone_id","canPlayStone","paramsFor","findActivityByStoneId","contentSpecsByActivityType","YetiQueryDocument","purchasedYetis","ActivitiesQueryDocument","ActivityService","Service","useQuery","activities","_activitiesQuery","lastActivity","at","findPositionInPeakFor","runInDebug","loadDevMessages","loadErrorMessages","apolloURL","typePolicies","_client","WeakMap","properties","_apollo$connectToDevT","_classPrivateFieldInitSpec","InMemoryCache","introspectionResult","httpLink","createHttpLink","uri","credentials","errorLink","graphQLErrors","networkError","delayOpts","retryLink","RetryLink","attempts","max","retryIf","_input","isApolloNetworkErrorRetryable","_classPrivateFieldSet","ApolloClient","link","devtools","connectToDevTools","_classPrivateFieldGet","clearStore","waitFor","StudentAssignmentQueryDocument","_studentAssignmentQuery","handleError","_transition$targetNam","targetName","startsWith","targetPeakId","parentPeakId","parentStoneId","assignmentStoneId","resetPeakProgressMutationDocument","resetPlacementTestProgressMutationDocument","resetPeakProgressMutation","resetPlacementTestProgressMutation","isErrorLike","errorIsActionable","ContentLoader","variant","activityAccent","framework","contentLoader","jester","_config$APP$loadingUi","_preDelay","_config$APP$loadingUi2","preDelay","_postDelay","_config$APP$loadingUi3","postDelay","getElementsByTagName","pageTransitionEvent","persisted","getLastNavigationType","addEventListener","_onPageShow","removeEventListener","fn","isLoading","later","_finishLoading","staticLoadingElement","staticLoadingElements","_removeStaticLoadingScreen","remove","once","style","setProperty","deviceDetection","isNativeMobile","searchParams","open","_printImage","printImage","StudentProgressQueryDocument","_studentProgressQuery","lessons","RollbarIgnoreError","progressPeak","Math","min","viewedIntroVideo","canPlayPeakLesson","requestedPosition","canPlayStoneActivity","StudentQuestQueryDocument","acknowledgeQuestGoalAlertMutationDocument","_this$_studentQuestQu","_this$_studentQuestQu2","_this$_studentQuestQu3","_studentQuestQuery","recommendedTargetRoute","primaryGoal","status","Incomplete","progressCurrent","_this$currentQuest","ShowCompleteAlert","_acknowledgeQuestGoalAlertMutation","studentQuestGoalAcknowledgeComplete","onClose","SessionTokenService","getTokenForStudent","expectedStudentId","_this$cachedStudentTo","_this$cachedStudentTo2","hasUsableCachedToken","cachedStudentToken","token","requestSessionData","isValidStudentSession","expiresAtMs","expired_at","shouldCacheToken","authSessionURL","headers","accept","json","user_type","user_id","TimeOnTask","initialized","totter","TimeOnTaskClass","product","syncOptions","syncUrl","getAuthCallback","async","_await$this$sessionTo","sessionToken","_this$totter","trackSession","timeOnTaskUrl","loginUrl","StudentQueryDocument","_studentQuery","setupFeatureFlags","setPerson","ky","post","context","targetingKey","retry","limit","methods","flags","provider","createOfrepInMemoryProvider","isCanadaAware","Ca","isPeaksRoute","test","isMyProgressRoute","isInsidePeaks","every","isInsideMyProgress","check","DD_RUM","datadogRum","matches","appVersionRegex","exec","userAgent","_matches$","setGlobalContextProperty","date","diff","getTime","DIFF_YEAR_AGO","_msToAbsolute","DIFF_MONTHS_AGO","DIFF_MONTH_AGO","DIFF_DAYS_AGO","DIFF_DAY_AGO","DIFF_HOURS_AGO","DIFF_HOUR_AGO","DIFF_MINUTES_AGO","DIFF_MINUTE_AGO","DIFF_SECONDS_AGO","DIFF_SECONDS_FROM_NOW","DIFF_MINUTE_FROM_NOW","DIFF_MINUTES_FROM_NOW","DIFF_HOUR_FROM_NOW","DIFF_HOURS_FROM_NOW","DIFF_DAY_FROM_NOW","DIFF_DAYS_FROM_NOW","DIFF_MONTH_FROM_NOW","DIFF_MONTHS_FROM_NOW","DIFF_YEAR_FROM_NOW","abs","ceil","floor","ONE_MINUTE","ONE_SECOND","ONE_HOUR","ONE_DAY","ONE_MONTH","ONE_YEAR","ms","unit","converted","minutes","hours","days","months","years","propertyKey","DebugContent","DebugContentSymbol","for","setDebug","assign","unrecoverableErrorCheck","ContentError","cause","isAbortError","isScriptBlockedError","isNotAuthenticatedError","isNetworkError","obj","hasOwnProperty","statusCode","HTTPError","isBadRequestError","errorHasName","isServerError","isKyTimeoutError","ScriptBlockedError","dateOfMonth","getDate","dayOfWeek","getDay","month","getMonth","attributes","eggs","locale","performance","currentNavigation","navigationType","getEntriesByType","navigation","hiddenPrintContainerId","printContainer","querySelector","firstChild","hiddenImage","src","printPromise","resolve","reject","onload","setTimeout","onerror","studentProgress","currentPeak","requestedPeak","requestedStone","currentStone","studentProgressPeak","lastActivityPeak","callback","pRetry","AbortError","define","metaName","prefix","rawConfig","getAttribute","exports","parse","decodeURIComponent","err","runningTests","require","create","apiNamespace","studentNamespace","gitSha","defaultAccent","emberGitSha","guest","certificateHost"],"sources":["vendor/ember-cli/app-prefix.js","fast-phonics-client/app.ts","fast-phonics-client/components/assignment-button.js","fast-phonics-client/components/content-interactive.ts","fast-phonics-client/components/content-interactive/debug.ts","fast-phonics-client/components/debug-app/toggle-debug.ts","fast-phonics-client/components/debug-mode/complete-stones.ts","fast-phonics-client/components/debug-mode/intro-video.ts","fast-phonics-client/components/debug-mode/placement-test.ts","fast-phonics-client/components/debug-mode/toggle-debug.ts","fast-phonics-client/components/debug-mode/yeti-shop.ts","fast-phonics-client/components/device-rotate-notification.js","fast-phonics-client/components/dialog/overlay.js","fast-phonics-client/components/error-screen.ts","fast-phonics-client/components/error-screen/login.js","fast-phonics-client/components/error-screen/logout.js","fast-phonics-client/components/error-screen/not-found.js","fast-phonics-client/components/full-viewport.js","fast-phonics-client/components/hidden-print-container.js","fast-phonics-client/components/loading-screen.ts","fast-phonics-client/components/quest/notification.ts","fast-phonics-client/controllers/application-error.ts","fast-phonics-client/controllers/application.ts","fast-phonics-client/controllers/assignment.ts","fast-phonics-client/controllers/book.ts","fast-phonics-client/controllers/end-of-program.ts","fast-phonics-client/controllers/error/index.ts","fast-phonics-client/controllers/intro-video.ts","fast-phonics-client/controllers/my-progress.ts","fast-phonics-client/controllers/peaks.ts","fast-phonics-client/controllers/placement-test.ts","fast-phonics-client/controllers/sound.ts","fast-phonics-client/controllers/stone/index.ts","fast-phonics-client/controllers/yeti-shop.ts","fast-phonics-client/deprecation-workflow.js","fast-phonics-client/graphql/gql.ts","fast-phonics-client/graphql/graphql.ts","fast-phonics-client/graphql/index.ts","fast-phonics-client/graphql/introspection-result.ts","fast-phonics-client/helpers/app-version.js","fast-phonics-client/helpers/pluralize.js","fast-phonics-client/helpers/singularize.js","fast-phonics-client/helpers/style-namespace.ts","fast-phonics-client/helpers/title-case.ts","fast-phonics-client/initializers/app-version.js","fast-phonics-client/initializers/component-styles.js","fast-phonics-client/initializers/ember-cli-mirage.js","fast-phonics-client/instance-initializers/route-styles.js","fast-phonics-client/modifiers/remove-loading-screen.ts","fast-phonics-client/resources/fragment.ts","fast-phonics-client/resources/mutation.ts","fast-phonics-client/resources/query.ts","fast-phonics-client/router.js","fast-phonics-client/routes/application.ts","fast-phonics-client/routes/assignment.ts","fast-phonics-client/routes/book.ts","fast-phonics-client/routes/end-of-program.ts","fast-phonics-client/routes/index.ts","fast-phonics-client/routes/intro-video.ts","fast-phonics-client/routes/login.ts","fast-phonics-client/routes/logout.ts","fast-phonics-client/routes/my-progress.ts","fast-phonics-client/routes/peaks.ts","fast-phonics-client/routes/peaks/peak.ts","fast-phonics-client/routes/placement-test.ts","fast-phonics-client/routes/recommended.ts","fast-phonics-client/routes/sound.ts","fast-phonics-client/routes/stone.ts","fast-phonics-client/routes/stone/index.ts","fast-phonics-client/routes/yeti-shop.ts","fast-phonics-client/services/activity.ts","fast-phonics-client/services/apollo.ts","fast-phonics-client/services/assignments.ts","fast-phonics-client/services/debug-mode.ts","fast-phonics-client/services/error-handler.ts","fast-phonics-client/services/jester-loader.ts","fast-phonics-client/services/loading-ui.ts","fast-phonics-client/services/peak-certificate.ts","fast-phonics-client/services/progress.ts","fast-phonics-client/services/quest.ts","fast-phonics-client/services/session-token.ts","fast-phonics-client/services/time-on-task.ts","fast-phonics-client/services/user.ts","fast-phonics-client/utils/app-refresher-logic.ts","fast-phonics-client/utils/datadog-rum.ts","fast-phonics-client/utils/date-from-now.ts","fast-phonics-client/utils/debug.ts","fast-phonics-client/utils/errors.ts","fast-phonics-client/utils/format-due-date.ts","fast-phonics-client/utils/guest-student.js","fast-phonics-client/utils/navigation.js","fast-phonics-client/utils/print-image.ts","fast-phonics-client/utils/progress.ts","fast-phonics-client/utils/retry-on-network-error.ts","vendor/ember-cli/app-config.js","vendor/ember-cli/app-boot.js"],"sourcesContent":["'use strict';\n\n\n","/**\n * This is a polyfill for Error.cause\n * It can be removed once our all browsers support it natively -\n * see https://caniuse.com/mdn-javascript_builtins_error_cause\n */\nimport 'core-js/stable/error'\n\nimport 'core-js/stable/array/at'\n\nimport './deprecation-workflow'\n\nimport Application from '@ember/application'\nimport Resolver from 'ember-resolver'\nimport loadInitializers from 'ember-load-initializers'\nimport { startLog, checkIgnore } from '@blakeelearning/log'\nimport { setupDatadogRum } from 'fast-phonics-client/utils/datadog-rum'\nimport config from 'fast-phonics-client/config/environment'\n\nexport default class App extends Application {\n  modulePrefix = config.modulePrefix\n\n  podModulePrefix = config.podModulePrefix\n\n  Resolver = Resolver\n}\n\nstartLog({\n  rollbar: {\n    ...config.rollbar,\n    ignoredMessages: [\n      // ignore ScriptBlockedError\n      // ignoredMessages matchers are actually regular expressions\n      // https://docs.rollbar.com/docs/javascript#ignoring-specific-exception-messages\n      \"^Script '.*' blocked$\",\n      \"RollbarIgnoreError\",\n\n    ],\n    checkIgnore,\n  },\n})\n\nsetupDatadogRum()\n\nloadInitializers(App, config.modulePrefix)\n","import { hbs } from 'ember-cli-htmlbars';\nconst __COLOCATED_TEMPLATE__ = hbs(\"<button\\n  ...attributes\\n  class=\\\"{{style-namespace 'assignment-button'}}\\\"\\n  {{on \\\"click\\\" @action}}\\n  type=\\\"button\\\"\\n>\\n  <div class=\\\"btn-fill-outer\\\">\\n    <div class=\\\"btn-fill-inner\\\">\\n      <span> {{yield}}</span>\\n    </div>\\n  </div>\\n\\n</button>\", {\"contents\":\"<button\\n  ...attributes\\n  class=\\\"{{style-namespace 'assignment-button'}}\\\"\\n  {{on \\\"click\\\" @action}}\\n  type=\\\"button\\\"\\n>\\n  <div class=\\\"btn-fill-outer\\\">\\n    <div class=\\\"btn-fill-inner\\\">\\n      <span> {{yield}}</span>\\n    </div>\\n  </div>\\n\\n</button>\",\"moduleName\":\"fast-phonics-client/components/assignment-button.hbs\",\"parseOptions\":{\"srcName\":\"fast-phonics-client/components/assignment-button.hbs\"}});\nimport templateOnly from '@ember/component/template-only';\n\nexport default templateOnly();\n","import { hbs } from 'ember-cli-htmlbars';\nconst __COLOCATED_TEMPLATE__ = hbs(\"<FullViewport\\n  {{content-interactive\\n    this.loader\\n    manifests=@manifests\\n    variables=this.variables\\n    externalController=this.externalController\\n    onError=this.onError\\n    signal=this.signal\\n    features=this.featureFlags\\n  }}\\n  data-test-content-interactive\\n  class=\\\"flex justify-center items-center\\\"\\n  ...attributes\\n/>\", {\"contents\":\"<FullViewport\\n  {{content-interactive\\n    this.loader\\n    manifests=@manifests\\n    variables=this.variables\\n    externalController=this.externalController\\n    onError=this.onError\\n    signal=this.signal\\n    features=this.featureFlags\\n  }}\\n  data-test-content-interactive\\n  class=\\\"flex justify-center items-center\\\"\\n  ...attributes\\n/>\",\"moduleName\":\"fast-phonics-client/components/content-interactive.hbs\",\"parseOptions\":{\"srcName\":\"fast-phonics-client/components/content-interactive.hbs\"}});\nimport Component from '@glimmer/component'\nimport { assert } from '@ember/debug'\nimport { inject as service } from '@ember/service'\nimport type { ExternalController, Logger } from '@blakeelearning/messenger'\nimport {\n  createExternalController,\n  isContentSpec,\n  isContentActions,\n} from '@blakeelearning/messenger'\nimport config from 'fast-phonics-client/config/environment'\nimport type ErrorHandlerService from 'fast-phonics-client/services/error-handler'\nimport type { FeatureService } from '@blakeelearning/features'\nimport { action } from '@ember/object'\nimport type JesterLoaderService from 'fast-phonics-client/services/jester-loader'\nimport type UserService from 'fast-phonics-client/services/user'\n\nconst { APP } = config\n\ninterface ContentInteractiveComponentArgs {\n  Element: HTMLElement\n  Args: {\n    contentActions: unknown\n    contentSpec: unknown\n    accentOverride?: string\n    manifests: [key: string, url: string][]\n    variables: Record<string, unknown>\n  }\n}\n\nexport default class ContentInteractive extends Component<ContentInteractiveComponentArgs> {\n  @service declare errorHandler: ErrorHandlerService\n\n  @service declare features: FeatureService\n\n  @service declare jesterLoader: JesterLoaderService\n\n  @service declare user: UserService\n\n  abortController = new AbortController()\n\n  get signal() {\n    return this.abortController.signal\n  }\n\n  get loader() {\n    return this.jesterLoader.loader\n  }\n\n  get externalController(): ExternalController {\n    const { contentActions, contentSpec } = this.args\n\n    assert(\n      '@contentSpec must be a valid contentSpec object',\n      isContentSpec(contentSpec),\n    )\n\n    assert(\n      '@contentActions must be a valid contentActions object for this contentSpec',\n      isContentActions(contentActions, contentSpec),\n    )\n\n    let logger: Logger | undefined\n\n    if (APP.enableMessengerLogging) {\n      logger = (name, event, ...args) => {\n        console.log(\n          '%c[%s :: %s]',\n          'color: lavender; background-color: #836bb6; font-weight: bold',\n          name,\n          event,\n          ...args,\n        )\n      }\n    }\n\n    return createExternalController(contentActions, contentSpec, {\n      onUnrecoverableError: (error) => {\n        this.errorHandler.handleUnrecoverableError(error)\n      },\n      logger,\n    })\n  }\n\n  get variables() {\n    return {\n      ...this.args.variables,\n      bgmDisabled: this.user.backgroundMusicDisabled,\n    }\n  }\n\n  get featureFlags() {\n    const client = this.features.getClient()\n    const { payload: flagNames } = client.getObjectValue<{ payload: string[] }>(\n      'fp_jester-flag-names',\n      { payload: [] },\n    )\n\n    const jesterFlags = new Set([\n      ...flagNames.filter((flagName) =>\n        client.getBooleanValue(flagName, false),\n      ),\n    ])\n\n    if (jesterFlags.has('fp_jester-css-font-loading')) {\n      jesterFlags.add('jesterCssFontLoadingFF')\n    }\n\n    return [...jesterFlags]\n  }\n\n  @action\n  onError(error: unknown) {\n    if (this.signal.aborted) {\n      console.log(this.signal.reason)\n    } else {\n      this.errorHandler.handleUnrecoverableError(error)\n    }\n  }\n\n  override willDestroy(): void {\n    this.abortController.abort('Destroying interactive')\n    super.willDestroy()\n  }\n}\n","import { hbs } from 'ember-cli-htmlbars';\nconst __COLOCATED_TEMPLATE__ = hbs(\"<div class=\\\"{{style-namespace 'content-interactive/debug'}}\\\">\\n  {{#each this.debugActions as |action|}}\\n    <form {{on \\\"submit\\\" (fn this.onSubmit action.key)}}>\\n      {{#each action.params as |param|}}\\n        <fieldset>\\n          <label for=\\\"{{action.key}}-{{param.name}}\\\">\\n            {{title-case param.name}}\\n          </label>\\n          {{#if (eq param.type \\\"select\\\")}}\\n            <select\\n              class=\\\"form-select\\\"\\n              id=\\\"{{action.key}}-{{param.name}}\\\"\\n              name={{param.name}}\\n              required\\n            >\\n              <option value=\\\"\\\">Select {{param.name}}</option>\\n              {{#each param.options as |item|}}\\n                <option\\n                  value={{item.value}}\\n                  selected={{eq param.value item.value}}\\n                >\\n                  {{item.label}}\\n                </option>\\n              {{/each}}\\n            </select>\\n          {{else}}\\n            <input\\n              class=\\\"form-input\\\"\\n              id=\\\"{{action.key}}-{{param.name}}\\\"\\n              name={{param.name}}\\n              type={{param.type}}\\n              value={{param.value}}\\n            />\\n          {{/if}}\\n        </fieldset>\\n      {{/each}}\\n\\n      <button data-test-debug-action={{action.key}} type=\\\"submit\\\">\\n        {{title-case action.key}}\\n      </button>\\n    </form>\\n  {{/each}}\\n\\n  {{#each this.debugValues as |value|}}\\n    <figure>\\n      <figcaption>\\n        {{title-case value}}\\n      </figcaption>\\n\\n      <pre\\n        data-test-debug-value={{value}}\\n        data-debug=\\\"{{get this value}}\\\"\\n        title=\\\"Copy to Clipboard\\\"\\n        role=\\\"button\\\"\\n        tabindex=\\\"0\\\"\\n        {{on \\\"click\\\" this.copyToClipboard}}\\n      ></pre>\\n    </figure>\\n  {{/each}}\\n\\n  {{#each this.debugSubscriptions as |subscription|}}\\n    <figure>\\n      <figcaption>\\n        {{title-case subscription.key}}\\n      </figcaption>\\n\\n      <pre\\n        data-test-debug-value={{subscription.key}}\\n        data-debug=\\\"{{subscription.currentValue}}\\\"\\n        title=\\\"Copy to Clipboard\\\"\\n        role=\\\"button\\\"\\n        tabindex=\\\"0\\\"\\n        {{on \\\"click\\\" this.copyToClipboard}}\\n      ></pre>\\n    </figure>\\n  {{/each}}\\n</div>\", {\"contents\":\"<div class=\\\"{{style-namespace 'content-interactive/debug'}}\\\">\\n  {{#each this.debugActions as |action|}}\\n    <form {{on \\\"submit\\\" (fn this.onSubmit action.key)}}>\\n      {{#each action.params as |param|}}\\n        <fieldset>\\n          <label for=\\\"{{action.key}}-{{param.name}}\\\">\\n            {{title-case param.name}}\\n          </label>\\n          {{#if (eq param.type \\\"select\\\")}}\\n            <select\\n              class=\\\"form-select\\\"\\n              id=\\\"{{action.key}}-{{param.name}}\\\"\\n              name={{param.name}}\\n              required\\n            >\\n              <option value=\\\"\\\">Select {{param.name}}</option>\\n              {{#each param.options as |item|}}\\n                <option\\n                  value={{item.value}}\\n                  selected={{eq param.value item.value}}\\n                >\\n                  {{item.label}}\\n                </option>\\n              {{/each}}\\n            </select>\\n          {{else}}\\n            <input\\n              class=\\\"form-input\\\"\\n              id=\\\"{{action.key}}-{{param.name}}\\\"\\n              name={{param.name}}\\n              type={{param.type}}\\n              value={{param.value}}\\n            />\\n          {{/if}}\\n        </fieldset>\\n      {{/each}}\\n\\n      <button data-test-debug-action={{action.key}} type=\\\"submit\\\">\\n        {{title-case action.key}}\\n      </button>\\n    </form>\\n  {{/each}}\\n\\n  {{#each this.debugValues as |value|}}\\n    <figure>\\n      <figcaption>\\n        {{title-case value}}\\n      </figcaption>\\n\\n      <pre\\n        data-test-debug-value={{value}}\\n        data-debug=\\\"{{get this value}}\\\"\\n        title=\\\"Copy to Clipboard\\\"\\n        role=\\\"button\\\"\\n        tabindex=\\\"0\\\"\\n        {{on \\\"click\\\" this.copyToClipboard}}\\n      ></pre>\\n    </figure>\\n  {{/each}}\\n\\n  {{#each this.debugSubscriptions as |subscription|}}\\n    <figure>\\n      <figcaption>\\n        {{title-case subscription.key}}\\n      </figcaption>\\n\\n      <pre\\n        data-test-debug-value={{subscription.key}}\\n        data-debug=\\\"{{subscription.currentValue}}\\\"\\n        title=\\\"Copy to Clipboard\\\"\\n        role=\\\"button\\\"\\n        tabindex=\\\"0\\\"\\n        {{on \\\"click\\\" this.copyToClipboard}}\\n      ></pre>\\n    </figure>\\n  {{/each}}\\n</div>\",\"moduleName\":\"fast-phonics-client/components/content-interactive/debug.hbs\",\"parseOptions\":{\"srcName\":\"fast-phonics-client/components/content-interactive/debug.hbs\"}});\nimport { assert } from '@ember/debug'\nimport { action } from '@ember/object'\nimport Component from '@glimmer/component'\nimport { tracked } from '@glimmer/tracking'\nimport type { Subscribe } from '@blakeelearning/messenger'\nimport {\n  getDebug,\n  type DebugActionParam,\n} from 'fast-phonics-client/utils/debug'\n\ninterface Args {\n  contentActions?: Record<string | symbol, unknown>\n}\n\ntype DebugParam = DebugActionParam & {\n  /**\n   * The name of the input field\n   */\n  name: string\n}\n\ninterface DebugAction {\n  key: string | symbol\n  params: DebugParam[]\n}\n\nclass DebugObservable {\n  @tracked currentValue?: string\n\n  key: string | symbol\n\n  // eslint-disable-next-line @typescript-eslint/no-invalid-void-type\n  unsubscribe: (() => void) | void\n\n  constructor(key: string | symbol, subscribe: Subscribe) {\n    this.key = key\n\n    this.unsubscribe = subscribe({\n      next: (value) => {\n        this.currentValue = JSON.stringify(value.data, null, 2)\n      },\n      error(error) {\n        console.log(error)\n      },\n      complete() {\n        console.log('done')\n      },\n    })\n  }\n}\n\n/**\n * Displays values and actions from the DebugContent in a debug menu\n *\n * Displays values as JSON strings\n *\n * Displays actions a form, with action params as input fields\n */\nexport default class ContentInteractiveDebugComponent extends Component<Args> {\n  debugValues: (string | symbol)[] = []\n\n  debugActions: DebugAction[] = []\n\n  debugSubscriptions: DebugObservable[] = []\n\n  constructor(owner: unknown, args: Args) {\n    super(owner, args)\n\n    const debug = getDebug(this.contentActions)\n\n    for (const [key, actionParams] of debug.actions) {\n      const params = []\n\n      if (typeof actionParams !== 'undefined') {\n        for (const [name, param] of Object.entries(actionParams)) {\n          params.push({ name, ...param })\n        }\n      }\n\n      this.debugActions.push({ key, params })\n    }\n\n    for (const key of debug.values) {\n      Object.defineProperty(this, key, {\n        get() {\n          // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n          return JSON.stringify(this.contentActions[key], null, 2)\n        },\n      })\n\n      this.debugValues.push(key)\n    }\n\n    for (const key of debug.subscriptions) {\n      const subscribe = this.contentActions[key]\n\n      if (typeof subscribe === 'function') {\n        const observable = new DebugObservable(key, subscribe as Subscribe)\n        this.debugSubscriptions.push(observable)\n      }\n    }\n  }\n\n  get contentActions() {\n    assert(\n      'contentActions must be defined',\n      typeof this.args.contentActions !== 'undefined',\n    )\n    return this.args.contentActions\n  }\n\n  @action\n  copyToClipboard(event: Event) {\n    if (\n      event.target instanceof HTMLElement &&\n      typeof event.target.dataset['debug'] === 'string'\n    ) {\n      void navigator.clipboard.writeText(event.target.dataset['debug'])\n    }\n  }\n\n  @action\n  onSubmit(actionKey: string, event: Event) {\n    event.preventDefault()\n\n    const debug = getDebug(this.contentActions)\n    const debugAction = this.contentActions[actionKey]\n    const debugParams = debug.actions.get(actionKey) ?? []\n\n    assert('debug action must be a function', typeof debugAction === 'function')\n\n    if (event.currentTarget instanceof HTMLFormElement) {\n      const params = new Map()\n      const formData = new FormData(event.currentTarget)\n\n      for (const [key, _paramType] of Object.entries(debugParams)) {\n        const value = formData.get(key)\n\n        params.set(key, value)\n      }\n\n      // eslint-disable-next-line @typescript-eslint/no-unsafe-call\n      debugAction(Object.fromEntries(params))\n    }\n  }\n}\n","import { hbs } from 'ember-cli-htmlbars';\nconst __COLOCATED_TEMPLATE__ = hbs(\"{{#if this.debugAllowed}}\\n  <div\\n    class=\\\"absolute right-0 top-0 overflow-y-auto rounded-bl-md bg-dusty-black-500 bg-opacity-50\\\"\\n  >\\n    <div class=\\\"relative\\\">\\n      <button\\n        class=\\\"ml-auto block rounded-bl-md bg-dusty-black-400 bg-opacity-80 px-3 py-2 text-white shadow-sm\\\"\\n        data-test-toggle-debug=\\\"true\\\"\\n        {{on \\\"click\\\" this.toggleDebug}}\\n        type=\\\"button\\\"\\n      >\\n        {{this.buttonText}}\\n      </button>\\n\\n      {{#if this.debugMode.enabled}}\\n        {{yield}}\\n      {{/if}}\\n    </div>\\n  </div>\\n{{/if}}\", {\"contents\":\"{{#if this.debugAllowed}}\\n  <div\\n    class=\\\"absolute right-0 top-0 overflow-y-auto rounded-bl-md bg-dusty-black-500 bg-opacity-50\\\"\\n  >\\n    <div class=\\\"relative\\\">\\n      <button\\n        class=\\\"ml-auto block rounded-bl-md bg-dusty-black-400 bg-opacity-80 px-3 py-2 text-white shadow-sm\\\"\\n        data-test-toggle-debug=\\\"true\\\"\\n        {{on \\\"click\\\" this.toggleDebug}}\\n        type=\\\"button\\\"\\n      >\\n        {{this.buttonText}}\\n      </button>\\n\\n      {{#if this.debugMode.enabled}}\\n        {{yield}}\\n      {{/if}}\\n    </div>\\n  </div>\\n{{/if}}\",\"moduleName\":\"fast-phonics-client/components/debug-app/toggle-debug.hbs\",\"parseOptions\":{\"srcName\":\"fast-phonics-client/components/debug-app/toggle-debug.hbs\"}});\nimport { inject as service } from '@ember/service'\nimport { action } from '@ember/object'\nimport Component from '@glimmer/component'\nimport type DebugModeService from 'fast-phonics-client/services/debug-mode'\n\n/**\n * Provide a button to toggle debug mode globally\n */\nexport default class ToggleDebug extends Component {\n  @service declare debugMode: DebugModeService\n\n  get debugAllowed() {\n    return this.debugMode.debugAllowed\n  }\n\n  get buttonText() {\n    if (this.debugMode.enabled) {\n      return 'Disable Debug Mode'\n    }\n    return 'Enable Debug Mode'\n  }\n\n  @action\n  toggleDebug() {\n    if (this.debugMode.enabled) {\n      this.debugMode.disable()\n    } else {\n      this.debugMode.enable()\n    }\n  }\n}\n","import { hbs } from 'ember-cli-htmlbars';\nconst __COLOCATED_TEMPLATE__ = hbs(\"<FullViewport>\\n  <div class={{style-namespace \\\"debug-mode/complete-stones\\\"}} ...attributes>\\n    <div\\n      class=\\\"flex flex-col justify-center w-full h-screen complete-stones-container\\\"\\n    >\\n      {{#if this.isInteractiveActivity}}\\n        <div class=\\\"complete-stone-item\\\">\\n          <button\\n            class=\\\"mx-2 w-1/4\\\"\\n            data-test-complete-activity-pass\\n            type=\\\"button\\\"\\n            {{on \\\"click\\\" this.passActivity}}\\n          >\\n            Pass Interactive Activity\\n          </button>\\n\\n          <button\\n            class=\\\"mx-2 w-1/4\\\"\\n            data-test-complete-activity-fail\\n            type=\\\"button\\\"\\n            {{on \\\"click\\\" this.failActivity}}\\n          >\\n            Fail Interactive Activity\\n          </button>\\n        </div>\\n      {{/if}}\\n      {{#if this.isVideoActivity}}\\n        <div class=\\\"complete-stone-item\\\">\\n          <button\\n            class=\\\"mx-2 w-1/4\\\"\\n            data-test-complete-video-activity-pass\\n            type=\\\"button\\\"\\n            {{on \\\"click\\\" this.passVideoActivity}}\\n          >\\n            Pass Video Activity\\n          </button>\\n        </div>\\n      {{/if}}\\n      {{#if this.isBookActivity}}\\n\\n        <div class=\\\"complete-stone-item\\\">\\n          <button\\n            class=\\\"mx-2 w-1/4\\\"\\n            data-test-pass-book-quiz\\n            type=\\\"button\\\"\\n            {{on \\\"click\\\" this.passBookQuiz}}\\n          >\\n            Pass Book Quiz\\n          </button>\\n\\n          <button\\n            class=\\\"mx-2 w-1/4\\\"\\n            data-test-fail-book-quiz\\n            type=\\\"button\\\"\\n            {{on \\\"click\\\" this.failBookQuiz}}\\n          >\\n            Fail Book Quiz\\n          </button>\\n        </div>\\n      {{/if}}\\n      {{#if this.isQuizActivity}}\\n\\n        <div class=\\\"complete-stone-item\\\">\\n          <button\\n            class=\\\"mx-2 w-1/4\\\"\\n            data-test-pass-peak-quiz\\n            type=\\\"button\\\"\\n            {{on \\\"click\\\" this.passPeakQuiz}}\\n          >\\n            Pass Peak Quiz\\n          </button>\\n\\n          <button\\n            class=\\\"mx-2 w-1/4\\\"\\n            data-test-fail-peak-quiz\\n            type=\\\"button\\\"\\n            {{on \\\"click\\\" this.failPeakQuiz}}\\n          >\\n            Fail Peak Quiz\\n          </button>\\n        </div>\\n      {{/if}}\\n\\n      <div class=\\\"complete-stone-item\\\">\\n        <button\\n          class=\\\"mx-2 w-1/4\\\"\\n          data-test-error\\n          type=\\\"button\\\"\\n          {{on \\\"click\\\" this.unhandledError}}\\n        >\\n          Error\\n        </button>\\n\\n        <button\\n          class=\\\"mx-2 w-1/4\\\"\\n          data-test-unauthorized-error\\n          type=\\\"button\\\"\\n          {{on \\\"click\\\" this.unhandledUnauthorizedError}}\\n        >\\n          Authorization Error\\n        </button>\\n      </div>\\n    </div>\\n  </div>\\n</FullViewport>\", {\"contents\":\"<FullViewport>\\n  <div class={{style-namespace \\\"debug-mode/complete-stones\\\"}} ...attributes>\\n    <div\\n      class=\\\"flex flex-col justify-center w-full h-screen complete-stones-container\\\"\\n    >\\n      {{#if this.isInteractiveActivity}}\\n        <div class=\\\"complete-stone-item\\\">\\n          <button\\n            class=\\\"mx-2 w-1/4\\\"\\n            data-test-complete-activity-pass\\n            type=\\\"button\\\"\\n            {{on \\\"click\\\" this.passActivity}}\\n          >\\n            Pass Interactive Activity\\n          </button>\\n\\n          <button\\n            class=\\\"mx-2 w-1/4\\\"\\n            data-test-complete-activity-fail\\n            type=\\\"button\\\"\\n            {{on \\\"click\\\" this.failActivity}}\\n          >\\n            Fail Interactive Activity\\n          </button>\\n        </div>\\n      {{/if}}\\n      {{#if this.isVideoActivity}}\\n        <div class=\\\"complete-stone-item\\\">\\n          <button\\n            class=\\\"mx-2 w-1/4\\\"\\n            data-test-complete-video-activity-pass\\n            type=\\\"button\\\"\\n            {{on \\\"click\\\" this.passVideoActivity}}\\n          >\\n            Pass Video Activity\\n          </button>\\n        </div>\\n      {{/if}}\\n      {{#if this.isBookActivity}}\\n\\n        <div class=\\\"complete-stone-item\\\">\\n          <button\\n            class=\\\"mx-2 w-1/4\\\"\\n            data-test-pass-book-quiz\\n            type=\\\"button\\\"\\n            {{on \\\"click\\\" this.passBookQuiz}}\\n          >\\n            Pass Book Quiz\\n          </button>\\n\\n          <button\\n            class=\\\"mx-2 w-1/4\\\"\\n            data-test-fail-book-quiz\\n            type=\\\"button\\\"\\n            {{on \\\"click\\\" this.failBookQuiz}}\\n          >\\n            Fail Book Quiz\\n          </button>\\n        </div>\\n      {{/if}}\\n      {{#if this.isQuizActivity}}\\n\\n        <div class=\\\"complete-stone-item\\\">\\n          <button\\n            class=\\\"mx-2 w-1/4\\\"\\n            data-test-pass-peak-quiz\\n            type=\\\"button\\\"\\n            {{on \\\"click\\\" this.passPeakQuiz}}\\n          >\\n            Pass Peak Quiz\\n          </button>\\n\\n          <button\\n            class=\\\"mx-2 w-1/4\\\"\\n            data-test-fail-peak-quiz\\n            type=\\\"button\\\"\\n            {{on \\\"click\\\" this.failPeakQuiz}}\\n          >\\n            Fail Peak Quiz\\n          </button>\\n        </div>\\n      {{/if}}\\n\\n      <div class=\\\"complete-stone-item\\\">\\n        <button\\n          class=\\\"mx-2 w-1/4\\\"\\n          data-test-error\\n          type=\\\"button\\\"\\n          {{on \\\"click\\\" this.unhandledError}}\\n        >\\n          Error\\n        </button>\\n\\n        <button\\n          class=\\\"mx-2 w-1/4\\\"\\n          data-test-unauthorized-error\\n          type=\\\"button\\\"\\n          {{on \\\"click\\\" this.unhandledUnauthorizedError}}\\n        >\\n          Authorization Error\\n        </button>\\n      </div>\\n    </div>\\n  </div>\\n</FullViewport>\",\"moduleName\":\"fast-phonics-client/components/debug-mode/complete-stones.hbs\",\"parseOptions\":{\"srcName\":\"fast-phonics-client/components/debug-mode/complete-stones.hbs\"}});\nimport { action } from '@ember/object'\nimport { inject as service } from '@ember/service'\nimport Component from '@glimmer/component'\nimport { v4 as uuidV4 } from 'uuid'\nimport type LoadingUiService from 'fast-phonics-client/services/loading-ui'\nimport type ErrorHandlerService from 'fast-phonics-client/services/error-handler'\nimport type { StoneContentActions } from '@blakeelearning/content-specs-fast-phonics'\nimport { NotAuthenticatedError } from 'fast-phonics-client/services/error-handler'\nimport progressionSequence from '@blakeelearning/progression-sequence-fast-phonics/dist/progression.json'\n\ninterface DebugModeCompleteStonesArgs {\n  contentActions: StoneContentActions\n  activityType: 'book' | 'interactive' | 'quiz' | 'video'\n  activityId: keyof typeof progressionSequence\n}\n\ninterface QuizResults {\n  correctAnswers: string[]\n  incorrectAnswers?: string[][]\n}\n\nexport default class DebugModeCompleteStones extends Component<DebugModeCompleteStonesArgs> {\n  @service declare loadingUi: LoadingUiService\n\n  @service declare errorHandler: ErrorHandlerService\n\n  constructor(owner: unknown, args: DebugModeCompleteStonesArgs) {\n    super(owner, args)\n    this.loadingUi.finish()\n  }\n\n  get isInteractiveActivity(): boolean {\n    return this.args.activityType === 'interactive'\n  }\n\n  get isBookActivity(): boolean {\n    return this.args.activityType === 'book'\n  }\n  get isQuizActivity(): boolean {\n    return this.args.activityType === 'quiz'\n  }\n  get isVideoActivity(): boolean {\n    return this.args.activityType === 'video'\n  }\n\n  // Fakes what content passes to FE as `quizData` for a pass result\n  get passQuizResult(): QuizResults {\n    const studentPassResult = {\n      correctAnswers: [\n        'one',\n        'two',\n        'three',\n        'four',\n        'five',\n        'six',\n        'seven',\n        'eight',\n        'nine',\n        'ten',\n      ],\n    }\n    return studentPassResult\n  }\n\n  // Fakes what content passes to FE as `quizData` for a fail result\n  get failQuizResult(): QuizResults {\n    const studentFailResult = {\n      correctAnswers: [],\n      incorrectAnswers: [\n        ['on', 'one'],\n        ['twwo', 'two'],\n        ['thee', 'three'],\n        ['foor', 'four'],\n        ['fiv', 'five'],\n        ['siix', 'six'],\n        ['sevvn', 'seven'],\n        ['ate', 'eight'],\n        ['mine', 'nine'],\n        ['tten', 'ten'],\n      ],\n    }\n    return studentFailResult\n  }\n\n  get questionCount(): number {\n    if (this.isQuizActivity) return 10\n    //@ts-expect-error shush typescript\n    // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n    return progressionSequence[this.args.activityId].questionCount\n  }\n\n  @action async passActivity(): Promise<void> {\n    await this.args.contentActions.saveActivityResult({\n      uuid: uuidV4(),\n      correctCount: this.questionCount,\n      totalCount: this.questionCount,\n    })\n    this.args.contentActions.next()\n  }\n\n  @action async failActivity(): Promise<void> {\n    await this.args.contentActions.saveActivityResult({\n      uuid: uuidV4(),\n      correctCount: 0,\n      totalCount: this.questionCount,\n    })\n    this.args.contentActions.next()\n  }\n\n  @action async passVideoActivity(): Promise<void> {\n    await this.args.contentActions.completeVideo()\n  }\n\n  @action async passBookQuiz(): Promise<void> {\n    await this.args.contentActions.saveBookQuizResult({\n      quizData: {\n        correctAnswers: Array.from(\n          { length: this.questionCount },\n          (_, i) => `debug-correct-${(i + 1).toString()}`,\n        ),\n        incorrectAnswers: [],\n      },\n      readRepeat: false,\n      uuid: uuidV4(),\n    })\n    this.args.contentActions.next()\n  }\n\n  @action async failBookQuiz(): Promise<void> {\n    await this.args.contentActions.saveBookQuizResult({\n      quizData: {\n        correctAnswers: [],\n        incorrectAnswers: Array.from({ length: this.questionCount }, (_, i) => [\n          `debug-incorrect-student-input-${(i + 1).toString()}`,\n          `debug-correct-${(i + 1).toString()}`,\n        ]),\n      },\n      readRepeat: false,\n      uuid: uuidV4(),\n    })\n    this.args.contentActions.next()\n  }\n\n  @action async passPeakQuiz(): Promise<void> {\n    await this.args.contentActions.savePeakQuizResult({\n      correctAnswers: Array.from(\n        { length: this.questionCount },\n        (_, i) => `debug-correct-${(i + 1).toString()}`,\n      ),\n      incorrectAnswers: [],\n      uuid: uuidV4(),\n    })\n    this.args.contentActions.next()\n  }\n\n  @action async failPeakQuiz(): Promise<void> {\n    await this.args.contentActions.savePeakQuizResult({\n      correctAnswers: [],\n      incorrectAnswers: Array.from({ length: this.questionCount }, (_, i) => [\n        `debug-incorrect-student-input-${(i + 1).toString()}`,\n        `debug-correct-${(i + 1).toString()}`,\n      ]),\n      uuid: uuidV4(),\n    })\n    this.args.contentActions.next()\n  }\n\n  @action unhandledError(): void {\n    const error = new Error('manually triggered from debug-mode')\n    this.errorHandler.transitionToErrorRoute(error)\n  }\n\n  @action unhandledUnauthorizedError(): void {\n    const unauthorizedError = new NotAuthenticatedError(\n      'manually triggered from debug-mode',\n    )\n\n    this.errorHandler.transitionToErrorRoute(unauthorizedError)\n  }\n}\n","import { hbs } from 'ember-cli-htmlbars';\nconst __COLOCATED_TEMPLATE__ = hbs(\"<FullViewport>\\n  <div class={{style-namespace \\\"debug-mode/intro-video\\\"}} ...attributes>\\n    <div\\n      class=\\\"flex flex-col justify-center w-full h-screen intro-video-container\\\"\\n    >\\n      <div class=\\\"complete-video\\\">\\n        <button\\n          class=\\\"mx-2 w-1/4\\\"\\n          data-test-go-back\\n          type=\\\"button\\\"\\n          {{on \\\"click\\\" this.goBack}}\\n        >\\n          Go Back\\n        </button>\\n        <button\\n          class=\\\"mx-2 w-1/4\\\"\\n          data-test-complete-video\\n          type=\\\"button\\\"\\n          {{on \\\"click\\\" this.completeVideo}}\\n        >\\n          Complete Video\\n        </button>\\n      </div>\\n    </div>\\n  </div>\\n</FullViewport>\", {\"contents\":\"<FullViewport>\\n  <div class={{style-namespace \\\"debug-mode/intro-video\\\"}} ...attributes>\\n    <div\\n      class=\\\"flex flex-col justify-center w-full h-screen intro-video-container\\\"\\n    >\\n      <div class=\\\"complete-video\\\">\\n        <button\\n          class=\\\"mx-2 w-1/4\\\"\\n          data-test-go-back\\n          type=\\\"button\\\"\\n          {{on \\\"click\\\" this.goBack}}\\n        >\\n          Go Back\\n        </button>\\n        <button\\n          class=\\\"mx-2 w-1/4\\\"\\n          data-test-complete-video\\n          type=\\\"button\\\"\\n          {{on \\\"click\\\" this.completeVideo}}\\n        >\\n          Complete Video\\n        </button>\\n      </div>\\n    </div>\\n  </div>\\n</FullViewport>\",\"moduleName\":\"fast-phonics-client/components/debug-mode/intro-video.hbs\",\"parseOptions\":{\"srcName\":\"fast-phonics-client/components/debug-mode/intro-video.hbs\"}});\nimport Component from '@glimmer/component'\nimport { inject as service } from '@ember/service'\nimport { action } from '@ember/object'\nimport type { VideoContentActions } from '@blakeelearning/content-specs-fast-phonics'\n\ninterface DebugModeIntroVideoComponentArgs {\n  contentActions: VideoContentActions\n}\n\nexport default class DebugModeIntroVideoComponent extends Component<DebugModeIntroVideoComponentArgs> {\n  @service declare loadingUi: { finish: () => void } // FIXME: Once the loadingUI is converted to TS\n\n  constructor(owner: unknown, args: DebugModeIntroVideoComponentArgs) {\n    super(owner, args)\n    this.loadingUi.finish()\n  }\n\n  @action completeVideo(): void {\n    this.args.contentActions.completeVideo()\n  }\n\n  @action goBack(): void {\n    this.args.contentActions.goBack()\n  }\n}\n","import { hbs } from 'ember-cli-htmlbars';\nconst __COLOCATED_TEMPLATE__ = hbs(\"<div class={{style-namespace \\\"debug-mode/placement-test\\\"}} ...attributes>\\n  {{#if this.peakPlacement}}\\n    <div class=\\\"flex flex-col justify-center items-center h-screen\\\">\\n      <p data-test-peak-placement class=\\\"text-lg m-4\\\">You have been placed on\\n        Peak\\n        {{this.peakPlacement}}</p>\\n\\n      <button\\n        data-test-go-to-peaks\\n        class=\\\"placement-test-button\\\"\\n        type=\\\"button\\\"\\n        {{on \\\"click\\\" @contentActions.goToPeaks}}\\n      >\\n        Go To Peaks\\n      </button>\\n    </div>\\n  {{else}}\\n\\n    <div class=\\\"mt-2 flex flex-col items-center h-screen justify-center\\\">\\n      <div class=\\\"flex justify-center items-stretch space-x-3\\\">\\n        <button\\n          data-test-back\\n          class=\\\"placement-test-button\\\"\\n          type=\\\"button\\\"\\n          {{on \\\"click\\\" @contentActions.goBack}}\\n        >\\n          Back\\n        </button>\\n\\n        <button\\n          class=\\\"placement-test-button\\\"\\n          data-test-skip-placement-test\\n          type=\\\"button\\\"\\n          {{on \\\"click\\\" this.skipPlacementTest}}\\n        >\\n          Skip Placement Test\\n        </button>\\n\\n        <label>\\n          <span>Question Number:</span>\\n          <select\\n            data-test-question-number\\n            class=\\\"p-2 text-lg h-full\\\"\\n            {{on \\\"change\\\" this.setQuestionNumber}}\\n          >\\n            {{#each this.questionNumbers as |questionNumber|}}\\n              <option>{{questionNumber}}</option>\\n            {{/each}}\\n          </select>\\n        </label>\\n\\n        <button\\n          data-test-pass-placement-test\\n          class=\\\"placement-test-button\\\"\\n          type=\\\"button\\\"\\n          {{on \\\"click\\\" this.saveTestResults}}\\n        >\\n          Pass Placement Test\\n        </button>\\n      </div>\\n\\n    </div>\\n  {{/if}}\\n</div>\", {\"contents\":\"<div class={{style-namespace \\\"debug-mode/placement-test\\\"}} ...attributes>\\n  {{#if this.peakPlacement}}\\n    <div class=\\\"flex flex-col justify-center items-center h-screen\\\">\\n      <p data-test-peak-placement class=\\\"text-lg m-4\\\">You have been placed on\\n        Peak\\n        {{this.peakPlacement}}</p>\\n\\n      <button\\n        data-test-go-to-peaks\\n        class=\\\"placement-test-button\\\"\\n        type=\\\"button\\\"\\n        {{on \\\"click\\\" @contentActions.goToPeaks}}\\n      >\\n        Go To Peaks\\n      </button>\\n    </div>\\n  {{else}}\\n\\n    <div class=\\\"mt-2 flex flex-col items-center h-screen justify-center\\\">\\n      <div class=\\\"flex justify-center items-stretch space-x-3\\\">\\n        <button\\n          data-test-back\\n          class=\\\"placement-test-button\\\"\\n          type=\\\"button\\\"\\n          {{on \\\"click\\\" @contentActions.goBack}}\\n        >\\n          Back\\n        </button>\\n\\n        <button\\n          class=\\\"placement-test-button\\\"\\n          data-test-skip-placement-test\\n          type=\\\"button\\\"\\n          {{on \\\"click\\\" this.skipPlacementTest}}\\n        >\\n          Skip Placement Test\\n        </button>\\n\\n        <label>\\n          <span>Question Number:</span>\\n          <select\\n            data-test-question-number\\n            class=\\\"p-2 text-lg h-full\\\"\\n            {{on \\\"change\\\" this.setQuestionNumber}}\\n          >\\n            {{#each this.questionNumbers as |questionNumber|}}\\n              <option>{{questionNumber}}</option>\\n            {{/each}}\\n          </select>\\n        </label>\\n\\n        <button\\n          data-test-pass-placement-test\\n          class=\\\"placement-test-button\\\"\\n          type=\\\"button\\\"\\n          {{on \\\"click\\\" this.saveTestResults}}\\n        >\\n          Pass Placement Test\\n        </button>\\n      </div>\\n\\n    </div>\\n  {{/if}}\\n</div>\",\"moduleName\":\"fast-phonics-client/components/debug-mode/placement-test.hbs\",\"parseOptions\":{\"srcName\":\"fast-phonics-client/components/debug-mode/placement-test.hbs\"}});\nimport { action } from '@ember/object'\nimport Component from '@glimmer/component'\nimport { inject as service } from '@ember/service'\nimport { tracked } from '@glimmer/tracking'\nimport { assert } from '@ember/debug'\nimport type { PlacementTestContentActions } from '@blakeelearning/content-specs-fast-phonics'\nimport { v4 as uuidV4 } from 'uuid'\n\ninterface DebugModePlacementTestComponentArgs {\n  contentActions: Omit<PlacementTestContentActions, 'checkAudio'>\n}\n\n// eslint-disable-next-line ember/no-test-import-export\nexport default class DebugModePlacementTestComponent extends Component<DebugModePlacementTestComponentArgs> {\n  constructor(owner: unknown, args: DebugModePlacementTestComponentArgs) {\n    super(owner, args)\n    this.loadingUi.finish()\n  }\n\n  @service declare loadingUi: { finish: () => void } // FIXME: Once the loadingUI is converted to TS\n\n  @tracked peakPlacement: number | null = null\n\n  @tracked questionNumber = 3\n\n  questionNumbers = Array.from(\n    (function* () {\n      for (let i = 3; i <= 22; i++) {\n        yield i\n      }\n    })(),\n  )\n\n  @action async saveTestResults(): Promise<void> {\n    const { questionNumber } = this\n    const { peakNumber } = await this.args.contentActions.saveTestResults({\n      questionNumber,\n      // @ts-expect-error uuid is not in the type definition :/\n      uuid: uuidV4()\n    })\n    this.peakPlacement = peakNumber\n  }\n\n  @action async skipPlacementTest(): Promise<void> {\n    await this.args.contentActions.skipPlacementTest({\n      reason: 'level_checker',\n    })\n    this.peakPlacement = 1\n  }\n\n  @action\n  setQuestionNumber(event: Event): void {\n    assert('target is required', event.target instanceof HTMLSelectElement)\n\n    this.questionNumber = Number(event.target.value)\n  }\n}\n","import { hbs } from 'ember-cli-htmlbars';\nconst __COLOCATED_TEMPLATE__ = hbs(\"{{#if this.shouldDisplay}}\\n  <div class=\\\"{{style-namespace 'debug-mode/toggle-debug'}}\\\">\\n    <button\\n      data-test-toggle-debug-button\\n      class=\\\"toggle-button\\\"\\n      type=\\\"button\\\"\\n      {{on \\\"click\\\" this.toggleDebug}}\\n    >\\n      {{#if this.debugModeEnabled}}\\n        Disable QA Debug Mode\\n      {{else}}\\n        Enable QA Debug Mode\\n      {{/if}}\\n    </button>\\n  </div>\\n{{/if}}\", {\"contents\":\"{{#if this.shouldDisplay}}\\n  <div class=\\\"{{style-namespace 'debug-mode/toggle-debug'}}\\\">\\n    <button\\n      data-test-toggle-debug-button\\n      class=\\\"toggle-button\\\"\\n      type=\\\"button\\\"\\n      {{on \\\"click\\\" this.toggleDebug}}\\n    >\\n      {{#if this.debugModeEnabled}}\\n        Disable QA Debug Mode\\n      {{else}}\\n        Enable QA Debug Mode\\n      {{/if}}\\n    </button>\\n  </div>\\n{{/if}}\",\"moduleName\":\"fast-phonics-client/components/debug-mode/toggle-debug.hbs\",\"parseOptions\":{\"srcName\":\"fast-phonics-client/components/debug-mode/toggle-debug.hbs\"}});\nimport { action } from '@ember/object'\nimport { inject as service } from '@ember/service'\nimport Component from '@glimmer/component'\nimport type DebugModeService from 'fast-phonics-client/services/debug-mode'\n\nexport default class DebugModeToggleDebug extends Component {\n  @service declare debugMode: DebugModeService\n\n  get shouldDisplay(): boolean {\n    return this.debugMode.debugAllowed\n  }\n\n  get debugModeEnabled(): boolean {\n    return this.debugMode.enabled\n  }\n\n  @action toggleDebug(): void {\n    const { debugMode } = this\n\n    if (debugMode.enabled) {\n      debugMode.disable()\n    } else {\n      debugMode.enable()\n    }\n  }\n}\n","import { hbs } from 'ember-cli-htmlbars';\nconst __COLOCATED_TEMPLATE__ = hbs(\"<div\\n  class=\\\"container mx-auto bg-white mt-4 p-8 rounded-lg shadow-xl\\n    {{style-namespace 'debug-mode/yeti-shop'}}\\\"\\n>\\n  <button data-test-go-back {{on \\\"click\\\" this.goBack}} type=\\\"button\\\">\\n    Go Back</button>\\n  <h1 class=\\\"text-3xl font-bold mb-4 mt-2\\\"> Debug Yeti Shop</h1>\\n  <p class=\\\"my-4\\\" data-test-current-yeti>Current yeti: {{this.selectedYeti}}</p>\\n  <p class=\\\"my-4\\\" data-test-coins>Coins: {{this.coins}}</p>\\n  <h2 class=\\\"text-xl font-bold mb-4\\\">Yetis</h2>\\n  <ul>\\n    {{#each this.yetiMenu as |yeti|}}\\n      <li class=\\\"flex my-4 items-center\\\" data-test-yeti-list-item>\\n        <span class=\\\"flex-1\\\">{{yeti.id}}</span>\\n        <span class=\\\"flex-1\\\">\\n          {{#if yeti.price}}\\n            {{yeti.price}}\\n          {{else}}\\n            Free\\n          {{/if}}\\n        </span>\\n        <span class=\\\"flex-1\\\">\\n          {{#if yeti.purchasable}}\\n            <button\\n              data-test-yeti-purchase\\n              type=\\\"button\\\"\\n              {{on \\\"click\\\" (fn this.purchaseYeti yeti.id)}}\\n            >Purchase</button>\\n          {{/if}}\\n          {{#if yeti.selectable}}\\n            <button\\n              data-test-yeti-select\\n              type=\\\"button\\\"\\n              {{on \\\"click\\\" (fn this.selectYeti yeti.id)}}\\n            >Select</button>\\n          {{/if}}\\n        </span>\\n      </li>\\n    {{/each}}\\n  </ul>\\n  <p data-test-message>\\n    {{this.message}}\\n  </p>\\n</div>\", {\"contents\":\"<div\\n  class=\\\"container mx-auto bg-white mt-4 p-8 rounded-lg shadow-xl\\n    {{style-namespace 'debug-mode/yeti-shop'}}\\\"\\n>\\n  <button data-test-go-back {{on \\\"click\\\" this.goBack}} type=\\\"button\\\">\\n    Go Back</button>\\n  <h1 class=\\\"text-3xl font-bold mb-4 mt-2\\\"> Debug Yeti Shop</h1>\\n  <p class=\\\"my-4\\\" data-test-current-yeti>Current yeti: {{this.selectedYeti}}</p>\\n  <p class=\\\"my-4\\\" data-test-coins>Coins: {{this.coins}}</p>\\n  <h2 class=\\\"text-xl font-bold mb-4\\\">Yetis</h2>\\n  <ul>\\n    {{#each this.yetiMenu as |yeti|}}\\n      <li class=\\\"flex my-4 items-center\\\" data-test-yeti-list-item>\\n        <span class=\\\"flex-1\\\">{{yeti.id}}</span>\\n        <span class=\\\"flex-1\\\">\\n          {{#if yeti.price}}\\n            {{yeti.price}}\\n          {{else}}\\n            Free\\n          {{/if}}\\n        </span>\\n        <span class=\\\"flex-1\\\">\\n          {{#if yeti.purchasable}}\\n            <button\\n              data-test-yeti-purchase\\n              type=\\\"button\\\"\\n              {{on \\\"click\\\" (fn this.purchaseYeti yeti.id)}}\\n            >Purchase</button>\\n          {{/if}}\\n          {{#if yeti.selectable}}\\n            <button\\n              data-test-yeti-select\\n              type=\\\"button\\\"\\n              {{on \\\"click\\\" (fn this.selectYeti yeti.id)}}\\n            >Select</button>\\n          {{/if}}\\n        </span>\\n      </li>\\n    {{/each}}\\n  </ul>\\n  <p data-test-message>\\n    {{this.message}}\\n  </p>\\n</div>\",\"moduleName\":\"fast-phonics-client/components/debug-mode/yeti-shop.hbs\",\"parseOptions\":{\"srcName\":\"fast-phonics-client/components/debug-mode/yeti-shop.hbs\"}});\nimport { action } from '@ember/object'\nimport { inject as service } from '@ember/service'\nimport Component from '@glimmer/component'\nimport { tracked } from '@glimmer/tracking'\nimport { v4 as uuidV4 } from 'uuid'\nimport type LoadingUiService from 'fast-phonics-client/services/loading-ui'\nimport type { YetiShopContentActions } from '@blakeelearning/content-specs-fast-phonics'\nimport type UserService from 'fast-phonics-client/services/user'\n\ninterface Yeti {\n  id: string\n  price: number\n}\n\ninterface DebugModeYetiShopArgs {\n  contentActions: YetiShopContentActions\n  yetis?: Yeti[]\n}\n\ninterface YetiMenu {\n  id: string\n  price: number\n  purchasable: boolean\n  selectable: boolean\n}\n\nexport default class DebugModeYetiShop extends Component<DebugModeYetiShopArgs> {\n  constructor(owner: unknown, args: DebugModeYetiShopArgs) {\n    super(owner, args)\n    this.loadingUi.finish()\n  }\n\n  @tracked message: string | null = null\n\n  @service declare loadingUi: LoadingUiService\n\n  @service declare user: UserService\n\n  get student() {\n    return this.user.student\n  }\n\n  get rewardTotals() {\n    return this.user.student.rewardTotals\n  }\n\n  get coins(): number {\n    return this.rewardTotals.coins\n  }\n\n  get selectedYeti(): string {\n    return this.student.selectedYeti\n  }\n\n  get yetiMenu(): YetiMenu[] {\n    const yetis = this.args.yetis ?? []\n    const { purchases } = this.student\n\n    return yetis.map(({ id, price }) => {\n      const purchased = purchases.slice().some(({ item }) => item === id)\n      const purchasable = price > 0 && !purchased\n      const selectable = price === 0 || purchased\n      return { id, price, purchasable, selectable }\n    })\n  }\n\n  @action async purchaseYeti(id: string): Promise<void> {\n    this.message = 'Purchasing...'\n    try {\n      await this.args.contentActions.purchaseYeti({ uuid: uuidV4(), id })\n      this.message = 'You bought it'\n    } catch (_error) {\n      this.message = `Failed to purchase ${id} yeti`\n    }\n  }\n\n  @action async selectYeti(id: string): Promise<void> {\n    this.message = 'Selecting...'\n    try {\n      await this.args.contentActions.selectYeti({ id })\n      this.message = 'You selected it'\n    } catch (_error) {\n      this.message = `Failed to select ${id} yeti`\n    }\n  }\n\n  @action goBack(): void {\n    this.args.contentActions.goBack()\n  }\n}\n","import { hbs } from 'ember-cli-htmlbars';\nconst __COLOCATED_TEMPLATE__ = hbs(\"<div\\n  class=\\\"bg-fp-purple-300 bg-furballs fixed top-0 left-0 w-full h-screen flex-col items-center justify-center z-50 hidden touch-device:portrait:flex\\\"\\n  data-test-rotate-notification\\n>\\n  <img\\n    src=\\\"/assets/svgs/rotate-device-white.svg\\\"\\n    alt=\\\"Please rotate your device\\\"\\n    class=\\\"w-2/3 mb-8\\\"\\n  />\\n  <h2 class=\\\"font-fastphonics text-white text-shadow text-xl sm:text-3xl\\\">Please\\n    rotate your device.</h2>\\n</div>\", {\"contents\":\"<div\\n  class=\\\"bg-fp-purple-300 bg-furballs fixed top-0 left-0 w-full h-screen flex-col items-center justify-center z-50 hidden touch-device:portrait:flex\\\"\\n  data-test-rotate-notification\\n>\\n  <img\\n    src=\\\"/assets/svgs/rotate-device-white.svg\\\"\\n    alt=\\\"Please rotate your device\\\"\\n    class=\\\"w-2/3 mb-8\\\"\\n  />\\n  <h2 class=\\\"font-fastphonics text-white text-shadow text-xl sm:text-3xl\\\">Please\\n    rotate your device.</h2>\\n</div>\",\"moduleName\":\"fast-phonics-client/components/device-rotate-notification.hbs\",\"parseOptions\":{\"srcName\":\"fast-phonics-client/components/device-rotate-notification.hbs\"}});\nimport templateOnly from '@ember/component/template-only';\n\nexport default templateOnly();\n","import { hbs } from 'ember-cli-htmlbars';\nconst __COLOCATED_TEMPLATE__ = hbs(\"<FullViewport\\n  tabindex=\\\"-1\\\"\\n  class=\\\"bg-storm-blue-500 bg-opacity-80 backdrop-blur-sm\\\"\\n  ...attributes\\n>\\n  {{yield}}\\n</FullViewport>\", {\"contents\":\"<FullViewport\\n  tabindex=\\\"-1\\\"\\n  class=\\\"bg-storm-blue-500 bg-opacity-80 backdrop-blur-sm\\\"\\n  ...attributes\\n>\\n  {{yield}}\\n</FullViewport>\",\"moduleName\":\"fast-phonics-client/components/dialog/overlay.hbs\",\"parseOptions\":{\"srcName\":\"fast-phonics-client/components/dialog/overlay.hbs\"}});\nimport templateOnly from '@ember/component/template-only';\n\nexport default templateOnly();\n","import { hbs } from 'ember-cli-htmlbars';\nconst __COLOCATED_TEMPLATE__ = hbs(\"<error-screen\\n  class=\\\"{{style-namespace 'error-screen'}} font-fastphonics\\\"\\n  {{remove-loading-screen}}\\n>\\n  <FullViewport>\\n    {{#let this.furballPalette as |palette|}}\\n      <div class=\\\"flex flex-row h-full items-stretch\\\">\\n        <div\\n          class=\\\"flex-1 flex flex-column justify-end items-end p-4 lg:mb-8 xl:mb-16 portrait:hidden\\\"\\n        >\\n          <div\\n            class=\\\"furball furball-{{get palette 0}}\\\"\\n            data-test-left-furball\\n          ></div>\\n        </div>\\n\\n        <div\\n          class=\\\"middle-column justify-around landscape-height-m:justify-center\\\"\\n        >\\n          <div class=\\\"logo\\\">\\n            <img\\n              src=\\\"/assets/images/fast-phonics-logo.png\\\"\\n              alt=\\\"Fast Phonics\\\"\\n              class=\\\"mx-auto max-h-full w-auto\\\"\\n            />\\n          </div>\\n\\n          <div\\n            class=\\\"text-white text-shadow text-center text-base landscape-height-s:text-2xl landscape-height-m:text-4xl portrait:text-2xl landscape-height-m:my-12\\\"\\n          >\\n            <h2>Oh no!</h2>\\n            {{#if (has-block)}}\\n              {{yield}}\\n            {{else}}\\n              <p data-test-something-has-gone-wrong>Something has gone wrong.</p>\\n              <p\\n                data-test-please-go-to-peaks\\n                class=\\\"paragraph-space-1/2 landscape-height-s:paragraph-space-1 portrait:paragraph-space-1\\\"\\n              >Please go to Peaks</p>\\n            {{/if}}\\n          </div>\\n\\n          <div class=\\\"return-button\\\">\\n            <button\\n              data-test-error-screen-button\\n              type=\\\"button\\\"\\n              class=\\\"h-full flex justify-center items-center\\\"\\n              {{on \\\"click\\\" this.return}}\\n            >\\n              <img\\n                data-test-error-screen-button-image\\n                src={{if\\n                  @returnButtonImage\\n                  @returnButtonImage\\n                  \\\"/assets/images/go-to-peaks-button.png\\\"\\n                }}\\n                alt={{if\\n                  @returnButtonText\\n                  @returnButtonText\\n                  \\\"Please go to Peaks\\\"\\n                }}\\n                class=\\\"return-button-image max-h-full w-auto\\\"\\n              />\\n            </button>\\n          </div>\\n        </div>\\n\\n        <div\\n          class=\\\"flex-1 flex flex-column justify-start items-end p-4 lg:mb-8 xl:mb-16 portrait:hidden\\\"\\n        >\\n          <div\\n            class=\\\"furball furball-{{get palette 1}} flipped\\\"\\n            data-test-right-furball\\n          ></div>\\n        </div>\\n      </div>\\n    {{/let}}\\n  </FullViewport>\\n</error-screen>\", {\"contents\":\"<error-screen\\n  class=\\\"{{style-namespace 'error-screen'}} font-fastphonics\\\"\\n  {{remove-loading-screen}}\\n>\\n  <FullViewport>\\n    {{#let this.furballPalette as |palette|}}\\n      <div class=\\\"flex flex-row h-full items-stretch\\\">\\n        <div\\n          class=\\\"flex-1 flex flex-column justify-end items-end p-4 lg:mb-8 xl:mb-16 portrait:hidden\\\"\\n        >\\n          <div\\n            class=\\\"furball furball-{{get palette 0}}\\\"\\n            data-test-left-furball\\n          ></div>\\n        </div>\\n\\n        <div\\n          class=\\\"middle-column justify-around landscape-height-m:justify-center\\\"\\n        >\\n          <div class=\\\"logo\\\">\\n            <img\\n              src=\\\"/assets/images/fast-phonics-logo.png\\\"\\n              alt=\\\"Fast Phonics\\\"\\n              class=\\\"mx-auto max-h-full w-auto\\\"\\n            />\\n          </div>\\n\\n          <div\\n            class=\\\"text-white text-shadow text-center text-base landscape-height-s:text-2xl landscape-height-m:text-4xl portrait:text-2xl landscape-height-m:my-12\\\"\\n          >\\n            <h2>Oh no!</h2>\\n            {{#if (has-block)}}\\n              {{yield}}\\n            {{else}}\\n              <p data-test-something-has-gone-wrong>Something has gone wrong.</p>\\n              <p\\n                data-test-please-go-to-peaks\\n                class=\\\"paragraph-space-1/2 landscape-height-s:paragraph-space-1 portrait:paragraph-space-1\\\"\\n              >Please go to Peaks</p>\\n            {{/if}}\\n          </div>\\n\\n          <div class=\\\"return-button\\\">\\n            <button\\n              data-test-error-screen-button\\n              type=\\\"button\\\"\\n              class=\\\"h-full flex justify-center items-center\\\"\\n              {{on \\\"click\\\" this.return}}\\n            >\\n              <img\\n                data-test-error-screen-button-image\\n                src={{if\\n                  @returnButtonImage\\n                  @returnButtonImage\\n                  \\\"/assets/images/go-to-peaks-button.png\\\"\\n                }}\\n                alt={{if\\n                  @returnButtonText\\n                  @returnButtonText\\n                  \\\"Please go to Peaks\\\"\\n                }}\\n                class=\\\"return-button-image max-h-full w-auto\\\"\\n              />\\n            </button>\\n          </div>\\n        </div>\\n\\n        <div\\n          class=\\\"flex-1 flex flex-column justify-start items-end p-4 lg:mb-8 xl:mb-16 portrait:hidden\\\"\\n        >\\n          <div\\n            class=\\\"furball furball-{{get palette 1}} flipped\\\"\\n            data-test-right-furball\\n          ></div>\\n        </div>\\n      </div>\\n    {{/let}}\\n  </FullViewport>\\n</error-screen>\",\"moduleName\":\"fast-phonics-client/components/error-screen.hbs\",\"parseOptions\":{\"srcName\":\"fast-phonics-client/components/error-screen.hbs\"}});\nimport { inject as service } from '@ember/service'\nimport Component from '@glimmer/component'\nimport { action } from '@ember/object'\nimport type LoadingUiService from 'fast-phonics-client/services/loading-ui'\nimport type RouterService from '@ember/routing/router-service'\nimport type ProgressService from 'fast-phonics-client/services/progress'\nimport shuffle from 'lodash/shuffle'\n\ninterface ErrorScreenComponentArgs {\n  returnRoute: string\n}\n\nexport default class ErrorScreen extends Component<ErrorScreenComponentArgs> {\n  @service declare loadingUi: LoadingUiService\n\n  @service declare router: RouterService\n\n  @service declare progress: ProgressService\n\n  get furballPalette(): string[] {\n    return shuffle(['red', 'blue', 'green', 'purple', 'yellow'])\n  }\n\n  get returnRoute(): string {\n    return this.args.returnRoute || 'peaks'\n  }\n\n  @action return(): void {\n    this.loadingUi.start(() => {\n      void this.router.transitionTo(this.returnRoute)\n    })\n  }\n}\n","import { hbs } from 'ember-cli-htmlbars';\nconst __COLOCATED_TEMPLATE__ = hbs(\"<ErrorScreen\\n  @returnRoute=\\\"login\\\"\\n  @returnButtonImage=\\\"/assets/images/login-button.png\\\"\\n  @returnButtonText=\\\"Login\\\"\\n>\\n  <p>Something has gone wrong.</p>\\n</ErrorScreen>\", {\"contents\":\"<ErrorScreen\\n  @returnRoute=\\\"login\\\"\\n  @returnButtonImage=\\\"/assets/images/login-button.png\\\"\\n  @returnButtonText=\\\"Login\\\"\\n>\\n  <p>Something has gone wrong.</p>\\n</ErrorScreen>\",\"moduleName\":\"fast-phonics-client/components/error-screen/login.hbs\",\"parseOptions\":{\"srcName\":\"fast-phonics-client/components/error-screen/login.hbs\"}});\nimport templateOnly from '@ember/component/template-only';\n\nexport default templateOnly();\n","import { hbs } from 'ember-cli-htmlbars';\nconst __COLOCATED_TEMPLATE__ = hbs(\"<ErrorScreen\\n  @returnRoute=\\\"logout\\\"\\n  @returnButtonImage=\\\"/assets/images/return-to-home.png\\\"\\n  @returnButtonText=\\\"Home\\\"\\n>\\n  <p>Something has gone wrong.</p>\\n  <p\\n    class=\\\"paragraph-space-1/2 landscape-height-s:paragraph-space-1 portrait:paragraph-space-1\\\"\\n  >Please go to Home</p>\\n</ErrorScreen>\", {\"contents\":\"<ErrorScreen\\n  @returnRoute=\\\"logout\\\"\\n  @returnButtonImage=\\\"/assets/images/return-to-home.png\\\"\\n  @returnButtonText=\\\"Home\\\"\\n>\\n  <p>Something has gone wrong.</p>\\n  <p\\n    class=\\\"paragraph-space-1/2 landscape-height-s:paragraph-space-1 portrait:paragraph-space-1\\\"\\n  >Please go to Home</p>\\n</ErrorScreen>\",\"moduleName\":\"fast-phonics-client/components/error-screen/logout.hbs\",\"parseOptions\":{\"srcName\":\"fast-phonics-client/components/error-screen/logout.hbs\"}});\nimport templateOnly from '@ember/component/template-only';\n\nexport default templateOnly();\n","import { hbs } from 'ember-cli-htmlbars';\nconst __COLOCATED_TEMPLATE__ = hbs(\"<ErrorScreen>\\n  <p>Page not found.</p>\\n</ErrorScreen>\", {\"contents\":\"<ErrorScreen>\\n  <p>Page not found.</p>\\n</ErrorScreen>\",\"moduleName\":\"fast-phonics-client/components/error-screen/not-found.hbs\",\"parseOptions\":{\"srcName\":\"fast-phonics-client/components/error-screen/not-found.hbs\"}});\nimport templateOnly from '@ember/component/template-only';\n\nexport default templateOnly();\n","import { hbs } from 'ember-cli-htmlbars';\nconst __COLOCATED_TEMPLATE__ = hbs(\"<div\\n  {{device/detection-classes \\\"iphone\\\"}}\\n  {{device/bind-viewport-height propertyName=\\\"--iphone-viewport-height\\\"}}\\n  class=\\\"fixed inset-0 h-iphone-viewport-height\\\"\\n  data-test-full-viewport\\n  ...attributes\\n>\\n  {{yield}}\\n</div>\", {\"contents\":\"<div\\n  {{device/detection-classes \\\"iphone\\\"}}\\n  {{device/bind-viewport-height propertyName=\\\"--iphone-viewport-height\\\"}}\\n  class=\\\"fixed inset-0 h-iphone-viewport-height\\\"\\n  data-test-full-viewport\\n  ...attributes\\n>\\n  {{yield}}\\n</div>\",\"moduleName\":\"fast-phonics-client/components/full-viewport.hbs\",\"parseOptions\":{\"srcName\":\"fast-phonics-client/components/full-viewport.hbs\"}});\nimport templateOnly from '@ember/component/template-only';\n\nexport default templateOnly();\n","import { hbs } from 'ember-cli-htmlbars';\nconst __COLOCATED_TEMPLATE__ = hbs(\"<div\\n  id=\\\"hidden-print-container\\\"\\n  data-test-hidden-print-container\\n  class=\\\"absolute top-0 w-full h-full flex items-center justify-center overflow-hidden invisible\\\"\\n>\\n  {{yield}}\\n</div>\", {\"contents\":\"<div\\n  id=\\\"hidden-print-container\\\"\\n  data-test-hidden-print-container\\n  class=\\\"absolute top-0 w-full h-full flex items-center justify-center overflow-hidden invisible\\\"\\n>\\n  {{yield}}\\n</div>\",\"moduleName\":\"fast-phonics-client/components/hidden-print-container.hbs\",\"parseOptions\":{\"srcName\":\"fast-phonics-client/components/hidden-print-container.hbs\"}});\nimport templateOnly from '@ember/component/template-only';\n\nexport default templateOnly();\n","import { hbs } from 'ember-cli-htmlbars';\nconst __COLOCATED_TEMPLATE__ = hbs(\"<loading-screen\\n  class=\\\"{{style-namespace 'loading-screen'}}\\n    {{if this.loadingUi.isLoading 'fade-in' 'fade-out'}}\\\"\\n  {{! template-lint-disable no-inline-styles style-concatenation }}\\n  style=\\\"{{this.fadeDurationStyle}}\\\"\\n>\\n  <img id=\\\"loader\\\" src=\\\"/assets/svgs/loader.svg\\\" alt=\\\"Loading Fast Phonics\\\" />\\n</loading-screen>\", {\"contents\":\"<loading-screen\\n  class=\\\"{{style-namespace 'loading-screen'}}\\n    {{if this.loadingUi.isLoading 'fade-in' 'fade-out'}}\\\"\\n  {{! template-lint-disable no-inline-styles style-concatenation }}\\n  style=\\\"{{this.fadeDurationStyle}}\\\"\\n>\\n  <img id=\\\"loader\\\" src=\\\"/assets/svgs/loader.svg\\\" alt=\\\"Loading Fast Phonics\\\" />\\n</loading-screen>\",\"moduleName\":\"fast-phonics-client/components/loading-screen.hbs\",\"parseOptions\":{\"srcName\":\"fast-phonics-client/components/loading-screen.hbs\"}});\nimport { inject as service } from '@ember/service'\nimport Component from '@glimmer/component'\nimport { htmlSafe } from '@ember/template'\nimport type LoadingUiService from 'fast-phonics-client/services/loading-ui'\n\n/**\n * Display a full-page loading screen during app loading\n *\n * This component works in concert with the loading-ui service.\n *\n * It assumes the server-rendered HTML serving the Ember app will have\n * equivalent HTML and CSS for showing a loading screen during initial page\n * load. As such, this component will not be visible when the loading-ui\n * service indicates initial page load is not yet completed.\n *\n * Otherwise, the component will toggle visibility based on the loading-ui\n * service's loading state.\n *\n * The duration of the static loading screen fade out animation can be set to\n * 0 within the app's config, to avoid waiting for animations during testing.\n */\nexport default class LoadingScreen extends Component {\n  @service declare loadingUi: LoadingUiService\n\n  /**\n   * CSS custom property to provide the fade duration for CSS transitions\n   */\n  get fadeDurationStyle() {\n    return htmlSafe(\n      `--loading-screen-fade-duration: ${this.loadingUi.fadeDuration.toFixed()}ms`,\n    )\n  }\n}\n","import { hbs } from 'ember-cli-htmlbars';\nconst __COLOCATED_TEMPLATE__ = hbs(\"{{#let (unique-id) as |titleId|}}\\n  <Dialog\\n    @open={{this.showQuestAlert}}\\n    class=\\\"pointer-events-auto aria-hidden:pointer-events-none aria-hidden:opacity-0\\\"\\n    role=\\\"alertdialog\\\"\\n    aria-labelledby={{titleId}}\\n    aria-hidden={{if this.showQuestAlert \\\"false\\\" \\\"true\\\"}}\\n    data-test-quest-notification\\n  >\\n    {{#if this.showQuestAlert}}\\n      <Dialog::Overlay\\n        class=\\\"flex items-center justify-center\\\"\\n        role=\\\"document\\\"\\n        tabindex=\\\"0\\\"\\n        {{content-interactive\\n          this.loader\\n          externalController=this\\n          manifests=this.jesterManifests\\n          runtimeVariables=this.variables\\n          onError=this.onContentError\\n        }}\\n      />\\n    {{/if}}\\n  </Dialog>\\n{{/let}}\", {\"contents\":\"{{#let (unique-id) as |titleId|}}\\n  <Dialog\\n    @open={{this.showQuestAlert}}\\n    class=\\\"pointer-events-auto aria-hidden:pointer-events-none aria-hidden:opacity-0\\\"\\n    role=\\\"alertdialog\\\"\\n    aria-labelledby={{titleId}}\\n    aria-hidden={{if this.showQuestAlert \\\"false\\\" \\\"true\\\"}}\\n    data-test-quest-notification\\n  >\\n    {{#if this.showQuestAlert}}\\n      <Dialog::Overlay\\n        class=\\\"flex items-center justify-center\\\"\\n        role=\\\"document\\\"\\n        tabindex=\\\"0\\\"\\n        {{content-interactive\\n          this.loader\\n          externalController=this\\n          manifests=this.jesterManifests\\n          runtimeVariables=this.variables\\n          onError=this.onContentError\\n        }}\\n      />\\n    {{/if}}\\n  </Dialog>\\n{{/let}}\",\"moduleName\":\"fast-phonics-client/components/quest/notification.hbs\",\"parseOptions\":{\"srcName\":\"fast-phonics-client/components/quest/notification.hbs\"}});\nimport { action } from '@ember/object'\nimport Component from '@glimmer/component'\nimport { service } from '@ember/service'\nimport type QuestService from 'fast-phonics-client/services/quest'\nimport type ErrorHandlerService from 'fast-phonics-client/services/error-handler'\nimport type Owner from '@ember/owner'\nimport type { FeatureService } from '@blakeelearning/features'\nimport type JesterLoaderService from 'fast-phonics-client/services/jester-loader'\nimport type LoadingUiService from 'fast-phonics-client/services/loading-ui'\nimport type UserService from 'fast-phonics-client/services/user'\n\ninterface QuestNotificationComponentArgs {\n  alertAnytime?: boolean\n}\nexport default class QuestNotificationComponent extends Component<QuestNotificationComponentArgs> {\n  @service declare quest: QuestService\n\n  @service declare user: UserService\n\n  @service declare errorHandler: ErrorHandlerService\n\n  @service declare features: FeatureService\n\n  @service declare jesterLoader: JesterLoaderService\n\n  @service declare loadingUi: LoadingUiService\n\n  variables\n\n  constructor(owner: Owner, args: QuestNotificationComponentArgs) {\n    super(owner, args)\n    this.variables = {\n      currencyAmount: this.user.student.rewardTotals.coins,\n      name: this.user.student.firstName,\n      quest: this.quest.currentQuest,\n    }\n    if (this.args.alertAnytime) this.quest.displayQuestAlertIfRequired()\n  }\n\n  get loader() {\n    return this.jesterLoader.loader\n  }\n\n  get showQuestAlert() {\n    return this.quest.showQuestAlert\n  }\n\n  get questGoalForNotification() {\n    return this.quest.questGoalForNotification\n  }\n\n  get jesterManifests() {\n    return [['index', 'three-essentials/quest-reward']]\n  }\n\n  @action\n  acknowledgeQuestGoalAlert() {\n    if (!this.questGoalForNotification) return\n\n    void this.quest.acknowledgeQuestGoalAlert({\n      goalId: this.questGoalForNotification.id,\n    })\n  }\n\n  @action\n  awarded() {\n    this.acknowledgeQuestGoalAlert()\n  }\n\n  @action\n  close() {\n    this.quest.closeQuestAlert()\n  }\n\n  @action\n  onContentError(error: Error) {\n    this.errorHandler.handleContentUnhandledError(error)\n  }\n\n  @action\n  readyForUserInput() {\n    this.loadingUi.finish()\n  }\n}\n","import { inject as service } from '@ember/service'\nimport Controller from '@ember/controller'\nimport config from 'fast-phonics-client/config/environment'\nimport type LoadingUiService from 'fast-phonics-client/services/loading-ui'\nimport type RouterService from '@ember/routing/router-service'\nimport type ProgressService from 'fast-phonics-client/services/progress'\nimport type UserService from 'fast-phonics-client/services/user'\nimport { NotAuthenticatedError } from 'fast-phonics-client/services/error-handler'\n\nconst {\n  APP: { debugErrors },\n} = config\n\nexport default class ApplicationErrorController extends Controller {\n  debugErrors = debugErrors\n\n  @service declare loadingUi: LoadingUiService\n\n  @service declare router: RouterService\n\n  @service declare user: UserService\n\n  @service declare progress: ProgressService\n\n  get isRootRoute(): boolean {\n    const routeName = this.router.currentRoute.name\n    return ['peaks.index', 'peaks.peak.index', 'index'].includes(routeName)\n  }\n\n  /**\n   * This is a best guess at whether the app is broken in some unrecoverable\n   * way.  At present we assume that this is so if we have arrived in this\n   * error sub-state without a student model, or if we have arrived here from\n   * a route that doesn't have an obvious place that we can redirect to.\n   */\n  get isAppBroken(): boolean {\n    try {\n      // Access these properties to trigger any potential errors\n      void this.user.student\n      void this.progress.lessonsProgressData\n      return this.isRootRoute\n    } catch {\n      return true\n    }\n  }\n\n  get placementTestRequired(): boolean {\n    return this.progress.showPlacementTest\n  }\n\n  get isUnauthorizedError(): boolean {\n    const error = this.model\n    return error instanceof NotAuthenticatedError\n  }\n\n  get errorScreenComponent(): string {\n    if (this.isUnauthorizedError) {\n      return 'error-screen/login'\n    }\n    if (this.isAppBroken) {\n      return 'error-screen/logout'\n    }\n    if (this.placementTestRequired) {\n      return 'error-screen/logout'\n    }\n    return 'error-screen'\n  }\n}\n\ndeclare module '@ember/controller' {\n  interface Registry {\n    'application-error': ApplicationErrorController\n  }\n}\n","import { inject as service } from '@ember/service'\nimport Controller from '@ember/controller'\nimport type DeviceService from '@blakeelearning/content-loader/content-loader/device/service'\n\nexport default class ApplicationController extends Controller {\n  @service('content-loader/device') declare device: DeviceService\n\n  get shouldRotateDevice(): boolean {\n    return this.device.isMobile && this.device.isPortrait\n  }\n}\n\ndeclare module '@ember/controller' {\n  interface Registry {\n    application: ApplicationController\n  }\n}\n","import Controller from '@ember/controller'\nimport { action } from '@ember/object'\nimport type RouterService from '@ember/routing/router-service'\nimport { inject as service } from '@ember/service'\nimport type ActivityService from 'fast-phonics-client/services/activity'\nimport type AssignmentsService from 'fast-phonics-client/services/assignments'\nimport type UserService from 'fast-phonics-client/services/user'\nimport dateFromNow from 'fast-phonics-client/utils/date-from-now'\nimport formatDueDate from 'fast-phonics-client/utils/format-due-date'\n\nexport default class AssignmentController extends Controller {\n  @service declare assignments: AssignmentsService\n\n  @service declare user: UserService\n\n  @service declare router: RouterService\n\n  @service declare activity: ActivityService\n\n  get currentAssignment() {\n    if (!this.assignments.currentAssignment) {\n      throw new Error('No current assignment found')\n    }\n    return this.assignments.currentAssignment\n  }\n\n  get thumbnailUrl() {\n    return this.currentAssignment.thumbnailUrl\n  }\n\n  get title() {\n    return this.currentAssignment.title\n  }\n\n  get timeRemaining() {\n    // TODO: The dateFromNow util can be replaced with date-fns intlFormatDistance once we drop support for ios13\n    return dateFromNow(new Date(this.currentAssignment.endAt), Date.now())\n  }\n\n  get dueDate() {\n    return formatDueDate(new Date(this.currentAssignment.endAt))\n  }\n\n  @action\n  startAssignment() {\n    const peak = this.currentAssignment.peak\n    this.router.transitionTo('peaks.peak', peak)\n  }\n\n  @action\n  logout() {\n    this.router.transitionTo('logout')\n  }\n}\n\ndeclare module '@ember/controller' {\n  interface Registry {\n    assignment: AssignmentController\n  }\n}\n","import { action } from '@ember/object'\nimport { inject as service } from '@ember/service'\nimport Controller from '@ember/controller'\nimport type LoadingUiService from 'fast-phonics-client/services/loading-ui'\nimport type ErrorHandlerService from 'fast-phonics-client/services/error-handler'\nimport type { BookContentActions } from '@blakeelearning/content-specs-fast-phonics'\n\nexport default class BookController extends Controller {\n  @service declare loadingUi: LoadingUiService\n\n  @service declare errorHandler: ErrorHandlerService\n\n  get contentActions(): BookContentActions {\n    return {\n      readyForUserInput: () => {\n        this.loadingUi.finish()\n      },\n      unhandledError: ({ error }: { error: unknown }) => {\n        this.errorHandler.handleContentUnhandledError(error)\n      },\n      next: () => {\n        this.goBack()\n      },\n      goBack: () => {\n        this.goBack()\n      },\n    }\n  }\n\n  @action\n  goBack(): void {\n    this.loadingUi.start(() => {\n      window.history.back()\n    })\n  }\n}\n\ndeclare module '@ember/controller' {\n  interface Registry {\n    book: BookController\n  }\n}\n","import { action } from '@ember/object'\nimport { inject as service } from '@ember/service'\nimport Controller from '@ember/controller'\nimport { warn } from '@ember/debug'\nimport type RouterService from '@ember/routing/router-service'\nimport config from 'fast-phonics-client/config/environment'\nimport type ErrorHandlerService from 'fast-phonics-client/services/error-handler'\nimport type LoadingUiService from 'fast-phonics-client/services/loading-ui'\nimport type ProgressService from 'fast-phonics-client/services/progress'\nimport type { EndOfProgramContentActions } from '@blakeelearning/content-specs-fast-phonics'\n\nexport default class EndOfProgramController extends Controller {\n  @service declare errorHandler: ErrorHandlerService\n\n  @service declare loadingUi: LoadingUiService\n\n  @service declare progress: ProgressService\n\n  @service declare router: RouterService\n\n  get lastAccessiblePeak(): number {\n    return this.progress.lastAccessiblePeak\n  }\n\n  get contentActions(): EndOfProgramContentActions {\n    return {\n      readyForUserInput: () => {\n        this.loadingUi.finish()\n      },\n      unhandledError: ({ error }: { error: unknown }) => {\n        this.errorHandler.handleContentUnhandledError(error)\n      },\n      goToPeak: () => {\n        this.goToPeak()\n      },\n      goToApp: (appName: string, location: Location = window.location) => {\n        this.goToApp(appName, location)\n      },\n      print: () => {\n        this.print()\n      },\n    }\n  }\n\n  @action goToPeak(): void {\n    this.loadingUi.start(() => {\n      void this.router.transitionTo('peaks.peak', this.lastAccessiblePeak)\n    })\n  }\n\n  @action goToApp(appName: string, location = window.location): void {\n    const url = this._internalGoToApp(appName, location)\n    location.href = url.href\n  }\n\n  @action print(): void {\n    warn(\n      `This is an empty action, to work you will need to ensure the interactive in jester-activities is receiving print() and that the printable PDF work is finalised.`,\n      { id: 'end-of-program.print-action-failed' },\n    )\n  }\n\n  /**\n   * Utilises apiEndpoint to perform redirection\n   */\n  _internalGoToApp(appName: string, location: Location): URL {\n    const url = new URL(\n      'go-to-app/' + appName,\n      config.APP.apiEndpoint ?? location.origin,\n    )\n    return url\n  }\n}\n\ndeclare module '@ember/controller' {\n  interface Registry {\n    'end-of-program': EndOfProgramController\n  }\n}\n","import Controller from '@ember/controller'\nimport { inject as service } from '@ember/service'\nimport type ProgressService from 'fast-phonics-client/services/progress'\nimport type UserService from 'fast-phonics-client/services/user'\n\nexport default class ErrorIndexController extends Controller {\n  @service declare progress: ProgressService\n\n  @service declare user: UserService\n\n  get appIsBroken(): boolean {\n    try {\n      // Access these properties to trigger any potential errors\n      void this.user.student\n      void this.progress.lessonsProgressData\n      return false\n    } catch {\n      return true\n    }\n  }\n\n  get showLogoutErrorScreen(): boolean {\n    return this.appIsBroken || this.progress.showPlacementTest\n  }\n}\n\ndeclare module '@ember/controller' {\n  interface Registry {\n    'error/index': ErrorIndexController\n  }\n}\n","import { action } from '@ember/object'\nimport { inject as service } from '@ember/service'\nimport Controller from '@ember/controller'\nimport type RouterService from '@ember/routing/router-service'\nimport type ErrorHandlerService from 'fast-phonics-client/services/error-handler'\nimport type LoadingUiService from 'fast-phonics-client/services/loading-ui'\nimport type ProgressService from 'fast-phonics-client/services/progress'\nimport type DebugModeService from 'fast-phonics-client/services/debug-mode'\nimport type { VideoContentActions } from '@blakeelearning/content-specs-fast-phonics'\nimport { graphql } from 'fast-phonics-client/graphql'\nimport { useMutation } from 'fast-phonics-client/resources/mutation'\nimport { NotAuthenticatedError } from 'fast-phonics-client/services/error-handler'\n\nexport const updateIntroVideoMutationDocument = graphql(/* GraphQL */ `\n  mutation UpdateIntroVideo($input: UpdateIntroVideoInput!) {\n    updateIntroVideo(input: $input) {\n      ... on UpdateIntroVideoSuccess {\n        student {\n          id\n          viewedIntroVideo\n        }\n        viewed\n      }\n      ... on NotAuthenticatedError {\n        code\n      }\n      __typename\n    }\n  }\n`)\n\nexport default class IntroVideoController extends Controller {\n  @service declare errorHandler: ErrorHandlerService\n\n  @service declare loadingUi: LoadingUiService\n\n  @service declare progress: ProgressService\n\n  @service declare debugMode: DebugModeService\n\n  @service declare router: RouterService\n\n  updateIntroVideo = useMutation(this, updateIntroVideoMutationDocument)\n\n  get activityComponent(): string {\n    if (this.debugMode.enabled) {\n      return 'debug-mode/intro-video'\n    }\n    return 'content-interactive'\n  }\n\n  get contentActions(): VideoContentActions {\n    return {\n      readyForUserInput: () => {\n        this.loadingUi.finish()\n      },\n      unhandledError: ({ error }: { error: unknown }) => {\n        this.errorHandler.handleContentUnhandledError(error)\n      },\n      completeVideo: () => this.completeIntro(),\n      goBack: () => {\n        this.goBack()\n      },\n    }\n  }\n\n  async saveCompleteIntroResult(): Promise<void> {\n    const response = await this.updateIntroVideo.current.mutate({\n      variables: {\n        input: {\n          viewed: true,\n        },\n      },\n    })\n\n    if (!response) {\n      throw new Error('GraphQL UpdateIntroVideo mutation failed')\n    }\n\n    switch (response.updateIntroVideo.__typename) {\n      case 'NotAuthenticatedError':\n        throw new NotAuthenticatedError(\n          'GraphQL UpdateIntroVideo mutation returned NotAuthenticatedError',\n        )\n\n      case 'UpdateIntroVideoSuccess':\n        return // Happy path\n\n      default:\n        throw new Error(\n          // @ts-expect-error this is to catch unhandled types being added to the backend which we have not yet catered for in the client\n          // eslint-disable-next-line @typescript-eslint/restrict-template-expressions\n          `GraphQL UpdateIntroVideo mutation returned unhandled type: ${response.updateIntroVideo.__typename}`,\n        )\n    }\n  }\n\n  /**\n   * Need to guard against if the student has finished the program\n   * If we don't, it will take them to a non existent peak and cause an application error\n   */\n  @action async completeIntro(): Promise<void> {\n    await this.saveCompleteIntroResult()\n\n    if (this.progress.showPlacementTest) {\n      this.loadingUi.start(() => {\n        void this.router.transitionTo('placement-test')\n      })\n    } else if (this.progress.hasFinishedProgram) {\n      this.loadingUi.start(() => {\n        void this.router.transitionTo('end-of-program')\n      })\n    } else {\n      this.loadingUi.start(() => {\n        void this.router.transitionTo('peaks')\n      })\n    }\n  }\n\n  @action goBack(): void {\n    const { hasViewedIntroVideo } = this.progress\n\n    this.loadingUi.start(() => {\n      if (hasViewedIntroVideo) {\n        window.history.back()\n      } else {\n        void this.router.transitionTo('logout')\n      }\n    })\n  }\n}\n\ndeclare module '@ember/controller' {\n  interface Registry {\n    'intro-video': IntroVideoController\n  }\n}\n","import { action } from '@ember/object'\nimport { inject as service } from '@ember/service'\nimport Controller from '@ember/controller'\nimport type RouterService from '@ember/routing/router-service'\nimport type ErrorHandlerService from 'fast-phonics-client/services/error-handler'\nimport type LoadingUiService from 'fast-phonics-client/services/loading-ui'\nimport type { MyProgressContentActions } from '@blakeelearning/content-specs-fast-phonics'\nimport type PeakCertificateService from 'fast-phonics-client/services/peak-certificate'\n\nexport default class MyProgressController extends Controller {\n  @service declare errorHandler: ErrorHandlerService\n\n  @service declare loadingUi: LoadingUiService\n\n  @service declare peakCertificate: PeakCertificateService\n\n  @service declare router: RouterService\n\n  get contentActions(): MyProgressContentActions {\n    return {\n      readyForUserInput: () => {\n        this.loadingUi.finish()\n      },\n      unhandledError: ({ error }: { error: unknown }) => {\n        this.errorHandler.handleContentUnhandledError(error)\n      },\n      goBack: () => {\n        this.goBack()\n      },\n      goToTab: (tabName: string) => {\n        this.goToTab(tabName)\n      },\n      readBook: (bookId: string) => {\n        this.readBook(bookId)\n      },\n      watchSoundVideo: (sound: string) => {\n        this.watchSoundVideo(sound)\n      },\n      print: (args) => this.peakCertificate.print(args),\n    }\n  }\n\n  get pageTitle(): string {\n    switch (this.router.currentRoute.localName) {\n      case 'sounds':\n        return 'Sounds | My Progress'\n      case 'words':\n        return 'Words | My Progress'\n      case 'books':\n        return 'Books | My Progress'\n      case 'certificates':\n        return 'Certificates | My Progress'\n      default:\n        return 'My Progress'\n    }\n  }\n\n  @action goBack(): void {\n    this.loadingUi.start(() => {\n      window.history.back()\n    })\n  }\n\n  /**\n   * Replace the route with the one that matches the tab we are on, so long\n   * as we recognise the tab.\n   */\n  @action goToTab(tabName: string): void {\n    switch (tabName) {\n      case 'certificates':\n        void this.router.replaceWith('my-progress.certificates')\n        break\n      case 'sounds':\n        void this.router.replaceWith('my-progress.sounds')\n        break\n      case 'words':\n        void this.router.replaceWith('my-progress.words')\n        break\n      case 'books':\n        void this.router.replaceWith('my-progress.books')\n        break\n      case 'progress':\n        void this.router.replaceWith('my-progress.index')\n        break\n      default:\n        throw new Error(`Unknown tab name: ${tabName}`)\n    }\n  }\n\n  @action readBook(bookId: string): void {\n    this.loadingUi.start(() => {\n      void this.router.transitionTo('book', bookId)\n    })\n  }\n\n  @action watchSoundVideo(sound: string): void {\n    this.loadingUi.start(() => {\n      void this.router.transitionTo('sound', sound)\n    })\n  }\n}\n\ndeclare module '@ember/controller' {\n  interface Registry {\n    'my-progress': MyProgressController\n  }\n}\n","import { action } from '@ember/object'\nimport { inject as service } from '@ember/service'\nimport Controller from '@ember/controller'\nimport { assert } from '@ember/debug'\nimport type RouterService from '@ember/routing/router-service'\nimport type ActivityService from 'fast-phonics-client/services/activity'\nimport type ErrorHandlerService from 'fast-phonics-client/services/error-handler'\nimport type LoadingUiService from 'fast-phonics-client/services/loading-ui'\nimport type { PeaksContentActions } from '@blakeelearning/content-specs-fast-phonics'\nimport type QuestService from 'fast-phonics-client/services/quest'\nimport { debugAction, debugValue } from 'fast-phonics-client/utils/debug'\nimport type { FeatureService } from '@blakeelearning/features'\nimport type DebugModeService from 'fast-phonics-client/services/debug-mode'\nimport { useMutation } from 'fast-phonics-client/resources/mutation'\nimport { v4 as uuidV4 } from 'uuid'\nimport { createActivityResultMutationDocument } from './stone'\nimport type UserService from 'fast-phonics-client/services/user'\nimport { NotAuthenticatedError } from 'fast-phonics-client/services/error-handler'\nimport type AssignmentsService from 'fast-phonics-client/services/assignments'\nimport type { ModelFor } from 'fast-phonics-client/utils/route-model'\nimport type PeaksRoute from 'fast-phonics-client/routes/peaks'\n\nexport default class PeaksController extends Controller {\n  declare model: ModelFor<PeaksRoute>\n\n  @service declare activity: ActivityService\n\n  @service declare errorHandler: ErrorHandlerService\n\n  @service declare loadingUi: LoadingUiService\n\n  @service declare user: UserService\n\n  @service declare router: RouterService\n\n  @service declare quest: QuestService\n\n  @service declare features: FeatureService\n\n  @service declare debugMode: DebugModeService\n\n  @service declare assignments: AssignmentsService\n\n  get isAssignmentMode(): boolean {\n    return this.model.assignmentMode\n  }\n\n  get assignmentId() {\n    if (!this.isAssignmentMode) return null\n    if (!this.assignments.currentAssignment) {\n      throw new Error(\n        'PeaksController in assignment mode but no current assignment found',\n      )\n    }\n    return this.assignments.currentAssignment.id\n  }\n\n  get shouldLogout(): boolean {\n    return (\n      this.user.student.rosterEnabled &&\n      this.isAssignmentMode &&\n      !this.assignments.currentAssignment\n    )\n  }\n\n  get contentActions(): PeaksContentActions {\n    return {\n      readyForUserInput: () => {\n        this.loadingUi.finish()\n      },\n      unhandledError: ({ error }: { error: unknown }) => {\n        this.errorHandler.handleContentUnhandledError(error)\n      },\n      logOut: () => {\n        this.logOut()\n      },\n      startIntroVideo: () => {\n        this.startIntroVideo()\n      },\n      updatePeakView: (peakId: number, peakView: string) => {\n        this.updatePeakView(peakId, peakView)\n      },\n      goToPeak: (peakId: number) => {\n        this.transitionToPeak(peakId)\n      },\n      goToStonesForPeak: (peakId: number) => {\n        this.transitionToStones(peakId)\n      },\n      goToActivity: (peakId: number, positionInPeak: number) => {\n        this.transitionToStoneActivity(peakId, positionInPeak)\n      },\n      goToSounds: () => {\n        this.transitionToSounds()\n      },\n      goToWords: () => {\n        this.transitionToWords()\n      },\n      goToBooks: () => {\n        this.transitionToBooks()\n      },\n      goToProgress: () => {\n        this.transitionToProgress()\n      },\n      goToYetiShop: () => {\n        this.goToYetiShop()\n      },\n      saveProgress: (peakId: number, positionInPeak: number, uuid?: string) =>\n        this.saveProgress(peakId, positionInPeak, uuid),\n    }\n  }\n\n  get pageTitle(): string {\n    const peakRouteInfo = this.router.currentRoute.find(\n      (route) => route.name === 'peaks.peak',\n    )\n    const peakId = peakRouteInfo?.params['peak_id']\n\n    if (this.router.currentRoute.name === 'peaks.peak.stones') {\n      return peakId ? `Stones | Peak ${peakId}` : 'Stones | Peaks'\n    }\n\n    return peakId ? `Peak ${peakId} | Peaks` : 'Peaks'\n  }\n\n  @action logOut(): void {\n    void this.router.transitionTo('logout')\n  }\n\n  @action startIntroVideo(): void {\n    this.loadingUi.start(() => {\n      void this.router.transitionTo('intro-video')\n    })\n  }\n\n  @action updatePeakView(peakId: number, peakView: string): void {\n    if (peakView === 'peak') {\n      void this.router.transitionTo('peaks.peak', peakId)\n    } else if (peakView === 'stones') {\n      void this.router.transitionTo('peaks.peak.stones', peakId)\n    }\n  }\n\n  @action transitionToPeak(peakId: number): void {\n    void this.router.transitionTo('peaks.peak', peakId)\n  }\n\n  @action transitionToStones(peakId: number): void {\n    if (this.shouldLogout) {\n      this.logOut()\n      return\n    }\n    void this.router.transitionTo('peaks.peak.stones', peakId)\n  }\n\n  @action transitionToStoneActivity(\n    peakId: number,\n    positionInPeak: number,\n  ): void {\n    const stoneId = this.activity.findStoneIdFor(peakId, positionInPeak)\n    assert('stoneId result returns ok: true', stoneId.ok)\n\n    this.loadingUi.start(() => {\n      void this.router.transitionTo('stone', peakId, stoneId.id)\n    })\n  }\n\n  @action transitionToSounds(): void {\n    this.loadingUi.start(() => {\n      void this.router.transitionTo('my-progress.sounds')\n    })\n  }\n\n  @action transitionToWords(): void {\n    this.loadingUi.start(() => {\n      void this.router.transitionTo('my-progress.words')\n    })\n  }\n\n  @action transitionToBooks(): void {\n    this.loadingUi.start(() => {\n      void this.router.transitionTo('my-progress.books')\n    })\n  }\n\n  @action transitionToProgress(): void {\n    this.loadingUi.start(() => {\n      void this.router.transitionTo('my-progress.index')\n    })\n  }\n\n  @action goToYetiShop(): void {\n    this.loadingUi.start(() => {\n      void this.router.transitionTo('yeti-shop')\n    })\n  }\n\n  createActivityResult = useMutation(this, createActivityResultMutationDocument)\n\n  @action async saveProgress(\n    peakId: number,\n    positionInPeak: number,\n    uuid?: string,\n  ): Promise<void> {\n    const activityService = this.activity\n    const chest = activityService.findActivityIdByPosition(\n      peakId,\n      positionInPeak,\n    )\n\n    if (!chest.ok) throw new Error(chest.errorMessage)\n\n    const response = await this.createActivityResult.current.mutate({\n      variables: {\n        input: {\n          activityId: chest.id,\n          assignmentId: this.assignmentId,\n          attemptUuid: uuid ?? uuidV4(),\n        },\n      },\n    })\n\n    if (!response) {\n      throw new Error('GraphQL CreateActivityResult mutation failed')\n    }\n\n    switch (response.createActivityResult.__typename) {\n      case 'NotAuthenticatedError':\n        throw new NotAuthenticatedError(\n          'GraphQL CreateActivityResult mutation returned NotAuthenticatedError',\n        )\n\n      case 'CreateActivityResultSuccess':\n        return // Happy path\n\n      default:\n        throw new Error(\n          // @ts-expect-error this is to catch unhandled types being added to the backend which we have not yet catered for in the client\n          // eslint-disable-next-line @typescript-eslint/restrict-template-expressions\n          `GraphQL CreateActivityResult mutation returned unhandled type: ${response.createActivityResult.__typename}`,\n        )\n    }\n  }\n\n  @action\n  @debugAction()\n  async resetProgressToPlacementTest() {\n    await this.debugMode.resetPlacementTestProgress()\n  }\n\n  @action\n  @debugAction({\n    peak: {\n      type: 'select',\n      options: generatePeakOptions(20),\n    },\n    positionInPeak: {\n      type: 'number',\n      value: '1',\n    },\n  })\n  async resetProgressToPeakPosition({\n    peak,\n    positionInPeak,\n  }: {\n    peak: string\n    positionInPeak: string\n  }) {\n    await this.debugMode.resetPeakProgress(\n      parseInt(peak, 10),\n      parseInt(positionInPeak, 10),\n    )\n  }\n\n  @action\n  @debugAction()\n  async resetProgressToProgramComplete() {\n    await this.debugMode.resetPeakProgress(21, 1)\n  }\n\n  @debugValue()\n  get currentQuest() {\n    return this.quest.currentQuest\n  }\n}\n\nfunction generatePeakOptions(numberOfPeaks: number) {\n  const options = []\n  let i = 0\n\n  for (i; i < numberOfPeaks; i++) {\n    const peak = (i + 1).toFixed()\n\n    options.push({\n      value: peak,\n      label: `Peak ${peak}`,\n    })\n  }\n  return options\n}\n\ndeclare module '@ember/controller' {\n  interface Registry {\n    peaks: PeaksController\n  }\n}\n","/* eslint-disable ember/no-test-import-export */\nimport Controller from '@ember/controller'\nimport { action } from '@ember/object'\nimport { inject as service } from '@ember/service'\nimport type RouterService from '@ember/routing/router-service'\nimport type ErrorHandlerService from 'fast-phonics-client/services/error-handler'\nimport type DebugModeService from 'fast-phonics-client/services/debug-mode'\nimport type LoadingUiService from 'fast-phonics-client/services/loading-ui'\nimport type ProgressService from 'fast-phonics-client/services/progress'\nimport type MetricsService from 'ember-metrics'\nimport type QuestService from 'fast-phonics-client/services/quest'\nimport { graphql } from 'fast-phonics-client/graphql'\nimport { useMutation } from 'fast-phonics-client/resources/mutation'\nimport { NotAuthenticatedError } from 'fast-phonics-client/services/error-handler'\n\ngraphql(/* GraphQL */ `\n  fragment PlacementTestResultDataFragment on PlacementTestResult {\n    attemptUuid\n    id\n    peak\n    questionNumber\n  }\n`)\n\ngraphql(/* GraphQL */ `\n  fragment SkipPlacementTestResultDataFragment on SkipPlacementTestResult {\n    attemptUuid\n    id\n  }\n`)\n\nexport const createPlacementTestResultMutationDocument = graphql(/* GraphQL */ `\n  mutation CreatePlacementTestResult($input: CreatePlacementTestResultInput!) {\n    createPlacementTestResult(input: $input) {\n      ... on CreatePlacementTestResultSuccess {\n        student {\n          ...StudentProgressDataFragment\n          ...StudentQuestDataFragment\n        }\n        placementTestResult {\n          ...PlacementTestResultDataFragment\n        }\n      }\n      ... on NotAuthenticatedError {\n        code\n      }\n      __typename\n    }\n  }\n`)\n\nexport const skipPlacementTestResultMutationDocument = graphql(/* GraphQL */ `\n  mutation SkipPlacementTestResult($input: SkipPlacementTestResultInput!) {\n    skipPlacementTestResult(input: $input) {\n      ... on SkipPlacementTestResultSuccess {\n        student {\n          ...StudentProgressDataFragment\n          ...StudentQuestDataFragment\n        }\n        skipPlacementTestResult {\n          ...SkipPlacementTestResultDataFragment\n        }\n      }\n      ... on NotAuthenticatedError {\n        code\n      }\n      __typename\n    }\n  }\n`)\n\nexport default class PlacementTestController extends Controller {\n  @service declare metrics: MetricsService\n\n  @service declare router: RouterService\n\n  @service declare loadingUi: LoadingUiService\n\n  @service declare errorHandler: ErrorHandlerService\n\n  @service declare progress: ProgressService\n\n  @service declare debugMode: DebugModeService\n\n  @service declare quest: QuestService\n\n  createPlacementTestResult = useMutation(\n    this,\n    createPlacementTestResultMutationDocument,\n  )\n\n  skipPlacementTestResult = useMutation(\n    this,\n    skipPlacementTestResultMutationDocument,\n  )\n\n  get activityComponent(): string {\n    if (this.debugMode.enabled) {\n      return 'debug-mode/placement-test'\n    }\n    return 'content-interactive'\n  }\n\n  @action readyForUserInput(): void {\n    this.loadingUi.finish()\n  }\n\n  @action unhandledError({ error }: { error: unknown }): void {\n    this.errorHandler.handleContentUnhandledError(error)\n  }\n\n  @action goToPeaks(): void {\n    void this.router.transitionTo('peaks')\n  }\n\n  @action goBack(): void {\n    this.metrics.trackEvent({\n      category: 'Placement Test',\n      action: 'Go Back',\n      label: 'Go Back',\n    })\n\n    void this.router.transitionTo('logout')\n  }\n\n  _validateSubmission(blob: Blob): { ok: true } | { ok: false; error: string } {\n    const isValid = blob.type === 'audio/wav'\n    if (isValid) {\n      return { ok: true }\n    }\n    return {\n      ok: false,\n      error: `Audio Type cannot be empty or of type other that audio/wav`,\n    }\n  }\n\n  @action async skipPlacementTest({\n    reason,\n    uuid,\n  }: {\n    reason: string\n    uuid: string\n  }): Promise<void> {\n    this.metrics.trackEvent({\n      category: 'Placement Test',\n      action: 'Skip Placement Test',\n      label: reason,\n    })\n\n    const response = await this.skipPlacementTestResult.current.mutate({\n      variables: {\n        input: {\n          attemptUuid: uuid,\n        },\n      },\n    })\n\n    if (!response) {\n      throw new Error('GraphQL SkipPlacementTestResult mutation failed')\n    }\n\n    switch (response.skipPlacementTestResult.__typename) {\n      case 'NotAuthenticatedError':\n        throw new NotAuthenticatedError(\n          'GraphQL SkipPlacementTestResult mutation returned NotAuthenticatedError',\n        )\n      case 'SkipPlacementTestResultSuccess':\n        return\n\n      default:\n        throw new Error(\n          // @ts-expect-error this is to catch unhandled types being added to the backend which we have not yet catered for in the client\n          // eslint-disable-next-line @typescript-eslint/restrict-template-expressions\n          `GraphQL SkipPlacementTestResult mutation returned unhandled type: ${response.skipPlacementTestResult.__typename}`,\n        )\n    }\n  }\n\n  @action async saveTestResults({\n    questionNumber,\n    uuid,\n  }: {\n    questionNumber: number\n    uuid: string\n  }): Promise<{ peakNumber: number }> {\n    this.metrics.trackEvent({\n      category: 'Placement Test',\n      action: 'Save Test Results',\n      label: `Question Number ${questionNumber.toFixed()}`,\n    })\n\n    const response = await this.createPlacementTestResult.current.mutate({\n      variables: {\n        input: {\n          attemptUuid: uuid,\n          questionNumber,\n        },\n      },\n    })\n\n    if (!response) {\n      throw new Error('GraphQL CreatePlacementTestResult mutation failed')\n    }\n\n    switch (response.createPlacementTestResult.__typename) {\n      case 'NotAuthenticatedError':\n        throw new NotAuthenticatedError(\n          'GraphQL CreatePlacementTestResult mutation returned NotAuthenticatedError',\n        )\n      case 'CreatePlacementTestResultSuccess':\n        return { peakNumber: this.progress.lastAccessiblePeak }\n\n      default:\n        throw new Error(\n          // @ts-expect-error this is to catch unhandled types being added to the backend which we have not yet catered for in the client\n          // eslint-disable-next-line @typescript-eslint/restrict-template-expressions\n          `GraphQL CreatePlacementTestResult mutation returned unhandled type: ${response.createPlacementTestResult.__typename}`,\n        )\n    }\n  }\n}\n\ndeclare module '@ember/controller' {\n  interface Registry {\n    'placement-test': PlacementTestController\n  }\n}\n","import { action } from '@ember/object'\nimport { inject as service } from '@ember/service'\nimport Controller from '@ember/controller'\nimport type LoadingUiService from 'fast-phonics-client/services/loading-ui'\nimport type ErrorHandlerService from 'fast-phonics-client/services/error-handler'\nimport type { VideoContentActions } from '@blakeelearning/content-specs-fast-phonics'\n\nexport default class SoundController extends Controller {\n  @service declare loadingUi: LoadingUiService\n\n  @service declare errorHandler: ErrorHandlerService\n\n  get contentActions(): VideoContentActions {\n    return {\n      readyForUserInput: () => {\n        this.loadingUi.finish()\n      },\n      unhandledError: ({ error }: { error: unknown }) => {\n        this.errorHandler.handleContentUnhandledError(error)\n      },\n      completeVideo: () => {\n        this.goBack()\n      },\n      goBack: () => {\n        this.goBack()\n      },\n    }\n  }\n\n  @action goBack(): void {\n    this.loadingUi.start(() => {\n      window.history.back()\n    })\n  }\n}\n\ndeclare module '@ember/controller' {\n  interface Registry {\n    sound: SoundController\n  }\n}\n","import { action } from '@ember/object'\nimport { inject as service } from '@ember/service'\nimport Controller from '@ember/controller'\nimport type RouterService from '@ember/routing/router-service'\nimport type DebugModeService from 'fast-phonics-client/services/debug-mode'\nimport type ErrorHandlerService from 'fast-phonics-client/services/error-handler'\nimport type LoadingUiService from 'fast-phonics-client/services/loading-ui'\nimport type ProgressService from 'fast-phonics-client/services/progress'\nimport type { StoneContentActions } from '@blakeelearning/content-specs-fast-phonics'\nimport type StoneIndexRoute from 'fast-phonics-client/routes/stone/index'\nimport type { ModelFor } from 'fast-phonics-client/utils/route-model'\nimport type { ErrorLike } from 'fast-phonics-client/utils/errors'\nimport { contentError } from 'fast-phonics-client/utils/errors'\nimport type PeakCertificateService from 'fast-phonics-client/services/peak-certificate'\nimport type QuestService from 'fast-phonics-client/services/quest'\nimport type { FeatureService } from '@blakeelearning/features'\nimport { useMutation } from 'fast-phonics-client/resources/mutation'\n\nimport { graphql } from 'fast-phonics-client/graphql'\nimport { v4 as uuidV4 } from 'uuid'\nimport type UserService from 'fast-phonics-client/services/user'\nimport { NotAuthenticatedError } from 'fast-phonics-client/services/error-handler'\nimport type AssignmentsService from 'fast-phonics-client/services/assignments'\nimport { startCase } from 'lodash'\n\nexport interface QuizData {\n  correctAnswers: string[]\n  incorrectAnswers?: [string, string][]\n}\n\ninterface SavePeakQuizResultArgs extends QuizData {\n  uuid: string\n}\n\ninterface ActivityResultParams {\n  uuid: string\n  correctCount: number\n  totalCount: number\n}\n\ngraphql(/* GraphQL */ `\n  fragment ActivityResultDataFragment on ActivityResult {\n    activityId\n    coinsEarned\n    correctCount\n    houseLevel\n    id\n    passed\n    peak\n    soundGemsEarned\n    soundsEarned\n    totalCount\n    wordGemsEarned\n    wordsEarned\n  }\n`)\n\ngraphql(/* GraphQL */ `\n  fragment BookQuizResultDataFragment on BookQuizResult {\n    activityId\n    attemptUuid\n    bookGemEarned\n    bookName\n    coinsEarned\n    correctAnswers\n    id\n    incorrectAnswers {\n      correctAnswer\n      studentInput\n    }\n    passed\n    peak\n    replayWithAudio\n  }\n`)\n\ngraphql(/* GraphQL */ `\n  fragment PeakQuizResultDataFragment on PeakQuizResult {\n    certificateUrl\n    coinsEarned\n    correctAnswers\n    id\n    incorrectAnswers {\n      correctAnswer\n      studentInput\n    }\n    passed\n    peak\n    progressed\n  }\n`)\n\nexport const createActivityResultMutationDocument = graphql(/* GraphQL */ `\n  mutation CreateActivityResult($input: CreateActivityResultInput!) {\n    createActivityResult(input: $input) {\n      ... on CreateActivityResultSuccess {\n        student {\n          ...StudentAssignmentDataFragment\n          ...StudentProgressDataFragment\n          ...StudentQuestDataFragment\n          ...RewardTotalsDataFragment\n          ...SoundsDataFragment\n          ...WordsDataFragment\n        }\n        activityResult {\n          ...ActivityResultDataFragment\n        }\n      }\n      ... on NotAuthenticatedError {\n        code\n      }\n      __typename\n    }\n  }\n`)\n\nexport const createBookQuizResultMutationDocument = graphql(/* GraphQL */ `\n  mutation CreateBookQuizResult($input: CreateBookQuizResultInput!) {\n    createBookQuizResult(input: $input) {\n      ... on CreateBookQuizResultSuccess {\n        student {\n          ...StudentAssignmentDataFragment\n          ...StudentProgressDataFragment\n          ...StudentQuestDataFragment\n          ...RewardTotalsDataFragment\n          books\n        }\n        bookQuizResult {\n          ...BookQuizResultDataFragment\n        }\n      }\n      ... on NotAuthenticatedError {\n        code\n      }\n      __typename\n    }\n  }\n`)\n\nexport const createPeakQuizResultMutationDocument = graphql(/* GraphQL */ `\n  mutation CreatePeakQuizResult($input: CreatePeakQuizResultInput!) {\n    createPeakQuizResult(input: $input) {\n      ... on CreatePeakQuizResultSuccess {\n        student {\n          ...StudentAssignmentDataFragment\n          ...StudentProgressDataFragment\n          ...StudentQuestDataFragment\n          ...RewardTotalsDataFragment\n          ...PeakQuizSummariesDataFragment\n        }\n        peakQuizResult {\n          ...PeakQuizResultDataFragment\n        }\n      }\n      ... on NotAuthenticatedError {\n        code\n      }\n      __typename\n    }\n  }\n`)\n\nexport default class StoneIndexController\n  extends Controller\n  implements StoneContentActions\n{\n  declare model: ModelFor<StoneIndexRoute>\n\n  @service declare debugMode: DebugModeService\n\n  @service declare errorHandler: ErrorHandlerService\n\n  @service declare loadingUi: LoadingUiService\n\n  @service declare user: UserService\n\n  @service declare progress: ProgressService\n\n  @service declare peakCertificate: PeakCertificateService\n\n  @service declare router: RouterService\n\n  @service declare quest: QuestService\n\n  @service declare features: FeatureService\n\n  @service declare assignments: AssignmentsService\n\n  createActivityResult = useMutation(this, createActivityResultMutationDocument)\n  createBookQuizResult = useMutation(this, createBookQuizResultMutationDocument)\n  createPeakQuizResult = useMutation(this, createPeakQuizResultMutationDocument)\n\n  get activityId(): string {\n    return this.model.activityId\n  }\n\n  get activityType(): string {\n    return this.model.activityType\n  }\n\n  get isAssignmentMode(): boolean {\n    return this.model.assignmentMode\n  }\n\n  get assignmentId() {\n    if (!this.isAssignmentMode) return null\n    if (!this.assignments.currentAssignment) {\n      throw new Error(\n        'StoneIndexController in assignment mode but no current assignment found',\n      )\n    }\n    return this.assignments.currentAssignment.id\n  }\n\n  get shouldLogout(): boolean {\n    return (\n      this.user.student.rosterEnabled &&\n      this.isAssignmentMode &&\n      !this.assignments.currentAssignment\n    )\n  }\n\n  get hasFinishedProgram(): boolean {\n    return this.progress.hasFinishedProgram\n  }\n\n  get lastAccessiblePeak(): number {\n    return this.progress.lastAccessiblePeak\n  }\n\n  get peakId(): number {\n    return this.model.peakId\n  }\n\n  get stoneId(): string {\n    return this.model.stoneId\n  }\n\n  get studentFirstName(): string {\n    return this.user.student.firstName\n  }\n\n  get renderQuestAlert() {\n    return this.quest.showQuestAlert\n  }\n\n  get pageTitle(): string {\n    return `${startCase(this.stoneId)} | Peak ${this.peakId.toString()}`\n  }\n\n  @action\n  readyForUserInput() {\n    this.loadingUi.finish()\n  }\n\n  @action\n  unhandledError({ error }: { error: ErrorLike }) {\n    this.errorHandler.handleContentUnhandledError(error)\n  }\n\n  @action\n  print(data: { certificateUrl: string }) {\n    return this.peakCertificate.print(data)\n  }\n\n  @action\n  async completeVideo(): Promise<void> {\n    if (this.model.completeVideoCalled) return\n    this.model.completeVideoCalled = true\n\n    const response = await this.createActivityResult.current.mutate({\n      variables: {\n        input: {\n          activityId: this.activityId,\n          assignmentId: this.assignmentId,\n          attemptUuid: uuidV4(),\n        },\n      },\n    })\n\n    if (!response) {\n      throw new Error('GraphQL CreateActivityResult mutation failed')\n    }\n\n    switch (response.createActivityResult.__typename) {\n      case 'NotAuthenticatedError':\n        throw new NotAuthenticatedError(\n          'GraphQL CreateActivityResult mutation returned NotAuthenticatedError',\n        )\n\n      case 'CreateActivityResultSuccess':\n        if (this.shouldLogout) {\n          void this.router.transitionTo('logout')\n          return\n        }\n        this.loadingUi.start(() => {\n          void this.router.transitionTo('peaks.peak.stones', this.peakId)\n        })\n        return\n\n      default:\n        throw new Error(\n          // @ts-expect-error this is to catch unhandled types being added to the backend which we have not yet catered for in the client\n          // eslint-disable-next-line @typescript-eslint/restrict-template-expressions\n          `GraphQL CreateActivityResult mutation returned unhandled type: ${response.createActivityResult.__typename}`,\n        )\n    }\n  }\n\n  @action\n  async saveBookQuizResult({\n    quizData: { correctAnswers, incorrectAnswers },\n    readRepeat,\n    bookName: _bookName,\n    uuid,\n  }: {\n    quizData: QuizData\n    readRepeat: boolean\n    bookName: string\n    uuid: string\n  }): Promise<void> {\n    const response = await this.createBookQuizResult.current.mutate({\n      variables: {\n        input: {\n          activityId: this.activityId,\n          assignmentId: this.assignmentId,\n          attemptUuid: uuid,\n          correctAnswers,\n          incorrectAnswers:\n            incorrectAnswers?.map(([studentInput, correctAnswer]) => ({\n              correctAnswer,\n              studentInput,\n            })) ?? [],\n          peak: this.peakId,\n          replayWithAudio: readRepeat,\n        },\n      },\n    })\n\n    if (!response) {\n      throw new Error('GraphQL CreateBookQuizResult mutation failed')\n    }\n\n    switch (response.createBookQuizResult.__typename) {\n      case 'NotAuthenticatedError':\n        throw new NotAuthenticatedError(\n          'GraphQL CreateBookQuizResult mutation returned NotAuthenticatedError',\n        )\n\n      case 'CreateBookQuizResultSuccess':\n        return // Happy path\n\n      default:\n        throw new Error(\n          // @ts-expect-error this is to catch unhandled types being added to the backend which we have not yet catered for in the client\n          // eslint-disable-next-line @typescript-eslint/restrict-template-expressions\n          `GraphQL CreateBookQuizResult mutation returned unhandled type: ${response.createBookQuizResult.__typename}`,\n        )\n    }\n  }\n\n  @action\n  async completeBookQuiz(\n    quizData: QuizData,\n    readRepeat: boolean,\n    uuid: string,\n  ): Promise<void> {\n    if (this.model.completeBookQuizCalled) return\n    this.model.completeBookQuizCalled = true\n\n    await this.saveBookQuizResult({\n      quizData,\n      readRepeat,\n      bookName: 'unknown',\n      uuid,\n    })\n    this.next()\n  }\n\n  @action\n  goBack(): void {\n    this.loadingUi.start(() => {\n      window.history.back()\n    })\n  }\n\n  @action\n  next(): void {\n    if (this.shouldLogout) {\n      void this.router.transitionTo('logout')\n      return\n    }\n\n    this.quest.displayQuestAlertIfRequired(() => {\n      if (this.activityType === 'quiz') {\n        if (this.hasFinishedProgram) {\n          this.router.transitionTo('end-of-program')\n        } else {\n          const showCongratulations =\n            this.lastAccessiblePeak === this.peakId + 1\n          this.router.transitionTo('peaks.peak', this.lastAccessiblePeak, {\n            queryParams: { showCongratulations },\n          })\n        }\n      } else {\n        this.router.transitionTo('peaks.peak.stones', this.peakId)\n      }\n    })\n  }\n\n  @action\n  async savePeakQuizResult({\n    correctAnswers,\n    incorrectAnswers,\n    uuid: attemptUuid,\n  }: SavePeakQuizResultArgs) {\n    const response = await this.createPeakQuizResult.current.mutate({\n      variables: {\n        input: {\n          attemptUuid,\n          assignmentId: this.assignmentId,\n          correctAnswers,\n          incorrectAnswers:\n            incorrectAnswers?.map(([studentInput, correctAnswer]) => ({\n              correctAnswer,\n              studentInput,\n            })) ?? [],\n          peak: this.peakId,\n          studentName: this.studentFirstName,\n        },\n      },\n    })\n\n    if (!response) {\n      throw contentError(\n        'SaveFailed',\n        new Error('GraphQL CreatePeakQuizResult mutation failed'),\n      )\n    }\n\n    switch (response.createPeakQuizResult.__typename) {\n      case 'NotAuthenticatedError':\n        throw new NotAuthenticatedError(\n          'GraphQL CreatePeakQuizResult mutation returned NotAuthenticatedError',\n        )\n\n      case 'CreatePeakQuizResultSuccess':\n        break // happy path\n\n      default:\n        throw new Error(\n          // @ts-expect-error this is to catch unhandled types being added to the backend which we have not yet catered for in the client\n          // eslint-disable-next-line @typescript-eslint/restrict-template-expressions\n          `GraphQL CreatePeakQuizResult mutation returned unhandled type: ${response.createPeakQuizResult.__typename}`,\n        )\n    }\n\n    const { coinsEarned, passed, certificateUrl } =\n      response.createPeakQuizResult.peakQuizResult\n\n    return { peakQuizResult: { coinsEarned, passed, certificateUrl } }\n  }\n\n  @action\n  async saveActivityResult({\n    uuid,\n    correctCount,\n    totalCount,\n  }: ActivityResultParams) {\n    const response = await this.createActivityResult.current.mutate({\n      variables: {\n        input: {\n          activityId: this.activityId,\n          assignmentId: this.assignmentId,\n          attemptUuid: uuid,\n          correctCount,\n          totalCount,\n        },\n      },\n    })\n\n    if (!response) {\n      throw new Error('GraphQL CreateActivityResult mutation failed')\n    }\n\n    switch (response.createActivityResult.__typename) {\n      case 'NotAuthenticatedError':\n        throw new NotAuthenticatedError(\n          'GraphQL CreateActivityResult mutation returned NotAuthenticatedError',\n        )\n\n      case 'CreateActivityResultSuccess':\n        return { activityResult: response.createActivityResult.activityResult }\n\n      default:\n        throw new Error(\n          // @ts-expect-error this is to catch unhandled types being added to the backend which we have not yet catered for in the client\n          // eslint-disable-next-line @typescript-eslint/restrict-template-expressions\n          `GraphQL CreateActivityResult mutation returned unhandled type: ${response.createActivityResult.__typename}`,\n        )\n    }\n  }\n}\n\ndeclare module '@ember/controller' {\n  interface Registry {\n    'stone/index': StoneIndexController\n  }\n}\n","import { action } from '@ember/object'\nimport { inject as service } from '@ember/service'\nimport Controller from '@ember/controller'\nimport { contentError } from 'fast-phonics-client/utils/errors'\nimport type DebugModeService from 'fast-phonics-client/services/debug-mode'\nimport type ErrorHandlerService from 'fast-phonics-client/services/error-handler'\nimport type LoadingUiService from 'fast-phonics-client/services/loading-ui'\nimport type { YetiShopContentActions } from '@blakeelearning/content-specs-fast-phonics'\nimport type { PurchasedYetis } from 'fast-phonics-client/routes/yeti-shop'\nimport type UserService from 'fast-phonics-client/services/user'\nimport { graphql } from 'fast-phonics-client/graphql'\nimport { useMutation } from 'fast-phonics-client/resources/mutation'\nimport { NotAuthenticatedError } from 'fast-phonics-client/services/error-handler'\n\ninterface PurchaseYetiResult {\n  selectedYeti: string\n  coins: number\n  purchases: PurchasedYetis[]\n}\n\ninterface SelectedYeti {\n  selectedYeti: string\n}\n\ninterface YetiData {\n  uuid: string\n  id: string\n}\n\nexport const updateSelectedYetiMutationDocument = graphql(/* GraphQL */ `\n  mutation UpdateSelectedYeti($input: UpdateSelectedYetiInput!) {\n    updateSelectedYeti(input: $input) {\n      ... on UpdateSelectedYetiSuccess {\n        student {\n          id\n          selectedYeti\n        }\n        yeti\n      }\n      ... on NotAuthenticatedError {\n        code\n      }\n      __typename\n    }\n  }\n`)\n\nexport const purchaseYetiMutationDocument = graphql(/* GraphQL */ `\n  mutation PurchaseYeti($input: PurchaseYetiInput!) {\n    purchaseYeti(input: $input) {\n      ... on PurchaseYetiSuccess {\n        student {\n          id\n          selectedYeti\n          ...PurchasesDataFragment\n          ...RewardTotalsDataFragment\n        }\n        yeti\n      }\n      ... on AlreadyPurchasedError {\n        code\n      }\n      ... on NotEnoughCoinsError {\n        code\n      }\n      ... on NotAuthenticatedError {\n        code\n      }\n      __typename\n    }\n  }\n`)\n\nexport default class YetiShopController extends Controller {\n  @service declare debugMode: DebugModeService\n\n  @service declare errorHandler: ErrorHandlerService\n\n  @service declare loadingUi: LoadingUiService\n\n  @service declare user: UserService\n\n  updateSelectedYeti = useMutation(this, updateSelectedYetiMutationDocument)\n  purchaseYetiMutation = useMutation(this, purchaseYetiMutationDocument)\n\n  get student() {\n    return this.user.student\n  }\n\n  get rewardTotals() {\n    return this.user.student.rewardTotals\n  }\n\n  get coins(): number {\n    return this.rewardTotals.coins\n  }\n\n  get selectedYeti(): string {\n    return this.student.selectedYeti\n  }\n\n  get purchases(): PurchasedYetis[] {\n    return this.student.purchases.map(({ item, category }) => {\n      return { item, category: category.toLowerCase() }\n    })\n  }\n\n  get activityComponent(): string {\n    if (this.debugMode.enabled) {\n      return 'debug-mode/yeti-shop'\n    }\n    return 'content-interactive'\n  }\n\n  get contentActions(): YetiShopContentActions {\n    return {\n      readyForUserInput: () => {\n        this.loadingUi.finish()\n      },\n      unhandledError: ({ error }: { error: unknown }) => {\n        this.errorHandler.handleContentUnhandledError(error)\n      },\n      goBack: () => {\n        this.goBack()\n      },\n      purchaseYeti: (data: YetiData) => this.purchaseYeti(data),\n      selectYeti: (data: YetiData) => this.selectYeti(data),\n      getCoins: () => this.getCoins(),\n    }\n  }\n\n  @action goBack(): void {\n    this.loadingUi.start(() => {\n      window.history.back()\n    })\n  }\n\n  /**\n   * Async method for the yeti shop interactive to call in order to purchase a yeti.\n   */\n  async purchaseYeti({\n    uuid,\n    id: yeti,\n  }: YetiData): Promise<PurchaseYetiResult> {\n    const response = await this.purchaseYetiMutation.current.mutate({\n      variables: {\n        input: {\n          yeti,\n          uuid,\n        },\n      },\n    })\n    if (!response) {\n      throw contentError(\n        'PurchaseFailed',\n        new Error('GraphQL PurchaseYeti mutation failed'),\n      )\n    }\n    switch (response.purchaseYeti.__typename) {\n      case 'NotAuthenticatedError':\n        throw new NotAuthenticatedError(\n          'GraphQL PurchaseYeti mutation returned NotAuthenticatedError',\n        )\n\n      case 'AlreadyPurchasedError':\n        throw contentError('AlreadyPurchased', new Error('AlreadyPurchased'))\n\n      case 'NotEnoughCoinsError':\n        throw contentError('NotEnoughCoins', new Error('NotEnoughCoins'))\n\n      case 'PurchaseYetiSuccess':\n        return {\n          selectedYeti: this.selectedYeti,\n          coins: this.coins,\n          purchases: this.purchases,\n        }\n\n      default:\n        throw new Error(\n          // @ts-expect-error this is to catch unhandled types being added to the backend which we have not yet catered for in the client\n          // eslint-disable-next-line @typescript-eslint/restrict-template-expressions\n          `GraphQL PurchaseYeti mutation returned unhandled type: ${response.purchaseYeti.__typename}`,\n        )\n    }\n  }\n\n  /**\n   * Async method for the yeti shop interactive to call in order to select a yeti.\n   */\n  async selectYeti({ id: yeti }: YetiData): Promise<SelectedYeti> {\n    const response = await this.updateSelectedYeti.current.mutate({\n      variables: {\n        input: {\n          yeti,\n        },\n      },\n    })\n    if (!response) {\n      throw contentError(\n        'SelectFailed',\n        new Error('GraphQL UpdateSelectedYeti mutation failed'),\n      )\n    }\n    switch (response.updateSelectedYeti.__typename) {\n      case 'NotAuthenticatedError':\n        throw new NotAuthenticatedError(\n          'GraphQL UpdateSelectedYeti mutation returned NotAuthenticatedError',\n        )\n      case 'UpdateSelectedYetiSuccess':\n        return { selectedYeti: response.updateSelectedYeti.yeti }\n      default:\n        throw new Error(\n          // @ts-expect-error this is to catch unhandled types being added to the backend which we have not yet catered for in the client\n          // eslint-disable-next-line @typescript-eslint/restrict-template-expressions\n          `GraphQL UpdateSelectedYeti mutation returned unhandled type: ${response.updateSelectedYeti.__typename}`,\n        )\n    }\n  }\n\n  async getCoins(): Promise<{ coins: number }> {\n    await this.user.fetch() // TODO: do we actually need to do this fetch?\n    return { coins: this.coins }\n  }\n}\n\ndeclare module '@ember/controller' {\n  interface Registry {\n    'yeti-shop': YetiShopController\n  }\n}\n","import setupDeprecationWorkflow from 'ember-cli-deprecation-workflow'\n\nsetupDeprecationWorkflow({\n  workflow: [\n    { handler: 'error', matchId: 'ember-test-waiters-legacy-module-name' },\n  ],\n})\n","/* eslint-disable */\nimport * as types from './graphql';\nimport type { TypedDocumentNode as DocumentNode } from '@graphql-typed-document-node/core';\n\n/**\n * Map of all GraphQL operations in the project.\n *\n * This map has several performance disadvantages:\n * 1. It is not tree-shakeable, so it will include all operations in the project.\n * 2. It is not minifiable, so the string of a GraphQL query will be multiple times inside the bundle.\n * 3. It does not support dead code elimination, so it will add unused operations.\n *\n * Therefore it is highly recommended to use the babel or swc plugin for production.\n * Learn more about it here: https://the-guild.dev/graphql/codegen/plugins/presets/preset-client#reducing-bundle-size\n */\nconst documents = {\n    \"\\n  mutation UpdateIntroVideo($input: UpdateIntroVideoInput!) {\\n    updateIntroVideo(input: $input) {\\n      ... on UpdateIntroVideoSuccess {\\n        student {\\n          id\\n          viewedIntroVideo\\n        }\\n        viewed\\n      }\\n      ... on NotAuthenticatedError {\\n        code\\n      }\\n      __typename\\n    }\\n  }\\n\": types.UpdateIntroVideoDocument,\n    \"\\n  fragment PlacementTestResultDataFragment on PlacementTestResult {\\n    attemptUuid\\n    id\\n    peak\\n    questionNumber\\n  }\\n\": types.PlacementTestResultDataFragmentFragmentDoc,\n    \"\\n  fragment SkipPlacementTestResultDataFragment on SkipPlacementTestResult {\\n    attemptUuid\\n    id\\n  }\\n\": types.SkipPlacementTestResultDataFragmentFragmentDoc,\n    \"\\n  mutation CreatePlacementTestResult($input: CreatePlacementTestResultInput!) {\\n    createPlacementTestResult(input: $input) {\\n      ... on CreatePlacementTestResultSuccess {\\n        student {\\n          ...StudentProgressDataFragment\\n          ...StudentQuestDataFragment\\n        }\\n        placementTestResult {\\n          ...PlacementTestResultDataFragment\\n        }\\n      }\\n      ... on NotAuthenticatedError {\\n        code\\n      }\\n      __typename\\n    }\\n  }\\n\": types.CreatePlacementTestResultDocument,\n    \"\\n  mutation SkipPlacementTestResult($input: SkipPlacementTestResultInput!) {\\n    skipPlacementTestResult(input: $input) {\\n      ... on SkipPlacementTestResultSuccess {\\n        student {\\n          ...StudentProgressDataFragment\\n          ...StudentQuestDataFragment\\n        }\\n        skipPlacementTestResult {\\n          ...SkipPlacementTestResultDataFragment\\n        }\\n      }\\n      ... on NotAuthenticatedError {\\n        code\\n      }\\n      __typename\\n    }\\n  }\\n\": types.SkipPlacementTestResultDocument,\n    \"\\n  fragment ActivityResultDataFragment on ActivityResult {\\n    activityId\\n    coinsEarned\\n    correctCount\\n    houseLevel\\n    id\\n    passed\\n    peak\\n    soundGemsEarned\\n    soundsEarned\\n    totalCount\\n    wordGemsEarned\\n    wordsEarned\\n  }\\n\": types.ActivityResultDataFragmentFragmentDoc,\n    \"\\n  fragment BookQuizResultDataFragment on BookQuizResult {\\n    activityId\\n    attemptUuid\\n    bookGemEarned\\n    bookName\\n    coinsEarned\\n    correctAnswers\\n    id\\n    incorrectAnswers {\\n      correctAnswer\\n      studentInput\\n    }\\n    passed\\n    peak\\n    replayWithAudio\\n  }\\n\": types.BookQuizResultDataFragmentFragmentDoc,\n    \"\\n  fragment PeakQuizResultDataFragment on PeakQuizResult {\\n    certificateUrl\\n    coinsEarned\\n    correctAnswers\\n    id\\n    incorrectAnswers {\\n      correctAnswer\\n      studentInput\\n    }\\n    passed\\n    peak\\n    progressed\\n  }\\n\": types.PeakQuizResultDataFragmentFragmentDoc,\n    \"\\n  mutation CreateActivityResult($input: CreateActivityResultInput!) {\\n    createActivityResult(input: $input) {\\n      ... on CreateActivityResultSuccess {\\n        student {\\n          ...StudentAssignmentDataFragment\\n          ...StudentProgressDataFragment\\n          ...StudentQuestDataFragment\\n          ...RewardTotalsDataFragment\\n          ...SoundsDataFragment\\n          ...WordsDataFragment\\n        }\\n        activityResult {\\n          ...ActivityResultDataFragment\\n        }\\n      }\\n      ... on NotAuthenticatedError {\\n        code\\n      }\\n      __typename\\n    }\\n  }\\n\": types.CreateActivityResultDocument,\n    \"\\n  mutation CreateBookQuizResult($input: CreateBookQuizResultInput!) {\\n    createBookQuizResult(input: $input) {\\n      ... on CreateBookQuizResultSuccess {\\n        student {\\n          ...StudentAssignmentDataFragment\\n          ...StudentProgressDataFragment\\n          ...StudentQuestDataFragment\\n          ...RewardTotalsDataFragment\\n          books\\n        }\\n        bookQuizResult {\\n          ...BookQuizResultDataFragment\\n        }\\n      }\\n      ... on NotAuthenticatedError {\\n        code\\n      }\\n      __typename\\n    }\\n  }\\n\": types.CreateBookQuizResultDocument,\n    \"\\n  mutation CreatePeakQuizResult($input: CreatePeakQuizResultInput!) {\\n    createPeakQuizResult(input: $input) {\\n      ... on CreatePeakQuizResultSuccess {\\n        student {\\n          ...StudentAssignmentDataFragment\\n          ...StudentProgressDataFragment\\n          ...StudentQuestDataFragment\\n          ...RewardTotalsDataFragment\\n          ...PeakQuizSummariesDataFragment\\n        }\\n        peakQuizResult {\\n          ...PeakQuizResultDataFragment\\n        }\\n      }\\n      ... on NotAuthenticatedError {\\n        code\\n      }\\n      __typename\\n    }\\n  }\\n\": types.CreatePeakQuizResultDocument,\n    \"\\n  mutation UpdateSelectedYeti($input: UpdateSelectedYetiInput!) {\\n    updateSelectedYeti(input: $input) {\\n      ... on UpdateSelectedYetiSuccess {\\n        student {\\n          id\\n          selectedYeti\\n        }\\n        yeti\\n      }\\n      ... on NotAuthenticatedError {\\n        code\\n      }\\n      __typename\\n    }\\n  }\\n\": types.UpdateSelectedYetiDocument,\n    \"\\n  mutation PurchaseYeti($input: PurchaseYetiInput!) {\\n    purchaseYeti(input: $input) {\\n      ... on PurchaseYetiSuccess {\\n        student {\\n          id\\n          selectedYeti\\n          ...PurchasesDataFragment\\n          ...RewardTotalsDataFragment\\n        }\\n        yeti\\n      }\\n      ... on AlreadyPurchasedError {\\n        code\\n      }\\n      ... on NotEnoughCoinsError {\\n        code\\n      }\\n      ... on NotAuthenticatedError {\\n        code\\n      }\\n      __typename\\n    }\\n  }\\n\": types.PurchaseYetiDocument,\n    \"\\n  query GetInitialAppData {\\n    student {\\n      ... on Student {\\n        ...StudentUserDataFragment\\n        ...StudentProgressDataFragment\\n        ...StudentQuestDataFragment\\n        ...StudentAssignmentDataFragment\\n        __typename\\n      }\\n    }\\n  }\\n\": types.GetInitialAppDataDocument,\n    \"\\n  fragment YetiDataFragment on Yeti {\\n    id\\n    price\\n  }\\n\": types.YetiDataFragmentFragmentDoc,\n    \"\\n  query GetYetis {\\n    yetis {\\n      ...YetiDataFragment\\n    }\\n  }\\n\": types.GetYetisDocument,\n    \"\\n  fragment ActivityData on Activity {\\n    activityType\\n    id\\n    manifestBundle\\n    manifestKey\\n    peak\\n    positionInPeak\\n  }\\n\": types.ActivityDataFragmentDoc,\n    \"\\n  query GetActivities {\\n    activities {\\n      ...ActivityData\\n    }\\n  }\\n\": types.GetActivitiesDocument,\n    \"\\n  fragment StudentAssignmentDataFragment on Student {\\n    assignment {\\n      ... on AssignmentPeak {\\n        positionInPeak\\n        endAt\\n        id\\n        peak\\n        thumbnailUrl\\n        title\\n      }\\n      __typename\\n    }\\n  }\\n\": types.StudentAssignmentDataFragmentFragmentDoc,\n    \"\\n  query GetStudentAssignment {\\n    student {\\n      ... on Student {\\n        id\\n        ...StudentAssignmentDataFragment\\n      }\\n      ... on NotAuthenticatedError {\\n        code\\n      }\\n      __typename\\n    }\\n  }\\n\": types.GetStudentAssignmentDocument,\n    \"\\n  mutation ResetPeakProgress($input: StudentProgressPeakResetInput!) {\\n    studentProgressPeakReset(input: $input) {\\n      ... on StudentProgressPeakResetOutput {\\n        student {\\n          ...StudentProgressDataFragment\\n        }\\n      }\\n      __typename\\n    }\\n  }\\n\": types.ResetPeakProgressDocument,\n    \"\\n    mutation ResetPlacementTestProgress {\\n      studentProgressPlacementTestReset {\\n        ... on StudentProgressPlacementTestResetOutput {\\n          student {\\n            ...StudentProgressDataFragment\\n          }\\n        }\\n        __typename\\n      }\\n    }\\n  \": types.ResetPlacementTestProgressDocument,\n    \"\\n  fragment StudentProgressDataFragment on Student {\\n    id\\n    progress {\\n      lessons {\\n        peak\\n        positionInPeak\\n        showPlacementTest\\n      }\\n    }\\n  }\\n\": types.StudentProgressDataFragmentFragmentDoc,\n    \"\\n  query GetStudentProgress {\\n    student {\\n      ... on Student {\\n        ...StudentProgressDataFragment\\n      }\\n      ... on NotAuthenticatedError {\\n        code\\n      }\\n      __typename\\n    }\\n  }\\n\": types.GetStudentProgressDocument,\n    \"\\n  fragment StudentQuestDataFragment on Student {\\n    id\\n    quest {\\n      primaryGoal {\\n        __typename\\n        goalType: __typename\\n        ... on QuestGoalPeak {\\n          rewardAmount\\n          id\\n          peak\\n          progressCurrent\\n          progressTotal\\n          status\\n        }\\n      }\\n    }\\n  }\\n\": types.StudentQuestDataFragmentFragmentDoc,\n    \"\\n  query GetStudentQuest {\\n    student {\\n      ... on Student {\\n        ...StudentQuestDataFragment\\n      }\\n      ... on NotAuthenticatedError {\\n        code\\n      }\\n      __typename\\n    }\\n  }\\n\": types.GetStudentQuestDocument,\n    \"\\n  mutation StudentQuestGoalAcknowledgeComplete(\\n    $input: StudentQuestGoalAcknowledgeCompleteInput!\\n  ) {\\n    studentQuestGoalAcknowledgeComplete(input: $input) {\\n      ... on StudentQuestGoalAcknowledgeCompleteOutput {\\n        student {\\n          ...StudentQuestDataFragment\\n          ...StudentUserDataFragment\\n        }\\n      }\\n    }\\n  }\\n\": types.StudentQuestGoalAcknowledgeCompleteDocument,\n    \"\\n  fragment RewardTotalsDataFragment on Student {\\n    rewardTotals {\\n      bookGems\\n      coins\\n      soundGems\\n      wordGems\\n    }\\n  }\\n\": types.RewardTotalsDataFragmentFragmentDoc,\n    \"\\n  fragment PeakQuizSummariesDataFragment on Student {\\n    peakQuizSummaries {\\n      best\\n      certificate {\\n        colour\\n        created\\n        url\\n      }\\n      first\\n      id\\n    }\\n  }\\n\": types.PeakQuizSummariesDataFragmentFragmentDoc,\n    \"\\n  fragment PurchasesDataFragment on Student {\\n    purchases {\\n      category\\n      item\\n      price\\n      uuid\\n    }\\n  }\\n\": types.PurchasesDataFragmentFragmentDoc,\n    \"\\n  fragment SoundsDataFragment on Student {\\n    sounds {\\n      peak\\n      rewards\\n    }\\n  }\\n\": types.SoundsDataFragmentFragmentDoc,\n    \"\\n  fragment WordsDataFragment on Student {\\n    words {\\n      peak\\n      rewards\\n    }\\n  }\\n\": types.WordsDataFragmentFragmentDoc,\n    \"\\n  fragment StudentUserDataFragment on Student {\\n    id\\n    backgroundMusicDisabled\\n    books\\n    averageBestPeakQuizResult\\n    abbreviatedName\\n    accent\\n    firstName\\n    selectedYeti\\n    viewedIntroVideo\\n    rosterEnabled\\n    ...PeakQuizSummariesDataFragment\\n    ...PurchasesDataFragment\\n    ...RewardTotalsDataFragment\\n    ...SoundsDataFragment\\n    ...WordsDataFragment\\n  }\\n\": types.StudentUserDataFragmentFragmentDoc,\n    \"\\n  query GetStudent {\\n    student {\\n      ... on Student {\\n        ...StudentUserDataFragment\\n      }\\n      ... on NotAuthenticatedError {\\n        code\\n      }\\n      __typename\\n    }\\n  }\\n\": types.GetStudentDocument,\n};\n\n/**\n * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.\n *\n *\n * @example\n * ```ts\n * const query = graphql(`query GetUser($id: ID!) { user(id: $id) { name } }`);\n * ```\n *\n * The query argument is unknown!\n * Please regenerate the types.\n */\nexport function graphql(source: string): unknown;\n\n/**\n * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.\n */\nexport function graphql(source: \"\\n  mutation UpdateIntroVideo($input: UpdateIntroVideoInput!) {\\n    updateIntroVideo(input: $input) {\\n      ... on UpdateIntroVideoSuccess {\\n        student {\\n          id\\n          viewedIntroVideo\\n        }\\n        viewed\\n      }\\n      ... on NotAuthenticatedError {\\n        code\\n      }\\n      __typename\\n    }\\n  }\\n\"): (typeof documents)[\"\\n  mutation UpdateIntroVideo($input: UpdateIntroVideoInput!) {\\n    updateIntroVideo(input: $input) {\\n      ... on UpdateIntroVideoSuccess {\\n        student {\\n          id\\n          viewedIntroVideo\\n        }\\n        viewed\\n      }\\n      ... on NotAuthenticatedError {\\n        code\\n      }\\n      __typename\\n    }\\n  }\\n\"];\n/**\n * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.\n */\nexport function graphql(source: \"\\n  fragment PlacementTestResultDataFragment on PlacementTestResult {\\n    attemptUuid\\n    id\\n    peak\\n    questionNumber\\n  }\\n\"): (typeof documents)[\"\\n  fragment PlacementTestResultDataFragment on PlacementTestResult {\\n    attemptUuid\\n    id\\n    peak\\n    questionNumber\\n  }\\n\"];\n/**\n * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.\n */\nexport function graphql(source: \"\\n  fragment SkipPlacementTestResultDataFragment on SkipPlacementTestResult {\\n    attemptUuid\\n    id\\n  }\\n\"): (typeof documents)[\"\\n  fragment SkipPlacementTestResultDataFragment on SkipPlacementTestResult {\\n    attemptUuid\\n    id\\n  }\\n\"];\n/**\n * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.\n */\nexport function graphql(source: \"\\n  mutation CreatePlacementTestResult($input: CreatePlacementTestResultInput!) {\\n    createPlacementTestResult(input: $input) {\\n      ... on CreatePlacementTestResultSuccess {\\n        student {\\n          ...StudentProgressDataFragment\\n          ...StudentQuestDataFragment\\n        }\\n        placementTestResult {\\n          ...PlacementTestResultDataFragment\\n        }\\n      }\\n      ... on NotAuthenticatedError {\\n        code\\n      }\\n      __typename\\n    }\\n  }\\n\"): (typeof documents)[\"\\n  mutation CreatePlacementTestResult($input: CreatePlacementTestResultInput!) {\\n    createPlacementTestResult(input: $input) {\\n      ... on CreatePlacementTestResultSuccess {\\n        student {\\n          ...StudentProgressDataFragment\\n          ...StudentQuestDataFragment\\n        }\\n        placementTestResult {\\n          ...PlacementTestResultDataFragment\\n        }\\n      }\\n      ... on NotAuthenticatedError {\\n        code\\n      }\\n      __typename\\n    }\\n  }\\n\"];\n/**\n * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.\n */\nexport function graphql(source: \"\\n  mutation SkipPlacementTestResult($input: SkipPlacementTestResultInput!) {\\n    skipPlacementTestResult(input: $input) {\\n      ... on SkipPlacementTestResultSuccess {\\n        student {\\n          ...StudentProgressDataFragment\\n          ...StudentQuestDataFragment\\n        }\\n        skipPlacementTestResult {\\n          ...SkipPlacementTestResultDataFragment\\n        }\\n      }\\n      ... on NotAuthenticatedError {\\n        code\\n      }\\n      __typename\\n    }\\n  }\\n\"): (typeof documents)[\"\\n  mutation SkipPlacementTestResult($input: SkipPlacementTestResultInput!) {\\n    skipPlacementTestResult(input: $input) {\\n      ... on SkipPlacementTestResultSuccess {\\n        student {\\n          ...StudentProgressDataFragment\\n          ...StudentQuestDataFragment\\n        }\\n        skipPlacementTestResult {\\n          ...SkipPlacementTestResultDataFragment\\n        }\\n      }\\n      ... on NotAuthenticatedError {\\n        code\\n      }\\n      __typename\\n    }\\n  }\\n\"];\n/**\n * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.\n */\nexport function graphql(source: \"\\n  fragment ActivityResultDataFragment on ActivityResult {\\n    activityId\\n    coinsEarned\\n    correctCount\\n    houseLevel\\n    id\\n    passed\\n    peak\\n    soundGemsEarned\\n    soundsEarned\\n    totalCount\\n    wordGemsEarned\\n    wordsEarned\\n  }\\n\"): (typeof documents)[\"\\n  fragment ActivityResultDataFragment on ActivityResult {\\n    activityId\\n    coinsEarned\\n    correctCount\\n    houseLevel\\n    id\\n    passed\\n    peak\\n    soundGemsEarned\\n    soundsEarned\\n    totalCount\\n    wordGemsEarned\\n    wordsEarned\\n  }\\n\"];\n/**\n * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.\n */\nexport function graphql(source: \"\\n  fragment BookQuizResultDataFragment on BookQuizResult {\\n    activityId\\n    attemptUuid\\n    bookGemEarned\\n    bookName\\n    coinsEarned\\n    correctAnswers\\n    id\\n    incorrectAnswers {\\n      correctAnswer\\n      studentInput\\n    }\\n    passed\\n    peak\\n    replayWithAudio\\n  }\\n\"): (typeof documents)[\"\\n  fragment BookQuizResultDataFragment on BookQuizResult {\\n    activityId\\n    attemptUuid\\n    bookGemEarned\\n    bookName\\n    coinsEarned\\n    correctAnswers\\n    id\\n    incorrectAnswers {\\n      correctAnswer\\n      studentInput\\n    }\\n    passed\\n    peak\\n    replayWithAudio\\n  }\\n\"];\n/**\n * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.\n */\nexport function graphql(source: \"\\n  fragment PeakQuizResultDataFragment on PeakQuizResult {\\n    certificateUrl\\n    coinsEarned\\n    correctAnswers\\n    id\\n    incorrectAnswers {\\n      correctAnswer\\n      studentInput\\n    }\\n    passed\\n    peak\\n    progressed\\n  }\\n\"): (typeof documents)[\"\\n  fragment PeakQuizResultDataFragment on PeakQuizResult {\\n    certificateUrl\\n    coinsEarned\\n    correctAnswers\\n    id\\n    incorrectAnswers {\\n      correctAnswer\\n      studentInput\\n    }\\n    passed\\n    peak\\n    progressed\\n  }\\n\"];\n/**\n * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.\n */\nexport function graphql(source: \"\\n  mutation CreateActivityResult($input: CreateActivityResultInput!) {\\n    createActivityResult(input: $input) {\\n      ... on CreateActivityResultSuccess {\\n        student {\\n          ...StudentAssignmentDataFragment\\n          ...StudentProgressDataFragment\\n          ...StudentQuestDataFragment\\n          ...RewardTotalsDataFragment\\n          ...SoundsDataFragment\\n          ...WordsDataFragment\\n        }\\n        activityResult {\\n          ...ActivityResultDataFragment\\n        }\\n      }\\n      ... on NotAuthenticatedError {\\n        code\\n      }\\n      __typename\\n    }\\n  }\\n\"): (typeof documents)[\"\\n  mutation CreateActivityResult($input: CreateActivityResultInput!) {\\n    createActivityResult(input: $input) {\\n      ... on CreateActivityResultSuccess {\\n        student {\\n          ...StudentAssignmentDataFragment\\n          ...StudentProgressDataFragment\\n          ...StudentQuestDataFragment\\n          ...RewardTotalsDataFragment\\n          ...SoundsDataFragment\\n          ...WordsDataFragment\\n        }\\n        activityResult {\\n          ...ActivityResultDataFragment\\n        }\\n      }\\n      ... on NotAuthenticatedError {\\n        code\\n      }\\n      __typename\\n    }\\n  }\\n\"];\n/**\n * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.\n */\nexport function graphql(source: \"\\n  mutation CreateBookQuizResult($input: CreateBookQuizResultInput!) {\\n    createBookQuizResult(input: $input) {\\n      ... on CreateBookQuizResultSuccess {\\n        student {\\n          ...StudentAssignmentDataFragment\\n          ...StudentProgressDataFragment\\n          ...StudentQuestDataFragment\\n          ...RewardTotalsDataFragment\\n          books\\n        }\\n        bookQuizResult {\\n          ...BookQuizResultDataFragment\\n        }\\n      }\\n      ... on NotAuthenticatedError {\\n        code\\n      }\\n      __typename\\n    }\\n  }\\n\"): (typeof documents)[\"\\n  mutation CreateBookQuizResult($input: CreateBookQuizResultInput!) {\\n    createBookQuizResult(input: $input) {\\n      ... on CreateBookQuizResultSuccess {\\n        student {\\n          ...StudentAssignmentDataFragment\\n          ...StudentProgressDataFragment\\n          ...StudentQuestDataFragment\\n          ...RewardTotalsDataFragment\\n          books\\n        }\\n        bookQuizResult {\\n          ...BookQuizResultDataFragment\\n        }\\n      }\\n      ... on NotAuthenticatedError {\\n        code\\n      }\\n      __typename\\n    }\\n  }\\n\"];\n/**\n * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.\n */\nexport function graphql(source: \"\\n  mutation CreatePeakQuizResult($input: CreatePeakQuizResultInput!) {\\n    createPeakQuizResult(input: $input) {\\n      ... on CreatePeakQuizResultSuccess {\\n        student {\\n          ...StudentAssignmentDataFragment\\n          ...StudentProgressDataFragment\\n          ...StudentQuestDataFragment\\n          ...RewardTotalsDataFragment\\n          ...PeakQuizSummariesDataFragment\\n        }\\n        peakQuizResult {\\n          ...PeakQuizResultDataFragment\\n        }\\n      }\\n      ... on NotAuthenticatedError {\\n        code\\n      }\\n      __typename\\n    }\\n  }\\n\"): (typeof documents)[\"\\n  mutation CreatePeakQuizResult($input: CreatePeakQuizResultInput!) {\\n    createPeakQuizResult(input: $input) {\\n      ... on CreatePeakQuizResultSuccess {\\n        student {\\n          ...StudentAssignmentDataFragment\\n          ...StudentProgressDataFragment\\n          ...StudentQuestDataFragment\\n          ...RewardTotalsDataFragment\\n          ...PeakQuizSummariesDataFragment\\n        }\\n        peakQuizResult {\\n          ...PeakQuizResultDataFragment\\n        }\\n      }\\n      ... on NotAuthenticatedError {\\n        code\\n      }\\n      __typename\\n    }\\n  }\\n\"];\n/**\n * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.\n */\nexport function graphql(source: \"\\n  mutation UpdateSelectedYeti($input: UpdateSelectedYetiInput!) {\\n    updateSelectedYeti(input: $input) {\\n      ... on UpdateSelectedYetiSuccess {\\n        student {\\n          id\\n          selectedYeti\\n        }\\n        yeti\\n      }\\n      ... on NotAuthenticatedError {\\n        code\\n      }\\n      __typename\\n    }\\n  }\\n\"): (typeof documents)[\"\\n  mutation UpdateSelectedYeti($input: UpdateSelectedYetiInput!) {\\n    updateSelectedYeti(input: $input) {\\n      ... on UpdateSelectedYetiSuccess {\\n        student {\\n          id\\n          selectedYeti\\n        }\\n        yeti\\n      }\\n      ... on NotAuthenticatedError {\\n        code\\n      }\\n      __typename\\n    }\\n  }\\n\"];\n/**\n * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.\n */\nexport function graphql(source: \"\\n  mutation PurchaseYeti($input: PurchaseYetiInput!) {\\n    purchaseYeti(input: $input) {\\n      ... on PurchaseYetiSuccess {\\n        student {\\n          id\\n          selectedYeti\\n          ...PurchasesDataFragment\\n          ...RewardTotalsDataFragment\\n        }\\n        yeti\\n      }\\n      ... on AlreadyPurchasedError {\\n        code\\n      }\\n      ... on NotEnoughCoinsError {\\n        code\\n      }\\n      ... on NotAuthenticatedError {\\n        code\\n      }\\n      __typename\\n    }\\n  }\\n\"): (typeof documents)[\"\\n  mutation PurchaseYeti($input: PurchaseYetiInput!) {\\n    purchaseYeti(input: $input) {\\n      ... on PurchaseYetiSuccess {\\n        student {\\n          id\\n          selectedYeti\\n          ...PurchasesDataFragment\\n          ...RewardTotalsDataFragment\\n        }\\n        yeti\\n      }\\n      ... on AlreadyPurchasedError {\\n        code\\n      }\\n      ... on NotEnoughCoinsError {\\n        code\\n      }\\n      ... on NotAuthenticatedError {\\n        code\\n      }\\n      __typename\\n    }\\n  }\\n\"];\n/**\n * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.\n */\nexport function graphql(source: \"\\n  query GetInitialAppData {\\n    student {\\n      ... on Student {\\n        ...StudentUserDataFragment\\n        ...StudentProgressDataFragment\\n        ...StudentQuestDataFragment\\n        ...StudentAssignmentDataFragment\\n        __typename\\n      }\\n    }\\n  }\\n\"): (typeof documents)[\"\\n  query GetInitialAppData {\\n    student {\\n      ... on Student {\\n        ...StudentUserDataFragment\\n        ...StudentProgressDataFragment\\n        ...StudentQuestDataFragment\\n        ...StudentAssignmentDataFragment\\n        __typename\\n      }\\n    }\\n  }\\n\"];\n/**\n * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.\n */\nexport function graphql(source: \"\\n  fragment YetiDataFragment on Yeti {\\n    id\\n    price\\n  }\\n\"): (typeof documents)[\"\\n  fragment YetiDataFragment on Yeti {\\n    id\\n    price\\n  }\\n\"];\n/**\n * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.\n */\nexport function graphql(source: \"\\n  query GetYetis {\\n    yetis {\\n      ...YetiDataFragment\\n    }\\n  }\\n\"): (typeof documents)[\"\\n  query GetYetis {\\n    yetis {\\n      ...YetiDataFragment\\n    }\\n  }\\n\"];\n/**\n * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.\n */\nexport function graphql(source: \"\\n  fragment ActivityData on Activity {\\n    activityType\\n    id\\n    manifestBundle\\n    manifestKey\\n    peak\\n    positionInPeak\\n  }\\n\"): (typeof documents)[\"\\n  fragment ActivityData on Activity {\\n    activityType\\n    id\\n    manifestBundle\\n    manifestKey\\n    peak\\n    positionInPeak\\n  }\\n\"];\n/**\n * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.\n */\nexport function graphql(source: \"\\n  query GetActivities {\\n    activities {\\n      ...ActivityData\\n    }\\n  }\\n\"): (typeof documents)[\"\\n  query GetActivities {\\n    activities {\\n      ...ActivityData\\n    }\\n  }\\n\"];\n/**\n * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.\n */\nexport function graphql(source: \"\\n  fragment StudentAssignmentDataFragment on Student {\\n    assignment {\\n      ... on AssignmentPeak {\\n        positionInPeak\\n        endAt\\n        id\\n        peak\\n        thumbnailUrl\\n        title\\n      }\\n      __typename\\n    }\\n  }\\n\"): (typeof documents)[\"\\n  fragment StudentAssignmentDataFragment on Student {\\n    assignment {\\n      ... on AssignmentPeak {\\n        positionInPeak\\n        endAt\\n        id\\n        peak\\n        thumbnailUrl\\n        title\\n      }\\n      __typename\\n    }\\n  }\\n\"];\n/**\n * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.\n */\nexport function graphql(source: \"\\n  query GetStudentAssignment {\\n    student {\\n      ... on Student {\\n        id\\n        ...StudentAssignmentDataFragment\\n      }\\n      ... on NotAuthenticatedError {\\n        code\\n      }\\n      __typename\\n    }\\n  }\\n\"): (typeof documents)[\"\\n  query GetStudentAssignment {\\n    student {\\n      ... on Student {\\n        id\\n        ...StudentAssignmentDataFragment\\n      }\\n      ... on NotAuthenticatedError {\\n        code\\n      }\\n      __typename\\n    }\\n  }\\n\"];\n/**\n * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.\n */\nexport function graphql(source: \"\\n  mutation ResetPeakProgress($input: StudentProgressPeakResetInput!) {\\n    studentProgressPeakReset(input: $input) {\\n      ... on StudentProgressPeakResetOutput {\\n        student {\\n          ...StudentProgressDataFragment\\n        }\\n      }\\n      __typename\\n    }\\n  }\\n\"): (typeof documents)[\"\\n  mutation ResetPeakProgress($input: StudentProgressPeakResetInput!) {\\n    studentProgressPeakReset(input: $input) {\\n      ... on StudentProgressPeakResetOutput {\\n        student {\\n          ...StudentProgressDataFragment\\n        }\\n      }\\n      __typename\\n    }\\n  }\\n\"];\n/**\n * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.\n */\nexport function graphql(source: \"\\n    mutation ResetPlacementTestProgress {\\n      studentProgressPlacementTestReset {\\n        ... on StudentProgressPlacementTestResetOutput {\\n          student {\\n            ...StudentProgressDataFragment\\n          }\\n        }\\n        __typename\\n      }\\n    }\\n  \"): (typeof documents)[\"\\n    mutation ResetPlacementTestProgress {\\n      studentProgressPlacementTestReset {\\n        ... on StudentProgressPlacementTestResetOutput {\\n          student {\\n            ...StudentProgressDataFragment\\n          }\\n        }\\n        __typename\\n      }\\n    }\\n  \"];\n/**\n * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.\n */\nexport function graphql(source: \"\\n  fragment StudentProgressDataFragment on Student {\\n    id\\n    progress {\\n      lessons {\\n        peak\\n        positionInPeak\\n        showPlacementTest\\n      }\\n    }\\n  }\\n\"): (typeof documents)[\"\\n  fragment StudentProgressDataFragment on Student {\\n    id\\n    progress {\\n      lessons {\\n        peak\\n        positionInPeak\\n        showPlacementTest\\n      }\\n    }\\n  }\\n\"];\n/**\n * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.\n */\nexport function graphql(source: \"\\n  query GetStudentProgress {\\n    student {\\n      ... on Student {\\n        ...StudentProgressDataFragment\\n      }\\n      ... on NotAuthenticatedError {\\n        code\\n      }\\n      __typename\\n    }\\n  }\\n\"): (typeof documents)[\"\\n  query GetStudentProgress {\\n    student {\\n      ... on Student {\\n        ...StudentProgressDataFragment\\n      }\\n      ... on NotAuthenticatedError {\\n        code\\n      }\\n      __typename\\n    }\\n  }\\n\"];\n/**\n * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.\n */\nexport function graphql(source: \"\\n  fragment StudentQuestDataFragment on Student {\\n    id\\n    quest {\\n      primaryGoal {\\n        __typename\\n        goalType: __typename\\n        ... on QuestGoalPeak {\\n          rewardAmount\\n          id\\n          peak\\n          progressCurrent\\n          progressTotal\\n          status\\n        }\\n      }\\n    }\\n  }\\n\"): (typeof documents)[\"\\n  fragment StudentQuestDataFragment on Student {\\n    id\\n    quest {\\n      primaryGoal {\\n        __typename\\n        goalType: __typename\\n        ... on QuestGoalPeak {\\n          rewardAmount\\n          id\\n          peak\\n          progressCurrent\\n          progressTotal\\n          status\\n        }\\n      }\\n    }\\n  }\\n\"];\n/**\n * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.\n */\nexport function graphql(source: \"\\n  query GetStudentQuest {\\n    student {\\n      ... on Student {\\n        ...StudentQuestDataFragment\\n      }\\n      ... on NotAuthenticatedError {\\n        code\\n      }\\n      __typename\\n    }\\n  }\\n\"): (typeof documents)[\"\\n  query GetStudentQuest {\\n    student {\\n      ... on Student {\\n        ...StudentQuestDataFragment\\n      }\\n      ... on NotAuthenticatedError {\\n        code\\n      }\\n      __typename\\n    }\\n  }\\n\"];\n/**\n * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.\n */\nexport function graphql(source: \"\\n  mutation StudentQuestGoalAcknowledgeComplete(\\n    $input: StudentQuestGoalAcknowledgeCompleteInput!\\n  ) {\\n    studentQuestGoalAcknowledgeComplete(input: $input) {\\n      ... on StudentQuestGoalAcknowledgeCompleteOutput {\\n        student {\\n          ...StudentQuestDataFragment\\n          ...StudentUserDataFragment\\n        }\\n      }\\n    }\\n  }\\n\"): (typeof documents)[\"\\n  mutation StudentQuestGoalAcknowledgeComplete(\\n    $input: StudentQuestGoalAcknowledgeCompleteInput!\\n  ) {\\n    studentQuestGoalAcknowledgeComplete(input: $input) {\\n      ... on StudentQuestGoalAcknowledgeCompleteOutput {\\n        student {\\n          ...StudentQuestDataFragment\\n          ...StudentUserDataFragment\\n        }\\n      }\\n    }\\n  }\\n\"];\n/**\n * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.\n */\nexport function graphql(source: \"\\n  fragment RewardTotalsDataFragment on Student {\\n    rewardTotals {\\n      bookGems\\n      coins\\n      soundGems\\n      wordGems\\n    }\\n  }\\n\"): (typeof documents)[\"\\n  fragment RewardTotalsDataFragment on Student {\\n    rewardTotals {\\n      bookGems\\n      coins\\n      soundGems\\n      wordGems\\n    }\\n  }\\n\"];\n/**\n * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.\n */\nexport function graphql(source: \"\\n  fragment PeakQuizSummariesDataFragment on Student {\\n    peakQuizSummaries {\\n      best\\n      certificate {\\n        colour\\n        created\\n        url\\n      }\\n      first\\n      id\\n    }\\n  }\\n\"): (typeof documents)[\"\\n  fragment PeakQuizSummariesDataFragment on Student {\\n    peakQuizSummaries {\\n      best\\n      certificate {\\n        colour\\n        created\\n        url\\n      }\\n      first\\n      id\\n    }\\n  }\\n\"];\n/**\n * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.\n */\nexport function graphql(source: \"\\n  fragment PurchasesDataFragment on Student {\\n    purchases {\\n      category\\n      item\\n      price\\n      uuid\\n    }\\n  }\\n\"): (typeof documents)[\"\\n  fragment PurchasesDataFragment on Student {\\n    purchases {\\n      category\\n      item\\n      price\\n      uuid\\n    }\\n  }\\n\"];\n/**\n * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.\n */\nexport function graphql(source: \"\\n  fragment SoundsDataFragment on Student {\\n    sounds {\\n      peak\\n      rewards\\n    }\\n  }\\n\"): (typeof documents)[\"\\n  fragment SoundsDataFragment on Student {\\n    sounds {\\n      peak\\n      rewards\\n    }\\n  }\\n\"];\n/**\n * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.\n */\nexport function graphql(source: \"\\n  fragment WordsDataFragment on Student {\\n    words {\\n      peak\\n      rewards\\n    }\\n  }\\n\"): (typeof documents)[\"\\n  fragment WordsDataFragment on Student {\\n    words {\\n      peak\\n      rewards\\n    }\\n  }\\n\"];\n/**\n * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.\n */\nexport function graphql(source: \"\\n  fragment StudentUserDataFragment on Student {\\n    id\\n    backgroundMusicDisabled\\n    books\\n    averageBestPeakQuizResult\\n    abbreviatedName\\n    accent\\n    firstName\\n    selectedYeti\\n    viewedIntroVideo\\n    rosterEnabled\\n    ...PeakQuizSummariesDataFragment\\n    ...PurchasesDataFragment\\n    ...RewardTotalsDataFragment\\n    ...SoundsDataFragment\\n    ...WordsDataFragment\\n  }\\n\"): (typeof documents)[\"\\n  fragment StudentUserDataFragment on Student {\\n    id\\n    backgroundMusicDisabled\\n    books\\n    averageBestPeakQuizResult\\n    abbreviatedName\\n    accent\\n    firstName\\n    selectedYeti\\n    viewedIntroVideo\\n    rosterEnabled\\n    ...PeakQuizSummariesDataFragment\\n    ...PurchasesDataFragment\\n    ...RewardTotalsDataFragment\\n    ...SoundsDataFragment\\n    ...WordsDataFragment\\n  }\\n\"];\n/**\n * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.\n */\nexport function graphql(source: \"\\n  query GetStudent {\\n    student {\\n      ... on Student {\\n        ...StudentUserDataFragment\\n      }\\n      ... on NotAuthenticatedError {\\n        code\\n      }\\n      __typename\\n    }\\n  }\\n\"): (typeof documents)[\"\\n  query GetStudent {\\n    student {\\n      ... on Student {\\n        ...StudentUserDataFragment\\n      }\\n      ... on NotAuthenticatedError {\\n        code\\n      }\\n      __typename\\n    }\\n  }\\n\"];\n\nexport function graphql(source: string) {\n  return (documents as any)[source] ?? {};\n}\n\nexport type DocumentType<TDocumentNode extends DocumentNode<any, any>> = TDocumentNode extends DocumentNode<  infer TType,  any>  ? TType  : never;","/* eslint-disable */\nimport type { TypedDocumentNode as DocumentNode } from '@graphql-typed-document-node/core';\nexport type Maybe<T> = T | null;\nexport type InputMaybe<T> = Maybe<T>;\nexport type Exact<T extends { [key: string]: unknown }> = { [K in keyof T]: T[K] };\nexport type MakeOptional<T, K extends keyof T> = Omit<T, K> & { [SubKey in K]?: Maybe<T[SubKey]> };\nexport type MakeMaybe<T, K extends keyof T> = Omit<T, K> & { [SubKey in K]: Maybe<T[SubKey]> };\nexport type MakeEmpty<T extends { [key: string]: unknown }, K extends keyof T> = { [_ in K]?: never };\nexport type Incremental<T> = T | { [P in keyof T]?: P extends ' $fragmentName' | '__typename' ? T[P] : never };\n/** All built-in and custom scalars, mapped to their actual values */\nexport type Scalars = {\n  ID: { input: string; output: string; }\n  String: { input: string; output: string; }\n  Boolean: { input: boolean; output: boolean; }\n  Int: { input: number; output: number; }\n  Float: { input: number; output: number; }\n  /**  The `DateTime` scalar type represents a date and time in the UTC timezone. The DateTime appears in a JSON response as an ISO8601 formatted string, including UTC timezone (\"Z\"). The parsed date and time string will be converted to UTC if there is an offset.  */\n  DateTime: { input: string; output: string; }\n  /** A URL */\n  Url: { input: string; output: string; }\n  /** A UUID (Universally Unique Identifier) in standard string format. */\n  Uuid: { input: string; output: string; }\n};\n\n/** A student accent. */\nexport enum Accent {\n  /** Australian accent. */\n  Au = 'AU',\n  /** Canadian accent. */\n  Ca = 'CA',\n  /** UK accent. */\n  Uk = 'UK',\n  /** US accent. */\n  Us = 'US'\n}\n\nexport enum ActivityType {\n  Book = 'BOOK',\n  Interactive = 'INTERACTIVE',\n  Quiz = 'QUIZ',\n  Unlock = 'UNLOCK',\n  Video = 'VIDEO'\n}\n\n/** Input needed to process the student completing an assignment task. */\nexport type CompleteAssignmentTaskInput = {\n  /** Unique identifier of the task within the assignment. */\n  assignmentTaskId: Scalars['ID']['input'];\n  /** Unique identifier of the assignment. */\n  assignmentUuid: Scalars['Uuid']['input'];\n};\n\n/** Input needed to process the student completing an activity. */\nexport type CreateActivityResultInput = {\n  /** Unique identifier of the activity, eg. 'stretch_it_out_3' */\n  activityId: Scalars['ID']['input'];\n  /**\n   * The assignment task that was completed.\n   * @deprecated Use `assignment_id` instead.\n   */\n  assignment?: InputMaybe<CompleteAssignmentTaskInput>;\n  /** Unique identifier of the assignment. */\n  assignmentId?: InputMaybe<Scalars['ID']['input']>;\n  /** Unique identifier of the attempt. */\n  attemptUuid: Scalars['ID']['input'];\n  /** Number of correct answers. */\n  correctCount?: InputMaybe<Scalars['Int']['input']>;\n  /** Total number of questions. */\n  totalCount?: InputMaybe<Scalars['Int']['input']>;\n};\n\n/** Input needed to process the student completing an activity. */\nexport type CreateBookQuizResultInput = {\n  /** Unique identifier of the book, eg. 'pat_taps'. */\n  activityId: Scalars['ID']['input'];\n  /**\n   * The assignment task that was completed.\n   * @deprecated Use `assignment_id` instead.\n   */\n  assignment?: InputMaybe<CompleteAssignmentTaskInput>;\n  /** Unique identifier of the assignment. */\n  assignmentId?: InputMaybe<Scalars['ID']['input']>;\n  /** Unique identifier of the attempt. */\n  attemptUuid: Scalars['Uuid']['input'];\n  /** List of correct answers. */\n  correctAnswers: Array<Scalars['String']['input']>;\n  /** List of incorrect answers. */\n  incorrectAnswers: Array<IncorrectAnswerInput>;\n  /** The peak number. */\n  peak: Scalars['Int']['input'];\n  /** Whether the student replayed the book with audio. */\n  replayWithAudio: Scalars['Boolean']['input'];\n};\n\n/** Input needed to process the student completing an activity. */\nexport type CreatePeakQuizResultInput = {\n  /** Unique identifier of the assignment. */\n  assignmentId?: InputMaybe<Scalars['ID']['input']>;\n  /** Unique identifier of the attempt. */\n  attemptUuid: Scalars['ID']['input'];\n  /** List of correct answers. */\n  correctAnswers: Array<Scalars['String']['input']>;\n  /** List of incorrect answers. */\n  incorrectAnswers: Array<IncorrectAnswerInput>;\n  /** The peak number. */\n  peak: Scalars['Int']['input'];\n  /** The student's name for the certificate. */\n  studentName: Scalars['String']['input'];\n};\n\n/** Input needed to process the student completing a placement test. */\nexport type CreatePlacementTestResultInput = {\n  /** Unique identifier of the attempt. */\n  attemptUuid: Scalars['Uuid']['input'];\n  /** The question number the student got up to. */\n  questionNumber: Scalars['Int']['input'];\n};\n\n/** Type of the feature flag */\nexport enum FeatureFlagType {\n  /** Boolean feature flag, value e.g. \"true\" */\n  Boolean = 'BOOLEAN',\n  /** JSON feature flag, value e.g. \"{\"key\": \"value\"}\" */\n  Json = 'JSON',\n  /** Number feature flag, value e.g. \"123\" */\n  Number = 'NUMBER',\n  /** String feature flag, value e.g. \"hello-world\" */\n  String = 'STRING'\n}\n\n/** How grandiose the house is. */\nexport enum HouseLevel {\n  /** A basic house. */\n  Basic = 'BASIC',\n  /** A house after the first treasure chest. */\n  Chest_1 = 'CHEST_1',\n  /** A house after the second treasure chest. */\n  Chest_2 = 'CHEST_2',\n  /** No house. */\n  None = 'NONE'\n}\n\nexport type IncorrectAnswerInput = {\n  /** The correct answer. */\n  correctAnswer: Scalars['String']['input'];\n  /** The student's answer. */\n  studentInput: Scalars['String']['input'];\n};\n\n/** The category of the purchase. */\nexport enum PurchaseCatgegory {\n  /** A yeti purchase. */\n  Yeti = 'YETI'\n}\n\n/** Input needed to to purchase a yeti. */\nexport type PurchaseYetiInput = {\n  /** Unique client identifier of the purchase. */\n  uuid: Scalars['Uuid']['input'];\n  /** Id of the yeti to purchase. */\n  yeti: Scalars['ID']['input'];\n};\n\n/** The status of the goal. */\nexport enum QuestGoalStatus {\n  /** The goal is complete. */\n  Complete = 'COMPLETE',\n  /** The goal is incomplete. */\n  Incomplete = 'INCOMPLETE',\n  /** The goal is complete and the student can collect their reward. */\n  ShowCompleteAlert = 'SHOW_COMPLETE_ALERT'\n}\n\n/** Input needed to process the student skipping a placement test. */\nexport type SkipPlacementTestResultInput = {\n  /** Unique identifier of the attempt. */\n  attemptUuid: Scalars['Uuid']['input'];\n};\n\n/** Arguments needed to reset the students progress to a peak position */\nexport type StudentProgressPeakResetInput = {\n  /** A peak number */\n  peak: Scalars['Int']['input'];\n  /** A position within the peak */\n  positionInPeak: Scalars['Int']['input'];\n};\n\n/** Arguments needed to store a record of a student completing an End of Unit Quiz */\nexport type StudentQuestGoalAcknowledgeCompleteInput = {\n  /** A unique id for a quest goal record */\n  goalId: Scalars['String']['input'];\n};\n\n/** Input needed to update the intro_video_viewed state of a student. */\nexport type UpdateIntroVideoInput = {\n  /** Has the student viewed the intro video? */\n  viewed: Scalars['Boolean']['input'];\n};\n\n/** Input needed to update the selected_yeti for a student. */\nexport type UpdateSelectedYetiInput = {\n  /** Student's selected yeti. */\n  yeti: Scalars['String']['input'];\n};\n\nexport type UpdateIntroVideoMutationVariables = Exact<{\n  input: UpdateIntroVideoInput;\n}>;\n\n\nexport type UpdateIntroVideoMutation = { __typename: 'RootMutationType', updateIntroVideo: { __typename: 'NotAuthenticatedError', code: string } | { __typename: 'UpdateIntroVideoSuccess', viewed: boolean, student: { __typename: 'Student', id: string, viewedIntroVideo: boolean } } };\n\nexport type PlacementTestResultDataFragmentFragment = { __typename: 'PlacementTestResult', attemptUuid: string, id: string, peak: number, questionNumber: number };\n\nexport type SkipPlacementTestResultDataFragmentFragment = { __typename: 'SkipPlacementTestResult', attemptUuid: string, id: string };\n\nexport type CreatePlacementTestResultMutationVariables = Exact<{\n  input: CreatePlacementTestResultInput;\n}>;\n\n\nexport type CreatePlacementTestResultMutation = { __typename: 'RootMutationType', createPlacementTestResult: { __typename: 'CreatePlacementTestResultSuccess', student: { __typename: 'Student', id: string, progress: { __typename: 'Progress', lessons: { __typename: 'LessonsProgress', peak: number, positionInPeak: number, showPlacementTest: boolean } }, quest?: { __typename: 'Quest', primaryGoal: { __typename: 'QuestGoalPeak', rewardAmount: number, id: string, peak: number, progressCurrent: number, progressTotal: number, status: QuestGoalStatus, goalType: 'QuestGoalPeak' } } | null }, placementTestResult: { __typename: 'PlacementTestResult', attemptUuid: string, id: string, peak: number, questionNumber: number } } | { __typename: 'NotAuthenticatedError', code: string } };\n\nexport type SkipPlacementTestResultMutationVariables = Exact<{\n  input: SkipPlacementTestResultInput;\n}>;\n\n\nexport type SkipPlacementTestResultMutation = { __typename: 'RootMutationType', skipPlacementTestResult: { __typename: 'NotAuthenticatedError', code: string } | { __typename: 'SkipPlacementTestResultSuccess', student: { __typename: 'Student', id: string, progress: { __typename: 'Progress', lessons: { __typename: 'LessonsProgress', peak: number, positionInPeak: number, showPlacementTest: boolean } }, quest?: { __typename: 'Quest', primaryGoal: { __typename: 'QuestGoalPeak', rewardAmount: number, id: string, peak: number, progressCurrent: number, progressTotal: number, status: QuestGoalStatus, goalType: 'QuestGoalPeak' } } | null }, skipPlacementTestResult: { __typename: 'SkipPlacementTestResult', attemptUuid: string, id: string } } };\n\nexport type ActivityResultDataFragmentFragment = { __typename: 'ActivityResult', activityId: string, coinsEarned: number, correctCount?: number | null, houseLevel: HouseLevel, id: string, passed?: boolean | null, peak: number, soundGemsEarned: number, soundsEarned: Array<string>, totalCount?: number | null, wordGemsEarned: number, wordsEarned: Array<string> };\n\nexport type BookQuizResultDataFragmentFragment = { __typename: 'BookQuizResult', activityId: string, attemptUuid: string, bookGemEarned: boolean, bookName: string, coinsEarned: number, correctAnswers: Array<string>, id: string, passed: boolean, peak: number, replayWithAudio: boolean, incorrectAnswers: Array<{ __typename: 'IncorrectAnswer', correctAnswer: string, studentInput: string }> };\n\nexport type PeakQuizResultDataFragmentFragment = { __typename: 'PeakQuizResult', certificateUrl?: string | null, coinsEarned: number, correctAnswers: Array<string>, id: string, passed: boolean, peak: number, progressed: boolean, incorrectAnswers: Array<{ __typename: 'IncorrectAnswer', correctAnswer: string, studentInput: string }> };\n\nexport type CreateActivityResultMutationVariables = Exact<{\n  input: CreateActivityResultInput;\n}>;\n\n\nexport type CreateActivityResultMutation = { __typename: 'RootMutationType', createActivityResult: { __typename: 'CreateActivityResultSuccess', student: { __typename: 'Student', id: string, assignment?: { __typename: 'AssignmentPeak', positionInPeak: number, endAt: string, id: string, peak: number, thumbnailUrl: string, title: string } | null, progress: { __typename: 'Progress', lessons: { __typename: 'LessonsProgress', peak: number, positionInPeak: number, showPlacementTest: boolean } }, quest?: { __typename: 'Quest', primaryGoal: { __typename: 'QuestGoalPeak', rewardAmount: number, id: string, peak: number, progressCurrent: number, progressTotal: number, status: QuestGoalStatus, goalType: 'QuestGoalPeak' } } | null, rewardTotals: { __typename: 'RewardTotals', bookGems: number, coins: number, soundGems: number, wordGems: number }, sounds: Array<{ __typename: 'PeakRewards', peak: number, rewards: Array<string> }>, words: Array<{ __typename: 'PeakRewards', peak: number, rewards: Array<string> }> }, activityResult: { __typename: 'ActivityResult', activityId: string, coinsEarned: number, correctCount?: number | null, houseLevel: HouseLevel, id: string, passed?: boolean | null, peak: number, soundGemsEarned: number, soundsEarned: Array<string>, totalCount?: number | null, wordGemsEarned: number, wordsEarned: Array<string> } } | { __typename: 'NotAuthenticatedError', code: string } };\n\nexport type CreateBookQuizResultMutationVariables = Exact<{\n  input: CreateBookQuizResultInput;\n}>;\n\n\nexport type CreateBookQuizResultMutation = { __typename: 'RootMutationType', createBookQuizResult: { __typename: 'CreateBookQuizResultSuccess', student: { __typename: 'Student', books: Array<string>, id: string, assignment?: { __typename: 'AssignmentPeak', positionInPeak: number, endAt: string, id: string, peak: number, thumbnailUrl: string, title: string } | null, progress: { __typename: 'Progress', lessons: { __typename: 'LessonsProgress', peak: number, positionInPeak: number, showPlacementTest: boolean } }, quest?: { __typename: 'Quest', primaryGoal: { __typename: 'QuestGoalPeak', rewardAmount: number, id: string, peak: number, progressCurrent: number, progressTotal: number, status: QuestGoalStatus, goalType: 'QuestGoalPeak' } } | null, rewardTotals: { __typename: 'RewardTotals', bookGems: number, coins: number, soundGems: number, wordGems: number } }, bookQuizResult: { __typename: 'BookQuizResult', activityId: string, attemptUuid: string, bookGemEarned: boolean, bookName: string, coinsEarned: number, correctAnswers: Array<string>, id: string, passed: boolean, peak: number, replayWithAudio: boolean, incorrectAnswers: Array<{ __typename: 'IncorrectAnswer', correctAnswer: string, studentInput: string }> } } | { __typename: 'NotAuthenticatedError', code: string } };\n\nexport type CreatePeakQuizResultMutationVariables = Exact<{\n  input: CreatePeakQuizResultInput;\n}>;\n\n\nexport type CreatePeakQuizResultMutation = { __typename: 'RootMutationType', createPeakQuizResult: { __typename: 'CreatePeakQuizResultSuccess', student: { __typename: 'Student', id: string, assignment?: { __typename: 'AssignmentPeak', positionInPeak: number, endAt: string, id: string, peak: number, thumbnailUrl: string, title: string } | null, progress: { __typename: 'Progress', lessons: { __typename: 'LessonsProgress', peak: number, positionInPeak: number, showPlacementTest: boolean } }, quest?: { __typename: 'Quest', primaryGoal: { __typename: 'QuestGoalPeak', rewardAmount: number, id: string, peak: number, progressCurrent: number, progressTotal: number, status: QuestGoalStatus, goalType: 'QuestGoalPeak' } } | null, rewardTotals: { __typename: 'RewardTotals', bookGems: number, coins: number, soundGems: number, wordGems: number }, peakQuizSummaries: Array<{ __typename: 'PeakQuizSummary', best: number, first: number, id: string, certificate?: { __typename: 'Certificate', colour: string, created: string, url: string } | null }> }, peakQuizResult: { __typename: 'PeakQuizResult', certificateUrl?: string | null, coinsEarned: number, correctAnswers: Array<string>, id: string, passed: boolean, peak: number, progressed: boolean, incorrectAnswers: Array<{ __typename: 'IncorrectAnswer', correctAnswer: string, studentInput: string }> } } | { __typename: 'NotAuthenticatedError', code: string } };\n\nexport type UpdateSelectedYetiMutationVariables = Exact<{\n  input: UpdateSelectedYetiInput;\n}>;\n\n\nexport type UpdateSelectedYetiMutation = { __typename: 'RootMutationType', updateSelectedYeti: { __typename: 'NotAuthenticatedError', code: string } | { __typename: 'UpdateSelectedYetiSuccess', yeti: string, student: { __typename: 'Student', id: string, selectedYeti: string } } };\n\nexport type PurchaseYetiMutationVariables = Exact<{\n  input: PurchaseYetiInput;\n}>;\n\n\nexport type PurchaseYetiMutation = { __typename: 'RootMutationType', purchaseYeti: { __typename: 'AlreadyPurchasedError', code: string } | { __typename: 'NotAuthenticatedError', code: string } | { __typename: 'NotEnoughCoinsError', code: string } | { __typename: 'PurchaseYetiSuccess', yeti: string, student: { __typename: 'Student', id: string, selectedYeti: string, purchases: Array<{ __typename: 'Purchase', category: PurchaseCatgegory, item: string, price: number, uuid: string }>, rewardTotals: { __typename: 'RewardTotals', bookGems: number, coins: number, soundGems: number, wordGems: number } } } };\n\nexport type GetInitialAppDataQueryVariables = Exact<{ [key: string]: never; }>;\n\n\nexport type GetInitialAppDataQuery = { __typename: 'RootQueryType', student: { __typename: 'NotAuthenticatedError' } | { __typename: 'Student', id: string, backgroundMusicDisabled: boolean, books: Array<string>, averageBestPeakQuizResult?: number | null, abbreviatedName: string, accent: Accent, firstName: string, selectedYeti: string, viewedIntroVideo: boolean, rosterEnabled: boolean, progress: { __typename: 'Progress', lessons: { __typename: 'LessonsProgress', peak: number, positionInPeak: number, showPlacementTest: boolean } }, quest?: { __typename: 'Quest', primaryGoal: { __typename: 'QuestGoalPeak', rewardAmount: number, id: string, peak: number, progressCurrent: number, progressTotal: number, status: QuestGoalStatus, goalType: 'QuestGoalPeak' } } | null, assignment?: { __typename: 'AssignmentPeak', positionInPeak: number, endAt: string, id: string, peak: number, thumbnailUrl: string, title: string } | null, peakQuizSummaries: Array<{ __typename: 'PeakQuizSummary', best: number, first: number, id: string, certificate?: { __typename: 'Certificate', colour: string, created: string, url: string } | null }>, purchases: Array<{ __typename: 'Purchase', category: PurchaseCatgegory, item: string, price: number, uuid: string }>, rewardTotals: { __typename: 'RewardTotals', bookGems: number, coins: number, soundGems: number, wordGems: number }, sounds: Array<{ __typename: 'PeakRewards', peak: number, rewards: Array<string> }>, words: Array<{ __typename: 'PeakRewards', peak: number, rewards: Array<string> }> } };\n\nexport type YetiDataFragmentFragment = { __typename: 'Yeti', id: string, price: number };\n\nexport type GetYetisQueryVariables = Exact<{ [key: string]: never; }>;\n\n\nexport type GetYetisQuery = { __typename: 'RootQueryType', yetis: Array<{ __typename: 'Yeti', id: string, price: number }> };\n\nexport type ActivityDataFragment = { __typename: 'Activity', activityType: ActivityType, id: string, manifestBundle: string, manifestKey: string, peak: number, positionInPeak: number };\n\nexport type GetActivitiesQueryVariables = Exact<{ [key: string]: never; }>;\n\n\nexport type GetActivitiesQuery = { __typename: 'RootQueryType', activities: Array<{ __typename: 'Activity', activityType: ActivityType, id: string, manifestBundle: string, manifestKey: string, peak: number, positionInPeak: number }> };\n\nexport type StudentAssignmentDataFragmentFragment = { __typename: 'Student', assignment?: { __typename: 'AssignmentPeak', positionInPeak: number, endAt: string, id: string, peak: number, thumbnailUrl: string, title: string } | null };\n\nexport type GetStudentAssignmentQueryVariables = Exact<{ [key: string]: never; }>;\n\n\nexport type GetStudentAssignmentQuery = { __typename: 'RootQueryType', student: { __typename: 'NotAuthenticatedError', code: string } | { __typename: 'Student', id: string, assignment?: { __typename: 'AssignmentPeak', positionInPeak: number, endAt: string, id: string, peak: number, thumbnailUrl: string, title: string } | null } };\n\nexport type ResetPeakProgressMutationVariables = Exact<{\n  input: StudentProgressPeakResetInput;\n}>;\n\n\nexport type ResetPeakProgressMutation = { __typename: 'RootMutationType', studentProgressPeakReset: { __typename: 'NotAuthenticatedError' } | { __typename: 'StudentProgressPeakResetOutput', student: { __typename: 'Student', id: string, progress: { __typename: 'Progress', lessons: { __typename: 'LessonsProgress', peak: number, positionInPeak: number, showPlacementTest: boolean } } } } };\n\nexport type ResetPlacementTestProgressMutationVariables = Exact<{ [key: string]: never; }>;\n\n\nexport type ResetPlacementTestProgressMutation = { __typename: 'RootMutationType', studentProgressPlacementTestReset: { __typename: 'NotAuthenticatedError' } | { __typename: 'StudentProgressPlacementTestResetOutput', student: { __typename: 'Student', id: string, progress: { __typename: 'Progress', lessons: { __typename: 'LessonsProgress', peak: number, positionInPeak: number, showPlacementTest: boolean } } } } };\n\nexport type StudentProgressDataFragmentFragment = { __typename: 'Student', id: string, progress: { __typename: 'Progress', lessons: { __typename: 'LessonsProgress', peak: number, positionInPeak: number, showPlacementTest: boolean } } };\n\nexport type GetStudentProgressQueryVariables = Exact<{ [key: string]: never; }>;\n\n\nexport type GetStudentProgressQuery = { __typename: 'RootQueryType', student: { __typename: 'NotAuthenticatedError', code: string } | { __typename: 'Student', id: string, progress: { __typename: 'Progress', lessons: { __typename: 'LessonsProgress', peak: number, positionInPeak: number, showPlacementTest: boolean } } } };\n\nexport type StudentQuestDataFragmentFragment = { __typename: 'Student', id: string, quest?: { __typename: 'Quest', primaryGoal: { __typename: 'QuestGoalPeak', rewardAmount: number, id: string, peak: number, progressCurrent: number, progressTotal: number, status: QuestGoalStatus, goalType: 'QuestGoalPeak' } } | null };\n\nexport type GetStudentQuestQueryVariables = Exact<{ [key: string]: never; }>;\n\n\nexport type GetStudentQuestQuery = { __typename: 'RootQueryType', student: { __typename: 'NotAuthenticatedError', code: string } | { __typename: 'Student', id: string, quest?: { __typename: 'Quest', primaryGoal: { __typename: 'QuestGoalPeak', rewardAmount: number, id: string, peak: number, progressCurrent: number, progressTotal: number, status: QuestGoalStatus, goalType: 'QuestGoalPeak' } } | null } };\n\nexport type StudentQuestGoalAcknowledgeCompleteMutationVariables = Exact<{\n  input: StudentQuestGoalAcknowledgeCompleteInput;\n}>;\n\n\nexport type StudentQuestGoalAcknowledgeCompleteMutation = { __typename: 'RootMutationType', studentQuestGoalAcknowledgeComplete: { __typename: 'NotAuthenticatedError' } | { __typename: 'StudentQuestGoalAcknowledgeCompleteOutput', student: { __typename: 'Student', id: string, backgroundMusicDisabled: boolean, books: Array<string>, averageBestPeakQuizResult?: number | null, abbreviatedName: string, accent: Accent, firstName: string, selectedYeti: string, viewedIntroVideo: boolean, rosterEnabled: boolean, quest?: { __typename: 'Quest', primaryGoal: { __typename: 'QuestGoalPeak', rewardAmount: number, id: string, peak: number, progressCurrent: number, progressTotal: number, status: QuestGoalStatus, goalType: 'QuestGoalPeak' } } | null, peakQuizSummaries: Array<{ __typename: 'PeakQuizSummary', best: number, first: number, id: string, certificate?: { __typename: 'Certificate', colour: string, created: string, url: string } | null }>, purchases: Array<{ __typename: 'Purchase', category: PurchaseCatgegory, item: string, price: number, uuid: string }>, rewardTotals: { __typename: 'RewardTotals', bookGems: number, coins: number, soundGems: number, wordGems: number }, sounds: Array<{ __typename: 'PeakRewards', peak: number, rewards: Array<string> }>, words: Array<{ __typename: 'PeakRewards', peak: number, rewards: Array<string> }> } } };\n\nexport type RewardTotalsDataFragmentFragment = { __typename: 'Student', rewardTotals: { __typename: 'RewardTotals', bookGems: number, coins: number, soundGems: number, wordGems: number } };\n\nexport type PeakQuizSummariesDataFragmentFragment = { __typename: 'Student', peakQuizSummaries: Array<{ __typename: 'PeakQuizSummary', best: number, first: number, id: string, certificate?: { __typename: 'Certificate', colour: string, created: string, url: string } | null }> };\n\nexport type PurchasesDataFragmentFragment = { __typename: 'Student', purchases: Array<{ __typename: 'Purchase', category: PurchaseCatgegory, item: string, price: number, uuid: string }> };\n\nexport type SoundsDataFragmentFragment = { __typename: 'Student', sounds: Array<{ __typename: 'PeakRewards', peak: number, rewards: Array<string> }> };\n\nexport type WordsDataFragmentFragment = { __typename: 'Student', words: Array<{ __typename: 'PeakRewards', peak: number, rewards: Array<string> }> };\n\nexport type StudentUserDataFragmentFragment = { __typename: 'Student', id: string, backgroundMusicDisabled: boolean, books: Array<string>, averageBestPeakQuizResult?: number | null, abbreviatedName: string, accent: Accent, firstName: string, selectedYeti: string, viewedIntroVideo: boolean, rosterEnabled: boolean, peakQuizSummaries: Array<{ __typename: 'PeakQuizSummary', best: number, first: number, id: string, certificate?: { __typename: 'Certificate', colour: string, created: string, url: string } | null }>, purchases: Array<{ __typename: 'Purchase', category: PurchaseCatgegory, item: string, price: number, uuid: string }>, rewardTotals: { __typename: 'RewardTotals', bookGems: number, coins: number, soundGems: number, wordGems: number }, sounds: Array<{ __typename: 'PeakRewards', peak: number, rewards: Array<string> }>, words: Array<{ __typename: 'PeakRewards', peak: number, rewards: Array<string> }> };\n\nexport type GetStudentQueryVariables = Exact<{ [key: string]: never; }>;\n\n\nexport type GetStudentQuery = { __typename: 'RootQueryType', student: { __typename: 'NotAuthenticatedError', code: string } | { __typename: 'Student', id: string, backgroundMusicDisabled: boolean, books: Array<string>, averageBestPeakQuizResult?: number | null, abbreviatedName: string, accent: Accent, firstName: string, selectedYeti: string, viewedIntroVideo: boolean, rosterEnabled: boolean, peakQuizSummaries: Array<{ __typename: 'PeakQuizSummary', best: number, first: number, id: string, certificate?: { __typename: 'Certificate', colour: string, created: string, url: string } | null }>, purchases: Array<{ __typename: 'Purchase', category: PurchaseCatgegory, item: string, price: number, uuid: string }>, rewardTotals: { __typename: 'RewardTotals', bookGems: number, coins: number, soundGems: number, wordGems: number }, sounds: Array<{ __typename: 'PeakRewards', peak: number, rewards: Array<string> }>, words: Array<{ __typename: 'PeakRewards', peak: number, rewards: Array<string> }> } };\n\nexport const PlacementTestResultDataFragmentFragmentDoc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"PlacementTestResultDataFragment\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"PlacementTestResult\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"attemptUuid\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"peak\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"questionNumber\"}}]}}]} as unknown as DocumentNode<PlacementTestResultDataFragmentFragment, unknown>;\nexport const SkipPlacementTestResultDataFragmentFragmentDoc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"SkipPlacementTestResultDataFragment\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"SkipPlacementTestResult\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"attemptUuid\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}}]}}]} as unknown as DocumentNode<SkipPlacementTestResultDataFragmentFragment, unknown>;\nexport const ActivityResultDataFragmentFragmentDoc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"ActivityResultDataFragment\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ActivityResult\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"activityId\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"coinsEarned\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"correctCount\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"houseLevel\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"passed\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"peak\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"soundGemsEarned\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"soundsEarned\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"totalCount\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"wordGemsEarned\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"wordsEarned\"}}]}}]} as unknown as DocumentNode<ActivityResultDataFragmentFragment, unknown>;\nexport const BookQuizResultDataFragmentFragmentDoc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"BookQuizResultDataFragment\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"BookQuizResult\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"activityId\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"attemptUuid\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"bookGemEarned\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"bookName\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"coinsEarned\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"correctAnswers\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"incorrectAnswers\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"correctAnswer\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"studentInput\"}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"passed\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"peak\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"replayWithAudio\"}}]}}]} as unknown as DocumentNode<BookQuizResultDataFragmentFragment, unknown>;\nexport const PeakQuizResultDataFragmentFragmentDoc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"PeakQuizResultDataFragment\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"PeakQuizResult\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"certificateUrl\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"coinsEarned\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"correctAnswers\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"incorrectAnswers\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"correctAnswer\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"studentInput\"}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"passed\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"peak\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"progressed\"}}]}}]} as unknown as DocumentNode<PeakQuizResultDataFragmentFragment, unknown>;\nexport const YetiDataFragmentFragmentDoc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"YetiDataFragment\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Yeti\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"price\"}}]}}]} as unknown as DocumentNode<YetiDataFragmentFragment, unknown>;\nexport const ActivityDataFragmentDoc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"ActivityData\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Activity\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"activityType\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"manifestBundle\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"manifestKey\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"peak\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"positionInPeak\"}}]}}]} as unknown as DocumentNode<ActivityDataFragment, unknown>;\nexport const StudentAssignmentDataFragmentFragmentDoc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"StudentAssignmentDataFragment\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Student\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"assignment\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"AssignmentPeak\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"positionInPeak\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"endAt\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"peak\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"thumbnailUrl\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"title\"}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"__typename\"}}]}}]}}]} as unknown as DocumentNode<StudentAssignmentDataFragmentFragment, unknown>;\nexport const StudentProgressDataFragmentFragmentDoc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"StudentProgressDataFragment\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Student\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"progress\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"lessons\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"peak\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"positionInPeak\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"showPlacementTest\"}}]}}]}}]}}]} as unknown as DocumentNode<StudentProgressDataFragmentFragment, unknown>;\nexport const StudentQuestDataFragmentFragmentDoc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"StudentQuestDataFragment\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Student\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"quest\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"primaryGoal\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"__typename\"}},{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"goalType\"},\"name\":{\"kind\":\"Name\",\"value\":\"__typename\"}},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"QuestGoalPeak\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"rewardAmount\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"peak\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"progressCurrent\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"progressTotal\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"status\"}}]}}]}}]}}]}}]} as unknown as DocumentNode<StudentQuestDataFragmentFragment, unknown>;\nexport const PeakQuizSummariesDataFragmentFragmentDoc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"PeakQuizSummariesDataFragment\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Student\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"peakQuizSummaries\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"best\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"certificate\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"colour\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"created\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"url\"}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"first\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}}]}}]}}]} as unknown as DocumentNode<PeakQuizSummariesDataFragmentFragment, unknown>;\nexport const PurchasesDataFragmentFragmentDoc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"PurchasesDataFragment\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Student\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"purchases\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"category\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"item\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"price\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"uuid\"}}]}}]}}]} as unknown as DocumentNode<PurchasesDataFragmentFragment, unknown>;\nexport const RewardTotalsDataFragmentFragmentDoc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"RewardTotalsDataFragment\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Student\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"rewardTotals\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"bookGems\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"coins\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"soundGems\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"wordGems\"}}]}}]}}]} as unknown as DocumentNode<RewardTotalsDataFragmentFragment, unknown>;\nexport const SoundsDataFragmentFragmentDoc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"SoundsDataFragment\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Student\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"sounds\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"peak\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"rewards\"}}]}}]}}]} as unknown as DocumentNode<SoundsDataFragmentFragment, unknown>;\nexport const WordsDataFragmentFragmentDoc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"WordsDataFragment\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Student\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"words\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"peak\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"rewards\"}}]}}]}}]} as unknown as DocumentNode<WordsDataFragmentFragment, unknown>;\nexport const StudentUserDataFragmentFragmentDoc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"StudentUserDataFragment\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Student\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"backgroundMusicDisabled\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"books\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"averageBestPeakQuizResult\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"abbreviatedName\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"accent\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"firstName\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"selectedYeti\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"viewedIntroVideo\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"rosterEnabled\"}},{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"PeakQuizSummariesDataFragment\"}},{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"PurchasesDataFragment\"}},{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"RewardTotalsDataFragment\"}},{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"SoundsDataFragment\"}},{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"WordsDataFragment\"}}]}},{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"PeakQuizSummariesDataFragment\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Student\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"peakQuizSummaries\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"best\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"certificate\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"colour\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"created\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"url\"}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"first\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}}]}}]}},{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"PurchasesDataFragment\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Student\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"purchases\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"category\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"item\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"price\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"uuid\"}}]}}]}},{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"RewardTotalsDataFragment\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Student\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"rewardTotals\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"bookGems\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"coins\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"soundGems\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"wordGems\"}}]}}]}},{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"SoundsDataFragment\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Student\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"sounds\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"peak\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"rewards\"}}]}}]}},{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"WordsDataFragment\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Student\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"words\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"peak\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"rewards\"}}]}}]}}]} as unknown as DocumentNode<StudentUserDataFragmentFragment, unknown>;\nexport const UpdateIntroVideoDocument = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"mutation\",\"name\":{\"kind\":\"Name\",\"value\":\"UpdateIntroVideo\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"UpdateIntroVideoInput\"}}}}],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"updateIntroVideo\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}}}],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"UpdateIntroVideoSuccess\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"student\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"viewedIntroVideo\"}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"viewed\"}}]}},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"NotAuthenticatedError\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"code\"}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"__typename\"}}]}}]}}]} as unknown as DocumentNode<UpdateIntroVideoMutation, UpdateIntroVideoMutationVariables>;\nexport const CreatePlacementTestResultDocument = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"mutation\",\"name\":{\"kind\":\"Name\",\"value\":\"CreatePlacementTestResult\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"CreatePlacementTestResultInput\"}}}}],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"createPlacementTestResult\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}}}],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"CreatePlacementTestResultSuccess\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"student\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"StudentProgressDataFragment\"}},{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"StudentQuestDataFragment\"}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"placementTestResult\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"PlacementTestResultDataFragment\"}}]}}]}},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"NotAuthenticatedError\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"code\"}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"__typename\"}}]}}]}},{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"StudentProgressDataFragment\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Student\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"progress\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"lessons\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"peak\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"positionInPeak\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"showPlacementTest\"}}]}}]}}]}},{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"StudentQuestDataFragment\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Student\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"quest\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"primaryGoal\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"__typename\"}},{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"goalType\"},\"name\":{\"kind\":\"Name\",\"value\":\"__typename\"}},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"QuestGoalPeak\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"rewardAmount\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"peak\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"progressCurrent\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"progressTotal\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"status\"}}]}}]}}]}}]}},{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"PlacementTestResultDataFragment\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"PlacementTestResult\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"attemptUuid\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"peak\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"questionNumber\"}}]}}]} as unknown as DocumentNode<CreatePlacementTestResultMutation, CreatePlacementTestResultMutationVariables>;\nexport const SkipPlacementTestResultDocument = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"mutation\",\"name\":{\"kind\":\"Name\",\"value\":\"SkipPlacementTestResult\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"SkipPlacementTestResultInput\"}}}}],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"skipPlacementTestResult\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}}}],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"SkipPlacementTestResultSuccess\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"student\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"StudentProgressDataFragment\"}},{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"StudentQuestDataFragment\"}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"skipPlacementTestResult\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"SkipPlacementTestResultDataFragment\"}}]}}]}},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"NotAuthenticatedError\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"code\"}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"__typename\"}}]}}]}},{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"StudentProgressDataFragment\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Student\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"progress\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"lessons\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"peak\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"positionInPeak\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"showPlacementTest\"}}]}}]}}]}},{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"StudentQuestDataFragment\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Student\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"quest\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"primaryGoal\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"__typename\"}},{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"goalType\"},\"name\":{\"kind\":\"Name\",\"value\":\"__typename\"}},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"QuestGoalPeak\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"rewardAmount\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"peak\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"progressCurrent\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"progressTotal\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"status\"}}]}}]}}]}}]}},{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"SkipPlacementTestResultDataFragment\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"SkipPlacementTestResult\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"attemptUuid\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}}]}}]} as unknown as DocumentNode<SkipPlacementTestResultMutation, SkipPlacementTestResultMutationVariables>;\nexport const CreateActivityResultDocument = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"mutation\",\"name\":{\"kind\":\"Name\",\"value\":\"CreateActivityResult\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"CreateActivityResultInput\"}}}}],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"createActivityResult\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}}}],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"CreateActivityResultSuccess\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"student\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"StudentAssignmentDataFragment\"}},{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"StudentProgressDataFragment\"}},{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"StudentQuestDataFragment\"}},{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"RewardTotalsDataFragment\"}},{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"SoundsDataFragment\"}},{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"WordsDataFragment\"}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"activityResult\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"ActivityResultDataFragment\"}}]}}]}},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"NotAuthenticatedError\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"code\"}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"__typename\"}}]}}]}},{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"StudentAssignmentDataFragment\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Student\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"assignment\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"AssignmentPeak\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"positionInPeak\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"endAt\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"peak\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"thumbnailUrl\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"title\"}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"__typename\"}}]}}]}},{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"StudentProgressDataFragment\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Student\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"progress\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"lessons\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"peak\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"positionInPeak\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"showPlacementTest\"}}]}}]}}]}},{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"StudentQuestDataFragment\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Student\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"quest\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"primaryGoal\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"__typename\"}},{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"goalType\"},\"name\":{\"kind\":\"Name\",\"value\":\"__typename\"}},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"QuestGoalPeak\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"rewardAmount\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"peak\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"progressCurrent\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"progressTotal\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"status\"}}]}}]}}]}}]}},{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"RewardTotalsDataFragment\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Student\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"rewardTotals\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"bookGems\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"coins\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"soundGems\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"wordGems\"}}]}}]}},{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"SoundsDataFragment\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Student\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"sounds\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"peak\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"rewards\"}}]}}]}},{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"WordsDataFragment\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Student\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"words\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"peak\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"rewards\"}}]}}]}},{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"ActivityResultDataFragment\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ActivityResult\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"activityId\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"coinsEarned\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"correctCount\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"houseLevel\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"passed\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"peak\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"soundGemsEarned\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"soundsEarned\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"totalCount\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"wordGemsEarned\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"wordsEarned\"}}]}}]} as unknown as DocumentNode<CreateActivityResultMutation, CreateActivityResultMutationVariables>;\nexport const CreateBookQuizResultDocument = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"mutation\",\"name\":{\"kind\":\"Name\",\"value\":\"CreateBookQuizResult\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"CreateBookQuizResultInput\"}}}}],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"createBookQuizResult\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}}}],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"CreateBookQuizResultSuccess\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"student\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"StudentAssignmentDataFragment\"}},{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"StudentProgressDataFragment\"}},{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"StudentQuestDataFragment\"}},{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"RewardTotalsDataFragment\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"books\"}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"bookQuizResult\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"BookQuizResultDataFragment\"}}]}}]}},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"NotAuthenticatedError\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"code\"}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"__typename\"}}]}}]}},{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"StudentAssignmentDataFragment\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Student\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"assignment\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"AssignmentPeak\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"positionInPeak\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"endAt\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"peak\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"thumbnailUrl\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"title\"}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"__typename\"}}]}}]}},{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"StudentProgressDataFragment\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Student\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"progress\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"lessons\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"peak\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"positionInPeak\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"showPlacementTest\"}}]}}]}}]}},{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"StudentQuestDataFragment\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Student\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"quest\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"primaryGoal\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"__typename\"}},{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"goalType\"},\"name\":{\"kind\":\"Name\",\"value\":\"__typename\"}},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"QuestGoalPeak\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"rewardAmount\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"peak\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"progressCurrent\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"progressTotal\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"status\"}}]}}]}}]}}]}},{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"RewardTotalsDataFragment\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Student\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"rewardTotals\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"bookGems\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"coins\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"soundGems\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"wordGems\"}}]}}]}},{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"BookQuizResultDataFragment\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"BookQuizResult\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"activityId\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"attemptUuid\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"bookGemEarned\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"bookName\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"coinsEarned\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"correctAnswers\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"incorrectAnswers\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"correctAnswer\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"studentInput\"}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"passed\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"peak\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"replayWithAudio\"}}]}}]} as unknown as DocumentNode<CreateBookQuizResultMutation, CreateBookQuizResultMutationVariables>;\nexport const CreatePeakQuizResultDocument = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"mutation\",\"name\":{\"kind\":\"Name\",\"value\":\"CreatePeakQuizResult\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"CreatePeakQuizResultInput\"}}}}],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"createPeakQuizResult\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}}}],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"CreatePeakQuizResultSuccess\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"student\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"StudentAssignmentDataFragment\"}},{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"StudentProgressDataFragment\"}},{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"StudentQuestDataFragment\"}},{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"RewardTotalsDataFragment\"}},{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"PeakQuizSummariesDataFragment\"}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"peakQuizResult\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"PeakQuizResultDataFragment\"}}]}}]}},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"NotAuthenticatedError\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"code\"}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"__typename\"}}]}}]}},{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"StudentAssignmentDataFragment\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Student\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"assignment\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"AssignmentPeak\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"positionInPeak\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"endAt\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"peak\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"thumbnailUrl\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"title\"}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"__typename\"}}]}}]}},{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"StudentProgressDataFragment\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Student\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"progress\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"lessons\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"peak\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"positionInPeak\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"showPlacementTest\"}}]}}]}}]}},{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"StudentQuestDataFragment\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Student\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"quest\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"primaryGoal\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"__typename\"}},{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"goalType\"},\"name\":{\"kind\":\"Name\",\"value\":\"__typename\"}},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"QuestGoalPeak\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"rewardAmount\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"peak\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"progressCurrent\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"progressTotal\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"status\"}}]}}]}}]}}]}},{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"RewardTotalsDataFragment\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Student\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"rewardTotals\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"bookGems\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"coins\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"soundGems\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"wordGems\"}}]}}]}},{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"PeakQuizSummariesDataFragment\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Student\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"peakQuizSummaries\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"best\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"certificate\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"colour\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"created\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"url\"}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"first\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}}]}}]}},{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"PeakQuizResultDataFragment\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"PeakQuizResult\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"certificateUrl\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"coinsEarned\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"correctAnswers\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"incorrectAnswers\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"correctAnswer\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"studentInput\"}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"passed\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"peak\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"progressed\"}}]}}]} as unknown as DocumentNode<CreatePeakQuizResultMutation, CreatePeakQuizResultMutationVariables>;\nexport const UpdateSelectedYetiDocument = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"mutation\",\"name\":{\"kind\":\"Name\",\"value\":\"UpdateSelectedYeti\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"UpdateSelectedYetiInput\"}}}}],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"updateSelectedYeti\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}}}],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"UpdateSelectedYetiSuccess\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"student\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"selectedYeti\"}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"yeti\"}}]}},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"NotAuthenticatedError\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"code\"}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"__typename\"}}]}}]}}]} as unknown as DocumentNode<UpdateSelectedYetiMutation, UpdateSelectedYetiMutationVariables>;\nexport const PurchaseYetiDocument = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"mutation\",\"name\":{\"kind\":\"Name\",\"value\":\"PurchaseYeti\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"PurchaseYetiInput\"}}}}],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"purchaseYeti\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}}}],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"PurchaseYetiSuccess\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"student\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"selectedYeti\"}},{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"PurchasesDataFragment\"}},{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"RewardTotalsDataFragment\"}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"yeti\"}}]}},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"AlreadyPurchasedError\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"code\"}}]}},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"NotEnoughCoinsError\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"code\"}}]}},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"NotAuthenticatedError\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"code\"}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"__typename\"}}]}}]}},{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"PurchasesDataFragment\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Student\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"purchases\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"category\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"item\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"price\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"uuid\"}}]}}]}},{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"RewardTotalsDataFragment\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Student\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"rewardTotals\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"bookGems\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"coins\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"soundGems\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"wordGems\"}}]}}]}}]} as unknown as DocumentNode<PurchaseYetiMutation, PurchaseYetiMutationVariables>;\nexport const GetInitialAppDataDocument = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"GetInitialAppData\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"student\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Student\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"StudentUserDataFragment\"}},{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"StudentProgressDataFragment\"}},{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"StudentQuestDataFragment\"}},{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"StudentAssignmentDataFragment\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"__typename\"}}]}}]}}]}},{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"PeakQuizSummariesDataFragment\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Student\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"peakQuizSummaries\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"best\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"certificate\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"colour\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"created\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"url\"}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"first\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}}]}}]}},{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"PurchasesDataFragment\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Student\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"purchases\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"category\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"item\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"price\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"uuid\"}}]}}]}},{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"RewardTotalsDataFragment\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Student\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"rewardTotals\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"bookGems\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"coins\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"soundGems\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"wordGems\"}}]}}]}},{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"SoundsDataFragment\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Student\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"sounds\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"peak\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"rewards\"}}]}}]}},{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"WordsDataFragment\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Student\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"words\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"peak\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"rewards\"}}]}}]}},{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"StudentUserDataFragment\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Student\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"backgroundMusicDisabled\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"books\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"averageBestPeakQuizResult\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"abbreviatedName\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"accent\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"firstName\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"selectedYeti\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"viewedIntroVideo\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"rosterEnabled\"}},{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"PeakQuizSummariesDataFragment\"}},{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"PurchasesDataFragment\"}},{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"RewardTotalsDataFragment\"}},{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"SoundsDataFragment\"}},{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"WordsDataFragment\"}}]}},{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"StudentProgressDataFragment\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Student\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"progress\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"lessons\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"peak\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"positionInPeak\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"showPlacementTest\"}}]}}]}}]}},{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"StudentQuestDataFragment\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Student\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"quest\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"primaryGoal\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"__typename\"}},{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"goalType\"},\"name\":{\"kind\":\"Name\",\"value\":\"__typename\"}},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"QuestGoalPeak\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"rewardAmount\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"peak\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"progressCurrent\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"progressTotal\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"status\"}}]}}]}}]}}]}},{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"StudentAssignmentDataFragment\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Student\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"assignment\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"AssignmentPeak\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"positionInPeak\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"endAt\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"peak\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"thumbnailUrl\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"title\"}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"__typename\"}}]}}]}}]} as unknown as DocumentNode<GetInitialAppDataQuery, GetInitialAppDataQueryVariables>;\nexport const GetYetisDocument = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"GetYetis\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"yetis\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"YetiDataFragment\"}}]}}]}},{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"YetiDataFragment\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Yeti\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"price\"}}]}}]} as unknown as DocumentNode<GetYetisQuery, GetYetisQueryVariables>;\nexport const GetActivitiesDocument = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"GetActivities\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"activities\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"ActivityData\"}}]}}]}},{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"ActivityData\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Activity\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"activityType\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"manifestBundle\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"manifestKey\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"peak\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"positionInPeak\"}}]}}]} as unknown as DocumentNode<GetActivitiesQuery, GetActivitiesQueryVariables>;\nexport const GetStudentAssignmentDocument = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"GetStudentAssignment\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"student\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Student\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"StudentAssignmentDataFragment\"}}]}},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"NotAuthenticatedError\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"code\"}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"__typename\"}}]}}]}},{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"StudentAssignmentDataFragment\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Student\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"assignment\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"AssignmentPeak\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"positionInPeak\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"endAt\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"peak\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"thumbnailUrl\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"title\"}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"__typename\"}}]}}]}}]} as unknown as DocumentNode<GetStudentAssignmentQuery, GetStudentAssignmentQueryVariables>;\nexport const ResetPeakProgressDocument = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"mutation\",\"name\":{\"kind\":\"Name\",\"value\":\"ResetPeakProgress\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"StudentProgressPeakResetInput\"}}}}],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"studentProgressPeakReset\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}}}],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"StudentProgressPeakResetOutput\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"student\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"StudentProgressDataFragment\"}}]}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"__typename\"}}]}}]}},{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"StudentProgressDataFragment\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Student\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"progress\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"lessons\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"peak\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"positionInPeak\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"showPlacementTest\"}}]}}]}}]}}]} as unknown as DocumentNode<ResetPeakProgressMutation, ResetPeakProgressMutationVariables>;\nexport const ResetPlacementTestProgressDocument = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"mutation\",\"name\":{\"kind\":\"Name\",\"value\":\"ResetPlacementTestProgress\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"studentProgressPlacementTestReset\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"StudentProgressPlacementTestResetOutput\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"student\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"StudentProgressDataFragment\"}}]}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"__typename\"}}]}}]}},{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"StudentProgressDataFragment\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Student\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"progress\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"lessons\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"peak\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"positionInPeak\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"showPlacementTest\"}}]}}]}}]}}]} as unknown as DocumentNode<ResetPlacementTestProgressMutation, ResetPlacementTestProgressMutationVariables>;\nexport const GetStudentProgressDocument = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"GetStudentProgress\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"student\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Student\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"StudentProgressDataFragment\"}}]}},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"NotAuthenticatedError\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"code\"}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"__typename\"}}]}}]}},{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"StudentProgressDataFragment\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Student\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"progress\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"lessons\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"peak\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"positionInPeak\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"showPlacementTest\"}}]}}]}}]}}]} as unknown as DocumentNode<GetStudentProgressQuery, GetStudentProgressQueryVariables>;\nexport const GetStudentQuestDocument = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"GetStudentQuest\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"student\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Student\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"StudentQuestDataFragment\"}}]}},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"NotAuthenticatedError\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"code\"}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"__typename\"}}]}}]}},{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"StudentQuestDataFragment\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Student\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"quest\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"primaryGoal\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"__typename\"}},{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"goalType\"},\"name\":{\"kind\":\"Name\",\"value\":\"__typename\"}},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"QuestGoalPeak\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"rewardAmount\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"peak\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"progressCurrent\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"progressTotal\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"status\"}}]}}]}}]}}]}}]} as unknown as DocumentNode<GetStudentQuestQuery, GetStudentQuestQueryVariables>;\nexport const StudentQuestGoalAcknowledgeCompleteDocument = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"mutation\",\"name\":{\"kind\":\"Name\",\"value\":\"StudentQuestGoalAcknowledgeComplete\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"StudentQuestGoalAcknowledgeCompleteInput\"}}}}],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"studentQuestGoalAcknowledgeComplete\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}}}],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"StudentQuestGoalAcknowledgeCompleteOutput\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"student\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"StudentQuestDataFragment\"}},{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"StudentUserDataFragment\"}}]}}]}}]}}]}},{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"PeakQuizSummariesDataFragment\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Student\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"peakQuizSummaries\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"best\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"certificate\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"colour\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"created\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"url\"}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"first\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}}]}}]}},{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"PurchasesDataFragment\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Student\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"purchases\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"category\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"item\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"price\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"uuid\"}}]}}]}},{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"RewardTotalsDataFragment\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Student\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"rewardTotals\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"bookGems\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"coins\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"soundGems\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"wordGems\"}}]}}]}},{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"SoundsDataFragment\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Student\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"sounds\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"peak\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"rewards\"}}]}}]}},{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"WordsDataFragment\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Student\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"words\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"peak\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"rewards\"}}]}}]}},{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"StudentQuestDataFragment\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Student\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"quest\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"primaryGoal\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"__typename\"}},{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"goalType\"},\"name\":{\"kind\":\"Name\",\"value\":\"__typename\"}},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"QuestGoalPeak\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"rewardAmount\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"peak\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"progressCurrent\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"progressTotal\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"status\"}}]}}]}}]}}]}},{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"StudentUserDataFragment\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Student\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"backgroundMusicDisabled\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"books\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"averageBestPeakQuizResult\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"abbreviatedName\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"accent\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"firstName\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"selectedYeti\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"viewedIntroVideo\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"rosterEnabled\"}},{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"PeakQuizSummariesDataFragment\"}},{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"PurchasesDataFragment\"}},{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"RewardTotalsDataFragment\"}},{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"SoundsDataFragment\"}},{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"WordsDataFragment\"}}]}}]} as unknown as DocumentNode<StudentQuestGoalAcknowledgeCompleteMutation, StudentQuestGoalAcknowledgeCompleteMutationVariables>;\nexport const GetStudentDocument = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"GetStudent\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"student\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Student\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"StudentUserDataFragment\"}}]}},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"NotAuthenticatedError\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"code\"}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"__typename\"}}]}}]}},{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"PeakQuizSummariesDataFragment\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Student\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"peakQuizSummaries\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"best\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"certificate\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"colour\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"created\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"url\"}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"first\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}}]}}]}},{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"PurchasesDataFragment\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Student\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"purchases\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"category\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"item\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"price\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"uuid\"}}]}}]}},{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"RewardTotalsDataFragment\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Student\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"rewardTotals\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"bookGems\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"coins\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"soundGems\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"wordGems\"}}]}}]}},{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"SoundsDataFragment\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Student\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"sounds\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"peak\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"rewards\"}}]}}]}},{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"WordsDataFragment\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Student\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"words\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"peak\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"rewards\"}}]}}]}},{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"StudentUserDataFragment\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Student\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"backgroundMusicDisabled\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"books\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"averageBestPeakQuizResult\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"abbreviatedName\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"accent\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"firstName\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"selectedYeti\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"viewedIntroVideo\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"rosterEnabled\"}},{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"PeakQuizSummariesDataFragment\"}},{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"PurchasesDataFragment\"}},{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"RewardTotalsDataFragment\"}},{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"SoundsDataFragment\"}},{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"WordsDataFragment\"}}]}}]} as unknown as DocumentNode<GetStudentQuery, GetStudentQueryVariables>;","export * from \"./gql\";","\n      export interface PossibleTypesResultData {\n        possibleTypes: {\n          [key: string]: string[]\n        }\n      }\n      const result: PossibleTypesResultData = {\n  \"possibleTypes\": {\n    \"Assignment\": [\n      \"AssignmentPeak\"\n    ],\n    \"AssignmentDetails\": [\n      \"AssignmentPeak\"\n    ],\n    \"AssignmentTask\": [\n      \"AssignmentTaskPeak\"\n    ],\n    \"AssignmentTaskDetails\": [\n      \"AssignmentTaskPeak\"\n    ],\n    \"CreateActivityResultPayload\": [\n      \"CreateActivityResultSuccess\",\n      \"NotAuthenticatedError\"\n    ],\n    \"CreateBookQuizResultPayload\": [\n      \"CreateBookQuizResultSuccess\",\n      \"NotAuthenticatedError\"\n    ],\n    \"CreatePeakQuizResultPayload\": [\n      \"CreatePeakQuizResultSuccess\",\n      \"NotAuthenticatedError\"\n    ],\n    \"CreatePlacementTestResultPayload\": [\n      \"CreatePlacementTestResultSuccess\",\n      \"NotAuthenticatedError\"\n    ],\n    \"PrimaryGoal\": [\n      \"QuestGoalPeak\"\n    ],\n    \"PurchaseYetiPayload\": [\n      \"AlreadyPurchasedError\",\n      \"NotAuthenticatedError\",\n      \"NotEnoughCoinsError\",\n      \"PurchaseYetiSuccess\"\n    ],\n    \"SkipPlacementTestResultPayload\": [\n      \"NotAuthenticatedError\",\n      \"SkipPlacementTestResultSuccess\"\n    ],\n    \"StudentPayload\": [\n      \"NotAuthenticatedError\",\n      \"Student\"\n    ],\n    \"StudentProgressPeakResetPayload\": [\n      \"NotAuthenticatedError\",\n      \"StudentProgressPeakResetOutput\"\n    ],\n    \"StudentProgressPlacementTestResetPayload\": [\n      \"NotAuthenticatedError\",\n      \"StudentProgressPlacementTestResetOutput\"\n    ],\n    \"StudentQuestGoalAcknowledgeCompletePayload\": [\n      \"NotAuthenticatedError\",\n      \"StudentQuestGoalAcknowledgeCompleteOutput\"\n    ],\n    \"UpdateIntroVideoPayload\": [\n      \"NotAuthenticatedError\",\n      \"UpdateIntroVideoSuccess\"\n    ],\n    \"UpdateSelectedYetiPayload\": [\n      \"NotAuthenticatedError\",\n      \"UpdateSelectedYetiSuccess\"\n    ]\n  }\n};\n      export default result;\n    ","import { helper } from '@ember/component/helper';\nimport config from '../config/environment';\nimport {\n  shaRegExp,\n  versionRegExp,\n  versionExtendedRegExp,\n} from 'ember-cli-app-version/utils/regexp';\n\nexport function appVersion(_, hash = {}) {\n  const version = config.APP.version;\n  // e.g. 1.0.0-alpha.1+4jds75hf\n\n  // Allow use of 'hideSha' and 'hideVersion' For backwards compatibility\n  let versionOnly = hash.versionOnly || hash.hideSha;\n  let shaOnly = hash.shaOnly || hash.hideVersion;\n\n  let match = null;\n\n  if (versionOnly) {\n    if (hash.showExtended) {\n      match = version.match(versionExtendedRegExp); // 1.0.0-alpha.1\n    }\n    // Fallback to just version\n    if (!match) {\n      match = version.match(versionRegExp); // 1.0.0\n    }\n  }\n\n  if (shaOnly) {\n    match = version.match(shaRegExp); // 4jds75hf\n  }\n\n  return match ? match[0] : version;\n}\n\nexport default helper(appVersion);\n","import pluralize from 'ember-inflector/lib/helpers/pluralize';\nexport default pluralize;\n","import singularize from 'ember-inflector/lib/helpers/singularize';\nexport default singularize;\n","import { helper } from '@ember/component/helper'\nimport podNames from 'ember-component-css/pod-names'\n\n/**\n * A temporary solution for ember-component-css not working with glimmer components\n *\n * Allows manually adding the pod-styles class to glimmer components\n */\nexport function styleNamespace(params: unknown[]): string {\n  const [componentName] = params\n  const classname = typeof componentName === 'string' ? podNames[componentName] : ''\n  return classname ?? ''\n}\n\nexport default helper(styleNamespace)\n","import { helper } from '@ember/component/helper'\nimport { capitalize, decamelize } from '@ember/string'\n\nexport const titleCase = ([value]: [string]) =>\n  capitalize(decamelize(value)).replace(/_/g, ' ')\n\nexport default helper(titleCase)\n","import initializerFactory from 'ember-cli-app-version/initializer-factory';\nimport config from '../config/environment';\n\nlet name, version;\nif (config.APP) {\n  name = config.APP.name;\n  version = config.APP.version;\n}\n\nexport default {\n  name: 'App Version',\n  initialize: initializerFactory(name, version),\n};\n","export { default, initialize } from 'ember-component-css/initializers/component-styles';\n\nimport Ember from 'ember';\n\nimport StyleNamespacingExtras from '../mixins/style-namespacing-extras';\n\n// eslint-disable-next-line ember/new-module-imports\nEmber.Component.reopen(StyleNamespacingExtras);\n","\n        export default {\n          name: 'ember-cli-mirage',\n          initialize() {}\n        };\n      ","// This file is removed from the build in Ember < 3.6\nexport { default, initialize } from 'ember-component-css/instance-initializers/route-styles';\n","import { service } from '@ember/service'\nimport Modifier from 'ember-modifier'\nimport type LoadingUiService from 'fast-phonics-client/services/loading-ui'\n\ninterface RemoveLoadingScreenSignature {\n  Element: HTMLElement\n}\n\nexport default class RemoveLoadingScreenModifier extends Modifier<RemoveLoadingScreenSignature> {\n  @service\n  declare loadingUi: LoadingUiService\n\n  override modify() {\n    this.loadingUi.finish()\n  }\n}\n","import type { OperationVariables, WatchFragmentOptions } from '@apollo/client'\nimport { cell, resource, use } from 'ember-resources'\n\nfunction Fragment<TFragmentData = unknown, TVariables = OperationVariables>(\n  options: () => WatchFragmentOptions<TFragmentData, TVariables>,\n) {\n  return resource(({ owner, on }) => {\n    const apollo = owner.lookup('service:apollo')\n    const watchOptions = options()\n    const { from, fragment } = watchOptions\n    const query = apollo.watchFragment(watchOptions)\n\n    const currentResult = cell<TFragmentData | undefined>()\n\n    // Find the id of the object to read the initial fragment data\n    const id = typeof from === 'string' ? from : apollo.cache.identify(from)\n\n    if (id) {\n      // Attempt to read the initial fragment data from the cache\n      const initialResult = apollo.cache.readFragment({\n        id,\n        fragment: fragment,\n      })\n\n      if (initialResult) {\n        // If there is initial data, set the current result\n        currentResult.set(initialResult)\n      }\n    }\n\n    const subscription = query.subscribe((result) => {\n      if (result.complete) {\n        currentResult.set(result.data)\n      }\n    })\n\n    on.cleanup(() => {\n      subscription.unsubscribe()\n    })\n\n    return currentResult\n  })\n}\n\n/**\n * Watches the cache for changes to the provided frament.\n *\n * @returns a resource that will update with the latest fragment data.\n */\nexport function useFragment<\n  TFragmentData = unknown,\n  TVariables = OperationVariables,\n>(\n  parent: object,\n  options: () => WatchFragmentOptions<TVariables, TFragmentData>,\n) {\n  return use(parent, Fragment(options))\n}\n","import type {\n  ApolloCache,\n  BaseMutationOptions,\n  DefaultContext,\n  DocumentNode,\n  MutationOptions,\n  OperationVariables,\n  TypedDocumentNode,\n} from '@apollo/client'\nimport { cell, resource, use } from 'ember-resources'\nimport type { Reactive } from 'ember-resources'\n\nexport interface MutationResult<\n  TData = unknown,\n  TVariables = OperationVariables,\n  TContext = DefaultContext,\n  TCache extends ApolloCache<unknown> = ApolloCache<unknown>,\n> {\n  result: TData | undefined\n  mutate(\n    options: BaseMutationOptions<TData, TVariables, TContext, TCache>,\n  ): Promise<TData | null | undefined>\n}\n\nfunction Mutation<\n  TData = unknown,\n  TVariables = OperationVariables,\n  TContext = DefaultContext,\n  TCache extends ApolloCache<unknown> = ApolloCache<unknown>,\n>(\n  mutation: DocumentNode | TypedDocumentNode<TData, TVariables>,\n): MutationResult<TData, TVariables, TContext, TCache> {\n  return resource(({ owner }) => {\n    const apollo = owner.lookup('service:apollo')\n    const result = cell<TData | undefined>()\n\n    return () => ({\n      result: result.current,\n      async mutate(options) {\n        const clientOptions = { ...options, mutation } as MutationOptions<TData>\n        const mutateResult = await apollo.mutate(clientOptions)\n\n        if (mutateResult.data) {\n          result.set(mutateResult.data)\n        }\n\n        return mutateResult.data\n      },\n    })\n  })\n}\n\n/**\n * A resource that can perform the provided mutation.\n *\n * @returns a resource that will update with the latest mutation result,\n * and a method to perform the mutation.\n */\nexport function useMutation<TData = unknown, TVariables = OperationVariables>(\n  parent: object,\n  mutation: DocumentNode | TypedDocumentNode<TData, TVariables>,\n): Reactive<MutationResult<TData, TVariables>> {\n  return use(parent, Mutation(mutation))\n}\n","import type {\n  ApolloQueryResult,\n  OperationVariables,\n  WatchQueryOptions,\n} from '@apollo/client'\nimport { cell, resource, use } from 'ember-resources'\n\nexport interface WatchQuery<TData, TVariables> {\n  data: TData | undefined\n  refetch(): Promise<ApolloQueryResult<TData>>\n  result(): Promise<ApolloQueryResult<TData>>\n  updateQuery(\n    mapFn: (\n      previousQueryResult: TData,\n      options: {\n        variables?: TVariables\n      },\n    ) => TData,\n  ): void\n}\n\nfunction Query<\n  T = unknown,\n  TVariables extends OperationVariables = OperationVariables,\n>(options: () => WatchQueryOptions<TVariables, T>): WatchQuery<T, TVariables> {\n  return resource(({ owner, on }) => {\n    const apollo = owner.lookup('service:apollo')\n\n    const currentResult = cell<T | undefined>()\n    const query = apollo.watchQuery(options())\n\n    const subscription = query.subscribe((result) => {\n      if (!result.partial) {\n        currentResult.set(result.data)\n      }\n    })\n\n    on.cleanup(() => {\n      subscription.unsubscribe()\n    })\n\n    return () => ({\n      data: currentResult.current,\n      refetch() {\n        return query.refetch()\n      },\n      result() {\n        return query.result()\n      },\n      updateQuery(mapFn) {\n        query.updateQuery(mapFn)\n      },\n    })\n  })\n}\n\n/**\n * Watches the cache for changes to the provided query.\n *\n * @returns a resource that will update with the latest query data,\n * and methods to refetch or update the query.\n */\nexport function useQuery<\n  T = unknown,\n  TVariables extends OperationVariables = OperationVariables,\n>(parent: object, options: () => WatchQueryOptions<TVariables, T>) {\n  return use(parent, Query(options))\n}\n","import EmberRouter from '@ember/routing/router'\nimport config from 'fast-phonics-client/config/environment'\n\nexport default class Router extends EmberRouter {\n  location = config.locationType\n\n  rootURL = config.rootURL\n}\n\nRouter.map(function () {\n  this.route('peaks', function () {\n    this.route('peak', { path: '/:peak_id' }, function () {\n      // Peak Activities (All Stones)\n      this.route('stones')\n    })\n  })\n\n  // Interactive (Single Stone)\n  this.route('stone', { path: '/peaks/:peak_id/:stone_id' }, function () {\n    // EOM Quiz\n  })\n\n  this.route('end-of-program')\n\n  this.route('my-progress', function () {\n    // The index is the \"Progress\" tab\n    this.route('sounds')\n    this.route('words')\n    this.route('books')\n    this.route('certificates')\n  })\n\n  this.route('sound', { path: '/my-progress/sounds/:sound' })\n  this.route('book', { path: '/my-progress/books/:book_id' })\n\n  // intro video when user does not have progress\n  this.route('intro-video', function () {})\n\n  this.route('yeti-shop', function () {})\n\n  this.route('login')\n  this.route('logout')\n\n  this.route('error', function () {\n    this.route('unauthorized')\n  })\n\n  this.route('not-found', { path: '/*page' })\n  this.route('placement-test')\n  this.route('recommended')\n  this.route('assignment')\n})\n","import { action } from '@ember/object'\nimport { inject as service } from '@ember/service'\nimport Route from '@ember/routing/route'\nimport {\n  isErrorRoute,\n  isInsideInteractive,\n} from 'fast-phonics-client/utils/app-refresher-logic'\nimport type ActivityService from 'fast-phonics-client/services/activity'\nimport type ErrorHandlerService from 'fast-phonics-client/services/error-handler'\nimport type RouterService from '@ember/routing/router-service'\nimport type ReleaseChecker from '@blakeelearning/app-refresher/release-checker/service'\nimport type RefresherService from '@blakeelearning/app-refresher/refresher/service'\nimport type MetricsService from 'ember-metrics'\nimport type LongSessionKiller from '@blakeelearning/app-refresher/long-session-killer/service'\nimport type SessionTracker from '@blakeelearning/app-refresher/session-tracker/service'\nimport type Transition from '@ember/routing/-private/transition'\nimport type QuestService from 'fast-phonics-client/services/quest'\nimport { graphql } from 'fast-phonics-client/graphql'\nimport type ApolloService from 'fast-phonics-client/services/apollo'\nimport type { FeatureService } from '@blakeelearning/features'\nimport type ProgressService from 'fast-phonics-client/services/progress'\nimport type TimeOnTaskService from 'fast-phonics-client/services/time-on-task'\nimport type UserService from 'fast-phonics-client/services/user'\nimport { NotAuthenticatedError } from 'fast-phonics-client/services/error-handler'\nimport type AssignmentsService from 'fast-phonics-client/services/assignments'\n\ninterface InitialAppQueryResponse {\n  data: {\n    student: {\n      __typename: string\n    }\n  }\n}\n\nconst initialAppQueryDocument = graphql(/* GraphQL */ `\n  query GetInitialAppData {\n    student {\n      ... on Student {\n        ...StudentUserDataFragment\n        ...StudentProgressDataFragment\n        ...StudentQuestDataFragment\n        ...StudentAssignmentDataFragment\n        __typename\n      }\n    }\n  }\n`)\n\n/**\n * The application router makes sure the session is loaded before sub-routes\n * are able to do things, so they and their controllers can all assume that a\n * session with a student model property will always exist.\n */\n\nexport default class ApplicationRoute extends Route {\n  @service declare activity: ActivityService\n\n  @service declare errorHandler: ErrorHandlerService\n\n  @service declare features: FeatureService\n\n  @service declare longSessionKiller: LongSessionKiller\n\n  @service declare metrics: MetricsService\n\n  @service declare refresher: RefresherService\n\n  @service declare releaseChecker: ReleaseChecker\n\n  @service declare router: RouterService\n\n  @service declare sessionTracker: SessionTracker\n\n  @service declare quest: QuestService\n\n  @service declare progress: ProgressService\n\n  @service declare timeOnTask: TimeOnTaskService\n\n  @service declare user: UserService\n\n  @service declare assignments: AssignmentsService\n\n  @service\n  declare apollo: ApolloService\n\n  constructor(...args: ConstructorParameters<typeof Route>) {\n    super(...args)\n\n    // This will track the initial page load, after which we depend on\n    // `trackPage` events being emitted.\n    this.router.one('routeDidChange', () => {\n      this._trackPage()\n    })\n    this.on('trackPage', () => {\n      this._trackPage()\n    })\n  }\n\n  override async beforeModel(transition: Transition): Promise<void> {\n    if (transition.to?.name === 'login' || transition.to?.name === 'logout') {\n      return\n    }\n\n    try {\n      await this._setupSession()\n    } catch (error) {\n      if (error instanceof NotAuthenticatedError) {\n        // The student is apparently not logged in - this is a common\n        // occurrence, most easily fixed by redirecting to the\n        // fast_phonics_api /login URL.\n        void this.router.transitionTo('login')\n      } else {\n        throw error\n      }\n    }\n  }\n\n  override afterModel(_resolvedModel: unknown, transition: Transition) {\n    this.assignments.checkTransition(transition)\n  }\n\n  /**\n   * Route error handlers are called synchronously so cannot return a promise\n   * which also means we can't use async/await\n   */\n  @action\n  override error(error: Error, transition?: Transition): true {\n    const routeName = transition?.to?.name ?? 'unknown route'\n    this.errorHandler.logErrorIfActionable(\n      `Failed to transition to ${routeName}`,\n      error,\n    )\n    return true\n  }\n\n  @action\n  override willTransition(transition: Transition): void {\n    this._scheduleAppRefreshOnSuccessfulTransition(transition)\n    this.assignments.checkTransition(transition)\n  }\n\n  _trackPage() {\n    this.metrics.trackPage({\n      page: this.router.currentURL,\n      title: this.router.currentRouteName,\n    })\n    this.trackTimeOnTask(this.router.currentRouteName)\n  }\n\n  private trackTimeOnTask(routeName?: string) {\n    void this.timeOnTask.trackRoute(routeName)\n  }\n\n  get timeOnTaskV2Enabled() {\n    return this.features.isEnabled('fp_time-on-task-v2')\n  }\n\n  async _setupSession(): Promise<void> {\n    await this.activity.load()\n\n    const response = (await this.apollo.query({\n      query: initialAppQueryDocument,\n    })) as InitialAppQueryResponse\n    const { student } = response.data\n\n    if (student.__typename == 'NotAuthenticatedError') {\n      throw new NotAuthenticatedError(\n        'GraphQL GetInitialAppData query returned NotAuthenticatedError',\n      )\n    } else if (student.__typename == 'Student') {\n      // Happy path\n    } else {\n      throw new Error(\n        `GraphQL GetInitialAppData returned unhandled type for student: ${student.__typename}`,\n      )\n    }\n\n    await this.user.setup()\n\n    await Promise.all([\n      this.progress.setup(),\n      this.quest.setup(),\n      this.assignments.setup(),\n    ])\n\n    if (this.timeOnTaskV2Enabled) {\n      this.timeOnTask.setup()\n    }\n    const studentId = (this.user.student as { id: string | number }).id\n\n    // Start all of the app refresher services\n    this.sessionTracker.start(studentId)\n    this.releaseChecker.start()\n    this.longSessionKiller.start()\n  }\n\n  /**\n   * This is the fast-phonics-client logic for scheduling and executing app refreshes.\n   * It is based on a transition rather than a route, because the determination\n   * needs to consider both where the transition is coming from and where it is\n   * going to.  At present there are two situations where we consider a refresh\n   * unsafe:\n   *\n   * 1. when a transition occurs without changing the interactive (e.g.\n   *    transitioning to the stones view of the peaks interactive); and\n   * 2. when the destination route is an error page, because the error\n   *    (whatever it is) might prevent the refresh from working correctly.\n   */\n  _scheduleAppRefreshOnSuccessfulTransition(transition: Transition): void {\n    const fromRouteName = transition.from?.name\n\n    void transition.followRedirects().then((toRoute) => {\n      if (toRoute instanceof Route) {\n        const { routeName: toRouteName } = toRoute\n        // Prevent refresh if these conditions apply\n        if (\n          isInsideInteractive(toRouteName, fromRouteName) ||\n          isErrorRoute(toRouteName)\n        )\n          return\n\n        const willRefresh =\n          this.refresher.refreshIfSafeAndScheduled(toRouteName)\n        if (!willRefresh) this.trigger('trackPage')\n      }\n    })\n  }\n}\n","import { inject as service } from '@ember/service'\nimport Route from '@ember/routing/route'\n\nimport type RouterService from '@ember/routing/router-service'\nimport type AssignmentsService from 'fast-phonics-client/services/assignments'\nimport type LoadingUiService from 'fast-phonics-client/services/loading-ui'\n\nexport default class AssignmentRoute extends Route {\n  @service declare assignments: AssignmentsService\n\n  @service declare router: RouterService\n\n  @service declare loadingUi: LoadingUiService\n\n  override beforeModel() {\n    if (!this.assignments.currentAssignment) void this.router.replaceWith('/')\n  }\n\n  override model() {\n    const { currentAssignment } = this.assignments\n    if (!currentAssignment) {\n      // This should never happen as we already checked in beforeModel\n      throw new Error('Assignment Service has not been setup')\n    }\n\n    this.loadingUi.finish()\n\n    return {\n      assignment: currentAssignment,\n    }\n  }\n}\n","import { inject as service } from '@ember/service'\nimport Route from '@ember/routing/route'\nimport type { BookContentSpec } from '@blakeelearning/content-specs-fast-phonics'\nimport { bookContentSpec as contentSpec } from '@blakeelearning/content-specs-fast-phonics'\nimport type Transition from '@ember/routing/-private/transition'\nimport type RouterService from '@ember/routing/router-service'\nimport type UserService from 'fast-phonics-client/services/user'\nimport type ActivityService from 'fast-phonics-client/services/activity'\nimport { startCase } from 'lodash'\n\ntype ModelForRoute = Model | undefined\ninterface Model {\n  contentSpec: BookContentSpec\n  manifests: string[][]\n  variables: Record<string, unknown>\n}\n\ninterface ParamsForRoute {\n  book_id: string\n}\n\nexport default class BookRoute extends Route<ModelForRoute, ParamsForRoute> {\n  @service declare user: UserService\n\n  @service declare activity: ActivityService\n\n  @service declare router: RouterService\n\n  get student() {\n    return this.user.student\n  }\n\n  override model({ book_id: bookId }: ParamsForRoute, transition: Transition) {\n    const studentHasReadBook = this.student.books.includes(bookId)\n\n    if (studentHasReadBook) {\n      const bookActivity = this.activity.findActivityById(bookId)\n      // Something has gone wrong - the student has read this book, but we can't\n      // find it in the activities index.\n      if (!bookActivity.ok) throw new Error(`No such book ID: ${bookId}`)\n\n      const { manifestBundle: manifestBundleName, manifestKey } =\n        bookActivity.activity\n\n      const manifests = [[manifestKey, manifestBundleName]]\n      const variables = { displayQuiz: false }\n      const book = startCase(bookId)\n\n      return { manifests, variables, contentSpec, book }\n    }\n\n    // This student hasn't yet read the book they are trying to access - abort the transition or redirect.\n    if (transition.from) {\n      void transition.abort()\n    } else {\n      void this.router.replaceWith('my-progress.books')\n    }\n\n    return undefined\n  }\n}\n","import { inject as service } from '@ember/service'\nimport Route from '@ember/routing/route'\nimport type { EndOfProgramContentSpec } from '@blakeelearning/content-specs-fast-phonics'\nimport { endOfProgramContentSpec as contentSpec } from '@blakeelearning/content-specs-fast-phonics'\nimport type ActivityService from 'fast-phonics-client/services/activity'\nimport type RouterService from '@ember/routing/router-service'\nimport type ProgressService from 'fast-phonics-client/services/progress'\nimport type UserService from 'fast-phonics-client/services/user'\n\ninterface ModelForRoute {\n  contentSpec: EndOfProgramContentSpec\n  manifests: string[][]\n  variables: Record<string, unknown>\n}\n\nexport default class EndOfProgramRoute extends Route<ModelForRoute> {\n  @service declare activity: ActivityService\n\n  @service declare user: UserService\n\n  @service declare router: RouterService\n\n  @service declare progress: ProgressService\n\n  get studentName(): string {\n    return this.user.student.abbreviatedName\n  }\n\n  override beforeModel(): void {\n    if (!this.progress.hasFinishedProgram || this.progress.showPlacementTest) {\n      void this.router.replaceWith('/')\n    }\n  }\n\n  override model() {\n    const manifests = [['index', 'activities/finished-fast-phonics']]\n    const variables = {\n      studentName: this.studentName,\n      finalPeakNbr: this.activity.lastPeak,\n    }\n    return { manifests, variables, contentSpec }\n  }\n}\n","import { inject as service } from '@ember/service'\nimport Route from '@ember/routing/route'\nimport type RouterService from '@ember/routing/router-service'\nimport type ProgressService from 'fast-phonics-client/services/progress'\nimport type AssignmentsService from 'fast-phonics-client/services/assignments'\n\nexport default class IndexRoute extends Route {\n  @service declare progress: ProgressService\n\n  @service declare assignments: AssignmentsService\n\n  @service declare router: RouterService\n\n  override redirect(): void {\n    if (this.assignments.currentAssignment) {\n      void this.router.replaceWith('assignment')\n    } else if (!this.progress.hasViewedIntroVideo) {\n      void this.router.replaceWith('intro-video')\n    } else if (this.progress.showPlacementTest) {\n      void this.router.replaceWith('placement-test')\n    } else if (this.progress.hasFinishedProgram) {\n      void this.router.replaceWith('end-of-program')\n    } else {\n      void this.router.replaceWith('peaks')\n    }\n  }\n}\n","import { inject as service } from '@ember/service'\nimport Route from '@ember/routing/route'\nimport type { VideoContentSpec } from '@blakeelearning/content-specs-fast-phonics'\nimport { videoContentSpec as contentSpec } from '@blakeelearning/content-specs-fast-phonics'\nimport type DebugModeService from 'fast-phonics-client/services/debug-mode'\n\ninterface ModelForRoute {\n  contentSpec: VideoContentSpec\n  manifests: string[][]\n}\n\nexport default class IntroVideoRoute extends Route<ModelForRoute> {\n  @service declare debugMode: DebugModeService\n\n  override model() {\n    const manifests = [['index', 'activities/intro-video']]\n    return { manifests, contentSpec }\n  }\n}\n","import Route from '@ember/routing/route'\nimport { service } from '@ember/service'\nimport config from 'fast-phonics-client/config/environment'\nimport type UserService from 'fast-phonics-client/services/user'\n\nconst {\n  APP: { loginWarning },\n} = config\n\ninterface ModelForRoute {\n  warning: string | null\n}\n\nexport default class LoginRoute extends Route<ModelForRoute> {\n  @service\n  declare user: UserService\n\n  /**\n   * Implementation of the model hook.  The `redirectUrl` is used by `RedirectRoute`.\n   */\n  override model() {\n    return {\n      warning: loginWarning,\n    }\n  }\n\n  /**\n   * Implementation of the route redirect hook.  This will be called by Ember after the model has been resolved.\n   */\n  override redirect(): void {\n    this.user.signIn()\n  }\n}\n","import Route from '@ember/routing/route'\nimport config from 'fast-phonics-client/config/environment'\n\nconst {\n  APP: { logoutUrl, loginWarning },\n} = config\n\ninterface ModelForRoute {\n  warning: string | null\n}\n\nexport default class LogoutRoute extends Route<ModelForRoute> {\n  /**\n   * Implementation of the model hook.  The `redirectUrl` is used by\n   * `RedirectRoute`.\n   */\n  override model() {\n    return {\n      warning: loginWarning,\n    }\n  }\n\n  /**\n   * Implementation of the route redirect hook.  This will be called by Ember\n   * after the model has been resolved.\n   */\n  override redirect(): void {\n    if (logoutUrl) {\n      const form = document.createElement('form')\n      form.setAttribute('method', 'post')\n      form.setAttribute('action', logoutUrl)\n\n      document.body.appendChild(form)\n\n      form.submit()\n    }\n  }\n}\n","import Route from '@ember/routing/route'\nimport { inject as service } from '@ember/service'\nimport type { MyProgressContentSpec } from '@blakeelearning/content-specs-fast-phonics'\nimport { myProgressContentSpec as contentSpec } from '@blakeelearning/content-specs-fast-phonics'\nimport type ProgressService from 'fast-phonics-client/services/progress'\nimport type RouterService from '@ember/routing/router-service'\nimport type Transition from '@ember/routing/-private/transition'\nimport type PeakCertificateService from 'fast-phonics-client/services/peak-certificate'\nimport type UserService from 'fast-phonics-client/services/user'\n\ninterface ModelForRoute {\n  manifests: string[][]\n  variables: Record<string, unknown>\n  contentSpec: MyProgressContentSpec\n}\n\ninterface JesterPeakQuizResult {\n  __typename: 'PeakQuizSummary'\n  best: number\n  first: number\n  id: string\n  certificate?: {\n    __typename: 'Certificate'\n    colour: string\n    created: string\n    url: string\n  } | null\n}\n\nexport default class MyProgressRoute extends Route<ModelForRoute> {\n  @service declare progress: ProgressService\n\n  @service declare user: UserService\n\n  @service declare router: RouterService\n\n  @service declare peakCertificate: PeakCertificateService\n\n  get student() {\n    return this.user.student\n  }\n\n  get studentFirstName(): string {\n    return this.student.firstName\n  }\n\n  get userRewards() {\n    return this.student.rewardTotals\n  }\n\n  override beforeModel(): void {\n    if (this.progress.showPlacementTest) {\n      void this.router.transitionTo('placement-test')\n    }\n  }\n\n  override model(_params: unknown, transition: Transition) {\n    const {\n      firstName: studentFirstName,\n      averageBestPeakQuizResult,\n      peakQuizSummaries: peakQuizResults,\n      sounds,\n      books,\n      words,\n    } = this.student\n\n    const manifests = [['index', 'activities/progress-page']]\n    const variables = {\n      studentFirstName,\n      results: {\n        averageBestPeakQuizResult,\n        peakQuizResults: peakQuizResults.reduce<\n          Record<number, JesterPeakQuizResult>\n        >((acc, result) => {\n          acc[parseInt(result.id, 10)] = result\n          return acc\n        }, {}),\n        sounds: sounds.reduce<Record<number, string[]>>((acc, sound) => {\n          acc[sound.peak] = sound.rewards\n          return acc\n        }, {}),\n        books,\n        words: words.reduce<Record<number, string[]>>((acc, word) => {\n          acc[word.peak] = word.rewards\n          return acc\n        }, {}),\n      },\n      userRewards: this.userRewards,\n      requestedTab: this._initialTab(transition),\n      peaksWithoutSounds: [13, 14, 18, 19, 20],\n    }\n\n    return { manifests, variables, contentSpec }\n  }\n\n  _initialTab(transition: Transition): string {\n    switch (transition.to?.localName) {\n      case 'sounds':\n        return 'sounds'\n      case 'words':\n        return 'words'\n      case 'books':\n        return 'books'\n      case 'certificates':\n        return 'certificates'\n      default:\n        return 'progress'\n    }\n  }\n}\n","import Route from '@ember/routing/route'\nimport { inject as service } from '@ember/service'\nimport type { PeaksContentSpec } from '@blakeelearning/content-specs-fast-phonics'\nimport { peaksContentSpec as contentSpec } from '@blakeelearning/content-specs-fast-phonics'\nimport type Activity from 'fast-phonics-client/services/activity'\nimport type RouterService from '@ember/routing/router-service'\nimport type Transition from '@ember/routing/-private/transition'\nimport type RouteInfo from '@ember/routing/-private/route-info'\nimport type ProgressService from 'fast-phonics-client/services/progress'\nimport type UserService from 'fast-phonics-client/services/user'\nimport type AssignmentsService from 'fast-phonics-client/services/assignments'\n\nexport interface ModelForRoute {\n  manifests: string[][]\n  variables: Record<string, unknown>\n  contentSpec: PeaksContentSpec\n  assignmentMode: boolean\n}\n\nenum PeakView {\n  'stones' = 'stones',\n  'peak' = 'peak',\n}\n\nexport default class PeaksRoute extends Route<ModelForRoute> {\n  @service declare activity: Activity\n\n  @service declare user: UserService\n\n  @service declare progress: ProgressService\n\n  @service declare router: RouterService\n\n  @service declare assignments: AssignmentsService\n\n  get userRewards() {\n    return this.user.student.rewardTotals\n  }\n\n  override beforeModel(transition: Transition): void {\n    if (this.assignments.currentAssignment) return\n\n    if (this.progress.showPlacementTest) {\n      void this.router.transitionTo('placement-test')\n      return\n    }\n\n    const requestedPeakId = Number(\n      this._getRequestedPeakIdFromRoute(transition.to),\n    )\n\n    // If no peakId is passed, or if the provided peakId is inaccessible,\n    // redirect the student to their current peak.\n    if (!requestedPeakId || !this.progress.canPlayPeak(requestedPeakId)) {\n      void this.router.replaceWith(\n        'peaks.peak',\n        this.progress.lastAccessiblePeak,\n      )\n      return\n    }\n\n    // Addresses a case where a user clicks browser back button before they click 'Next' in End of Peak Quiz\n    // If this happens the chest unlock doesn't occur, which prevents progression from incrementing and\n    // prevents the user from accessing stones\n    if (\n      this.progress.lessonsProgressData.positionInPeak === 1 &&\n      !this.progress.hasFinishedProgram\n    ) {\n      void this.router.replaceWith(\n        'peaks.peak',\n        this.progress.lessonsProgressData.peak,\n      )\n    }\n  }\n\n  override model(_params: unknown, transition: Transition): ModelForRoute {\n    const { selectedYeti } = this.user.student\n    const { lastPeak } = this.activity\n    const assignmentMode = Boolean(this.assignments.currentAssignment)\n    const userProgress = assignmentMode\n      ? this.assignments.progress\n      : this.progress.lessonsProgressData\n\n    const { to: requestedRouteInfo } = transition\n    const requestedPeakId =\n      this._getRequestedPeakIdFromRoute(requestedRouteInfo)\n    const requestedPeakView =\n      this._getRequestedPeakViewFromRoute(requestedRouteInfo)\n    const showCongratulations = requestedRouteInfo?.queryParams['showCongratulations'] === 'true'\n\n    const manifests = [['index', 'activities/peaks']]\n    const variables = {\n      userRewards: this.userRewards,\n      requestedPeakView,\n      requestedPeakId,\n      userProgress,\n      lastPeak,\n      selectedYeti,\n      ASSIGNMENT_MODE: assignmentMode,\n      showCongratulations,\n    }\n\n    return { manifests, variables, contentSpec, assignmentMode }\n  }\n\n  /**\n   * Traverses the route metadata in order to pull the requested peak_id from the params.\n   *\n   * Allows us to render an interactive in a parent route, while accessing\n   * route params from a child route.\n   * This is required to prevent the interactive from re-rendering when child route params change\n   */\n  _getRequestedPeakIdFromRoute(\n    routeInfo: RouteInfo | null,\n  ): string | undefined {\n    const peakRouteInfo = routeInfo?.find(\n      (route) => route.name === 'peaks.peak',\n    )\n    return peakRouteInfo?.params['peak_id']\n  }\n\n  /**\n   * Traverses the route metadata to find which view the user should receive.\n   *\n   * Allows us to render an interactive in a parent route, while accessing\n   * route params from a child route.\n   * This is required to prevent the interactive from re-rendering when child route params change\n   */\n  _getRequestedPeakViewFromRoute(routeInfo: RouteInfo | null): PeakView {\n    const isRequestingStonesView = routeInfo?.find(\n      (route) => route.name === 'peaks.peak.stones',\n    )\n    return isRequestingStonesView ? PeakView.stones : PeakView.peak\n  }\n}\n","import Route from '@ember/routing/route'\n\nexport default class PeakRoute extends Route {\n  override queryParams = {\n    showCongratulations: {}\n  }\n\n  override model(): void {\n    /**\n     * This empty model hook prevents Ember's default behaviour of attempting\n     * to load a Peak model from the ember-data store that matches the current\n     * peak ID in the URL.\n     */\n  }\n}\n","import Route from '@ember/routing/route'\nimport { action } from '@ember/object'\nimport { inject as service } from '@ember/service'\nimport type RouterService from '@ember/routing/router-service'\nimport { placementTestContentSpec as contentSpec } from '@blakeelearning/content-specs-fast-phonics'\nimport type DebugModeService from 'fast-phonics-client/services/debug-mode'\nimport type DeviceDetection from '@blakeelearning/device/device/detection/service'\nimport type ProgressService from 'fast-phonics-client/services/progress'\nimport type UserService from 'fast-phonics-client/services/user'\n\ninterface ModelForRoute {\n  contentSpec: unknown\n  accentOverride?: string\n  manifests: string[][]\n  variables: Record<string, unknown>\n}\n\n// eslint-disable-next-line ember/no-test-import-export\nexport default class PlacementTestRoute extends Route<ModelForRoute> {\n  @service declare debugMode: DebugModeService\n\n  @service declare progress: ProgressService\n\n  @service declare user: UserService\n\n  @service('device/detection') declare deviceDetection: DeviceDetection\n\n  @service declare router: RouterService\n\n  get studentAccent(): string {\n    return this.user.accent\n  }\n\n  get studentName(): string {\n    return this.user.student.abbreviatedName\n  }\n\n  override beforeModel(): void {\n    if (!this.progress.showPlacementTest) {\n      void this.router.transitionTo('/')\n    }\n  }\n\n  override model() {\n    const accentOverride = this.studentAccent\n\n    const manifests = [['index', 'activities/new-placement-test']]\n\n    const variables = {\n      studentName: this.studentName,\n    }\n    return { manifests, variables, accentOverride, contentSpec }\n  }\n\n  @action\n  override willTransition(): true {\n    return true\n  }\n}\n","import Route from '@ember/routing/route'\nimport type RouterService from '@ember/routing/router-service'\nimport { inject as service } from '@ember/service'\nimport type ProgressService from 'fast-phonics-client/services/progress'\nimport type QuestService from 'fast-phonics-client/services/quest'\n\nexport default class RecommendedRoute extends Route {\n  @service declare router: RouterService\n\n  @service declare progress: ProgressService\n\n  @service declare quest: QuestService\n\n  override beforeModel() {\n    // It does some unexpected things like skipping the intro video, and \n    // it also doesn’t work great with certain assumptions made about browser history in the app.\n    // We can put the redirection back once we resolve these issues.\n    // if (this.progress.showPlacementTest) {\n    //   this.router.replaceWith('placement-test')\n    //   return\n    // }\n    // if (this.quest.recommendedTargetRoute) {\n    //   // @ts-expect-error router params type no bueno\n    //   this.router.replaceWith(...this.quest.recommendedTargetRoute)\n    //   return\n    // }\n    this.router.replaceWith('/')\n  }\n}\n","import { inject as service } from '@ember/service'\nimport Route from '@ember/routing/route'\nimport type RouterService from '@ember/routing/router-service'\nimport type { VideoContentSpec } from '@blakeelearning/content-specs-fast-phonics'\nimport { videoContentSpec as contentSpec } from '@blakeelearning/content-specs-fast-phonics'\n\nimport type Transition from '@ember/routing/-private/transition'\nimport type UserService from 'fast-phonics-client/services/user'\nimport { startCase } from 'lodash'\n\ntype ModelForRoute = Model | undefined\n\ninterface Model {\n  manifests: string[][]\n  contentSpec: VideoContentSpec\n}\n\ninterface ParamsForRoute {\n  sound: string\n}\n\nexport default class SoundRoute extends Route<ModelForRoute, ParamsForRoute> {\n  @service declare user: UserService\n\n  @service declare router: RouterService\n\n  get student() {\n    return this.user.student\n  }\n\n  override model({ sound }: ParamsForRoute, transition: Transition) {\n    const studentHasLearntSound = this.student.sounds\n      .flatMap((s) => s.rewards)\n      .includes(sound)\n\n    if (studentHasLearntSound) {\n      const manifests = [[sound, 'sounds']]\n      return { manifests, contentSpec, sound: startCase(sound) }\n    }\n\n    // This student hasn't yet learnt this sound - abort the transition or redirect.\n    if (transition.from) {\n      void transition.abort()\n    } else {\n      void this.router.replaceWith('my-progress.sounds')\n    }\n\n    return undefined\n  }\n}\n","import Route from '@ember/routing/route'\n\ninterface ParamsForRoute {\n  peak_id: string\n  stone_id: string\n}\n\nexport default class StoneRoute extends Route<void, ParamsForRoute> {\n  override model(_params: ParamsForRoute): void {\n    // This empty model hook prevents Ember's default behaviour of attempting\n    // to load a Peak model from the ember-data store that matches the current\n    // peak ID in the URL.\n  }\n}\n","import { inject as service } from '@ember/service'\nimport Route from '@ember/routing/route'\nimport { assert } from '@ember/debug'\nimport { contentSpecsByActivityType } from '@blakeelearning/content-specs-fast-phonics'\nimport type ActivityService from 'fast-phonics-client/services/activity'\nimport type { Log } from '@blakeelearning/log'\nimport type ProgressService from 'fast-phonics-client/services/progress'\nimport type RouterService from '@ember/routing/router-service'\nimport type Transition from '@ember/routing/-private/transition'\nimport type { ParamsFor } from 'fast-phonics-client/utils/route-model'\nimport type StoneRoute from 'fast-phonics-client/routes/stone'\nimport type UserService from 'fast-phonics-client/services/user'\nimport type AssignmentsService from 'fast-phonics-client/services/assignments'\n\nexport type ParamsForStoneRoute = ParamsFor<StoneRoute>\n\ntype ActivityContentSpec =\n  | (typeof contentSpecsByActivityType)['book']\n  | (typeof contentSpecsByActivityType)['interactive']\n  | (typeof contentSpecsByActivityType)['quiz']\n  | (typeof contentSpecsByActivityType)['video']\ninterface ModelForRoute {\n  manifests: string[][]\n  variables: Record<string, unknown>\n  peakId: number\n  stoneId: string\n  activityId: string\n  activityType: keyof typeof contentSpecsByActivityType\n  contentSpec: ActivityContentSpec\n  completeVideoCalled?: boolean\n  completeBookQuizCalled?: boolean\n  assignmentMode: boolean\n}\n\nexport default class StoneIndexRoute extends Route<ModelForRoute> {\n  @service declare activity: ActivityService\n\n  @service declare log: Log\n\n  @service declare user: UserService\n\n  @service declare progress: ProgressService\n\n  @service declare router: RouterService\n\n  @service declare assignments: AssignmentsService\n\n  get lessonsProgressData() {\n    return this.progress.lessonsProgressData\n  }\n\n  get studentFirstName(): string {\n    return this.user.student.firstName\n  }\n\n  get userRewards() {\n    return this.user.student.rewardTotals\n  }\n\n  override beforeModel(transition: Transition): void {\n    if (this.assignments.currentAssignment) return\n    if (this.progress.showPlacementTest) {\n      void this.router.transitionTo('placement-test')\n      return\n    }\n\n    const parent = transition.to?.parent\n    assert('transition is not null', parent)\n    const { params } = parent\n\n    const { peak_id, stone_id: stoneId } = params\n    const peakId = Number(peak_id)\n\n    assert('stoneId is defined', stoneId !== undefined)\n    const canPlayStone = this.progress.canPlayStone(peakId, stoneId)\n\n    if (!canPlayStone) {\n      // Send them to the peaks view.\n      void this.router.replaceWith('peaks.peak', peakId)\n    }\n  }\n\n  override model(): ModelForRoute {\n    const { peak_id, stone_id: stoneId } = this.paramsFor(\n      'stone',\n    ) as ParamsForStoneRoute\n    const peakId = Number(peak_id)\n\n    const activityResult = this.activity.findActivityByStoneId(peakId, stoneId)\n    if (!activityResult.ok) throw new Error(activityResult.errorMessage)\n    const { id: activityId, activityType } = activityResult.activity\n    const {\n      studentFirstName,\n      userRewards,\n      lessonsProgressData: userProgress,\n    } = this\n\n    const assignmentMode = Boolean(this.assignments.currentAssignment)\n    const manifests = [[stoneId, `activities/peaks/${peakId.toFixed()}`]]\n    const variables = {\n      studentFirstName,\n      userRewards,\n      userProgress,\n      ASSIGNMENT_MODE: assignmentMode,\n    }\n\n    assert(\n      'activityType is set',\n      activityType === 'book' ||\n        activityType === 'video' ||\n        activityType === 'quiz' ||\n        activityType === 'interactive',\n    )\n    const contentSpec = contentSpecsByActivityType[activityType]\n\n    return {\n      manifests,\n      variables,\n      peakId,\n      stoneId,\n      activityId,\n      activityType,\n      contentSpec,\n      assignmentMode\n    }\n  }\n}\n","import { inject as service } from '@ember/service'\nimport Route from '@ember/routing/route'\nimport { assert } from '@ember/debug'\nimport type { YetiShopContentSpec } from '@blakeelearning/content-specs-fast-phonics'\nimport { yetiShopContentSpec as contentSpec } from '@blakeelearning/content-specs-fast-phonics'\nimport type RouterService from '@ember/routing/router-service'\nimport type ActivityService from 'fast-phonics-client/services/activity'\nimport type ProgressService from 'fast-phonics-client/services/progress'\nimport type UserService from 'fast-phonics-client/services/user'\nimport { graphql } from 'fast-phonics-client/graphql'\nimport type ApolloService from 'fast-phonics-client/services/apollo'\n\nexport interface PurchasedYetis {\n  category: string\n  item: string\n}\n\ninterface Yeti {\n  id: string\n  price: number\n}\ninterface ModelForRoute {\n  manifests: string[][]\n  variables: Record<string, unknown>\n  contentSpec: YetiShopContentSpec\n  yetis: Yeti[]\n}\n\ngraphql(/* GraphQL */ `\n  fragment YetiDataFragment on Yeti {\n    id\n    price\n  }\n`)\n\nconst YetiQueryDocument = graphql(/* GraphQL */ `\n  query GetYetis {\n    yetis {\n      ...YetiDataFragment\n    }\n  }\n`)\n\nexport default class YetiShopRoute extends Route<ModelForRoute> {\n  @service declare user: UserService\n\n  @service declare router: RouterService\n\n  @service declare activity: ActivityService\n\n  @service declare progress: ProgressService\n\n  @service declare apollo: ApolloService\n\n  get rewardTotals() {\n    return this.user.student.rewardTotals\n  }\n\n  get coins(): number {\n    assert('coins is set', this.rewardTotals.coins)\n    return this.rewardTotals.coins\n  }\n\n  get lessonsProgressData() {\n    return this.progress.lessonsProgressData\n  }\n\n  get hasFinishedProgram(): boolean {\n    return this.progress.hasFinishedProgram\n  }\n\n  get selectedYeti(): string {\n    return this.user.student.selectedYeti\n  }\n\n  get purchasedYetis(): PurchasedYetis[] {\n    return this.user.student.purchases.map(({ category, item }) => {\n      return { category, item }\n    })\n  }\n\n  override beforeModel(): void {\n    if (this.progress.showPlacementTest) {\n      void this.router.transitionTo('placement-test')\n    }\n  }\n\n  override async model(): Promise<ModelForRoute> {\n    const {\n      data: { yetis },\n    } = await this.apollo.query({\n      query: YetiQueryDocument,\n    })\n\n    const { purchasedYetis, coins, selectedYeti } = this\n\n    const yetiShopVariables = {\n      purchases: purchasedYetis,\n      coins,\n      selectedYeti,\n      yetis: yetis.map(({ id, price }) => ({ id, price })),\n    }\n\n    const manifests = [['index', 'activities/yeti-shop']]\n    const variables = yetiShopVariables\n    return { manifests, variables, contentSpec, yetis }\n  }\n}\n","import Service from '@ember/service'\nimport { assert } from '@ember/debug'\nimport { graphql } from 'fast-phonics-client/graphql'\nimport { useQuery } from 'fast-phonics-client/resources/query'\n\ntype PositionResult =\n  | { ok: true; id: string }\n  | { ok: false; errorMessage: string }\ntype StoneResult =\n  | { ok: true; id: number }\n  | { ok: false; errorMessage: string }\ntype ActivityResult =\n  | { ok: true; activity: Activity }\n  | { ok: false; errorMessage: string }\n\nexport interface Activity {\n  activityType: string\n  id: string\n  manifestBundle: string\n  manifestKey: string\n  peak: number\n  positionInPeak: number\n}\n\ngraphql(/* GraphQL */ `\n  fragment ActivityData on Activity {\n    activityType\n    id\n    manifestBundle\n    manifestKey\n    peak\n    positionInPeak\n  }\n`)\n\nconst ActivitiesQueryDocument = graphql(/* GraphQL */ `\n  query GetActivities {\n    activities {\n      ...ActivityData\n    }\n  }\n`)\n\nexport default class ActivityService extends Service {\n  _activitiesQuery = useQuery(this, () => {\n    return {\n      query: ActivitiesQueryDocument,\n    }\n  })\n\n  get activities(): Activity[] {\n    if (!this._activitiesQuery.current.data) {\n      throw new Error('Activities Service has not been setup')\n    }\n    return this._activitiesQuery.current.data.activities.map(\n      ({\n        activityType,\n        id,\n        manifestBundle,\n        manifestKey,\n        peak,\n        positionInPeak,\n      }) => ({\n        activityType: activityType.toLowerCase(),\n        id,\n        manifestBundle,\n        manifestKey,\n        peak,\n        positionInPeak,\n      }),\n    )\n  }\n\n  get lastActivity() {\n    const lastActivity = this.activities.at(-1)\n    assert('lastActivity is undefined', typeof lastActivity !== 'undefined')\n    return lastActivity\n  }\n\n  get lastPeak(): number {\n    assert(\n      'lastActivity.peak is of type number',\n      typeof this.lastActivity.peak === 'number',\n    )\n    return this.lastActivity.peak\n  }\n\n  /**\n   * Converts positionInPeak to stoneId so the content-interactive knows which activity to load\n   */\n  findStoneIdFor(peakId: number, positionInPeak: number): PositionResult {\n    const activity = this.activities.find(\n      (a) => a.peak === peakId && a.positionInPeak === positionInPeak,\n    )\n\n    if (activity) {\n      assert(\n        'activity has valid manifestKey',\n        typeof activity.manifestKey === 'string',\n      )\n      return {\n        ok: true,\n        id: activity.manifestKey,\n      }\n    }\n\n    return {\n      ok: false,\n      errorMessage: `Check that Peak ID (${peakId.toFixed()}) & Position in Peak (${positionInPeak.toFixed()}) are returning a valid Activity (${String(\n        activity,\n      )})`,\n    }\n  }\n\n  /**\n   * Finds positionInPeak based off the stoneId\n   */\n  findPositionInPeakFor(peakId: number, stoneId: string): StoneResult {\n    const activity = this.activities.find(\n      (a) => a.peak === peakId && a.manifestKey === stoneId,\n    )\n\n    if (activity) {\n      assert(\n        'activity has valid positionInPeak',\n        typeof activity.positionInPeak === 'number',\n      )\n      return {\n        ok: true,\n        id: activity.positionInPeak,\n      }\n    }\n\n    return {\n      ok: false,\n      errorMessage: `Check that Peak ID (${peakId.toFixed()}) & Stone ID (${stoneId}) are returning a valid Activity (${String(\n        activity,\n      )})`,\n    }\n  }\n\n  /**\n   * Finds the activity ID based off positionInPeak\n   */\n  findActivityIdByPosition(\n    peakId: number,\n    positionInPeak: number,\n  ): PositionResult {\n    const activity = this.activities.find(\n      (a) => a.peak === peakId && a.positionInPeak === positionInPeak,\n    )\n\n    if (activity) {\n      return {\n        ok: true,\n        id: activity.id,\n      }\n    }\n\n    return {\n      ok: false,\n      errorMessage: `Check that Peak ID (${peakId.toFixed()}) & Position in Peak (${positionInPeak.toFixed()}) are returning a valid Activity (${String(\n        activity,\n      )})`,\n    }\n  }\n\n  /**\n   * Finds the activity based off Stone Id\n   */\n  findActivityByStoneId(peakId: number, stoneId: string): ActivityResult {\n    const activity = this.activities.find(\n      (a) => a.peak === peakId && a.manifestKey === stoneId,\n    )\n\n    if (activity) {\n      return {\n        ok: true,\n        activity,\n      }\n    }\n\n    return {\n      ok: false,\n      errorMessage: `Check that Peak ID (${peakId.toFixed()}) & Stone ID (${stoneId}) are returning a valid Activity (${String(\n        activity,\n      )})`,\n    }\n  }\n\n  findActivityById(id: string): ActivityResult {\n    const activity = this.activities.find((a) => a.id === id)\n    if (activity) {\n      return {\n        ok: true,\n        activity,\n      }\n    }\n    return {\n      ok: false,\n      errorMessage: `Check that Activity ID (${id}) is returning a valid Activity (${String(\n        activity,\n      )})`,\n    }\n  }\n\n  async load() {\n    await this._activitiesQuery.current.result()\n  }\n}\n\ndeclare module '@ember/service' {\n  interface Registry {\n    activity: ActivityService\n  }\n}\n","import type {\n  ApolloQueryResult,\n  FetchResult,\n  MutationOptions,\n  NormalizedCacheObject,\n  Observable,\n  ObservableQuery,\n  OperationVariables,\n  QueryOptions,\n  WatchFragmentOptions,\n  WatchFragmentResult,\n  WatchQueryOptions,\n} from '@apollo/client/core'\nimport {\n  createHttpLink,\n  from,\n  InMemoryCache,\n  ApolloClient,\n} from '@apollo/client/core'\nimport introspectionResult from 'fast-phonics-client/graphql/introspection-result'\nimport config from 'fast-phonics-client/config/environment'\nimport type { TypedTypePolicies } from 'fast-phonics-client/graphql/apollo-helpers'\nimport { waitFor } from '@ember/test-waiters'\nimport { onError } from '@apollo/client/link/error'\nimport { loadErrorMessages, loadDevMessages } from '@apollo/client/dev'\nimport { runInDebug } from '@ember/debug'\nimport Service, { service } from '@ember/service'\nimport type { Log } from '@blakeelearning/log'\nimport { isTesting, macroCondition } from '@embroider/macros'\nimport { RetryLink } from '@apollo/client/link/retry'\nimport { isApolloNetworkErrorRetryable } from 'fast-phonics-client/utils/errors'\n\nrunInDebug(() => {\n  loadDevMessages()\n  loadErrorMessages()\n})\n\nconst {\n  APP: { apiEndpoint, apollo },\n} = config\n\nlet apolloURL = '/api/graphql'\n\nif (apiEndpoint) {\n  apolloURL = new URL(apolloURL, apiEndpoint).href\n}\n\nconst typePolicies: TypedTypePolicies = {}\n\nexport default class ApolloService extends Service {\n  @service\n  declare log: Log\n\n  #client: ApolloClient<NormalizedCacheObject>\n\n  constructor(properties?: object) {\n    super(properties)\n\n    const cache = new InMemoryCache({\n      typePolicies,\n      // /**\n      //  * Declare Possible Types\n      //  *\n      //  * This is required for when we use fragments on union types or interfaces\n      //  * Otherwise Apollo doesn't know what to do, and strips all the fields from the response\n      //  * @see {@link https://github.com/apollographql/apollo-client/issues/7050}\n      //  * @see {@link https://www.apollographql.com/docs/react/data/fragments/#using-fragments-with-unions-and-interfaces}\n      //  */\n      possibleTypes: introspectionResult.possibleTypes,\n    })\n\n    const httpLink = createHttpLink({\n      uri: apolloURL,\n      credentials: 'include',\n    })\n\n    const errorLink = onError(({ graphQLErrors, networkError }) => {\n      if (graphQLErrors) {\n        graphQLErrors.forEach(({ message, ...error }) => {\n          this.log.error(message, error)\n        })\n      }\n\n      if (networkError) {\n        this.log.error(networkError)\n      }\n    })\n\n    // This prevents retries from slowing down tests\n    let delayOpts = undefined\n    if (macroCondition(isTesting())) {\n      delayOpts = { delay: () => 0 }\n    }\n    const retryLink = new RetryLink({\n      ...delayOpts,\n      attempts: {\n        max: 5,\n        retryIf: (error, { variables }) => {\n          return (\n            isApolloNetworkErrorRetryable(error) &&\n            !!(variables as { input?: { attemptUuid?: string } }).input\n              ?.attemptUuid\n          )\n        },\n      },\n    })\n\n    this.#client = new ApolloClient({\n      cache,\n      link: from([retryLink, errorLink, httpLink]),\n      devtools: {\n        enabled: apollo.connectToDevTools ?? false,\n      },\n    })\n  }\n\n  get cache() {\n    return this.#client.cache\n  }\n\n  override willDestroy() {\n    void this.#client.clearStore()\n  }\n\n  @waitFor\n  async mutate<\n    T = unknown,\n    TVariables extends OperationVariables = OperationVariables,\n  >(options: MutationOptions<T, TVariables>): Promise<FetchResult<T>> {\n    return this.#client.mutate(options)\n  }\n\n  @waitFor\n  async query<\n    T = unknown,\n    TVariables extends OperationVariables = OperationVariables,\n  >(options: QueryOptions<TVariables, T>): Promise<ApolloQueryResult<T>> {\n    return this.#client.query(options)\n  }\n\n  watchQuery<\n    T = unknown,\n    TVariables extends OperationVariables = OperationVariables,\n  >(options: WatchQueryOptions<TVariables, T>): ObservableQuery<T, TVariables> {\n    return this.#client.watchQuery(options)\n  }\n\n  watchFragment<TFragmentData = unknown, TVariables = OperationVariables>(\n    options: WatchFragmentOptions<TFragmentData, TVariables>,\n  ): Observable<WatchFragmentResult<TFragmentData>> {\n    return this.#client.watchFragment(options)\n  }\n}\n\ndeclare module '@ember/service' {\n  interface Registry {\n    apollo: ApolloService\n  }\n}\n","import Service, { inject as service } from '@ember/service'\nimport type ActivityService from 'fast-phonics-client/services/activity'\nimport { graphql } from 'fast-phonics-client/graphql'\nimport { useQuery } from 'fast-phonics-client/resources/query'\nimport type UserService from './user'\nimport type ErrorHandlerService from './error-handler'\nimport { NotAuthenticatedError } from './error-handler'\nimport type Transition from '@ember/routing/transition'\nimport type RouterService from '@ember/routing/router-service'\n\ngraphql(/* GraphQL */ `\n  fragment StudentAssignmentDataFragment on Student {\n    assignment {\n      ... on AssignmentPeak {\n        positionInPeak\n        endAt\n        id\n        peak\n        thumbnailUrl\n        title\n      }\n      __typename\n    }\n  }\n`)\n\nconst StudentAssignmentQueryDocument = graphql(/* GraphQL */ `\n  query GetStudentAssignment {\n    student {\n      ... on Student {\n        id\n        ...StudentAssignmentDataFragment\n      }\n      ... on NotAuthenticatedError {\n        code\n      }\n      __typename\n    }\n  }\n`)\nexport default class AssignmentsService extends Service {\n  @service declare activity: ActivityService\n\n  @service declare user: UserService\n\n  @service declare router: RouterService\n\n  @service declare errorHandler: ErrorHandlerService\n\n  _studentAssignmentQuery = useQuery(this, () => {\n    return {\n      query: StudentAssignmentQueryDocument,\n    }\n  })\n\n  get currentAssignment() {\n    if (!this._studentAssignmentQuery.current.data) {\n      throw new Error('Assignment Service has not been setup')\n    }\n\n    const student = this._studentAssignmentQuery.current.data.student\n\n    if (student.__typename === 'NotAuthenticatedError') {\n      this.errorHandler.handleError(\n        'AssignmentsService student not authenticated',\n        new NotAuthenticatedError(\n          'GraphQL GetStudentAssignment query returned NotAuthenticatedError',\n        ),\n      )\n      return\n    }\n\n    return student.assignment\n  }\n\n  get progress() {\n    if (!this.currentAssignment) throw new Error('No current assignment found')\n    return {\n      peak: this.currentAssignment.peak,\n      positionInPeak: this.currentAssignment.positionInPeak,\n      showPlacementTest: false,\n    }\n  }\n\n  async setup() {\n    await this._studentAssignmentQuery.current.result()\n  }\n\n  async fetch() {\n    await this._studentAssignmentQuery.current.refetch()\n  }\n\n  startAssignment() {\n    if (!this.currentAssignment) {\n      throw new Error('No current assignment found')\n    }\n    const peak = this.currentAssignment.peak\n    this.router.transitionTo('peaks.peak', peak)\n  }\n\n  checkTransition(transition: Transition) {\n    if (transition.targetName === 'login') return\n    if (transition.targetName === 'logout') return\n\n    if (!this.currentAssignment) return\n\n    if (transition.targetName?.startsWith('peaks.peak.')) {\n      const targetPeakId = Number(transition.to?.parent?.params['peak_id'])\n      if (this.currentAssignment.peak !== targetPeakId) {\n        void this.router.replaceWith('assignment')\n      }\n      return\n    }\n\n    if (transition.targetName === 'stone.index') {\n      const parentPeakId = Number(transition.to?.parent?.params['peak_id'])\n      const parentStoneId = transition.to?.parent?.params['stone_id']\n\n      const assignmentStoneId = this.activity.findStoneIdFor(\n        this.currentAssignment.peak,\n        this.currentAssignment.positionInPeak,\n      )\n\n      if (!assignmentStoneId.ok) throw new Error(assignmentStoneId.errorMessage)\n\n      if (\n        this.currentAssignment.peak !== parentPeakId ||\n        assignmentStoneId.id !== parentStoneId\n      ) {\n        void this.router.replaceWith('assignment')\n      }\n      return\n    }\n    void this.router.replaceWith('assignment')\n  }\n}\n\ndeclare module '@ember/service' {\n  interface Registry {\n    assignments: AssignmentsService\n  }\n}\n","import Service, { inject as service } from '@ember/service'\nimport { tracked } from '@glimmer/tracking'\nimport type { FeatureService } from '@blakeelearning/features'\nimport { graphql } from 'fast-phonics-client/graphql'\nimport { useMutation } from 'fast-phonics-client/resources/mutation'\nimport type RouterService from '@ember/routing/router-service'\nimport type UserService from './user'\n\nexport const resetPeakProgressMutationDocument = graphql(/* GraphQL */ `\n  mutation ResetPeakProgress($input: StudentProgressPeakResetInput!) {\n    studentProgressPeakReset(input: $input) {\n      ... on StudentProgressPeakResetOutput {\n        student {\n          ...StudentProgressDataFragment\n        }\n      }\n      __typename\n    }\n  }\n`)\n\nexport const resetPlacementTestProgressMutationDocument = graphql(\n  /* GraphQL */ `\n    mutation ResetPlacementTestProgress {\n      studentProgressPlacementTestReset {\n        ... on StudentProgressPlacementTestResetOutput {\n          student {\n            ...StudentProgressDataFragment\n          }\n        }\n        __typename\n      }\n    }\n  `,\n)\n\nexport default class DebugModeService extends Service {\n  @service declare features: FeatureService\n\n  @service declare user: UserService\n\n  @service declare router: RouterService\n\n  @tracked enabled = false\n\n  resetPeakProgressMutation = useMutation(\n    this,\n    resetPeakProgressMutationDocument,\n  )\n\n  resetPlacementTestProgressMutation = useMutation(\n    this,\n    resetPlacementTestProgressMutationDocument,\n  )\n\n  get debugAllowed(): boolean {\n    return this.features.isEnabled('debug-allowed')\n  }\n\n  enable(): void {\n    if (this.debugAllowed) {\n      this.enabled = true\n    }\n  }\n\n  disable(): void {\n    if (this.debugAllowed) {\n      this.enabled = false\n    }\n  }\n\n  async resetPeakProgress(peak: number, positionInPeak: number) {\n    if (this.enabled) {\n      await this.resetPeakProgressMutation.current.mutate({\n        variables: {\n          input: {\n            peak,\n            positionInPeak,\n          },\n        },\n      })\n      void this.router.replaceWith('/')\n    }\n  }\n\n  async resetPlacementTestProgress() {\n    if (this.enabled) {\n      await this.resetPlacementTestProgressMutation.current.mutate({})\n      void this.router.replaceWith('/')\n    }\n  }\n}\n\ndeclare module '@ember/service' {\n  interface Registry {\n    'debug-mode': DebugModeService\n  }\n}\n","import Service, { inject as service } from '@ember/service'\nimport type { ErrorLike } from 'fast-phonics-client/utils/errors'\nimport {\n  errorIsActionable,\n  isErrorLike,\n} from 'fast-phonics-client/utils/errors'\nimport type RouterService from '@ember/routing/router-service'\nimport type { Log } from '@blakeelearning/log'\nimport type LoadingUiService from 'fast-phonics-client/services/loading-ui'\n\nexport type UnhandledError = Partial<ErrorLike>\n\nexport class NotAuthenticatedError extends Error {\n  constructor(message: string) {\n    super(message)\n    this.name = 'NotAuthenticatedError'\n  }\n}\n\nexport default class ErrorHandlerService extends Service {\n  @service declare loadingUi: LoadingUiService\n\n  @service declare router: RouterService\n\n  @service declare log: Log\n\n  /**\n   * Transitions the browser to an error page appropriate to the error provided.\n   */\n  transitionToErrorRoute(error?: unknown): void {\n    let route = 'error'\n    if (error instanceof NotAuthenticatedError) {\n      route = 'error.unauthorized'\n    }\n    this.loadingUi.start(() => {\n      void this.router.transitionTo(route)\n    })\n  }\n\n  /**\n   * This is a handler for any time Content code calls\n   * `externalController.unhandledError`, indicating that it has encountered an\n   * error it cannot handle.  It:\n   *\n   * 1. logs the error to rollbar\n   * 2. transitions to an error route\n   *\n   * Because these calls come from Content, we can't depend on any instanceof\n   * checks.\n   */\n  handleContentUnhandledError(error: unknown): void {\n    let name = 'Error'\n    let message = 'Unknown Error'\n\n    if (typeof error === 'object' && error !== null) {\n      if ('name' in error && typeof error.name === 'string') {\n        name = error.name\n      }\n\n      if ('message' in error && typeof error.message === 'string') {\n        message = error.message\n      }\n    }\n\n    this.handleError(`Unhandled ${name} returned from content: ${message}`)\n  }\n\n  /**\n   * This is a general-purpose function for handling errors.  It accepts an\n   * error message and an optional error object.  With these it:\n   *\n   * 1. logs the error to rollbar, unless the error is considered un-actionable\n   * 2. transitions to an error route\n   *\n   * @see {@link #errorIsActionable}\n   */\n  handleError(message: string, error?: unknown) {\n    this.logErrorIfActionable(message, error)\n    this.transitionToErrorRoute(error)\n  }\n\n  /**\n   * This is a general-purpose handler for any time that controller code\n   * encounters an unrecoverable error.  This is any error that occurs in\n   * mathseeds-prime-client in the course of actioning a request from Content that\n   * we know that the Content code has no means of recovering from. It:\n   *\n   * 1. logs the error to rollbar\n   * 2. transitions to an error route\n   */\n  handleUnrecoverableError(error: unknown): void {\n    let message: string\n    if (isErrorLike(error)) {\n      message = error.message\n    } else if (typeof error === 'string') {\n      message = error\n    } else {\n      message = 'Unknown error'\n    }\n    this.handleError(`Unrecoverable error: ${message}`, error)\n  }\n\n  /**\n   * This will log errors that are considered actionable.\n   *\n   * @see {@link #errorIsActionable}\n   */\n  logErrorIfActionable(message: string, error?: unknown): void {\n    if (!error || !(error instanceof Error)) {\n      this.log.error(message)\n    } else if (errorIsActionable(error)) {\n      this.log.error(message, error)\n    }\n  }\n}\n\ndeclare module '@ember/service' {\n  interface Registry {\n    'error-handler': ErrorHandlerService\n  }\n}\n","import type Owner from '@ember/owner'\nimport Service, { inject as service } from '@ember/service'\nimport { ContentLoader, activityAccent } from '@blakeelearning/content-loader'\nimport type { InteractiveConfig, Manifest } from '@blakeelearning/content-loader-core'\nimport config from 'fast-phonics-client/config/environment'\nimport type UserService from './user'\n\nexport default class JesterLoaderService extends Service {\n  @service()\n  declare user: UserService\n\n  loader: ContentLoader\n\n  constructor(owner: Owner) {\n    super(owner)\n\n    this.loader = new ContentLoader({\n      variant: activityAccent(this.user.accent),\n      framework: 'jester',\n      config: config.contentLoader.jester,\n    })\n  }\n\n  load(manifests: Manifest[], variables?: Record<string, unknown>): Promise<InteractiveConfig> {\n    return this.loader.load(manifests, variables ?? {})\n  }\n}\n\ndeclare module '@ember/service' {\n  interface Registry {\n    'jester-loader': JesterLoaderService\n  }\n}\n","/* eslint-disable ember/no-runloop */\nimport Service, { inject as service } from '@ember/service'\nimport { later } from '@ember/runloop'\nimport { tracked } from '@glimmer/tracking'\nimport config from 'fast-phonics-client/config/environment'\nimport { getLastNavigationType } from 'fast-phonics-client/utils/navigation'\nimport type RouterService from '@ember/routing/router-service'\n\n/**\n * A service for tracking the loading state of the app, so we can display loading UI\n *\n * This service makes 2 important assumptions:\n * 1. when this service is initialised, we're within the initial page loading cycle\n * 2. other parts of the app are responsible for informing this service when they\n *    start and finish loading\n *\n * Other code will call `start(fn, preDelay)` and `finish(postDelay)` according to\n * their needs, with `preDelay` and `postDelay` being globally configurable.\n * These functions give loading UI a chance to fade in before commencing\n * loading operations, usually Ember route transitions. Similarly, the loading\n * UI has a chance to fade out smoothly once the loading has completed.\n *\n * After initial page load, this service also removes any static loading screen\n * HTML rendered by the server, so that Ember components can assume control of\n * loading UI once the Ember app has booted for the first time.\n *\n * Additionally, the duration of the static loading screen fade out animation\n * can be set to 0 within the app's config, to avoid waiting for animations\n * during testing.\n */\n\nexport default class LoadingUiService extends Service {\n  @service declare router: RouterService\n\n  /**\n   * the current loading state of the app, according to app components that want to display loading UI\n   */\n  @tracked isLoading = true\n\n  staticLoadingElements = document.getElementsByTagName('loading-screen-static')\n\n  /**\n   * Duration of the fade transition in milliseconds\n   */\n  get fadeDuration() {\n    return config.APP.loadingUi.fadeDuration ?? 0\n  }\n\n  /**\n   * Duration of the pre delay in milliseconds\n   */\n  get _preDelay() {\n    return config.APP.loadingUi.preDelay ?? 0\n  }\n\n  /**\n   * Duration of the post delay in milliseconds\n   */\n  get _postDelay() {\n    return config.APP.loadingUi.postDelay ?? 0\n  }\n\n  constructor(owner: Record<string, unknown>) {\n    super(owner)\n    window.addEventListener('pageshow', this._onPageShow)\n  }\n\n  override willDestroy(): void {\n    window.removeEventListener('pageshow', this._onPageShow)\n    super.willDestroy()\n  }\n\n  /**\n   * Starts a loading UI cycle, running the provided callback after an optional delay\n   *\n   * This function will schedule to callback to run after the delay, using\n   * Ember's runloop to apply the delay.\n   *\n   *  @example\n   * loadingUi.start(() => {\n   *   this.router.transitionTo('my-slow-loading-route')\n   * }, 1000)\n   */\n  start(fn?: () => void, preDelay?: number): void {\n    preDelay = preDelay ?? this._preDelay\n    this.isLoading = true\n    if (fn && preDelay > 0) {\n      later(fn, preDelay)\n    } else if (fn) {\n      fn()\n    }\n  }\n\n  /**\n   * Finishes a loading UI cycle, optionally after a delay\n   *\n   * After initial page load, this function will remove any server-rendered\n   * loading screen elements from the DOM.\n   */\n  finish(postDelay?: number): void {\n    postDelay = postDelay ?? this._postDelay\n\n    if (postDelay > 0) {\n      later(() => {\n        this._finishLoading()\n      }, postDelay)\n    } else {\n      this._finishLoading()\n    }\n  }\n\n  _finishLoading(): void {\n    this.isLoading = false\n\n    for (const staticLoadingElement of this.staticLoadingElements) {\n      if (staticLoadingElement instanceof HTMLElement) {\n        this._removeStaticLoadingScreen(staticLoadingElement)\n      }\n    }\n  }\n\n  /**\n   * Removes the static loading element, if it exists\n   */\n  _removeStaticLoadingScreen(staticLoadingElement: HTMLElement): void {\n    staticLoadingElement.addEventListener(\n      'transitionend',\n      () => {\n        staticLoadingElement.remove()\n      },\n      { once: true },\n    )\n    staticLoadingElement.style.setProperty(\n      'transition',\n      `opacity ${this.fadeDuration.toFixed()}ms`,\n    )\n    staticLoadingElement.style.setProperty('opacity', '0')\n  }\n\n  _onPageShow = (pageTransitionEvent: PageTransitionEvent) => {\n    // If the page was loaded from Safari's PageCache or\n    // Firefox's Back/Forward Cache, then our interactives' readyForUserInput\n    // won't fire, as the interactive will be revived in the same state\n    // as when the user was previously using it.\n    // This can occur when using the browser back/forward buttons, or their\n    // equivalent Javascript APIs.\n    // In these circumstances, we assume the loading screen can be removed.\n    const didLoadFromCache = pageTransitionEvent.persisted\n    if (didLoadFromCache && getLastNavigationType() === 'back_forward') {\n      this.finish()\n    }\n  }\n}\n\ndeclare module '@ember/service' {\n  interface Registry {\n    'loading-ui': LoadingUiService\n  }\n}\n","import Service, { service } from '@ember/service'\nimport { contentError } from 'fast-phonics-client/utils/errors'\nimport printImage from 'fast-phonics-client/utils/print-image'\nimport type DeviceDetection from '@blakeelearning/device/device/detection/service'\n\ninterface PrintArgs {\n  certificateUrl: string\n}\nexport interface CertificateData {\n  peakId: number\n  name: string\n  colour: 'gold' | 'silver' | 'bronze'\n  timestamp: number\n}\n\nexport default class PeakCertificateService extends Service {\n  @service('device/detection') declare deviceDetection: DeviceDetection\n\n  /**\n   * Prints a certificate\n   */\n  async print(args: PrintArgs): Promise<void> {\n    try {\n      const certificateUrl = new URL(args.certificateUrl)\n      if (this.deviceDetection.isNativeMobile) {\n        // The prescence of this param will result in an SVG element with `width=100% height=auto` attributes. The mobile apps require this for print layout.\n        certificateUrl.searchParams.set('fitpage', '')\n        // Mobile apps will intercept these calls and take care of printing from there.\n        window.open(certificateUrl.href, '_blank')\n        return\n      }\n\n      await this._printImage(certificateUrl.href)\n    } catch (error) {\n      throw contentError('PrintFailed', error)\n    }\n  }\n\n  _printImage(url: string) {\n    return printImage(url)\n  }\n}\ndeclare module '@ember/service' {\n  interface Registry {\n    'peak-certificate': PeakCertificateService\n  }\n}\n","import Service, { inject as service } from '@ember/service'\nimport type ActivityService from 'fast-phonics-client/services/activity'\nimport {\n  hasFinishedProgram,\n  canPlayPeakLesson,\n  canPlayStoneActivity,\n} from 'fast-phonics-client/utils/progress'\nimport { graphql } from 'fast-phonics-client/graphql'\nimport { useQuery } from 'fast-phonics-client/resources/query'\nimport type UserService from './user'\nimport type ErrorHandlerService from './error-handler'\nimport { NotAuthenticatedError } from './error-handler'\nimport { RollbarIgnoreError } from 'fast-phonics-client/utils/errors'\n\ngraphql(/* GraphQL */ `\n  fragment StudentProgressDataFragment on Student {\n    id\n    progress {\n      lessons {\n        peak\n        positionInPeak\n        showPlacementTest\n      }\n    }\n  }\n`)\n\nconst StudentProgressQueryDocument = graphql(/* GraphQL */ `\n  query GetStudentProgress {\n    student {\n      ... on Student {\n        ...StudentProgressDataFragment\n      }\n      ... on NotAuthenticatedError {\n        code\n      }\n      __typename\n    }\n  }\n`)\nexport default class ProgressService extends Service {\n  @service declare activity: ActivityService\n\n  @service declare user: UserService\n\n  @service declare errorHandler: ErrorHandlerService\n\n  _studentProgressQuery = useQuery(this, () => {\n    return {\n      query: StudentProgressQueryDocument,\n    }\n  })\n\n  get lastActivity() {\n    const { lastActivity } = this.activity\n    return lastActivity\n  }\n\n  get lessonsProgressData() {\n    if (!this._studentProgressQuery.current.data) {\n      throw new Error('Progress Service has not been setup')\n    }\n\n    switch (this._studentProgressQuery.current.data.student.__typename) {\n      case 'Student':\n        return this._studentProgressQuery.current.data.student.progress.lessons\n\n      case 'NotAuthenticatedError':\n        this.errorHandler.handleError(\n          'ProgressService student not authenticated',\n          new NotAuthenticatedError(\n            'GraphQL GetStudentProgress query returned NotAuthenticatedError',\n          ),\n        )\n        /**\n         * The errorHandler.handleError call will redirect the user to the login page.\n         * Throwing a RollbarIgnoreError here keeps our return type as non-nullable.\n         */\n        throw new RollbarIgnoreError()\n\n      default:\n        this.errorHandler.handleError(\n          'GetStudentProgress query returned unhandled student type',\n          new Error(\n            // @ts-expect-error this will catch any unhandled types that are added to the BE.\n            // eslint-disable-next-line @typescript-eslint/restrict-template-expressions\n            `GetStudentProgress query returned unhandled student type: ${this._studentProgressQuery.current.data.student.__typename}`,\n          ),\n        )\n        throw new RollbarIgnoreError()\n    }\n  }\n\n  get lastAccessiblePeak() {\n    const progressPeak = this.lessonsProgressData.peak\n    const { lastPeak } = this.activity\n\n    return Math.min(progressPeak, lastPeak)\n  }\n\n  get hasFinishedProgram() {\n    return hasFinishedProgram(this.lessonsProgressData, this.lastActivity)\n  }\n\n  get hasViewedIntroVideo() {\n    return this.user.student.viewedIntroVideo\n  }\n\n  get showPlacementTest() {\n    return this.lessonsProgressData.showPlacementTest\n  }\n\n  canPlayPeak(peakId: number) {\n    return (\n      peakId <= this.lastAccessiblePeak &&\n      canPlayPeakLesson(this.lessonsProgressData, peakId).ok\n    )\n  }\n\n  canPlayStone(peakId: number, stoneId: string) {\n    const requestedPosition = this.activity.findPositionInPeakFor(\n      peakId,\n      stoneId,\n    )\n\n    if (requestedPosition.ok) {\n      const canPlayStone = canPlayStoneActivity(\n        this.lessonsProgressData,\n        peakId,\n        requestedPosition.id,\n      )\n      return canPlayStone.ok\n    }\n    return false\n  }\n\n  async setup() {\n    await this._studentProgressQuery.current.result()\n  }\n\n  async fetch() {\n    await this._studentProgressQuery.current.refetch()\n  }\n}\n\ndeclare module '@ember/service' {\n  interface Registry {\n    progress: ProgressService\n  }\n}\n","import Service, { service } from '@ember/service'\nimport { graphql } from 'fast-phonics-client/graphql'\nimport {\n  QuestGoalStatus,\n  type StudentQuestGoalAcknowledgeCompleteInput,\n} from 'fast-phonics-client/graphql/graphql'\nimport { useQuery } from 'fast-phonics-client/resources/query'\nimport type ActivityService from './activity'\nimport type { Log } from '@blakeelearning/log'\nimport { tracked } from '@glimmer/tracking'\nimport type RouterService from '@ember/routing/router-service'\nimport { useMutation } from 'fast-phonics-client/resources/mutation'\nimport type LoadingUiService from './loading-ui'\nimport type UserService from './user'\nimport type ErrorHandlerService from './error-handler'\nimport { NotAuthenticatedError } from './error-handler'\n\ngraphql(/* GraphQL */ `\n  fragment StudentQuestDataFragment on Student {\n    id\n    quest {\n      primaryGoal {\n        __typename\n        goalType: __typename\n        ... on QuestGoalPeak {\n          rewardAmount\n          id\n          peak\n          progressCurrent\n          progressTotal\n          status\n        }\n      }\n    }\n  }\n`)\n\nconst StudentQuestQueryDocument = graphql(/* GraphQL */ `\n  query GetStudentQuest {\n    student {\n      ... on Student {\n        ...StudentQuestDataFragment\n      }\n      ... on NotAuthenticatedError {\n        code\n      }\n      __typename\n    }\n  }\n`)\n\nexport const acknowledgeQuestGoalAlertMutationDocument = graphql(/* GraphQL */ `\n  mutation StudentQuestGoalAcknowledgeComplete(\n    $input: StudentQuestGoalAcknowledgeCompleteInput!\n  ) {\n    studentQuestGoalAcknowledgeComplete(input: $input) {\n      ... on StudentQuestGoalAcknowledgeCompleteOutput {\n        student {\n          ...StudentQuestDataFragment\n          ...StudentUserDataFragment\n        }\n      }\n    }\n  }\n`)\n\nexport default class QuestService extends Service {\n  @service declare activity: ActivityService\n\n  @service declare log: Log\n\n  @service declare router: RouterService\n\n  @service declare user: UserService\n\n  @service declare loadingUi: LoadingUiService\n\n  @service declare errorHandler: ErrorHandlerService\n\n  @tracked showQuestAlert = false\n\n  onClose?: () => void\n\n  _studentQuestQuery = useQuery(this, () => {\n    return {\n      query: StudentQuestQueryDocument,\n    }\n  })\n\n  _acknowledgeQuestGoalAlertMutation = useMutation(\n    this,\n    acknowledgeQuestGoalAlertMutationDocument,\n  )\n\n  get currentQuest() {\n    switch (this._studentQuestQuery.current.data?.student.__typename) {\n      case 'Student':\n        return this._studentQuestQuery.current.data.student.quest\n\n      case 'NotAuthenticatedError':\n        this.errorHandler.handleError(\n          'QuestService student not authenticated',\n          new NotAuthenticatedError(\n            'GraphQL GetStudentQuest query returned NotAuthenticatedError',\n          ),\n        )\n        return undefined\n\n      default:\n        this.log.error(\n          // @ts-expect-error this will catch any unhandled types that are added to the BE.\n          // eslint-disable-next-line @typescript-eslint/restrict-template-expressions\n          `GetStudentQuest query returned unhandled student type: ${this._studentQuestQuery.current.data?.student.__typename ?? ''}`,\n        )\n        return undefined\n    }\n  }\n\n  get recommendedTargetRoute() {\n    if (!this.currentQuest) return\n\n    const primaryGoal = this.currentQuest.primaryGoal\n    if (primaryGoal.status === QuestGoalStatus.Incomplete) {\n      // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n      if (primaryGoal.__typename === 'QuestGoalPeak') {\n        const peak = primaryGoal.peak\n        const positionInPeak = primaryGoal.progressCurrent + 1\n        const result = this.activity.findStoneIdFor(peak, positionInPeak)\n\n        if (result.ok) {\n          if (result.id === 'index') {\n            // These are chest unlocks\n            return ['peaks.peak.stones', peak]\n          }\n          return ['stone', peak, result.id]\n        } else {\n          this.log.error(result.errorMessage)\n        }\n      }\n    }\n    return\n  }\n\n  get questGoalForNotification() {\n    const primaryGoal = this.currentQuest?.primaryGoal\n    if (primaryGoal?.status === QuestGoalStatus.ShowCompleteAlert) {\n      return primaryGoal\n    }\n    return undefined\n  }\n\n  async acknowledgeQuestGoalAlert(\n    input: StudentQuestGoalAcknowledgeCompleteInput,\n  ) {\n    const response =\n      await this._acknowledgeQuestGoalAlertMutation.current.mutate({\n        variables: {\n          input,\n        },\n      })\n    if (!response) {\n      throw new Error(\n        'GraphQL StudentQuestGoalAcknowledgeComplete mutation failed',\n      )\n    }\n\n    switch (response.studentQuestGoalAcknowledgeComplete.__typename) {\n      case 'NotAuthenticatedError':\n        throw new NotAuthenticatedError(\n          'GraphQL StudentQuestGoalAcknowledgeComplete mutation returned NotAuthenticatedError',\n        )\n\n      case 'StudentQuestGoalAcknowledgeCompleteOutput':\n        return // Happy path\n\n      default:\n        this.log.error(\n          // @ts-expect-error this is to catch unhandled types being added to the backend which we have not yet catered for in the client\n          // eslint-disable-next-line @typescript-eslint/restrict-template-expressions\n          `StudentQuestGoalAcknowledgeComplete mutation returned unhandled __typename: ${response.studentQuestGoalAcknowledgeComplete.__typename}`,\n        )\n    }\n  }\n\n  closeQuestAlert() {\n    this.showQuestAlert = false\n    if (this.onClose) {\n      const { onClose } = this\n      delete this.onClose\n      onClose()\n    }\n  }\n\n  displayQuestAlertIfRequired(onClose?: NonNullable<typeof this.onClose>) {\n    if (this.questGoalForNotification) {\n      if (onClose) this.onClose = onClose\n      this.loadingUi.start()\n      this.showQuestAlert = true\n    } else if (onClose) {\n      onClose()\n    }\n  }\n\n  async fetch() {\n    await this._studentQuestQuery.current.refetch()\n  }\n\n  async setup() {\n    await this._studentQuestQuery.current.result()\n  }\n}\n\ndeclare module '@ember/service' {\n  interface Registry {\n    quest: QuestService\n  }\n}\n","import Service from '@ember/service'\nimport config from 'fast-phonics-client/config/environment'\n\nconst CACHE_BUFFER_MS = 30_000\n\ninterface AuthSessionData {\n  expired_at: number | null\n  issued_at: number | null\n  token: string | null\n  ttl_seconds: number | null\n  user_id: number | string | null\n  user_roles: string[] | null\n  user_type: string | null\n}\n\ninterface AuthSessionResponse {\n  data: AuthSessionData | null\n}\n\ninterface CachedStudentToken {\n  expiresAtMs: number | null\n  studentId: string\n  token: string\n}\n\nexport default class SessionTokenService extends Service {\n  private cachedStudentToken: CachedStudentToken | undefined = undefined\n\n  async getTokenForStudent(studentId: number | string): Promise<string | null> {\n    const expectedStudentId = String(studentId)\n\n    if (this.hasUsableCachedToken(expectedStudentId)) {\n      return this.cachedStudentToken?.token ?? null\n    }\n\n    const data = await this.requestSessionData()\n\n    if (!this.isValidStudentSession(data, expectedStudentId)) {\n      this.cachedStudentToken = undefined\n      return null\n    }\n\n    const expiresAtMs =\n      typeof data.expired_at === 'number' ? data.expired_at * 1000 : null\n\n    if (this.shouldCacheToken(expiresAtMs)) {\n      this.cachedStudentToken = {\n        expiresAtMs,\n        studentId: expectedStudentId,\n        token: data.token,\n      }\n    } else {\n      this.cachedStudentToken = undefined\n    }\n\n    return data.token\n  }\n\n  private async requestSessionData(): Promise<AuthSessionData | null> {\n    const response = await fetch(config.authSessionURL, {\n      credentials: 'include',\n      headers: {\n        accept: 'application/json',\n      },\n    })\n\n    if (!response.ok) {\n      throw new Error(\n        `Session token request failed with status ${String(response.status)}`,\n      )\n    }\n\n    const { data } = (await response.json()) as AuthSessionResponse\n    return data\n  }\n\n  private hasUsableCachedToken(studentId: string): boolean {\n    const cachedStudentToken = this.cachedStudentToken\n\n    if (!cachedStudentToken) return false\n    if (cachedStudentToken.studentId !== studentId) return false\n\n    return this.shouldCacheToken(cachedStudentToken.expiresAtMs)\n  }\n\n  private isValidStudentSession(\n    data: AuthSessionData | null,\n    expectedStudentId: string,\n  ): data is AuthSessionData & { token: string } {\n    return Boolean(\n      data &&\n        typeof data.token === 'string' &&\n        data.token.length > 0 &&\n        data.user_type === 'student' &&\n        String(data.user_id) === expectedStudentId,\n    )\n  }\n\n  private shouldCacheToken(expiresAtMs: number | null): boolean {\n    return expiresAtMs === null || expiresAtMs > Date.now() + CACHE_BUFFER_MS\n  }\n}\n\ndeclare module '@ember/service' {\n  interface Registry {\n    'session-token': SessionTokenService\n  }\n}\n","import { TimeOnTask } from '@blakeelearning/totter'\nimport Service, { inject as service } from '@ember/service'\nimport config from 'fast-phonics-client/config/environment'\nimport type SessionTokenService from 'fast-phonics-client/services/session-token'\nimport type UserService from 'fast-phonics-client/services/user'\n\ninterface StudentIdentity {\n  id: string | number\n}\n\nexport default class TimeOnTaskService extends Service {\n  @service declare sessionToken: SessionTokenService\n\n  @service declare user: UserService\n\n  TimeOnTaskClass = TimeOnTask\n\n  initialized = false\n\n  totter?: TimeOnTask\n\n  setup() {\n    if (this.initialized) return\n\n    const studentId = String((this.user.student as StudentIdentity).id)\n\n    this.totter = new this.TimeOnTaskClass(studentId, {\n      product: 'fast_phonics',\n      syncOptions: {\n        syncUrl: this.syncUrl(),\n        getAuthCallback: async () => {\n          return (await this.sessionToken.getTokenForStudent(studentId)) ?? ''\n        },\n      },\n    })\n    this.initialized = true\n  }\n\n  async trackRoute(routeName?: string) {\n    if (!routeName || !this.initialized) return\n\n    await this.totter?.trackSession(routeName)\n  }\n\n  private syncUrl() {\n    return `${config.timeOnTaskUrl}/api/v2/complete_events`\n  }\n}\n\ndeclare module '@ember/service' {\n  interface Registry {\n    'time-on-task': TimeOnTaskService\n  }\n}\n","import Service, { inject as service } from '@ember/service'\nimport { graphql } from 'fast-phonics-client/graphql'\nimport { useQuery } from 'fast-phonics-client/resources/query'\nimport config from 'fast-phonics-client/config/environment'\nimport type { Log } from '@blakeelearning/log'\nimport { Accent } from 'fast-phonics-client/graphql/graphql'\nimport type ErrorHandlerService from './error-handler'\nimport { NotAuthenticatedError } from './error-handler'\nimport { RollbarIgnoreError } from 'fast-phonics-client/utils/errors'\nimport { tracked } from '@glimmer/tracking'\nimport {\n  createOfrepInMemoryProvider,\n  type FeatureService,\n  type OfrepFlag,\n} from '@blakeelearning/features'\nimport ky from 'ky'\n\nconst {\n  APP: { loginUrl },\n} = config\n\ngraphql(/* GraphQL */ `\n  fragment RewardTotalsDataFragment on Student {\n    rewardTotals {\n      bookGems\n      coins\n      soundGems\n      wordGems\n    }\n  }\n`)\n\ngraphql(/* GraphQL */ `\n  fragment PeakQuizSummariesDataFragment on Student {\n    peakQuizSummaries {\n      best\n      certificate {\n        colour\n        created\n        url\n      }\n      first\n      id\n    }\n  }\n`)\ngraphql(/* GraphQL */ `\n  fragment PurchasesDataFragment on Student {\n    purchases {\n      category\n      item\n      price\n      uuid\n    }\n  }\n`)\ngraphql(/* GraphQL */ `\n  fragment SoundsDataFragment on Student {\n    sounds {\n      peak\n      rewards\n    }\n  }\n`)\ngraphql(/* GraphQL */ `\n  fragment WordsDataFragment on Student {\n    words {\n      peak\n      rewards\n    }\n  }\n`)\n\ngraphql(/* GraphQL */ `\n  fragment StudentUserDataFragment on Student {\n    id\n    backgroundMusicDisabled\n    books\n    averageBestPeakQuizResult\n    abbreviatedName\n    accent\n    firstName\n    selectedYeti\n    viewedIntroVideo\n    rosterEnabled\n    ...PeakQuizSummariesDataFragment\n    ...PurchasesDataFragment\n    ...RewardTotalsDataFragment\n    ...SoundsDataFragment\n    ...WordsDataFragment\n  }\n`)\n\nconst StudentQueryDocument = graphql(/* GraphQL */ `\n  query GetStudent {\n    student {\n      ... on Student {\n        ...StudentUserDataFragment\n      }\n      ... on NotAuthenticatedError {\n        code\n      }\n      __typename\n    }\n  }\n`)\n\ninterface OfrepBulkEvaluationResponse {\n  flags: OfrepFlag[]\n}\nexport default class UserService extends Service {\n  @service declare log: Log\n\n  @service declare features: FeatureService\n\n  @service declare errorHandler: ErrorHandlerService\n\n  /**\n   * This is stored one-off when setting up the service so that activities\n   * don't get reloaded when the student record is updated.\n   */\n  @tracked backgroundMusicDisabled = false\n\n  _studentQuery = useQuery(this, () => {\n    return {\n      query: StudentQueryDocument,\n    }\n  })\n\n  async setup() {\n    await this._studentQuery.current.result()\n    await this.setupFeatureFlags()\n    this.backgroundMusicDisabled = this.student.backgroundMusicDisabled\n    this.log.setPerson({ id: this.student.id })\n  }\n\n  async setupFeatureFlags() {\n    const response = await ky.post('/ofrep/v1/evaluate/flags', {\n      json: {\n        context: {\n          targetingKey: this.student.id,\n        },\n      },\n      retry: {\n        limit: 3,\n        methods: ['POST'],\n      },\n    })\n\n    const { flags } = await response.json<OfrepBulkEvaluationResponse>()\n\n    await this.features.setup({\n      logger: console,\n      provider: createOfrepInMemoryProvider(flags),\n    })\n  }\n\n  async fetch() {\n    await this._studentQuery.current.refetch()\n  }\n\n  signIn(location = window.location) {\n    if (loginUrl) location.href = loginUrl\n  }\n\n  get student() {\n    if (!this._studentQuery.current.data) {\n      throw new Error('User Service has not been setup')\n    }\n\n    switch (this._studentQuery.current.data.student.__typename) {\n      case 'Student':\n        return this._studentQuery.current.data.student\n\n      case 'NotAuthenticatedError':\n        this.errorHandler.handleError(\n          'UserService student not authenticated',\n          new NotAuthenticatedError(\n            'GraphQL GetStudent query returned NotAuthenticatedError',\n          ),\n        )\n        /**\n         * The errorHandler.handleError call will redirect the user to the login page.\n         * Throwing a RollbarIgnoreError here keeps our return type as non-nullable.\n         */\n        throw new RollbarIgnoreError()\n\n      default:\n        throw new Error(\n          // @ts-expect-error this will catch any unhandled types that are added to the BE.\n          // eslint-disable-next-line @typescript-eslint/restrict-template-expressions\n          `GetStudent query returned unhandled student type: ${this._studentQuery.current.data.student.__typename}`,\n        )\n    }\n  }\n\n  get accent() {\n    const isCanadaAware = this.features.isEnabled('fp_canada-aware')\n\n    if (this.student.accent === Accent.Ca && !isCanadaAware) {\n      return 'us'\n    }\n\n    return this.student.accent.toLowerCase()\n  }\n}\n\ndeclare module '@ember/service' {\n  interface Registry {\n    user: UserService\n  }\n}\n","const isPeaksRoute = (name?: string) => /^peaks\\b/.test(name ?? '')\nconst isMyProgressRoute = (name?: string) => /^my-progress\\b/.test(name ?? '')\n\n/**\n * Returns true iff the route is an error page\n */\nexport const isErrorRoute = (name: string) => /^(not-found|error)\\b/.test(name)\n\n/**\n * Returns true iff a given route names will both display the peaks interactive\n */\nconst isInsidePeaks = (to: string, from?: string) => [from, to].every(isPeaksRoute)\n\n/**\n * Returns true iff the given route names will both display the progress-page interactive\n */\nconst isInsideMyProgress = (to: string, from?: string) => [from, to].every(isMyProgressRoute)\n\n/**\n * Returns true iff the given route names both display the same interactive\n */\nexport const isInsideInteractive = (to: string, from?: string) =>\n  [isInsidePeaks, isInsideMyProgress].some((check) => check(to, from))\n","import type { RumPublicApi } from '@datadog/browser-rum-core'\n\ndeclare global {\n  interface Window {\n    DD_RUM?: RumPublicApi\n  }\n}\n\nconst appVersionRegex =\n  /(readingeggs|mathseeds)-(ios|android)(?:(?:[-/]v?)(\\S+))?/\n/**\n * Used to add extra global context to datadog RUM events.\n */\nexport function setupDatadogRum() {\n  if (!window.DD_RUM) return\n\n  const datadogRum = window.DD_RUM\n\n  try {\n    const matches = appVersionRegex.exec(navigator.userAgent)\n\n    datadogRum.setGlobalContextProperty('isNativeAppWebView', matches != null)\n\n    if (matches) {\n      datadogRum.setGlobalContextProperty('nativeAppBrand', matches[1])\n      datadogRum.setGlobalContextProperty('nativeAppPlatform', matches[2])\n      datadogRum.setGlobalContextProperty(\n        'nativeAppVersion',\n        matches[3] ?? 'unknown',\n      )\n    }\n  } catch (error) {\n    console.error('Failed to setGlobalContextProperty on window.DD_RUM', error)\n  }\n}\n","const { abs, ceil, floor } = Math\n\n// This utility is a reimplementation of moment.js's `fromNow` and\n// `toNow` functions, using the same buckets of time for translating\n// relative dates to readable strings like: 'a few seconds ago', 'a year ago', etc\n// https://momentjs.com/docs/#/displaying/fromnow/\n// https://momentjs.com/docs/#/displaying/tonow/\n\n// TODO: This util can be replaced with date-fns intlFormatDistance once we drop support for ios13\n\nconst ONE_SECOND = 1000\nconst ONE_MINUTE = ONE_SECOND * 60\nconst ONE_HOUR = ONE_MINUTE * 60\nconst ONE_DAY = ONE_HOUR * 24\nconst ONE_MONTH = ONE_DAY * 31\nconst ONE_YEAR = ONE_DAY * 365\nconst DIFF_SECONDS_FROM_NOW = ONE_SECOND * 45\nconst DIFF_MINUTE_FROM_NOW = ONE_SECOND * 90\nconst DIFF_MINUTES_FROM_NOW = ONE_MINUTE * 45\nconst DIFF_HOUR_FROM_NOW = ONE_MINUTE * 90\nconst DIFF_HOURS_FROM_NOW = ONE_HOUR * 22\nconst DIFF_DAY_FROM_NOW = ONE_HOUR * 36\nconst DIFF_DAYS_FROM_NOW = ONE_DAY * 26\nconst DIFF_MONTH_FROM_NOW = ONE_DAY * 45\nconst DIFF_MONTHS_FROM_NOW = ONE_DAY * 319\nconst DIFF_YEAR_FROM_NOW = ONE_DAY * 547\nconst DIFF_SECONDS_AGO = DIFF_SECONDS_FROM_NOW * -1\nconst DIFF_MINUTE_AGO = DIFF_MINUTE_FROM_NOW * -1\nconst DIFF_MINUTES_AGO = DIFF_MINUTES_FROM_NOW * -1\nconst DIFF_HOUR_AGO = DIFF_HOUR_FROM_NOW * -1\nconst DIFF_HOURS_AGO = DIFF_HOURS_FROM_NOW * -1\nconst DIFF_DAY_AGO = DIFF_DAY_FROM_NOW * -1\nconst DIFF_DAYS_AGO = DIFF_DAYS_FROM_NOW * -1\nconst DIFF_MONTH_AGO = DIFF_MONTH_FROM_NOW * -1\nconst DIFF_MONTHS_AGO = DIFF_MONTHS_FROM_NOW * -1\nconst DIFF_YEAR_AGO = DIFF_YEAR_FROM_NOW * -1\n\nexport default function dateFromNow(date: Date, now = Date.now()): string {\n  const diff = date.getTime() - now\n\n  if (diff <= DIFF_YEAR_AGO) {\n    return `${_msToAbsolute(diff, 'years').toString()} years ago`\n  }\n  if (diff > DIFF_YEAR_AGO && diff <= DIFF_MONTHS_AGO) {\n    return 'a year ago'\n  }\n  if (diff > DIFF_MONTHS_AGO && diff <= DIFF_MONTH_AGO) {\n    return `${_msToAbsolute(diff, 'months').toString()} months ago`\n  }\n  if (diff > DIFF_MONTH_AGO && diff <= DIFF_DAYS_AGO) {\n    return 'a month ago'\n  }\n  if (diff > DIFF_DAYS_AGO && diff <= DIFF_DAY_AGO) {\n    return `${_msToAbsolute(diff, 'days').toString()} days ago`\n  }\n  if (diff > DIFF_DAY_AGO && diff <= DIFF_HOURS_AGO) {\n    return 'a day ago'\n  }\n  if (diff > DIFF_HOURS_AGO && diff <= DIFF_HOUR_AGO) {\n    return `${_msToAbsolute(diff, 'hours').toString()} hours ago`\n  }\n  if (diff > DIFF_HOUR_AGO && diff <= DIFF_MINUTES_AGO) {\n    return 'an hour ago'\n  }\n  if (diff > DIFF_MINUTES_AGO && diff <= DIFF_MINUTE_AGO) {\n    return `${_msToAbsolute(diff, 'minutes').toString()} minutes ago`\n  }\n  if (diff > DIFF_MINUTE_AGO && diff <= DIFF_SECONDS_AGO) {\n    return 'a minute ago'\n  }\n  if (diff > DIFF_SECONDS_AGO && diff < 0) {\n    return 'a few seconds ago'\n  }\n  if (diff >= 0 && diff < DIFF_SECONDS_FROM_NOW) {\n    return 'in seconds'\n  }\n  if (diff >= DIFF_SECONDS_FROM_NOW && diff < DIFF_MINUTE_FROM_NOW) {\n    return 'in a minute'\n  }\n  if (diff >= DIFF_MINUTE_FROM_NOW && diff < DIFF_MINUTES_FROM_NOW) {\n    return `in ${_msToAbsolute(diff, 'minutes').toString()} minutes`\n  }\n  if (diff >= DIFF_MINUTES_FROM_NOW && diff < DIFF_HOUR_FROM_NOW) {\n    return 'in an hour'\n  }\n  if (diff >= DIFF_HOUR_FROM_NOW && diff < DIFF_HOURS_FROM_NOW) {\n    return `in ${_msToAbsolute(diff, 'hours').toString()} hours`\n  }\n  if (diff >= DIFF_HOURS_FROM_NOW && diff < DIFF_DAY_FROM_NOW) {\n    return 'in a day'\n  }\n  if (diff >= DIFF_DAY_FROM_NOW && diff < DIFF_DAYS_FROM_NOW) {\n    return `in ${_msToAbsolute(diff, 'days').toString()} days`\n  }\n  if (diff >= DIFF_DAYS_FROM_NOW && diff < DIFF_MONTH_FROM_NOW) {\n    return 'in a month'\n  }\n  if (diff >= DIFF_MONTH_FROM_NOW && diff < DIFF_MONTHS_FROM_NOW) {\n    return `in ${_msToAbsolute(diff, 'months').toString()} months`\n  }\n  if (diff >= DIFF_MONTHS_FROM_NOW && diff < DIFF_YEAR_FROM_NOW) {\n    return 'in a year'\n  }\n  if (diff >= DIFF_YEAR_FROM_NOW) {\n    return `in ${_msToAbsolute(diff, 'years').toString()} years`\n  }\n  return ''\n}\n\ntype TimeUnit = 'minutes' | 'hours' | 'days' | 'months' | 'years'\n\nfunction _msToAbsolute(ms: number, unit: TimeUnit): number {\n  const conversionFactor = {\n    minutes: ONE_MINUTE,\n    hours: ONE_HOUR,\n    days: ONE_DAY,\n    months: ONE_MONTH,\n    years: ONE_YEAR,\n  }[unit]\n\n  const converted = abs(ms / conversionFactor)\n  return converted < 2 ? ceil(converted) : floor(converted)\n}\n","import { assert } from '@ember/debug'\n\nexport type DebugActionParam =\n  | {\n      type: 'checkbox' | 'date' | 'number' | 'text'\n\n      value?: string | undefined\n    }\n  | {\n      type: 'select'\n\n      options: { label: string; value: string }[]\n\n      values?: Record<string, unknown>\n    }\n\nexport type DebugAction = Record<string, DebugActionParam>\n\n/**\n * Marks this property as a debug value.\n * This property will be displayed in the debug menu as JSON.\n *\n * @example\n * ```ts\n * @debugValue()\n * get someValue() {\n *   return { foo: 'bar', baz: true }\n * }\n * ```\n *\n * @returns a property decorator\n */\nexport function debugValue(): PropertyDecorator {\n  return function (target, propertyKey) {\n    const debug = getDebug(target)\n    debug.values.add(propertyKey)\n  }\n}\n\n/**\n * Marks this action as a debug action.\n * This action and it's params will be available in the debug menu.\n *\n * Each param will be displayed as an input element with the provided type.\n *\n * @param params Debug action params\n * @returns a method decorator\n *\n * @example\n * ```ts\n * @action\n * @debugAction({ foo: 'text', bar: 'date })\n * doSomething(foo: string, bar: Date) {\n *   // do something\n * }\n * ```\n */\nexport function debugAction(params?: DebugAction): MethodDecorator {\n  return function (target, propertyKey) {\n    const debug = getDebug(target)\n    debug.actions.set(propertyKey, params)\n  }\n}\n\nexport function debugSubscription(): MethodDecorator {\n  return function (target, propertyKey) {\n    const debug = getDebug(target)\n    debug.subscriptions.add(propertyKey)\n  }\n}\n\n/**\n * Context for the content-interactive debug menu\n */\nexport class DebugContent {\n  /**\n   * Set of keys to lookup when debugging component values\n   */\n  values = new Set<string | symbol>()\n\n  /**\n   * Map of keys and config to lookup when debugging component actions\n   */\n  actions = new Map<string | symbol, DebugAction | undefined>()\n\n  /**\n   * Set of something\n   */\n  subscriptions = new Set<string | symbol>()\n}\n\n/** Unique symbol to lookup the DebugContent class */\nexport const DebugContentSymbol = Symbol.for('debug-content')\n\n/**\n * Gets the DebugContent of an object. Creates a new DebugContent if one doesn't exists already.\n *\n * @param context object to apply the DebugContent too\n * @returns The DebugContent\n */\nexport function getDebug(context: unknown): DebugContent {\n  const debug = (context as Record<PropertyKey, unknown>)[DebugContentSymbol]\n\n  if (debug instanceof DebugContent) {\n    return debug\n  }\n\n  return setDebug(context, new DebugContent())\n}\n\n/**\n * Sets the provided DebugContent on the context object\n *\n * @param context object to apply the DebugContent too\n * @param debug the DebugContent to apply to the context\n * @returns The DebugContent\n */\nexport function setDebug(context: unknown, debug: DebugContent): DebugContent {\n  assert(\n    'context must be a non-null object',\n    typeof context === 'object' && context !== null,\n  )\n  Object.assign(context, { [DebugContentSymbol]: debug })\n  return debug\n}\n","import { HTTPError } from 'ky'\nimport isNetworkError from 'is-network-error'\nimport { ScriptBlockedError } from '@blakeelearning/content-loader'\nimport { NotAuthenticatedError } from 'fast-phonics-client/services/error-handler'\n\n/**\n * This describes any object that has a name and a message.  All standard\n * JavaScript errors (Error, TypeError, etc.) implement this interface.\n */\nexport interface ErrorLike {\n  name: string\n  message: string\n}\n\ntype ErrorCheck = (error: unknown) => boolean\n\nclass ContentError extends Error {\n  constructor(name: string, error: unknown) {\n    let message: string\n    let cause: ErrorLike | undefined\n\n    if (isErrorLike(error)) {\n      message = error.message\n      cause = error\n    } else if (typeof error === 'string') {\n      message = error\n    } else {\n      message = `Unrecognised error: ${String(error)}`\n    }\n\n    super(message, { cause })\n    this.name = name\n  }\n}\n\n/**\n * There are two near-identical sets of network error classes in Ember - one\n * comes from fetch requests, and the other comes from ember-data.  The following\n * functions can be used to check for either.\n */\n\nexport const isUnauthorizedError: ErrorCheck = (error) =>\n  (error instanceof HTTPError && error.response.status === 401) ||\n  error instanceof NotAuthenticatedError\n\nexport const isAbortError: ErrorCheck = (error) => isNetworkError(error)\n\nexport const isBadRequestError: ErrorCheck = (error) =>\n  error instanceof HTTPError && error.response.status === 400\n\nexport const isServerError: ErrorCheck = (error) =>\n  error instanceof HTTPError && error.response.status >= 500\n\nfunction errorHasName(error: unknown): error is { name: unknown } {\n  return error !== null && typeof error === 'object' && 'name' in error\n}\n\nexport const isKyTimeoutError: ErrorCheck = (error) =>\n  errorHasName(error) && error.name === 'TimeoutError'\n\n/**\n * `ScriptBlockedError` indicates that content-loader failed to load a\n * JavaScript file into the DOM.  This is similar to an abort error, in that it\n * usually indicates a network failure.\n */\nexport const isScriptBlockedError: ErrorCheck = (error) =>\n  error instanceof ScriptBlockedError ||\n  (errorHasName(error) && error.name === 'ScriptBlockedError')\n\nexport const isNotAuthenticatedError: ErrorCheck = (error) =>\n  error instanceof NotAuthenticatedError\n\n/**\n * This determines if a given error message/error object pair are actionable.\n * The definition of actionable is something that if we see it reported in\n * Rollbar, we can take some action to either resolve or ameliorate the\n * issue.\n *\n * At present, the errors we consider un-actionable are:\n *\n * 1. AbortErrors (either from ED or Ember Ajax)\n * 2. ScriptBlockedErrors from content-loader\n *\n * Anything else might be actionable.\n */\nexport function errorIsActionable(error: Error): boolean {\n  if (error instanceof ContentError && isErrorLike(error.cause)) {\n    return errorIsActionable(error.cause)\n  }\n  return (\n    !isAbortError(error) &&\n    !isScriptBlockedError(error) &&\n    !isNotAuthenticatedError(error)\n  )\n}\n\n/**\n * Wraps errors with the given error name, provided that they are not\n * considered a priori unrecoverable in the current context.  If they are, they\n * are returned unchanged.\n *\n * The \"name\" argument is intended to by used by the externalController wrapper\n * to determine if an error is recoverable.  As such, the errors created by\n * this function can be thrown from controller code interfacing with Content\n * when something goes awry.  The original error is wrapped using Error.cause so\n * that its stack trace (if any) is not lost.\n *\n * The second argument to this function can be an error object, an \"error-like\"\n * (object with name and message), a string, or any other type that can be\n * converted to a string.\n *\n * It is also possible to pass an error check function as the third argument.\n * If provided, this function will be used to determine whether to wrap the\n * error or not.  This is done because there are some errors that we never want\n * to give our content code the opportunity to recover from.  By default only\n * UnauthorizedErrors are treated as definitely unrecoverable.\n *\n * @see {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Error/cause}\n * @example\n * try {\n *   doSomething()\n * } catch (error) {\n *   throw contentError('MyErrorName', error)\n * }\n *\n * @example\n * throw contentError('MyErrorName', 'my message')\n */\nexport function contentError(\n  name: string,\n  error: unknown,\n  unrecoverableErrorCheck: ErrorCheck = isUnauthorizedError,\n): unknown {\n  if (unrecoverableErrorCheck(error)) {\n    return error\n  }\n  return new ContentError(name, error)\n}\n\nexport function isErrorLike(error: unknown): error is ErrorLike {\n  return (\n    typeof error === 'object' &&\n    error !== null &&\n    'name' in error &&\n    'message' in error &&\n    typeof error.name === 'string' &&\n    typeof error.message === 'string'\n  )\n}\n\nfunction hasStatusCode(obj: unknown): obj is { statusCode: number } {\n  return (\n    !!obj &&\n    typeof obj === 'object' &&\n    obj.hasOwnProperty('statusCode') &&\n    typeof (obj as { statusCode: unknown }).statusCode === 'number'\n  )\n}\n\n/**\n * This is used to decide if a \"network error\" (Apollo term) can be retried.\n * We follow the ky logic for this, which says that any failed request (also\n * called a \"network error\", but meaning a fetch request that didn't resolve),\n * as well as certain 4xx and 5xx server errors can be.\n */\nexport function isApolloNetworkErrorRetryable(error: unknown): boolean {\n  return (\n    isNetworkError(error) ||\n    (hasStatusCode(error) &&\n      [408, 413, 429, 500, 502, 503, 504].includes(error.statusCode))\n  )\n}\n\n/**\n * This is a special error that can be thrown which is in the ignored messages config for Rollbar.\n * Calling this after the `ErrorHandler` service's `handleError` method means we don't need to make a lot of our return types nullable.\n */\nexport class RollbarIgnoreError extends Error {\n  constructor() {\n    super('RollbarIgnoreError')\n  }\n}\n","import { assert } from '@ember/debug'\n\nexport default function formatDueDate(date: Date): string {\n  const dateOfMonth = date.getDate().toString()\n  const dayOfWeek = {\n    0: 'Sunday',\n    1: 'Monday',\n    2: 'Tuesday',\n    3: 'Wednesday',\n    4: 'Thursday',\n    5: 'Friday',\n    6: 'Saturday',\n  }[date.getDay()]\n  const month = {\n    0: 'January',\n    1: 'February',\n    2: 'March',\n    3: 'April',\n    4: 'May',\n    5: 'June',\n    6: 'July',\n    7: 'August',\n    8: 'September',\n    9: 'October',\n    10: 'November',\n    11: 'December',\n  }[date.getMonth()]\n\n  assert('dayOfWeek must be a string', typeof dayOfWeek === 'string')\n  assert('month must be a string', typeof month === 'string')\n\n  return `${dayOfWeek}, ${dateOfMonth} ${month}`\n}\n","export default {\n  data: {\n    type: 'students',\n    id: 0,\n    attributes: {\n      name: 'Guest Student',\n      'remote-id': 1,\n      'first-name': 'Guest Student',\n      eggs: 30765,\n      'canonical-student-id': 0,\n      locale: 'au',\n    },\n  },\n}\n","export function getLastNavigationType() {\n  if (window.performance === undefined) return undefined\n\n  const supportsGetPerfEntries =\n    typeof window.performance.getEntriesByType === 'function'\n  let currentNavigation\n  let navigationType\n\n  if (supportsGetPerfEntries) {\n    ;[currentNavigation] = window.performance\n      .getEntriesByType('navigation')\n      .slice(-1)\n  }\n\n  if (currentNavigation) {\n    // If getEntriesByType exists, and returns a non-empty array, then the\n    // browser is assumed to support Navigation Timing Level 2 API, which\n    // returns a string type\n    // https://developer.mozilla.org/en-US/docs/Web/API/PerformanceNavigationTiming/type\n    navigationType = currentNavigation.type\n  } else {\n    // If getEntriesByType doesn't exist, or returns an empty array, then the\n    // browser is assumed to support Navigation Timing Level 1 API, which\n    // returns an integer type.\n    // This is the case for Safari 9 and upwards, as of July 2020.\n    // https://developer.mozilla.org/en-US/docs/Web/API/PerformanceNavigation/type\n    currentNavigation = window.performance.navigation.type\n\n    navigationType = {\n      0: 'navigate',\n      1: 'reload',\n      2: 'back_forward',\n    }[currentNavigation]\n  }\n\n  return navigationType\n}\n","/**\n * This util is designed to be used in conjuntion with the hidden-print-container component.\n */\nexport default async function printImage(url: string): Promise<void> {\n  const hiddenPrintContainerId = 'hidden-print-container'\n\n  const printContainer = document.querySelector(`div#${hiddenPrintContainerId}`)\n  if (!printContainer) throw new Error('Missing print container element')\n\n  while (printContainer.firstChild) {\n    printContainer.firstChild.remove()\n  }\n\n  const hiddenImage = document.createElement('img')\n  hiddenImage.src = url\n\n  const printPromise = new Promise<void>((resolve, reject) => {\n    hiddenImage.onload = () => {\n      /**\n       * This (ugly but functional) timeout is the most reliable way to ensure that Safari prints a fully rendered certificate.\n       * The following didn't work:\n       * -------------------------------\n       * await hiddenImage.decode()\n       * resolve()\n       * window.print()\n       * -------------------------------\n       * hiddenImage.decoding = 'sync' // Tried on it's own and incombination with the above\n       * -------------------------------\n       * requestAnimationFrame(() => {\n       *  requestAnimationFrame(() => {\n       *    resolve()\n       *    window.print()\n       *  })\n       * })\n       * -------------------------------\n       */\n      setTimeout(() => {\n        resolve()\n        const hiddenPrintImage = document.querySelector(`div#${hiddenPrintContainerId} > img`)\n        if (hiddenPrintImage === hiddenImage) window.print()\n      }, 500)\n    }\n    hiddenImage.onerror = () => {\n      reject(new Error('Failed to load image'))\n    }\n  })\n\n  printContainer.appendChild(hiddenImage)\n\n  return printPromise\n}\n","/**\n * Finished Program Functions\n */\n\nimport { assert } from '@ember/debug'\n\ntype CanPlayResult = { ok: true } | { ok: false; message: string }\n\ninterface ActivityModel {\n  peak: number | null | undefined\n  positionInPeak: number | null | undefined\n}\n\ninterface ProgressData {\n  peak: number\n  positionInPeak: number\n}\n\nexport function hasFinishedProgram(\n  studentProgress: ProgressData,\n  lastActivity: ActivityModel,\n): boolean {\n  const { peak: studentProgressPeak } = studentProgress\n  const { peak: lastActivityPeak } = lastActivity\n\n  assert('lastActivityPeak is a number', typeof lastActivityPeak === 'number')\n\n  const isFinishedProgram = studentProgressPeak > lastActivityPeak\n\n  return isFinishedProgram\n}\n\nexport function canPlayPeakLesson(\n  studentProgress: ProgressData,\n  peak: number,\n): CanPlayResult {\n  const { peak: currentPeak } = studentProgress\n  if (currentPeak >= peak) {\n    return { ok: true }\n  }\n  return {\n    ok: false,\n    message: `The requested peak is greater than the users current peak`,\n  }\n}\n\nexport function canPlayStoneActivity(\n  studentProgress: ProgressData,\n  requestedPeak: number,\n  requestedStone: number,\n): CanPlayResult {\n  const { peak: currentPeak, positionInPeak: currentStone } = studentProgress\n\n  if (requestedPeak < currentPeak) {\n    return { ok: true }\n  }\n\n  if (requestedPeak === currentPeak) {\n    if (requestedStone <= currentStone) {\n      return { ok: true }\n    }\n  }\n\n  if (requestedPeak > currentPeak) {\n    return {\n      ok: false,\n      message: `The requested peak is greater than the users current peak`,\n    }\n  }\n\n  if (requestedStone > currentStone) {\n    return {\n      ok: false,\n      message: `The requested position is greater than the users current position`,\n    }\n  }\n\n  // Default to false if the other cases aren't satisfied\n  return {\n    ok: false,\n    message:\n      'All previous cases failed, check that the user has progress data and that the requested Peak or Stone is valid',\n  }\n}\n","import isNetworkError from 'is-network-error'\nimport pRetry, { AbortError } from 'p-retry'\nimport type { Options } from 'p-retry'\n\nexport function retryOnNetworkError<T>(\n  callback: () => Promise<T>,\n  options?: Options,\n): Promise<T> {\n  const wrappedCallback = async () => {\n    try {\n      return await callback()\n    } catch (error) {\n      if (error instanceof Error) {\n        if (isNetworkError(error)) {\n          throw error\n        }\n        throw new AbortError(error)\n      } else {\n        throw new AbortError(String(error))\n      }\n    }\n  }\n\n  return pRetry(wrappedCallback, options)\n}\n","define('fast-phonics-client/config/environment', [], function() {\n  var prefix = 'fast-phonics-client';\ntry {\n  var metaName = prefix + '/config/environment';\n  var rawConfig = document.querySelector('meta[name=\"' + metaName + '\"]').getAttribute('content');\n  var config = JSON.parse(decodeURIComponent(rawConfig));\n\n  var exports = { 'default': config };\n\n  Object.defineProperty(exports, '__esModule', { value: true });\n\n  return exports;\n}\ncatch(err) {\n  throw new Error('Could not read config from meta tag with name \"' + metaName + '\".');\n}\n\n});\n","\n          if (!runningTests) {\n            require(\"fast-phonics-client/app\")[\"default\"].create({\"apiNamespace\":\"api/v1\",\"apollo\":{},\"studentNamespace\":\"students\",\"debugErrors\":false,\"product\":\"fp\",\"gitSha\":\"123\",\"defaultAccent\":\"au\",\"emberGitSha\":\"abc\",\"loginUrl\":\"/login\",\"loginWarning\":null,\"logoutUrl\":\"/logout\",\"guest\":false,\"loadingUi\":{\"preDelay\":2000,\"postDelay\":500,\"fadeDuration\":1000},\"enableMessengerLogging\":false,\"certificateHost\":\"https://certificates.blake-staging.com\",\"name\":\"fast-phonics-client\",\"version\":\"1.22.1+cbb8185f\"});\n          }\n        \n"],"mappings":"AAAA;;;;;;;ACkBe,MAAMA,UAAYC,UAAYC,cAAAC,SAAAC,WAAAC,EAAAC,KAAA,eAC5BC,UAAOC,cAAYH,EAAAC,KAAA,kBAEhBC,UAAOE,iBAAeJ,EAAAC,KAAA,WAE7BI,UAAQ,EACpBC,EAAAC,QAAAZ,GAED,EAAAa,YAAS,CACPC,QAAS,IACJP,UAAOO,QACVC,gBAAiB,CAIf,wBACA,sBAGFC,8BAIJ,EAAAC,sBAEA,EAAAC,WAAiBlB,EAAKO,UAAOC,aAAa,I;AC1C1C,MAAMW,GAAsB,EAAAC,EAAAC,uBAAA,CAAAC,GAAA,WAAAC,MAAA,0ZAAAC,WAAA,uDAAAC,cAAA;AAAgsBd,EAAAC,SAAA,EAAAc,EAAAC,sBAAAR,GAG7sB,EAAAS,aAAc,I;;;;;;;;ACH7B,MAAMT,GAAsB,EAAAC,EAAAC,uBAAA,CAAAC,GAAA,WAAAC,MAAA,maAAAC,WAAA,yDAAAC,cAAA,KAiBtBI,IAAEA,GAAQtB;AAAM,IAaDuB,EAAkBnB,EAAAC,SAAAmB,EAAxB,cAAiCC,UAA2C9B,cAAAC,SAAAC,WAAA6B,EAAA3B,KAAA,eAAA4B,EAAA5B,MAAA2B,EAAA3B,KAAA,WAAA6B,EAAA7B,MAAA2B,EAAA3B,KAAA,eAAA8B,EAAA9B,MAAA2B,EAAA3B,KAAA,OAAA+B,EAAA/B,MAAAD,EAAAC,KAAA,kBASvE,IAAIgC,gBAAiB,CAEvC,UAAIC,GACF,OAAOjC,KAAKkC,gBAAgBD,MAC9B,CAEA,UAAIE,GACF,OAAOnC,KAAKoC,aAAaD,MAC3B,CAEA,sBAAIE,GACF,MAAMC,eAAEA,EAAcC,YAAEA,GAAgBvC,KAAKwC;AAY7C,IAAIC;AAcJ,OAZIlB,EAAImB,yBACND,EAAS,SAACE,EAAMC,GAAmB,QAAAC,EAAA/C,UAAAgD,OAATN,EAAI,IAAAO,MAAAF,EAAA,EAAAA,EAAA,KAAAG,EAAA,EAAAA,EAAAH,EAAAG,IAAJR,EAAIQ,EAAA,GAAAlD,UAAAkD;AAC5BC,QAAQC,IACN,eACA,gEACAP,EACAC,KACGJ,EAEP,IAGK,EAAAW,4BAAyBb,EAAgBC,EAAa,CAC3Da,qBAAuBC,IACrBrD,KAAKsD,aAAaC,yBAAyBF,EAAM,EAEnDZ,UAEJ,CAEA,aAAIe,GACF,MAAO,IACFxD,KAAKwC,KAAKgB,UACbC,YAAazD,KAAK0D,KAAKC,wBAE3B,CAEA,gBAAIC,GACF,MAAMC,EAAS7D,KAAK8D,SAASC,aACrBC,QAASC,GAAcJ,EAAOK,eACpC,uBACA,CAAEF,QAAS,KAGPG,EAAc,IAAIC,IAAI,IACvBH,EAAUI,QAAQC,GACnBT,EAAOU,gBAAgBD,GAAU;AAQrC,OAJIH,EAAYK,IAAI,+BAClBL,EAAYM,IAAI,0BAGX,IAAIN,EACb,CAGAO,QAAQrB,GACFrD,KAAKiC,OAAO0C,QACd1B,QAAQC,IAAIlD,KAAKiC,OAAO2C,QAExB5E,KAAKsD,aAAaC,yBAAyBF,EAE/C,CAESwB,cACP7E,KAAKkC,gBAAgB4C,MAAM,0BAC3BjF,MAAMgF,aACR,GACDjD,EAAAmD,EAAAtD,EAAAuD,UAAA,gBA7FEC,UAAO,CAAAC,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAAC,YAAA,OAAAxD,EAAAkD,EAAAtD,EAAAuD,UAAA,YAEPC,UAAO,CAAAC,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAAC,YAAA,OAAAvD,EAAAiD,EAAAtD,EAAAuD,UAAA,gBAEPC,UAAO,CAAAC,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAAC,YAAA,OAAAtD,EAAAgD,EAAAtD,EAAAuD,UAAA,QAEPC,UAAO,CAAAC,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAAC,YAAA,OAAAN,EAAAtD,EAAAuD,UAAA,WA0EPM,UAAMC,OAAAC,yBAAA/D,EAAAuD,UAAA,WAAAvD,EAAAuD,WAAAvD,IAAA,EAAAL,EAAAC,sBAAAR,EAjFYW,EAAkB,I;;;;;;;;AC9BvC,MAAMX,GAAsB,EAAAC,EAAAC,uBAAA,CAAAC,GAAA,WAAAC,MAAA,uzFAAAC,WAAA,+DAAAC,cAAA;AAAkmJ,IA2BxnJsE,GAuBL7D,EAAAmD,GAvBoBtD,EAArB,MAQE7B,YAAY8F,EAAsBC,G;EAAsB3F,K,EAAA,e,EAAAA,M,EAAA4B,I,sJAAA7B,EAAAC,KAAA,cAHxDD,EAAAC,KAAA,sBAIEA,KAAK0F,IAAMA,EAEX1F,KAAK4F,YAAcD,EAAU,CAC3BE,KAAOC,IACL9F,KAAK+F,aAAeC,KAAKC,UAAUH,EAAMI,KAAM,KAAM,EAAE,EAEzD7C,MAAMA,GACJJ,QAAQC,IAAIG,EACd,EACA8C,WACElD,QAAQC,IAAI,OACd,GAEJ,IACD8B,UAAA,gBAtBEoB,WAAO,CAAAlB,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAAC,YAAA,OAAA5D,GA+BW4E,EAAgChG,EAAAC,SAuFpDyE,GAvFoDuB,EAAtC,cAA+C5E,UAO5D9B,YAAY2G,EAAgB/D,GAC1B3C,MAAM0G,EAAO/D,GAAKzC,EAAAC,KAAA,cAPe,IAAED,EAAAC,KAAA,eAEP,IAAED,EAAAC,KAAA,qBAEQ;AAKtC,MAAMwG,GAAQ,EAAAC,YAASzG,KAAKsC;AAE5B,IAAK,MAAOoD,EAAKgB,KAAiBF,EAAMG,QAAS,CAC/C,MAAMC,EAAS;AAEf,QAA4B,IAAjBF,EACT,IAAK,MAAO/D,EAAMkE,KAAUtB,OAAOuB,QAAQJ,GACzCE,EAAOG,KAAK,CAAEpE,UAASkE;AAI3B7G,KAAKgH,aAAaD,KAAK,CAAErB,MAAKkB,UAChC,CAEA,IAAK,MAAMlB,KAAOc,EAAMS,OACtB1B,OAAO2B,eAAelH,KAAM0F,EAAK,CAC/ByB,MAEE,OAAOnB,KAAKC,UAAUjG,KAAKsC,eAAeoD,GAAM,KAAM,EACxD,IAGF1F,KAAKoH,YAAYL,KAAKrB;AAGxB,IAAK,MAAMA,KAAOc,EAAMa,cAAe,CACrC,MAAM1B,EAAY3F,KAAKsC,eAAeoD;AAEtC,GAAyB,mBAAdC,EAA0B,CACnC,MAAM2B,EAAa,IAAI7B,EAAgBC,EAAKC;AAC5C3F,KAAKuH,mBAAmBR,KAAKO,EAC/B,CACF,CACF,CAEA,kBAAIhF,GAKF,OAAOtC,KAAKwC,KAAKF,cACnB,CAGAkF,gBAAgB5E,GAEZA,EAAM6E,kBAAkBC,aACiB,iBAAlC9E,EAAM6E,OAAOE,QAAe,OAE9BC,UAAUC,UAAUC,UAAUlF,EAAM6E,OAAOE,QAAe,MAEnE,CAGAI,SAASC,EAAmBpF,GAAc,IAAAqF;AACxCrF,EAAMsF;AAEN,MAAM1B,GAAQ,EAAAC,YAASzG,KAAKsC,gBACtB6F,EAAcnI,KAAKsC,eAAe0F,GAClCI,EAA0C,QAA/BH,EAAGzB,EAAMG,QAAQQ,IAAIa,UAAU,IAAAC,IAAI;AAIpD,GAAIrF,EAAMyF,yBAAyBC,gBAAiB,CAClD,MAAM1B,EAAS,IAAI2B,IACbC,EAAW,IAAIC,SAAS7F,EAAMyF;AAEpC,IAAK,MAAO3C,EAAKgD,KAAenD,OAAOuB,QAAQsB,GAAc,CAC3D,MAAMtC,EAAQ0C,EAASrB,IAAIzB;AAE3BkB,EAAO+B,IAAIjD,EAAKI,EAClB,CAGAqC,EAAY5C,OAAOqD,YAAYhC,GACjC,CACF,IACD5B,UAAA,mBAlCEM,UAAMC,OAAAC,yBAAAc,EAAAtB,UAAA,mBAAAsB,EAAAtB,WAAAD,EAAAuB,EAAAtB,UAAA,YAUNM,UAAMC,OAAAC,yBAAAc,EAAAtB,UAAA,YAAAsB,EAAAtB,WAAAsB,IAAA,EAAAlF,EAAAC,sBAAAR,EA/DYwF,EAAgC,I;;;AC3DrD,MAAMxF,GAAsB,EAAAC,EAAAC,uBAAA,CAAAC,GAAA,WAAAC,MAAA,krBAAAC,WAAA,4DAAAC,cAAA;AAM5B,IAGqB0H,EAAWxI,EAAAC,SAAAmB,EAAjB,cAA0BC,UAAU9B,c;AAAAC,SAAAC,W,EAAAE,K,EAAA,Y,EAAAA,M,EAAA4B,I,qJAAA,CAGjD,gBAAIkH,GACF,OAAO9I,KAAK+I,UAAUD,YACxB,CAEA,cAAIE,GACF,OAAIhJ,KAAK+I,UAAUE,QACV,qBAEF,mBACT,CAGAC,cACMlJ,KAAK+I,UAAUE,QACjBjJ,KAAK+I,UAAUI,UAEfnJ,KAAK+I,UAAUK,QAEnB,GACDxH,EAAAmD,EAAAtD,EAAAuD,UAAA,aArBEC,UAAO,CAAAC,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAAC,YAAA,OAAAN,EAAAtD,EAAAuD,UAAA,eAaPM,UAAMC,OAAAC,yBAAA/D,EAAAuD,UAAA,eAAAvD,EAAAuD,WAAAvD,IAAA,EAAAL,EAAAC,sBAAAR,EAdYgI,EAAW,I;;;ACThC,MAAMhI,GAAsB,EAAAC,EAAAC,uBAAA,CAAAC,GAAA,WAAAC,MAAA,g6FAAAC,WAAA,gEAAAC,cAAA;AAA4yL,IAsBnzLkI,EAAuBhJ,EAAAC,SAAAmB,EAA7B,cAAsCC,UAKnD9B,YAAY2G,EAAgB/D,GAC1B3C,MAAM0G,EAAO/D,GAAKb,EAAA3B,KAAA,YAAA4B,EAAA5B,MAAA2B,EAAA3B,KAAA,eAAA6B,EAAA7B,MAClBA,KAAKsJ,UAAUC,QACjB,CAEA,yBAAIC,GACF,MAAkC,gBAA3BxJ,KAAKwC,KAAKiH,YACnB,CAEA,kBAAIC,GACF,MAAkC,SAA3B1J,KAAKwC,KAAKiH,YACnB,CACA,kBAAIE,GACF,MAAkC,SAA3B3J,KAAKwC,KAAKiH,YACnB,CACA,mBAAIG,GACF,MAAkC,UAA3B5J,KAAKwC,KAAKiH,YACnB,CAGA,kBAAII,GAeF,MAd0B,CACxBC,eAAgB,CACd,MACA,MACA,QACA,OACA,OACA,MACA,QACA,QACA,OACA,OAIN,CAGA,kBAAIC,GAgBF,MAf0B,CACxBD,eAAgB,GAChBE,iBAAkB,CAChB,CAAC,KAAM,OACP,CAAC,OAAQ,OACT,CAAC,OAAQ,SACT,CAAC,OAAQ,QACT,CAAC,MAAO,QACR,CAAC,OAAQ,OACT,CAAC,QAAS,SACV,CAAC,MAAO,SACR,CAAC,OAAQ,QACT,CAAC,OAAQ,QAIf,CAEA,iBAAIC,GACF,OAAIjK,KAAK2J,eAAuB,GAGzBO,UAAoBlK,KAAKwC,KAAK2H,YAAYF,aACnD,CAEA,kBAAcG,SACNpK,KAAKwC,KAAKF,eAAe+H,mBAAmB,CAChDC,MAAM,EAAAC,QACNC,aAAcxK,KAAKiK,cACnBQ,WAAYzK,KAAKiK,gBAEnBjK,KAAKwC,KAAKF,eAAeuD,MAC3B,CAEA,kBAAc6E,SACN1K,KAAKwC,KAAKF,eAAe+H,mBAAmB,CAChDC,MAAM,EAAAC,QACNC,aAAc,EACdC,WAAYzK,KAAKiK,gBAEnBjK,KAAKwC,KAAKF,eAAeuD,MAC3B,CAEA,uBAAc8E,SACN3K,KAAKwC,KAAKF,eAAesI,eACjC,CAEA,kBAAcC,SACN7K,KAAKwC,KAAKF,eAAewI,mBAAmB,CAChDC,SAAU,CACRjB,eAAgB/G,MAAMiI,KACpB,CAAElI,OAAQ9C,KAAKiK,gBACf,CAACgB,EAAGC,IAAC,iBAAAC,QAAuBD,EAAI,GAAGE,cAErCpB,iBAAkB,IAEpBqB,YAAY,EACZf,MAAM,EAAAC,UAERvK,KAAKwC,KAAKF,eAAeuD,MAC3B,CAEA,kBAAcyF,SACNtL,KAAKwC,KAAKF,eAAewI,mBAAmB,CAChDC,SAAU,CACRjB,eAAgB,GAChBE,iBAAkBjH,MAAMiI,KAAK,CAAElI,OAAQ9C,KAAKiK,gBAAiB,CAACgB,EAAGC,IAAM,kCAAAC,QACnCD,EAAI,GAAGE,YAAU,iBAAAD,QACjCD,EAAI,GAAGE,gBAG7BC,YAAY,EACZf,MAAM,EAAAC,UAERvK,KAAKwC,KAAKF,eAAeuD,MAC3B,CAEA,kBAAc0F,SACNvL,KAAKwC,KAAKF,eAAekJ,mBAAmB,CAChD1B,eAAgB/G,MAAMiI,KACpB,CAAElI,OAAQ9C,KAAKiK,gBACf,CAACgB,EAAGC,IAAC,iBAAAC,QAAuBD,EAAI,GAAGE,cAErCpB,iBAAkB,GAClBM,MAAM,EAAAC,UAERvK,KAAKwC,KAAKF,eAAeuD,MAC3B,CAEA,kBAAc4F,SACNzL,KAAKwC,KAAKF,eAAekJ,mBAAmB,CAChD1B,eAAgB,GAChBE,iBAAkBjH,MAAMiI,KAAK,CAAElI,OAAQ9C,KAAKiK,gBAAiB,CAACgB,EAAGC,IAAM,kCAAAC,QACnCD,EAAI,GAAGE,YAAU,iBAAAD,QACjCD,EAAI,GAAGE,eAE3Bd,MAAM,EAAAC,UAERvK,KAAKwC,KAAKF,eAAeuD,MAC3B,CAEQ6F,iBACN,MAAMrI,EAAQ,IAAIsI,MAAM;AACxB3L,KAAKsD,aAAasI,uBAAuBvI,EAC3C,CAEQwI,6BACN,MAAMC,EAAoB,IAAIC,wBAC5B;AAGF/L,KAAKsD,aAAasI,uBAAuBE,EAC3C,GACDlK,EAAAmD,EAAAtD,EAAAuD,UAAA,aA7JEC,UAAO,CAAAC,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAAC,YAAA,OAAAxD,EAAAkD,EAAAtD,EAAAuD,UAAA,gBAEPC,UAAO,CAAAC,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAAC,YAAA,OAAAN,EAAAtD,EAAAuD,UAAA,gBAmEPM,UAAMC,OAAAC,yBAAA/D,EAAAuD,UAAA,gBAAAvD,EAAAuD,WAAAD,EAAAtD,EAAAuD,UAAA,gBASNM,UAAMC,OAAAC,yBAAA/D,EAAAuD,UAAA,gBAAAvD,EAAAuD,WAAAD,EAAAtD,EAAAuD,UAAA,qBASNM,UAAMC,OAAAC,yBAAA/D,EAAAuD,UAAA,qBAAAvD,EAAAuD,WAAAD,EAAAtD,EAAAuD,UAAA,gBAINM,UAAMC,OAAAC,yBAAA/D,EAAAuD,UAAA,gBAAAvD,EAAAuD,WAAAD,EAAAtD,EAAAuD,UAAA,gBAeNM,UAAMC,OAAAC,yBAAA/D,EAAAuD,UAAA,gBAAAvD,EAAAuD,WAAAD,EAAAtD,EAAAuD,UAAA,gBAeNM,UAAMC,OAAAC,yBAAA/D,EAAAuD,UAAA,gBAAAvD,EAAAuD,WAAAD,EAAAtD,EAAAuD,UAAA,gBAYNM,UAAMC,OAAAC,yBAAA/D,EAAAuD,UAAA,gBAAAvD,EAAAuD,WAAAD,EAAAtD,EAAAuD,UAAA,kBAYNM,UAAMC,OAAAC,yBAAA/D,EAAAuD,UAAA,kBAAAvD,EAAAuD,WAAAD,EAAAtD,EAAAuD,UAAA,8BAKNM,UAAMC,OAAAC,yBAAA/D,EAAAuD,UAAA,8BAAAvD,EAAAuD,WAAAvD,IAAA,EAAAL,EAAAC,sBAAAR,EAvJYwI,EAAuB,I;;;ACtB5C,MAAMxI,GAAsB,EAAAC,EAAAC,uBAAA,CAAAC,GAAA,WAAAC,MAAA,wyBAAAC,WAAA,4DAAAC,cAAA;AAAkiD,IAUziD6K,EAA4B3L,EAAAC,SAAAmB,EAAlC,cAA2CC,UAGxD9B,YAAY2G,EAAgB/D,G;AAC1B3C,MAAM0G,EAAO/D,G,EAAKxC,K,EAAA,Y,EAAAA,M,EAAA4B,I,sJAClB5B,KAAKsJ,UAAUC,QACjB,CAEQqB,gBACN5K,KAAKwC,KAAKF,eAAesI,eAC3B,CAEQqB,SACNjM,KAAKwC,KAAKF,eAAe2J,QAC3B,GACDrK,EAAAmD,EAAAtD,EAAAuD,UAAA,aAdEC,UAAO,CAAAC,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAAC,YAAA,OAAAN,EAAAtD,EAAAuD,UAAA,iBAOPM,UAAMC,OAAAC,yBAAA/D,EAAAuD,UAAA,iBAAAvD,EAAAuD,WAAAD,EAAAtD,EAAAuD,UAAA,UAINM,UAAMC,OAAAC,yBAAA/D,EAAAuD,UAAA,UAAAvD,EAAAuD,WAAAvD,IAAA,EAAAL,EAAAC,sBAAAR,EAZYmL,EAA4B,I;;;;;;;;ACVjD,MAAMnL,GAAsB,EAAAC,EAAAC,uBAAA,CAAAC,GAAA,WAAAC,MAAA,4iEAAAC,WAAA,+DAAAC,cAAA;AAa5B,IACqB+K,EAA+B7L,EAAAC,SAAAmB,EAArC,cAA8CC,UAC3D9B,YAAY2G,EAAgB/D,GAC1B3C,MAAM0G,EAAO/D,GAAKb,EAAA3B,KAAA,YAAA4B,EAAA5B,MAI+B2B,EAAA3B,KAAA,gBAAA6B,EAAA7B,MAAA2B,EAAA3B,KAAA,iBAAA8B,EAAA9B,MAAAD,EAAAC,KAAA,kBAMjC+C,MAAMiI,KACrB,YACC,IAAK,IAAIE,EAAI,EAAGA,GAAK,GAAIA,UACjBA,CAEV,CAJC,KAVDlL,KAAKsJ,UAAUC,QACjB,CAgBA,qBAAc4C,GACZ,MAAMC,eAAEA,GAAmBpM,MACrBqM,WAAEA,SAAqBrM,KAAKwC,KAAKF,eAAe6J,gBAAgB,CACpEC,iBAEA9B,MAAM,EAAAC;AAERvK,KAAKsM,cAAgBD,CACvB,CAEA,uBAAcE,SACNvM,KAAKwC,KAAKF,eAAeiK,kBAAkB,CAC/C3H,OAAQ,kBAEV5E,KAAKsM,cAAgB,CACvB,CAGAE,kBAAkB5J,GAGhB5C,KAAKoM,eAAiBK,OAAO7J,EAAM6E,OAAO3B,MAC5C,GACDlE,EAAAmD,EAAAtD,EAAAuD,UAAA,aArCEC,UAAO,CAAAC,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAAC,YAAA,OAAAxD,EAAAkD,EAAAtD,EAAAuD,UAAA,iBAEPoB,WAAO,CAAAlB,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAAC,YAAA,kBAAgC,IAAI,IAAAvD,EAAAiD,EAAAtD,EAAAuD,UAAA,kBAE3CoB,WAAO,CAAAlB,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAAC,YAAA,kBAAkB,CAAC,IAAAN,EAAAtD,EAAAuD,UAAA,mBAU1BM,UAAMC,OAAAC,yBAAA/D,EAAAuD,UAAA,mBAAAvD,EAAAuD,WAAAD,EAAAtD,EAAAuD,UAAA,qBAUNM,UAAMC,OAAAC,yBAAA/D,EAAAuD,UAAA,qBAAAvD,EAAAuD,WAAAD,EAAAtD,EAAAuD,UAAA,qBAONM,UAAMC,OAAAC,yBAAA/D,EAAAuD,UAAA,qBAAAvD,EAAAuD,WAAAvD,IAAA,EAAAL,EAAAC,sBAAAR,EArCYqL,EAA+B,I;;;ACdpD,MAAMrL,GAAsB,EAAAC,EAAAC,uBAAA,CAAAC,GAAA,WAAAC,MAAA,yfAAAC,WAAA,6DAAAC,cAAA;AAA0+B,IAMj/BuL,EAAoBrM,EAAAC,SAAAmB,EAA1B,cAAmCC,UAAU9B,c;AAAAC,SAAAC,W,EAAAE,K,EAAA,Y,EAAAA,M,EAAA4B,I,qJAAA,CAG1D,iBAAI+K,GACF,OAAO3M,KAAK+I,UAAUD,YACxB,CAEA,oBAAI8D,GACF,OAAO5M,KAAK+I,UAAUE,OACxB,CAEQC,cACN,MAAMH,UAAEA,GAAc/I;AAElB+I,EAAUE,QACZF,EAAUI,UAEVJ,EAAUK,QAEd,GACDxH,EAAAmD,EAAAtD,EAAAuD,UAAA,aAnBEC,UAAO,CAAAC,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAAC,YAAA,OAAAN,EAAAtD,EAAAuD,UAAA,eAUPM,UAAMC,OAAAC,yBAAA/D,EAAAuD,UAAA,eAAAvD,EAAAuD,WAAAvD,IAAA,EAAAL,EAAAC,sBAAAR,EAXY6L,EAAoB,I;;;ACNzC,MAAM7L,GAAsB,EAAAC,EAAAC,uBAAA,CAAAC,GAAA,WAAAC,MAAA,s5DAAAC,WAAA,0DAAAC,cAAA;AAAogG,IA2B3gG0L,EAAiBxM,EAAAC,SAAAmB,EAAvB,cAAgCC,UAC7C9B,YAAY2G,EAAgB/D,GAC1B3C,MAAM0G,EAAO/D,GAAKb,EAAA3B,KAAA,UAAA4B,EAAA5B,MAAA2B,EAAA3B,KAAA,YAAA6B,EAAA7B,MAAA2B,EAAA3B,KAAA,OAAA8B,EAAA9B,MAClBA,KAAKsJ,UAAUC,QACjB,CAQA,WAAIuD,GACF,OAAO9M,KAAK0D,KAAKoJ,OACnB,CAEA,gBAAIC,GACF,OAAO/M,KAAK0D,KAAKoJ,QAAQC,YAC3B,CAEA,SAAIC,GACF,OAAOhN,KAAK+M,aAAaC,KAC3B,CAEA,gBAAIC,GACF,OAAOjN,KAAK8M,QAAQG,YACtB,CAEA,YAAIC,GAAuB,IAAAC;AACzB,MAAMC,EAAuB,QAAlBD,EAAGnN,KAAKwC,KAAK4K,aAAK,IAAAD,IAAI,IAC3BE,UAAEA,GAAcrN,KAAK8M;AAE3B,OAAOM,EAAME,KAAIC,IAAmB,IAAlBvM,GAAEA,EAAEwM,MAAEA,GAAOD;AAC7B,MAAME,EAAYJ,EAAUK,QAAQC,MAAKC,IAAA,IAACC,KAAEA,GAAMD;AAAA,OAAKC,IAAS7M,CAAE;AAGlE,MAAO,CAAEA,KAAIwM,QAAOM,YAFAN,EAAQ,IAAMC,EAEDM,WADJ,IAAVP,GAAeC,EACW,GAEjD,CAEA,kBAAcO,CAAahN,GACzBhB,KAAKiO,QAAU;AACf,UACQjO,KAAKwC,KAAKF,eAAe0L,aAAa,CAAE1D,MAAM,EAAAC,QAAUvJ,OAC9DhB,KAAKiO,QAAU,eACjB,CAAE,MAAOC,GACPlO,KAAKiO,QAAO,sBAAA9C,OAAyBnK,EAAE,QACzC,CACF,CAEA,gBAAcmN,CAAWnN,GACvBhB,KAAKiO,QAAU;AACf,UACQjO,KAAKwC,KAAKF,eAAe6L,WAAW,CAAEnN,OAC5ChB,KAAKiO,QAAU,iBACjB,CAAE,MAAOC,GACPlO,KAAKiO,QAAO,oBAAA9C,OAAuBnK,EAAE,QACvC,CACF,CAEQiL,SACNjM,KAAKwC,KAAKF,eAAe2J,QAC3B,GACDrK,EAAAmD,EAAAtD,EAAAuD,UAAA,WAzDEoB,WAAO,CAAAlB,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAAC,YAAA,kBAA0B,IAAI,IAAAxD,EAAAkD,EAAAtD,EAAAuD,UAAA,aAErCC,UAAO,CAAAC,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAAC,YAAA,OAAAvD,EAAAiD,EAAAtD,EAAAuD,UAAA,QAEPC,UAAO,CAAAC,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAAC,YAAA,OAAAN,EAAAtD,EAAAuD,UAAA,gBA8BPM,UAAMC,OAAAC,yBAAA/D,EAAAuD,UAAA,gBAAAvD,EAAAuD,WAAAD,EAAAtD,EAAAuD,UAAA,cAUNM,UAAMC,OAAAC,yBAAA/D,EAAAuD,UAAA,cAAAvD,EAAAuD,WAAAD,EAAAtD,EAAAuD,UAAA,UAUNM,UAAMC,OAAAC,yBAAA/D,EAAAuD,UAAA,UAAAvD,EAAAuD,WAAAvD,IAAA,EAAAL,EAAAC,sBAAAR,EA5DYgM,EAAiB,I;AC3BtC,MAAMhM,GAAsB,EAAAC,EAAAC,uBAAA,CAAAC,GAAA,WAAAC,MAAA,qiBAAAC,WAAA,gEAAAC,cAAA;AAA4jCd,EAAAC,SAAA,EAAAc,EAAAC,sBAAAR,GAGzkC,EAAAS,aAAc,I;ACH7B,MAAMT,GAAsB,EAAAC,EAAAC,uBAAA,CAAAC,GAAA,WAAAC,MAAA,6NAAAC,WAAA,oDAAAC,cAAA;AAA4cd,EAAAC,SAAA,EAAAc,EAAAC,sBAAAR,GAGzd,EAAAS,aAAc,I;;;ACH7B,MAAMT,GAAsB,EAAAC,EAAAC,uBAAA,CAAAC,GAAA,WAAAC,MAAA,srFAAAC,WAAA,kDAAAC,cAAA;AAAs3K,IAa73KiN,EAAW/N,EAAAC,SAAAmB,EAAjB,cAA0BC,UAAoC9B,cAAAC,SAAAC,WAAA6B,EAAA3B,KAAA,YAAA4B,EAAA5B,MAAA2B,EAAA3B,KAAA,SAAA6B,EAAA7B,MAAA2B,EAAA3B,KAAA,WAAA8B,EAAA9B,KAAA,CAO3E,kBAAIqO,GACF,OAAO,EAAAC,WAAQ,CAAC,MAAO,OAAQ,QAAS,SAAU,UACpD,CAEA,eAAIC,GACF,OAAOvO,KAAKwC,KAAK+L,aAAe,OAClC,CAEQC,SACNxO,KAAKsJ,UAAUmF,OAAM,KACdzO,KAAK0O,OAAOC,aAAa3O,KAAKuO,YAAY,GAEnD,GACD3M,EAAAmD,EAAAtD,EAAAuD,UAAA,aAnBEC,UAAO,CAAAC,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAAC,YAAA,OAAAxD,EAAAkD,EAAAtD,EAAAuD,UAAA,UAEPC,UAAO,CAAAC,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAAC,YAAA,OAAAvD,EAAAiD,EAAAtD,EAAAuD,UAAA,YAEPC,UAAO,CAAAC,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAAC,YAAA,OAAAN,EAAAtD,EAAAuD,UAAA,UAUPM,UAAMC,OAAAC,yBAAA/D,EAAAuD,UAAA,UAAAvD,EAAAuD,WAAAvD,IAAA,EAAAL,EAAAC,sBAAAR,EAfYuN,EAAW,I;ACbhC,MAAMvN,GAAsB,EAAAC,EAAAC,uBAAA,CAAAC,GAAA,WAAAC,MAAA,+RAAAC,WAAA,wDAAAC,cAAA;AAAgiBd,EAAAC,SAAA,EAAAc,EAAAC,sBAAAR,GAG7iB,EAAAS,aAAc,I;ACH7B,MAAMT,GAAsB,EAAAC,EAAAC,uBAAA,CAAAC,GAAA,WAAAC,MAAA,mbAAAC,WAAA,yDAAAC,cAAA;AAA4yBd,EAAAC,SAAA,EAAAc,EAAAC,sBAAAR,GAGzzB,EAAAS,aAAc,I;ACH7B,MAAMT,GAAsB,EAAAC,EAAAC,uBAAA,CAAAC,GAAA,WAAAC,MAAA,yIAAAC,WAAA,4DAAAC,cAAA;AAA0Sd,EAAAC,SAAA,EAAAc,EAAAC,sBAAAR,GAGvT,EAAAS,aAAc,I;ACH7B,MAAMT,GAAsB,EAAAC,EAAAC,uBAAA,CAAAC,GAAA,WAAAC,MAAA,4UAAAC,WAAA,mDAAAC,cAAA;AAAkpBd,EAAAC,SAAA,EAAAc,EAAAC,sBAAAR,GAG/pB,EAAAS,aAAc,I;ACH7B,MAAMT,GAAsB,EAAAC,EAAAC,uBAAA,CAAAC,GAAA,WAAAC,MAAA,kQAAAC,WAAA,4DAAAC,cAAA;AAAwkBd,EAAAC,SAAA,EAAAc,EAAAC,sBAAAR,GAGrlB,EAAAS,aAAc,I;;ACH7B,MAAMT,GAAsB,EAAAC,EAAAC,uBAAA,CAAAC,GAAA,WAAAC,MAAA,sYAAAC,WAAA,oDAAAC,cAAA;AAM5B,IAgBqByN,EAAavO,EAAAC,SAAAmB,EAAnB,cAA4BC,UAAU9B,c;AAAAC,SAAAC,W,EAAAE,K,EAAA,Y,EAAAA,M,EAAA4B,I,qJAAA,CAMnD,qBAAIiN,GACF,OAAO,EAAAC,YAAQ,mCAAA3D,OACsBnL,KAAKsJ,UAAUyF,aAAaC,UAAS,MAE5E,G,EACDvN,EAAAuD,U,EAAA,Y,EAAA,CAVEC,U,EAAO,CAAAC,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAAC,YAAA,M,yUAUTzD,O,wDAVSH;iBAAA,EAAAL,EAAAC,sBAAAR,EADW+N,EAAa,I;;;;;;;;ACtBlC,MAAM/N,GAAsB,EAAAC,EAAAC,uBAAA,CAAAC,GAAA,WAAAC,MAAA,60BAAAC,WAAA,wDAAAC,cAAA;AAAoqD,IAe3qD8N,EAA0B5O,EAAAC,SAAAmB,EAAhC,cAAyCC,UAetD9B,YAAY2G,EAAc/D,GACxB3C,MAAM0G,EAAO/D,GAAKb,EAAA3B,KAAA,QAAA4B,EAAA5B,MAAA2B,EAAA3B,KAAA,OAAA6B,EAAA7B,MAAA2B,EAAA3B,KAAA,eAAA8B,EAAA9B,MAAA2B,EAAA3B,KAAA,WAAA+B,EAAA/B,MAAA2B,EAAA3B,KAAA,eAAAkP,EAAAlP,MAAA2B,EAAA3B,KAAA,YAAAmP,EAAAnP,MAAAD,EAAAC,KAAA,oBAClBA,KAAKwD,UAAY,CACf4L,eAAgBpP,KAAK0D,KAAKoJ,QAAQC,aAAaC,MAC/CrK,KAAM3C,KAAK0D,KAAKoJ,QAAQuC,UACxBC,MAAOtP,KAAKsP,MAAMC,cAEhBvP,KAAKwC,KAAKgN,cAAcxP,KAAKsP,MAAMG,6BACzC,CAEA,UAAItN,GACF,OAAOnC,KAAKoC,aAAaD,MAC3B,CAEA,kBAAIuN,GACF,OAAO1P,KAAKsP,MAAMI,cACpB,CAEA,4BAAIC,GACF,OAAO3P,KAAKsP,MAAMK,wBACpB,CAEA,mBAAIC,GACF,MAAO,CAAC,CAAC,QAAS,iCACpB,CAGAC,4BACO7P,KAAK2P,0BAEL3P,KAAKsP,MAAMO,0BAA0B,CACxCC,OAAQ9P,KAAK2P,yBAAyB3O,IAE1C,CAGA+O,UACE/P,KAAK6P,2BACP,CAGAG,QACEhQ,KAAKsP,MAAMW,iBACb,CAGAC,eAAe7M,GACbrD,KAAKsD,aAAa6M,4BAA4B9M,EAChD,CAGA+M,oBACEpQ,KAAKsJ,UAAUC,QACjB,GACD3H,EAAAmD,EAAAtD,EAAAuD,UAAA,SApEEC,WAAO,CAAAC,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAAC,YAAA,OAAAxD,EAAAkD,EAAAtD,EAAAuD,UAAA,QAEPC,WAAO,CAAAC,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAAC,YAAA,OAAAvD,EAAAiD,EAAAtD,EAAAuD,UAAA,gBAEPC,WAAO,CAAAC,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAAC,YAAA,OAAAtD,EAAAgD,EAAAtD,EAAAuD,UAAA,YAEPC,WAAO,CAAAC,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAAC,YAAA,OAAA6J,EAAAnK,EAAAtD,EAAAuD,UAAA,gBAEPC,WAAO,CAAAC,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAAC,YAAA,OAAA8J,EAAApK,EAAAtD,EAAAuD,UAAA,aAEPC,WAAO,CAAAC,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAAC,YAAA,OAAAN,EAAAtD,EAAAuD,UAAA,6BA8BPM,UAAMC,OAAAC,yBAAA/D,EAAAuD,UAAA,6BAAAvD,EAAAuD,WAAAD,EAAAtD,EAAAuD,UAAA,WASNM,UAAMC,OAAAC,yBAAA/D,EAAAuD,UAAA,WAAAvD,EAAAuD,WAAAD,EAAAtD,EAAAuD,UAAA,SAKNM,UAAMC,OAAAC,yBAAA/D,EAAAuD,UAAA,SAAAvD,EAAAuD,WAAAD,EAAAtD,EAAAuD,UAAA,kBAKNM,UAAMC,OAAAC,yBAAA/D,EAAAuD,UAAA,kBAAAvD,EAAAuD,WAAAD,EAAAtD,EAAAuD,UAAA,qBAKNM,UAAMC,OAAAC,yBAAA/D,EAAAuD,UAAA,qBAAAvD,EAAAuD,WAAAvD,IAAA,EAAAL,EAAAC,sBAAAR,EAjEYoO,EAA0B,I;;;;;;;;ACP/C,MACE1N,KAAK8O,YAAEA,IACLpQ;AAE2CI,EAAAC,SAAAmB,EAAhC,cAAyC6O,UAAW1Q,cAAAC,SAAAC,WAAAC,EAAAC,KAAA,cACnDqQ,GAAW1O,EAAA3B,KAAA,YAAA4B,EAAA5B,MAAA2B,EAAA3B,KAAA,SAAA6B,EAAA7B,MAAA2B,EAAA3B,KAAA,OAAA8B,EAAA9B,MAAA2B,EAAA3B,KAAA,WAAA+B,EAAA/B,KAAA,CAUzB,eAAIuQ,GACF,MAAMC,EAAYxQ,KAAK0O,OAAO+B,aAAa9N;AAC3C,MAAO,CAAC,cAAe,mBAAoB,SAAS+N,SAASF,EAC/D,CAQA,eAAIG,GACF,IAIE,OAFK3Q,KAAK0D,KAAKoJ,QACV9M,KAAK4Q,SAASC,oBACZ7Q,KAAKuQ,WACd,CAAE,MACA,OAAO,CACT,CACF,CAEA,yBAAIO,GACF,OAAO9Q,KAAK4Q,SAASG,iBACvB,CAEA,uBAAIC,GAEF,OADchR,KAAKiR,iBACKlF,uBAC1B,CAEA,wBAAImF,GACF,OAAIlR,KAAKgR,oBACA,qBAELhR,KAAK2Q,aAGL3Q,KAAK8Q,sBAFA,sBAKF,cACT,GACDlP,EAAAmD,EAAAtD,EAAAuD,UAAA,aAnDEC,UAAO,CAAAC,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAAC,YAAA,OAAAxD,EAAAkD,EAAAtD,EAAAuD,UAAA,UAEPC,UAAO,CAAAC,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAAC,YAAA,OAAAvD,EAAAiD,EAAAtD,EAAAuD,UAAA,QAEPC,UAAO,CAAAC,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAAC,YAAA,OAAAtD,EAAAgD,EAAAtD,EAAAuD,UAAA,YAEPC,UAAO,CAAAC,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAAC,YAAA,OAAA5D,EAAA,I;;AClBgCpB,EAAAC,SAAA6Q,GACvC,EAAAlM,UAAQ,yBAAwBxD,EADpB,cAAoC6O,UAAW1Q,c;AAAAC,SAAAC,W,EAAAE,K,EAAA,S,EAAAA,M,EAAA4B,I,qJAAA,CAG5D,sBAAIwP,GACF,OAAOpR,KAAKqR,OAAOC,UAAYtR,KAAKqR,OAAOE,UAC7C,G,EACD9P,EAAAuD,U,EAAA,S,EAAA,CAAAmM,G,EAAA,CAAAjM,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAAC,YAAA,M,yUAAAzD,O,wDAAAH;eAAA,I;;;ACAwCpB,EAAAC,SAAAmB,EAA1B,cAAmC6O,UAAW1Q,cAAAC,SAAAC,WAAA6B,EAAA3B,KAAA,cAAA4B,EAAA5B,MAAA2B,EAAA3B,KAAA,OAAA6B,EAAA7B,MAAA2B,EAAA3B,KAAA,SAAA8B,EAAA9B,MAAA2B,EAAA3B,KAAA,WAAA+B,EAAA/B,KAAA,CAS3D,qBAAIwR,GACF,IAAKxR,KAAKyR,YAAYD,kBACpB,MAAM,IAAI7F,MAAM;AAElB,OAAO3L,KAAKyR,YAAYD,iBAC1B,CAEA,gBAAIE,GACF,OAAO1R,KAAKwR,kBAAkBE,YAChC,CAEA,SAAIC,GACF,OAAO3R,KAAKwR,kBAAkBG,KAChC,CAEA,iBAAIC,GAEF,OAAO,EAAAC,WAAY,IAAIC,KAAK9R,KAAKwR,kBAAkBO,OAAQD,KAAKE,MAClE,CAEA,WAAIC,GACF,OAAO,EAAAC,WAAc,IAAIJ,KAAK9R,KAAKwR,kBAAkBO,OACvD,CAGAI,kBACE,MAAMC,EAAOpS,KAAKwR,kBAAkBY;AACpCpS,KAAK0O,OAAOC,aAAa,aAAcyD,EACzC,CAGAC,SACErS,KAAK0O,OAAOC,aAAa,SAC3B,GACD/M,EAAAmD,EAAAtD,EAAAuD,UAAA,eA1CEC,UAAO,CAAAC,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAAC,YAAA,OAAAxD,EAAAkD,EAAAtD,EAAAuD,UAAA,QAEPC,UAAO,CAAAC,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAAC,YAAA,OAAAvD,EAAAiD,EAAAtD,EAAAuD,UAAA,UAEPC,UAAO,CAAAC,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAAC,YAAA,OAAAtD,EAAAgD,EAAAtD,EAAAuD,UAAA,YAEPC,UAAO,CAAAC,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAAC,YAAA,OAAAN,EAAAtD,EAAAuD,UAAA,mBA0BPM,UAAMC,OAAAC,yBAAA/D,EAAAuD,UAAA,mBAAAvD,EAAAuD,WAAAD,EAAAtD,EAAAuD,UAAA,UAMNM,UAAMC,OAAAC,yBAAA/D,EAAAuD,UAAA,UAAAvD,EAAAuD,WAAAvD,EAAA;;;;AC1C0BpB,EAAAC,SAAAmB,EAApB,cAA6B6O,UAAW1Q,cAAAC,SAAAC,WAAA6B,EAAA3B,KAAA,YAAA4B,EAAA5B,MAAA2B,EAAA3B,KAAA,eAAA6B,EAAA7B,KAAA,CAKrD,kBAAIsC,GACF,MAAO,CACL8N,kBAAmBA,KACjBpQ,KAAKsJ,UAAUC,QAAQ,EAEzBmC,eAAgB6B,IAAmC,IAAlClK,MAAEA,GAA2BkK;AAC5CvN,KAAKsD,aAAa6M,4BAA4B9M,EAAM,EAEtDwC,KAAMA,KACJ7F,KAAKiM,QAAQ,EAEfA,OAAQA,KACNjM,KAAKiM,QAAQ,EAGnB,CAGAA,SACEjM,KAAKsJ,UAAUmF,OAAM,KACnB6D,OAAOC,QAAQC,MAAM,GAEzB,GACD5Q,EAAAmD,EAAAtD,EAAAuD,UAAA,aA3BEC,UAAO,CAAAC,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAAC,YAAA,OAAAxD,EAAAkD,EAAAtD,EAAAuD,UAAA,gBAEPC,UAAO,CAAAC,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAAC,YAAA,OAAAN,EAAAtD,EAAAuD,UAAA,UAmBPM,UAAMC,OAAAC,yBAAA/D,EAAAuD,UAAA,UAAAvD,EAAAuD,WAAAvD,EAAA,I;;;AClBkCpB,EAAAC,SAAAmB,EAA5B,cAAqC6O,UAAW1Q,cAAAC,SAAAC,WAAA6B,EAAA3B,KAAA,eAAA4B,EAAA5B,MAAA2B,EAAA3B,KAAA,YAAA6B,EAAA7B,MAAA2B,EAAA3B,KAAA,WAAA8B,EAAA9B,MAAA2B,EAAA3B,KAAA,SAAA+B,EAAA/B,KAAA,CAS7D,sBAAIyS,GACF,OAAOzS,KAAK4Q,SAAS6B,kBACvB,CAEA,kBAAInQ,GAA6C,IAAAoQ,EAAA1S;AAC/C,MAAO,CACLoQ,kBAAmBA,KACjBpQ,KAAKsJ,UAAUC,QAAQ,EAEzBmC,eAAgB6B,IAAmC,IAAlClK,MAAEA,GAA2BkK;AAC5CvN,KAAKsD,aAAa6M,4BAA4B9M,EAAM,EAEtDsP,SAAUA,KACR3S,KAAK2S,UAAU,EAEjBC,QAAS,SAACC,GAA0D,IAAzCC,EAAkBhT,UAAAgD,OAAA,QAAAiQ,IAAAjT,UAAA,GAAAA,UAAA,GAAGwS,OAAOQ;AACrDJ,EAAKE,QAAQC,EAASC,EACxB,EACAE,MAAOA,KACLhT,KAAKgT,OAAO,EAGlB,CAEQL,WACN3S,KAAKsJ,UAAUmF,OAAM,KACdzO,KAAK0O,OAAOC,aAAa,aAAc3O,KAAKyS,mBAAmB,GAExE,CAEQG,QAAQC,GAAmD,IAAlCC,EAAQhT,UAAAgD,OAAA,QAAAiQ,IAAAjT,UAAA,GAAAA,UAAA,GAAGwS,OAAOQ;AACjD,MAAMG,EAAMjT,KAAKkT,iBAAiBL,EAASC;AAC3CA,EAASK,KAAOF,EAAIE,IACtB,CAEQH,QAKR,CAKAE,iBAAiBL,EAAiBC,GAAyB,IAAAM;AAKzD,OAJY,IAAIC,IACd,aAAeR,EACO,QADAO,EACtBnT,UAAOsB,IAAI+R,mBAAW,IAAAF,IAAIN,EAASS,OAGvC,GACD3R,EAAAmD,EAAAtD,EAAAuD,UAAA,gBA5DEC,UAAO,CAAAC,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAAC,YAAA,OAAAxD,EAAAkD,EAAAtD,EAAAuD,UAAA,aAEPC,UAAO,CAAAC,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAAC,YAAA,OAAAvD,EAAAiD,EAAAtD,EAAAuD,UAAA,YAEPC,UAAO,CAAAC,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAAC,YAAA,OAAAtD,EAAAgD,EAAAtD,EAAAuD,UAAA,UAEPC,UAAO,CAAAC,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAAC,YAAA,OAAAN,EAAAtD,EAAAuD,UAAA,YA0BPM,UAAMC,OAAAC,yBAAA/D,EAAAuD,UAAA,YAAAvD,EAAAuD,WAAAD,EAAAtD,EAAAuD,UAAA,WAMNM,UAAMC,OAAAC,yBAAA/D,EAAAuD,UAAA,WAAAvD,EAAAuD,WAAAD,EAAAtD,EAAAuD,UAAA,SAKNM,UAAMC,OAAAC,yBAAA/D,EAAAuD,UAAA,SAAAvD,EAAAuD,WAAAvD,EAAA,I;;;AClDgCpB,EAAAC,SAAAmB,EAA1B,cAAmC6O,UAAW1Q,cAAAC,SAAAC,WAAA6B,EAAA3B,KAAA,WAAA4B,EAAA5B,MAAA2B,EAAA3B,KAAA,OAAA6B,EAAA7B,KAAA,CAK3D,eAAIwT,GACF,IAIE,OAFKxT,KAAK0D,KAAKoJ,QACV9M,KAAK4Q,SAASC,qBACZ,CACT,CAAE,MACA,OAAO,CACT,CACF,CAEA,yBAAI4C,GACF,OAAOzT,KAAKwT,aAAexT,KAAK4Q,SAASG,iBAC3C,GACDnP,EAAAmD,EAAAtD,EAAAuD,UAAA,YAlBEC,UAAO,CAAAC,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAAC,YAAA,OAAAxD,EAAAkD,EAAAtD,EAAAuD,UAAA,QAEPC,UAAO,CAAAC,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAAC,YAAA,OAAA5D,EAAA,I;;;;;;;;ACKH,MAAMiS,EAAgCrT,EAAAqT,kCAAG,EAAAC,WAAQ;AAkBftT,EAAAC,SAAAmB,EAA1B,cAAmC6O,UAAW1Q,cAAAC,SAAAC,WAAA6B,EAAA3B,KAAA,eAAA4B,EAAA5B,MAAA2B,EAAA3B,KAAA,YAAA6B,EAAA7B,MAAA2B,EAAA3B,KAAA,WAAA8B,EAAA9B,MAAA2B,EAAA3B,KAAA,YAAA+B,EAAA/B,MAAA2B,EAAA3B,KAAA,SAAAkP,EAAAlP,MAAAD,EAAAC,KAAA,oBAWxC,EAAA4T,eAAY5T,KAAM0T,GAAiC,CAEtE,qBAAIG,GACF,OAAI7T,KAAK+I,UAAUE,QACV,yBAEF,qBACT,CAEA,kBAAI3G,GACF,MAAO,CACL8N,kBAAmBA,KACjBpQ,KAAKsJ,UAAUC,QAAQ,EAEzBmC,eAAgB6B,IAAmC,IAAlClK,MAAEA,GAA2BkK;AAC5CvN,KAAKsD,aAAa6M,4BAA4B9M,EAAM,EAEtDuH,cAAeA,IAAM5K,KAAK8T,gBAC1B7H,OAAQA,KACNjM,KAAKiM,QAAQ,EAGnB,CAEA,6BAAM8H,GACJ,MAAMC,QAAiBhU,KAAKiU,iBAAiBC,QAAQC,OAAO,CAC1D3Q,UAAW,CACT4Q,MAAO,CACLC,QAAQ;AAKd,IAAKL,EACH,MAAM,IAAIrI,MAAM;AAGlB,OAAQqI,EAASC,iBAAiBK,YAChC,IAAK,wBACH,MAAM,IAAIvI,wBACR;AAGJ,IAAK,0BACH;AAEF,QACE,MAAM,IAAIJ,MAER,8DAAAR,OAC8D6I,EAASC,iBAAiBK,aAGhG,CAMA,mBAAcR,SACN9T,KAAK+T,0BAEP/T,KAAK4Q,SAASG,kBAChB/Q,KAAKsJ,UAAUmF,OAAM,KACdzO,KAAK0O,OAAOC,aAAa,iBAAiB,IAExC3O,KAAK4Q,SAAS2D,mBACvBvU,KAAKsJ,UAAUmF,OAAM,KACdzO,KAAK0O,OAAOC,aAAa,iBAAiB,IAGjD3O,KAAKsJ,UAAUmF,OAAM,KACdzO,KAAK0O,OAAOC,aAAa,QAAQ,GAG5C,CAEQ1C,SACN,MAAMuI,oBAAEA,GAAwBxU,KAAK4Q;AAErC5Q,KAAKsJ,UAAUmF,OAAM,KACf+F,EACFlC,OAAOC,QAAQC,OAEVxS,KAAK0O,OAAOC,aAAa,SAChC,GAEJ,GACD/M,EAAAmD,EAAAtD,EAAAuD,UAAA,gBAlGEC,UAAO,CAAAC,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAAC,YAAA,OAAAxD,EAAAkD,EAAAtD,EAAAuD,UAAA,aAEPC,UAAO,CAAAC,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAAC,YAAA,OAAAvD,EAAAiD,EAAAtD,EAAAuD,UAAA,YAEPC,UAAO,CAAAC,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAAC,YAAA,OAAAtD,EAAAgD,EAAAtD,EAAAuD,UAAA,aAEPC,UAAO,CAAAC,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAAC,YAAA,OAAA6J,EAAAnK,EAAAtD,EAAAuD,UAAA,UAEPC,UAAO,CAAAC,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAAC,YAAA,OAAAN,EAAAtD,EAAAuD,UAAA,iBA6DPM,UAAMC,OAAAC,yBAAA/D,EAAAuD,UAAA,iBAAAvD,EAAAuD,WAAAD,EAAAtD,EAAAuD,UAAA,UAkBNM,UAAMC,OAAAC,yBAAA/D,EAAAuD,UAAA,UAAAvD,EAAAuD,WAAAvD,EAAA,I;;;AC9GgCpB,EAAAC,SAAAmB,EAA1B,cAAmC6O,UAAW1Q,cAAAC,SAAAC,WAAA6B,EAAA3B,KAAA,eAAA4B,EAAA5B,MAAA2B,EAAA3B,KAAA,YAAA6B,EAAA7B,MAAA2B,EAAA3B,KAAA,kBAAA8B,EAAA9B,MAAA2B,EAAA3B,KAAA,SAAA+B,EAAA/B,KAAA,CAS3D,kBAAIsC,GACF,MAAO,CACL8N,kBAAmBA,KACjBpQ,KAAKsJ,UAAUC,QAAQ,EAEzBmC,eAAgB6B,IAAmC,IAAlClK,MAAEA,GAA2BkK;AAC5CvN,KAAKsD,aAAa6M,4BAA4B9M,EAAM,EAEtD4I,OAAQA,KACNjM,KAAKiM,QAAQ,EAEfwI,QAAUC,IACR1U,KAAKyU,QAAQC,EAAQ,EAEvBC,SAAWC,IACT5U,KAAK2U,SAASC,EAAO,EAEvBC,gBAAkBC,IAChB9U,KAAK6U,gBAAgBC,EAAM,EAE7B9B,MAAQxQ,GAASxC,KAAK+U,gBAAgB/B,MAAMxQ,GAEhD,CAEA,aAAIwS,GACF,OAAQhV,KAAK0O,OAAO+B,aAAawE,WAC/B,IAAK,SACH,MAAO;AACT,IAAK,QACH,MAAO;AACT,IAAK,QACH,MAAO;AACT,IAAK,eACH,MAAO;AACT,QACE,MAAO,cAEb,CAEQhJ,SACNjM,KAAKsJ,UAAUmF,OAAM,KACnB6D,OAAOC,QAAQC,MAAM,GAEzB,CAMQiC,QAAQC,GACd,OAAQA,GACN,IAAK,eACE1U,KAAK0O,OAAOwG,YAAY;AAC7B;AACF,IAAK,SACElV,KAAK0O,OAAOwG,YAAY;AAC7B;AACF,IAAK,QACElV,KAAK0O,OAAOwG,YAAY;AAC7B;AACF,IAAK,QACElV,KAAK0O,OAAOwG,YAAY;AAC7B;AACF,IAAK,WACElV,KAAK0O,OAAOwG,YAAY;AAC7B;AACF,QACE,MAAM,IAAIvJ,MAAK,qBAAAR,OAAsBuJ,IAE3C,CAEQC,SAASC,GACf5U,KAAKsJ,UAAUmF,OAAM,KACdzO,KAAK0O,OAAOC,aAAa,OAAQiG,EAAO,GAEjD,CAEQC,gBAAgBC,GACtB9U,KAAKsJ,UAAUmF,OAAM,KACdzO,KAAK0O,OAAOC,aAAa,QAASmG,EAAM,GAEjD,GACDlT,EAAAmD,EAAAtD,EAAAuD,UAAA,gBA1FEC,UAAO,CAAAC,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAAC,YAAA,OAAAxD,EAAAkD,EAAAtD,EAAAuD,UAAA,aAEPC,UAAO,CAAAC,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAAC,YAAA,OAAAvD,EAAAiD,EAAAtD,EAAAuD,UAAA,mBAEPC,UAAO,CAAAC,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAAC,YAAA,OAAAtD,EAAAgD,EAAAtD,EAAAuD,UAAA,UAEPC,UAAO,CAAAC,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAAC,YAAA,OAAAN,EAAAtD,EAAAuD,UAAA,UAyCPM,UAAMC,OAAAC,yBAAA/D,EAAAuD,UAAA,UAAAvD,EAAAuD,WAAAD,EAAAtD,EAAAuD,UAAA,WAUNM,UAAMC,OAAAC,yBAAA/D,EAAAuD,UAAA,WAAAvD,EAAAuD,WAAAD,EAAAtD,EAAAuD,UAAA,YAsBNM,UAAMC,OAAAC,yBAAA/D,EAAAuD,UAAA,YAAAvD,EAAAuD,WAAAD,EAAAtD,EAAAuD,UAAA,mBAMNM,UAAMC,OAAAC,yBAAA/D,EAAAuD,UAAA,mBAAAvD,EAAAuD,WAAAvD,EAAA,I;;;;;;;;ACzE2BpB,EAAAC,SAAA6Q,GA8NjC,EAAAhJ,iBAAagN,GAMb,EAAAhN,eAAY,CACXiK,KAAM,CACJgD,KAAM,SACNC,QAgCN,SAA6BC,GAC3B,MAAMD,EAAU;AAChB,IAAInK,EAAI;AAER,KAAQA,EAAIoK,EAAepK,IAAK,CAC9B,MAAMkH,GAAQlH,EAAI,GAAG8D;AAErBqG,EAAQtO,KAAK,CACXjB,MAAOsM,EACPmD,MAAK,QAAApK,OAAUiH,IAEnB,CACA,OAAOiD,CACT,CA7CeG,CAAoB,KAE/BC,eAAgB,CACdL,KAAM,SACNtP,MAAO,OAET4P,GAeD,EAAAvN,iBAAawN,GAKb,EAAAC,gBAAYnU,EAjQA,cAA8B6O,UAAW1Q,cAAAC,SAAAC,WAAA6B,EAAA3B,KAAA,WAAA4B,EAAA5B,MAAA2B,EAAA3B,KAAA,eAAA6B,EAAA7B,MAAA2B,EAAA3B,KAAA,YAAA8B,EAAA9B,MAAA2B,EAAA3B,KAAA,OAAA+B,EAAA/B,MAAA2B,EAAA3B,KAAA,SAAAkP,EAAAlP,MAAA2B,EAAA3B,KAAA,QAAAmP,EAAAnP,MAAA2B,EAAA3B,KAAA,WAAA6V,EAAA7V,MAAA2B,EAAA3B,KAAA,YAAA8V,EAAA9V,MAAA2B,EAAA3B,KAAA,cAAA+V,EAAA/V,MAAAD,EAAAC,KAAA,wBA8K/B,EAAA4T,eAAY5T,KAAMgW,wCAAqC,CAzJ9E,oBAAIC,GACF,OAAOjW,KAAKiR,MAAMiF,cACpB,CAEA,gBAAIC,GACF,IAAKnW,KAAKiW,iBAAkB,OAAO;AACnC,IAAKjW,KAAKyR,YAAYD,kBACpB,MAAM,IAAI7F,MACR;AAGJ,OAAO3L,KAAKyR,YAAYD,kBAAkBxQ,EAC5C,CAEA,gBAAIoV,GACF,OACEpW,KAAK0D,KAAKoJ,QAAQuJ,eAClBrW,KAAKiW,mBACJjW,KAAKyR,YAAYD,iBAEtB,CAEA,kBAAIlP,GACF,MAAO,CACL8N,kBAAmBA,KACjBpQ,KAAKsJ,UAAUC,QAAQ,EAEzBmC,eAAgB6B,IAAmC,IAAlClK,MAAEA,GAA2BkK;AAC5CvN,KAAKsD,aAAa6M,4BAA4B9M,EAAM,EAEtDiT,OAAQA,KACNtW,KAAKsW,QAAQ,EAEfC,gBAAiBA,KACfvW,KAAKuW,iBAAiB,EAExBC,eAAgBA,CAACC,EAAgBC,KAC/B1W,KAAKwW,eAAeC,EAAQC,EAAS,EAEvC/D,SAAW8D,IACTzW,KAAK2W,iBAAiBF,EAAO,EAE/BG,kBAAoBH,IAClBzW,KAAK6W,mBAAmBJ,EAAO,EAEjCK,aAAcA,CAACL,EAAgBhB,KAC7BzV,KAAK+W,0BAA0BN,EAAQhB,EAAe,EAExDuB,WAAYA,KACVhX,KAAKiX,oBAAoB,EAE3BC,UAAWA,KACTlX,KAAKmX,mBAAmB,EAE1BC,UAAWA,KACTpX,KAAKqX,mBAAmB,EAE1BC,aAAcA,KACZtX,KAAKuX,sBAAsB,EAE7BC,aAAcA,KACZxX,KAAKwX,cAAc,EAErBC,aAAcA,CAAChB,EAAgBhB,EAAwBnL,IACrDtK,KAAKyX,aAAahB,EAAQhB,EAAgBnL,GAEhD,CAEA,aAAI0K,GACF,MAAM0C,EAAgB1X,KAAK0O,OAAO+B,aAAakH,MAC5CC,GAAyB,eAAfA,EAAMjV,OAEb8T,EAASiB,aAAa,EAAbA,EAAe9Q,OAAgB;AAE9C,MAAsC,sBAAlC5G,KAAK0O,OAAO+B,aAAa9N,KACpB8T,EAAM,iBAAAtL,OAAoBsL,GAAW,iBAGvCA,EAAM,QAAAtL,OAAWsL,EAAM,YAAa,OAC7C,CAEQH,SACDtW,KAAK0O,OAAOC,aAAa,SAChC,CAEQ4H,kBACNvW,KAAKsJ,UAAUmF,OAAM,KACdzO,KAAK0O,OAAOC,aAAa,cAAc,GAEhD,CAEQ6H,eAAeC,EAAgBC,GACpB,SAAbA,EACG1W,KAAK0O,OAAOC,aAAa,aAAc8H,GACtB,WAAbC,GACJ1W,KAAK0O,OAAOC,aAAa,oBAAqB8H,EAEvD,CAEQE,iBAAiBF,GAClBzW,KAAK0O,OAAOC,aAAa,aAAc8H,EAC9C,CAEQI,mBAAmBJ,GACrBzW,KAAKoW,aACPpW,KAAKsW,SAGFtW,KAAK0O,OAAOC,aAAa,oBAAqB8H,EACrD,CAEQM,0BACNN,EACAhB,GAEA,MAAMoC,EAAU7X,KAAK8X,SAASC,eAAetB,EAAQhB;AAGrDzV,KAAKsJ,UAAUmF,OAAM,KACdzO,KAAK0O,OAAOC,aAAa,QAAS8H,EAAQoB,EAAQ7W,GAAG,GAE9D,CAEQiW,qBACNjX,KAAKsJ,UAAUmF,OAAM,KACdzO,KAAK0O,OAAOC,aAAa,qBAAqB,GAEvD,CAEQwI,oBACNnX,KAAKsJ,UAAUmF,OAAM,KACdzO,KAAK0O,OAAOC,aAAa,oBAAoB,GAEtD,CAEQ0I,oBACNrX,KAAKsJ,UAAUmF,OAAM,KACdzO,KAAK0O,OAAOC,aAAa,oBAAoB,GAEtD,CAEQ4I,uBACNvX,KAAKsJ,UAAUmF,OAAM,KACdzO,KAAK0O,OAAOC,aAAa,oBAAoB,GAEtD,CAEQ6I,eACNxX,KAAKsJ,UAAUmF,OAAM,KACdzO,KAAK0O,OAAOC,aAAa,YAAY,GAE9C,CAIA,kBAAc8I,CACZhB,EACAhB,EACAnL,GAEA,MACM0N,EADkBhY,KAAK8X,SACCG,yBAC5BxB,EACAhB;AAGF,IAAKuC,EAAME,GAAI,MAAM,IAAIvM,MAAMqM,EAAMG;AAErC,MAAMnE,QAAiBhU,KAAKoY,qBAAqBlE,QAAQC,OAAO,CAC9D3Q,UAAW,CACT4Q,MAAO,CACLjK,WAAY6N,EAAMhX,GAClBmV,aAAcnW,KAAKmW,aACnBkC,YAAa/N,WAAQ,EAAAC;AAK3B,IAAKyJ,EACH,MAAM,IAAIrI,MAAM;AAGlB,OAAQqI,EAASoE,qBAAqB9D,YACpC,IAAK,wBACH,MAAM,IAAIvI,wBACR;AAGJ,IAAK,8BACH;AAEF,QACE,MAAM,IAAIJ,MAER,kEAAAR,OACkE6I,EAASoE,qBAAqB9D,aAGxG,CAEA,kCAEMgE,SACEtY,KAAK+I,UAAUwP,4BACvB,CAEA,iCAWMC,CAA2B5K,GAM9B,IAN+BwE,KAChCA,EAAIqD,eACJA,GAID7H;MACO5N,KAAK+I,UAAU0P,kBACnBC,SAAStG,EAAM,IACfsG,SAASjD,EAAgB,IAE7B,CAEA,oCAEMkD,SACE3Y,KAAK+I,UAAU0P,kBAAkB,GAAI,EAC7C,CAEA,gBACIlJ,GACF,OAAOvP,KAAKsP,MAAMC,YACpB,GACD3N,EAAAmD,EAAAtD,EAAAuD,UAAA,YAlQEC,UAAO,CAAAC,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAAC,YAAA,OAAAxD,EAAAkD,EAAAtD,EAAAuD,UAAA,gBAEPC,UAAO,CAAAC,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAAC,YAAA,OAAAvD,EAAAiD,EAAAtD,EAAAuD,UAAA,aAEPC,UAAO,CAAAC,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAAC,YAAA,OAAAtD,EAAAgD,EAAAtD,EAAAuD,UAAA,QAEPC,UAAO,CAAAC,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAAC,YAAA,OAAA6J,EAAAnK,EAAAtD,EAAAuD,UAAA,UAEPC,UAAO,CAAAC,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAAC,YAAA,OAAA8J,EAAApK,EAAAtD,EAAAuD,UAAA,SAEPC,UAAO,CAAAC,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAAC,YAAA,OAAAwQ,EAAA9Q,EAAAtD,EAAAuD,UAAA,YAEPC,UAAO,CAAAC,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAAC,YAAA,OAAAyQ,EAAA/Q,EAAAtD,EAAAuD,UAAA,aAEPC,UAAO,CAAAC,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAAC,YAAA,OAAA0Q,EAAAhR,EAAAtD,EAAAuD,UAAA,eAEPC,UAAO,CAAAC,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAAC,YAAA,OAAAN,EAAAtD,EAAAuD,UAAA,UAmFPM,UAAMC,OAAAC,yBAAA/D,EAAAuD,UAAA,UAAAvD,EAAAuD,WAAAD,EAAAtD,EAAAuD,UAAA,mBAINM,UAAMC,OAAAC,yBAAA/D,EAAAuD,UAAA,mBAAAvD,EAAAuD,WAAAD,EAAAtD,EAAAuD,UAAA,kBAMNM,UAAMC,OAAAC,yBAAA/D,EAAAuD,UAAA,kBAAAvD,EAAAuD,WAAAD,EAAAtD,EAAAuD,UAAA,oBAQNM,UAAMC,OAAAC,yBAAA/D,EAAAuD,UAAA,oBAAAvD,EAAAuD,WAAAD,EAAAtD,EAAAuD,UAAA,sBAINM,UAAMC,OAAAC,yBAAA/D,EAAAuD,UAAA,sBAAAvD,EAAAuD,WAAAD,EAAAtD,EAAAuD,UAAA,6BAQNM,UAAMC,OAAAC,yBAAA/D,EAAAuD,UAAA,6BAAAvD,EAAAuD,WAAAD,EAAAtD,EAAAuD,UAAA,sBAYNM,UAAMC,OAAAC,yBAAA/D,EAAAuD,UAAA,sBAAAvD,EAAAuD,WAAAD,EAAAtD,EAAAuD,UAAA,qBAMNM,UAAMC,OAAAC,yBAAA/D,EAAAuD,UAAA,qBAAAvD,EAAAuD,WAAAD,EAAAtD,EAAAuD,UAAA,qBAMNM,UAAMC,OAAAC,yBAAA/D,EAAAuD,UAAA,qBAAAvD,EAAAuD,WAAAD,EAAAtD,EAAAuD,UAAA,wBAMNM,UAAMC,OAAAC,yBAAA/D,EAAAuD,UAAA,wBAAAvD,EAAAuD,WAAAD,EAAAtD,EAAAuD,UAAA,gBAMNM,UAAMC,OAAAC,yBAAA/D,EAAAuD,UAAA,gBAAAvD,EAAAuD,WAAAD,EAAAtD,EAAAuD,UAAA,gBAQNM,UAAMC,OAAAC,yBAAA/D,EAAAuD,UAAA,gBAAAvD,EAAAuD,WAAAD,EAAAtD,EAAAuD,UAAA,gCA6CNM,SAAM6L,GAAA5L,OAAAC,yBAAA/D,EAAAuD,UAAA,gCAAAvD,EAAAuD,WAAAD,EAAAtD,EAAAuD,UAAA,+BAMNM,SAAM6P,GAAA5P,OAAAC,yBAAA/D,EAAAuD,UAAA,+BAAAvD,EAAAuD,WAAAD,EAAAtD,EAAAuD,UAAA,kCAwBNM,SAAMoQ,GAAAnQ,OAAAC,yBAAA/D,EAAAuD,UAAA,kCAAAvD,EAAAuD,WAAAD,EAAAtD,EAAAuD,UAAA,gBAAA2Q,GAAApQ,OAAAC,yBAAA/D,EAAAuD,UAAA,gBAAAvD,EAAAuD,WAAAvD,EAyBR,I;AC1SD,SAAAE,EAAAiX,EAAA1N,EAAA2N,EAAAC,GAAAD,GAAAtT,OAAA2B,eAAA0R,EAAA1N,EAAA,CAAA/F,WAAA0T,EAAA1T,WAAAD,aAAA2T,EAAA3T,aAAAE,SAAAyT,EAAAzT,SAAAU,MAAA+S,EAAAxT,YAAAwT,EAAAxT,YAAA0T,KAAAD,QAAA,aAAA/Y,EAAA6Y,EAAAC,EAAAG,GAAA,OAAAH,EAAA,SAAAG,GAAA,IAAA9N,EAAA,SAAA8N,EAAAH,GAAA,oBAAAG,MAAA,OAAAA;AAAA,IAAAJ,EAAAI,EAAAC,OAAAC;AAAA,YAAAN,EAAA,KAAA1N,EAAA0N,EAAAG,KAAAC,EAAAH,GAAA;AAAA,oBAAA3N,EAAA,OAAAA;AAAA,UAAAiO,UAAA,kEAAAN,EAAAO,OAAA3M,QAAAuM,EAAA,CAAAK,CAAAL,EAAA;AAAA,uBAAA9N,MAAA,GAAAoO,CAAAT,MAAAD,EAAArT,OAAA2B,eAAA0R,EAAAC,EAAA,CAAA/S,MAAAkT,EAAA7T,YAAA,EAAAD,cAAA,EAAAE,UAAA,IAAAwT,EAAAC,GAAAG,EAAAJ,CAAA,UAAA7T,EAAAmG,EAAA0N,EAAAC,EAAAU,EAAAT,GAAA,IAAAU,EAAA;AAAA,OAAAjU,OAAAkU,KAAAF,GAAAG,SAAA,SAAAxO,GAAAsO,EAAAtO,GAAAqO,EAAArO,EAAA,IAAAsO,EAAArU,aAAAqU,EAAArU,WAAAqU,EAAAtU,eAAAsU,EAAAtU,cAAA,UAAAsU,KAAAnU,eAAAmU,EAAApU,UAAA,GAAAoU,EAAAX,EAAAnL,QAAAiM,UAAAC,QAAA,SAAAf,EAAAU,GAAA,OAAAA,EAAArO,EAAA0N,EAAAC,KAAA,GAAAW,GAAAV,QAAA,IAAAU,EAAAnU,cAAAmU,EAAA1T,MAAA0T,EAAAnU,YAAAmU,EAAAnU,YAAA0T,KAAAD,QAAA,EAAAU,EAAAnU,iBAAA,YAAAmU,EAAAnU,aAAAE,OAAA2B,eAAAgE,EAAA0N,EAAAY,GAAA,MAAAA,CAAA,C,yJAeA,EAAA7F,WAAQ,wIASR,EAAAA,WAAQ;AAOD,MAAMkG,EAAyCxZ,EAAAwZ,2CAAG,EAAAlG,WAAQ,meAoBpDmG,EAAuCzZ,EAAAyZ,yCAAG,EAAAnG,WAAQ;AAoBnBtT,EAAAC,SAAAmB,EAA7B,cAAsC6O,UAAW1Q,cAAAC,SAAAC,WAAA6B,EAAA3B,KAAA,UAAA4B,EAAA5B,MAAA2B,EAAA3B,KAAA,SAAA6B,EAAA7B,MAAA2B,EAAA3B,KAAA,YAAA8B,EAAA9B,MAAA2B,EAAA3B,KAAA,eAAA+B,EAAA/B,MAAA2B,EAAA3B,KAAA,WAAAkP,EAAAlP,MAAA2B,EAAA3B,KAAA,YAAAmP,EAAAnP,MAAA2B,EAAA3B,KAAA,QAAA6V,EAAA7V,MAAAD,EAAAC,KAAA,6BAelC,EAAA4T,eAC1B5T,KACA6Z,IACD9Z,EAAAC,KAAA,2BAEyB,EAAA4T,eACxB5T,KACA8Z,GACD,CAED,qBAAIjG,GACF,OAAI7T,KAAK+I,UAAUE,QACV,4BAEF,qBACT,CAEQmH,oBACNpQ,KAAKsJ,UAAUC,QACjB,CAEQmC,eAAc6B,GAAsC,IAArClK,MAAEA,GAA2BkK;AAClDvN,KAAKsD,aAAa6M,4BAA4B9M,EAChD,CAEQ0W,YACD/Z,KAAK0O,OAAOC,aAAa,QAChC,CAEQ1C,SACNjM,KAAKga,QAAQC,WAAW,CACtBC,SAAU,iBACV5U,OAAQ,UACRiQ,MAAO,YAGJvV,KAAK0O,OAAOC,aAAa,SAChC,CAEAwL,oBAAoBC,GAElB,MAD8B,cAAdA,EAAKhF,KAEZ,CAAE8C,IAAI,GAER,CACLA,IAAI,EACJ7U,MAAK,6DAET,CAEA,uBAAckJ,CAAiBqB,GAMb,IANchJ,OAC9BA,EAAM0F,KACNA,GAIDsD;AACC5N,KAAKga,QAAQC,WAAW,CACtBC,SAAU,iBACV5U,OAAQ,sBACRiQ,MAAO3Q;AAGT,MAAMoP,QAAiBhU,KAAKqa,wBAAwBnG,QAAQC,OAAO,CACjE3Q,UAAW,CACT4Q,MAAO,CACLiE,YAAa/N;AAKnB,IAAK0J,EACH,MAAM,IAAIrI,MAAM;AAGlB,OAAQqI,EAASqG,wBAAwB/F,YACvC,IAAK,wBACH,MAAM,IAAIvI,wBACR;AAEJ,IAAK,iCACH;AAEF,QACE,MAAM,IAAIJ,MAER,qEAAAR,OACqE6I,EAASqG,wBAAwB/F,aAG9G,CAEA,qBAAcnI,CAAemO,GAMO,IANNlO,eAC5BA,EAAc9B,KACdA,GAIDgQ;AACCta,KAAKga,QAAQC,WAAW,CACtBC,SAAU,iBACV5U,OAAQ,oBACRiQ,MAAK,mBAAApK,OAAqBiB,EAAe4C;AAG3C,MAAMgF,QAAiBhU,KAAKua,0BAA0BrG,QAAQC,OAAO,CACnE3Q,UAAW,CACT4Q,MAAO,CACLiE,YAAa/N,EACb8B;AAKN,IAAK4H,EACH,MAAM,IAAIrI,MAAM;AAGlB,OAAQqI,EAASuG,0BAA0BjG,YACzC,IAAK,wBACH,MAAM,IAAIvI,wBACR;AAEJ,IAAK,mCACH,MAAO,CAAEM,WAAYrM,KAAK4Q,SAAS6B;AAErC,QACE,MAAM,IAAI9G,MAER,uEAAAR,OACuE6I,EAASuG,0BAA0BjG,aAGlH,GACD1S,EAAAmD,EAAAtD,EAAAuD,UAAA,WApJEC,UAAO,CAAAC,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAAC,YAAA,OAAAxD,EAAAkD,EAAAtD,EAAAuD,UAAA,UAEPC,UAAO,CAAAC,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAAC,YAAA,OAAAvD,EAAAiD,EAAAtD,EAAAuD,UAAA,aAEPC,UAAO,CAAAC,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAAC,YAAA,OAAAtD,EAAAgD,EAAAtD,EAAAuD,UAAA,gBAEPC,UAAO,CAAAC,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAAC,YAAA,OAAA6J,EAAAnK,EAAAtD,EAAAuD,UAAA,YAEPC,UAAO,CAAAC,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAAC,YAAA,OAAA8J,EAAApK,EAAAtD,EAAAuD,UAAA,aAEPC,UAAO,CAAAC,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAAC,YAAA,OAAAwQ,EAAA9Q,EAAAtD,EAAAuD,UAAA,SAEPC,UAAO,CAAAC,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAAC,YAAA,OAAAN,EAAAtD,EAAAuD,UAAA,qBAmBPM,UAAMC,OAAAC,yBAAA/D,EAAAuD,UAAA,qBAAAvD,EAAAuD,WAAAD,EAAAtD,EAAAuD,UAAA,kBAINM,UAAMC,OAAAC,yBAAA/D,EAAAuD,UAAA,kBAAAvD,EAAAuD,WAAAD,EAAAtD,EAAAuD,UAAA,aAINM,UAAMC,OAAAC,yBAAA/D,EAAAuD,UAAA,aAAAvD,EAAAuD,WAAAD,EAAAtD,EAAAuD,UAAA,UAINM,UAAMC,OAAAC,yBAAA/D,EAAAuD,UAAA,UAAAvD,EAAAuD,WAAAD,EAAAtD,EAAAuD,UAAA,qBAqBNM,UAAMC,OAAAC,yBAAA/D,EAAAuD,UAAA,qBAAAvD,EAAAuD,WAAAD,EAAAtD,EAAAuD,UAAA,mBA0CNM,UAAMC,OAAAC,yBAAA/D,EAAAuD,UAAA,mBAAAvD,EAAAuD,WAAAvD,EAAA,I;;;AC3K2BpB,EAAAC,SAAAmB,EAArB,cAA8B6O,UAAW1Q,cAAAC,SAAAC,WAAA6B,EAAA3B,KAAA,YAAA4B,EAAA5B,MAAA2B,EAAA3B,KAAA,eAAA6B,EAAA7B,KAAA,CAKtD,kBAAIsC,GACF,MAAO,CACL8N,kBAAmBA,KACjBpQ,KAAKsJ,UAAUC,QAAQ,EAEzBmC,eAAgB6B,IAAmC,IAAlClK,MAAEA,GAA2BkK;AAC5CvN,KAAKsD,aAAa6M,4BAA4B9M,EAAM,EAEtDuH,cAAeA,KACb5K,KAAKiM,QAAQ,EAEfA,OAAQA,KACNjM,KAAKiM,QAAQ,EAGnB,CAEQA,SACNjM,KAAKsJ,UAAUmF,OAAM,KACnB6D,OAAOC,QAAQC,MAAM,GAEzB,GACD5Q,EAAAmD,EAAAtD,EAAAuD,UAAA,aA1BEC,UAAO,CAAAC,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAAC,YAAA,OAAAxD,EAAAkD,EAAAtD,EAAAuD,UAAA,gBAEPC,UAAO,CAAAC,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAAC,YAAA,OAAAN,EAAAtD,EAAAuD,UAAA,UAmBPM,UAAMC,OAAAC,yBAAA/D,EAAAuD,UAAA,UAAAvD,EAAAuD,WAAAvD,EAAA,I;;;;;;;gkBCWT,EAAAkS,WAAQ,oQAiBR,EAAAA,WAAQ,ySAmBR,EAAAA,WAAQ;AAgBD,MAAMqC,EAAoC3V,EAAA2V,sCAAG,EAAArC,WAAQ,ylBAwB/C6G,EAAoCna,EAAAma,sCAAG,EAAA7G,WAAQ,yiBAuB/C8G,EAAoCpa,EAAAoa,sCAAG,EAAA9G,WAAQ;AAuBnBtT,EAAAC,SAAAmB,EAA1B,cACL6O,UAEV1Q,cAAAC,SAAAC,WAAA6B,EAAA3B,KAAA,YAAA4B,EAAA5B,MAAA2B,EAAA3B,KAAA,eAAA6B,EAAA7B,MAAA2B,EAAA3B,KAAA,YAAA8B,EAAA9B,MAAA2B,EAAA3B,KAAA,OAAA+B,EAAA/B,MAAA2B,EAAA3B,KAAA,WAAAkP,EAAAlP,MAAA2B,EAAA3B,KAAA,kBAAAmP,EAAAnP,MAAA2B,EAAA3B,KAAA,SAAA6V,EAAA7V,MAAA2B,EAAA3B,KAAA,QAAA8V,EAAA9V,MAAA2B,EAAA3B,KAAA,WAAA+V,EAAA/V,MAAA2B,EAAA3B,KAAA,cAAA0a,EAAA1a,MAAAD,EAAAC,KAAA,wBAuByB,EAAA4T,eAAY5T,KAAMgW,IAAqCjW,EAAAC,KAAA,wBACvD,EAAA4T,eAAY5T,KAAMwa,IAAqCza,EAAAC,KAAA,wBACvD,EAAA4T,eAAY5T,KAAMya,GAAqC,CAE9E,cAAItQ,GACF,OAAOnK,KAAKiR,MAAM9G,UACpB,CAEA,gBAAIV,GACF,OAAOzJ,KAAKiR,MAAMxH,YACpB,CAEA,oBAAIwM,GACF,OAAOjW,KAAKiR,MAAMiF,cACpB,CAEA,gBAAIC,GACF,IAAKnW,KAAKiW,iBAAkB,OAAO;AACnC,IAAKjW,KAAKyR,YAAYD,kBACpB,MAAM,IAAI7F,MACR;AAGJ,OAAO3L,KAAKyR,YAAYD,kBAAkBxQ,EAC5C,CAEA,gBAAIoV,GACF,OACEpW,KAAK0D,KAAKoJ,QAAQuJ,eAClBrW,KAAKiW,mBACJjW,KAAKyR,YAAYD,iBAEtB,CAEA,sBAAI+C,GACF,OAAOvU,KAAK4Q,SAAS2D,kBACvB,CAEA,sBAAI9B,GACF,OAAOzS,KAAK4Q,SAAS6B,kBACvB,CAEA,UAAIgE,GACF,OAAOzW,KAAKiR,MAAMwF,MACpB,CAEA,WAAIoB,GACF,OAAO7X,KAAKiR,MAAM4G,OACpB,CAEA,oBAAI8C,GACF,OAAO3a,KAAK0D,KAAKoJ,QAAQuC,SAC3B,CAEA,oBAAIuL,GACF,OAAO5a,KAAKsP,MAAMI,cACpB,CAEA,aAAIsF,GACF,SAAA7J,QAAU,EAAA0P,aAAU7a,KAAK6X,SAAQ,YAAA1M,OAAWnL,KAAKyW,OAAOrL,WAC1D,CAGAgF,oBACEpQ,KAAKsJ,UAAUC,QACjB,CAGAmC,eAAc6B,GAAkC,IAAjClK,MAAEA,GAA6BkK;AAC5CvN,KAAKsD,aAAa6M,4BAA4B9M,EAChD,CAGA2P,MAAM9M,GACJ,OAAOlG,KAAK+U,gBAAgB/B,MAAM9M,EACpC,CAEA,mBACM0E,GACJ,GAAI5K,KAAKiR,MAAM6J,oBAAqB;AACpC9a,KAAKiR,MAAM6J,qBAAsB;AAEjC,MAAM9G,QAAiBhU,KAAKoY,qBAAqBlE,QAAQC,OAAO,CAC9D3Q,UAAW,CACT4Q,MAAO,CACLjK,WAAYnK,KAAKmK,WACjBgM,aAAcnW,KAAKmW,aACnBkC,aAAa,EAAA9N;AAKnB,IAAKyJ,EACH,MAAM,IAAIrI,MAAM;AAGlB,OAAQqI,EAASoE,qBAAqB9D,YACpC,IAAK,wBACH,MAAM,IAAIvI,wBACR;AAGJ,IAAK,8BACH,OAAI/L,KAAKoW,kBACFpW,KAAK0O,OAAOC,aAAa,eAGhC3O,KAAKsJ,UAAUmF,OAAM,KACdzO,KAAK0O,OAAOC,aAAa,oBAAqB3O,KAAKyW,OAAO;AAInE,QACE,MAAM,IAAI9K,MAER,kEAAAR,OACkE6I,EAASoE,qBAAqB9D,aAGxG,CAEA,wBACMxJ,CAAkB8C,GAUN,IAAAmN;AAAA,IAThBhQ,UAAUjB,eAAEA,EAAcE,iBAAEA,GAAkBqB,WAC9CA,EACA2P,SAAUC,EAAS3Q,KACnBA,GAMDsD;AACC,MAAMoG,QAAiBhU,KAAKkb,qBAAqBhH,QAAQC,OAAO,CAC9D3Q,UAAW,CACT4Q,MAAO,CACLjK,WAAYnK,KAAKmK,WACjBgM,aAAcnW,KAAKmW,aACnBkC,YAAa/N,EACbR,iBACAE,iBAIK,QAJW+Q,EACd/Q,aAAgB,EAAhBA,EAAkBsD,KAAIgN,IAAA,IAAEa,EAAcC,GAAcd;AAAA,MAAM,CACxDc,gBACAD,eACD,WAAE,IAAAJ,IAAI,GACT3I,KAAMpS,KAAKyW,OACX4E,gBAAiBhQ;AAKvB,IAAK2I,EACH,MAAM,IAAIrI,MAAM;AAGlB,OAAQqI,EAASkH,qBAAqB5G,YACpC,IAAK,wBACH,MAAM,IAAIvI,wBACR;AAGJ,IAAK,8BACH;AAEF,QACE,MAAM,IAAIJ,MAER,kEAAAR,OACkE6I,EAASkH,qBAAqB5G,aAGxG,CAEA,sBACMgH,CACJvQ,EACAM,EACAf,GAEItK,KAAKiR,MAAMsK,yBACfvb,KAAKiR,MAAMsK,wBAAyB,QAE9Bvb,KAAK8K,mBAAmB,CAC5BC,WACAM,aACA2P,SAAU,UACV1Q,SAEFtK,KAAK6F,OACP,CAGAoG,SACEjM,KAAKsJ,UAAUmF,OAAM,KACnB6D,OAAOC,QAAQC,MAAM,GAEzB,CAGA3M,OACM7F,KAAKoW,aACFpW,KAAK0O,OAAOC,aAAa,UAIhC3O,KAAKsP,MAAMG,6BAA4B,KACrC,GAA0B,SAAtBzP,KAAKyJ,aACP,GAAIzJ,KAAKuU,mBACPvU,KAAK0O,OAAOC,aAAa;IACpB,CACL,MAAM6M,EACJxb,KAAKyS,qBAAuBzS,KAAKyW,OAAS;AAC5CzW,KAAK0O,OAAOC,aAAa,aAAc3O,KAAKyS,mBAAoB,CAC9DgJ,YAAa,CAAED,wBAEnB,MAEAxb,KAAK0O,OAAOC,aAAa,oBAAqB3O,KAAKyW,OACrD,GAEJ,CAEA,wBACMjL,CAAkBkQ,GAIG,IAAAC;AAAA,IAJF7R,eACvBA,EAAcE,iBACdA,EACAM,KAAM+N,GACiBqD;AACvB,MAAM1H,QAAiBhU,KAAK4b,qBAAqB1H,QAAQC,OAAO,CAC9D3Q,UAAW,CACT4Q,MAAO,CACLiE,cACAlC,aAAcnW,KAAKmW,aACnBrM,iBACAE,iBAIK,QAJW2R,EACd3R,aAAgB,EAAhBA,EAAkBsD,KAAIuO,IAAA,IAAEV,EAAcC,GAAcS;AAAA,MAAM,CACxDT,gBACAD,eACD,WAAE,IAAAQ,IAAI,GACTvJ,KAAMpS,KAAKyW,OACXqF,YAAa9b,KAAK2a;AAKxB,IAAK3G,EACH,MAAM,EAAA+H,gBACJ,aACA,IAAIpQ,MAAM;AAId,OAAQqI,EAAS4H,qBAAqBtH,YACpC,IAAK,wBACH,MAAM,IAAIvI,wBACR;AAGJ,IAAK,8BACH;AAEF,QACE,MAAM,IAAIJ,MAER,kEAAAR,OACkE6I,EAAS4H,qBAAqBtH,aAItG,MAAM0H,YAAEA,EAAWC,OAAEA,EAAMC,eAAEA,GAC3BlI,EAAS4H,qBAAqBO;AAEhC,MAAO,CAAEA,eAAgB,CAAEH,cAAaC,SAAQC,kBAClD,CAEA,wBACM7R,CAAkB+R,GAIC,IAJA9R,KACvBA,EAAIE,aACJA,EAAYC,WACZA,GACqB2R;AACrB,MAAMpI,QAAiBhU,KAAKoY,qBAAqBlE,QAAQC,OAAO,CAC9D3Q,UAAW,CACT4Q,MAAO,CACLjK,WAAYnK,KAAKmK,WACjBgM,aAAcnW,KAAKmW,aACnBkC,YAAa/N,EACbE,eACAC;AAKN,IAAKuJ,EACH,MAAM,IAAIrI,MAAM;AAGlB,OAAQqI,EAASoE,qBAAqB9D,YACpC,IAAK,wBACH,MAAM,IAAIvI,wBACR;AAGJ,IAAK,8BACH,MAAO,CAAEsQ,eAAgBrI,EAASoE,qBAAqBiE;AAEzD,QACE,MAAM,IAAI1Q,MAER,kEAAAR,OACkE6I,EAASoE,qBAAqB9D,aAGxG,GACD1S,EAAAmD,EAAAtD,EAAAuD,UAAA,aA9UEC,UAAO,CAAAC,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAAC,YAAA,OAAAxD,EAAAkD,EAAAtD,EAAAuD,UAAA,gBAEPC,UAAO,CAAAC,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAAC,YAAA,OAAAvD,EAAAiD,EAAAtD,EAAAuD,UAAA,aAEPC,UAAO,CAAAC,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAAC,YAAA,OAAAtD,EAAAgD,EAAAtD,EAAAuD,UAAA,QAEPC,UAAO,CAAAC,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAAC,YAAA,OAAA6J,EAAAnK,EAAAtD,EAAAuD,UAAA,YAEPC,UAAO,CAAAC,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAAC,YAAA,OAAA8J,EAAApK,EAAAtD,EAAAuD,UAAA,mBAEPC,UAAO,CAAAC,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAAC,YAAA,OAAAwQ,EAAA9Q,EAAAtD,EAAAuD,UAAA,UAEPC,UAAO,CAAAC,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAAC,YAAA,OAAAyQ,EAAA/Q,EAAAtD,EAAAuD,UAAA,SAEPC,UAAO,CAAAC,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAAC,YAAA,OAAA0Q,EAAAhR,EAAAtD,EAAAuD,UAAA,YAEPC,UAAO,CAAAC,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAAC,YAAA,OAAAqV,EAAA3V,EAAAtD,EAAAuD,UAAA,eAEPC,UAAO,CAAAC,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAAC,YAAA,OAAAN,EAAAtD,EAAAuD,UAAA,qBAgEPM,UAAMC,OAAAC,yBAAA/D,EAAAuD,UAAA,qBAAAvD,EAAAuD,WAAAD,EAAAtD,EAAAuD,UAAA,kBAKNM,UAAMC,OAAAC,yBAAA/D,EAAAuD,UAAA,kBAAAvD,EAAAuD,WAAAD,EAAAtD,EAAAuD,UAAA,SAKNM,UAAMC,OAAAC,yBAAA/D,EAAAuD,UAAA,SAAAvD,EAAAuD,WAAAD,EAAAtD,EAAAuD,UAAA,iBAKNM,UAAMC,OAAAC,yBAAA/D,EAAAuD,UAAA,iBAAAvD,EAAAuD,WAAAD,EAAAtD,EAAAuD,UAAA,sBA4CNM,UAAMC,OAAAC,yBAAA/D,EAAAuD,UAAA,sBAAAvD,EAAAuD,WAAAD,EAAAtD,EAAAuD,UAAA,oBAoDNM,UAAMC,OAAAC,yBAAA/D,EAAAuD,UAAA,oBAAAvD,EAAAuD,WAAAD,EAAAtD,EAAAuD,UAAA,UAkBNM,UAAMC,OAAAC,yBAAA/D,EAAAuD,UAAA,UAAAvD,EAAAuD,WAAAD,EAAAtD,EAAAuD,UAAA,QAONM,UAAMC,OAAAC,yBAAA/D,EAAAuD,UAAA,QAAAvD,EAAAuD,WAAAD,EAAAtD,EAAAuD,UAAA,sBAwBNM,UAAMC,OAAAC,yBAAA/D,EAAAuD,UAAA,sBAAAvD,EAAAuD,WAAAD,EAAAtD,EAAAuD,UAAA,sBAqDNM,UAAMC,OAAAC,yBAAA/D,EAAAuD,UAAA,sBAAAvD,EAAAuD,WAAAvD,EAAA,I;;;;;;;;AClbF,MAAM6a,EAAkCjc,EAAAic,oCAAG,EAAA3I,WAAQ,kVAkB7C4I,EAA4Blc,EAAAkc,8BAAG,EAAA5I,WAAQ;AA0BbtT,EAAAC,SAAAmB,EAAxB,cAAiC6O,UAAW1Q,cAAAC,SAAAC,WAAA6B,EAAA3B,KAAA,YAAA4B,EAAA5B,MAAA2B,EAAA3B,KAAA,eAAA6B,EAAA7B,MAAA2B,EAAA3B,KAAA,YAAA8B,EAAA9B,MAAA2B,EAAA3B,KAAA,OAAA+B,EAAA/B,MAAAD,EAAAC,KAAA,sBASpC,EAAA4T,eAAY5T,KAAMsc,IAAmCvc,EAAAC,KAAA,wBACnD,EAAA4T,eAAY5T,KAAMuc,GAA6B,CAEtE,WAAIzP,GACF,OAAO9M,KAAK0D,KAAKoJ,OACnB,CAEA,gBAAIC,GACF,OAAO/M,KAAK0D,KAAKoJ,QAAQC,YAC3B,CAEA,SAAIC,GACF,OAAOhN,KAAK+M,aAAaC,KAC3B,CAEA,gBAAIC,GACF,OAAOjN,KAAK8M,QAAQG,YACtB,CAEA,aAAII,GACF,OAAOrN,KAAK8M,QAAQO,UAAUC,KAAIC,IAAwB,IAAvBM,KAAEA,EAAIqM,SAAEA,GAAU3M;AACnD,MAAO,CAAEM,OAAMqM,SAAUA,EAASsC,cAAe,GAErD,CAEA,qBAAI3I,GACF,OAAI7T,KAAK+I,UAAUE,QACV,uBAEF,qBACT,CAEA,kBAAI3G,GACF,MAAO,CACL8N,kBAAmBA,KACjBpQ,KAAKsJ,UAAUC,QAAQ,EAEzBmC,eAAgBkC,IAAmC,IAAlCvK,MAAEA,GAA2BuK;AAC5C5N,KAAKsD,aAAa6M,4BAA4B9M,EAAM,EAEtD4I,OAAQA,KACNjM,KAAKiM,QAAQ,EAEf+B,aAAe9H,GAAmBlG,KAAKgO,aAAa9H,GACpDiI,WAAajI,GAAmBlG,KAAKmO,WAAWjI,GAChDuW,SAAUA,IAAMzc,KAAKyc,WAEzB,CAEQxQ,SACNjM,KAAKsJ,UAAUmF,OAAM,KACnB6D,OAAOC,QAAQC,MAAM,GAEzB,CAKA,kBAAMxE,CAAYsM,GAGwB,IAHvBhQ,KACjBA,EACAtJ,GAAI0b,GACKpC;AACT,MAAMtG,QAAiBhU,KAAK2c,qBAAqBzI,QAAQC,OAAO,CAC9D3Q,UAAW,CACT4Q,MAAO,CACLsI,OACApS;AAIN,IAAK0J,EACH,MAAM,EAAA+H,gBACJ,iBACA,IAAIpQ,MAAM;AAGd,OAAQqI,EAAShG,aAAasG,YAC5B,IAAK,wBACH,MAAM,IAAIvI,wBACR;AAGJ,IAAK,wBACH,MAAM,EAAAgQ,gBAAa,mBAAoB,IAAIpQ,MAAM;AAEnD,IAAK,sBACH,MAAM,EAAAoQ,gBAAa,iBAAkB,IAAIpQ,MAAM;AAEjD,IAAK,sBACH,MAAO,CACLsB,aAAcjN,KAAKiN,aACnBD,MAAOhN,KAAKgN,MACZK,UAAWrN,KAAKqN;AAGpB,QACE,MAAM,IAAI1B,MAER,0DAAAR,OAC0D6I,EAAShG,aAAasG,aAGxF,CAKA,gBAAMnG,CAAUuN,GAAgD,IAA7C1a,GAAI0b,GAAgBhB;AACrC,MAAM1H,QAAiBhU,KAAK4c,mBAAmB1I,QAAQC,OAAO,CAC5D3Q,UAAW,CACT4Q,MAAO,CACLsI;AAIN,IAAK1I,EACH,MAAM,EAAA+H,gBACJ,eACA,IAAIpQ,MAAM;AAGd,OAAQqI,EAAS4I,mBAAmBtI,YAClC,IAAK,wBACH,MAAM,IAAIvI,wBACR;AAEJ,IAAK,4BACH,MAAO,CAAEkB,aAAc+G,EAAS4I,mBAAmBF;AACrD,QACE,MAAM,IAAI/Q,MAER,gEAAAR,OACgE6I,EAAS4I,mBAAmBtI,aAGpG,CAEA,cAAMmI,GAEJ,aADMzc,KAAK0D,KAAKmZ,QACT,CAAE7P,MAAOhN,KAAKgN,MACvB,GACDpL,EAAAmD,EAAAtD,EAAAuD,UAAA,aArJEC,UAAO,CAAAC,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAAC,YAAA,OAAAxD,EAAAkD,EAAAtD,EAAAuD,UAAA,gBAEPC,UAAO,CAAAC,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAAC,YAAA,OAAAvD,EAAAiD,EAAAtD,EAAAuD,UAAA,aAEPC,UAAO,CAAAC,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAAC,YAAA,OAAAtD,EAAAgD,EAAAtD,EAAAuD,UAAA,QAEPC,UAAO,CAAAC,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAAC,YAAA,OAAAN,EAAAtD,EAAAuD,UAAA,UAmDPM,UAAMC,OAAAC,yBAAA/D,EAAAuD,UAAA,UAAAvD,EAAAuD,WAAAvD,EAAA,I,mGCjIT,EAAAqb,WAAyB,CACvBC,SAAU,CACR,CAAEC,QAAS,QAASC,QAAS,2CAE/B,I,y5DCqMK,SAAiBC,GAAgB,IAAAC;AACtC,OAAiC,QAAjCA,EAAQC,EAAkBF,UAAO,IAAAC,IAAI,CAAC,CACxC;AA9LA,MAAMC,EAAY,CACd,+UAAgVC,EAAMC,yBACtV,sIAAuID,EAAME,2CAC7I,gHAAiHF,EAAMG,+CACvH,keAAmeH,EAAMI,kCACze,keAAmeJ,EAAMK,gCACze,kQAAmQL,EAAMM,sCACzQ,uSAAwSN,EAAMO,sCAC9S,oPAAqPP,EAAMQ,sCAC3P,wlBAAylBR,EAAMS,6BAC/lB,wiBAAyiBT,EAAMU,6BAC/iB,mkBAAokBV,EAAMW,6BAC1kB,iVAAkVX,EAAMY,2BACxV,4fAA6fZ,EAAMa,qBACngB,6QAA8Qb,EAAMc,0BACpR,oEAAqEd,EAAMe,4BAC3E,6EAA8Ef,EAAMgB,iBACpF,8IAA+IhB,EAAMiB,wBACrJ,mFAAoFjB,EAAMkB,sBAC1F,0PAA2PlB,EAAMmB,yCACjQ,sOAAuOnB,EAAMoB,6BAC7O,0RAA2RpB,EAAMqB,0BACjS,oRAAqRrB,EAAMsB,mCAC3R,yLAA0LtB,EAAMuB,uCAChM,sNAAuNvB,EAAMwB,2BAC7N,+UAAgVxB,EAAMyB,oCACtV,gNAAiNzB,EAAM0B,wBACvN,wWAAyW1B,EAAM2B,4CAC/W,qJAAsJ3B,EAAM4B,oCAC5J,gNAAiN5B,EAAM6B,yCACvN,sIAAuI7B,EAAM8B,iCAC7I,sGAAuG9B,EAAM+B,8BAC7G,oGAAqG/B,EAAMgC,6BAC3G,+YAAgZhC,EAAMiC,mCACtZ,0MAA2MjC,EAAMkC,mBA4JpN,I;ACpLiBlf,EAAAmf,OAAA,SAANA,GAAM,OAANA,EAAM,QAANA,EAAM,QAANA,EAAM,QAANA,EAAM,QAANA,CAAM,MAWMnf,EAAAof,aAAA,SAAZA,GAAY,OAAZA,EAAY,YAAZA,EAAY,0BAAZA,EAAY,YAAZA,EAAY,gBAAZA,EAAY,cAAZA,CAAY,MAmFGpf,EAAAqf,gBAAA,SAAfA,GAAe,OAAfA,EAAe,kBAAfA,EAAe,YAAfA,EAAe,gBAAfA,EAAe,gBAAfA,CAAe,MAYLrf,EAAAsf,WAAA,SAAVA,GAAU,OAAVA,EAAU,cAAVA,EAAU,kBAAVA,EAAU,kBAAVA,EAAU,YAAVA,CAAU,MAmBOtf,EAAAuf,kBAAA,SAAjBA,GAAiB,OAAjBA,EAAiB,YAAjBA,CAAiB,MAcFvf,EAAAwf,gBAAA,SAAfA,GAAe,OAAfA,EAAe,oBAAfA,EAAe,wBAAfA,EAAe,wCAAfA,CAAe;AAuL4Bxf,EAAAkd,2CAAG,CAACuC,KAAO,WAAWC,YAAc,CAAC,CAACD,KAAO,qBAAqBnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,mCAAmCka,cAAgB,CAACF,KAAO,YAAYnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,wBAAwBma,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,gBAAgB,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,OAAO,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,SAAS,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,wBACrezF,EAAAmd,+CAAG,CAACsC,KAAO,WAAWC,YAAc,CAAC,CAACD,KAAO,qBAAqBnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,uCAAuCka,cAAgB,CAACF,KAAO,YAAYnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,4BAA4Bma,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,gBAAgB,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,YAC9YzF,EAAAsd,sCAAG,CAACmC,KAAO,WAAWC,YAAc,CAAC,CAACD,KAAO,qBAAqBnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,8BAA8Bka,cAAgB,CAACF,KAAO,YAAYnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,mBAAmBma,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,eAAe,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,gBAAgB,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,iBAAiB,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,eAAe,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,OAAO,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,WAAW,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,SAAS,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,oBAAoB,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,iBAAiB,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,eAAe,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,mBAAmB,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,qBACh9BzF,EAAAud,sCAAG,CAACkC,KAAO,WAAWC,YAAc,CAAC,CAACD,KAAO,qBAAqBnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,8BAA8Bka,cAAgB,CAACF,KAAO,YAAYnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,mBAAmBma,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,eAAe,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,gBAAgB,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,kBAAkB,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,aAAa,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,gBAAgB,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,mBAAmB,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,OAAO,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,oBAAoBma,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,kBAAkB,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,oBAAoB,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,WAAW,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,SAAS,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,yBACvkCzF,EAAAwd,sCAAG,CAACiC,KAAO,WAAWC,YAAc,CAAC,CAACD,KAAO,qBAAqBnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,8BAA8Bka,cAAgB,CAACF,KAAO,YAAYnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,mBAAmBma,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,mBAAmB,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,gBAAgB,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,mBAAmB,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,OAAO,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,oBAAoBma,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,kBAAkB,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,oBAAoB,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,WAAW,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,SAAS,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,oBAC55BzF,EAAA+d,4BAAG,CAAC0B,KAAO,WAAWC,YAAc,CAAC,CAACD,KAAO,qBAAqBnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,oBAAoBka,cAAgB,CAACF,KAAO,YAAYnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,SAASma,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,OAAO,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,eAC1VzF,EAAAie,wBAAG,CAACwB,KAAO,WAAWC,YAAc,CAAC,CAACD,KAAO,qBAAqBnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,gBAAgBka,cAAgB,CAACF,KAAO,YAAYnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,aAAama,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,iBAAiB,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,OAAO,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,mBAAmB,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,gBAAgB,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,SAAS,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,wBAC1jBzF,EAAAme,yCAAG,CAACsB,KAAO,WAAWC,YAAc,CAAC,CAACD,KAAO,qBAAqBnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,iCAAiCka,cAAgB,CAACF,KAAO,YAAYnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,YAAYma,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,cAAcma,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,iBAAiBE,cAAgB,CAACF,KAAO,YAAYnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,mBAAmBma,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,mBAAmB,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,UAAU,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,OAAO,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,SAAS,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,iBAAiB,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,aAAa,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,uBACp6BzF,EAAAue,uCAAG,CAACkB,KAAO,WAAWC,YAAc,CAAC,CAACD,KAAO,qBAAqBnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,+BAA+Bka,cAAgB,CAACF,KAAO,YAAYnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,YAAYma,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,OAAO,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,YAAYma,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,WAAWma,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,SAAS,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,mBAAmB,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,iCAC1rBzF,EAAAye,oCAAG,CAACgB,KAAO,WAAWC,YAAc,CAAC,CAACD,KAAO,qBAAqBnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,4BAA4Bka,cAAgB,CAACF,KAAO,YAAYnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,YAAYma,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,OAAO,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,SAASma,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,eAAema,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,eAAe,CAACga,KAAO,QAAQK,MAAQ,CAACL,KAAO,OAAOha,MAAQ,YAAYnD,KAAO,CAACmd,KAAO,OAAOha,MAAQ,eAAe,CAACga,KAAO,iBAAiBE,cAAgB,CAACF,KAAO,YAAYnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,kBAAkBma,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,iBAAiB,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,OAAO,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,SAAS,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,oBAAoB,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,kBAAkB,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,yBAC3qCzF,EAAA6e,yCAAG,CAACY,KAAO,WAAWC,YAAc,CAAC,CAACD,KAAO,qBAAqBnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,iCAAiCka,cAAgB,CAACF,KAAO,YAAYnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,YAAYma,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,qBAAqBma,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,SAAS,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,eAAema,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,WAAW,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,YAAY,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,WAAW,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,UAAU,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,eAC5zBzF,EAAA8e,iCAAG,CAACW,KAAO,WAAWC,YAAc,CAAC,CAACD,KAAO,qBAAqBnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,yBAAyBka,cAAgB,CAACF,KAAO,YAAYnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,YAAYma,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,aAAama,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,aAAa,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,SAAS,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,UAAU,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,iBAC/jBzF,EAAA4e,oCAAG,CAACa,KAAO,WAAWC,YAAc,CAAC,CAACD,KAAO,qBAAqBnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,4BAA4Bka,cAAgB,CAACF,KAAO,YAAYnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,YAAYma,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,gBAAgBma,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,aAAa,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,UAAU,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,cAAc,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,qBACnlBzF,EAAA+e,8BAAG,CAACU,KAAO,WAAWC,YAAc,CAAC,CAACD,KAAO,qBAAqBnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,sBAAsBka,cAAgB,CAACF,KAAO,YAAYnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,YAAYma,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,UAAUma,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,SAAS,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,oBAC1czF,EAAAgf,6BAAG,CAACS,KAAO,WAAWC,YAAc,CAAC,CAACD,KAAO,qBAAqBnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,qBAAqBka,cAAgB,CAACF,KAAO,YAAYnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,YAAYma,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,SAASma,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,SAAS,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,oBACjczF,EAAAif,mCAAG,CAACQ,KAAO,WAAWC,YAAc,CAAC,CAACD,KAAO,qBAAqBnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,2BAA2Bka,cAAgB,CAACF,KAAO,YAAYnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,YAAYma,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,OAAO,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,4BAA4B,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,UAAU,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,8BAA8B,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,oBAAoB,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,WAAW,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,cAAc,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,iBAAiB,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,qBAAqB,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,kBAAkB,CAACga,KAAO,iBAAiBnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,kCAAkC,CAACga,KAAO,iBAAiBnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,0BAA0B,CAACga,KAAO,iBAAiBnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,6BAA6B,CAACga,KAAO,iBAAiBnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,uBAAuB,CAACga,KAAO,iBAAiBnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,yBAAyB,CAACga,KAAO,qBAAqBnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,iCAAiCka,cAAgB,CAACF,KAAO,YAAYnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,YAAYma,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,qBAAqBma,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,SAAS,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,eAAema,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,WAAW,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,YAAY,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,WAAW,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,UAAU,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,aAAa,CAACga,KAAO,qBAAqBnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,yBAAyBka,cAAgB,CAACF,KAAO,YAAYnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,YAAYma,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,aAAama,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,aAAa,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,SAAS,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,UAAU,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,eAAe,CAACga,KAAO,qBAAqBnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,4BAA4Bka,cAAgB,CAACF,KAAO,YAAYnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,YAAYma,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,gBAAgBma,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,aAAa,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,UAAU,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,cAAc,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,mBAAmB,CAACga,KAAO,qBAAqBnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,sBAAsBka,cAAgB,CAACF,KAAO,YAAYnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,YAAYma,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,UAAUma,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,SAAS,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,kBAAkB,CAACga,KAAO,qBAAqBnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,qBAAqBka,cAAgB,CAACF,KAAO,YAAYnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,YAAYma,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,SAASma,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,SAAS,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,oBAC1/HzF,EAAAid,yBAAG,CAACwC,KAAO,WAAWC,YAAc,CAAC,CAACD,KAAO,sBAAsBM,UAAY,WAAWzd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,oBAAoBua,oBAAsB,CAAC,CAACP,KAAO,qBAAqBQ,SAAW,CAACR,KAAO,WAAWnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,UAAUsP,KAAO,CAAC0K,KAAO,cAAc1K,KAAO,CAAC0K,KAAO,YAAYnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,6BAA6Bma,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,oBAAoBhG,UAAY,CAAC,CAACggB,KAAO,WAAWnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,SAASA,MAAQ,CAACga,KAAO,WAAWnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,YAAYma,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,iBAAiBE,cAAgB,CAACF,KAAO,YAAYnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,4BAA4Bma,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,WAAWma,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,OAAO,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,wBAAwB,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,cAAc,CAACga,KAAO,iBAAiBE,cAAgB,CAACF,KAAO,YAAYnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,0BAA0Bma,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,YAAY,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,uBACt4CzF,EAAAod,kCAAG,CAACqC,KAAO,WAAWC,YAAc,CAAC,CAACD,KAAO,sBAAsBM,UAAY,WAAWzd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,6BAA6Bua,oBAAsB,CAAC,CAACP,KAAO,qBAAqBQ,SAAW,CAACR,KAAO,WAAWnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,UAAUsP,KAAO,CAAC0K,KAAO,cAAc1K,KAAO,CAAC0K,KAAO,YAAYnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,sCAAsCma,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,6BAA6BhG,UAAY,CAAC,CAACggB,KAAO,WAAWnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,SAASA,MAAQ,CAACga,KAAO,WAAWnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,YAAYma,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,iBAAiBE,cAAgB,CAACF,KAAO,YAAYnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,qCAAqCma,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,WAAWma,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,iBAAiBnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,gCAAgC,CAACga,KAAO,iBAAiBnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,gCAAgC,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,uBAAuBma,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,iBAAiBnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,0CAA0C,CAACga,KAAO,iBAAiBE,cAAgB,CAACF,KAAO,YAAYnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,0BAA0Bma,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,YAAY,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,qBAAqB,CAACga,KAAO,qBAAqBnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,+BAA+Bka,cAAgB,CAACF,KAAO,YAAYnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,YAAYma,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,OAAO,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,YAAYma,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,WAAWma,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,SAAS,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,mBAAmB,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,+BAA+B,CAACga,KAAO,qBAAqBnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,4BAA4Bka,cAAgB,CAACF,KAAO,YAAYnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,YAAYma,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,OAAO,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,SAASma,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,eAAema,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,eAAe,CAACga,KAAO,QAAQK,MAAQ,CAACL,KAAO,OAAOha,MAAQ,YAAYnD,KAAO,CAACmd,KAAO,OAAOha,MAAQ,eAAe,CAACga,KAAO,iBAAiBE,cAAgB,CAACF,KAAO,YAAYnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,kBAAkBma,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,iBAAiB,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,OAAO,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,SAAS,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,oBAAoB,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,kBAAkB,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,uBAAuB,CAACga,KAAO,qBAAqBnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,mCAAmCka,cAAgB,CAACF,KAAO,YAAYnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,wBAAwBma,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,gBAAgB,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,OAAO,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,SAAS,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,wBACl7HzF,EAAAqd,gCAAG,CAACoC,KAAO,WAAWC,YAAc,CAAC,CAACD,KAAO,sBAAsBM,UAAY,WAAWzd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,2BAA2Bua,oBAAsB,CAAC,CAACP,KAAO,qBAAqBQ,SAAW,CAACR,KAAO,WAAWnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,UAAUsP,KAAO,CAAC0K,KAAO,cAAc1K,KAAO,CAAC0K,KAAO,YAAYnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,oCAAoCma,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,2BAA2BhG,UAAY,CAAC,CAACggB,KAAO,WAAWnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,SAASA,MAAQ,CAACga,KAAO,WAAWnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,YAAYma,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,iBAAiBE,cAAgB,CAACF,KAAO,YAAYnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,mCAAmCma,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,WAAWma,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,iBAAiBnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,gCAAgC,CAACga,KAAO,iBAAiBnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,gCAAgC,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,2BAA2Bma,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,iBAAiBnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,8CAA8C,CAACga,KAAO,iBAAiBE,cAAgB,CAACF,KAAO,YAAYnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,0BAA0Bma,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,YAAY,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,qBAAqB,CAACga,KAAO,qBAAqBnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,+BAA+Bka,cAAgB,CAACF,KAAO,YAAYnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,YAAYma,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,OAAO,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,YAAYma,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,WAAWma,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,SAAS,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,mBAAmB,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,+BAA+B,CAACga,KAAO,qBAAqBnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,4BAA4Bka,cAAgB,CAACF,KAAO,YAAYnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,YAAYma,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,OAAO,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,SAASma,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,eAAema,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,eAAe,CAACga,KAAO,QAAQK,MAAQ,CAACL,KAAO,OAAOha,MAAQ,YAAYnD,KAAO,CAACmd,KAAO,OAAOha,MAAQ,eAAe,CAACga,KAAO,iBAAiBE,cAAgB,CAACF,KAAO,YAAYnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,kBAAkBma,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,iBAAiB,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,OAAO,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,SAAS,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,oBAAoB,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,kBAAkB,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,uBAAuB,CAACga,KAAO,qBAAqBnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,uCAAuCka,cAAgB,CAACF,KAAO,YAAYnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,4BAA4Bma,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,gBAAgB,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,YAC/0HzF,EAAAyd,6BAAG,CAACgC,KAAO,WAAWC,YAAc,CAAC,CAACD,KAAO,sBAAsBM,UAAY,WAAWzd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,wBAAwBua,oBAAsB,CAAC,CAACP,KAAO,qBAAqBQ,SAAW,CAACR,KAAO,WAAWnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,UAAUsP,KAAO,CAAC0K,KAAO,cAAc1K,KAAO,CAAC0K,KAAO,YAAYnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,iCAAiCma,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,wBAAwBhG,UAAY,CAAC,CAACggB,KAAO,WAAWnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,SAASA,MAAQ,CAACga,KAAO,WAAWnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,YAAYma,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,iBAAiBE,cAAgB,CAACF,KAAO,YAAYnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,gCAAgCma,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,WAAWma,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,iBAAiBnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,kCAAkC,CAACga,KAAO,iBAAiBnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,gCAAgC,CAACga,KAAO,iBAAiBnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,6BAA6B,CAACga,KAAO,iBAAiBnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,6BAA6B,CAACga,KAAO,iBAAiBnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,uBAAuB,CAACga,KAAO,iBAAiBnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,yBAAyB,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,kBAAkBma,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,iBAAiBnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,qCAAqC,CAACga,KAAO,iBAAiBE,cAAgB,CAACF,KAAO,YAAYnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,0BAA0Bma,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,YAAY,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,qBAAqB,CAACga,KAAO,qBAAqBnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,iCAAiCka,cAAgB,CAACF,KAAO,YAAYnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,YAAYma,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,cAAcma,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,iBAAiBE,cAAgB,CAACF,KAAO,YAAYnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,mBAAmBma,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,mBAAmB,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,UAAU,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,OAAO,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,SAAS,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,iBAAiB,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,aAAa,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,qBAAqB,CAACga,KAAO,qBAAqBnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,+BAA+Bka,cAAgB,CAACF,KAAO,YAAYnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,YAAYma,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,OAAO,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,YAAYma,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,WAAWma,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,SAAS,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,mBAAmB,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,+BAA+B,CAACga,KAAO,qBAAqBnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,4BAA4Bka,cAAgB,CAACF,KAAO,YAAYnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,YAAYma,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,OAAO,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,SAASma,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,eAAema,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,eAAe,CAACga,KAAO,QAAQK,MAAQ,CAACL,KAAO,OAAOha,MAAQ,YAAYnD,KAAO,CAACmd,KAAO,OAAOha,MAAQ,eAAe,CAACga,KAAO,iBAAiBE,cAAgB,CAACF,KAAO,YAAYnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,kBAAkBma,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,iBAAiB,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,OAAO,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,SAAS,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,oBAAoB,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,kBAAkB,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,uBAAuB,CAACga,KAAO,qBAAqBnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,4BAA4Bka,cAAgB,CAACF,KAAO,YAAYnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,YAAYma,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,gBAAgBma,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,aAAa,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,UAAU,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,cAAc,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,mBAAmB,CAACga,KAAO,qBAAqBnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,sBAAsBka,cAAgB,CAACF,KAAO,YAAYnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,YAAYma,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,UAAUma,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,SAAS,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,kBAAkB,CAACga,KAAO,qBAAqBnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,qBAAqBka,cAAgB,CAACF,KAAO,YAAYnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,YAAYma,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,SAASma,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,SAAS,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,kBAAkB,CAACga,KAAO,qBAAqBnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,8BAA8Bka,cAAgB,CAACF,KAAO,YAAYnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,mBAAmBma,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,eAAe,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,gBAAgB,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,iBAAiB,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,eAAe,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,OAAO,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,WAAW,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,SAAS,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,oBAAoB,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,iBAAiB,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,eAAe,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,mBAAmB,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,qBACx/NzF,EAAA0d,6BAAG,CAAC+B,KAAO,WAAWC,YAAc,CAAC,CAACD,KAAO,sBAAsBM,UAAY,WAAWzd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,wBAAwBua,oBAAsB,CAAC,CAACP,KAAO,qBAAqBQ,SAAW,CAACR,KAAO,WAAWnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,UAAUsP,KAAO,CAAC0K,KAAO,cAAc1K,KAAO,CAAC0K,KAAO,YAAYnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,iCAAiCma,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,wBAAwBhG,UAAY,CAAC,CAACggB,KAAO,WAAWnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,SAASA,MAAQ,CAACga,KAAO,WAAWnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,YAAYma,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,iBAAiBE,cAAgB,CAACF,KAAO,YAAYnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,gCAAgCma,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,WAAWma,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,iBAAiBnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,kCAAkC,CAACga,KAAO,iBAAiBnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,gCAAgC,CAACga,KAAO,iBAAiBnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,6BAA6B,CAACga,KAAO,iBAAiBnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,6BAA6B,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,aAAa,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,kBAAkBma,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,iBAAiBnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,qCAAqC,CAACga,KAAO,iBAAiBE,cAAgB,CAACF,KAAO,YAAYnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,0BAA0Bma,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,YAAY,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,qBAAqB,CAACga,KAAO,qBAAqBnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,iCAAiCka,cAAgB,CAACF,KAAO,YAAYnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,YAAYma,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,cAAcma,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,iBAAiBE,cAAgB,CAACF,KAAO,YAAYnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,mBAAmBma,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,mBAAmB,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,UAAU,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,OAAO,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,SAAS,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,iBAAiB,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,aAAa,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,qBAAqB,CAACga,KAAO,qBAAqBnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,+BAA+Bka,cAAgB,CAACF,KAAO,YAAYnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,YAAYma,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,OAAO,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,YAAYma,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,WAAWma,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,SAAS,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,mBAAmB,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,+BAA+B,CAACga,KAAO,qBAAqBnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,4BAA4Bka,cAAgB,CAACF,KAAO,YAAYnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,YAAYma,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,OAAO,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,SAASma,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,eAAema,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,eAAe,CAACga,KAAO,QAAQK,MAAQ,CAACL,KAAO,OAAOha,MAAQ,YAAYnD,KAAO,CAACmd,KAAO,OAAOha,MAAQ,eAAe,CAACga,KAAO,iBAAiBE,cAAgB,CAACF,KAAO,YAAYnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,kBAAkBma,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,iBAAiB,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,OAAO,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,SAAS,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,oBAAoB,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,kBAAkB,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,uBAAuB,CAACga,KAAO,qBAAqBnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,4BAA4Bka,cAAgB,CAACF,KAAO,YAAYnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,YAAYma,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,gBAAgBma,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,aAAa,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,UAAU,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,cAAc,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,mBAAmB,CAACga,KAAO,qBAAqBnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,8BAA8Bka,cAAgB,CAACF,KAAO,YAAYnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,mBAAmBma,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,eAAe,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,gBAAgB,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,kBAAkB,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,aAAa,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,gBAAgB,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,mBAAmB,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,OAAO,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,oBAAoBma,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,kBAAkB,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,oBAAoB,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,WAAW,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,SAAS,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,yBAClqMzF,EAAA2d,6BAAG,CAAC8B,KAAO,WAAWC,YAAc,CAAC,CAACD,KAAO,sBAAsBM,UAAY,WAAWzd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,wBAAwBua,oBAAsB,CAAC,CAACP,KAAO,qBAAqBQ,SAAW,CAACR,KAAO,WAAWnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,UAAUsP,KAAO,CAAC0K,KAAO,cAAc1K,KAAO,CAAC0K,KAAO,YAAYnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,iCAAiCma,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,wBAAwBhG,UAAY,CAAC,CAACggB,KAAO,WAAWnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,SAASA,MAAQ,CAACga,KAAO,WAAWnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,YAAYma,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,iBAAiBE,cAAgB,CAACF,KAAO,YAAYnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,gCAAgCma,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,WAAWma,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,iBAAiBnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,kCAAkC,CAACga,KAAO,iBAAiBnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,gCAAgC,CAACga,KAAO,iBAAiBnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,6BAA6B,CAACga,KAAO,iBAAiBnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,6BAA6B,CAACga,KAAO,iBAAiBnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,qCAAqC,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,kBAAkBma,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,iBAAiBnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,qCAAqC,CAACga,KAAO,iBAAiBE,cAAgB,CAACF,KAAO,YAAYnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,0BAA0Bma,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,YAAY,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,qBAAqB,CAACga,KAAO,qBAAqBnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,iCAAiCka,cAAgB,CAACF,KAAO,YAAYnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,YAAYma,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,cAAcma,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,iBAAiBE,cAAgB,CAACF,KAAO,YAAYnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,mBAAmBma,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,mBAAmB,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,UAAU,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,OAAO,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,SAAS,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,iBAAiB,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,aAAa,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,qBAAqB,CAACga,KAAO,qBAAqBnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,+BAA+Bka,cAAgB,CAACF,KAAO,YAAYnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,YAAYma,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,OAAO,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,YAAYma,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,WAAWma,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,SAAS,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,mBAAmB,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,+BAA+B,CAACga,KAAO,qBAAqBnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,4BAA4Bka,cAAgB,CAACF,KAAO,YAAYnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,YAAYma,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,OAAO,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,SAASma,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,eAAema,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,eAAe,CAACga,KAAO,QAAQK,MAAQ,CAACL,KAAO,OAAOha,MAAQ,YAAYnD,KAAO,CAACmd,KAAO,OAAOha,MAAQ,eAAe,CAACga,KAAO,iBAAiBE,cAAgB,CAACF,KAAO,YAAYnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,kBAAkBma,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,iBAAiB,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,OAAO,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,SAAS,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,oBAAoB,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,kBAAkB,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,uBAAuB,CAACga,KAAO,qBAAqBnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,4BAA4Bka,cAAgB,CAACF,KAAO,YAAYnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,YAAYma,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,gBAAgBma,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,aAAa,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,UAAU,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,cAAc,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,mBAAmB,CAACga,KAAO,qBAAqBnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,iCAAiCka,cAAgB,CAACF,KAAO,YAAYnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,YAAYma,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,qBAAqBma,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,SAAS,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,eAAema,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,WAAW,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,YAAY,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,WAAW,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,UAAU,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,aAAa,CAACga,KAAO,qBAAqBnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,8BAA8Bka,cAAgB,CAACF,KAAO,YAAYnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,mBAAmBma,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,mBAAmB,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,gBAAgB,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,mBAAmB,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,OAAO,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,oBAAoBma,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,kBAAkB,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,oBAAoB,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,WAAW,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,SAAS,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,oBAC5yNzF,EAAA4d,2BAAG,CAAC6B,KAAO,WAAWC,YAAc,CAAC,CAACD,KAAO,sBAAsBM,UAAY,WAAWzd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,sBAAsBua,oBAAsB,CAAC,CAACP,KAAO,qBAAqBQ,SAAW,CAACR,KAAO,WAAWnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,UAAUsP,KAAO,CAAC0K,KAAO,cAAc1K,KAAO,CAAC0K,KAAO,YAAYnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,+BAA+Bma,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,sBAAsBhG,UAAY,CAAC,CAACggB,KAAO,WAAWnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,SAASA,MAAQ,CAACga,KAAO,WAAWnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,YAAYma,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,iBAAiBE,cAAgB,CAACF,KAAO,YAAYnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,8BAA8Bma,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,WAAWma,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,OAAO,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,oBAAoB,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,YAAY,CAACga,KAAO,iBAAiBE,cAAgB,CAACF,KAAO,YAAYnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,0BAA0Bma,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,YAAY,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,uBACv5CzF,EAAA6d,qBAAG,CAAC4B,KAAO,WAAWC,YAAc,CAAC,CAACD,KAAO,sBAAsBM,UAAY,WAAWzd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,gBAAgBua,oBAAsB,CAAC,CAACP,KAAO,qBAAqBQ,SAAW,CAACR,KAAO,WAAWnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,UAAUsP,KAAO,CAAC0K,KAAO,cAAc1K,KAAO,CAAC0K,KAAO,YAAYnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,yBAAyBma,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,gBAAgBhG,UAAY,CAAC,CAACggB,KAAO,WAAWnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,SAASA,MAAQ,CAACga,KAAO,WAAWnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,YAAYma,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,iBAAiBE,cAAgB,CAACF,KAAO,YAAYnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,wBAAwBma,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,WAAWma,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,OAAO,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,iBAAiB,CAACga,KAAO,iBAAiBnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,0BAA0B,CAACga,KAAO,iBAAiBnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,gCAAgC,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,YAAY,CAACga,KAAO,iBAAiBE,cAAgB,CAACF,KAAO,YAAYnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,0BAA0Bma,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,YAAY,CAACga,KAAO,iBAAiBE,cAAgB,CAACF,KAAO,YAAYnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,wBAAwBma,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,YAAY,CAACga,KAAO,iBAAiBE,cAAgB,CAACF,KAAO,YAAYnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,0BAA0Bma,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,YAAY,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,qBAAqB,CAACga,KAAO,qBAAqBnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,yBAAyBka,cAAgB,CAACF,KAAO,YAAYnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,YAAYma,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,aAAama,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,aAAa,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,SAAS,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,UAAU,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,eAAe,CAACga,KAAO,qBAAqBnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,4BAA4Bka,cAAgB,CAACF,KAAO,YAAYnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,YAAYma,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,gBAAgBma,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,aAAa,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,UAAU,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,cAAc,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,qBACtkGzF,EAAA8d,0BAAG,CAAC2B,KAAO,WAAWC,YAAc,CAAC,CAACD,KAAO,sBAAsBM,UAAY,QAAQzd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,qBAAqBma,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,WAAWma,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,iBAAiBE,cAAgB,CAACF,KAAO,YAAYnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,YAAYma,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,iBAAiBnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,4BAA4B,CAACga,KAAO,iBAAiBnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,gCAAgC,CAACga,KAAO,iBAAiBnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,6BAA6B,CAACga,KAAO,iBAAiBnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,kCAAkC,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,wBAAwB,CAACga,KAAO,qBAAqBnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,iCAAiCka,cAAgB,CAACF,KAAO,YAAYnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,YAAYma,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,qBAAqBma,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,SAAS,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,eAAema,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,WAAW,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,YAAY,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,WAAW,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,UAAU,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,aAAa,CAACga,KAAO,qBAAqBnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,yBAAyBka,cAAgB,CAACF,KAAO,YAAYnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,YAAYma,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,aAAama,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,aAAa,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,SAAS,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,UAAU,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,eAAe,CAACga,KAAO,qBAAqBnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,4BAA4Bka,cAAgB,CAACF,KAAO,YAAYnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,YAAYma,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,gBAAgBma,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,aAAa,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,UAAU,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,cAAc,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,mBAAmB,CAACga,KAAO,qBAAqBnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,sBAAsBka,cAAgB,CAACF,KAAO,YAAYnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,YAAYma,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,UAAUma,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,SAAS,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,kBAAkB,CAACga,KAAO,qBAAqBnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,qBAAqBka,cAAgB,CAACF,KAAO,YAAYnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,YAAYma,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,SAASma,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,SAAS,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,kBAAkB,CAACga,KAAO,qBAAqBnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,2BAA2Bka,cAAgB,CAACF,KAAO,YAAYnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,YAAYma,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,OAAO,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,4BAA4B,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,UAAU,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,8BAA8B,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,oBAAoB,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,WAAW,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,cAAc,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,iBAAiB,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,qBAAqB,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,kBAAkB,CAACga,KAAO,iBAAiBnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,kCAAkC,CAACga,KAAO,iBAAiBnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,0BAA0B,CAACga,KAAO,iBAAiBnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,6BAA6B,CAACga,KAAO,iBAAiBnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,uBAAuB,CAACga,KAAO,iBAAiBnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,yBAAyB,CAACga,KAAO,qBAAqBnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,+BAA+Bka,cAAgB,CAACF,KAAO,YAAYnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,YAAYma,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,OAAO,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,YAAYma,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,WAAWma,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,SAAS,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,mBAAmB,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,+BAA+B,CAACga,KAAO,qBAAqBnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,4BAA4Bka,cAAgB,CAACF,KAAO,YAAYnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,YAAYma,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,OAAO,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,SAASma,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,eAAema,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,eAAe,CAACga,KAAO,QAAQK,MAAQ,CAACL,KAAO,OAAOha,MAAQ,YAAYnD,KAAO,CAACmd,KAAO,OAAOha,MAAQ,eAAe,CAACga,KAAO,iBAAiBE,cAAgB,CAACF,KAAO,YAAYnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,kBAAkBma,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,iBAAiB,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,OAAO,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,SAAS,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,oBAAoB,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,kBAAkB,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,uBAAuB,CAACga,KAAO,qBAAqBnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,iCAAiCka,cAAgB,CAACF,KAAO,YAAYnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,YAAYma,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,cAAcma,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,iBAAiBE,cAAgB,CAACF,KAAO,YAAYnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,mBAAmBma,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,mBAAmB,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,UAAU,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,OAAO,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,SAAS,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,iBAAiB,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,aAAa,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,uBACzhPzF,EAAAge,iBAAG,CAACyB,KAAO,WAAWC,YAAc,CAAC,CAACD,KAAO,sBAAsBM,UAAY,QAAQzd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,YAAYma,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,SAASma,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,iBAAiBnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,2BAA2B,CAACga,KAAO,qBAAqBnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,oBAAoBka,cAAgB,CAACF,KAAO,YAAYnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,SAASma,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,OAAO,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,eAC9pBzF,EAAAke,sBAAG,CAACuB,KAAO,WAAWC,YAAc,CAAC,CAACD,KAAO,sBAAsBM,UAAY,QAAQzd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,iBAAiBma,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,cAAcma,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,iBAAiBnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,uBAAuB,CAACga,KAAO,qBAAqBnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,gBAAgBka,cAAgB,CAACF,KAAO,YAAYnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,aAAama,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,iBAAiB,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,OAAO,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,mBAAmB,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,gBAAgB,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,SAAS,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,wBACv5BzF,EAAAoe,6BAAG,CAACqB,KAAO,WAAWC,YAAc,CAAC,CAACD,KAAO,sBAAsBM,UAAY,QAAQzd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,wBAAwBma,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,WAAWma,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,iBAAiBE,cAAgB,CAACF,KAAO,YAAYnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,YAAYma,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,OAAO,CAACga,KAAO,iBAAiBnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,qCAAqC,CAACga,KAAO,iBAAiBE,cAAgB,CAACF,KAAO,YAAYnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,0BAA0Bma,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,YAAY,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,qBAAqB,CAACga,KAAO,qBAAqBnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,iCAAiCka,cAAgB,CAACF,KAAO,YAAYnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,YAAYma,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,cAAcma,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,iBAAiBE,cAAgB,CAACF,KAAO,YAAYnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,mBAAmBma,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,mBAAmB,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,UAAU,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,OAAO,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,SAAS,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,iBAAiB,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,aAAa,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,uBAChwDzF,EAAAqe,0BAAG,CAACoB,KAAO,WAAWC,YAAc,CAAC,CAACD,KAAO,sBAAsBM,UAAY,WAAWzd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,qBAAqBua,oBAAsB,CAAC,CAACP,KAAO,qBAAqBQ,SAAW,CAACR,KAAO,WAAWnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,UAAUsP,KAAO,CAAC0K,KAAO,cAAc1K,KAAO,CAAC0K,KAAO,YAAYnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,qCAAqCma,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,4BAA4BhG,UAAY,CAAC,CAACggB,KAAO,WAAWnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,SAASA,MAAQ,CAACga,KAAO,WAAWnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,YAAYma,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,iBAAiBE,cAAgB,CAACF,KAAO,YAAYnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,mCAAmCma,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,WAAWma,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,iBAAiBnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,sCAAsC,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,qBAAqB,CAACga,KAAO,qBAAqBnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,+BAA+Bka,cAAgB,CAACF,KAAO,YAAYnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,YAAYma,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,OAAO,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,YAAYma,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,WAAWma,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,SAAS,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,mBAAmB,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,iCACxwDzF,EAAAse,mCAAG,CAACmB,KAAO,WAAWC,YAAc,CAAC,CAACD,KAAO,sBAAsBM,UAAY,WAAWzd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,8BAA8Bma,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,qCAAqCma,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,iBAAiBE,cAAgB,CAACF,KAAO,YAAYnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,4CAA4Cma,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,WAAWma,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,iBAAiBnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,sCAAsC,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,qBAAqB,CAACga,KAAO,qBAAqBnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,+BAA+Bka,cAAgB,CAACF,KAAO,YAAYnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,YAAYma,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,OAAO,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,YAAYma,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,WAAWma,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,SAAS,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,mBAAmB,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,iCACn7CzF,EAAAwe,2BAAG,CAACiB,KAAO,WAAWC,YAAc,CAAC,CAACD,KAAO,sBAAsBM,UAAY,QAAQzd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,sBAAsBma,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,WAAWma,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,iBAAiBE,cAAgB,CAACF,KAAO,YAAYnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,YAAYma,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,iBAAiBnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,mCAAmC,CAACga,KAAO,iBAAiBE,cAAgB,CAACF,KAAO,YAAYnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,0BAA0Bma,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,YAAY,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,qBAAqB,CAACga,KAAO,qBAAqBnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,+BAA+Bka,cAAgB,CAACF,KAAO,YAAYnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,YAAYma,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,OAAO,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,YAAYma,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,WAAWma,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,SAAS,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,mBAAmB,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,iCAC59CzF,EAAA0e,wBAAG,CAACe,KAAO,WAAWC,YAAc,CAAC,CAACD,KAAO,sBAAsBM,UAAY,QAAQzd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,mBAAmBma,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,WAAWma,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,iBAAiBE,cAAgB,CAACF,KAAO,YAAYnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,YAAYma,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,iBAAiBnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,gCAAgC,CAACga,KAAO,iBAAiBE,cAAgB,CAACF,KAAO,YAAYnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,0BAA0Bma,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,YAAY,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,qBAAqB,CAACga,KAAO,qBAAqBnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,4BAA4Bka,cAAgB,CAACF,KAAO,YAAYnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,YAAYma,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,OAAO,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,SAASma,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,eAAema,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,eAAe,CAACga,KAAO,QAAQK,MAAQ,CAACL,KAAO,OAAOha,MAAQ,YAAYnD,KAAO,CAACmd,KAAO,OAAOha,MAAQ,eAAe,CAACga,KAAO,iBAAiBE,cAAgB,CAACF,KAAO,YAAYnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,kBAAkBma,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,iBAAiB,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,OAAO,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,SAAS,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,oBAAoB,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,kBAAkB,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,yBACx7DzF,EAAA2e,4CAAG,CAACc,KAAO,WAAWC,YAAc,CAAC,CAACD,KAAO,sBAAsBM,UAAY,WAAWzd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,uCAAuCua,oBAAsB,CAAC,CAACP,KAAO,qBAAqBQ,SAAW,CAACR,KAAO,WAAWnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,UAAUsP,KAAO,CAAC0K,KAAO,cAAc1K,KAAO,CAAC0K,KAAO,YAAYnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,gDAAgDma,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,uCAAuChG,UAAY,CAAC,CAACggB,KAAO,WAAWnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,SAASA,MAAQ,CAACga,KAAO,WAAWnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,YAAYma,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,iBAAiBE,cAAgB,CAACF,KAAO,YAAYnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,8CAA8Cma,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,WAAWma,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,iBAAiBnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,6BAA6B,CAACga,KAAO,iBAAiBnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,wCAAwC,CAACga,KAAO,qBAAqBnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,iCAAiCka,cAAgB,CAACF,KAAO,YAAYnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,YAAYma,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,qBAAqBma,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,SAAS,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,eAAema,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,WAAW,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,YAAY,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,WAAW,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,UAAU,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,aAAa,CAACga,KAAO,qBAAqBnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,yBAAyBka,cAAgB,CAACF,KAAO,YAAYnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,YAAYma,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,aAAama,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,aAAa,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,SAAS,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,UAAU,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,eAAe,CAACga,KAAO,qBAAqBnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,4BAA4Bka,cAAgB,CAACF,KAAO,YAAYnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,YAAYma,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,gBAAgBma,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,aAAa,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,UAAU,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,cAAc,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,mBAAmB,CAACga,KAAO,qBAAqBnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,sBAAsBka,cAAgB,CAACF,KAAO,YAAYnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,YAAYma,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,UAAUma,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,SAAS,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,kBAAkB,CAACga,KAAO,qBAAqBnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,qBAAqBka,cAAgB,CAACF,KAAO,YAAYnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,YAAYma,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,SAASma,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,SAAS,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,kBAAkB,CAACga,KAAO,qBAAqBnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,4BAA4Bka,cAAgB,CAACF,KAAO,YAAYnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,YAAYma,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,OAAO,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,SAASma,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,eAAema,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,eAAe,CAACga,KAAO,QAAQK,MAAQ,CAACL,KAAO,OAAOha,MAAQ,YAAYnD,KAAO,CAACmd,KAAO,OAAOha,MAAQ,eAAe,CAACga,KAAO,iBAAiBE,cAAgB,CAACF,KAAO,YAAYnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,kBAAkBma,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,iBAAiB,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,OAAO,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,SAAS,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,oBAAoB,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,kBAAkB,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,uBAAuB,CAACga,KAAO,qBAAqBnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,2BAA2Bka,cAAgB,CAACF,KAAO,YAAYnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,YAAYma,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,OAAO,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,4BAA4B,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,UAAU,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,8BAA8B,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,oBAAoB,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,WAAW,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,cAAc,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,iBAAiB,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,qBAAqB,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,kBAAkB,CAACga,KAAO,iBAAiBnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,kCAAkC,CAACga,KAAO,iBAAiBnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,0BAA0B,CAACga,KAAO,iBAAiBnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,6BAA6B,CAACga,KAAO,iBAAiBnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,uBAAuB,CAACga,KAAO,iBAAiBnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,2BACp0MzF,EAAAkf,mBAAG,CAACO,KAAO,WAAWC,YAAc,CAAC,CAACD,KAAO,sBAAsBM,UAAY,QAAQzd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,cAAcma,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,WAAWma,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,iBAAiBE,cAAgB,CAACF,KAAO,YAAYnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,YAAYma,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,iBAAiBnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,+BAA+B,CAACga,KAAO,iBAAiBE,cAAgB,CAACF,KAAO,YAAYnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,0BAA0Bma,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,YAAY,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,qBAAqB,CAACga,KAAO,qBAAqBnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,iCAAiCka,cAAgB,CAACF,KAAO,YAAYnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,YAAYma,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,qBAAqBma,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,SAAS,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,eAAema,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,WAAW,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,YAAY,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,WAAW,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,UAAU,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,aAAa,CAACga,KAAO,qBAAqBnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,yBAAyBka,cAAgB,CAACF,KAAO,YAAYnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,YAAYma,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,aAAama,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,aAAa,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,SAAS,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,UAAU,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,eAAe,CAACga,KAAO,qBAAqBnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,4BAA4Bka,cAAgB,CAACF,KAAO,YAAYnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,YAAYma,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,gBAAgBma,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,aAAa,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,UAAU,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,cAAc,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,mBAAmB,CAACga,KAAO,qBAAqBnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,sBAAsBka,cAAgB,CAACF,KAAO,YAAYnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,YAAYma,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,UAAUma,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,SAAS,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,kBAAkB,CAACga,KAAO,qBAAqBnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,qBAAqBka,cAAgB,CAACF,KAAO,YAAYnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,YAAYma,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,SAASma,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,SAAS,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,kBAAkB,CAACga,KAAO,qBAAqBnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,2BAA2Bka,cAAgB,CAACF,KAAO,YAAYnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,YAAYma,aAAe,CAACH,KAAO,eAAeI,WAAa,CAAC,CAACJ,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,OAAO,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,4BAA4B,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,UAAU,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,8BAA8B,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,oBAAoB,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,WAAW,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,cAAc,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,iBAAiB,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,qBAAqB,CAACga,KAAO,QAAQnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,kBAAkB,CAACga,KAAO,iBAAiBnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,kCAAkC,CAACga,KAAO,iBAAiBnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,0BAA0B,CAACga,KAAO,iBAAiBnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,6BAA6B,CAACga,KAAO,iBAAiBnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,uBAAuB,CAACga,KAAO,iBAAiBnd,KAAO,CAACmd,KAAO,OAAOha,MAAQ,0BAAiG,I,yJC5X/3JP,OAAAkU,KAAA8G,GAAA7G,SAAA,SAAAhU,GAAA,YAAAA,GAAA,eAAAA,SAAArF,KAAAqF,KAAA6a,EAAA7a,IAAAH,OAAA2B,eAAA7G,EAAAqF,EAAA,CAAAP,YAAA,EAAAgC,IAAA,kBAAAoZ,EAAA7a,EAAA,OAAsB,I;AC0EpBrF,EAAAC,QApE4C,CAC5CkgB,cAAiB,CACfC,WAAc,CACZ,kBAEFC,kBAAqB,CACnB,kBAEFC,eAAkB,CAChB,sBAEFC,sBAAyB,CACvB,sBAEFC,4BAA+B,CAC7B,8BACA,yBAEFC,4BAA+B,CAC7B,8BACA,yBAEFC,4BAA+B,CAC7B,8BACA,yBAEFC,iCAAoC,CAClC,mCACA,yBAEFC,YAAe,CACb,iBAEFC,oBAAuB,CACrB,wBACA,wBACA,sBACA,uBAEFC,+BAAkC,CAChC,wBACA,kCAEFC,eAAkB,CAChB,wBACA,WAEFC,gCAAmC,CACjC,wBACA,kCAEFC,yCAA4C,CAC1C,wBACA,2CAEFC,2CAA8C,CAC5C,wBACA,6CAEFC,wBAA2B,CACzB,wBACA,2BAEFC,0BAA6B,CAC3B,wBACA,8BAIqB,I,saCnEpB,SAASC,EAAWzW,GAAc,IAAX0W,EAAI7hB,UAAAgD,OAAA,QAAAiQ,IAAAjT,UAAA,GAAAA,UAAA,GAAG,CAAC;AACpC,MAAM8hB,EAAU3hB,UAAOsB,IAAIqgB;AAI3B,IAAIC,EAAcF,EAAKE,aAAeF,EAAKG,QACvCC,EAAUJ,EAAKI,SAAWJ,EAAKK,YAE/BC,EAAQ;AAgBZ,OAdIJ,IACEF,EAAKO,eACPD,EAAQL,EAAQK,MAAME,0BAGnBF,IACHA,EAAQL,EAAQK,MAAMG,mBAItBL,IACFE,EAAQL,EAAQK,MAAMI,cAGjBJ,EAAQA,EAAM,GAAKL,CAC5B,C;AAACvhB,EAAAC,SAEc,EAAAgiB,UAAOZ,EAAW,I;;UClClBa,SAAS,I;UCATC,SAAW,I,4ICOnB,SAASC,EAAe7b,GAC7B,MAAO8b,GAAiB9b,EAClB+b,EAAqC,iBAAlBD,EAA6BE,UAASF,GAAiB;AAChF,OAAOC,UAAa,EACtB,C;AAACtiB,EAAAC,SAEc,EAAAgiB,UAAOG,EAAe,I;ACX9B,MAAMI,EAAYtV,IAAA,IAAEzH,GAAgByH;AAAA,OACzC,EAAAuV,eAAW,EAAAC,cAAWjd,IAAQkd,QAAQ,KAAM,IAAI;AAAA3iB,EAAAwiB;AAAAxiB,EAAAC,SAEnC,EAAAgiB,UAAOO,EAAU,I,sZCHhC,IAAIlgB,EAAMif;kEACN3hB,UAAOsB,MACToB,EAAO1C,UAAOsB,IAAIoB,KAClBif,EAAU3hB,UAAOsB,IAAIqgB;AACtBvhB,EAAAC,QAEc,CACbqC,KAAM,cACNsgB,YAAY,EAAAC,WAAmBvgB,EAAMif,GACtC,I,2aCLDuB,UAAMzhB,UAAU0hB,OAAOC,UAAwB,I;UCNxB,CACb1gB,KAAM,mBACNsgB,aAAc,EACf,I,kXCJT,I;;ACQgD5iB,EAAAC,SAAAmB,EAAjC,cAA0C6hB,UAAuC1jB,c;AAAAC,SAAAC,W,EAAAE,K,EAAA,Y,EAAAA,M,EAAA4B,I,qJAAA,CAIrF2hB,SACPvjB,KAAKsJ,UAAUC,QACjB,G,EACD9H,EAAAuD,U,EAAA,Y,EAAA,CANEC,W,EAAO,CAAAC,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAAC,YAAA,M,yUAMTzD,O,wDANSH;eAAA,I;4aCwCH,SAIL+hB,EACAnO,GAEA,OAAO,EAAAoO,OAAID,EArDb,SACEnO,GAEA,OAAO,EAAAqO,aAASnW,IAAmB,IAAlBhH,MAAEA,EAAKod,GAAEA,GAAIpW;AAC5B,MAAMqW,EAASrd,EAAMsd,OAAO,kBACtBC,EAAezO,KACfrK,KAAEA,EAAI+Y,SAAEA,GAAaD,EACrBE,EAAQJ,EAAOK,cAAcH,GAE7BI,GAAgB,EAAAC,UAGhBnjB,EAAqB,iBAATgK,EAAoBA,EAAO4Y,EAAOQ,MAAMC,SAASrZ;AAEnE,GAAIhK,EAAI,CAEN,MAAMsjB,EAAgBV,EAAOQ,MAAMG,aAAa,CAC9CvjB,KACA+iB,SAAUA;AAGRO,GAEFJ,EAAcvb,IAAI2b,EAEtB,CAEA,MAAME,EAAeR,EAAMre,WAAW8e,IAChCA,EAAOte,UACT+d,EAAcvb,IAAI8b,EAAOve,KAC3B;AAOF,OAJAyd,EAAGe,SAAQ,KACTF,EAAa5e,aAAa,IAGrBse,CAAa,GAExB,CAcqBS,CAAStP,GAC9B,CAAC,I,4JCCM,SACLmO,EACAoB,GAEA,OAAO,EAAAnB,OAAID,EAtCb,SAMEoB,GAEA,OAAO,EAAAlB,aAASnW,IAAe,IAAdhH,MAAEA,GAAOgH;AACxB,MAAMqW,EAASrd,EAAMsd,OAAO,kBACtBY,GAAS,EAAAN;AAEf,MAAO,MACLM,OAAQA,EAAOvQ,QACf,YAAMC,CAAOkB,GACX,MAAMwP,EAAgB,IAAKxP,EAASuP,YAC9BE,QAAqBlB,EAAOzP,OAAO0Q;AAMzC,OAJIC,EAAa5e,MACfue,EAAO9b,IAAImc,EAAa5e,MAGnB4e,EAAa5e,IACtB,GACA,GAEN,CAYqB6e,CAASH,GAC9B,CAAC,I,sJCDM,SAGLpB,EAAgBnO,GAChB,OAAO,EAAAoO,OAAID,EA7Cb,SAGEnO,GACA,OAAO,EAAAqO,aAASnW,IAAmB,IAAlBhH,MAAEA,EAAKod,GAAEA,GAAIpW;AAC5B,MAAMqW,EAASrd,EAAMsd,OAAO,kBAEtBK,GAAgB,EAAAC,UAChBH,EAAQJ,EAAOoB,WAAW3P,KAE1BmP,EAAeR,EAAMre,WAAW8e,IAC/BA,EAAOQ,SACVf,EAAcvb,IAAI8b,EAAOve,KAC3B;AAOF,OAJAyd,EAAGe,SAAQ,KACTF,EAAa5e,aAAa,IAGrB,MACLM,KAAMge,EAAchQ,QACpBgR,QAAOA,IACElB,EAAMkB,UAEfT,OAAMA,IACGT,EAAMS,SAEfU,YAAYC,GACVpB,EAAMmB,YAAYC,EACpB,GACA,GAEN,CAYqBC,CAAMhQ,GAC3B,CAAC,I;;;;;;AChEc,MAAMiQ,UAAeC,UAAY3lB,cAAAC,SAAAC,WAAAC,EAAAC,KAAA,WACnCC,UAAOulB,cAAYzlB,EAAAC,KAAA,UAEpBC,UAAOwlB,QAAO,EACzBplB,EAAAC,QAAAglB,EAEDA,EAAOhY,KAAI,WACTtN,KAAK4X,MAAM,SAAS,WAClB5X,KAAK4X,MAAM,OAAQ,CAAE8N,KAAM,cAAe,WAExC1lB,KAAK4X,MAAM,SACb,GACF,IAGA5X,KAAK4X,MAAM,QAAS,CAAE8N,KAAM,8BAA+B,WACzD,IAGF1lB,KAAK4X,MAAM,kBAEX5X,KAAK4X,MAAM,eAAe,WAExB5X,KAAK4X,MAAM,UACX5X,KAAK4X,MAAM,SACX5X,KAAK4X,MAAM,SACX5X,KAAK4X,MAAM,eACb,IAEA5X,KAAK4X,MAAM,QAAS,CAAE8N,KAAM,+BAC5B1lB,KAAK4X,MAAM,OAAQ,CAAE8N,KAAM,gCAG3B1lB,KAAK4X,MAAM,eAAe,WAAa,IAEvC5X,KAAK4X,MAAM,aAAa,WAAa,IAErC5X,KAAK4X,MAAM,SACX5X,KAAK4X,MAAM,UAEX5X,KAAK4X,MAAM,SAAS,WAClB5X,KAAK4X,MAAM,eACb,IAEA5X,KAAK4X,MAAM,YAAa,CAAE8N,KAAM,WAChC1lB,KAAK4X,MAAM,kBACX5X,KAAK4X,MAAM,eACX5X,KAAK4X,MAAM,aACb,GAAE,I;;;ACjBF,MAAM+N,GAA0B,EAAAhS,WAAQ;AAoBHtT,EAAAC,SAAAmB,EAAtB,cAA+BmkB,UAgC5ChmB,cACEC,SAAMC,WAGN6B,EAAA3B,KAAA,WAAA4B,EAAA5B,MAAA2B,EAAA3B,KAAA,eAAA6B,EAAA7B,MAAA2B,EAAA3B,KAAA,WAAA8B,EAAA9B,MAAA2B,EAAA3B,KAAA,oBAAA+B,EAAA/B,MAAA2B,EAAA3B,KAAA,UAAAkP,EAAAlP,MAAA2B,EAAA3B,KAAA,YAAAmP,EAAAnP,MAAA2B,EAAA3B,KAAA,iBAAA6V,EAAA7V,MAAA2B,EAAA3B,KAAA,SAAA8V,EAAA9V,MAAA2B,EAAA3B,KAAA,iBAAA+V,EAAA/V,MAAA2B,EAAA3B,KAAA,QAAA0a,EAAA1a,MAAA2B,EAAA3B,KAAA,WAAA6lB,EAAA7lB,MAAA2B,EAAA3B,KAAA,aAAA8lB,EAAA9lB,MAAA2B,EAAA3B,KAAA,OAAA+lB,EAAA/lB,MAAA2B,EAAA3B,KAAA,cAAAgmB,EAAAhmB,MAAA2B,EAAA3B,KAAA,SAAAimB,EAAAjmB,MACAA,KAAK0O,OAAOwX,IAAI,kBAAkB,KAChClmB,KAAKmmB,YAAY,IAEnBnmB,KAAK2jB,GAAG,aAAa,KACnB3jB,KAAKmmB,YAAY,GAErB,CAEA,iBAAeC,CAAYC,GAAuC,IAAAC,EAAAC;AAChE,GAA4B,WAAX,QAAbD,EAAAD,EAAWG,UAAE,IAAAF,OAAA,EAAbA,EAAe3jB,OAA4C,YAAX,QAAb4jB,EAAAF,EAAWG,UAAE,IAAAD,OAAA,EAAbA,EAAe5jB,MAItD,UACQ3C,KAAKymB,eACb,CAAE,MAAOpjB,GACP,KAAIA,aAAiB0I,yBAMnB,MAAM1I;AAFDrD,KAAK0O,OAAOC,aAAa,QAIlC,CACF,CAES+X,WAAWC,EAAyBN,GAC3CrmB,KAAKyR,YAAYmV,gBAAgBP,EACnC,CAOShjB,MAAMA,EAAcgjB,GAA+B,IAAAQ,EAAAC;AAC1D,MAAMtW,EAAgC,QAAvBqW,EAAGR,SAAc,QAAJS,EAAVT,EAAYG,UAAE,IAAAM,OAAA,EAAdA,EAAgBnkB,YAAI,IAAAkkB,IAAI;AAK1C,OAJA7mB,KAAKsD,aAAayjB,qBAAoB,2BAAA5b,OACTqF,GAC3BnN,IAEK,CACT,CAGS2jB,eAAeX,GACtBrmB,KAAKinB,0CAA0CZ,GAC/CrmB,KAAKyR,YAAYmV,gBAAgBP,EACnC,CAEAF,aACEnmB,KAAKga,QAAQkN,UAAU,CACrBC,KAAMnnB,KAAK0O,OAAO0Y,WAClBzV,MAAO3R,KAAK0O,OAAO2Y,mBAErBrnB,KAAKsnB,gBAAgBtnB,KAAK0O,OAAO2Y,iBACnC,CAEQC,gBAAgB9W,GACjBxQ,KAAKunB,WAAWC,WAAWhX,EAClC,CAEA,uBAAIiX,GACF,OAAOznB,KAAK8D,SAAS4jB,UAAU,qBACjC,CAEA,mBAAMjB,SACEzmB,KAAK8X,SAAS6P;AAEpB,MAAM3T,QAAkBhU,KAAK4jB,OAAOI,MAAM,CACxCA,MAAO2B,KAEH7Y,QAAEA,GAAYkH,EAAS9N;AAE7B,GAA0B,yBAAtB4G,EAAQwH,WACV,MAAM,IAAIvI,wBACR;AAEG,GAA0B,WAAtBe,EAAQwH,WAGjB,MAAM,IAAI3I,MAAK,kEAAAR,OACqD2B,EAAQwH;MAIxEtU,KAAK0D,KAAKkkB,cAEVC,QAAQC,IAAI,CAChB9nB,KAAK4Q,SAASgX,QACd5nB,KAAKsP,MAAMsY,QACX5nB,KAAKyR,YAAYmW,UAGf5nB,KAAKynB,qBACPznB,KAAKunB,WAAWK;AAElB,MAAMG,EAAa/nB,KAAK0D,KAAKoJ,QAAoC9L;AAGjEhB,KAAKgoB,eAAevZ,MAAMsZ,GAC1B/nB,KAAKioB,eAAexZ,QACpBzO,KAAKkoB,kBAAkBzZ,OACzB,CAcAwY,0CAA0CZ,GAA8B,IAAA8B;AACtE,MAAMC,EAA+B,QAAlBD,EAAG9B,EAAWrb,YAAI,IAAAmd,OAAA,EAAfA,EAAiBxlB;AAElC0jB,EAAWgC,kBAAkBC,MAAMC,IACtC,GAAIA,aAAmB3C,UAAO,CAC5B,MAAQpV,UAAWgY,GAAgBD;AAEnC,IACE,EAAAE,uBAAoBD,EAAaJ,KACjC,EAAAM,gBAAaF,GAEb;AAGAxoB,KAAK2oB,UAAUC,0BAA0BJ,IACzBxoB,KAAK6oB,QAAQ,YACjC,IAEJ,GACDjnB,EAAAmD,EAAAtD,EAAAuD,UAAA,YA7KEC,UAAO,CAAAC,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAAC,YAAA,OAAAxD,EAAAkD,EAAAtD,EAAAuD,UAAA,gBAEPC,UAAO,CAAAC,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAAC,YAAA,OAAAvD,EAAAiD,EAAAtD,EAAAuD,UAAA,YAEPC,UAAO,CAAAC,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAAC,YAAA,OAAAtD,EAAAgD,EAAAtD,EAAAuD,UAAA,qBAEPC,UAAO,CAAAC,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAAC,YAAA,OAAA6J,EAAAnK,EAAAtD,EAAAuD,UAAA,WAEPC,UAAO,CAAAC,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAAC,YAAA,OAAA8J,EAAApK,EAAAtD,EAAAuD,UAAA,aAEPC,UAAO,CAAAC,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAAC,YAAA,OAAAwQ,EAAA9Q,EAAAtD,EAAAuD,UAAA,kBAEPC,UAAO,CAAAC,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAAC,YAAA,OAAAyQ,EAAA/Q,EAAAtD,EAAAuD,UAAA,UAEPC,UAAO,CAAAC,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAAC,YAAA,OAAA0Q,EAAAhR,EAAAtD,EAAAuD,UAAA,kBAEPC,UAAO,CAAAC,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAAC,YAAA,OAAAqV,EAAA3V,EAAAtD,EAAAuD,UAAA,SAEPC,UAAO,CAAAC,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAAC,YAAA,OAAAwgB,EAAA9gB,EAAAtD,EAAAuD,UAAA,YAEPC,UAAO,CAAAC,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAAC,YAAA,OAAAygB,EAAA/gB,EAAAtD,EAAAuD,UAAA,cAEPC,UAAO,CAAAC,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAAC,YAAA,OAAA0gB,EAAAhhB,EAAAtD,EAAAuD,UAAA,QAEPC,UAAO,CAAAC,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAAC,YAAA,OAAA2gB,EAAAjhB,EAAAtD,EAAAuD,UAAA,eAEPC,UAAO,CAAAC,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAAC,YAAA,OAAA4gB,EAAAlhB,EAAAtD,EAAAuD,UAAA,UAEPC,UAAO,CAAAC,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAAC,YAAA,OAAAN,EAAAtD,EAAAuD,UAAA,SA2CPM,UAAMC,OAAAC,yBAAA/D,EAAAuD,UAAA,SAAAvD,EAAAuD,WAAAD,EAAAtD,EAAAuD,UAAA,kBAUNM,UAAMC,OAAAC,yBAAA/D,EAAAuD,UAAA,kBAAAvD,EAAAuD,WAAAvD,EAAA,I;;;ACjI2BpB,EAAAC,SAAAmB,EAArB,cAA8BmkB,UAAMhmB,cAAAC,SAAAC,WAAA6B,EAAA3B,KAAA,cAAA4B,EAAA5B,MAAA2B,EAAA3B,KAAA,SAAA6B,EAAA7B,MAAA2B,EAAA3B,KAAA,YAAA8B,EAAA9B,KAAA,CAOxComB,cACFpmB,KAAKyR,YAAYD,mBAAwBxR,KAAK0O,OAAOwG,YAAY,IACxE,CAESjE,QACP,MAAMO,kBAAEA,GAAsBxR,KAAKyR;AACnC,IAAKD,EAEH,MAAM,IAAI7F,MAAM;AAKlB,OAFA3L,KAAKsJ,UAAUC,SAER,CACLuf,WAAYtX,EAEhB,GACD5P,EAAAmD,EAAAtD,EAAAuD,UAAA,eAvBEC,UAAO,CAAAC,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAAC,YAAA,OAAAxD,EAAAkD,EAAAtD,EAAAuD,UAAA,UAEPC,UAAO,CAAAC,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAAC,YAAA,OAAAvD,EAAAiD,EAAAtD,EAAAuD,UAAA,aAEPC,UAAO,CAAAC,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAAC,YAAA,OAAA5D,EAAA,I;;;ACSoBpB,EAAAC,SAAAmB,EAAf,cAAwBmkB,UAAqChmB,cAAAC,SAAAC,WAAA6B,EAAA3B,KAAA,OAAA4B,EAAA5B,MAAA2B,EAAA3B,KAAA,WAAA6B,EAAA7B,MAAA2B,EAAA3B,KAAA,SAAA8B,EAAA9B,KAAA,CAO1E,WAAI8M,GACF,OAAO9M,KAAK0D,KAAKoJ,OACnB,CAESmE,MAAK1D,EAAsC8Y,GAAwB,IAA3D0C,QAASnU,GAAwBrH;AAGhD,GAF2BvN,KAAK8M,QAAQkc,MAAMtY,SAASkE,GAE/B,CACtB,MAAMqU,EAAejpB,KAAK8X,SAASoR,iBAAiBtU;AAGpD,IAAKqU,EAAa/Q,GAAI,MAAM,IAAIvM,MAAK,oBAAAR,OAAqByJ;AAE1D,MAAQuU,eAAgBC,EAAkBC,YAAEA,GAC1CJ,EAAanR,SAETwR,EAAY,CAAC,CAACD,EAAaD,IAC3B5lB,EAAY,CAAE+lB,aAAa,GAC3BC,GAAO,EAAA3O,aAAUjG;AAEvB,MAAO,CAAE0U,YAAW9lB,YAAWjB,8BAAainB,OAC9C,CAGInD,EAAWrb,KACRqb,EAAWvhB,QAEX9E,KAAK0O,OAAOwG,YAAY,oBAIjC,GACDtT,EAAAmD,EAAAtD,EAAAuD,UAAA,QAtCEC,UAAO,CAAAC,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAAC,YAAA,OAAAxD,EAAAkD,EAAAtD,EAAAuD,UAAA,YAEPC,UAAO,CAAAC,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAAC,YAAA,OAAAvD,EAAAiD,EAAAtD,EAAAuD,UAAA,UAEPC,UAAO,CAAAC,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAAC,YAAA,OAAA5D,EAAA,I;;;ACX4BpB,EAAAC,SAAAmB,EAAvB,cAAgCmkB,UAAqBhmB,cAAAC,SAAAC,WAAA6B,EAAA3B,KAAA,WAAA4B,EAAA5B,MAAA2B,EAAA3B,KAAA,OAAA6B,EAAA7B,MAAA2B,EAAA3B,KAAA,SAAA8B,EAAA9B,MAAA2B,EAAA3B,KAAA,WAAA+B,EAAA/B,KAAA,CASlE,eAAI8b,GACF,OAAO9b,KAAK0D,KAAKoJ,QAAQ2c,eAC3B,CAESrD,cACFpmB,KAAK4Q,SAAS2D,qBAAsBvU,KAAK4Q,SAASG,mBAChD/Q,KAAK0O,OAAOwG,YAAY,IAEjC,CAESjE,QAMP,MAAO,CAAEqY,UALS,CAAC,CAAC,QAAS,qCAKT9lB,UAJF,CAChBsY,YAAa9b,KAAK8b,YAClB4N,aAAc1pB,KAAK8X,SAAS6R,UAECpnB,sCACjC,GACDX,EAAAmD,EAAAtD,EAAAuD,UAAA,YA1BEC,UAAO,CAAAC,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAAC,YAAA,OAAAxD,EAAAkD,EAAAtD,EAAAuD,UAAA,QAEPC,UAAO,CAAAC,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAAC,YAAA,OAAAvD,EAAAiD,EAAAtD,EAAAuD,UAAA,UAEPC,UAAO,CAAAC,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAAC,YAAA,OAAAtD,EAAAgD,EAAAtD,EAAAuD,UAAA,YAEPC,UAAO,CAAAC,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAAC,YAAA,OAAA5D,EAAA,I;;;AChBqBpB,EAAAC,SAAAmB,EAAhB,cAAyBmkB,UAAMhmB,cAAAC,SAAAC,WAAA6B,EAAA3B,KAAA,WAAA4B,EAAA5B,MAAA2B,EAAA3B,KAAA,cAAA6B,EAAA7B,MAAA2B,EAAA3B,KAAA,SAAA8B,EAAA9B,KAAA,CAOnC4pB,WACH5pB,KAAKyR,YAAYD,kBACdxR,KAAK0O,OAAOwG,YAAY,cACnBlV,KAAK4Q,SAAS4D,oBAEfxU,KAAK4Q,SAASG,kBAClB/Q,KAAK0O,OAAOwG,YAAY,kBACpBlV,KAAK4Q,SAAS2D,mBAClBvU,KAAK0O,OAAOwG,YAAY,kBAExBlV,KAAK0O,OAAOwG,YAAY,SANxBlV,KAAK0O,OAAOwG,YAAY,cAQjC,GACDtT,EAAAmD,EAAAtD,EAAAuD,UAAA,YAnBEC,UAAO,CAAAC,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAAC,YAAA,OAAAxD,EAAAkD,EAAAtD,EAAAuD,UAAA,eAEPC,UAAO,CAAAC,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAAC,YAAA,OAAAvD,EAAAiD,EAAAtD,EAAAuD,UAAA,UAEPC,UAAO,CAAAC,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAAC,YAAA,OAAA5D,EAAA,I;;ACA0BpB,EAAAC,SAAAmB,EAArB,cAA8BmkB,UAAqBhmB,c;AAAAC,SAAAC,W,EAAAE,K,EAAA,Y,EAAAA,M,EAAA4B,I,qJAAA,CAGvDqP,QAEP,MAAO,CAAEqY,UADS,CAAC,CAAC,QAAS,2BACT/mB,+BACtB,G,EACDd,EAAAuD,U,EAAA,Y,EAAA,CANEC,U,EAAO,CAAAC,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAAC,YAAA,M,yUAMTzD,O,wDANSH;eAAA,I;;ACPV,MACEF,KAAKsoB,aAAEA,IACL5pB;AAM2BI,EAAAC,SAAAmB,EAAhB,cAAyBmkB,UAAqBhmB,c;AAAAC,SAAAC,W,EAAAE,K,EAAA,O,EAAAA,M,EAAA4B,I,qJAAA,CAOlDqP,QACP,MAAO,CACL6Y,QAASD,EAEb,CAKSD,WACP5pB,KAAK0D,KAAKqmB,QACZ,G,EACDtoB,EAAAuD,U,EAAA,O,EAAA,CAlBEC,W,EAAO,CAAAC,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAAC,YAAA,M,yUAkBTzD,O,wDAlBSH;eAAA,I;ACXV,MACEF,KAAKyoB,UAAEA,EAASH,aAAEA,IAChB5pB;AAMW,MAAMgqB,UAAoBrE,UAK9B3U,QACP,MAAO,CACL6Y,QAASD,EAEb,CAMSD,WACP,GAAII,EAAW,CACb,MAAME,EAAOC,SAASC,cAAc;AACpCF,EAAKG,aAAa,SAAU,QAC5BH,EAAKG,aAAa,SAAUL,GAE5BG,SAASG,KAAKC,YAAYL,GAE1BA,EAAKM,QACP,CACF,EACDnqB,EAAAC,QAAA2pB,CAAA,I;;;ACRmC5pB,EAAAC,SAAAmB,EAArB,cAA8BmkB,UAAqBhmB,cAAAC,SAAAC,WAAA6B,EAAA3B,KAAA,WAAA4B,EAAA5B,MAAA2B,EAAA3B,KAAA,OAAA6B,EAAA7B,MAAA2B,EAAA3B,KAAA,SAAA8B,EAAA9B,MAAA2B,EAAA3B,KAAA,kBAAA+B,EAAA/B,KAAA,CAShE,WAAI8M,GACF,OAAO9M,KAAK0D,KAAKoJ,OACnB,CAEA,oBAAI6N,GACF,OAAO3a,KAAK8M,QAAQuC,SACtB,CAEA,eAAIob,GACF,OAAOzqB,KAAK8M,QAAQC,YACtB,CAESqZ,cACHpmB,KAAK4Q,SAASG,mBACX/Q,KAAK0O,OAAOC,aAAa,iBAElC,CAESsC,MAAMyZ,EAAkBrE,GAC/B,MACEhX,UAAWsL,EAAgBgQ,0BAC3BA,EACAC,kBAAmBC,EAAeC,OAClCA,EAAM9B,MACNA,EAAK+B,MACLA,GACE/qB,KAAK8M;AA4BT,MAAO,CAAEwc,UA1BS,CAAC,CAAC,QAAS,6BA0BT9lB,UAzBF,CAChBmX,mBACAqQ,QAAS,CACPL,4BACAE,gBAAiBA,EAAgBjR,QAE/B,CAACqR,EAAKxG,KACNwG,EAAIvS,SAAS+L,EAAOzjB,GAAI,KAAOyjB,EACxBwG,IACN,CAAC,GACJH,OAAQA,EAAOlR,QAAiC,CAACqR,EAAKnW,KACpDmW,EAAInW,EAAM1C,MAAQ0C,EAAMoW,QACjBD,IACN,CAAC,GACJjC,QACA+B,MAAOA,EAAMnR,QAAiC,CAACqR,EAAKE,KAClDF,EAAIE,EAAK/Y,MAAQ+Y,EAAKD,QACfD,IACN,CAAC,IAENR,YAAazqB,KAAKyqB,YAClBW,aAAcprB,KAAKqrB,YAAYhF,GAC/BiF,mBAAoB,CAAC,GAAI,GAAI,GAAI,GAAI,KAGR/oB,oCACjC,CAEA8oB,YAAYhF,GAAgC,IAAAC;AAC1C,OAAqB,QAArBA,EAAQD,EAAWG,UAAE,IAAAF,OAAA,EAAbA,EAAerR,WACrB,IAAK,SACH,MAAO;AACT,IAAK,QACH,MAAO;AACT,IAAK,QACH,MAAO;AACT,IAAK,eACH,MAAO;AACT,QACE,MAAO,WAEb,GACDrT,EAAAmD,EAAAtD,EAAAuD,UAAA,YA/EEC,UAAO,CAAAC,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAAC,YAAA,OAAAxD,EAAAkD,EAAAtD,EAAAuD,UAAA,QAEPC,UAAO,CAAAC,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAAC,YAAA,OAAAvD,EAAAiD,EAAAtD,EAAAuD,UAAA,UAEPC,UAAO,CAAAC,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAAC,YAAA,OAAAtD,EAAAgD,EAAAtD,EAAAuD,UAAA,mBAEPC,UAAO,CAAAC,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAAC,YAAA,OAAA5D,EAAA,I;;;ICjBL8pB,EAAQ,SAARA,GAAQ,OAARA,EAAQ,gBAARA,EAAQ,YAARA,CAAQ,EAARA,GAAQ;AAKkBlrB,EAAAC,SAAAmB,EAAhB,cAAyBmkB,UAAqBhmB,cAAAC,SAAAC,WAAA6B,EAAA3B,KAAA,WAAA4B,EAAA5B,MAAA2B,EAAA3B,KAAA,OAAA6B,EAAA7B,MAAA2B,EAAA3B,KAAA,WAAA8B,EAAA9B,MAAA2B,EAAA3B,KAAA,SAAA+B,EAAA/B,MAAA2B,EAAA3B,KAAA,cAAAkP,EAAAlP,KAAA,CAW3D,eAAIyqB,GACF,OAAOzqB,KAAK0D,KAAKoJ,QAAQC,YAC3B,CAESqZ,YAAYC,GACnB,GAAIrmB,KAAKyR,YAAYD,kBAAmB;AAExC,GAAIxR,KAAK4Q,SAASG,kBAEhB,YADK/Q,KAAK0O,OAAOC,aAAa;AAIhC,MAAM6c,EAAkB/e,OACtBzM,KAAKyrB,6BAA6BpF,EAAWG;AAK1CgF,GAAoBxrB,KAAK4Q,SAAS8a,YAAYF,GAYI,IAArDxrB,KAAK4Q,SAASC,oBAAoB4E,gBACjCzV,KAAK4Q,SAAS2D,oBAEVvU,KAAK0O,OAAOwG,YACf,aACAlV,KAAK4Q,SAASC,oBAAoBuB,MAhB/BpS,KAAK0O,OAAOwG,YACf,aACAlV,KAAK4Q,SAAS6B,mBAiBpB,CAESxB,MAAMyZ,EAAkBrE,GAC/B,MAAMpZ,aAAEA,GAAiBjN,KAAK0D,KAAKoJ,SAC7B6c,SAAEA,GAAa3pB,KAAK8X,SACpB5B,EAAiByV,QAAQ3rB,KAAKyR,YAAYD,mBAC1Coa,EAAe1V,EACjBlW,KAAKyR,YAAYb,SACjB5Q,KAAK4Q,SAASC,qBAEV2V,GAAIqF,GAAuBxF,EAC7BmF,EACJxrB,KAAKyrB,6BAA6BI,GAC9BC,EACJ9rB,KAAK+rB,+BAA+BF,GAChCrQ,EAAiF,UAA3DqQ,aAAkB,EAAlBA,EAAoBpQ,YAAiC;AAcjF,MAAO,CAAE6N,UAZS,CAAC,CAAC,QAAS,qBAYT9lB,UAXF,CAChBinB,YAAazqB,KAAKyqB,YAClBqB,oBACAN,kBACAI,eACAjC,WACA1c,eACA+e,gBAAiB9V,EACjBsF,uBAG6BjZ,+BAAa2T,iBAC9C,CASAuV,6BACEQ,GAEA,MAAMvU,EAAgBuU,aAAS,EAATA,EAAWtU,MAC9BC,GAAyB,eAAfA,EAAMjV;AAEnB,OAAO+U,aAAa,EAAbA,EAAe9Q,OAAgB,OACxC,CASAmlB,+BAA+BE,GAI7B,OAH+BA,aAAS,EAATA,EAAWtU,MACvCC,GAAyB,sBAAfA,EAAMjV,QAEa4oB,EAASW,OAASX,EAASnZ,IAC7D,GACDxQ,EAAAmD,EAAAtD,EAAAuD,UAAA,YA7GEC,UAAO,CAAAC,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAAC,YAAA,OAAAxD,EAAAkD,EAAAtD,EAAAuD,UAAA,QAEPC,UAAO,CAAAC,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAAC,YAAA,OAAAvD,EAAAiD,EAAAtD,EAAAuD,UAAA,YAEPC,UAAO,CAAAC,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAAC,YAAA,OAAAtD,EAAAgD,EAAAtD,EAAAuD,UAAA,UAEPC,UAAO,CAAAC,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAAC,YAAA,OAAA6J,EAAAnK,EAAAtD,EAAAuD,UAAA,eAEPC,UAAO,CAAAC,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAAC,YAAA,OAAA5D,EAAA,I;;;;;;AC/BK,MAAM0qB,UAAkBvG,UAAMhmB,cAAAC,SAAAC,WAAAC,EAAAC,KAAA,cACpB,CACrBwb,oBAAqB,CAAC,GACvB,CAEQvK,QACP,EAMH5Q,EAAAC,QAAA6rB,CAAA,I;;;ACIsC9rB,EAAAC,SAAA6Q,GAOpC,EAAAlM,UAAQ,oBAAmBxD,EAPf,cAAiCmkB,UAAqBhmB,cAAAC,SAAAC,WAAA6B,EAAA3B,KAAA,YAAA4B,EAAA5B,MAAA2B,EAAA3B,KAAA,WAAA6B,EAAA7B,MAAA2B,EAAA3B,KAAA,OAAA8B,EAAA9B,MAAA2B,EAAA3B,KAAA,kBAAA+B,EAAA/B,MAAA2B,EAAA3B,KAAA,SAAAkP,EAAAlP,KAAA,CAWnE,iBAAIosB,GACF,OAAOpsB,KAAK0D,KAAK2oB,MACnB,CAEA,eAAIvQ,GACF,OAAO9b,KAAK0D,KAAKoJ,QAAQ2c,eAC3B,CAESrD,cACFpmB,KAAK4Q,SAASG,mBACZ/Q,KAAK0O,OAAOC,aAAa,IAElC,CAESsC,QACP,MAAMqb,EAAiBtsB,KAAKosB;AAO5B,MAAO,CAAE9C,UALS,CAAC,CAAC,QAAS,kCAKT9lB,UAHF,CAChBsY,YAAa9b,KAAK8b,aAEWwQ,iBAAgB/pB,uCACjD,CAGSykB,iBACP,OAAO,CACT,GACDplB,EAAAmD,EAAAtD,EAAAuD,UAAA,aAvCEC,UAAO,CAAAC,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAAC,YAAA,OAAAxD,EAAAkD,EAAAtD,EAAAuD,UAAA,YAEPC,UAAO,CAAAC,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAAC,YAAA,OAAAvD,EAAAiD,EAAAtD,EAAAuD,UAAA,QAEPC,UAAO,CAAAC,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAAC,YAAA,OAAAtD,EAAAgD,EAAAtD,EAAAuD,UAAA,mBAAAmM,GAAA,CAAAjM,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAAC,YAAA,OAAA6J,EAAAnK,EAAAtD,EAAAuD,UAAA,UAIPC,UAAO,CAAAC,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAAC,YAAA,OAAAN,EAAAtD,EAAAuD,UAAA,kBA2BPM,UAAMC,OAAAC,yBAAA/D,EAAAuD,UAAA,kBAAAvD,EAAAuD,WAAAvD,EAAA,I;;;AChD4BpB,EAAAC,SAAAmB,EAAtB,cAA+BmkB,UAAMhmB,cAAAC,SAAAC,WAAA6B,EAAA3B,KAAA,SAAA4B,EAAA5B,MAAA2B,EAAA3B,KAAA,WAAA6B,EAAA7B,MAAA2B,EAAA3B,KAAA,QAAA8B,EAAA9B,KAAA,CAOzComB,cAaPpmB,KAAK0O,OAAOwG,YAAY,IAC1B,GACDtT,EAAAmD,EAAAtD,EAAAuD,UAAA,UArBEC,UAAO,CAAAC,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAAC,YAAA,OAAAxD,EAAAkD,EAAAtD,EAAAuD,UAAA,YAEPC,UAAO,CAAAC,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAAC,YAAA,OAAAvD,EAAAiD,EAAAtD,EAAAuD,UAAA,SAEPC,UAAO,CAAAC,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAAC,YAAA,OAAA5D,EAAA,I;;;ACUqBpB,EAAAC,SAAAmB,EAAhB,cAAyBmkB,UAAqChmB,cAAAC,SAAAC,WAAA6B,EAAA3B,KAAA,OAAA4B,EAAA5B,MAAA2B,EAAA3B,KAAA,SAAA6B,EAAA7B,KAAA,CAK3E,WAAI8M,GACF,OAAO9M,KAAK0D,KAAKoJ,OACnB,CAESmE,MAAK1D,EAA4B8Y,GAAwB,IAAnDvR,MAAEA,GAAuBvH;AAKtC,GAJ8BvN,KAAK8M,QAAQge,OACxCyB,SAASC,GAAMA,EAAEtB,UACjBxa,SAASoE,GAEe,CAEzB,MAAO,CAAEwU,UADS,CAAC,CAACxU,EAAO,WACPvS,+BAAauS,OAAO,EAAA+F,aAAU/F,GACpD,CAGIuR,EAAWrb,KACRqb,EAAWvhB,QAEX9E,KAAK0O,OAAOwG,YAAY,qBAIjC,GACDtT,EAAAmD,EAAAtD,EAAAuD,UAAA,QA3BEC,UAAO,CAAAC,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAAC,YAAA,OAAAxD,EAAAkD,EAAAtD,EAAAuD,UAAA,UAEPC,UAAO,CAAAC,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAAC,YAAA,OAAA5D,EAAA,I;ACjBK,MAAMgrB,UAAmB7G,UAC7B3U,MAAMyZ,GAGb,EAEHrqB,EAAAC,QAAAmsB,CAAA,I;;;ACqBmCpsB,EAAAC,SAAAmB,EAArB,cAA8BmkB,UAAqBhmB,cAAAC,SAAAC,WAAA6B,EAAA3B,KAAA,WAAA4B,EAAA5B,MAAA2B,EAAA3B,KAAA,MAAA6B,EAAA7B,MAAA2B,EAAA3B,KAAA,OAAA8B,EAAA9B,MAAA2B,EAAA3B,KAAA,WAAA+B,EAAA/B,MAAA2B,EAAA3B,KAAA,SAAAkP,EAAAlP,MAAA2B,EAAA3B,KAAA,cAAAmP,EAAAnP,KAAA,CAahE,uBAAI6Q,GACF,OAAO7Q,KAAK4Q,SAASC,mBACvB,CAEA,oBAAI8J,GACF,OAAO3a,KAAK0D,KAAKoJ,QAAQuC,SAC3B,CAEA,eAAIob,GACF,OAAOzqB,KAAK0D,KAAKoJ,QAAQC,YAC3B,CAESqZ,YAAYC,GAA8B,IAAAC;AACjD,GAAItmB,KAAKyR,YAAYD,kBAAmB;AACxC,GAAIxR,KAAK4Q,SAASG,kBAEhB,YADK/Q,KAAK0O,OAAOC,aAAa;AAIhC,MAAM6U,EAAsB,QAAhB8C,EAAGD,EAAWG,UAAE,IAAAF,OAAA,EAAbA,EAAe9C,QAExB5c,OAAEA,GAAW4c,GAEbkJ,QAAEA,EAASC,SAAU9U,GAAYjR,EACjC6P,EAAShK,OAAOigB;AAGD1sB,KAAK4Q,SAASgc,aAAanW,EAAQoB,IAIjD7X,KAAK0O,OAAOwG,YAAY,aAAcuB,EAE/C,CAESxF,QACP,MAAMyb,QAAEA,EAASC,SAAU9U,GAAY7X,KAAK6sB,UAC1C,SAEIpW,EAAShK,OAAOigB,GAEhBrQ,EAAiBrc,KAAK8X,SAASgV,sBAAsBrW,EAAQoB;AACnE,IAAKwE,EAAenE,GAAI,MAAM,IAAIvM,MAAM0Q,EAAelE;AACvD,MAAQnX,GAAImJ,EAAUV,aAAEA,GAAiB4S,EAAevE,UAClD6C,iBACJA,EAAgB8P,YAChBA,EACA5Z,oBAAqB+a,GACnB5rB,KAEEkW,EAAiByV,QAAQ3rB,KAAKyR,YAAYD;AAkBhD,MAAO,CACL8X,UAlBgB,CAAC,CAACzR,EAAO,oBAAA1M,OAAsBsL,EAAOzH,aAmBtDxL,UAlBgB,CAChBmX,mBACA8P,cACAmB,eACAI,gBAAiB9V,GAejBO,SACAoB,UACA1N,aACAV,eACAlH,YATkBwqB,6BAA2BtjB,GAU7CyM,iBAEJ,GACDtU,EAAAmD,EAAAtD,EAAAuD,UAAA,YA3FEC,UAAO,CAAAC,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAAC,YAAA,OAAAxD,EAAAkD,EAAAtD,EAAAuD,UAAA,OAEPC,UAAO,CAAAC,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAAC,YAAA,OAAAvD,EAAAiD,EAAAtD,EAAAuD,UAAA,QAEPC,UAAO,CAAAC,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAAC,YAAA,OAAAtD,EAAAgD,EAAAtD,EAAAuD,UAAA,YAEPC,UAAO,CAAAC,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAAC,YAAA,OAAA6J,EAAAnK,EAAAtD,EAAAuD,UAAA,UAEPC,UAAO,CAAAC,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAAC,YAAA,OAAA8J,EAAApK,EAAAtD,EAAAuD,UAAA,eAEPC,UAAO,CAAAC,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAAC,YAAA,OAAA5D,EAAA,I;;2cCjBV,EAAAkS,WAAQ;AAOR,MAAMqZ,GAAoB,EAAArZ,WAAQ;AAQAtT,EAAAC,SAAAmB,EAAnB,cAA4BmkB,UAAqBhmB,cAAAC,SAAAC,WAAA6B,EAAA3B,KAAA,OAAA4B,EAAA5B,MAAA2B,EAAA3B,KAAA,SAAA6B,EAAA7B,MAAA2B,EAAA3B,KAAA,WAAA8B,EAAA9B,MAAA2B,EAAA3B,KAAA,WAAA+B,EAAA/B,MAAA2B,EAAA3B,KAAA,SAAAkP,EAAAlP,KAAA,CAW9D,gBAAI+M,GACF,OAAO/M,KAAK0D,KAAKoJ,QAAQC,YAC3B,CAEA,SAAIC,GAEF,OAAOhN,KAAK+M,aAAaC,KAC3B,CAEA,uBAAI6D,GACF,OAAO7Q,KAAK4Q,SAASC,mBACvB,CAEA,sBAAI0D,GACF,OAAOvU,KAAK4Q,SAAS2D,kBACvB,CAEA,gBAAItH,GACF,OAAOjN,KAAK0D,KAAKoJ,QAAQG,YAC3B,CAEA,kBAAIggB,GACF,OAAOjtB,KAAK0D,KAAKoJ,QAAQO,UAAUC,KAAIC,IAAwB,IAAvB2M,SAAEA,EAAQrM,KAAEA,GAAMN;AACxD,MAAO,CAAE2M,WAAUrM,OAAM,GAE7B,CAESuY,cACHpmB,KAAK4Q,SAASG,mBACX/Q,KAAK0O,OAAOC,aAAa,iBAElC,CAEA,WAAesC,GACb,MACE/K,MAAMkH,MAAEA,UACApN,KAAK4jB,OAAOI,MAAM,CAC1BA,MAAOgJ,KAGHC,eAAEA,EAAcjgB,MAAEA,EAAKC,aAAEA,GAAiBjN;AAWhD,MAAO,CAAEspB,UAFS,CAAC,CAAC,QAAS,yBAET9lB,UATM,CACxB6J,UAAW4f,EACXjgB,QACAC,eACAG,MAAOA,EAAME,KAAIM,IAAA,IAAC5M,GAAEA,EAAEwM,MAAEA,GAAOI;AAAA,MAAM,CAAE5M,KAAIwM,QAAO,KAKrBjL,kCAAa6K,QAC9C,GACDxL,EAAAmD,EAAAtD,EAAAuD,UAAA,QA/DEC,UAAO,CAAAC,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAAC,YAAA,OAAAxD,EAAAkD,EAAAtD,EAAAuD,UAAA,UAEPC,UAAO,CAAAC,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAAC,YAAA,OAAAvD,EAAAiD,EAAAtD,EAAAuD,UAAA,YAEPC,UAAO,CAAAC,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAAC,YAAA,OAAAtD,EAAAgD,EAAAtD,EAAAuD,UAAA,YAEPC,UAAO,CAAAC,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAAC,YAAA,OAAA6J,EAAAnK,EAAAtD,EAAAuD,UAAA,UAEPC,UAAO,CAAAC,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAAC,YAAA,OAAA5D,EAAA,I;;;;;oMC5BV,EAAAkS,WAAQ;AAWR,MAAMuZ,GAA0B,EAAAvZ,WAAQ;AAQzB,MAAMwZ,UAAwBC,UAAQxtB,cAAAC,SAAAC,WAAAC,EAAAC,KAAA,oBAChC,EAAAqtB,YAASrtB,MAAM,KACzB,CACLgkB,MAAOkJ,MAET,CAEF,cAAII,GACF,IAAKttB,KAAKutB,iBAAiBrZ,QAAQhO,KACjC,MAAM,IAAIyF,MAAM;AAElB,OAAO3L,KAAKutB,iBAAiBrZ,QAAQhO,KAAKonB,WAAWhgB,KACnDC,IAAA,IAAC9D,aACCA,EAAYzI,GACZA,EAAEmoB,eACFA,EAAcE,YACdA,EAAWjX,KACXA,EAAIqD,eACJA,GACDlI;AAAA,MAAM,CACL9D,aAAcA,EAAa+S,cAC3Bxb,KACAmoB,iBACAE,cACAjX,OACAqD,iBACD,GAEL,CAEA,gBAAI+X,GACF,MAAMA,EAAextB,KAAKstB,WAAWG,IAAI;AAEzC,OAAOD,CACT,CAEA,YAAI7D,GAKF,OAAO3pB,KAAKwtB,aAAapb,IAC3B,CAKA2F,eAAetB,EAAgBhB,GAC7B,MAAMqC,EAAW9X,KAAKstB,WAAW3V,MAC9B6B,GAAMA,EAAEpH,OAASqE,GAAU+C,EAAE/D,iBAAmBA;AAGnD,OAAIqC,EAKK,CACLI,IAAI,EACJlX,GAAI8W,EAASuR,aAIV,CACLnR,IAAI,EACJC,aAAY,uBAAAhN,OAAyBsL,EAAOzH,UAAS,0BAAA7D,OAAyBsK,EAAezG,UAAS,sCAAA7D,OAAqCiO,OACzItB,GACD,KAEL,CAKA4V,sBAAsBjX,EAAgBoB,GACpC,MAAMC,EAAW9X,KAAKstB,WAAW3V,MAC9B6B,GAAMA,EAAEpH,OAASqE,GAAU+C,EAAE6P,cAAgBxR;AAGhD,OAAIC,EAKK,CACLI,IAAI,EACJlX,GAAI8W,EAASrC,gBAIV,CACLyC,IAAI,EACJC,aAAY,uBAAAhN,OAAyBsL,EAAOzH,UAAS,kBAAA7D,OAAiB0M,EAAO,sCAAA1M,OAAqCiO,OAChHtB,GACD,KAEL,CAKAG,yBACExB,EACAhB,GAEA,MAAMqC,EAAW9X,KAAKstB,WAAW3V,MAC9B6B,GAAMA,EAAEpH,OAASqE,GAAU+C,EAAE/D,iBAAmBA;AAGnD,OAAIqC,EACK,CACLI,IAAI,EACJlX,GAAI8W,EAAS9W,IAIV,CACLkX,IAAI,EACJC,aAAY,uBAAAhN,OAAyBsL,EAAOzH,UAAS,0BAAA7D,OAAyBsK,EAAezG,UAAS,sCAAA7D,OAAqCiO,OACzItB,GACD,KAEL,CAKAgV,sBAAsBrW,EAAgBoB,GACpC,MAAMC,EAAW9X,KAAKstB,WAAW3V,MAC9B6B,GAAMA,EAAEpH,OAASqE,GAAU+C,EAAE6P,cAAgBxR;AAGhD,OAAIC,EACK,CACLI,IAAI,EACJJ,YAIG,CACLI,IAAI,EACJC,aAAY,uBAAAhN,OAAyBsL,EAAOzH,UAAS,kBAAA7D,OAAiB0M,EAAO,sCAAA1M,OAAqCiO,OAChHtB,GACD,KAEL,CAEAoR,iBAAiBloB,GACf,MAAM8W,EAAW9X,KAAKstB,WAAW3V,MAAM6B,GAAMA,EAAExY,KAAOA;AACtD,OAAI8W,EACK,CACLI,IAAI,EACJJ,YAGG,CACLI,IAAI,EACJC,aAAY,2BAAAhN,OAA6BnK,EAAE,qCAAAmK,OAAoCiO,OAC7EtB,GACD,KAEL,CAEA,UAAM6P,SACE3nB,KAAKutB,iBAAiBrZ,QAAQuQ,QACtC,EACDpkB,EAAAC,QAAA6sB,CAAA,I;;;2cCjLD,EAAAQ,eAAW,MACT,EAAAC,sBACA,EAAAC,sBAAmB;AAGrB,MACEtsB,KAAK+R,YAAEA,EAAWsQ,OAAEA,IAClB3jB;AAEJ,IAAI6tB,EAAY;AAEZxa,IACFwa,EAAY,IAAIza,IAAIya,EAAWxa,GAAaH;AAG9C,MAAM4a,EAAkC,CAAC;AAEP1tB,EAAAC,SAAA0tB,EAAA,IAAAC,QAAAxsB,EAAnB,cAA4B2rB,UAMzCxtB,YAAYsuB,GAAqB,IAAAC,E;AAC/BtuB,MAAMquB,G,EAAWluB,K,EAAA,M,EAAAA,M,EAAA4B,I,sJAHnBwsB,EAAApuB,KAAAguB,OAAO;AAKL,MAAM5J,EAAQ,IAAIiK,gBAAc,CAC9BN,eASAvN,cAAe8N,UAAoB9N,gBAG/B+N,GAAW,EAAAC,kBAAe,CAC9BC,IAAKX,EACLY,YAAa,YAGTC,GAAY,EAAAjqB,YAAQ6I,IAAqC,IAApCqhB,cAAEA,EAAaC,aAAEA,GAActhB;AACpDqhB,GACFA,EAAclV,SAAQ9L,IAA2B,IAA1BK,QAAEA,KAAY5K,GAAOuK;AAC1C5N,KAAKkD,IAAIG,MAAM4K,EAAS5K,EAAM,IAI9BwrB,GACF7uB,KAAKkD,IAAIG,MAAMwrB,EACjB;AAIF,IAAIC;AAIJ,MAAMC,EAAY,IAAIC,YAAU,IAC3BF,EACHG,SAAU,CACRC,IAAK,EACLC,QAASA,CAAC9rB,EAAKiX,KAAoB,IAAA8U;AAAA,IAAlB5rB,UAAEA,GAAW8W;AAC5B,OACE,EAAA+U,iCAA8BhsB,MAC6B,QAA1D+rB,EAAE5rB,EAAmD4Q,aAAK,IAAAgb,IAAzDA,EACE/W,YAAW,M,iCAMvBiX,CAAKtB,EAALhuB,KAAe,IAAIuvB,eAAa,CAC9BnL,QACAoL,MAAM,EAAAxkB,QAAK,CAAC+jB,EAAWJ,EAAWJ,IAClCkB,SAAU,CACRxmB,QAAiC,QAA1BklB,EAAEvK,EAAO8L,yBAAiB,IAAAvB,QAGvC,CAEA,SAAI/J,GACF,OAAOuL,EAAK3B,EAALhuB,MAAaokB,KACtB,CAESvf,cACF8qB,EAAK3B,EAALhuB,MAAa4vB,YACpB,CAEA,YACMzb,CAGJkB,GACA,OAAOsa,EAAK3B,EAALhuB,MAAamU,OAAOkB,EAC7B,CAEA,WACM2O,CAGJ3O,GACA,OAAOsa,EAAK3B,EAALhuB,MAAagkB,MAAM3O,EAC5B,CAEA2P,WAGE3P,GACA,OAAOsa,EAAK3B,EAALhuB,MAAaglB,WAAW3P,EACjC,CAEA4O,cACE5O,GAEA,OAAOsa,EAAK3B,EAALhuB,MAAaikB,cAAc5O,EACpC,GACDzT,EAAAmD,EAAAtD,EAAAuD,UAAA,OAtGEC,WAAO,CAAAC,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAAC,YAAA,OAAAN,EAAAtD,EAAAuD,UAAA,UA0EP6qB,WAAOtqB,OAAAC,yBAAA/D,EAAAuD,UAAA,UAAAvD,EAAAuD,WAAAD,EAAAtD,EAAAuD,UAAA,SAQP6qB,WAAOtqB,OAAAC,yBAAA/D,EAAAuD,UAAA,SAAAvD,EAAAuD,WAAAvD,EAAA,I;;;;;;;2cC1HV,EAAAkS,WAAQ;AAgBR,MAAMmc,GAAiC,EAAAnc,WAAQ;AAcRtT,EAAAC,SAAAmB,EAAxB,cAAiC2rB,UAAQxtB,cAAAC,SAAAC,WAAA6B,EAAA3B,KAAA,WAAA4B,EAAA5B,MAAA2B,EAAA3B,KAAA,OAAA6B,EAAA7B,MAAA2B,EAAA3B,KAAA,SAAA8B,EAAA9B,MAAA2B,EAAA3B,KAAA,eAAA+B,EAAA/B,MAAAD,EAAAC,KAAA,2BAS5B,EAAAqtB,YAASrtB,MAAM,KAChC,CACLgkB,MAAO8L,MAET,CAEF,qBAAIte,GACF,IAAKxR,KAAK+vB,wBAAwB7b,QAAQhO,KACxC,MAAM,IAAIyF,MAAM;AAGlB,MAAMmB,EAAU9M,KAAK+vB,wBAAwB7b,QAAQhO,KAAK4G;AAE1D,GAA2B,0BAAvBA,EAAQwH,WAUZ,OAAOxH,EAAQgc;AATb9oB,KAAKsD,aAAa0sB,YAChB,+CACA,IAAIjkB,wBACF,qEAOR,CAEA,YAAI6E,GACF,IAAK5Q,KAAKwR,kBAAmB,MAAM,IAAI7F,MAAM;AAC7C,MAAO,CACLyG,KAAMpS,KAAKwR,kBAAkBY,KAC7BqD,eAAgBzV,KAAKwR,kBAAkBiE,eACvC1E,mBAAmB,EAEvB,CAEA,WAAM6W,SACE5nB,KAAK+vB,wBAAwB7b,QAAQuQ,QAC7C,CAEA,WAAM5H,SACE7c,KAAK+vB,wBAAwB7b,QAAQgR,SAC7C,CAEA/S,kBACE,IAAKnS,KAAKwR,kBACR,MAAM,IAAI7F,MAAM;AAElB,MAAMyG,EAAOpS,KAAKwR,kBAAkBY;AACpCpS,KAAK0O,OAAOC,aAAa,aAAcyD,EACzC,CAEAwU,gBAAgBP,GAAwB,IAAA4J;AACtC,GAA8B,UAA1B5J,EAAW6J,YACe,WAA1B7J,EAAW6J,YAEVlwB,KAAKwR,kBAEV,GAAyB,QAAzBye,EAAI5J,EAAW6J,kBAAU,IAAAD,GAArBA,EAAuBE,WAAW,eAAtC,CAAsD,IAAA7J;AACpD,MAAM8J,EAAe3jB,OAAoB,QAAd6Z,EAACD,EAAWG,UAAE,IAAAF,GAAQ,QAARA,EAAbA,EAAe9C,cAAM,IAAA8C,OAAA,EAArBA,EAAuB1f,OAAgB;AAC/D5G,KAAKwR,kBAAkBY,OAASge,GAC7BpwB,KAAK0O,OAAOwG,YAAY,aAGjC,MAEA,GAA8B,gBAA1BmR,EAAW6J,WAmBVlwB,KAAK0O,OAAOwG,YAAY;IAnB7B,CAA6C,IAAAqR,EAAAO;AAC3C,MAAMuJ,EAAe5jB,OAAoB,QAAd8Z,EAACF,EAAWG,UAAE,IAAAD,GAAQ,QAARA,EAAbA,EAAe/C,cAAM,IAAA+C,OAAA,EAArBA,EAAuB3f,OAAgB,SAC7D0pB,EAA6B,QAAhBxJ,EAAGT,EAAWG,UAAE,IAAAM,GAAQ,QAARA,EAAbA,EAAetD,cAAM,IAAAsD,OAAA,EAArBA,EAAuBlgB,OAAiB,SAExD2pB,EAAoBvwB,KAAK8X,SAASC,eACtC/X,KAAKwR,kBAAkBY,KACvBpS,KAAKwR,kBAAkBiE;AAGzB,IAAK8a,EAAkBrY,GAAI,MAAM,IAAIvM,MAAM4kB,EAAkBpY;AAG3DnY,KAAKwR,kBAAkBY,OAASie,GAChCE,EAAkBvvB,KAAOsvB,GAEpBtwB,KAAK0O,OAAOwG,YAAY,aAGjC,CAEF,GACDtT,EAAAmD,EAAAtD,EAAAuD,UAAA,YA9FEC,UAAO,CAAAC,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAAC,YAAA,OAAAxD,EAAAkD,EAAAtD,EAAAuD,UAAA,QAEPC,UAAO,CAAAC,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAAC,YAAA,OAAAvD,EAAAiD,EAAAtD,EAAAuD,UAAA,UAEPC,UAAO,CAAAC,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAAC,YAAA,OAAAtD,EAAAgD,EAAAtD,EAAAuD,UAAA,gBAEPC,UAAO,CAAAC,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAAC,YAAA,OAAA5D,EAAA,I;;;;;;;;ACvCH,MAAM+uB,EAAiCnwB,EAAAmwB,mCAAG,EAAA7c,WAAQ,2RAa5C8c,EAA0CpwB,EAAAowB,4CAAG,EAAA9c,WACxD;AAcmCtT,EAAAC,SAAAmB,EAAtB,cAA+B2rB,UAAQxtB,cAAAC,SAAAC,WAAA6B,EAAA3B,KAAA,WAAA4B,EAAA5B,MAAA2B,EAAA3B,KAAA,OAAA6B,EAAA7B,MAAA2B,EAAA3B,KAAA,SAAA8B,EAAA9B,MAAA2B,EAAA3B,KAAA,UAAA+B,EAAA/B,MAAAD,EAAAC,KAAA,6BASxB,EAAA4T,eAC1B5T,KACAwwB,IACDzwB,EAAAC,KAAA,sCAEoC,EAAA4T,eACnC5T,KACAywB,GACD,CAED,gBAAI3nB,GACF,OAAO9I,KAAK8D,SAAS4jB,UAAU,gBACjC,CAEAte,SACMpJ,KAAK8I,eACP9I,KAAKiJ,SAAU,EAEnB,CAEAE,UACMnJ,KAAK8I,eACP9I,KAAKiJ,SAAU,EAEnB,CAEA,uBAAMwP,CAAkBrG,EAAcqD,GAChCzV,KAAKiJ,gBACDjJ,KAAK0wB,0BAA0Bxc,QAAQC,OAAO,CAClD3Q,UAAW,CACT4Q,MAAO,CACLhC,OACAqD,qBAIDzV,KAAK0O,OAAOwG,YAAY,KAEjC,CAEA,gCAAMqD,GACAvY,KAAKiJ,gBACDjJ,KAAK2wB,mCAAmCzc,QAAQC,OAAO,CAAC,GACzDnU,KAAK0O,OAAOwG,YAAY,KAEjC,GACDtT,EAAAmD,EAAAtD,EAAAuD,UAAA,YAtDEC,UAAO,CAAAC,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAAC,YAAA,OAAAxD,EAAAkD,EAAAtD,EAAAuD,UAAA,QAEPC,UAAO,CAAAC,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAAC,YAAA,OAAAvD,EAAAiD,EAAAtD,EAAAuD,UAAA,UAEPC,UAAO,CAAAC,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAAC,YAAA,OAAAtD,EAAAgD,EAAAtD,EAAAuD,UAAA,WAEPoB,WAAO,CAAAlB,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAAC,YAAA,kBAAW,CAAK,IAAA5D,EAAA,I;;;AC/BnB,MAAMsK,UAA8BJ,MACzC/L,YAAYqO,GACVpO,MAAMoO,GACNjO,KAAK2C,KAAO,uBACd,EACDtC,EAAA0L;AAEuC1L,EAAAC,SAAAmB,EAAzB,cAAkC2rB,UAAQxtB,cAAAC,SAAAC,WAAA6B,EAAA3B,KAAA,YAAA4B,EAAA5B,MAAA2B,EAAA3B,KAAA,SAAA6B,EAAA7B,MAAA2B,EAAA3B,KAAA,MAAA8B,EAAA9B,KAAA,CAUvD4L,uBAAuBvI,GACrB,IAAIuU,EAAQ;AACRvU,aAAiB0I,IACnB6L,EAAQ,sBAEV5X,KAAKsJ,UAAUmF,OAAM,KACdzO,KAAK0O,OAAOC,aAAaiJ,EAAM,GAExC,CAaAzH,4BAA4B9M,GAC1B,IAAIV,EAAO,QACPsL,EAAU;AAEO,iBAAV5K,GAAgC,OAAVA,IAC3B,SAAUA,GAA+B,iBAAfA,EAAMV,OAClCA,EAAOU,EAAMV,MAGX,YAAaU,GAAkC,iBAAlBA,EAAM4K,UACrCA,EAAU5K,EAAM4K,UAIpBjO,KAAKgwB,YAAW,aAAA7kB,OAAcxI,EAAI,4BAAAwI,OAA2B8C,GAC/D,CAWA+hB,YAAY/hB,EAAiB5K,GAC3BrD,KAAK+mB,qBAAqB9Y,EAAS5K,GACnCrD,KAAK4L,uBAAuBvI,EAC9B,CAWAE,yBAAyBF,GACvB,IAAI4K;AAEFA,GADE,EAAA2iB,eAAYvtB,GACJA,EAAM4K,QACU,iBAAV5K,EACNA,EAEA,gBAEZrD,KAAKgwB,YAAW,wBAAA7kB,OAAyB8C,GAAW5K,EACtD,CAOA0jB,qBAAqB9Y,EAAiB5K,GAC/BA,GAAWA,aAAiBsI,OAEtB,EAAAklB,qBAAkBxtB,IAC3BrD,KAAKkD,IAAIG,MAAM4K,EAAS5K,GAFxBrD,KAAKkD,IAAIG,MAAM4K,EAInB,GACDrM,EAAAmD,EAAAtD,EAAAuD,UAAA,aA9FEC,UAAO,CAAAC,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAAC,YAAA,OAAAxD,EAAAkD,EAAAtD,EAAAuD,UAAA,UAEPC,UAAO,CAAAC,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAAC,YAAA,OAAAvD,EAAAiD,EAAAtD,EAAAuD,UAAA,OAEPC,UAAO,CAAAC,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAAC,YAAA,OAAA5D,EAAA,I;;;;;;;ACjB8BpB,EAAAC,SAAA6Q,GACrC,EAAAlM,YAASxD,EADG,cAAkC2rB,UAM/CxtB,YAAY2G,G;AACV1G,MAAM0G,G,EAAMvG,K,EAAA,O,EAAAA,M,EAAA4B,I,sJAAA7B,EAAAC,KAAA,iBAEZA,KAAKmC,OAAS,IAAI2uB,gBAAc,CAC9BC,SAAS,EAAAC,kBAAehxB,KAAK0D,KAAK2oB,QAClC4E,UAAW,SACXhxB,OAAQA,UAAOixB,cAAcC,QAEjC,CAEAxJ,KAAK2B,EAAuB9lB,GAC1B,OAAOxD,KAAKmC,OAAOwlB,KAAK2B,EAAW9lB,UAAa,CAAC,EACnD,G,EACD/B,EAAAuD,U,EAAA,O,EAAA,CAAAmM,G,EAAA,CAAAjM,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAAC,YAAA,M,yUAAAzD,O,wDAAAH;eAAA,I;AC1BD,SAAAE,EAAAiX,EAAA1N,EAAA2N,EAAAC,GAAAD,GAAAtT,OAAA2B,eAAA0R,EAAA1N,EAAA,CAAA/F,WAAA0T,EAAA1T,WAAAD,aAAA2T,EAAA3T,aAAAE,SAAAyT,EAAAzT,SAAAU,MAAA+S,EAAAxT,YAAAwT,EAAAxT,YAAA0T,KAAAD,QAAA,aAAA/Y,EAAA6Y,EAAAC,EAAAG,GAAA,OAAAH,EAAA,SAAAG,GAAA,IAAA9N,EAAA,SAAA8N,EAAAH,GAAA,oBAAAG,MAAA,OAAAA;AAAA,IAAAJ,EAAAI,EAAAC,OAAAC;AAAA,YAAAN,EAAA,KAAA1N,EAAA0N,EAAAG,KAAAC,EAAAH,GAAA;AAAA,oBAAA3N,EAAA,OAAAA;AAAA,UAAAiO,UAAA,kEAAAN,EAAAO,OAAA3M,QAAAuM,EAAA,CAAAK,CAAAL,EAAA;AAAA,uBAAA9N,MAAA,GAAAoO,CAAAT,MAAAD,EAAArT,OAAA2B,eAAA0R,EAAAC,EAAA,CAAA/S,MAAAkT,EAAA7T,YAAA,EAAAD,cAAA,EAAAE,UAAA,IAAAwT,EAAAC,GAAAG,EAAAJ,CAAA,UAAA7T,EAAAmG,EAAA0N,EAAAC,EAAAU,EAAAT,GAAA,IAAAU,EAAA;AAAA,OAAAjU,OAAAkU,KAAAF,GAAAG,SAAA,SAAAxO,GAAAsO,EAAAtO,GAAAqO,EAAArO,EAAA,IAAAsO,EAAArU,aAAAqU,EAAArU,WAAAqU,EAAAtU,eAAAsU,EAAAtU,cAAA,UAAAsU,KAAAnU,eAAAmU,EAAApU,UAAA,GAAAoU,EAAAX,EAAAnL,QAAAiM,UAAAC,QAAA,SAAAf,EAAAU,GAAA,OAAAA,EAAArO,EAAA0N,EAAAC,KAAA,GAAAW,GAAAV,QAAA,IAAAU,EAAAnU,cAAAmU,EAAA1T,MAAA0T,EAAAnU,YAAAmU,EAAAnU,YAAA0T,KAAAD,QAAA,EAAAU,EAAAnU,iBAAA,YAAAmU,EAAAnU,aAAAE,OAAA2B,eAAAgE,EAAA0N,EAAAY,GAAA,MAAAA,CAAA,C;AA+BqCnZ,EAAAC,SAAAmB,EAAtB,cAA+B2rB,UAa5C,gBAAIre,GAAe,IAAAqiB;AACjB,OAAwC,QAAxCA,EAAOnxB,UAAOsB,IAAI+H,UAAUyF,oBAAY,IAAAqiB,IAAI,CAC9C,CAKA,aAAIC,GAAY,IAAAC;AACd,OAAoC,QAApCA,EAAOrxB,UAAOsB,IAAI+H,UAAUioB,gBAAQ,IAAAD,IAAI,CAC1C,CAKA,cAAIE,GAAa,IAAAC;AACf,OAAqC,QAArCA,EAAOxxB,UAAOsB,IAAI+H,UAAUooB,iBAAS,IAAAD,IAAI,CAC3C,CAEA7xB,YAAY2G,GACV1G,MAAM0G,GAAM5E,EAAA3B,KAAA,SAAA4B,EAAA5B,MA7Bd2B,EAAA3B,KAAA,YAAA6B,EAAA7B,MAAAD,EAAAC,KAAA,wBAKwBmqB,SAASwH,qBAAqB,0BAAwB5xB,EAAAC,KAAA,eAoG/D4xB,IAQYA,EAAoBC,WACO,kBAA5B,EAAAC,4BACtB9xB,KAAKuJ,QACP,IAtFA+I,OAAOyf,iBAAiB,WAAY/xB,KAAKgyB,YAC3C,CAESntB,cACPyN,OAAO2f,oBAAoB,WAAYjyB,KAAKgyB,aAC5CnyB,MAAMgF,aACR,CAaA4J,MAAMyjB,EAAiBX,GACrBA,EAAWA,UAAYvxB,KAAKqxB,UAC5BrxB,KAAKmyB,WAAY,EACbD,GAAMX,EAAW,GACnB,EAAAa,SAAMF,EAAIX,GACDW,GACTA,GAEJ,CAQA3oB,OAAOmoB,IACLA,EAAYA,UAAa1xB,KAAKwxB,YAEd,GACd,EAAAY,UAAM,KACJpyB,KAAKqyB,gBAAgB,GACpBX,GAEH1xB,KAAKqyB,gBAET,CAEAA,iBACEryB,KAAKmyB,WAAY;AAEjB,IAAK,MAAMG,KAAwBtyB,KAAKuyB,sBAClCD,aAAgC5qB,aAClC1H,KAAKwyB,2BAA2BF,EAGtC,CAKAE,2BAA2BF,GACzBA,EAAqBP,iBACnB,iBACA,KACEO,EAAqBG,QAAQ,GAE/B,CAAEC,MAAM,IAEVJ,EAAqBK,MAAMC,YACzB,aAAY,WAAAznB,OACDnL,KAAK+O,aAAaC,UAAS,OAExCsjB,EAAqBK,MAAMC,YAAY,UAAW,IACpD,GAeDhxB,EAAAmD,EAAAtD,EAAAuD,UAAA,UAxHEC,UAAO,CAAAC,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAAC,YAAA,OAAAxD,EAAAkD,EAAAtD,EAAAuD,UAAA,aAKPoB,WAAO,CAAAlB,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAAC,YAAA,kBAAa,CAAI,IAAA5D,EAAA;;;ACtBgBpB,EAAAC,SAAA6Q,GACxC,EAAAlM,WAAQ,oBAAmBxD,EADf,cAAqC2rB,UAAQxtB,c;AAAAC,SAAAC,W,EAAAE,K,EAAA,kB,EAAAA,M,EAAA4B,I,qJAAA,CAM1D,WAAMoR,CAAMxQ,GACV,IACE,MAAM0Z,EAAiB,IAAI7I,IAAI7Q,EAAK0Z;AACpC,GAAIlc,KAAK6yB,gBAAgBC,eAKvB,OAHA5W,EAAe6W,aAAapqB,IAAI,UAAW,SAE3C2J,OAAO0gB,KAAK9W,EAAe/I,KAAM;MAI7BnT,KAAKizB,YAAY/W,EAAe/I,KACxC,CAAE,MAAO9P,GACP,MAAM,EAAA0Y,gBAAa,cAAe1Y,EACpC,CACF,CAEA4vB,YAAYhgB,GACV,OAAO,EAAAigB,WAAWjgB,EACpB,G,EACDxR,EAAAuD,U,EAAA,kB,EAAA,CAAAmM,G,EAAA,CAAAjM,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAAC,YAAA,M,yUAAAzD,O,wDAAAH;eAAA,I;;;;;;;2cC3BD,EAAAkS,WAAQ;AAaR,MAAMwf,GAA+B,EAAAxf,WAAQ;AAaTtT,EAAAC,SAAAmB,EAArB,cAA8B2rB,UAAQxtB,cAAAC,SAAAC,WAAA6B,EAAA3B,KAAA,WAAA4B,EAAA5B,MAAA2B,EAAA3B,KAAA,OAAA6B,EAAA7B,MAAA2B,EAAA3B,KAAA,eAAA8B,EAAA9B,MAAAD,EAAAC,KAAA,yBAO3B,EAAAqtB,YAASrtB,MAAM,KAC9B,CACLgkB,MAAOmP,MAET,CAEF,gBAAI3F,GACF,MAAMA,aAAEA,GAAiBxtB,KAAK8X;AAC9B,OAAO0V,CACT,CAEA,uBAAI3c,GACF,IAAK7Q,KAAKozB,sBAAsBlf,QAAQhO,KACtC,MAAM,IAAIyF,MAAM;AAGlB,OAAQ3L,KAAKozB,sBAAsBlf,QAAQhO,KAAK4G,QAAQwH,YACtD,IAAK,UACH,OAAOtU,KAAKozB,sBAAsBlf,QAAQhO,KAAK4G,QAAQ8D,SAASyiB;AAElE,IAAK,wBAWH,MAVArzB,KAAKsD,aAAa0sB,YAChB,4CACA,IAAIjkB,wBACF,oEAOE,IAAIunB;AAEZ,QASE,MARAtzB,KAAKsD,aAAa0sB,YAChB,2DACA,IAAIrkB,MAEF,6DAAAR,OAC6DnL,KAAKozB,sBAAsBlf,QAAQhO,KAAK4G,QAAQwH,cAG3G,IAAIgf,qBAEhB,CAEA,sBAAI7gB,GACF,MAAM8gB,EAAevzB,KAAK6Q,oBAAoBuB,MACxCuX,SAAEA,GAAa3pB,KAAK8X;AAE1B,OAAO0b,KAAKC,IAAIF,EAAc5J,EAChC,CAEA,sBAAIpV,GACF,OAAO,EAAAA,sBAAmBvU,KAAK6Q,oBAAqB7Q,KAAKwtB,aAC3D,CAEA,uBAAIhZ,GACF,OAAOxU,KAAK0D,KAAKoJ,QAAQ4mB,gBAC3B,CAEA,qBAAI3iB,GACF,OAAO/Q,KAAK6Q,oBAAoBE,iBAClC,CAEA2a,YAAYjV,GACV,OACEA,GAAUzW,KAAKyS,qBACf,EAAAkhB,qBAAkB3zB,KAAK6Q,oBAAqB4F,GAAQyB,EAExD,CAEA0U,aAAanW,EAAgBoB,GAC3B,MAAM+b,EAAoB5zB,KAAK8X,SAAS4V,sBACtCjX,EACAoB;AAGF,GAAI+b,EAAkB1b,GAAI,CAMxB,OALqB,EAAA2b,wBACnB7zB,KAAK6Q,oBACL4F,EACAmd,EAAkB5yB,IAEAkX,EACtB,CACA,OAAO,CACT,CAEA,WAAM0P,SACE5nB,KAAKozB,sBAAsBlf,QAAQuQ,QAC3C,CAEA,WAAM5H,SACE7c,KAAKozB,sBAAsBlf,QAAQgR,SAC3C,GACDtjB,EAAAmD,EAAAtD,EAAAuD,UAAA,YAtGEC,UAAO,CAAAC,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAAC,YAAA,OAAAxD,EAAAkD,EAAAtD,EAAAuD,UAAA,QAEPC,UAAO,CAAAC,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAAC,YAAA,OAAAvD,EAAAiD,EAAAtD,EAAAuD,UAAA,gBAEPC,UAAO,CAAAC,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAAC,YAAA,OAAA5D,EAAA,I;;;;;;;ufC5BV,EAAAkS,WAAQ;AAoBR,MAAMmgB,GAA4B,EAAAngB,WAAQ,iNAc7BogB,EAAyC1zB,EAAA0zB,2CAAG,EAAApgB,WAAQ;AAehCtT,EAAAC,SAAAmB,EAAlB,cAA2B2rB,UAAQxtB,cAAAC,SAAAC,WAAA6B,EAAA3B,KAAA,WAAA4B,EAAA5B,MAAA2B,EAAA3B,KAAA,MAAA6B,EAAA7B,MAAA2B,EAAA3B,KAAA,SAAA8B,EAAA9B,MAAA2B,EAAA3B,KAAA,OAAA+B,EAAA/B,MAAA2B,EAAA3B,KAAA,YAAAkP,EAAAlP,MAAA2B,EAAA3B,KAAA,eAAAmP,EAAAnP,MAAA2B,EAAA3B,KAAA,iBAAA6V,EAAA7V,MAAAD,EAAAC,KAAA,kBAAAD,EAAAC,KAAA,sBAiB3B,EAAAqtB,YAASrtB,MAAM,KAC3B,CACLgkB,MAAO8P,OAET/zB,EAAAC,KAAA,sCAEmC,EAAA4T,eACnC5T,KACA+zB,GACD,CAED,gBAAIxkB,GAAe,IAAAykB,EAAAC,EAAAC;AACjB,OAA4C,QAA5CF,EAAQh0B,KAAKm0B,mBAAmBjgB,QAAQhO,YAAI,IAAA8tB,OAAA,EAApCA,EAAsClnB,QAAQwH,YACpD,IAAK,UACH,OAAOtU,KAAKm0B,mBAAmBjgB,QAAQhO,KAAK4G,QAAQwC;AAEtD,IAAK,wBAOH,YANAtP,KAAKsD,aAAa0sB,YAChB,yCACA,IAAIjkB,wBACF;AAKN,QAME,YALA/L,KAAKkD,IAAIG,MAEP,0DAAA8H,OACkH,QADlH8oB,EAC8F,QAD9FC,EAC0Dl0B,KAAKm0B,mBAAmBjgB,QAAQhO,YAAI,IAAAguB,OAAA,EAApCA,EAAsCpnB,QAAQwH,kBAAU,IAAA2f,IAAI,KAI9H,CAEA,0BAAIG,GACF,IAAKp0B,KAAKuP,aAAc;AAExB,MAAM8kB,EAAcr0B,KAAKuP,aAAa8kB;AACtC,GAAIA,EAAYC,SAAWzU,kBAAgB0U,YAEV,kBAA3BF,EAAY/f,WAAgC,CAC9C,MAAMlC,EAAOiiB,EAAYjiB,KACnBqD,EAAiB4e,EAAYG,gBAAkB,EAC/C/P,EAASzkB,KAAK8X,SAASC,eAAe3F,EAAMqD;AAElD,GAAIgP,EAAOvM,GACT,MAAkB,UAAduM,EAAOzjB,GAEF,CAAC,oBAAqBoR,GAExB,CAAC,QAASA,EAAMqS,EAAOzjB;AAE9BhB,KAAKkD,IAAIG,MAAMohB,EAAOtM,aAE1B,CAGJ,CAEA,4BAAIxI,GAA2B,IAAA8kB;AAC7B,MAAMJ,EAA+B,QAApBI,EAAGz0B,KAAKuP,oBAAY,IAAAklB,OAAA,EAAjBA,EAAmBJ;AACvC,IAAIA,aAAW,EAAXA,EAAaC,UAAWzU,kBAAgB6U,kBAC1C,OAAOL,CAGX,CAEA,+BAAMxkB,CACJuE,GAEA,MAAMJ,QACEhU,KAAK20B,mCAAmCzgB,QAAQC,OAAO,CAC3D3Q,UAAW,CACT4Q;AAGN,IAAKJ,EACH,MAAM,IAAIrI,MACR;AAIJ,OAAQqI,EAAS4gB,oCAAoCtgB,YACnD,IAAK,wBACH,MAAM,IAAIvI,wBACR;AAGJ,IAAK,4CACH;AAEF,QACE/L,KAAKkD,IAAIG,MAEP,+EAAA8H,OAC+E6I,EAAS4gB,oCAAoCtgB,aAGpI,CAEArE,kBAEE,GADAjQ,KAAK0P,gBAAiB,EAClB1P,KAAK60B,QAAS,CAChB,MAAMA,QAAEA,GAAY70B;OACbA,KAAK60B,QACZA,GACF,CACF,CAEAplB,4BAA4BolB,GACtB70B,KAAK2P,0BACHklB,IAAS70B,KAAK60B,QAAUA,GAC5B70B,KAAKsJ,UAAUmF,QACfzO,KAAK0P,gBAAiB,GACbmlB,GACTA,GAEJ,CAEA,WAAMhY,SACE7c,KAAKm0B,mBAAmBjgB,QAAQgR,SACxC,CAEA,WAAM0C,SACE5nB,KAAKm0B,mBAAmBjgB,QAAQuQ,QACxC,GACD7iB,EAAAmD,EAAAtD,EAAAuD,UAAA,YA/IEC,WAAO,CAAAC,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAAC,YAAA,OAAAxD,EAAAkD,EAAAtD,EAAAuD,UAAA,OAEPC,WAAO,CAAAC,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAAC,YAAA,OAAAvD,EAAAiD,EAAAtD,EAAAuD,UAAA,UAEPC,WAAO,CAAAC,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAAC,YAAA,OAAAtD,EAAAgD,EAAAtD,EAAAuD,UAAA,QAEPC,WAAO,CAAAC,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAAC,YAAA,OAAA6J,EAAAnK,EAAAtD,EAAAuD,UAAA,aAEPC,WAAO,CAAAC,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAAC,YAAA,OAAA8J,EAAApK,EAAAtD,EAAAuD,UAAA,gBAEPC,WAAO,CAAAC,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAAC,YAAA,OAAAwQ,EAAA9Q,EAAAtD,EAAAuD,UAAA,kBAEPoB,WAAO,CAAAlB,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAAC,YAAA,kBAAkB,CAAK,IAAA5D,EAAA,I;;;;;;ACtDlB,MAAMqzB,UAA4B1H,UAAQxtB,cAAAC,SAAAC,WAAAC,EAAAC,KAAA,0BACM+S,EAAS,CAEtE,wBAAMgiB,CAAmBhN,GACvB,MAAMiN,EAAoB5b,OAAO2O;AAEiB,IAAAkN,EAAAC;AAAlD,GAAIl1B,KAAKm1B,qBAAqBH,GAC5B,OAAqC,QAArCC,EAA8B,QAA9BC,EAAOl1B,KAAKo1B,0BAAkB,IAAAF,OAAA,EAAvBA,EAAyBG,aAAK,IAAAJ,IAAI;AAG3C,MAAM/uB,QAAalG,KAAKs1B;AAExB,IAAKt1B,KAAKu1B,sBAAsBrvB,EAAM8uB,GAEpC,OADAh1B,KAAKo1B,wBAAqBriB,EACnB;AAGT,MAAMyiB,EACuB,iBAApBtvB,EAAKuvB,WAA4C,IAAlBvvB,EAAKuvB,WAAoB;AAYjE,OAVIz1B,KAAK01B,iBAAiBF,GACxBx1B,KAAKo1B,mBAAqB,CACxBI,cACAzN,UAAWiN,EACXK,MAAOnvB,EAAKmvB,OAGdr1B,KAAKo1B,wBAAqBriB,EAGrB7M,EAAKmvB,KACd,CAEA,wBAAcC,GACZ,MAAMthB,QAAiB6I,MAAM5c,UAAO01B,eAAgB,CAClDjH,YAAa,UACbkH,QAAS,CACPC,OAAQ;AAIZ,IAAK7hB,EAASkE,GACZ,MAAM,IAAIvM,MAAK,4CAAAR,OAC+BiO,OAAOpF,EAASsgB;AAIhE,MAAMpuB,KAAEA,SAAgB8N,EAAS8hB;AACjC,OAAO5vB,CACT,CAEQivB,qBAAqBpN,GAC3B,MAAMqN,EAAqBp1B,KAAKo1B;AAEhC,QAAKA,IACDA,EAAmBrN,YAAcA,GAE9B/nB,KAAK01B,iBAAiBN,EAAmBI,aAClD,CAEQD,sBACNrvB,EACA8uB,GAEA,OAAOrJ,QACLzlB,GACwB,iBAAfA,EAAKmvB,OACZnvB,EAAKmvB,MAAMvyB,OAAS,GACD,YAAnBoD,EAAK6vB,WACL3c,OAAOlT,EAAK8vB,WAAahB,EAE/B,CAEQU,iBAAiBF,GACvB,OAAuB,OAAhBA,GAAwBA,EAAc1jB,KAAKE,MAhG9B,GAiGtB,EACD3R,EAAAC,QAAAw0B,CAAA,I;;;;;;;;AC3FqCz0B,EAAAC,SAAAmB,EAAvB,cAAgC2rB,UAAQxtB,cAAAC,SAAAC,WAAA6B,EAAA3B,KAAA,eAAA4B,EAAA5B,MAAA2B,EAAA3B,KAAA,OAAA6B,EAAA7B,MAAAD,EAAAC,KAAA,kBAKnCi2B,cAAUl2B,EAAAC,KAAA,eAEd,GAAKD,EAAAC,KAAA,iBAInB4nB,QACE,GAAI5nB,KAAKk2B,YAAa;AAEtB,MAAMnO,EAAY3O,OAAQpZ,KAAK0D,KAAKoJ,QAA4B9L;AAEhEhB,KAAKm2B,OAAS,IAAIn2B,KAAKo2B,gBAAgBrO,EAAW,CAChDsO,QAAS,eACTC,YAAa,CACXC,QAASv2B,KAAKu2B,UACdC,gBAAiBC,UAAY,IAAAC;AAC3B,OAA6D,QAA7DA,QAAc12B,KAAK22B,aAAa5B,mBAAmBhN,UAAU,IAAA2O,IAAK,EAAE,KAI1E12B,KAAKk2B,aAAc,CACrB,CAEA,gBAAM1O,CAAWhX,GAAoB,IAAAomB;AAC9BpmB,GAAcxQ,KAAKk2B,mBAEP,QAAjBU,EAAM52B,KAAKm2B,cAAM,IAAAS,OAAA,EAAXA,EAAaC,aAAarmB,GAClC,CAEQ+lB,UACN,SAAAprB,OAAUlL,UAAO62B,cAAa,0BAChC,GACDl1B,EAAAmD,EAAAtD,EAAAuD,UAAA,gBApCEC,UAAO,CAAAC,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAAC,YAAA,OAAAxD,EAAAkD,EAAAtD,EAAAuD,UAAA,QAEPC,UAAO,CAAAC,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAAC,YAAA,OAAA5D,EAAA,I;;;;;;;;ACIV,MACEF,KAAKw1B,SAAEA,IACL92B,WAEJ,EAAA0T,WAAQ,uJAWR,EAAAA,WAAQ,kNAcR,EAAAA,WAAQ,wIAUR,EAAAA,WAAQ,wGAQR,EAAAA,WAAQ,sGASR,EAAAA,WAAQ;AAoBR,MAAMqjB,GAAuB,EAAArjB,WAAQ;AAiBLtT,EAAAC,SAAAmB,EAAjB,cAA0B2rB,UAAQxtB,cAAAC,SAAAC,WAAA6B,EAAA3B,KAAA,MAAA4B,EAAA5B,MAAA2B,EAAA3B,KAAA,WAAA6B,EAAA7B,MAAA2B,EAAA3B,KAAA,eAAA8B,EAAA9B,MAO/C2B,EAAA3B,KAAA,0BAAA+B,EAAA/B,MAAAD,EAAAC,KAAA,iBAMgB,EAAAqtB,YAASrtB,MAAM,KACtB,CACLgkB,MAAOgT,MAET,CAEF,WAAMpP,SACE5nB,KAAKi3B,cAAc/iB,QAAQuQ,eAC3BzkB,KAAKk3B,oBACXl3B,KAAK2D,wBAA0B3D,KAAK8M,QAAQnJ,wBAC5C3D,KAAKkD,IAAIi0B,UAAU,CAAEn2B,GAAIhB,KAAK8M,QAAQ9L,IACxC,CAEA,uBAAMk2B,GACJ,MAAMljB,QAAiBojB,UAAGC,KAAK,2BAA4B,CACzDvB,KAAM,CACJwB,QAAS,CACPC,aAAcv3B,KAAK8M,QAAQ9L,KAG/Bw2B,MAAO,CACLC,MAAO,EACPC,QAAS,CAAC,YAIRC,MAAEA,SAAgB3jB,EAAS8hB;MAE3B91B,KAAK8D,SAAS8jB,MAAM,CACxBnlB,OAAQQ,QACR20B,UAAU,EAAAC,+BAA4BF,IAE1C,CAEA,WAAM9a,SACE7c,KAAKi3B,cAAc/iB,QAAQgR,SACnC,CAEA6E,SAAmC,IAA5BjX,EAAQhT,UAAAgD,OAAA,QAAAiQ,IAAAjT,UAAA,GAAAA,UAAA,GAAGwS,OAAOQ;AACnBikB,IAAUjkB,EAASK,KAAO4jB,EAChC,CAEA,WAAIjqB,GACF,IAAK9M,KAAKi3B,cAAc/iB,QAAQhO,KAC9B,MAAM,IAAIyF,MAAM;AAGlB,OAAQ3L,KAAKi3B,cAAc/iB,QAAQhO,KAAK4G,QAAQwH,YAC9C,IAAK,UACH,OAAOtU,KAAKi3B,cAAc/iB,QAAQhO,KAAK4G;AAEzC,IAAK,wBAWH,MAVA9M,KAAKsD,aAAa0sB,YAChB,wCACA,IAAIjkB,wBACF,4DAOE,IAAIunB;AAEZ,QACE,MAAM,IAAI3nB,MAER,qDAAAR,OACqDnL,KAAKi3B,cAAc/iB,QAAQhO,KAAK4G,QAAQwH,aAGrG,CAEA,UAAI+X,GACF,MAAMyL,EAAgB93B,KAAK8D,SAAS4jB,UAAU;AAE9C,OAAI1nB,KAAK8M,QAAQuf,SAAW7M,SAAOuY,IAAOD,EAInC93B,KAAK8M,QAAQuf,OAAO7P,cAHlB,IAIX,GACD5a,EAAAmD,EAAAtD,EAAAuD,UAAA,OA9FEC,UAAO,CAAAC,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAAC,YAAA,OAAAxD,EAAAkD,EAAAtD,EAAAuD,UAAA,YAEPC,UAAO,CAAAC,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAAC,YAAA,OAAAvD,EAAAiD,EAAAtD,EAAAuD,UAAA,gBAEPC,UAAO,CAAAC,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAAC,YAAA,OAAAtD,EAAAgD,EAAAtD,EAAAuD,UAAA,2BAMPoB,WAAO,CAAAlB,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAAC,YAAA,kBAA2B,CAAK,IAAA5D,EAAA,I;;;;;;;;;;;;;;;;;;ACzH1C,MAAMu2B,EAAgBr1B,GAAkB,WAAWs1B,KAAKt1B,UAAQ,IAC1Du1B,EAAqBv1B,GAAkB,iBAAiBs1B,KAAKt1B,UAAQ;AAO3EtC,EAAAqoB,aAF6B/lB,GAAiB,uBAAuBs1B,KAAKt1B;AAK1E,MAAMw1B,EAAgBA,CAAC3R,EAAYxb,IAAkB,CAACA,EAAMwb,GAAI4R,MAAMJ,GAKhEK,EAAqBA,CAAC7R,EAAYxb,IAAkB,CAACA,EAAMwb,GAAI4R,MAAMF;AAML73B,EAAAooB,oBADnCA,CAACjC,EAAYxb,IAC9C,CAACmtB,EAAeE,GAAoB1qB,MAAM2qB,GAAUA,EAAM9R,EAAIxb,IAAM,I,2ICT/D,WACL,IAAKsH,OAAOimB,OAAQ;AAEpB,MAAMC,EAAalmB,OAAOimB;AAE1B,IACE,MAAME,EAAUC,EAAgBC,KAAK/wB,UAAUgxB;AAIlC,IAAAC;AAAb,GAFAL,EAAWM,yBAAyB,qBAAiC,MAAXL,GAEtDA,EACFD,EAAWM,yBAAyB,iBAAkBL,EAAQ,IAC9DD,EAAWM,yBAAyB,oBAAqBL,EAAQ,IACjED,EAAWM,yBACT,mBACU,QADQD,EAClBJ,EAAQ,UAAE,IAAAI,IAAI,UAGpB,CAAE,MAAOx1B,GACPJ,QAAQI,MAAM,sDAAuDA,EACvE,CACF;AA1BA,MAAMq1B,EACJ,2DAyBD,I,qICGc,SAAqBK,GAAsC,IAA1B/mB,EAAGlS,UAAAgD,OAAA,QAAAiQ,IAAAjT,UAAA,GAAAA,UAAA,GAAGgS,KAAKE;AACzD,MAAMgnB,EAAOD,EAAKE,UAAYjnB;AAE9B,GAAIgnB,GAAQE,EACV,SAAA/tB,OAAUguB,EAAcH,EAAM,SAAS5tB,WAAU;AAEnD,GAAI4tB,EAAOE,GAAiBF,GAAQI,EAClC,MAAO;AAET,GAAIJ,EAAOI,GAAmBJ,GAAQK,EACpC,SAAAluB,OAAUguB,EAAcH,EAAM,UAAU5tB,WAAU;AAEpD,GAAI4tB,EAAOK,GAAkBL,GAAQM,EACnC,MAAO;AAET,GAAIN,EAAOM,GAAiBN,GAAQO,EAClC,SAAApuB,OAAUguB,EAAcH,EAAM,QAAQ5tB,WAAU;AAElD,GAAI4tB,EAAOO,GAAgBP,GAAQQ,EACjC,MAAO;AAET,GAAIR,EAAOQ,GAAkBR,GAAQS,EACnC,SAAAtuB,OAAUguB,EAAcH,EAAM,SAAS5tB,WAAU;AAEnD,GAAI4tB,EAAOS,GAAiBT,GAAQU,EAClC,MAAO;AAET,GAAIV,EAAOU,GAAoBV,GAAQW,EACrC,SAAAxuB,OAAUguB,EAAcH,EAAM,WAAW5tB,WAAU;AAErD,GAAI4tB,EAAOW,GAAmBX,GAAQY,EACpC,MAAO;AAET,GAAIZ,EAAOY,GAAoBZ,EAAO,EACpC,MAAO;AAET,GAAIA,GAAQ,GAAKA,EAAOa,EACtB,MAAO;AAET,GAAIb,GAAQa,GAAyBb,EAAOc,EAC1C,MAAO;AAET,GAAId,GAAQc,GAAwBd,EAAOe,EACzC,YAAA5uB,OAAaguB,EAAcH,EAAM,WAAW5tB,WAAU;AAExD,GAAI4tB,GAAQe,GAAyBf,EAAOgB,EAC1C,MAAO;AAET,GAAIhB,GAAQgB,GAAsBhB,EAAOiB,EACvC,YAAA9uB,OAAaguB,EAAcH,EAAM,SAAS5tB,WAAU;AAEtD,GAAI4tB,GAAQiB,GAAuBjB,EAAOkB,EACxC,MAAO;AAET,GAAIlB,GAAQkB,GAAqBlB,EAAOmB,EACtC,YAAAhvB,OAAaguB,EAAcH,EAAM,QAAQ5tB,WAAU;AAErD,GAAI4tB,GAAQmB,GAAsBnB,EAAOoB,EACvC,MAAO;AAET,GAAIpB,GAAQoB,GAAuBpB,EAAOqB,EACxC,YAAAlvB,OAAaguB,EAAcH,EAAM,UAAU5tB,WAAU;AAEvD,GAAI4tB,GAAQqB,GAAwBrB,EAAOsB,EACzC,MAAO;AAET,GAAItB,GAAQsB,EACV,YAAAnvB,OAAaguB,EAAcH,EAAM,SAAS5tB,WAAU;AAEtD,MAAO,EACT;AA3GA,MAAMmvB,IAAEA,EAAGC,KAAEA,EAAIC,MAAEA,GAAUjH,KAWvBkH,EAAaC,IACbC,EAAwB,GAAbF,EACXG,EAAqB,GAAXD,EACVE,EAAsB,GAAVD,EACZE,EAAqB,IAAVF,EACXhB,EAAwBc,KACxBb,EAAuBa,IACvBZ,EAAqC,GAAbW,EACxBV,EAAkC,GAAbU,EACrBT,EAAiC,GAAXW,EACtBV,EAA+B,GAAXU,EACpBT,EAA+B,GAAVU,EACrBT,EAAgC,GAAVS,EACtBR,EAAiC,IAAVQ,EACvBP,EAA+B,IAAVO,EACrBjB,GAA4C,EAAzBC,EACnBF,GAA0C,EAAxBG,EAClBJ,GAA4C,EAAzBK,EACnBN,GAAsC,EAAtBO,EAChBR,GAAwC,EAAvBS,EACjBV,GAAoC,EAArBW,EACfZ,GAAsC,EAAtBa,EAChBd,GAAwC,EAAvBe,EACjBhB,GAA0C,EAAxBiB,EAClBnB,GAAsC,EAAtBoB;AA4EtB,SAASnB,EAAc6B,EAAYC,GACjC,MAQMC,EAAYX,EAAIS,EARG,CACvBG,QAAST,EACTU,MAAOR,EACPS,KAAMR,EACNS,OAAQR,EACRS,MAAOR,GACPE;AAGF,OAAOC,EAAY,EAAIV,EAAKU,GAAaT,EAAMS,EACjD,CAAC;;;;;;2OCjEM,SAAqBt0B,GAC1B,OAAO,SAAUa,EAAQ+zB,GACT/0B,EAASgB,GACjBd,QAAQgC,IAAI6yB,EAAa50B,EACjC,CACF,E,oBAEO,WACL,OAAO,SAAUa,EAAQ+zB,GACT/0B,EAASgB,GACjBJ,cAAc5C,IAAI+2B,EAC1B,CACF,E,aArCO,WACL,OAAO,SAAU/zB,EAAQ+zB,GACT/0B,EAASgB,GACjBR,OAAOxC,IAAI+2B,EACnB,CACF,E;AAqCO,MAAMC,EAAa77B,cACxBG,EAAAC,KAAA,SAGS,IAAIoE,KAEbrE,EAAAC,KAAA,UAGU,IAAIuI,KAEdxI,EAAAC,KAAA,gBAGgB,IAAIoE,IAAsB,EAG5C/D,EAAAo7B;AACO,MAAMC,EAAkBr7B,EAAAq7B,mBAAGziB,OAAO0iB,IAAI;AAQtC,SAASl1B,EAAS6wB,GACvB,MAAM9wB,EAAS8wB,EAAyCoE;AAExD,OAAIl1B,aAAiBi1B,EACZj1B,EAGFo1B,EAAStE,EAAS,IAAImE,EAC/B,CASO,SAASG,EAAStE,EAAkB9wB,GAMzC,OADAjB,OAAOs2B,OAAOvE,EAAS,CAAEoE,CAACA,GAAqBl1B,IACxCA,CACT,CAAC,I,6QCIM,SACL7D,EACAU,GAES,IADTy4B,EAAmCh8B,UAAAgD,OAAA,QAAAiQ,IAAAjT,UAAA,GAAAA,UAAA,GAAGkR;AAEtC,GAAI8qB,EAAwBz4B,GAC1B,OAAOA;AAET,OAAO,IAAI04B,EAAap5B,EAAMU,EAChC,E,oBApDO,SAASwtB,EAAkBxtB,GAChC,GAAIA,aAAiB04B,GAAgBnL,EAAYvtB,EAAM24B,OACrD,OAAOnL,EAAkBxtB,EAAM24B;AAEjC,OACGC,EAAa54B,KACb64B,EAAqB74B,KACrB84B,EAAwB94B,EAE7B,E,sDAuEO,SAAuCA,GAC5C,OACE,EAAA+4B,WAAe/4B,KAjBIg5B,EAkBJh5B,IAhBbg5B,GACa,iBAARA,GACPA,EAAIC,eAAe,eACoC,iBAA/CD,EAAgCE,YActC,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAK7rB,SAASrN,EAAMk5B;AAnBzD,IAAuBF,CAqBvB,E;AA3JA,MAAMN,UAAqBpwB,MACzB/L,YAAY+C,EAAcU,GACxB,IAAI4K,EACA+tB;AAEApL,EAAYvtB,IACd4K,EAAU5K,EAAM4K,QAChB+tB,EAAQ34B,GAER4K,EAD0B,iBAAV5K,EACNA,EAEH,uBAAA8H,OAA0BiO,OAAO/V,IAG1CxD,MAAMoO,EAAS,CAAE+tB,UACjBh8B,KAAK2C,KAAOA,CACd,EASK,MAAMqO,EAAmC3N,GAC7CA,aAAiBm5B,aAAuC,MAA1Bn5B,EAAM2Q,SAASsgB,QAC9CjxB,aAAiB0I;AAAqB1L,EAAA2Q;AAEjC,MAAMirB,EAA4B54B,IAAU,EAAA+4B,WAAe/4B;AAAMhD,EAAA47B;AAGX57B,EAAAo8B,kBADfp5B,GAC5CA,aAAiBm5B,aAAuC,MAA1Bn5B,EAAM2Q,SAASsgB;AAK/C,SAASoI,EAAar5B,GACpB,OAAiB,OAAVA,GAAmC,iBAAVA,GAAsB,SAAUA,CAClE,CAJ4DhD,EAAAs8B,cADlBt5B,GACxCA,aAAiBm5B,aAAan5B,EAAM2Q,SAASsgB,QAAU;AASzDj0B,EAAAu8B,iBAH6Cv5B,GAC3Cq5B,EAAar5B,IAAyB,iBAAfA,EAAMV;AAOxB,MAAMu5B,EAAoC74B,GAC/CA,aAAiBw5B,sBAChBH,EAAar5B,IAAyB,uBAAfA,EAAMV;AAA8BtC,EAAA67B;AAEvD,MAAMC,EAAuC94B,GAClDA,aAAiB0I;AAqEZ,SAAS6kB,EAAYvtB,GAC1B,MACmB,iBAAVA,GACG,OAAVA,GACA,SAAUA,GACV,YAAaA,GACS,iBAAfA,EAAMV,MACY,iBAAlBU,EAAM4K,OAEjB,CA5EA5N,EAAA87B;AAyGO,MAAM7I,UAA2B3nB,MACtC/L,cACEC,MAAM,qBACR,EACDQ,EAAAizB,oBAAA,I,wJCnLc,SAAuByF,GACpC,MAAM+D,EAAc/D,EAAKgE,UAAU3xB,WAC7B4xB,EAAY,CAChB,EAAG,SACH,EAAG,SACH,EAAG,UACH,EAAG,YACH,EAAG,WACH,EAAG,SACH,EAAG,YACHjE,EAAKkE,UACDC,EAAQ,CACZ,EAAG,UACH,EAAG,WACH,EAAG,QACH,EAAG,QACH,EAAG,MACH,EAAG,OACH,EAAG,OACH,EAAG,SACH,EAAG,YACH,EAAG,UACH,GAAI,WACJ,GAAI,YACJnE,EAAKoE;AAKP,SAAAhyB,OAAU6xB,EAAS,MAAA7xB,OAAK2xB,EAAW,KAAA3xB,OAAI+xB,EACzC,CAAC,I;UChCc,CACbh3B,KAAM,CACJkP,KAAM,WACNpU,GAAI,EACJo8B,WAAY,CACVz6B,KAAM,gBACN,YAAa,EACb,aAAc,gBACd06B,KAAM,MACN,uBAAwB,EACxBC,OAAQ,OAGb,I,uQCbM,WACL,QAA2BvqB,IAAvBT,OAAOirB,YAA2B;AAItC,IAAIC,EACAC;AAF6C,mBAAxCnrB,OAAOirB,YAAYG,oBAKxBF,GAAqBlrB,OAAOirB,YAC3BG,iBAAiB,cACjBhwB,OAAO;AAGR8vB,EAKFC,EAAiBD,EAAkBpoB,MAOnCooB,EAAoBlrB,OAAOirB,YAAYI,WAAWvoB,KAElDqoB,EAAiB,CACf,EAAG,WACH,EAAG,SACH,EAAG,gBACHD;AAGJ,OAAOC,CACT,CAAC,I,mICjCchH,eAA0BxjB,GACvC,MAAM2qB,EAAyB,yBAEzBC,EAAiB1T,SAAS2T,cAAa,OAAA3yB,OAAQyyB;AACrD,IAAKC,EAAgB,MAAM,IAAIlyB,MAAM;AAErC,KAAOkyB,EAAeE,YACpBF,EAAeE,WAAWtL;AAG5B,MAAMuL,EAAc7T,SAASC,cAAc;AAC3C4T,EAAYC,IAAMhrB;AAElB,MAAMirB,EAAe,IAAIrW,SAAc,CAACsW,EAASC,KAC/CJ,EAAYK,OAAS,KAmBnBC,YAAW,KACTH;AACyBhU,SAAS2T,cAAa,OAAA3yB,OAAQyyB,EAAsB,aACpDI,GAAa1rB,OAAOU,OAAO,GACnD,IAAI,EAETgrB,EAAYO,QAAU,KACpBH,EAAO,IAAIzyB,MAAM,wBAAwB,CAC1C;AAKH,OAFAkyB,EAAetT,YAAYyT,GAEpBE,CACT,CAAC,I,2JClBM,SACLM,EACApsB,GAEA,MAAQA,KAAMqsB,GAAgBD;AAC9B,GAAIC,GAAersB,EACjB,MAAO,CAAE8F,IAAI;AAEf,MAAO,CACLA,IAAI,EACJjK,QAAO,4DAEX,E,uBAEO,SACLuwB,EACAE,EACAC,GAEA,MAAQvsB,KAAMqsB,EAAahpB,eAAgBmpB,GAAiBJ;AAE5D,GAAIE,EAAgBD,EAClB,MAAO,CAAEvmB,IAAI;AAGf,GAAIwmB,IAAkBD,GAChBE,GAAkBC,EACpB,MAAO,CAAE1mB,IAAI;AAIjB,GAAIwmB,EAAgBD,EAClB,MAAO,CACLvmB,IAAI,EACJjK,QAAO;AAIX,GAAI0wB,EAAiBC,EACnB,MAAO,CACL1mB,IAAI,EACJjK,QAAO;AAKX,MAAO,CACLiK,IAAI,EACJjK,QACE,iHAEN,E,qBAjEO,SACLuwB,EACAhR,GAEA,MAAQpb,KAAMysB,GAAwBL,GAC9BpsB,KAAM0sB,GAAqBtR;AAMnC,OAF0BqR,EAAsBC,CAGlD,CAqDC,I,2LC/EM,SACLC,EACA1pB,GAiBA,OAAO,EAAA2pB,YAfiBvI,UACtB,IACE,aAAasI,GACf,CAAE,MAAO17B,GACP,GAAIA,aAAiBsI,MAAO,CAC1B,IAAI,EAAAywB,WAAe/4B,GACjB,MAAMA;AAER,MAAM,IAAI47B,aAAW57B,EACvB,CACE,MAAM,IAAI47B,aAAW7lB,OAAO/V,GAEhC,IAG6BgS,EACjC,CAAC,I,4HCxBD6pB,OAAA,wDAEA,IACA,IAAAC,EAAAC,yCACAC,EAAAlV,SAAA2T,cAAA,cAAAqB,EAAA,MAAAG,aAAA,WAGAC,EAAA,CAAAj/B,QAFA0F,KAAAw5B,MAAAC,mBAAAJ;AAMA,OAFA95B,OAAA2B,eAAAq4B,EAAA,cAAAz5B,OAAA,IAEAy5B,CACA,CACA,MAAAG,GACA,UAAA/zB,MAAA,kDAAAwzB,EAAA,KACA,CAEA,IChBAQ,cACAC,QAAA,mCAAAC,OAAA,CAAAC,aAAA,SAAAlc,OAAA,GAAAmc,iBAAA,WAAA1vB,aAAA,EAAAgmB,QAAA,KAAA2J,OAAA,MAAAC,cAAA,KAAAC,YAAA,MAAAnJ,SAAA,SAAAlN,aAAA,KAAAG,UAAA,UAAAmW,OAAA,EAAA72B,UAAA,CAAAioB,SAAA,IAAAG,UAAA,IAAA3iB,aAAA,KAAArM,wBAAA,EAAA09B,gBAAA,yCAAAz9B,KAAA,sBAAAif,QAAA","ignoreList":[]}