{"version":3,"file":"chunk-fnbrtycs.js","sources":["packages/vanilla/lib/features/player-gaming-declaration/src/player-gaming-declaration-constants.ts","packages/vanilla/lib/features/player-gaming-declaration/src/player-gaming-declaration.client-config.ts","packages/vanilla/lib/features/player-gaming-declaration/src/player-gaming-declaration.service.ts","packages/vanilla/lib/features/player-gaming-declaration/src/player-gaming-declaration-bootstrap.service.ts","packages/vanilla/lib/features/player-gaming-declaration/src/player-gaming-declaration-tracking.service.ts","packages/vanilla/lib/features/player-gaming-declaration/src/player-gaming-declaration.feature.ts","packages/vanilla/lib/features/player-gaming-declaration/src/player-gaming-declaration.html","packages/vanilla/lib/features/player-gaming-declaration/src/player-gaming-declaration.component.ts","packages/vanilla/lib/features/player-gaming-declaration/src/player-gaming-declaration.guard.ts","packages/vanilla/lib/features/player-gaming-declaration/src/player-gaming-declaration.resolver.ts","packages/vanilla/lib/features/player-gaming-declaration/src/player-gaming-declaration.routes.ts"],"sourcesContent":["export const ACCEPTED_STATUS = 'Y';\nexport const NOT_ACCEPTED_STATUS = 'N';\nexport const GAMING_DECLARATION_PATH = '/gaming-declaration';\nexport const IS_POST_LOGIN = '1';\n","import { Injectable } from '@angular/core';\n\nimport {\n ClientConfigProductName,\n LazyClientConfig,\n LazyClientConfigBase,\n LazyClientConfigService,\n ViewTemplateForClient,\n} from '@frontend/vanilla/core';\n\n/**\n * @stable\n */\n@LazyClientConfig({ key: 'vnPlayerGamingDeclaration', product: ClientConfigProductName.SF })\n@Injectable()\nexport class PlayerGamingDeclarationConfig extends LazyClientConfigBase {\n isEnabledCondition: string;\n content: ViewTemplateForClient;\n}\n\nexport function playerGamingDeclarationConfigFactory(service: LazyClientConfigService) {\n return service.get(PlayerGamingDeclarationConfig);\n}\n","import { Injectable } from '@angular/core';\n\nimport { CookieName, CookieService, DslService, SharedFeaturesApiService, UserService } from '@frontend/vanilla/core';\nimport { Observable, ReplaySubject, firstValueFrom } from 'rxjs';\n\nimport { ACCEPTED_STATUS } from './player-gaming-declaration-constants';\nimport { PlayerGamingDeclarationConfig } from './player-gaming-declaration.client-config';\n\nexport interface GamingDeclaration {\n status: string;\n acceptedDate?: Date;\n}\n\n@Injectable()\nexport class PlayerGamingDeclarationService {\n private gamingDeclarationEvents = new ReplaySubject(1);\n private loaded: boolean = false;\n\n get gamingDeclaration(): Observable {\n return this.gamingDeclarationEvents;\n }\n\n constructor(\n private api: SharedFeaturesApiService,\n private user: UserService,\n private cookieService: CookieService,\n private config: PlayerGamingDeclarationConfig,\n private dslService: DslService,\n ) {}\n\n /** @internal */\n load() {\n if (this.user.isAuthenticated && !this.loaded) {\n this.loaded = true;\n this.api.get('gamingdeclaration').subscribe((gamingDeclaration: GamingDeclaration) => {\n this.gamingDeclarationEvents.next(gamingDeclaration);\n });\n }\n }\n\n accept(status: {}) {\n return this.api.post('gamingdeclaration/accept', status);\n }\n\n setCookie() {\n this.cookieService.put(CookieName.GdAccepted, ACCEPTED_STATUS);\n }\n\n removeCookie() {\n this.cookieService.remove(CookieName.GdAccepted);\n }\n\n isAccepted() {\n return this.cookieService.get(CookieName.GdAccepted) == ACCEPTED_STATUS;\n }\n\n setReturnPath(url: string) {\n this.cookieService.put(CookieName.GdReturnPath, url);\n }\n\n removeReturnPath() {\n this.cookieService.remove(CookieName.GdReturnPath);\n }\n\n returnPath() {\n return this.cookieService.get(CookieName.GdReturnPath);\n }\n\n /** @description Gets the enablement status of the player gaming declaration. */\n async isEnabled(): Promise {\n await firstValueFrom(this.config.whenReady);\n\n return await firstValueFrom(this.dslService.evaluateExpression(this.config.isEnabledCondition));\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Router, RoutesRecognized } from '@angular/router';\n\nimport { NativeAppService, NavigationService, OnFeatureInit, UserService } from '@frontend/vanilla/core';\nimport { filter } from 'rxjs/operators';\n\nimport { ACCEPTED_STATUS, GAMING_DECLARATION_PATH, NOT_ACCEPTED_STATUS } from './player-gaming-declaration-constants';\nimport { PlayerGamingDeclarationService } from './player-gaming-declaration.service';\n\n@Injectable()\nexport class PlayerGamingDeclarationBootstrapService implements OnFeatureInit {\n constructor(\n private gamingDeclarationService: PlayerGamingDeclarationService,\n private user: UserService,\n private navigationService: NavigationService,\n private nativeApp: NativeAppService,\n private router: Router,\n ) {}\n\n async onFeatureInit() {\n const isEnabled = await this.gamingDeclarationService.isEnabled();\n\n if (!isEnabled) {\n return;\n }\n\n this.router.events.pipe(filter((e): e is RoutesRecognized => e instanceof RoutesRecognized)).subscribe((e: RoutesRecognized) => {\n if (e.url.includes('gaming-declaration')) {\n this.nativeApp.sendToNative({ eventName: 'hideCloseButton' });\n }\n });\n\n if (\n this.user.isFirstLogin ||\n this.user.gamingDeclarationFlag?.toUpperCase() == ACCEPTED_STATUS ||\n this.gamingDeclarationService.isAccepted()\n ) {\n return;\n }\n\n this.gamingDeclarationService.gamingDeclaration.subscribe((gamingDeclaration) => {\n // Platform will send Y|N for Austrian users and null to non Austrian users so this makes sure redirect happens only for Austrian users that did not accept yet.\n if (gamingDeclaration?.status?.toUpperCase() === NOT_ACCEPTED_STATUS) {\n this.gamingDeclarationService.setReturnPath(this.navigationService.location.absUrl());\n this.navigationService.goTo(GAMING_DECLARATION_PATH);\n } else {\n this.gamingDeclarationService.removeCookie();\n }\n });\n\n if (this.user.isAuthenticated) {\n this.gamingDeclarationService.load();\n }\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { TrackingService } from '@frontend/vanilla/core';\n\n@Injectable()\nexport class PlayerGamingDeclarationTrackingService {\n constructor(private trackingService: TrackingService) {}\n\n trackLoad(isPostLogin: boolean) {\n this.track('contentView', 'load', 'updated tnc interceptor', isPostLogin);\n }\n\n trackAccept(isPostLogin: boolean) {\n this.track('Event.Tracking', 'click', 'accept cta', isPostLogin);\n }\n\n private track(eventName: string, action: string, details: string, isPostLogin: boolean) {\n this.trackingService.triggerEvent(eventName, {\n 'component.CategoryEvent': 'interceptor',\n 'component.LabelEvent': 'updated tnc interceptor',\n 'component.ActionEvent': action,\n 'component.PositionEvent': isPostLogin ? 'post login' : 'product switch',\n 'component.LocationEvent': 'updated tnc interceptor',\n 'component.EventDetails': details,\n 'component.URLClicked': 'not applicable',\n });\n }\n}\n","import { LazyClientConfigService, runOnFeatureInit } from '@frontend/vanilla/core';\n\nimport { PlayerGamingDeclarationBootstrapService } from './player-gaming-declaration-bootstrap.service';\nimport { PlayerGamingDeclarationTrackingService } from './player-gaming-declaration-tracking.service';\nimport { PlayerGamingDeclarationConfig, playerGamingDeclarationConfigFactory } from './player-gaming-declaration.client-config';\nimport { PlayerGamingDeclarationService } from './player-gaming-declaration.service';\n\nexport function provide() {\n return [\n PlayerGamingDeclarationService,\n PlayerGamingDeclarationTrackingService,\n { provide: PlayerGamingDeclarationConfig, useFactory: playerGamingDeclarationConfigFactory, deps: [LazyClientConfigService] },\n runOnFeatureInit(PlayerGamingDeclarationBootstrapService),\n ];\n}\n","\n
\n \n @if (content(); as content) {\n
\n \n }\n
\n
\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, OnDestroy, OnInit, signal } from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\n\nimport {\n ClaimsConfig,\n ClientConfigService,\n DslService,\n HtmlNode,\n MessageScope,\n NativeAppService,\n NativeEventType,\n NavigationService,\n UserService,\n ViewTemplateForClient,\n} from '@frontend/vanilla/core';\nimport { CrossProductLayoutComponent } from '@frontend/vanilla/features/cross-product-layout';\nimport { MessagePanelComponent } from '@frontend/vanilla/features/message-panel';\nimport { TrustAsHtmlPipe } from '@frontend/vanilla/shared/browser';\nimport { RouteDataService } from '@frontend/vanilla/shared/routing';\nimport { first } from 'rxjs';\n\nimport { ACCEPTED_STATUS, IS_POST_LOGIN } from './player-gaming-declaration-constants';\nimport { PlayerGamingDeclarationTrackingService } from './player-gaming-declaration-tracking.service';\nimport { PlayerGamingDeclarationService } from './player-gaming-declaration.service';\n\n@Component({\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [CommonModule, TrustAsHtmlPipe, CrossProductLayoutComponent, MessagePanelComponent],\n selector: 'vn-gaming-declaration-page',\n templateUrl: 'player-gaming-declaration.html',\n})\nexport class PlayerGamingDeclarationComponent implements OnInit, OnDestroy {\n readonly content = signal(undefined);\n readonly MessageScope = MessageScope;\n\n private isPostLogin: boolean;\n\n constructor(\n private gamingDeclarationService: PlayerGamingDeclarationService,\n private routeData: RouteDataService,\n private navigationService: NavigationService,\n private clientConfig: ClientConfigService,\n private user: UserService,\n private trackingService: PlayerGamingDeclarationTrackingService,\n private activatedRoute: ActivatedRoute,\n private nativeApp: NativeAppService,\n private html: HtmlNode,\n private dslService: DslService,\n ) {}\n\n ngOnInit() {\n this.isPostLogin = this.activatedRoute.snapshot.queryParamMap.get('_isPostLogin') === IS_POST_LOGIN;\n this.dslService\n .evaluateContent(this.routeData.getInitData())\n .pipe(first())\n .subscribe((item: ViewTemplateForClient) => {\n this.content.set(item);\n });\n this.trackingService.trackLoad(this.isPostLogin);\n this.html.setCssClass('gaming-declaration', true);\n }\n\n ngOnDestroy() {\n this.html.setCssClass('gaming-declaration', false);\n }\n\n accept() {\n this.gamingDeclarationService.accept({ status: ACCEPTED_STATUS }).subscribe(() => {\n this.trackingService.trackAccept(this.isPostLogin);\n this.clientConfig.reload([ClaimsConfig]).then(() => {\n if (this.user.gamingDeclarationFlag?.toUpperCase() !== ACCEPTED_STATUS) {\n //Saving to cookie just in case Claim is not refreshed at this point.\n this.gamingDeclarationService.setCookie();\n }\n this.nativeApp.sendToNative({ eventName: NativeEventType.GAMING_DECLARATION_ACCEPTED });\n const returnUrl = this.gamingDeclarationService.returnPath();\n\n if (returnUrl) {\n this.navigationService.goTo(returnUrl, { isBackNavigation: true });\n this.gamingDeclarationService.removeReturnPath();\n } else {\n this.navigationService.goToLastKnownProduct({ forceReload: true });\n }\n });\n });\n }\n}\n","import { inject } from '@angular/core';\n\nimport { UserService } from '@frontend/vanilla/core';\n\nimport { ACCEPTED_STATUS } from './player-gaming-declaration-constants';\nimport { PlayerGamingDeclarationService } from './player-gaming-declaration.service';\n\nexport const playerGamingDeclarationCanActivateGuard = async () => {\n const user = inject(UserService);\n const gamingDeclarationService = inject(PlayerGamingDeclarationService);\n const isEnabled = await gamingDeclarationService.isEnabled();\n\n if (\n !isEnabled ||\n !user.isAuthenticated ||\n user.gamingDeclarationFlag?.toUpperCase() == ACCEPTED_STATUS ||\n gamingDeclarationService.isAccepted()\n ) {\n return false;\n }\n\n return true;\n};\n\nexport const playerGamingDeclarationCanDeactivateGuard = async () => {\n const user = inject(UserService);\n const gamingDeclarationService = inject(PlayerGamingDeclarationService);\n return user.gamingDeclarationFlag?.toUpperCase() == ACCEPTED_STATUS || gamingDeclarationService.isAccepted();\n};\n","import { inject } from '@angular/core';\n\nimport { map } from 'rxjs/operators';\n\nimport { PlayerGamingDeclarationConfig } from './player-gaming-declaration.client-config';\n\nexport const playerGamingDeclarationResolver = () => {\n const config = inject(PlayerGamingDeclarationConfig);\n return config.whenReady.pipe(map(() => config.content));\n};\n","import { Routes } from '@angular/router';\n\nimport { PlayerGamingDeclarationComponent } from './player-gaming-declaration.component';\nimport { provide } from './player-gaming-declaration.feature';\nimport { playerGamingDeclarationCanActivateGuard, playerGamingDeclarationCanDeactivateGuard } from './player-gaming-declaration.guard';\nimport { playerGamingDeclarationResolver } from './player-gaming-declaration.resolver';\n\nexport const ROUTES: Routes = [\n {\n path: '',\n component: PlayerGamingDeclarationComponent,\n resolve: {\n initData: playerGamingDeclarationResolver,\n },\n canActivate: [playerGamingDeclarationCanActivateGuard],\n canDeactivate: [playerGamingDeclarationCanDeactivateGuard],\n providers: provide(),\n },\n];\n"],"names":["ACCEPTED_STATUS","NOT_ACCEPTED_STATUS","GAMING_DECLARATION_PATH","IS_POST_LOGIN","PlayerGamingDeclarationConfig","_a","LazyClientConfigBase","__ngFactoryType__","factory","ɵfac","__decorate","LazyClientConfig","key","product","ClientConfigProductName","SF","playerGamingDeclarationConfigFactory","service","get","PlayerGamingDeclarationService","gamingDeclaration","gamingDeclarationEvents","constructor","api","user","cookieService","config","dslService","ReplaySubject","loaded","load","isAuthenticated","subscribe","next","accept","status","post","setCookie","put","CookieName","GdAccepted","removeCookie","remove","isAccepted","setReturnPath","url","GdReturnPath","removeReturnPath","returnPath","isEnabled","__async","firstValueFrom","whenReady","evaluateExpression","isEnabledCondition","ɵɵinject","SharedFeaturesApiService","UserService","CookieService","DslService","u","_PlayerGamingDeclarationService","PlayerGamingDeclarationBootstrapService","gamingDeclarationService","navigationService","nativeApp","router","onFeatureInit","events","pipe","filter","e","RoutesRecognized","includes","sendToNative","eventName","isFirstLogin","gamingDeclarationFlag","toUpperCase","location","absUrl","goTo","NavigationService","NativeAppService","Router","_PlayerGamingDeclarationBootstrapService","PlayerGamingDeclarationTrackingService","trackingService","trackLoad","isPostLogin","track","trackAccept","action","details","triggerEvent","TrackingService","_PlayerGamingDeclarationTrackingService","provide","useFactory","deps","LazyClientConfigService","runOnFeatureInit","K","ɵɵtext","ɵɵelement","W","ɵɵelementStart","ɵɵlistener","ɵɵrestoreView","_r1","ctx_r1","ɵɵnextContext","ɵɵresetView","ɵɵelementEnd","ɵɵadvance","ɵɵproperty","ɵɵpipeBind1","content_r3","text","ɵɵsanitizeHtml","form","htmlAttributes","class","undefined","label","PlayerGamingDeclarationComponent","routeData","clientConfig","activatedRoute","html","content","signal","MessageScope","ngOnInit","snapshot","queryParamMap","evaluateContent","getInitData","first","item","set","setCssClass","ngOnDestroy","reload","ClaimsConfig","then","NativeEventType","GAMING_DECLARATION_ACCEPTED","returnUrl","isBackNavigation","goToLastKnownProduct","forceReload","ɵɵdirectiveInject","RouteDataService","ClientConfigService","ActivatedRoute","HtmlNode","selectors","standalone","features","ɵɵStandaloneFeature","decls","vars","consts","template","rf","ctx","ɵɵtemplate","PlayerGamingDeclarationComponent_Conditional_6_Template","GamingDeclaration","ɵɵconditional","tmp_1_0","CommonModule","NgClass","TrustAsHtmlPipe","CrossProductLayoutComponent","MessagePanelComponent","encapsulation","changeDetection","_PlayerGamingDeclarationComponent","playerGamingDeclarationCanActivateGuard","inject","playerGamingDeclarationCanDeactivateGuard","playerGamingDeclarationResolver","map","ROUTES","path","component","resolve","initData","canActivate","canDeactivate","providers"],"mappings":"0lBAAO,IAAMA,CAAkB,CAAA,GAAA,CAClBC,EAAsB,CAAA,GAAA,CACtBC,EAA0B,CAAA,qBAAA,CAC1BC,EAAgB,CAAA,GAAA,CAAA,IAAA,CAAA,CCYhBC,CAANC,EAAAA,CAAAA,CAAA,cAA4CC,EAAoB,EAA1DF,CAAAA,CAAAA,CAAAA,SAAAA,CAAAA,CAAAA,IAAAA,CAAAA,IAAAA,CAAAA,CAAAA,OAAAA,SAAAA,CAAAA,CAAAA,CAAAA,OAAAA,CAAAA,CAAAA,GAAAA,CAAAA,CAAAA,EAAAA,CAAAA,CAA6B,CAAAG,CAAAA,EAAAA,CAAAA,EAA7BH,CAA6B,CAAA,CAAA,CAAA,GAA7BA,CAAAA,CAAAA,CAAAA,UAAAA,CAAAA,CAAAA,CAAAA,CAAAA,KAAAA,CAAAA,CAAAA,CAA6BI,OAA7BJ,CAAAA,CAAAA,CAA6BK,SAAA,CAAA,CAAnCJ,CAAAA,CAAAA,CAAAA,CAAMD,CAA6BM,CAAAA,EAAAA,CAAA,CAFzCC,EAAAA,CAAiB,CAAEC,GAAAA,CAAK,2BAA6BC,CAAAA,OAAAA,CAASC,EAAwBC,CAAAA,EAAE,CAAE,CAAC,CAE/EX,CAAAA,CAA6B,CAKpC,CAAA,SAAUY,EAAqCC,CAAAA,CAAAA,CAAgC,CACjF,OAAOA,CAAQC,CAAAA,GAAAA,CAAId,CAA6B,CACpD,CCRA,IAAae,CAA8B,CAAA,CAAA,IAAA,CAArC,IAAOA,CAAP,CAAA,MAAOA,CAA8B,CAIvC,IAAIC,iBAAAA,EAAiB,CACjB,OAAO,IAAKC,CAAAA,uBAChB,CAEAC,WAAAA,CACYC,CACAC,CAAAA,CAAAA,CACAC,CACAC,CAAAA,CAAAA,CACAC,CAAsB,CAAA,CAJtB,IAAAJ,CAAAA,GAAAA,CAAAA,CACA,CAAA,IAAA,CAAAC,IAAAA,CAAAA,CAAAA,CACA,IAAAC,CAAAA,aAAAA,CAAAA,CACA,CAAA,IAAA,CAAAC,MAAAA,CAAAA,CAAAA,CACA,IAAAC,CAAAA,UAAAA,CAAAA,CAZJ,CAAA,IAAA,CAAAN,uBAA0B,CAAA,IAAIO,EAAiC,CAAA,CAAC,CAChE,CAAA,IAAA,CAAAC,MAAkB,CAAA,CAAA,EAYvB,CAGHC,IAAAA,EAAI,CACI,IAAA,CAAKN,IAAKO,CAAAA,eAAAA,EAAmB,CAAC,IAAA,CAAKF,MACnC,GAAA,IAAA,CAAKA,MAAS,CAAA,CAAA,CAAA,CACd,IAAKN,CAAAA,GAAAA,CAAIL,GAAI,CAAA,mBAAmB,CAAEc,CAAAA,SAAAA,CAAWZ,CAAwC,EAAA,CACjF,IAAKC,CAAAA,uBAAAA,CAAwBY,IAAKb,CAAAA,CAAiB,EACvD,CAAC,CAET,EAAA,CAEAc,MAAOC,CAAAA,CAAAA,CAAU,CACb,OAAO,IAAKZ,CAAAA,GAAAA,CAAIa,IAAK,CAAA,0BAAA,CAA4BD,CAAM,CAC3D,CAEAE,SAAAA,EAAS,CACL,IAAA,CAAKZ,aAAca,CAAAA,GAAAA,CAAIC,CAAWC,CAAAA,UAAAA,CAAYxC,CAAe,EACjE,CAEAyC,YAAAA,EAAY,CACR,IAAA,CAAKhB,aAAciB,CAAAA,MAAAA,CAAOH,CAAWC,CAAAA,UAAU,EACnD,CAEAG,UAAU,EAAA,CACN,OAAO,IAAA,CAAKlB,aAAcP,CAAAA,GAAAA,CAAIqB,CAAWC,CAAAA,UAAU,CAAKxC,EAAAA,CAC5D,CAEA4C,aAAAA,CAAcC,CAAW,CAAA,CACrB,IAAKpB,CAAAA,aAAAA,CAAca,GAAIC,CAAAA,CAAAA,CAAWO,YAAcD,CAAAA,CAAG,EACvD,CAEAE,gBAAgB,EAAA,CACZ,IAAKtB,CAAAA,aAAAA,CAAciB,MAAOH,CAAAA,CAAAA,CAAWO,YAAY,EACrD,CAEAE,UAAAA,EAAU,CACN,OAAO,IAAKvB,CAAAA,aAAAA,CAAcP,GAAIqB,CAAAA,CAAAA,CAAWO,YAAY,CACzD,CAGMG,SAAAA,EAAS,CAAAC,OAAAA,CAAAA,CAAA,IACX,CAAA,IAAA,CAAA,WAAA,CAAA,OAAA,MAAMC,EAAe,CAAA,IAAA,CAAKzB,MAAO0B,CAAAA,SAAS,CAEnC,CAAA,MAAMD,EAAe,CAAA,IAAA,CAAKxB,UAAW0B,CAAAA,kBAAAA,CAA4B,IAAK3B,CAAAA,MAAAA,CAAO4B,kBAAkB,CAAC,CAC3G,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,SAAA,CAAA,SAAA,CAAA,CAAA,CAAA,OAAA,IAAA,CAAA,EA3DSnC,CAA8BoC,EAAAA,EAAAA,CAAAC,EAAA,CAAA,CAAAD,EAAAE,CAAAA,CAAA,CAAAF,CAAAA,EAAAA,CAAAG,CAAA,CAAA,CAAAH,EAAAnD,CAAAA,CAAA,CAAAmD,CAAAA,EAAAA,CAAAI,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,UAAA,CAAAC,CAAA,CAAA,CAAA,KAAA,CAA9BzC,CAA8BX,CAAAA,OAAAA,CAA9BW,CAA8BV,CAAAA,SAAA,CAAA,CAAA,CAArC,IAAOU,CAAAA,CAAP0C,CAAO1C,CAAAA,OAAAA,CAA8B,CAAA,GAAA,CCJ3C,IAAa2C,EAAAA,CAAAA,CAAuC,IAAA,CAA9C,IAAOA,CAAAA,CAAP,MAAOA,CAAuC,CAChDxC,WAAAA,CACYyC,CACAvC,CAAAA,CAAAA,CACAwC,CACAC,CAAAA,CAAAA,CACAC,CAAc,CAAA,CAJd,IAAAH,CAAAA,wBAAAA,CAAAA,CACA,CAAA,IAAA,CAAAvC,IAAAA,CAAAA,CAAAA,CACA,IAAAwC,CAAAA,iBAAAA,CAAAA,CACA,CAAA,IAAA,CAAAC,SAAAA,CAAAA,CAAAA,CACA,IAAAC,CAAAA,MAAAA,CAAAA,EACT,CAEGC,aAAa,EAAA,CAAA,OAAAjB,CAAA,CAAA,IAAA,CAAA,IAAA,CAAA,WAAA,CAAA,CACG,MAAM,IAAA,CAAKa,wBAAyBd,CAAAA,SAAAA,EAMtD,IAAA,IAAA,CAAKiB,MAAOE,CAAAA,MAAAA,CAAOC,IAAKC,CAAAA,EAAAA,CAAQC,CAA6BA,EAAAA,CAAAA,YAAaC,EAAgB,CAAC,CAAExC,CAAAA,SAAAA,CAAWuC,CAAuB,EAAA,CACvHA,CAAE1B,CAAAA,GAAAA,CAAI4B,QAAS,CAAA,oBAAoB,CACnC,EAAA,IAAA,CAAKR,SAAUS,CAAAA,YAAAA,CAAa,CAAEC,SAAAA,CAAW,iBAAiB,CAAE,EAEpE,CAAC,CAGG,CAAA,EAAA,IAAA,CAAKnD,IAAKoD,CAAAA,YAAAA,EACV,IAAKpD,CAAAA,IAAAA,CAAKqD,qBAAuBC,EAAAA,WAAAA,EAAiB9E,EAAAA,CAAAA,EAClD,IAAK+D,CAAAA,wBAAAA,CAAyBpB,UAAU,EAAA,CAAA,GAK5C,IAAKoB,CAAAA,wBAAAA,CAAyB3C,iBAAkBY,CAAAA,SAAAA,CAAWZ,CAAqB,EAAA,CAExEA,CAAmBe,EAAAA,MAAAA,EAAQ2C,WAAW,EAAA,GAAO7E,EAC7C,EAAA,IAAA,CAAK8D,wBAAyBnB,CAAAA,aAAAA,CAAc,IAAKoB,CAAAA,iBAAAA,CAAkBe,QAASC,CAAAA,MAAAA,EAAQ,CAAA,CACpF,IAAKhB,CAAAA,iBAAAA,CAAkBiB,IAAK/E,CAAAA,EAAuB,CAEnD,EAAA,IAAA,CAAK6D,wBAAyBtB,CAAAA,YAAAA,GAEtC,CAAC,CAEG,CAAA,IAAA,CAAKjB,IAAKO,CAAAA,eAAAA,EACV,IAAKgC,CAAAA,wBAAAA,CAAyBjC,IAAI,EAAA,CAAA,EAE1C,CA3CSgC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,SAAAA,CAAAA,SAAAA,CAAAA,CAAAA,CAAAA,OAAAA,IAAAA,CAAAA,EAAAA,CAAAA,EAAuCP,EAAApC,CAAAA,CAAA,CAAAoC,CAAAA,EAAAA,CAAAE,CAAA,CAAA,CAAAF,EAAA2B,CAAAA,EAAA,CAAA3B,CAAAA,EAAAA,CAAA4B,EAAA,CAAA,CAAA5B,EAAA6B,CAAAA,EAAA,CAAA,CAAA,CAAvCtB,CAAAA,CAAAA,CAAAA,UAAAA,CAAAA,CAAAA,CAAAA,CAAAA,KAAAA,CAAAA,CAAAA,CAAuCtD,OAAvCsD,CAAAA,CAAAA,CAAuCrD,SAAA,CAAA,CAA9C,CAAA,IAAOqD,CAAPuB,CAAAA,CAAAA,CAAAA,OAAOvB,CAAuC,CAAA,GCLpD,CAAA,IAAawB,CAAsC,CAAA,CAAA,IAAA,CAA7C,IAAOA,CAAP,CAAA,MAAOA,CAAsC,CAC/ChE,WAAoBiE,CAAAA,CAAAA,CAAgC,CAAhC,IAAA,CAAAA,eAAAA,CAAAA,EAAmC,CAEvDC,SAAAA,CAAUC,CAAoB,CAAA,CAC1B,IAAKC,CAAAA,KAAAA,CAAM,aAAe,CAAA,MAAA,CAAQ,yBAA2BD,CAAAA,CAAW,EAC5E,CAEAE,WAAYF,CAAAA,CAAAA,CAAoB,CAC5B,IAAA,CAAKC,KAAM,CAAA,gBAAA,CAAkB,OAAS,CAAA,YAAA,CAAcD,CAAW,EACnE,CAEQC,KAAAA,CAAMf,CAAmBiB,CAAAA,CAAAA,CAAgBC,CAAiBJ,CAAAA,CAAAA,CAAoB,CAClF,IAAA,CAAKF,eAAgBO,CAAAA,YAAAA,CAAanB,CAAW,CAAA,CACzC,yBAA2B,CAAA,aAAA,CAC3B,sBAAwB,CAAA,yBAAA,CACxB,uBAAyBiB,CAAAA,CAAAA,CACzB,yBAA2BH,CAAAA,CAAAA,CAAc,YAAe,CAAA,gBAAA,CACxD,yBAA2B,CAAA,yBAAA,CAC3B,wBAA0BI,CAAAA,CAAAA,CAC1B,sBAAwB,CAAA,gBAAA,CAC3B,EACL,CAAA,CAAA,CAAA,CAAA,CAAA,SAAA,CAAA,SAAA,CAAA,CAAA,CAAA,OAAA,IAAA,CAAA,EArBSP,CAAsC/B,EAAAA,EAAAA,CAAAwC,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,UAAA,CAAAnC,CAAA,CAAA,CAAA,KAAA,CAAtC0B,CAAsC9E,CAAAA,OAAAA,CAAtC8E,CAAsC7E,CAAAA,SAAA,CAAA,CAAA,CAA7C,IAAO6E,CAAAA,CAAPU,CAAOV,CAAAA,OAAAA,CAAsC,CAAA,GAAA,CCE7C,SAAUW,CAAAA,EAAO,CACnB,OAAO,CACH9E,CAAAA,CACAmE,CACA,CAAA,CAAEW,OAAS7F,CAAAA,CAAAA,CAA+B8F,UAAYlF,CAAAA,EAAAA,CAAsCmF,IAAM,CAAA,CAACC,EAAuB,CAAC,CAC3HC,CAAAA,EAAAA,CAAiBvC,EAAuC,CAAC,CAEjE,CAAA,SAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAA,CAAA,CAAAwC,EAAA,EAAA,CCVYC,GAAA,CAAA,CAAA;AAAA,YAAA,CAAA,CAAA,CAAAC,GAAA,CAAA,CAAA,KAAA,CAAA,CAAA,CAAA,CAAAC,EAAA,CAAA,CAAA,CAAA,aAAA,CAAA,CACAF,GAAA,CAAA,CAAA;aAAA,CAAAG,CAAAA,EAAAA,CAAA,CAAA,CAAA,QAAA,CAAA,CAAA,CAAA,CACIC,EAAA,CAAA,OAAA,CAAA,UAAA,CAAAC,EAAAC,CAAAA,CAAA,CAAA,CAAA,IAAAC,CAAAC,CAAAA,EAAAA,EAAA,CAAA,OAAAC,EAASF,CAAAA,CAAAA,CAAA5E,MAAA,EAAQ,CAAA,CAAA,CAEwB+E,CAAAA,EAAAA,EACjDV,CAAAA,EAAAA,CAAA,CAAA,CAAA;AAAA,QAAA,CAAA,EAAA,CAAA,GAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAA,CAAA,CAAA,CAAA,CALSW,IAAAC,CAAAA,EAAAA,CAAA,WAAAC,CAAAA,EAAAA,CAAA,EAAA,CAAAC,CAAAA,CAAAA,CAAAC,IAAA,CAAA,CAAAC,EAAA,CAGDL,CAAAA,EAAAA,CAAA,CAAA,CAAA,CAAAC,GAAA,SAAAE,CAAAA,CAAAA,CAAAA,CAAAG,IAAAtF,CAAAA,MAAAA,EAAA,MAAAmF,CAAAG,CAAAA,IAAAA,CAAAtF,MAAAuF,CAAAA,cAAAA,EAAA,KAAA,IAAAJ,CAAAA,CAAAA,CAAAG,IAAAtF,CAAAA,MAAAA,CAAAuF,eAAAC,KAAAC,GAAAA,KAAAA,CAAA,EAAmE,WAAAN,CAAAA,CAAAA,CAAAG,KAAAtF,MAAA,EAAA,IAAA,CAAA,IAAAmF,CAAAA,CAAAA,CAAAG,KAAAtF,MAAA0F,CAAAA,KAAAA,CAAAL,EAAA,EAAA,CAAA,CC0BnF,IAAaM,EAAgC,CAAA,CAAA,IAAA,CAAvC,IAAOA,EAAP,MAAOA,CAAgC,CAMzCvG,WACYyC,CAAAA,CAAAA,CACA+D,EACA9D,CACA+D,CAAAA,CAAAA,CACAvG,CACA+D,CAAAA,EAAAA,CACAyC,GACA/D,EACAgE,CAAAA,EAAAA,CACAtG,EAAsB,CAAA,CATtB,KAAAoC,wBAAAA,CAAAA,CAAAA,CACA,IAAA+D,CAAAA,SAAAA,CAAAA,EACA,IAAA9D,CAAAA,iBAAAA,CAAAA,EACA,IAAA+D,CAAAA,YAAAA,CAAAA,EACA,IAAAvG,CAAAA,IAAAA,CAAAA,CACA,CAAA,IAAA,CAAA+D,gBAAAA,EACA,CAAA,IAAA,CAAAyC,cAAAA,CAAAA,EAAAA,CACA,KAAA/D,SAAAA,CAAAA,EAAAA,CACA,IAAAgE,CAAAA,IAAAA,CAAAA,GACA,IAAAtG,CAAAA,UAAAA,CAAAA,EAfH,CAAA,IAAA,CAAAuG,QAAUC,EAA0CR,CAAAA,KAAAA,CAAS,CAC7D,CAAA,IAAA,CAAAS,aAAeA,GAerB,CAEHC,QAAQ,EAAA,CACJ,KAAK5C,WAAc,CAAA,IAAA,CAAKuC,cAAeM,CAAAA,QAAAA,CAASC,cAAcrH,GAAI,CAAA,cAAc,IAAMf,EACtF,CAAA,IAAA,CAAKwB,WACA6G,eAAgB,CAAA,IAAA,CAAKV,SAAUW,CAAAA,WAAAA,EAAa,CAC5CpE,CAAAA,IAAAA,CAAKqE,EAAK,EAAE,EACZ1G,SAAW2G,CAAAA,CAAAA,EAA+B,CACvC,IAAA,CAAKT,QAAQU,GAAID,CAAAA,CAAI,EACzB,CAAC,CAAA,CACL,KAAKpD,eAAgBC,CAAAA,SAAAA,CAAU,IAAKC,CAAAA,WAAW,EAC/C,IAAKwC,CAAAA,IAAAA,CAAKY,WAAY,CAAA,oBAAA,CAAsB,EAAI,EACpD,CAEAC,WAAW,EAAA,CACP,KAAKb,IAAKY,CAAAA,WAAAA,CAAY,qBAAsB,CAAK,CAAA,EACrD,CAEA3G,MAAM,EAAA,CACF,IAAK6B,CAAAA,wBAAAA,CAAyB7B,OAAO,CAAEC,MAAAA,CAAQnC,CAAe,CAAE,EAAEgC,SAAU,CAAA,IAAK,CAC7E,IAAA,CAAKuD,gBAAgBI,WAAY,CAAA,IAAA,CAAKF,WAAW,CAAA,CACjD,KAAKsC,YAAagB,CAAAA,MAAAA,CAAO,CAACC,EAAY,CAAC,CAAEC,CAAAA,IAAAA,CAAK,IAAK,CAC3C,KAAKzH,IAAKqD,CAAAA,qBAAAA,EAAuBC,WAAW,EAAA,GAAO9E,GAEnD,IAAK+D,CAAAA,wBAAAA,CAAyB1B,WAElC,CAAA,IAAA,CAAK4B,UAAUS,YAAa,CAAA,CAAEC,SAAWuE,CAAAA,IAAAA,CAAgBC,2BAA2B,CAAE,CAAA,CACtF,IAAMC,CAAAA,CAAY,KAAKrF,wBAAyBf,CAAAA,UAAAA,EAE5CoG,CAAAA,CAAAA,EACA,KAAKpF,iBAAkBiB,CAAAA,IAAAA,CAAKmE,EAAW,CAAEC,gBAAAA,CAAkB,EAAI,CAAE,CAAA,CACjE,IAAKtF,CAAAA,wBAAAA,CAAyBhB,kBAE9B,EAAA,IAAA,CAAKiB,iBAAkBsF,CAAAA,oBAAAA,CAAqB,CAAEC,WAAa,CAAA,CAAA,CAAI,CAAE,EAEzE,CAAC,EACL,CAAC,EACL,CAtDS1B,CAAAA,CAAAA,CAAAA,CAAAA,SAAAA,CAAAA,SAAAA,CAAAA,CAAAA,CAAAA,OAAAA,IAAAA,CAAAA,EAAAA,CAAAA,EAAgC2B,GAAArI,CAAA,CAAA,CAAAqI,EAAAC,CAAAA,CAAA,EAAAD,EAAAtE,CAAAA,EAAA,CAAAsE,CAAAA,EAAAA,CAAAE,EAAA,CAAAF,CAAAA,EAAAA,CAAA/F,CAAA,CAAA,CAAA+F,GAAAlE,CAAA,CAAA,CAAAkE,EAAAG,CAAAA,EAAA,EAAAH,EAAArE,CAAAA,EAAA,CAAAqE,CAAAA,EAAAA,CAAAI,EAAA,CAAAJ,CAAAA,EAAAA,CAAA7F,EAAA,CAAA,CAAA,CAAhCkE,CAAAA,CAAAA,CAAAA,SAAAA,CAAAA,EAAAA,CAAAA,CAAAA,IAAAA,CAAAA,CAAAA,CAAgCgC,SAAA,CAAA,CAAA,CAAA,4BAAA,CAAA,EAAAC,UAAA,CAAA,CAAA,CAAA,CAAAC,SAAA,CAAAC,EAAA,CAAAC,CAAAA,KAAAA,CAAA,EAAAC,IAAA,CAAA,CAAA,CAAAC,MAAA,CAAA,CAAA,CAAA,CAAA,CAAA,oBAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,CAAA,OAAA,CAAA,CAAA,CAAA,EAAA,WAAA,CAAA,CAAA,CAAA,CAAA,CAAA,QAAA,SAAA,CAAA,WAAA,CAAA,CAAA,CAAAC,SAAA,SAAAC,CAAAA,CAAAC,CAAA,CAAA,CAAA,GAAAD,EAAA,CDjC7C3D,GAAAA,EAAAA,CAAA,EAAA,yBAAA,CAAA,CACIH,GAAA,CAAA,CAAA;AAAA,IAAA,CAAA,CAAA,CAAAG,GAAA,CAAA,CAAA,KAAA,CAAA,CAAA,CAAA,CACIH,GAAA,CAAA,CAAA;AAAA,QAAA,CAAA,CAAA,CAAAC,GAAA,CAAA,CAAA,kBAAA,CAAA,CAAA,CAAA,CACAD,GAAA,CAAA,CAAA;SAAA,CAAAgE,CAAAA,EAAAA,CAAA,EAAAC,EAAA,CAAA,CAAA,CAAA,CAAA,CAOJvD,CAAAA,EAAAA,EACJV,CAAAA,EAAAA,CAAA,CAAA,CAAA;CAAA,CAAAU,CAAAA,EAAAA,EACAV,CAAAA,EAAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAA,CAAA,CAV0BW,EAAA,CAAA,CAAA,CAAAC,CAAAA,EAAAA,CAAA,OAAAmD,CAAAA,CAAAA,CAAAlC,YAAAqC,CAAAA,iBAAA,CAClBvD,CAAAA,EAAAA,CAAA,CAAA,CAAA,CAAAwD,IAAAC,CAAAL,CAAAA,CAAAA,CAAApC,OAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAAyC,CAAA,EAAA,CAAA,CAAA,CAAA,YAAA,CAAA,CC0BMC,GAAYC,EAAEC,CAAAA,GAAAA,CAAiBC,CAA6BC,CAAAA,CAAqB,CAAAC,CAAAA,aAAAA,CAAA,CAAAC,CAAAA,eAAAA,CAAA,CAAA,CAAA,CAAA,CAIzF,IAAOrD,CAAAA,CAAPsD,CAAOtD,CAAAA,OAAAA,CAAgC,CAAA,GAAA,CC1BtC,IAAMuD,EAAAA,CAA0C,IAAWlI,CAAAA,CAAA,KAC9D,CAAA,CAAA,IAAA,CAAA,WAAA,CAAA,IAAM1B,CAAO6J,CAAAA,CAAAA,CAAO5H,CAAW,CACzBM,CAAAA,CAAAA,CAA2BsH,CAAOlK,CAAAA,CAA8B,CAGtE,CAAA,OACI,EAHc,EAAA,MAAM4C,EAAyBd,SAAS,EAAA,CAAA,EAItD,CAACzB,CAAAA,CAAKO,eACNP,EAAAA,CAAAA,CAAKqD,qBAAuBC,EAAAA,WAAAA,IAAiB9E,CAC7C+D,EAAAA,CAAAA,CAAyBpB,UAAU,EAAA,CAM3C,CAEa2I,CAAAA,CAAAA,EAAAA,CAA4C,IAAWpI,CAAAA,CAAA,KAChE,CAAA,CAAA,IAAA,CAAA,WAAA,CAAA,IAAM1B,CAAO6J,CAAAA,CAAAA,CAAO5H,CAAW,CAAA,CACzBM,CAA2BsH,CAAAA,CAAAA,CAAOlK,CAA8B,CACtE,CAAA,OAAOK,CAAKqD,CAAAA,qBAAAA,EAAuBC,WAAW,EAAA,EAAM9E,CAAmB+D,EAAAA,CAAAA,CAAyBpB,YACpG,CAAA,CAAA,CCtBO,IAAM4I,EAAAA,CAAkCA,IAAK,CAChD,IAAM7J,CAAAA,CAAS2J,EAAOjL,CAA6B,CAAA,CACnD,OAAOsB,CAAAA,CAAO0B,SAAUiB,CAAAA,IAAAA,CAAKmH,EAAI,CAAA,IAAM9J,CAAOwG,CAAAA,OAAO,CAAC,CAC1D,CCFO,CAAA,IAAMuD,EAAiB,CAAA,CAC1B,CACIC,IAAM,CAAA,EAAA,CACNC,SAAW9D,CAAAA,EAAAA,CACX+D,OAAS,CAAA,CACLC,QAAUN,CAAAA,EAAAA,CAAAA,CAEdO,YAAa,CAACV,EAAuC,CACrDW,CAAAA,aAAAA,CAAe,CAACT,EAAyC,CACzDU,CAAAA,SAAAA,CAAW/F,GACd,CAAA"}