{"version":3,"file":"pvway-alpha-prime.mjs","sources":["../../../projects/alpha-prime/src/lib/services/alpha-prime.service.ts","../../../projects/alpha-prime/src/lib/components/alpha-prime-add-button/alpha-prime-add-button.component.ts","../../../projects/alpha-prime/src/lib/components/alpha-prime-add-button/alpha-prime-add-button.component.html","../../../projects/alpha-prime/src/lib/pipes/alpha-prime-boldify.pipe.ts","../../../projects/alpha-prime/src/lib/components/alpha-prime-auto-complete/alpha-prime-auto-complete.component.ts","../../../projects/alpha-prime/src/lib/components/alpha-prime-auto-complete/alpha-prime-auto-complete.component.html","../../../projects/alpha-prime/src/lib/components/alpha-prime-auto-complete/alpha-prime-auto-complete.ts","../../../projects/alpha-prime/src/lib/components/alpha-prime-cancel-button/alpha-prime-cancel-button.component.ts","../../../projects/alpha-prime/src/lib/components/alpha-prime-cancel-button/alpha-prime-cancel-button.component.html","../../../projects/alpha-prime/src/lib/components/alpha-prime-debug-tag/alpha-prime-debug-tag.component.ts","../../../projects/alpha-prime/src/lib/components/alpha-prime-debug-tag/alpha-prime-debug-tag.component.html","../../../projects/alpha-prime/src/lib/components/alpha-prime-confirmation-modal/alpha-prime-confirmation-modal.component.ts","../../../projects/alpha-prime/src/lib/components/alpha-prime-confirmation-modal/alpha-prime-confirmation-modal.component.html","../../../projects/alpha-prime/src/lib/components/alpha-prime-currency-input/alpha-prime-currency-input.component.ts","../../../projects/alpha-prime/src/lib/components/alpha-prime-currency-input/alpha-prime-currency-input.component.html","../../../projects/alpha-prime/src/lib/components/alpha-prime-date-picker/alpha-prime-date-picker.component.ts","../../../projects/alpha-prime/src/lib/components/alpha-prime-date-picker/alpha-prime-date-picker.component.html","../../../projects/alpha-prime/src/lib/components/alpha-prime-date-range-picker/alpha-prime-date-range-picker.component.ts","../../../projects/alpha-prime/src/lib/components/alpha-prime-date-range-picker/alpha-prime-date-range-picker.component.html","../../../projects/alpha-prime/src/lib/components/alpha-prime-label/alpha-prime-label.component.ts","../../../projects/alpha-prime/src/lib/components/alpha-prime-label/alpha-prime-label.component.html","../../../projects/alpha-prime/src/lib/components/alpha-prime-password-input/alpha-prime-password-input.component.ts","../../../projects/alpha-prime/src/lib/components/alpha-prime-password-input/alpha-prime-password-input.component.html","../../../projects/alpha-prime/src/lib/components/alpha-prime-progress-bar/alpha-prime-progress-bar.component.ts","../../../projects/alpha-prime/src/lib/components/alpha-prime-progress-bar/alpha-prime-progress-bar.component.html","../../../projects/alpha-prime/src/lib/components/alpha-prime-login-form/alpha-prime-login-form.component.ts","../../../projects/alpha-prime/src/lib/components/alpha-prime-login-form/alpha-prime-login-form.component.html","../../../projects/alpha-prime/src/lib/components/alpha-prime-login-modal/alpha-prime-login-modal.component.ts","../../../projects/alpha-prime/src/lib/components/alpha-prime-login-modal/alpha-prime-login-modal.component.html","../../../projects/alpha-prime/src/lib/services/alpha-prime-modal.service.ts","../../../projects/alpha-prime/src/lib/components/alpha-prime-delete-button/alpha-prime-delete-button.component.ts","../../../projects/alpha-prime/src/lib/components/alpha-prime-delete-button/alpha-prime-delete-button.component.html","../../../projects/alpha-prime/src/lib/components/alpha-prime-edit-button/alpha-prime-edit-button.component.ts","../../../projects/alpha-prime/src/lib/components/alpha-prime-edit-button/alpha-prime-edit-button.component.html","../../../projects/alpha-prime/src/lib/components/alpha-prime-file-upload/alpha-prime-file-upload.component.ts","../../../projects/alpha-prime/src/lib/components/alpha-prime-file-upload/alpha-prime-file-upload.component.html","../../../projects/alpha-prime/src/lib/components/alpha-prime-filter-box/alpha-prime-filter-box.component.ts","../../../projects/alpha-prime/src/lib/components/alpha-prime-filter-box/alpha-prime-filter-box.component.html","../../../projects/alpha-prime/src/lib/components/alpha-prime-number-input/alpha-prime-number-input.component.ts","../../../projects/alpha-prime/src/lib/components/alpha-prime-number-input/alpha-prime-number-input.component.html","../../../projects/alpha-prime/src/lib/components/alpha-prime-ok-button/alpha-prime-ok-button.ts","../../../projects/alpha-prime/src/lib/components/alpha-prime-ok-button/alpha-prime-ok-button.html","../../../projects/alpha-prime/src/lib/components/alpha-prime-save-button/alpha-prime-save-button.component.ts","../../../projects/alpha-prime/src/lib/components/alpha-prime-save-button/alpha-prime-save-button.component.html","../../../projects/alpha-prime/src/lib/components/alpha-prime-scroller/alpha-prime-scroller.component.ts","../../../projects/alpha-prime/src/lib/components/alpha-prime-scroller/alpha-prime-scroller.component.html","../../../projects/alpha-prime/src/lib/components/alpha-prime-select/alpha-prime-select.component.ts","../../../projects/alpha-prime/src/lib/components/alpha-prime-select/alpha-prime-select.component.html","../../../projects/alpha-prime/src/lib/components/alpha-prime-select/alpha-prime-select-info.ts","../../../projects/alpha-prime/src/lib/components/alpha-prime-submit-button/alpha-prime-submit-button.component.ts","../../../projects/alpha-prime/src/lib/components/alpha-prime-submit-button/alpha-prime-submit-button.component.html","../../../projects/alpha-prime/src/lib/components/alpha-prime-switch/alpha-prime-switch.component.ts","../../../projects/alpha-prime/src/lib/components/alpha-prime-switch/alpha-prime-switch.component.html","../../../projects/alpha-prime/src/lib/components/alpha-prime-switch/alpha-prime-switch-option.ts","../../../projects/alpha-prime/src/lib/directives/alpha-prime-remaining-height.directive.ts","../../../projects/alpha-prime/src/public-api.ts","../../../projects/alpha-prime/src/pvway-alpha-prime.ts"],"sourcesContent":["import {Injectable} from '@angular/core';\r\nimport {Observable, of} from \"rxjs\";\r\n\r\n@Injectable({\r\n  providedIn: 'root'\r\n})\r\nexport class AlphaPrimeService {\r\n\r\n  postNavigationLog: (path: string, title: string) => any =\r\n    () => {\r\n    };\r\n\r\n  getTr: (key: string, languageCode?: string) => string =\r\n    (key, languageCode) => `'${key}':'${languageCode}'`;\r\n\r\n  isProduction!: boolean;\r\n\r\n  /** OAuthService */\r\n  signIn: (\r\n    username: string,\r\n    password: string,\r\n    rememberMe: boolean) => Observable<boolean> = () => of(false);\r\n\r\n  /** UploadApiService */\r\n  upload: (\r\n    data: any,\r\n    notifyProgress: (progress: number) => any) => Observable<string> =\r\n    () => of('');\r\n  deleteUpload: (\r\n    uploadId: string) => Observable<any> =\r\n    () => of({});\r\n\r\n  /** LocalBusService*/\r\n  publish: (\r\n    payload: any,\r\n    channel: string) => number =\r\n    () => 0;\r\n  subscribe: (\r\n    callback: (payload: any) => any,\r\n    channel?: string) => number\r\n    = () => -1;\r\n  unsubscribe: (\r\n    id: number) => any = () => {\r\n  };\r\n\r\n  /**\r\n   * Initializes the service.\r\n   *\r\n   * @param {boolean} isProduction - A flag indicating if the application is running in production mode.\r\n   * @param translationService\r\n   * @param loggerService\r\n   * @param oAuthService\r\n   * @param uploadService\r\n   * @param localBusService\r\n   * @return {void}\r\n   */\r\n  init(\r\n    isProduction: boolean,\r\n    translationService: {\r\n      getTr: (\r\n        key: string,\r\n        languageCode?: string) => string\r\n    },\r\n    loggerService?: {\r\n      postNavigationLog: (\r\n        path: string,\r\n        title: string) => any\r\n    },\r\n    oAuthService?: {\r\n      signIn: (\r\n        username: string,\r\n        password: string,\r\n        rememberMe: boolean) => Observable<boolean>\r\n    },\r\n    uploadService?: {\r\n      upload: (\r\n        data: any,\r\n        notifyProgress: (progress: number) => any) => Observable<string>,\r\n      deleteUpload: (\r\n        uploadId: string) => Observable<any>\r\n    },\r\n    localBusService?: {\r\n      publish: (\r\n        payload: any,\r\n        channel: string) => number,\r\n      subscribe: (\r\n        callback: (payload: any) => any,\r\n        channel?: string) => number,\r\n      unsubscribe: (\r\n        id: number) => any\r\n    }): void {\r\n    this.isProduction = isProduction;\r\n    this.getTr = translationService.getTr;\r\n    if (loggerService) {\r\n      this.addLoggerService(\r\n        loggerService.postNavigationLog)\r\n    }\r\n    if (oAuthService) {\r\n      this.addOAuthService(oAuthService.signIn);\r\n    }\r\n    if (uploadService) {\r\n      this.addUploadService(\r\n        uploadService.upload,\r\n        uploadService.deleteUpload);\r\n    }\r\n    if (localBusService) {\r\n      this.addLocalBusService(\r\n        localBusService.publish,\r\n        localBusService.subscribe,\r\n        localBusService.unsubscribe);\r\n    }\r\n  }\r\n\r\n  addLoggerService(postNavigationLog: (\r\n    path: string,\r\n    title: string) => any): void {\r\n    this.postNavigationLog = postNavigationLog;\r\n  }\r\n\r\n  addOAuthService(\r\n    signIn: (\r\n      username: string,\r\n      password: string,\r\n      rememberMe: boolean) => Observable<boolean>) {\r\n    this.signIn = signIn;\r\n  }\r\n\r\n  addUploadService(\r\n    upload: (\r\n      data: any,\r\n      notifyProgress: (progress: number) => any) => Observable<string>,\r\n    deleteUpload: (\r\n      uploadId: string) => Observable<any>): void {\r\n    this.upload = upload;\r\n    this.deleteUpload = deleteUpload;\r\n  }\r\n\r\n  addLocalBusService(\r\n    publish: (\r\n      payload: any,\r\n      channel: string) => number,\r\n    subscribe: (\r\n      callback: (payload: any) => any,\r\n      channel?: string) => number,\r\n    unsubscribe: (\r\n      id: number) => any): void {\r\n    this.publish = publish;\r\n    this.subscribe = subscribe;\r\n    this.unsubscribe = unsubscribe;\r\n  }\r\n\r\n  generateRandomName(len?: number): string {\r\n    if (!len) {\r\n      len = 50;\r\n    }\r\n    let result: string = '';\r\n    const chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz';\r\n    const charsLen = chars.length;\r\n    for (let i = 0; i < len; i++) {\r\n      result += chars.charAt(Math.floor(Math.random() * charsLen));\r\n    }\r\n    return result;\r\n  }\r\n\r\n}\r\n","import {\r\n  Component,\r\n  Output,\r\n  EventEmitter,\r\n  input,\r\n  computed\r\n} from '@angular/core';\r\nimport {ButtonModule} from 'primeng/button';\r\nimport {TooltipModule} from 'primeng/tooltip';\r\nimport {AlphaPrimeService} from '../../services/alpha-prime.service';\r\n\r\n@Component({\r\n  selector: 'alpha-prime-add-button',\r\n  standalone: true,\r\n  templateUrl: './alpha-prime-add-button.component.html',\r\n  imports: [\r\n    ButtonModule,\r\n    TooltipModule\r\n  ],\r\n  styleUrls: ['./alpha-prime-add-button.component.css']\r\n})\r\nexport class AlphaPrimeAddButtonComponent {\r\n\r\n  disabled = input<boolean>(false);\r\n  caption = input<string>('');\r\n  effectiveCaption = computed(() => {\r\n    const customCaption = this.caption();\r\n    if (customCaption) return customCaption;\r\n\r\n    const translated = this.mPs.getTr('alpha.buttons.add');\r\n    // Fallback to 'Add' if translation returns undefined or the key itself\r\n    return (translated && !translated.includes('undefined')) ? translated : 'Add';\r\n  });\r\n  sm = input<boolean>(false);\r\n  showLabel = input<boolean>(false);\r\n  @Output() clicked = new EventEmitter<any>();\r\n\r\n  constructor(private mPs: AlphaPrimeService) {\r\n  }\r\n\r\n  onClicked(): void {\r\n    this.clicked.emit();\r\n  }\r\n\r\n}\r\n","<p-button\r\n  [label]=\"showLabel() ? effectiveCaption() : ''\"\r\n  [pTooltip]=\"!showLabel() ? effectiveCaption() : ''\"\r\n  severity=\"info\"\r\n  [icon]=\"'fa fa-plus-circle'\"\r\n  [disabled]=\"disabled()\"\r\n  [size]=\"sm() ? 'small' : 'large'\"\r\n  (click)=\"onClicked()\"\r\n  [attr.aria-label]=\"effectiveCaption()\"\r\n  [class]=\"'alpha-prime-button' + (!showLabel() ? ' p-button-icon-only' : '')\"\r\n></p-button>\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n/** returns the inner HTML boldifying the given.\r\n * Usage alphaBoldify:term\r\n * where term is then part of the text to display in bold */\r\n@Pipe({\r\n  name: 'alphaPrimeBoldify',\r\n  standalone: true\r\n})\r\nexport class AlphaPrimeBoldifyPipe implements PipeTransform {\r\n\r\n  /** returns the inner HTML boldifying the given term.\r\n   * Usage alphaBoldify:term\r\n   * where term is then part of the text to display in bold.\r\n   * Example 'France' | alphaBoldify:'fr'\r\n   * will return &lt;strong&gt;Fr&lt;/strong&gt;ance */\r\n  transform(value: unknown, ...args: unknown[]): unknown {\r\n\r\n    if (value == null) {\r\n      return '';\r\n    }\r\n    if (args.length == 0\r\n       || args[0] == null) {\r\n      return value;\r\n    }\r\n    const input = value as string;\r\n    const term = args[0] as string;\r\n    const len = term.length;\r\n\r\n    const lcInput = input.toLowerCase();\r\n    const lcTerm = term.toLowerCase();\r\n\r\n    const pos = lcInput.indexOf(lcTerm);\r\n    if (pos < 0) return value;\r\n\r\n    const leftPart = input.substring(0, pos);\r\n    const termPart = input.substring(pos, pos + len);\r\n    const rightPart = input.substring(pos + len);\r\n    return `${leftPart}<strong>${termPart}</strong>${rightPart}`;\r\n  }\r\n\r\n}\r\n","import {Component, EventEmitter, Input, Output, input, signal, OnDestroy} from '@angular/core';\r\nimport {RippleModule} from 'primeng/ripple';\r\nimport {InputTextModule} from 'primeng/inputtext';\r\nimport {ButtonModule} from 'primeng/button';\r\nimport {AutoCompleteModule, AutoCompleteSelectEvent} from 'primeng/autocomplete';\r\nimport {AlphaPrimeBoldifyPipe} from '../../pipes/alpha-prime-boldify.pipe';\r\nimport {NgClass} from '@angular/common';\r\nimport {FormsModule} from '@angular/forms';\r\nimport {IAlphaPrimeAutoCompleteEntry} from './alpha-prime-auto-complete';\r\nimport {Observable, of, Subscription} from 'rxjs';\r\nimport {InputGroup} from 'primeng/inputgroup';\r\nimport {InputGroupAddon} from 'primeng/inputgroupaddon';\r\n\r\n/*\r\nhttps://github.com/primefaces/primeng/issues/1552\r\n\r\nhow to make ng prime autocomplete full width\r\n\r\nIn template\r\n-----------\r\n[style]=\"{'width':'100%'}\"\r\n[inputStyle]=\"{'width':'100%'}\"\r\nclass=\"p-autocomplete\"\r\n\r\nIn css\r\n------\r\n.p-autocomplete{\r\n    width: 100%;\r\n  }\r\n*/\r\n\r\n@Component({\r\n  selector: 'alpha-prime-auto-complete',\r\n  standalone: true,\r\n  imports: [\r\n    // ANGULAR\r\n    FormsModule,\r\n    NgClass,\r\n    // ALPHA\r\n    AlphaPrimeBoldifyPipe,\r\n    // PRIME\r\n    AutoCompleteModule,\r\n    ButtonModule,\r\n    InputTextModule,\r\n    RippleModule,\r\n    InputGroup,\r\n    InputGroupAddon\r\n  ],\r\n  templateUrl: './alpha-prime-auto-complete.component.html',\r\n  styleUrls: ['./alpha-prime-auto-complete.component.css']\r\n})\r\nexport class AlphaPrimeAutoCompleteComponent implements OnDestroy {\r\n  @Input({required: true}) feeder: (term: string) => Observable<IAlphaPrimeAutoCompleteEntry[]>\r\n    = () => of([]);\r\n\r\n  @Input()\r\n  set entry(entry: IAlphaPrimeAutoCompleteEntry | undefined) {\r\n    this.model = entry;\r\n    if (entry === undefined) {\r\n      this.term = '';\r\n      this.valid = false;\r\n    } else {\r\n      this.term = entry.caption;\r\n      this.valid = true;\r\n    }\r\n  }\r\n\r\n  disabled = input<boolean>(false);\r\n  placeHolder = input<string>('');\r\n  emptyMessage = input<string>('');\r\n  showAdd = input<boolean>(false);\r\n  readonly = input<boolean>(false);\r\n  readonlyCaption = input<string>('');\r\n  sm = input<boolean>(false);\r\n\r\n  @Input() clearOnSelect = false;\r\n  @Input() timeout = 500;\r\n\r\n  @Output() cleared = new EventEmitter<void>();\r\n  @Output() selected = new EventEmitter<IAlphaPrimeAutoCompleteEntry>();\r\n  @Output() addClicked = new EventEmitter<string>();\r\n\r\n  baseInputStyle: Record<string, string> = {\r\n    'width': '100%',\r\n    'border-top-right-radius': '0',\r\n    'border-bottom-right-radius': '0'\r\n  };\r\n\r\n  smInputStyle: Record<string, string> = {\r\n    'width': '100%',\r\n    'border-top-right-radius': '0',\r\n    'border-bottom-right-radius': '0',\r\n    'font-size': 'x-small'\r\n  };\r\n\r\n  get inputStyle(): any {\r\n    return this.sm()\r\n      ? this.smInputStyle\r\n      : this.baseInputStyle;\r\n  }\r\n\r\n  model: IAlphaPrimeAutoCompleteEntry | undefined;\r\n  term = '';\r\n  searching = false;\r\n  searchFailed = false;\r\n  valid = false;\r\n  feedTimer: ReturnType<typeof setTimeout> | undefined;\r\n  feed: Subscription | undefined;\r\n\r\n  constructor() {\r\n  }\r\n\r\n  suggestions =\r\n    signal<IAlphaPrimeAutoCompleteEntry[]>([]);\r\n\r\n  onFeed(event: any) {\r\n    if (this.feedTimer) {\r\n      clearTimeout(this.feedTimer);\r\n    }\r\n    this.feedTimer = setTimeout(\r\n      () => {\r\n        this.term = event.query;\r\n        if (this.term === '') {\r\n          this.clear(true);\r\n          return;\r\n        }\r\n        if (this.term === '*') {\r\n          this.term = '%'\r\n        }\r\n        this.searching = true;\r\n        this.valid = false;\r\n        this.searchFailed = false;\r\n\r\n        this.feed = this.feeder(this.term)\r\n          .subscribe({\r\n            next: (suggestions: IAlphaPrimeAutoCompleteEntry[]) => {\r\n              this.suggestions.set(suggestions);\r\n              this.searching = false;\r\n            },\r\n            error: (error: any) => {\r\n              console.error(error);\r\n              this.searchFailed = true;\r\n              this.searching = false;\r\n            }\r\n          });\r\n      }, this.timeout);\r\n  }\r\n\r\n  clear(emit: boolean): void {\r\n    if (this.feedTimer) {\r\n      clearTimeout(this.feedTimer);\r\n      this.feedTimer = undefined;\r\n    }\r\n    if (this.feed) {\r\n      this.feed.unsubscribe();\r\n      this.feed = undefined;\r\n    }\r\n    this.suggestions.set([]);\r\n    this.model = undefined;\r\n    this.valid = false;\r\n    this.term = '';\r\n    if (emit) {\r\n      this.cleared.emit();\r\n    }\r\n  }\r\n\r\n  onClear(): void {\r\n    this.clear(true);\r\n  }\r\n\r\n  onSelected(event: AutoCompleteSelectEvent): void {\r\n    const entry = event.value as IAlphaPrimeAutoCompleteEntry\r\n    this.term = entry.caption;\r\n    this.selected.emit(entry);\r\n    this.valid = true;\r\n    if (this.clearOnSelect) {\r\n      setTimeout(() => {\r\n        this.clear(false);\r\n      }, 100);\r\n    }\r\n  }\r\n\r\n  onAdd(): void {\r\n    this.addClicked.emit(this.term);\r\n  }\r\n\r\n  ngOnDestroy(): void {\r\n    if (this.feedTimer) {\r\n      clearTimeout(this.feedTimer);\r\n      this.feedTimer = undefined;\r\n    }\r\n    if (this.feed) {\r\n      this.feed.unsubscribe();\r\n      this.feed = undefined;\r\n    }\r\n  }\r\n\r\n}\r\n","@if (!readonly()) {\r\n\r\n  <form autocomplete=\"off\">\r\n\r\n    <p-input-group>\r\n\r\n      <p-autoComplete\r\n        [style]=\"{'width':'100%'}\"\r\n        [inputStyle]=\"inputStyle\"\r\n        class=\"p-autocomplete\"\r\n        [(ngModel)]=\"model\"\r\n        (onClear)=\"onClear()\"\r\n        (completeMethod)=\"onFeed($event)\"\r\n        (onSelect)=\"onSelected($event)\"\r\n        [disabled]=\"disabled()\"\r\n        [emptyMessage]=\"emptyMessage()\"\r\n        [placeholder]=\"placeHolder()\"\r\n        appendTo=\"body\"\r\n        [suggestions]=\"suggestions()\"\r\n        [ngModelOptions]=\"{standalone: true}\"\r\n        [completeOnFocus]=\"false\"\r\n        optionLabel=\"caption\"\r\n        [autocomplete]=\"''\"\r\n        [autoHighlight]=\"true\"\r\n        [forceSelection]=\"false\">\r\n        <ng-template let-entry pTemplate=\"item\">\r\n          <span [innerHTML]=\"entry.caption | alphaPrimeBoldify:term\"></span>\r\n        </ng-template>\r\n      </p-autoComplete>\r\n\r\n      @if (term) {\r\n        <p-inputgroup-addon>\r\n          <p-button\r\n            severity=\"secondary\"\r\n            (click)=\"onClear()\"\r\n            [disabled]=\"disabled() || searching\"\r\n            [ngClass]=\"sm() ? 'p-button-sm' : ''\"\r\n            icon=\"fa fa-times\">\r\n          </p-button>\r\n        </p-inputgroup-addon>\r\n      }\r\n      @if (term && !valid && !searching && showAdd()) {\r\n        <p-inputgroup-addon>\r\n          <button type=\"button\"\r\n                  pButton\r\n                  severity=\"info\"\r\n                  pRipple\r\n                  tabindex=\"-1\"\r\n                  (click)=\"onAdd()\"\r\n                  [disabled]=\"searching\"\r\n                  style=\"color: #EEF\"\r\n                  [ngClass]=\"sm() ? 'p-button-sm' : ''\"\r\n                  icon=\"fa fa-plus\">\r\n          </button>\r\n        </p-inputgroup-addon>\r\n      }\r\n\r\n    </p-input-group>\r\n\r\n  </form>\r\n\r\n} @else {\r\n\r\n  <input\r\n    pInputText\r\n    [readOnly]=\"true\"\r\n    [value]=\"readonlyCaption()\">\r\n\r\n}\r\n","import {map, Observable} from \"rxjs\";\r\n\r\nexport interface IAlphaPrimeAutoCompleteEntry {\r\n  id: string;\r\n  caption: any;\r\n  data?: any;\r\n}\r\n\r\nexport class AlphaPrimeAutoComplete {\r\n\r\n  /**\r\n   * Helper that eases the translation of a service feeder\r\n   * returning domain entities to a view feeder returning\r\n   * @param term the searched term\r\n   * @param feeder a method that returns an observable of <T> items for the given term\r\n   * @param mapper a method that converts a T item into a IAlphaAutoComplete item\r\n   * @return  array of IAlphaAutoComplete entries\r\n   */\r\n  static mapFeeder<T>(\r\n    term: string,\r\n    feeder: (term: string) => Observable<T[]>,\r\n    mapper: (item: T) => IAlphaPrimeAutoCompleteEntry): Observable<IAlphaPrimeAutoCompleteEntry[]> {\r\n    return feeder(term)\r\n      .pipe(\r\n        map((items: T[]) => items\r\n          .map((item: T) => mapper(item))));\r\n  }\r\n}\r\n","import {Component, computed, EventEmitter, input, Output} from '@angular/core';\r\nimport {ButtonModule} from 'primeng/button';\r\nimport {TooltipModule} from 'primeng/tooltip';\r\nimport {AlphaPrimeService} from '../../services/alpha-prime.service';\r\n\r\n@Component({\r\n  standalone: true,\r\n  selector: 'alpha-prime-cancel-button',\r\n  imports: [\r\n    ButtonModule,\r\n    TooltipModule\r\n  ],\r\n  templateUrl: './alpha-prime-cancel-button.component.html',\r\n  styleUrls: ['./alpha-prime-cancel-button.component.css']\r\n})\r\nexport class AlphaPrimeCancelButtonComponent {\r\n\r\n  disabled = input<boolean>(false);\r\n  caption = input<string>('');\r\n  effectiveCaption = computed(() =>\r\n    this.caption() || this.mPs.getTr('alpha.buttons.cancel')\r\n  );\r\n  sm=input<boolean>(false);\r\n  showLabel = input<boolean>(false);\r\n  @Output() clicked = new EventEmitter<any>();\r\n\r\n  constructor(private mPs: AlphaPrimeService) {\r\n  }\r\n\r\n  onClicked(): void {\r\n    this.clicked.emit();\r\n  }\r\n\r\n}\r\n","<p-button\r\n  [label]=\"showLabel() ? effectiveCaption() : ''\"\r\n  [pTooltip]=\"!showLabel() ? effectiveCaption() : ''\"\r\n  severity=\"secondary\"\r\n  [icon]=\"'fa fa-ban'\"\r\n  [disabled]=\"disabled()\"\r\n  [size]=\"sm() ? 'small' : 'large'\"\r\n  (click)=\"onClicked()\"\r\n  [attr.aria-label]=\"effectiveCaption()\"\r\n  [class]=\"'alpha-prime-button' + (!showLabel() ? ' p-button-icon-only' : '')\"\r\n></p-button>\r\n","import {Component, Input, signal} from '@angular/core';\r\nimport {AlphaPrimeService} from '../../services/alpha-prime.service';\r\nimport {Tooltip} from 'primeng/tooltip';\r\n\r\n@Component({\r\n  selector: 'alpha-prime-debug-tag',\r\n  imports: [\r\n    Tooltip\r\n  ],\r\n  templateUrl: './alpha-prime-debug-tag.component.html',\r\n  styleUrls: ['./alpha-prime-debug-tag.component.css']\r\n})\r\nexport class AlphaPrimeDebugTagComponent {\r\n  visible = false;\r\n\r\n  // Internal signal for reactive usage inside the component\r\n  tagSignal = signal<string>('');\r\n\r\n  // Build-time enforcement: expose a traditional string input (`tag`) marked required\r\n  // so Angular's template type-checker enforces the presence of the input when the\r\n  // component is used in templates. The setter updates the internal signal.\r\n  @Input({ required: true })\r\n  set tag(value: string) {\r\n    this.tagSignal.set(value);\r\n  }\r\n  get tag(): string {\r\n    return this.tagSignal();\r\n  }\r\n\r\n  constructor(private mPs: AlphaPrimeService) { }\r\n\r\n  ngOnInit(): void {\r\n    if (this.mPs.isProduction) {\r\n      localStorage.setItem('alphaHideDebugTag', 'true');\r\n    }\r\n    const hide = localStorage.getItem('alphaHideDebugTag');\r\n    this.visible = hide == null || hide == 'false';\r\n  }\r\n\r\n  static hide(hidden: boolean): void {\r\n    if (hidden) {\r\n      localStorage.setItem('alphaHideDebugTag', 'true');\r\n    } else {\r\n      localStorage.removeItem('alphaHideDebugTag');\r\n    }\r\n    window.location.reload();\r\n  }\r\n\r\n  static get hidden(): boolean {\r\n    const hide = localStorage.getItem('alphaHideDebugTag');\r\n    return hide == 'true';\r\n  }\r\n}\r\n","@if(visible) {\r\n  <span\r\n        class=\"p-pr-5\"\r\n        pTooltip=\"{{tag}}\" style=\"font-size: xx-small; color:gold;\" >\r\n   <i class=\"fa fa-bug\"></i>\r\n</span>\r\n}\r\n","import {Component, ChangeDetectionStrategy, OnInit} from '@angular/core';\r\nimport {AlphaPrimeService} from '../../services/alpha-prime.service';\r\nimport {DynamicDialogConfig, DynamicDialogRef} from 'primeng/dynamicdialog';\r\nimport {Button} from 'primeng/button';\r\nimport {AlphaPrimeDebugTagComponent} from '../alpha-prime-debug-tag/alpha-prime-debug-tag.component';\r\n\r\n@Component({\r\n  selector: 'alpha-prime-confirmation-modal',\r\n  imports: [\r\n    AlphaPrimeDebugTagComponent,\r\n    Button\r\n  ],\r\n  templateUrl: './alpha-prime-confirmation-modal.component.html',\r\n  styleUrls: ['./alpha-prime-confirmation-modal.component.css'],\r\n  changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class AlphaPrimeConfirmationModalComponent implements OnInit {\r\n  onClose: (confirmed: boolean) => any = () => { };\r\n\r\n  title: string;\r\n  message: string;\r\n  yes: string;\r\n  no: string;\r\n\r\n  constructor(\r\n    private mPs: AlphaPrimeService,\r\n    private mDdr: DynamicDialogRef,\r\n    private mDdc: DynamicDialogConfig) {\r\n    this.title = this.mPs.getTr('alpha.confirmationModal.title');\r\n    this.message = this.mPs.getTr('alpha.confirmationModal.message');\r\n    this.yes = this.mPs.getTr('alpha.confirmationModal.yes');\r\n    this.no = this.mPs.getTr('alpha.confirmationModal.no');\r\n  }\r\n\r\n  ngOnInit() {\r\n    this.mDdc.data.setInstance(this);\r\n  }\r\n\r\n  init(\r\n    onClose: (confirmed: boolean) => any,\r\n    title?: string,\r\n    message?: string,\r\n    yes?: string,\r\n    no?: string) {\r\n    this.onClose = onClose;\r\n\r\n    setTimeout(\r\n      () => {\r\n        this.mDdc.header = title\r\n          ? title\r\n          : this.mPs.getTr('alpha.confirmationModal.title');\r\n      }, 100);\r\n\r\n    if (message) {\r\n      this.message = message;\r\n    }\r\n    if (yes) {\r\n      this.yes = yes;\r\n    }\r\n    if (no) {\r\n      this.no = no;\r\n    }\r\n  }\r\n\r\n  onYes(): void {\r\n    this.onClose(true);\r\n    this.mDdr.close(true);\r\n  }\r\n\r\n  onNo(): void {\r\n    this.onClose(false);\r\n    this.mDdr.close(false);\r\n  }\r\n\r\n}\r\n","<alpha-prime-debug-tag tag=\"alpha-prime-debug-tag\"></alpha-prime-debug-tag>\r\n\r\n<div class=\"my-6\">\r\n  <h2>{{ message }}</h2>\r\n</div>\r\n\r\n<div class=\"p-m-3 text-right \">\r\n\r\n  <p-button\r\n    #noButton\r\n    class=\"mr-4\"\r\n    severity=\"secondary\"\r\n    [label]=\"no\"\r\n    (click)=\"onNo()\">\r\n  </p-button>\r\n\r\n  <p-button\r\n    severity=\"secondary\"\r\n    (click)=\"onYes()\"\r\n    [label]=\"yes\">\r\n  </p-button>\r\n\r\n\r\n</div>\r\n","import {Component, EventEmitter, Input, Output} from '@angular/core';\r\nimport {AlphaPrimeService} from '../../services/alpha-prime.service';\r\nimport {InputText} from 'primeng/inputtext';\r\nimport {KeyFilter} from 'primeng/keyfilter';\r\nimport {NgClass, NgStyle} from '@angular/common';\r\nimport {FormsModule} from '@angular/forms';\r\nimport {Button} from 'primeng/button';\r\nimport {Ripple} from 'primeng/ripple';\r\nimport {InputGroupAddon} from 'primeng/inputgroupaddon';\r\nimport {InputGroup} from 'primeng/inputgroup';\r\n\r\n@Component({\r\n  selector: 'alpha-prime-currency-input',\r\n  imports: [\r\n    InputText,\r\n    KeyFilter,\r\n    NgClass,\r\n    FormsModule,\r\n    Ripple,\r\n    Button,\r\n    NgStyle,\r\n    InputGroupAddon,\r\n    InputGroup\r\n  ],\r\n  templateUrl: './alpha-prime-currency-input.component.html',\r\n  styleUrl: './alpha-prime-currency-input.component.css'\r\n})\r\nexport class AlphaPrimeCurrencyInputComponent {\r\n\r\n  //https://www.regextester.com/\r\n  // noinspection RegExpRedundantEscape\r\n  realNumber: RegExp = /[0-9\\,\\.\\-]/;\r\n\r\n  @Input() name;\r\n  @Input() disabled = false;\r\n  @Input() placeHolder = '';\r\n  @Input() min = -Number.MAX_VALUE;\r\n  @Input() max = Number.MAX_VALUE;\r\n  @Input() currency = 'EUR';\r\n  @Input() currencySymbol = '€';\r\n  @Input() locale = 'fr-BE';\r\n  @Input() readonly = false;\r\n  @Input() readonlyCaption: string | undefined = '';\r\n  @Input() sm = false;\r\n  @Input() showClear = true;\r\n\r\n  sVal: string | number | undefined;\r\n\r\n  @Input({required: true})\r\n  set value(value: number | undefined) {\r\n    switch (value) {\r\n      case undefined:\r\n        this.sVal = undefined;\r\n        break;\r\n      case 0:\r\n        this.sVal = '0';\r\n        break;\r\n      default:\r\n        this.sVal = value.toString();\r\n    }\r\n  }\r\n\r\n  get value(): number | undefined {\r\n    if (!this.sVal) {\r\n      return undefined;\r\n    }\r\n    const n = Number(this.sVal);\r\n    return isNaN(n) ? undefined : n;\r\n  }\r\n\r\n  @Output() valueChange = new EventEmitter<number>();\r\n\r\n  constructor(private mPs: AlphaPrimeService) {\r\n    this.name = this.mPs.generateRandomName();\r\n  }\r\n\r\n  invalid = false;\r\n\r\n  baseInputStyle = {\r\n    'width': '100%',\r\n    'border-top-right-radius': '0',\r\n    'border-bottom-right-radius': '0'\r\n  };\r\n\r\n  smInputStyle = {\r\n    'width': '100%',\r\n    'border-top-right-radius': '0',\r\n    'border-bottom-right-radius': '0',\r\n    'font-size': 'x-small'\r\n  };\r\n\r\n  get inputStyle(): any {\r\n    return this.sm\r\n      ? this.smInputStyle\r\n      : this.baseInputStyle;\r\n  }\r\n\r\n  onTextChange(sVal: string | number | undefined) {\r\n    if (!sVal) {\r\n      this.onClear();\r\n      return;\r\n    }\r\n    // make sure sVal is a string\r\n    sVal = `${sVal}`;\r\n    this.sVal = sVal.replaceAll(',', '.');\r\n    if (this.sVal === '-0'\r\n      || this.sVal === '-.'\r\n      || this.sVal === '-0.') {\r\n      this.invalid = false;\r\n      this.valueChange.emit(undefined);\r\n      return;\r\n    }\r\n    const n = Number(this.sVal);\r\n    let v: number | undefined;\r\n    if (isNaN(n)\r\n      || n < this.min\r\n      || n > this.max) {\r\n      this.invalid = true;\r\n      v = undefined;\r\n    } else {\r\n      this.invalid = false;\r\n      v = n;\r\n    }\r\n    this.valueChange.emit(v);\r\n  }\r\n\r\n  onClear(): void {\r\n    this.invalid = false;\r\n    this.sVal = undefined;\r\n    this.valueChange.emit(undefined);\r\n  }\r\n\r\n  onBlur(): void {\r\n    const v = this.value;\r\n    if (v) {\r\n      this.sVal = v.toFixed(2);\r\n    }\r\n  }\r\n\r\n}\r\n","@if (!readonly) {\r\n\r\n  <p-input-group>\r\n\r\n    <p-inputgroup-addon>\r\n      {{ currencySymbol }}\r\n    </p-inputgroup-addon>\r\n\r\n    <input type=\"text\"\r\n           pInputText\r\n           [name]=\"name\"\r\n           [pKeyFilter]=\"realNumber\"\r\n           [placeholder]=\"placeHolder\"\r\n           [disabled]=\"disabled\"\r\n           [ngStyle]=\"inputStyle\"\r\n           [ngClass]=\"{'ng-invalid' : invalid}\"\r\n           [ngModel]=\"sVal\"\r\n           (ngModelChange)=\"onTextChange($event)\"\r\n           (blur)=\"onBlur()\"\r\n    >\r\n\r\n    @if (sVal && showClear) {\r\n      <p-inputgroup-addon>\r\n        <p-button\r\n          pRipple\r\n          tabindex=\"-1\"\r\n          [disabled]=\"disabled\"\r\n          (click)=\"onClear()\"\r\n          severity=\"secondary\"\r\n          icon=\"fa fa-times\"\r\n        ></p-button>\r\n      </p-inputgroup-addon>\r\n    }\r\n\r\n  </p-input-group>\r\n} @else {\r\n  <input\r\n    pInputText\r\n    [readonly]=\"true\"\r\n    [value]=\"readonlyCaption\">\r\n}\r\n","import {Component, EventEmitter, Input, OnDestroy, Output, signal} from '@angular/core';\r\nimport {AlphaPrimeService} from '../../services/alpha-prime.service';\r\nimport {InputGroup} from 'primeng/inputgroup';\r\nimport {DatePicker} from 'primeng/datepicker';\r\nimport {FormsModule} from '@angular/forms';\r\nimport {InputGroupAddon} from 'primeng/inputgroupaddon';\r\nimport {Button} from 'primeng/button';\r\nimport {Ripple} from 'primeng/ripple';\r\nimport {NgClass} from '@angular/common';\r\nimport {InputText} from 'primeng/inputtext';\r\n\r\n@Component({\r\n  selector: 'alpha-prime-date-picker',\r\n  imports: [\r\n    InputGroup,\r\n    DatePicker,\r\n    FormsModule,\r\n    InputGroupAddon,\r\n    Button,\r\n    Ripple,\r\n    NgClass,\r\n    InputText\r\n  ],\r\n  templateUrl: './alpha-prime-date-picker.component.html',\r\n  styleUrl: './alpha-prime-date-picker.component.css'\r\n})\r\nexport class AlphaPrimeDatePickerComponent implements OnDestroy {\r\n  @Input() name;\r\n\r\n  phInterval: any;\r\n  ph = signal<string>('dd/mm/yyyy');\r\n\r\n  @Input()\r\n  set placeHolder(ph: string | string[]) {\r\n    const phLoop: string[] = [this.dateFormat];\r\n    if (Array.isArray(ph)) {\r\n      for (const p of ph) {\r\n        phLoop.push(p);\r\n      }\r\n    } else {\r\n      phLoop.push(ph);\r\n    }\r\n\r\n    let i  = 0;\r\n    this.ph.set(phLoop[i]);\r\n    this.phInterval = setInterval(() => {\r\n      i++;\r\n      if (i > ph.length) {\r\n        i = 0;\r\n      }\r\n      this.ph.set(phLoop[i]);\r\n    }, 3000);\r\n  }\r\n\r\n  @Input() disabled = false;\r\n  @Input() showClear = true;\r\n  @Input() showTime = false;\r\n  @Input() showSeconds = false;\r\n  @Input() dateFormat = 'dd/mm/yy';\r\n  @Input() minDate: Date = new Date(1971, 0, 1);\r\n  @Input() maxDate: Date = new Date(3000, 11, 31);\r\n  @Input() date: Date | undefined;\r\n  @Input() readonly = false;\r\n  @Input() readonlyCaption: string | undefined | null = '';\r\n  @Input() sm = false;\r\n  @Output() dateChange = new EventEmitter<Date | undefined>();\r\n\r\n  constructor(private mPs: AlphaPrimeService) {\r\n    this.name = this.mPs.generateRandomName();\r\n  }\r\n\r\n  baseInputStyle = {\r\n    'width': '100%',\r\n    'border-top-right-radius': '0',\r\n    'border-bottom-right-radius': '0'\r\n  };\r\n\r\n  smInputStyle = {\r\n    'width': '100%',\r\n    'border-top-right-radius': '0',\r\n    'border-bottom-right-radius': '0',\r\n    'font-size': 'x-small'\r\n  };\r\n\r\n  get inputStyle(): any {\r\n    return this.sm\r\n      ? this.smInputStyle\r\n      : this.baseInputStyle;\r\n  }\r\n\r\n  ngOnDestroy(): void {\r\n    if (this.phInterval) {\r\n      clearInterval(this.phInterval);\r\n    }\r\n  }\r\n\r\n  onClear(): void {\r\n    this.date = undefined;\r\n    this.dateChange.emit(undefined);\r\n  }\r\n\r\n  onDateChanged(dt: Date): void {\r\n    this.dateChange.emit(dt);\r\n  }\r\n\r\n}\r\n","@if (!readonly) {\r\n  <p-inputgroup>\r\n    <p-date-picker\r\n      [style]=\"{'width':'100%' }\"\r\n      [inputStyle]=\"inputStyle\"\r\n      class=\"p-calendar\"\r\n      [placeholder]=\"ph()\"\r\n      [name]=\"name\"\r\n      appendTo=\"body\"\r\n      [showTime]=\"showTime\"\r\n      [showSeconds]=\"showSeconds\"\r\n      [firstDayOfWeek]=\"1\"\r\n      [(ngModel)]=\"date\"\r\n      [minDate]=\"minDate\"\r\n      [maxDate]=\"maxDate\"\r\n      [disabled]=\"disabled\"\r\n      (ngModelChange)=\"onDateChanged($event)\"\r\n      [dateFormat]=\"dateFormat\"\r\n      selectionMode=\"single\"\r\n      #cal>\r\n    </p-date-picker>\r\n\r\n    @if (date && showClear) {\r\n      <p-inputgroup-addon>\r\n        <p-button\r\n          pRipple\r\n          tabindex=\"-1\"\r\n          [disabled]=\"disabled\"\r\n          (click)=\"onClear()\"\r\n          severity=\"secondary\"\r\n          [ngClass]=\"sm ? 'p-button-sm' : ''\"\r\n          icon=\"fa fa-times\">\r\n        </p-button>\r\n      </p-inputgroup-addon>\r\n    }\r\n\r\n    <p-inputgroup-addon>\r\n      <p-button\r\n        pRipple\r\n        tabindex=\"-1\"\r\n        severity=\"info\"\r\n        [ngClass]=\"sm ? 'p-button-sm' : ''\"\r\n        [disabled]=\"disabled\"\r\n        (click)=\"cal.toggle()\"\r\n        icon=\"fa fa-calendar\"\r\n      ></p-button>\r\n    </p-inputgroup-addon>\r\n\r\n  </p-inputgroup>\r\n\r\n} @else {\r\n  <input\r\n         pInputText\r\n         [readonly]=\"true\"\r\n         [value]=\"readonlyCaption\">\r\n}\r\n","import {Component, EventEmitter, Input, Output} from '@angular/core';\r\nimport {InputText} from 'primeng/inputtext';\r\nimport {DatePicker} from 'primeng/datepicker';\r\nimport {FormsModule} from '@angular/forms';\r\nimport {InputGroup} from 'primeng/inputgroup';\r\nimport {InputGroupAddon} from 'primeng/inputgroupaddon';\r\nimport {Button} from 'primeng/button';\r\nimport {Ripple} from 'primeng/ripple';\r\nimport {NgClass} from '@angular/common';\r\n\r\n@Component({\r\n  selector: 'alpha-prime-date-range-picker',\r\n  standalone: true,\r\n  imports: [\r\n    InputText,\r\n    DatePicker,\r\n    FormsModule,\r\n    InputGroup,\r\n    InputGroupAddon,\r\n    Button,\r\n    Ripple,\r\n    NgClass\r\n  ],\r\n  templateUrl: './alpha-prime-date-range-picker.component.html',\r\n  styleUrl: './alpha-prime-date-range-picker.component.css'\r\n})\r\nexport class AlphaPrimeDateRangePickerComponent {\r\n  dateRange: Date[] | undefined;\r\n\r\n  @Input() startDate: Date | undefined;\r\n  @Output() startDateChange = new EventEmitter<Date | undefined>();\r\n\r\n  @Input() endDate: Date | undefined;\r\n  @Output() endDateChange = new EventEmitter<Date | undefined>();\r\n\r\n  @Input() disabled = false;\r\n\r\n  @Input() minDate: Date = new Date(1971, 0, 1);\r\n  @Input() maxDate: Date = new Date(3000, 11, 31);\r\n  @Input() displayMonths = 1;\r\n  @Input() dateFormat = 'dd M yy';\r\n  @Input() placeHolder = '';\r\n  @Input() readonly = false;\r\n  @Input() readonlyCaption = '';\r\n  @Input() sm = false;\r\n\r\n  baseInputStyle = {\r\n    'width': '100%',\r\n    'border-top-right-radius': '0',\r\n    'border-bottom-right-radius': '0'\r\n  };\r\n\r\n  smInputStyle = {\r\n    'width': '100%',\r\n    'border-top-right-radius': '0',\r\n    'border-bottom-right-radius': '0',\r\n    'font-size': 'x-small'\r\n  };\r\n\r\n  get inputStyle(): any {\r\n    return this.sm\r\n      ? this.smInputStyle\r\n      : this.baseInputStyle;\r\n  }\r\n\r\n  onSelection(dateRange: Date[]) {\r\n    this.startDate = dateRange[0];\r\n    this.endDate = dateRange[1] == null\r\n      ? undefined\r\n      : dateRange[1];\r\n    this.startDateChange.emit(this.startDate);\r\n    this.endDateChange.emit(this.endDate);\r\n  }\r\n\r\n  onClear(): void {\r\n    this.dateRange = undefined;\r\n    this.startDate = undefined;\r\n    this.endDate = undefined;\r\n    this.startDateChange.emit(this.startDate);\r\n    this.endDateChange.emit(this.startDate);\r\n  }\r\n\r\n}\r\n","@if (!readonly) {\r\n  <p-inputgroup>\r\n    <p-date-picker\r\n      [style]=\"{'width':'100%'}\"\r\n      [inputStyle]=\"inputStyle\"\r\n      class=\"p-calendar\"\r\n      selectionMode=\"range\"\r\n      [disabled]=\"disabled\"\r\n      [dateFormat]=\"dateFormat\"\r\n      [firstDayOfWeek]=\"1\"\r\n      [minDate]=\"minDate\"\r\n      [maxDate]=\"maxDate\"\r\n      [readonlyInput]=\"true\"\r\n      [numberOfMonths]=\"displayMonths\"\r\n      [placeholder]=\"placeHolder\"\r\n      appendTo=\"body\"\r\n      [(ngModel)]=\"dateRange\"\r\n      (ngModelChange)=\"onSelection($event)\"\r\n      #cal >\r\n    </p-date-picker>\r\n\r\n    @if (startDate) {\r\n      <p-inputgroup-addon>\r\n        <p-button\r\n          pRipple\r\n          tabindex=\"-1\"\r\n          [disabled]=\"disabled\"\r\n          (click)=\"onClear()\"\r\n          severity=\"secondary\"\r\n          [ngClass]=\"sm ? 'p-button-sm' : ''\"\r\n          icon=\"fa fa-times\">\r\n        </p-button>\r\n      </p-inputgroup-addon>\r\n    }\r\n\r\n    @if (endDate && cal.overlayVisible) {\r\n      <p-inputgroup-addon>\r\n        <p-button\r\n          pRipple\r\n          tabindex=\"-1\"\r\n          [disabled]=\"disabled\"\r\n          severity=\"success\"\r\n          [ngClass]=\"sm ? 'p-button-sm' : ''\"\r\n          (click)=\"cal.toggle()\"\r\n          icon=\"fa fa-check\">\r\n        </p-button>\r\n      </p-inputgroup-addon>\r\n    }\r\n\r\n    <p-inputgroup-addon>\r\n      <p-button\r\n        pRipple\r\n        severity=\"info\"\r\n        [ngClass]=\"sm ? 'p-button-sm' : ''\"\r\n        (click)=\"cal.toggle()\"\r\n        icon=\"fa fa-calendar\">\r\n      </p-button>\r\n    </p-inputgroup-addon>\r\n\r\n  </p-inputgroup>\r\n} @else {\r\n  <input\r\n  pInputText\r\n  [readonly]=\"true\"\r\n  [value]=\"readonlyCaption\">\r\n}\r\n","import {ChangeDetectionStrategy, Component, computed, inject, input, OnDestroy, OnInit, signal} from '@angular/core';\r\nimport {AlphaPrimeService} from '../../services/alpha-prime.service';\r\n\r\n@Component({\r\n  selector: 'alpha-prime-label',\r\n  standalone: true,\r\n  templateUrl: './alpha-prime-label.component.html',\r\n  styleUrl: './alpha-prime-label.component.css',\r\n  changeDetection: ChangeDetectionStrategy.OnPush,\r\n  host: {\r\n    '[style.display]': '\"block\"'\r\n  }\r\n})\r\nexport class AlphaPrimeLabelComponent implements OnInit, OnDestroy {\r\n\r\n  /** payload => show: boolean  */\r\n  static readonly SHOW_MESSAGE = `AlphaPrimeLabelComponent.ShowMessage`;\r\n\r\n  private readonly primeService = inject(AlphaPrimeService);\r\n\r\n  caption = input('');\r\n  value = input('dummy');\r\n  invalid = input(false);\r\n  invalidMessage = input<string | undefined>(undefined);\r\n\r\n  private readonly isEmpty = computed(() => {\r\n    const v = this.value();\r\n    return (!v || v.trim() === '');\r\n  });\r\n\r\n  isEmptyOrInvalid = computed(() =>\r\n    this.isEmpty() || this.invalid());\r\n\r\n  showMessage = input(false);\r\n  private _showMessage = signal(false);\r\n  effectiveShowMessage = computed(() =>\r\n    this._showMessage() || (this.showMessage()));\r\n\r\n  readonly effectiveInvalidMessage = computed(() =>\r\n    this.invalidMessage() ??\r\n    this.primeService.getTr('alpha.label.requiredOrInvalid'));\r\n\r\n  private showMessageSub = -1;\r\n\r\n  constructor() {\r\n  }\r\n\r\n\r\n  ngOnInit(): void {\r\n    this.showMessageSub = this.primeService.subscribe(\r\n      (show: boolean) => this._showMessage.set(show),\r\n      AlphaPrimeLabelComponent.SHOW_MESSAGE);\r\n  }\r\n\r\n  ngOnDestroy(): void {\r\n    this.primeService.unsubscribe(this.showMessageSub);\r\n  }\r\n\r\n}\r\n","<span style=\"display: inline-block\">\r\n  <ng-content></ng-content>\r\n  @if (caption()) {\r\n    {{caption()}}\r\n  }\r\n</span>\r\n@if (!effectiveShowMessage() && isEmptyOrInvalid()) {\r\n  <span style=\"display: inline-block; color:red; font-weight: bold\"\r\n        class=\"p-invalid ml-1\">*</span>\r\n}\r\n@if (effectiveShowMessage() && isEmptyOrInvalid()) {\r\n  <span style=\"display: inline-block; color: red;\"\r\n        class=\"ml-1 font-bold\">{{ effectiveInvalidMessage() }}</span>\r\n}\r\n","import {ChangeDetectionStrategy, Component, computed, inject, input, model, signal} from '@angular/core';\r\nimport {AlphaPrimeService} from '../../services/alpha-prime.service';\r\nimport {InputGroup} from 'primeng/inputgroup';\r\nimport {Button} from 'primeng/button';\r\nimport {Ripple} from 'primeng/ripple';\r\nimport {FormsModule} from '@angular/forms';\r\nimport {InputText} from 'primeng/inputtext';\r\n\r\n@Component({\r\n  selector: 'alpha-prime-password-input',\r\n  standalone: true,\r\n  imports: [\r\n    InputGroup,\r\n    Button,\r\n    Ripple,\r\n    FormsModule,\r\n    InputText\r\n  ],\r\n  templateUrl: './alpha-prime-password-input.component.html',\r\n  styleUrl: './alpha-prime-password-input.component.css',\r\n  changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class AlphaPrimePasswordInputComponent {\r\n\r\n  private readonly mPs = inject(AlphaPrimeService);\r\n\r\n  inputType = signal<'password' | 'text'>('password');\r\n\r\n  name = input<string>(this.mPs.generateRandomName());\r\n  disabled = input<boolean>(false);\r\n  password = model<string | undefined>(undefined);\r\n\r\n  empty = computed(\r\n    () => this.password() === undefined\r\n      || this.password()?.trim() === '');\r\n\r\n  onShowHide(): void {\r\n    this.inputType.update(type =>\r\n      type === 'password' ? 'text' : 'password');\r\n  }\r\n\r\n  onPasswordChanged(password: string): void {\r\n    this.password.set(password);\r\n  }\r\n\r\n}\r\n","<p-input-group>\r\n  <input [type]=\"inputType()\"\r\n         pInputText\r\n         [attr.name]=\"name()\"\r\n         maxlength=\"50\"\r\n         [disabled]=\"disabled()\"\r\n         [ngModel]=\"password()\"\r\n         (ngModelChange)=\"onPasswordChanged($event)\">\r\n  <p-button\r\n      pRipple\r\n      [attr.aria-label]=\"inputType() === 'password' ? 'Show password' : 'Hide password'\"\r\n      [attr.aria-pressed]=\"inputType() === 'text'\"\r\n      [icon]=\"inputType() === 'password' ? 'fa fa-eye' : 'fa fa-eye-slash'\"\r\n      [disabled]=\"empty()\"\r\n      (click)=\"onShowHide()\"\r\n  ></p-button>\r\n</p-input-group>\r\n","import {Component, Input, input} from '@angular/core';\r\nimport {ProgressBar} from 'primeng/progressbar';\r\n\r\n@Component({\r\n  selector: 'alpha-prime-progress-bar',\r\n  standalone: true,\r\n  imports: [\r\n    ProgressBar\r\n  ],\r\n  templateUrl: './alpha-prime-progress-bar.component.html',\r\n  styleUrl: './alpha-prime-progress-bar.component.css'\r\n})\r\nexport class AlphaPrimeProgressBarComponent {\r\n\r\n  private tOut: any | undefined;\r\n  private _busy = false;\r\n\r\n  color = input<string | undefined>();\r\n  value = input<number>(100);\r\n  delay = input<number>(0);\r\n  mode= input<'determinate' | 'indeterminate' | 'tiny'>(\r\n    'indeterminate');\r\n\r\n  @Input({required:true})\r\n  set busy(busy: boolean) {\r\n    if (this.tOut){\r\n      clearTimeout(this.tOut);\r\n      this.tOut = undefined;\r\n    }\r\n    if (busy) {\r\n      this.showProgressBar();\r\n    } else {\r\n      this.hideProgressBar();\r\n    }\r\n  }\r\n  get busy(): boolean {\r\n    return this._busy;\r\n  }\r\n\r\n  private showProgressBar(): void {\r\n    // start showing (directly or after a short delay)\r\n    if (this.mode() === 'determinate') {\r\n      // we are in determinate mode.\r\n      // there should be no delay\r\n      this._busy = true;\r\n    } else {\r\n      // in other modes there should be a small\r\n      // delay before activating the bar\r\n      this.tOut = setTimeout(\r\n        () => {\r\n          this._busy = true;\r\n          this.tOut = undefined;\r\n        }, this.delay());\r\n    }\r\n  }\r\n\r\n  private hideProgressBar(): void {\r\n    this._busy = false;\r\n  }\r\n\r\n}\r\n","@if(busy) {\r\n  @if(mode() === 'indeterminate') {\r\n    <p-progressBar\r\n      [color]=\"color()\"\r\n      mode=\"indeterminate\">\r\n    </p-progressBar>\r\n  } @else if(mode() === 'determinate') {\r\n    <p-progressBar\r\n      [showValue]=\"true\"\r\n      [color]=\"color()\"\r\n      [style]=\"{'height': '1.3rem' }\"\r\n      mode=\"determinate\"\r\n      [value]=\"value()\">\r\n    </p-progressBar>\r\n  } @else if(mode() === 'tiny') {\r\n    <p-progressBar\r\n      class=\"p-pro\"\r\n      [showValue]=\"false\"\r\n      [color]=\"color()\"\r\n      [style]=\"{'height': '0.5rem' }\"\r\n      mode=\"determinate\"\r\n      [value]=\"value()\">\r\n    </p-progressBar>\r\n  }\r\n}\r\n","import {ChangeDetectionStrategy, Component, computed, input, inject, output, signal} from '@angular/core';\r\nimport {AlphaPrimeService} from '../../services/alpha-prime.service';\r\nimport {AlphaPrimeDebugTagComponent} from '../alpha-prime-debug-tag/alpha-prime-debug-tag.component';\r\nimport {AlphaPrimeLabelComponent} from '../alpha-prime-label/alpha-prime-label.component';\r\nimport {AlphaPrimePasswordInputComponent} from '../alpha-prime-password-input/alpha-prime-password-input.component';\r\nimport {AlphaPrimeProgressBarComponent} from '../alpha-prime-progress-bar/alpha-prime-progress-bar.component';\r\nimport {AlphaPrimeCancelButtonComponent} from '../alpha-prime-cancel-button/alpha-prime-cancel-button.component';\r\nimport {InputText} from 'primeng/inputtext';\r\nimport {Button} from 'primeng/button';\r\nimport {Ripple} from 'primeng/ripple';\r\nimport {FormsModule} from '@angular/forms';\r\n\r\nclass FormModel {\r\n  username = signal('');\r\n  password =\r\n    signal<string | undefined>(undefined);\r\n\r\n  private isEmpty(value: string | undefined): boolean {\r\n    return value === undefined || value.trim() === '';\r\n  }\r\n\r\n  invalid = computed(() => {\r\n    return this.isEmpty(this.username())\r\n      || this.isEmpty(this.password());\r\n  });\r\n}\r\n\r\n@Component({\r\n  selector: 'alpha-prime-login-form',\r\n  standalone: true,\r\n  imports: [\r\n    AlphaPrimeDebugTagComponent,\r\n    AlphaPrimeLabelComponent,\r\n    AlphaPrimePasswordInputComponent,\r\n    AlphaPrimeProgressBarComponent,\r\n    AlphaPrimeCancelButtonComponent,\r\n    InputText,\r\n    Button,\r\n    Ripple,\r\n    FormsModule\r\n  ],\r\n  templateUrl: './alpha-prime-login-form.component.html',\r\n  styleUrl: './alpha-prime-login-form.component.css',\r\n  changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class AlphaPrimeLoginFormComponent {\r\n\r\n  private readonly mPs = inject(AlphaPrimeService);\r\n\r\n  // Input signals for configuration\r\n  showCancelButton = input(false);\r\n  usernameLabel = input<string | undefined>(undefined);\r\n  passwordLabel = input<string | undefined>(undefined);\r\n  failureMessage = input<string | undefined>(undefined);\r\n  invalidCredentialsMessage = input<string | undefined>(undefined);\r\n  connectLabel = input<string | undefined>(undefined);\r\n\r\n  // Internal state\r\n  fm: FormModel = new FormModel();\r\n  busy = signal(false);\r\n  errorMessage = signal<string | undefined>(undefined);\r\n\r\n  // Output events\r\n  loggedIn = output();\r\n  cancelled = output();\r\n\r\n  // Computed label values with defaults from service\r\n  usernameLit = computed(\r\n    () => this.usernameLabel() ?? this.mPs.getTr('alpha.common.username')\r\n  );\r\n\r\n  passwordLit = computed(\r\n    () => this.passwordLabel() ?? this.mPs.getTr('alpha.common.password')\r\n  );\r\n\r\n  failureLit = computed(\r\n    () => this.failureMessage() ?? this.mPs.getTr('alpha.common.failure')\r\n  );\r\n\r\n  invalidCredentialsLit = computed(\r\n    () => this.invalidCredentialsMessage() ?? this.mPs.getTr('alpha.common.invalidCredentials')\r\n  );\r\n\r\n  connectLabelLit = computed(\r\n    () => this.connectLabel() ?? this.mPs.getTr('alpha.loginForm.connect')\r\n  );\r\n\r\n  onCancel() {\r\n    this.cancelled.emit();\r\n  }\r\n\r\n  onSubmit() {\r\n    this.busy.set(true);\r\n    this.errorMessage.set(undefined);\r\n    this.mPs.signIn(\r\n      this.fm.username(), this.fm.password() ?? '', true)\r\n      .subscribe({\r\n        next: ok => {\r\n          if (ok) {\r\n            this.loggedIn.emit();\r\n          } else {\r\n            this.errorMessage.set(this.invalidCredentialsLit());\r\n          }\r\n          this.busy.set(false);\r\n        },\r\n        error: () => {\r\n          this.errorMessage.set(this.failureLit());\r\n          this.busy.set(false);\r\n        }\r\n      });\r\n  }\r\n}\r\n","<alpha-prime-debug-tag tag=\"alphaLoginForm\"></alpha-prime-debug-tag>\r\n@if (fm) {\r\n  <!-- USERNAME-->\r\n  <div class=\"p-field\">\r\n    <label for=\"username\">\r\n      <alpha-prime-label\r\n        [caption]=\"usernameLit()\">{{ fm.username() }}\r\n      </alpha-prime-label>\r\n    </label>\r\n    <input id=\"username\"\r\n           class=\"w-full\"\r\n           pInputText\r\n           type=\"text\"\r\n           maxlength=\"256\"\r\n           [disabled]=\"busy()\"\r\n           [(ngModel)]=\"fm.username\">\r\n  </div>\r\n\r\n  <!-- PASSWORD -->\r\n  <div class=\"p-field\">\r\n    <label for=\"password\">\r\n      <alpha-prime-label [caption]=\"passwordLit()\">{{ fm.password() }}</alpha-prime-label>\r\n    </label>\r\n    <alpha-prime-password-input\r\n      [name]=\"'password'\"\r\n      [disabled]=\"busy()\"\r\n      [(password)]=\"fm.password\"></alpha-prime-password-input>\r\n  </div>\r\n\r\n  <!-- ERROR -->\r\n  @if (errorMessage()) {\r\n    <div class=\"p-error\" style=\"color:red;\">{{ errorMessage() }}</div>\r\n  }\r\n\r\n  <!-- PROGRESS -->\r\n  <alpha-prime-progress-bar [busy]=\"busy()\"></alpha-prime-progress-bar>\r\n\r\n  <!-- BUTTONS -->\r\n  <div class=\"text-right mt-4\">\r\n    @if (showCancelButton()) {\r\n      <alpha-prime-cancel-button class=\"mr-4\"\r\n                                 (clicked)=\"onCancel()\"\r\n                                 [disabled]=\"busy()\"></alpha-prime-cancel-button>\r\n    }\r\n    <p-button severity=\"success\"\r\n              pRipple\r\n              [label]=\"connectLabelLit()\"\r\n              (click)=\"onSubmit()\"\r\n              [disabled]=\"busy() || fm.invalid()\"></p-button>\r\n  </div>\r\n\r\n}\r\n","import {Component, inject, OnInit, signal} from '@angular/core';\r\nimport {AlphaPrimeService} from '../../services/alpha-prime.service';\r\nimport {DynamicDialogConfig, DynamicDialogRef} from 'primeng/dynamicdialog';\r\nimport {AlphaPrimeDebugTagComponent} from '../alpha-prime-debug-tag/alpha-prime-debug-tag.component';\r\nimport {AlphaPrimeLoginFormComponent} from '../alpha-prime-login-form/alpha-prime-login-form.component';\r\n\r\n@Component({\r\n  selector: 'alpha-prime-login-modal',\r\n  standalone: true,\r\n  imports: [\r\n    AlphaPrimeDebugTagComponent,\r\n    AlphaPrimeLoginFormComponent\r\n  ],\r\n  templateUrl: './alpha-prime-login-modal.component.html',\r\n  styleUrl: './alpha-prime-login-modal.component.css'\r\n})\r\nexport class AlphaPrimeLoginModalComponent implements OnInit {\r\n\r\n  private readonly mPs = inject(AlphaPrimeService);\r\n  private readonly mDdr = inject(DynamicDialogRef);\r\n  private readonly mDdc = inject(DynamicDialogConfig);\r\n\r\n  ready = signal(false);\r\n  onClose: (loggedIn: boolean) => any = () => {};\r\n\r\n  usernameLabel?: string;\r\n  passwordLabel?: string;\r\n  failureMessage?: string;\r\n  invalidCredentialsMessage?: string;\r\n  connectLabel?: string;\r\n  showCancelButton = false;\r\n\r\n  ngOnInit():void {\r\n    this.mDdc.data.setInstance(this);\r\n\r\n    setTimeout(\r\n      () => this.mDdc.header =\r\n        this.mDdc.header ||\r\n        this.mPs.getTr('alpha.loginModal.title'),\r\n      100);\r\n  }\r\n\r\n  init(\r\n    onClose: (loggedIn: boolean) => any,\r\n    usernameLabel?: string,\r\n    passwordLabel?: string,\r\n    connectLabel?: string,\r\n    failureMessage?: string,\r\n    invalidCredentialsMessage?: string,\r\n    showCancelButton = false): void {\r\n    this.onClose = onClose;\r\n    this.ready.set(true);\r\n    this.usernameLabel = usernameLabel;\r\n    this.passwordLabel = passwordLabel;\r\n    this.failureMessage = failureMessage;\r\n    this.invalidCredentialsMessage = invalidCredentialsMessage;\r\n    this.connectLabel = connectLabel;\r\n    this.showCancelButton = showCancelButton;\r\n  }\r\n\r\n  onLoggedIn(): void {\r\n    this.onClose(true);\r\n    this.mDdr.close(true);\r\n  }\r\n\r\n  onCancelled(): void {\r\n    this.onClose(false);\r\n    this.mDdr.destroy();\r\n  }\r\n\r\n}\r\n","<alpha-prime-debug-tag tag=\"alphaLoginModal\"></alpha-prime-debug-tag>\r\n@if(ready()){\r\n  <alpha-prime-login-form\r\n    [showCancelButton]=\"showCancelButton\"\r\n    [usernameLabel]=\"usernameLabel\"\r\n    [passwordLabel]=\"passwordLabel\"\r\n    [connectLabel]=\"connectLabel\"\r\n    [failureMessage]=\"failureMessage\"\r\n    [invalidCredentialsMessage]=\"invalidCredentialsMessage\"\r\n    (loggedIn)=\"onLoggedIn()\"\r\n    (cancelled)=\"onCancelled()\">\r\n  </alpha-prime-login-form>\r\n}\r\n","import {Injectable, Type} from '@angular/core';\r\nimport {Observable, Subscriber} from 'rxjs';\r\nimport {IAlphaPrimeModalConfig} from \"./alpha-prime-modal-abstractions\";\r\nimport {\r\n  AlphaPrimeConfirmationModalComponent\r\n} from '../components/alpha-prime-confirmation-modal/alpha-prime-confirmation-modal.component';\r\nimport {\r\n  AlphaPrimeLoginModalComponent\r\n} from '../components/alpha-prime-login-modal/alpha-prime-login-modal.component';\r\n\r\n@Injectable({\r\n  providedIn: 'root'\r\n})\r\nexport class AlphaPrimeModalService {\r\n\r\n  private dsOpen: (component: Type<any>, ddc: IAlphaPrimeModalConfig) => any =\r\n    () => {\r\n    };\r\n  private modalStyleClass: string | undefined;\r\n  private postNavigationLog:\r\n    (path: string, title: string) => any =\r\n    () => {\r\n    };\r\n\r\n  init(\r\n    dsOpen: (component: Type<any>, ddc: IAlphaPrimeModalConfig) => any,\r\n    postNavigationLog?: (path: string, title: string) => any,\r\n    modalStyleClass?: string) {\r\n    this.dsOpen = dsOpen;\r\n    if (postNavigationLog) {\r\n      this.postNavigationLog = postNavigationLog;\r\n    }\r\n    if (modalStyleClass) {\r\n      this.modalStyleClass = modalStyleClass;\r\n    }\r\n  }\r\n\r\n  /**\r\n   * Opens a modal dialog.\r\n   *\r\n   * @template T - The type of the component to be opened in the modal.\r\n   *\r\n   * @param {Type<T>} component - The component to be opened in the modal.\r\n   * @param {string} anchor - The name of the component calling the openModal method.\r\n   * @param {string} modal - The name of the modal.\r\n   * @param {IAlphaPrimeModalConfig} [ddc] - Configuration options for the modal (optional).\r\n   *\r\n   * @return {Observable<T>} - An Observable that emits an instance of the opened component when the modal is displayed.\r\n   *                           If an error occurs during the opening of the modal, the Observable will emit an error instead.\r\n   */\r\n  openModal<T>(\r\n    component: Type<T>,\r\n    anchor: string,\r\n    modal: string,\r\n    ddc?: IAlphaPrimeModalConfig): Observable<T> {\r\n\r\n    return new Observable(\r\n      (subscriber: Subscriber<T>) => {\r\n\r\n        if (!ddc) {\r\n          ddc = {};\r\n        }\r\n\r\n        if (!ddc.data) {\r\n          ddc.data = {};\r\n        }\r\n\r\n        if (!ddc.styleClass\r\n          && this.modalStyleClass) {\r\n          ddc.styleClass = this.modalStyleClass;\r\n        }\r\n\r\n        if (ddc.draggable === undefined) {\r\n          ddc.draggable = true;\r\n        }\r\n\r\n        const path = `${anchor}//${modal}`;\r\n        const title = `modal ${modal} from ${anchor}`;\r\n\r\n        ddc.data.setInstance = (instance: T) => {\r\n          this.postNavigationLog(path, title);\r\n          subscriber.next(instance);\r\n          subscriber.complete();\r\n        };\r\n\r\n        this.dsOpen(component, ddc);\r\n      });\r\n  }\r\n\r\n  openConfirmationModal(\r\n    anchor: string,\r\n    title?: string,\r\n    message?: string,\r\n    confirmButtonText?: string,\r\n    cancelButtonText?: string,\r\n    ddc?: IAlphaPrimeModalConfig): Observable<boolean> {\r\n\r\n    return new Observable(\r\n      (subscriber: Subscriber<boolean>) => {\r\n        this.openModal(\r\n          AlphaPrimeConfirmationModalComponent,\r\n          anchor, 'AlphaConfirmation', ddc).subscribe(\r\n          m => m.init(\r\n            (confirmed: boolean) => {\r\n              subscriber.next(confirmed);\r\n              subscriber.complete();\r\n            },\r\n            title, message,\r\n            confirmButtonText, cancelButtonText));\r\n      });\r\n  }\r\n\r\n  openLoginModal(\r\n    anchor: string,\r\n    title?: string,\r\n    usernameLabel?: string,\r\n    passwordLabel?: string,\r\n    connectLabel?: string,\r\n    failureMessage?: string,\r\n    invalidCredentialMessage?: string,\r\n    showCancelButton = false,\r\n    ddc?: IAlphaPrimeModalConfig): Observable<boolean> {\r\n\r\n    if (title) {\r\n      if (!ddc) {\r\n        ddc = {};\r\n      }\r\n      ddc.header = title;\r\n    }\r\n\r\n    return new Observable(\r\n      (subscriber: Subscriber<boolean>) => {\r\n        this.openModal(\r\n          AlphaPrimeLoginModalComponent,\r\n          anchor, 'AlphaLogin', ddc).subscribe(\r\n          m => m.init(\r\n            (loggedIn: boolean) => {\r\n              subscriber.next(loggedIn);\r\n              subscriber.complete();\r\n            },\r\n            usernameLabel, passwordLabel, connectLabel,\r\n            failureMessage, invalidCredentialMessage,\r\n            showCancelButton));\r\n      });\r\n  }\r\n}\r\n","import {Component, computed, EventEmitter, input, Output} from '@angular/core';\r\nimport {AlphaPrimeService} from '../../services/alpha-prime.service';\r\nimport {Button} from 'primeng/button';\r\nimport {Tooltip} from 'primeng/tooltip';\r\nimport {AlphaPrimeModalService} from '../../services/alpha-prime-modal.service';\r\nimport {\r\n  AlphaPrimeConfirmationModalComponent\r\n} from '../alpha-prime-confirmation-modal/alpha-prime-confirmation-modal.component';\r\n\r\n@Component({\r\n  selector: 'alpha-prime-delete-button',\r\n  imports: [\r\n    Tooltip,\r\n    Button\r\n  ],\r\n  templateUrl: './alpha-prime-delete-button.component.html',\r\n  styleUrl: './alpha-prime-delete-button.component.css'\r\n})\r\nexport class AlphaPrimeDeleteButtonComponent {\r\n\r\n  private readonly logRoute = 'AlphaDeleteButton';\r\n\r\n  disabled = input<boolean>(false);\r\n  caption = input<string>('');\r\n  effectiveCaption = computed(() =>\r\n    this.caption() || this.mPs.getTr('alpha.buttons.delete')\r\n  );\r\n  sm = input<boolean>(false);\r\n  busy = input<boolean>(false);\r\n  showLabel = input<boolean>(false);\r\n\r\n  showConfirmationModal = input<boolean>(true);\r\n  modalTitle = input<string | undefined>();\r\n  modalMessage = input<string | undefined>();\r\n  modalYes = input<string | undefined>();\r\n  modalNo = input<string | undefined>();\r\n\r\n  @Output() clicked = new EventEmitter<any>();\r\n\r\n  constructor(\r\n    private mPs: AlphaPrimeService,\r\n    private mMs: AlphaPrimeModalService) {\r\n  }\r\n\r\n  onClicked(): void {\r\n    if (!this.showConfirmationModal()) {\r\n      this.clicked.emit();\r\n      return;\r\n    }\r\n    this.mMs.openModal(\r\n      AlphaPrimeConfirmationModalComponent,\r\n      this.logRoute, 'AlphaConfirmation')\r\n      .subscribe(\r\n        modal => {\r\n          modal.init(\r\n            (confirmed: boolean) => {\r\n              if (confirmed) {\r\n                this.clicked.emit();\r\n              }\r\n            },\r\n            this.modalTitle(),\r\n            this.modalMessage(),\r\n            this.modalYes(),\r\n            this.modalNo());\r\n        });\r\n  }\r\n}\r\n","@if (!busy()) {\r\n  <p-button\r\n    [label]=\"showLabel() ? effectiveCaption() : ''\"\r\n    [pTooltip]=\"!showLabel() ? effectiveCaption() : ''\"\r\n    severity=\"danger\"\r\n    [icon]=\"'fa fa-trash-alt'\"\r\n    [disabled]=\"disabled()\"\r\n    [size]=\"sm() ? 'small' : 'large'\"\r\n    (click)=\"onClicked()\"\r\n    [attr.aria-label]=\"effectiveCaption()\"\r\n    [class]=\"'alpha-prime-button' + (!showLabel() ? ' p-button-icon-only' : '')\"\r\n  ></p-button>\r\n} @else {\r\n  <p-button\r\n    [label]=\"showLabel() ? effectiveCaption() : ''\"\r\n    [pTooltip]=\"!showLabel() ? effectiveCaption() : ''\"\r\n    severity=\"danger\"\r\n    [icon]=\"'fa fa-spinner fa-spin'\"\r\n    [disabled]=\"true\"\r\n    [size]=\"sm() ? 'small' : 'large'\"\r\n    [attr.aria-label]=\"effectiveCaption()\"\r\n    [class]=\"'alpha-prime-button' + (!showLabel() ? ' p-button-icon-only' : '')\"\r\n  ></p-button>\r\n}\r\n","import {Component, computed, EventEmitter, input, Output} from '@angular/core';\r\nimport {AlphaPrimeService} from '../../services/alpha-prime.service';\r\nimport {Button} from 'primeng/button';\r\nimport {Tooltip} from 'primeng/tooltip';\r\n\r\n@Component({\r\n  selector: 'alpha-prime-edit-button',\r\n  standalone: true,\r\n  imports: [\r\n    Button,\r\n    Tooltip\r\n  ],\r\n  templateUrl: './alpha-prime-edit-button.component.html',\r\n  styleUrl: './alpha-prime-edit-button.component.css'\r\n})\r\nexport class AlphaPrimeEditButtonComponent {\r\n\r\n  disabled = input<boolean>(false);\r\n  caption = input<string>('');\r\n  effectiveCaption = computed(() =>\r\n    this.caption() || this.mPs.getTr('alpha.buttons.edit')\r\n  );\r\n  sm = input<boolean>(false);\r\n  showLabel = input<boolean>(false);\r\n  @Output() clicked = new EventEmitter<any>();\r\n\r\n  constructor(private mPs: AlphaPrimeService) {\r\n  }\r\n\r\n  onClicked(): void {\r\n    this.clicked.emit();\r\n  }\r\n\r\n}\r\n","<p-button\r\n  [label]=\"showLabel() ? effectiveCaption() : ''\"\r\n  [pTooltip]=\"!showLabel() ? effectiveCaption() : ''\"\r\n  severity=\"info\"\r\n  [icon]=\"'fa fa-pencil-alt'\"\r\n  [disabled]=\"disabled()\"\r\n  [size]=\"sm() ? 'small' : 'large'\"\r\n  (click)=\"onClicked()\"\r\n  [attr.aria-label]=\"effectiveCaption()\"\r\n  [class]=\"'alpha-prime-button' + (!showLabel() ? ' p-button-icon-only' : '')\"\r\n></p-button>\r\n","import {AfterViewInit, ChangeDetectorRef, Component, computed, ElementRef, EventEmitter, input, Output, ViewChild} from '@angular/core';\r\nimport {IAlphaPrimeFileUpload} from './alpha-prime-file-upload';\r\nimport {AlphaPrimeService} from '../../services/alpha-prime.service';\r\nimport {InputText} from 'primeng/inputtext';\r\nimport {FormsModule} from '@angular/forms';\r\nimport {InputGroup} from 'primeng/inputgroup';\r\nimport {Button} from 'primeng/button';\r\nimport {Ripple} from 'primeng/ripple';\r\nimport {AlphaPrimeProgressBarComponent} from '../alpha-prime-progress-bar/alpha-prime-progress-bar.component';\r\n\r\nclass FormModel {\r\n  fileName = '';\r\n  fileData = '';\r\n\r\n  get hasData(): boolean {\r\n    return this.fileData.trim() !== '';\r\n  }\r\n\r\n  get invalid(): boolean {\r\n    return this.fileName.trim() === '';\r\n  }\r\n}\r\n\r\nclass FileUpload implements IAlphaPrimeFileUpload {\r\n  uploadId: string;\r\n  fileName: string;\r\n  fileData: string;\r\n\r\n  constructor(\r\n    uploadId: string,\r\n    fileName: string,\r\n    fileData: string) {\r\n    this.uploadId = uploadId;\r\n    this.fileName = fileName;\r\n    this.fileData = fileData;\r\n  }\r\n}\r\n\r\n@Component({\r\n  selector: 'alpha-prime-file-upload',\r\n  standalone: true,\r\n  imports: [\r\n    InputText,\r\n    FormsModule,\r\n    InputGroup,\r\n    Button,\r\n    Ripple,\r\n    AlphaPrimeProgressBarComponent\r\n  ],\r\n  templateUrl: './alpha-prime-file-upload.component.html',\r\n  styleUrl: './alpha-prime-file-upload.component.css'\r\n})\r\nexport class AlphaPrimeFileUploadComponent implements AfterViewInit {\r\n\r\n  name = input<string | undefined>();\r\n  effectiveName(): string {\r\n    return this.name() ?? this.mPs.generateRandomName()};\r\n\r\n  accept = input<string | undefined>();\r\n\r\n  // Normalize accept value: convert \"*.pdf\" to \".pdf\" for HTML file input\r\n  normalizedAccept = computed(() => {\r\n    const acceptValue = this.accept();\r\n    if (!acceptValue) return undefined;\r\n    // If it starts with *. replace with just .\r\n    if (acceptValue.startsWith('*.')) {\r\n      return acceptValue.substring(1);\r\n    }\r\n    return acceptValue;\r\n  });\r\n\r\n  disabled = input<boolean>(false);\r\n  /** when a new file is loaded it is automatically\r\n   * uploaded to the Server\r\n   */\r\n  autoUpload = input<boolean>(true);\r\n  deleteOnClear = input<boolean>(false);\r\n  readonly  = input<boolean>(false);\r\n  readonlyCaption = input<string>('');\r\n  sm = input<boolean>(false);\r\n\r\n  @ViewChild('fileInput', {static: false}) fileInput!: ElementRef<HTMLInputElement>;\r\n  @Output() fileUploaded = new EventEmitter<IAlphaPrimeFileUpload>();\r\n  @Output() fileDeleted = new EventEmitter<string>();\r\n  /**\r\n   * AfterViewInit will emit a delegate to the resetForm method\r\n   * so that the parent component can invoke this method from\r\n   * inside its own code */\r\n  @Output() ready = new EventEmitter<()=>any>();\r\n\r\n  busy = false;\r\n  fm = new FormModel();\r\n  fu: IAlphaPrimeFileUpload | undefined;\r\n  uploading = false;\r\n  progress = 0;\r\n\r\n  fileLit: string;\r\n\r\n  constructor(\r\n    private mPs: AlphaPrimeService,\r\n    private cdr: ChangeDetectorRef) {\r\n    this.fileLit = mPs.getTr('alpha.common.file');\r\n  }\r\n\r\n  ngAfterViewInit() {\r\n    this.ready.emit(() => this.resetForm());\r\n  }\r\n\r\n  private delete(uploadId: string): void {\r\n    this.busy = true;\r\n    this.mPs.deleteUpload(uploadId)\r\n      .subscribe({\r\n        next: () => {\r\n          this.fileDeleted.emit(uploadId);\r\n          this.busy = false;\r\n        },\r\n        error: e => {\r\n          console.error(e);\r\n          this.fu = undefined;\r\n          this.busy = false;\r\n        }\r\n      });\r\n  }\r\n\r\n  private upload(): void {\r\n    this.busy = true;\r\n    this.uploading = true;\r\n    this.progress = 0;\r\n    this.mPs.upload(\r\n      this.fm.fileData,\r\n      progress => {\r\n        this.progress = progress;\r\n      }).subscribe({\r\n      next: (uploadId: string) => {\r\n        this.busy = false;\r\n        setTimeout(() => {\r\n          this.uploading = false;\r\n        }, 2000);\r\n        this.fu = new FileUpload(\r\n          uploadId,\r\n          this.fm.fileName,\r\n          this.fm.fileData);\r\n        this.fileUploaded.emit(this.fu);\r\n      },\r\n      error: (error) => {\r\n        console.error(error);\r\n        this.busy = false;\r\n        this.uploading = false;\r\n      }\r\n    });\r\n  }\r\n\r\n  resetForm(): void {\r\n    this.fm = new FormModel();\r\n    this.uploading = false;\r\n    this.progress = 0;\r\n    this.fu = undefined\r\n  }\r\n\r\n  onFileInputChanged(changeEvent: Event) {\r\n    try {\r\n      this.busy = true;\r\n      let reader: FileReader | undefined = new FileReader();\r\n\r\n      reader.onload = (loadEvent: ProgressEvent) => {\r\n        // console.log('reader.onload', loadEvent);\r\n\r\n        const target = loadEvent.target! as FileReader;\r\n        // if (target == null) {\r\n        //   throw new Error('target should not be null');\r\n        // }\r\n        this.fm.fileData = target.result as string;\r\n        // dispose the reader\r\n        setTimeout(() => reader = undefined, 10);\r\n        this.busy = false;\r\n\r\n        // Manually trigger change detection since FileReader runs outside Angular's zone\r\n        this.cdr.detectChanges();\r\n\r\n        if (this.autoUpload()) {\r\n          this.upload();\r\n        }\r\n      }\r\n\r\n      reader.onerror = () => {\r\n        this.resetForm();\r\n        this.busy = false;\r\n      }\r\n\r\n      this.fm = new FormModel();\r\n      const input = (changeEvent.target as HTMLInputElement)!;\r\n      const file = input.files![0];\r\n      // https://stackoverflow.com/questions/4109276/how-to-detect-input-type-file-change-for-the-same-file\r\n      // reset the input value to empty string so that\r\n      // the file change event will be raised again\r\n      // with the same file\r\n      input.value = '';\r\n      if (!file) {\r\n        this.busy = false;\r\n        return;\r\n      }\r\n      this.fm.fileName = file.name;\r\n      reader.readAsDataURL(file);\r\n    } catch (error) {\r\n      this.fm = new FormModel();\r\n      console.error(error);\r\n      this.busy = false;\r\n    }\r\n  }\r\n\r\n  onBrowse() {\r\n    if (this.fileInput == null) {\r\n      throw new Error('fileInput should not be null');\r\n    }\r\n    this.fileInput.nativeElement.click();\r\n  }\r\n\r\n  onClear() {\r\n    if (this.fu) {\r\n      if (this.deleteOnClear()) {\r\n        this.delete(this.fu.uploadId);\r\n      }\r\n    }\r\n    this.resetForm();\r\n  }\r\n\r\n  onSave() {\r\n    this.upload();\r\n  }\r\n\r\n}\r\n\r\n\r\n","@if (readonly()) {\r\n  <input\r\n         [name]=\"effectiveName()\"\r\n         pInputText\r\n         style=\"width: 100%;\"\r\n         type=\"text\"\r\n         [ngModel]=\"readonlyCaption()\"\r\n         [readOnly]=\"true\" >\r\n} @else {\r\n  <p-inputgroup>\r\n\r\n    <input\r\n           [name]=\"effectiveName()\"\r\n           pInputText\r\n           placeholder=\"{{fileLit}} {{accept()}}\"\r\n           style=\"width: 100%;\"\r\n           type=\"text\"\r\n           [(ngModel)]=\"fm.fileName\"\r\n           [readOnly]=\"true\" >\r\n\r\n    @if(!fm.hasData) {\r\n      <p-button\r\n          pRipple\r\n          tabindex=\"-1\"\r\n          (click)=\"onBrowse()\"\r\n          [disabled]=\"disabled() || busy\"\r\n          severity=\"warn\"\r\n          icon=\"fa fa-folder-open\"\r\n      ></p-button>\r\n    }\r\n\r\n    @if(fm.hasData) {\r\n      <p-button\r\n          pRipple\r\n          tabindex=\"-1\"\r\n          [disabled]=\"disabled() || busy\"\r\n          icon=\"fa fa-trash-alt\"\r\n          severity=\"danger\"\r\n          (click)=\"onClear()\"\r\n      ></p-button>\r\n    }\r\n\r\n    @if (fm.hasData && !fu) {\r\n      @if (busy) {\r\n        <p-button\r\n            pRipple\r\n            tabindex=\"-1\"\r\n            [disabled]=\"true\"\r\n            icon=\"fa fa-spin fa-spinner\"\r\n            severity=\"info\"\r\n        ></p-button>\r\n      } @else {\r\n        <p-button\r\n            pRipple\r\n            tabindex=\"-1\"\r\n            [disabled]=\"disabled() || busy\"\r\n            icon=\"fa fa-upload\"\r\n            severity=\"info\"\r\n            (click)=\"onSave()\"\r\n        ></p-button>\r\n      }\r\n    }\r\n\r\n  </p-inputgroup>\r\n}\r\n\r\n<alpha-prime-progress-bar\r\n  [busy]=\"uploading\"\r\n  mode=\"tiny\"\r\n  [value]=\"progress\"\r\n></alpha-prime-progress-bar>\r\n\r\n<input #fileInput\r\n       [name]=\"effectiveName() + '_fileInput'\"\r\n       type=\"file\"\r\n       [accept]=\"normalizedAccept()\"\r\n       style=\"display: none;\"\r\n       (change)=\"onFileInputChanged($event)\">\r\n\r\n","import {Component, computed, input, model, OnDestroy, output} from '@angular/core';\r\nimport {AlphaPrimeService} from '../../services/alpha-prime.service';\r\nimport {AlphaPrimeDebugTagComponent} from '../alpha-prime-debug-tag/alpha-prime-debug-tag.component';\r\nimport {InputGroup} from 'primeng/inputgroup';\r\nimport {FormsModule} from '@angular/forms';\r\nimport {InputText} from 'primeng/inputtext';\r\nimport {Button} from 'primeng/button';\r\nimport {Ripple} from 'primeng/ripple';\r\n\r\n@Component({\r\n  selector: 'alpha-prime-filter-box',\r\n  standalone: true,\r\n  imports: [\r\n    AlphaPrimeDebugTagComponent,\r\n    InputGroup,\r\n    FormsModule,\r\n    InputText,\r\n    Button,\r\n    Ripple\r\n  ],\r\n  templateUrl: './alpha-prime-filter-box.component.html',\r\n  styleUrl: './alpha-prime-filter-box.component.css'\r\n})\r\nexport class AlphaPrimeFilterBoxComponent implements OnDestroy {\r\n\r\n  delay = input<number>(300);\r\n  showAdd = input<boolean>(false);\r\n  disabled = input<boolean>(false);\r\n  placeholder = input<string>('');\r\n\r\n  term = model<string | undefined>(undefined);\r\n\r\n  empty = computed(() => {\r\n    const currentTerm = this.term();\r\n    return !currentTerm || currentTerm.trim() === '';\r\n  });\r\n\r\n  addClicked = output<string | undefined>();\r\n\r\n  name: string;\r\n  timer: ReturnType<typeof setTimeout> | undefined;\r\n\r\n  constructor(\r\n    ps: AlphaPrimeService) {\r\n    this.name = ps.generateRandomName();\r\n  }\r\n\r\n  ngOnDestroy(): void {\r\n    this.stopTimerIfSet();\r\n  }\r\n\r\n  private changeTerm(newTerm: string) {\r\n    this.timer = setTimeout(\r\n      () => {\r\n        this.term.set(newTerm);\r\n      }, this.delay());\r\n  }\r\n\r\n  onTermChanged(newTerm: string) {\r\n    this.stopTimerIfSet();\r\n    this.changeTerm(newTerm);\r\n  }\r\n\r\n  onClear() {\r\n    this.stopTimerIfSet();\r\n    this.term.set(undefined);\r\n  }\r\n\r\n  onAddClicked() {\r\n    this.stopTimerIfSet();\r\n    this.addClicked.emit(this.term());\r\n  }\r\n\r\n  private stopTimerIfSet() {\r\n    if (this.timer) {\r\n      clearTimeout(this.timer);\r\n      this.timer = undefined;\r\n    }\r\n\r\n  }\r\n\r\n}\r\n","<alpha-prime-debug-tag tag=\"alphaFilterBox\"></alpha-prime-debug-tag>\r\n\r\n<p-inputgroup class=\"alpha-prime-filter-box__group\">\r\n\r\n  <input type=\"text\"\r\n         pInputText\r\n         [attr.name]=\"name\"\r\n         [disabled]=\"disabled()\"\r\n         [placeholder]=\"placeholder()\"\r\n         [ngModel]=\"term()\"\r\n         (ngModelChange)=\"onTermChanged($event)\">\r\n\r\n  @if (term()) {\r\n    <p-button\r\n      class=\"alpha-prime-filter-box__clear-button\"\r\n      pRipple\r\n      icon=\"fa fa-times\"\r\n      severity=\"secondary\"\r\n      [disabled]=\"disabled()\"\r\n      (onClick)=\"onClear()\"\r\n    ></p-button>\r\n  }\r\n\r\n  @if(showAdd()){\r\n    <p-button\r\n      class=\"alpha-prime-filter-box__add-button\"\r\n      pRipple\r\n      icon=\"fa fa-plus\"\r\n      severity=\"info\"\r\n      [disabled]=\"disabled()\"\r\n      (onClick)=\"onAddClicked()\"\r\n    ></p-button>\r\n  }\r\n\r\n</p-inputgroup>\r\n","import {ChangeDetectionStrategy, Component, computed, effect, inject, input, output, signal} from '@angular/core';\r\nimport {AlphaPrimeService} from '../../services/alpha-prime.service';\r\nimport {InputTextModule} from 'primeng/inputtext';\r\nimport {KeyFilterModule} from 'primeng/keyfilter';\r\nimport {NgClass} from '@angular/common';\r\nimport {FormsModule} from '@angular/forms';\r\nimport {ButtonModule} from 'primeng/button';\r\nimport {RippleModule} from 'primeng/ripple';\r\nimport {InputGroup} from 'primeng/inputgroup';\r\n\r\n@Component({\r\n  selector: 'alpha-prime-number-input',\r\n  standalone: true,\r\n  imports: [\r\n    InputTextModule,\r\n    KeyFilterModule,\r\n    NgClass,\r\n    FormsModule,\r\n    ButtonModule,\r\n    RippleModule,\r\n    InputGroup\r\n  ],\r\n  templateUrl: './alpha-prime-number-input.component.html',\r\n  styleUrl: './alpha-prime-number-input.component.css',\r\n  changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class AlphaPrimeNumberInputComponent {\r\n\r\n  private readonly mPs = inject(AlphaPrimeService);\r\n\r\n  // Input signals for configuration\r\n  name = input<string | undefined>(this.mPs.generateRandomName());\r\n  disabled = input(false);\r\n  placeHolder = input('');\r\n  prefix = input('');\r\n  suffix = input('');\r\n  decimals = input(0);\r\n  min = input(-Number.MAX_VALUE);\r\n  max = input(Number.MAX_VALUE);\r\n  locale = input('fr-BE');\r\n  readonly = input(false);\r\n  readonlyCaption = input<string | undefined>('');\r\n  sm = input(false);\r\n  showClear = input(true);\r\n  value = input<number | undefined>();\r\n\r\n  // Internal state\r\n  sVal = signal<string | undefined>(undefined);\r\n  invalid = signal(false);\r\n\r\n  // Validation regex\r\n  readonly realNumber: RegExp = /[0-9\\,\\.\\-]/;\r\n\r\n  // Output events\r\n  valueChange = output<number | undefined>();\r\n\r\n  // Style objects\r\n  private readonly baseInputStyle = {\r\n    'width': '100%',\r\n    'border-top-right-radius': '0',\r\n    'border-bottom-right-radius': '0'\r\n  };\r\n\r\n  private readonly smInputStyle = {\r\n    'width': '100%',\r\n    'border-top-right-radius': '0',\r\n    'border-bottom-right-radius': '0',\r\n    'font-size': 'x-small'\r\n  };\r\n\r\n  // Computed derived state\r\n  inputStyle = computed(\r\n    () => this.sm()\r\n      ? this.smInputStyle : this.baseInputStyle\r\n  );\r\n\r\n  constructor() {\r\n    // Sync value input to internal state when value changes\r\n    effect(() => {\r\n      const val = this.value();\r\n      switch (val) {\r\n        case undefined:\r\n          this.sVal.set(undefined);\r\n          break;\r\n        case 0:\r\n          this.sVal.set('0');\r\n          break;\r\n        default:\r\n          this.sVal.set(val.toString());\r\n      }\r\n    });\r\n  }\r\n\r\n  /**\r\n   * Converts the internal string value to a number\r\n   * @returns the parsed number or undefined if invalid\r\n   */\r\n  getNumericValue(): number | undefined {\r\n    if (!this.sVal()) {\r\n      return undefined;\r\n    }\r\n    const n = Number(this.sVal());\r\n    return isNaN(n) ? undefined : n;\r\n  }\r\n\r\n  /**\r\n   * Handles text input changes and validates the value\r\n   * @param sVal the string value from the input\r\n   */\r\n  onTextChange(sVal: string | number | undefined): void {\r\n    if (!sVal) {\r\n      this.onClear();\r\n      return;\r\n    }\r\n\r\n    sVal = `${sVal}`;\r\n    this.sVal.set(sVal.replaceAll(',', '.'));\r\n\r\n    // Handle special negative cases\r\n    if (this.sVal() === '-0'\r\n      || this.sVal() === '-.'\r\n      || this.sVal() === '-0.') {\r\n      this.invalid.set(false);\r\n      this.valueChange.emit(undefined);\r\n      return;\r\n    }\r\n\r\n    const n = Number(this.sVal());\r\n    let v: number | undefined;\r\n\r\n    // Validate the number\r\n    if (isNaN(n)\r\n      || n < this.min()\r\n      || n > this.max()) {\r\n      this.invalid.set(true);\r\n      v = undefined;\r\n    } else {\r\n      this.invalid.set(false);\r\n      v = n;\r\n    }\r\n\r\n    this.valueChange.emit(v);\r\n  }\r\n\r\n  /**\r\n   * Clears the input value and emits undefined\r\n   */\r\n  onClear(): void {\r\n    this.invalid.set(false);\r\n    this.sVal.set(undefined);\r\n    this.valueChange.emit(undefined);\r\n  }\r\n\r\n  /**\r\n   * Validates input character based on regex\r\n   * @param char the character to validate\r\n   * @returns true if character is valid\r\n   */\r\n  isValidCharacter(char: string): boolean {\r\n    return this.realNumber.test(char);\r\n  }\r\n}\r\n","@if (!readonly()) {\r\n  <p-input-group>\r\n    <input type=\"text\"\r\n           pInputText\r\n           [pKeyFilter]=\"realNumber\"\r\n           [placeholder]=\"placeHolder()\"\r\n           [disabled]=\"disabled()\"\r\n           [ngClass]=\"{'ng-invalid' : invalid()}\"\r\n           [ngModel]=\"sVal()\"\r\n           (ngModelChange)=\"onTextChange($event)\" />\r\n    @if (value() && showClear()) {\r\n      <p-button\r\n        severity=\"secondary\"\r\n        icon=\"fa fa-times\"\r\n        tabindex=\"-1\"\r\n        (click)=\"onClear()\"\r\n      ></p-button>\r\n    }\r\n\r\n  </p-input-group>\r\n} @else {\r\n  <input pInputText\r\n         [readOnly]=\"true\"\r\n         [value]=\"readonlyCaption()\">\r\n}\r\n","import {Component, inject, input, output} from '@angular/core';\r\nimport {AlphaPrimeService} from '../../services/alpha-prime.service';\r\nimport {Button} from 'primeng/button';\r\nimport {Tooltip} from 'primeng/tooltip';\r\n\r\n@Component({\r\n  selector: 'alpha-prime-ok-button',\r\n  standalone: true,\r\n  imports: [\r\n    Button,\r\n    Tooltip\r\n  ],\r\n  templateUrl: './alpha-prime-ok-button.html',\r\n  styleUrl: './alpha-prime-ok-button.css'\r\n})\r\nexport class AlphaPrimeOkButton {\r\n  private readonly mPs = inject(AlphaPrimeService);\r\n\r\n  disabled = input<boolean>(false);\r\n  clicked = output();\r\n  caption = input<string>(this.mPs.getTr('alpha.buttons.ok'));\r\n  sm = input<boolean>(false);\r\n  showLabel = input<boolean>(false);\r\n\r\n  onClicked(): void {\r\n    this.clicked.emit();\r\n  }\r\n}\r\n","<p-button\r\n  [label]=\"showLabel() ? caption() : ''\"\r\n  [pTooltip]=\"!showLabel() ? caption() : ''\"\r\n  severity=\"success\"\r\n  [icon]=\"'fa fa-check'\"\r\n  [disabled]=\"disabled()\"\r\n  [size]=\"sm() ? 'small' : 'large'\"\r\n  (click)=\"onClicked()\"\r\n  [attr.aria-label]=\"caption()\"\r\n  [class]=\"'alpha-prime-button' + (!showLabel() ? ' p-button-icon-only' : '')\"\r\n></p-button>\r\n","import {Component, inject, input, output, ChangeDetectionStrategy, computed} from '@angular/core';\r\nimport {AlphaPrimeService} from '../../services/alpha-prime.service';\r\nimport {ButtonDirective} from 'primeng/button';\r\nimport {Tooltip} from 'primeng/tooltip';\r\nimport {AlphaPrimeLabelComponent} from '../alpha-prime-label/alpha-prime-label.component';\r\n\r\n@Component({\r\n  selector: 'alpha-prime-save-button',\r\n  standalone: true,\r\n  imports: [\r\n    Tooltip,\r\n    ButtonDirective\r\n  ],\r\n  templateUrl: './alpha-prime-save-button.component.html',\r\n  styleUrl: './alpha-prime-save-button.component.css',\r\n  changeDetection: ChangeDetectionStrategy.OnPush,\r\n  host: {\r\n    class: 'alpha-prime-save-button'\r\n  }\r\n})\r\nexport class AlphaPrimeSaveButtonComponent {\r\n\r\n  private readonly mPs = inject(AlphaPrimeService);\r\n\r\n  disabled = input<boolean>(false);\r\n  clicked = output();\r\n  caption = input<string>(this.mPs.getTr('alpha.buttons.save'));\r\n  busy = input<boolean>(false);\r\n  sm = input<boolean>(false);\r\n  showLabel = input<boolean>(false);\r\n\r\n  publishMouseEvent = computed<boolean>(() =>\r\n    !(this.busy() || this.disabled()));\r\n\r\n  onClicked(): void {\r\n    this.clicked.emit();\r\n  }\r\n\r\n  onMouseEnter(): void {\r\n    if (this.publishMouseEvent()){\r\n      this.mPs.publish(true, AlphaPrimeLabelComponent.SHOW_MESSAGE);\r\n    }\r\n  }\r\n\r\n  onMouseLeave(): void {\r\n    if (this.publishMouseEvent()){\r\n      this.mPs.publish(false, AlphaPrimeLabelComponent.SHOW_MESSAGE);\r\n    }\r\n  }\r\n}\r\n","<span (mouseenter)=\"onMouseEnter()\" (mouseleave)=\"onMouseLeave()\">\r\n  @if (showLabel()) {\r\n    <button pButton\r\n            class=\"p-button-success\"\r\n            [class.p-button-sm]=\"sm()\"\r\n            type=\"button\"\r\n            [disabled]=\"disabled()\"\r\n            (click)=\"onClicked()\">\r\n      <span>{{ caption() }}</span>\r\n      @if (!busy()) {\r\n        <i class=\"fa fa-cloud-arrow-up\"></i>\r\n      } @else {\r\n        <i class=\"fa fa-spinner fa-spin\"></i>\r\n      }\r\n    </button>\r\n  } @else {\r\n    <button pButton\r\n            class=\"p-button-success p-button-icon-only\"\r\n            [class.p-button-sm]=\"sm()\"\r\n            type=\"button\"\r\n            [disabled]=\"disabled()\"\r\n            [pTooltip]=\"caption()\"\r\n            (click)=\"onClicked()\">\r\n      @if (!busy()) {\r\n        <i class=\"fa fa-cloud-arrow-up\"></i>\r\n      } @else {\r\n        <i class=\"fa fa-spinner fa-spin\"></i>\r\n      }\r\n    </button>\r\n  }\r\n</span>\r\n","import {\r\n  ChangeDetectionStrategy,\r\n  Component,\r\n  output,\r\n  signal,\r\n  viewChild,\r\n  ElementRef,\r\n  AfterViewInit,\r\n  computed,\r\n  input,\r\n  inject,\r\n  OnDestroy\r\n} from '@angular/core';\r\nimport { AlphaPrimeService } from '../../services/alpha-prime.service';\r\n\r\nexport interface VirtualRow<T> {\r\n  index: number;\r\n  data: T;\r\n}\r\n\r\nexport type AlphaPrimeScrollerPredicate<T> = (\r\n  item: T,\r\n  index: number,\r\n  items: readonly T[]\r\n) => boolean;\r\n\r\n@Component({\r\n  selector: 'alpha-prime-scroller',\r\n  standalone: true,\r\n  templateUrl: './alpha-prime-scroller.component.html',\r\n  styleUrl: './alpha-prime-scroller.component.scss',\r\n  changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class AlphaPrimeScrollerComponent<T = unknown> implements AfterViewInit, OnDestroy {\r\n  private readonly alphaPrimeService = inject(AlphaPrimeService);\r\n  private resizeObserver?: ResizeObserver;\r\n\r\n  // Inputs\r\n  loadMoreThreshold = input(200); // pixels from bottom to trigger load\r\n  itemHeight = input(150); // estimated height per item\r\n  bufferSize = input(10); // extra items to render above/below viewport\r\n  showLoadingIndicator = input(true); // show spinner when loading\r\n  loadingMessage = input<string | undefined>(undefined); // custom loading message\r\n\r\n  // Computed loading text\r\n  effectiveLoadingMessage = computed(() => {\r\n    const custom = this.loadingMessage();\r\n    return custom ?? this.alphaPrimeService.getTr('alpha.scroller.loading');\r\n  });\r\n\r\n  // Outputs\r\n  loadMore = output<number>(); // Emits current item count\r\n  scrolled = output<number>();\r\n\r\n  // Internal state\r\n  private scrollContainer =\r\n    viewChild<ElementRef<HTMLDivElement>>('scrollContainer');\r\n  private allItems = signal<T[]>([]);\r\n  private isNearBottom = signal(false);\r\n\r\n  loading = signal(false);\r\n\r\n  // Virtual scrolling calculations\r\n  private scrollTop = signal(0);\r\n  private containerHeight = signal(600);\r\n\r\n  // Computed visible range\r\n  private visibleStartIndex = computed(() => {\r\n    const start = Math.floor(this.scrollTop() / this.itemHeight());\r\n    return Math.max(0, start - this.bufferSize());\r\n  });\r\n\r\n  private visibleEndIndex = computed(() => {\r\n    const itemsInView = Math.ceil(this.containerHeight() / this.itemHeight());\r\n    const end = Math.floor(this.scrollTop() / this.itemHeight()) + itemsInView;\r\n    return Math.min(this.allItems().length, end + this.bufferSize());\r\n  });\r\n\r\n  // Visible rows for template\r\n  visibleRows = computed<VirtualRow<T>[]>(() => {\r\n    const items = this.allItems();\r\n    const start = this.visibleStartIndex();\r\n    const end = this.visibleEndIndex();\r\n\r\n    const rows: VirtualRow<T>[] = [];\r\n    for (let i = start; i < end; i++) {\r\n      rows.push({\r\n        index: i,\r\n        data: items[i]\r\n      });\r\n    }\r\n    return rows;\r\n  });\r\n\r\n  // Padding calculations\r\n  paddingTop = computed(() => this.visibleStartIndex() * this.itemHeight());\r\n  paddingBottom = computed(() => {\r\n    const remaining = this.allItems().length - this.visibleEndIndex();\r\n    return Math.max(0, remaining * this.itemHeight());\r\n  });\r\n\r\n  ngAfterViewInit() {\r\n    // Get initial container height\r\n    const container = this.scrollContainer()?.nativeElement;\r\n    if (container) {\r\n      this.containerHeight.set(container.clientHeight);\r\n\r\n      // Observe size changes (e.g., from RemainingHeight directive)\r\n      this.resizeObserver = new ResizeObserver(entries => {\r\n        for (const entry of entries) {\r\n          const newHeight = entry.contentRect.height;\r\n          if (newHeight > 0) {\r\n            this.containerHeight.set(newHeight);\r\n          }\r\n        }\r\n      });\r\n      this.resizeObserver.observe(container);\r\n    }\r\n\r\n    // Initial check after a small delay\r\n    setTimeout(() => this.checkScroll(), 100);\r\n  }\r\n\r\n  ngOnDestroy() {\r\n    if (this.resizeObserver) {\r\n      this.resizeObserver.disconnect();\r\n    }\r\n  }\r\n\r\n  // Appends newly loaded page items at the bottom.\r\n  addItems(newItems: readonly T[]) {\r\n    if (newItems.length === 0) return;\r\n    this.allItems.update(current => [...current, ...newItems]);\r\n  }\r\n\r\n  // Replaces the current list with a new sequence.\r\n  resetItems(items: readonly T[] = []) {\r\n    this.allItems.set([...items]);\r\n    this.isNearBottom.set(false);\r\n    this.syncScrollSignals();\r\n  }\r\n\r\n  // Inserts one or more items at the top and keeps viewport anchored.\r\n  insertAtTop(itemOrItems: T | readonly T[]) {\r\n    const items = Array.isArray(itemOrItems) ? itemOrItems : [itemOrItems];\r\n    if (items.length === 0) return;\r\n\r\n    this.allItems.update(current => [...items, ...current]);\r\n    this.shiftScrollTop(items.length);\r\n  }\r\n\r\n\r\n  replaceAt(index: number, item: T): boolean {\r\n    const items = this.allItems();\r\n    if (index < 0 || index >= items.length) {\r\n      return false;\r\n    }\r\n\r\n    const next = [...items];\r\n    next[index] = item;\r\n    this.allItems.set(next);\r\n    return true;\r\n  }\r\n\r\n  findIndex(predicate: AlphaPrimeScrollerPredicate<T>): number {\r\n    const items = this.allItems();\r\n    for (let i = 0; i < items.length; i++) {\r\n      if (predicate(items[i], i, items)) {\r\n        return i;\r\n      }\r\n    }\r\n    return -1;\r\n  }\r\n\r\n  find(predicate: AlphaPrimeScrollerPredicate<T>): T | undefined {\r\n    const index = this.findIndex(predicate);\r\n    if (index < 0) {\r\n      return undefined;\r\n    }\r\n    return this.allItems()[index];\r\n  }\r\n\r\n  itemCount(): number {\r\n    return this.allItems().length;\r\n  }\r\n\r\n\r\n  onScroll() {\r\n    this.checkScroll();\r\n  }\r\n\r\n  private checkScroll() {\r\n    const container = this.scrollContainer()?.nativeElement;\r\n    if (!container) return;\r\n\r\n    const scrollTop = container.scrollTop;\r\n    const scrollHeight = container.scrollHeight;\r\n    const clientHeight = container.clientHeight;\r\n    const scrollBottom = scrollHeight - scrollTop - clientHeight;\r\n\r\n    // Update scroll position\r\n    this.scrollTop.set(scrollTop);\r\n\r\n    // Emit scroll position\r\n    this.scrolled.emit(scrollTop);\r\n\r\n    // Check if near bottom\r\n    const nearBottom = scrollBottom <= this.loadMoreThreshold();\r\n\r\n    if (nearBottom && !this.loading() && !this.isNearBottom()) {\r\n      this.isNearBottom.set(true);\r\n      this.loadMore.emit(this.allItems().length);\r\n    } else if (!nearBottom) {\r\n      this.isNearBottom.set(false);\r\n    }\r\n  }\r\n\r\n  private shiftScrollTop(addedItemsCount: number) {\r\n    if (addedItemsCount <= 0) return;\r\n\r\n    const container = this.scrollContainer()?.nativeElement;\r\n    if (!container) {\r\n      return;\r\n    }\r\n\r\n    const offset = addedItemsCount * this.itemHeight();\r\n    container.scrollTop += offset;\r\n    this.scrollTop.set(container.scrollTop);\r\n  }\r\n\r\n  private syncScrollSignals() {\r\n    const container = this.scrollContainer()?.nativeElement;\r\n    if (!container) {\r\n      this.scrollTop.set(0);\r\n      return;\r\n    }\r\n\r\n    this.scrollTop.set(container.scrollTop);\r\n  }\r\n}\r\n\r\n","<div #scrollContainer\r\n     class=\"scroller-container\" (scroll)=\"onScroll()\">\r\n  <div class=\"scroller-content\"\r\n       [style.padding-top.px]=\"paddingTop()\"\r\n       [style.padding-bottom.px]=\"paddingBottom()\">\r\n\r\n    <ng-content></ng-content>\r\n  </div>\r\n\r\n  @if (loading() && showLoadingIndicator()) {\r\n    <div class=\"scroller-loading\">\r\n      <div class=\"loading-spinner\">\r\n        <div class=\"spinner\"></div>\r\n        <span class=\"loading-text\">{{ effectiveLoadingMessage() }}</span>\r\n      </div>\r\n    </div>\r\n  }\r\n</div>\r\n","import {\r\n  ChangeDetectionStrategy,\r\n  Component,\r\n  computed,\r\n  effect,\r\n  inject,\r\n  input,\r\n  model,\r\n  output\r\n} from '@angular/core';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { ButtonModule } from 'primeng/button';\r\nimport { SelectModule } from 'primeng/select';\r\nimport { InputTextModule } from 'primeng/inputtext';\r\nimport { RippleModule } from 'primeng/ripple';\r\nimport { InputGroup } from 'primeng/inputgroup';\r\n\r\nimport { AlphaPrimeService } from '../../services/alpha-prime.service';\r\nimport { AlphaPrimeSelectInfo, IAlphaPrimeSelectOption } from './alpha-prime-select-info';\r\n\r\n@Component({\r\n  selector: 'alpha-prime-select',\r\n  standalone: true,\r\n  imports: [\r\n    SelectModule,\r\n    FormsModule,\r\n    ButtonModule,\r\n    RippleModule,\r\n    InputTextModule,\r\n    InputGroup\r\n  ],\r\n  templateUrl: './alpha-prime-select.component.html',\r\n  styleUrl: './alpha-prime-select.component.css',\r\n  changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class AlphaPrimeSelectComponent {\r\n  private readonly mPs = inject(AlphaPrimeService);\r\n\r\n  name = input(this.mPs.generateRandomName());\r\n  asi = input<AlphaPrimeSelectInfo | undefined>(undefined);\r\n  options = input<IAlphaPrimeSelectOption[]>([]);\r\n  placeholder = input('');\r\n  // Backward-compatible alias kept for existing consumers.\r\n  placeHolder = input('');\r\n  disabled = input(false);\r\n  readonly = input(false);\r\n  readonlyCaption = input<string | null | undefined>('');\r\n  showAdd = input(false);\r\n  showClear = input(true);\r\n\r\n  optionId = model<string | undefined>(undefined);\r\n\r\n  optionChange = output<IAlphaPrimeSelectOption | undefined>();\r\n  addClicked = output<void>();\r\n\r\n  effectiveOptions = computed(() => this.asi()?.options ?? this.options());\r\n  effectivePlaceholder = computed(() => this.placeholder() || this.placeHolder());\r\n  showActionButtons = computed(() => this.showAdd() || (!!this.optionId() && this.showClear()));\r\n\r\n  constructor() {\r\n    effect(() => {\r\n      const info = this.asi();\r\n      if (info) {\r\n        this.setOptionId(info.optionId);\r\n      }\r\n    });\r\n  }\r\n\r\n  private setOptionId(id: string | undefined): void {\r\n    this.optionId.set(id);\r\n\r\n    const key = this.asi()?.lsItemKey;\r\n    if (!key) {\r\n      return;\r\n    }\r\n\r\n    if (id) {\r\n      localStorage.setItem(key, id);\r\n    } else {\r\n      localStorage.removeItem(key);\r\n    }\r\n  }\r\n\r\n  onOptionChange(id: string | undefined): void {\r\n    this.setOptionId(id);\r\n    const option =\r\n      this.effectiveOptions().find(o => o.id === id);\r\n    this.optionChange.emit(option);\r\n  }\r\n\r\n  onClear(): void {\r\n    this.setOptionId(undefined);\r\n    this.optionChange.emit(undefined);\r\n  }\r\n\r\n  onAdd(): void {\r\n    this.addClicked.emit();\r\n  }\r\n}\r\n","@if (!readonly()) {\r\n  <p-inputgroup class=\"alpha-prime-select__group\">\r\n    <p-select\r\n      class=\"alpha-prime-select__dropdown\"\r\n      [options]=\"effectiveOptions()\"\r\n      [disabled]=\"disabled()\"\r\n      [readonly]=\"readonly()\"\r\n      [placeholder]=\"effectivePlaceholder()\"\r\n      appendTo=\"body\"\r\n      [virtualScroll]=\"true\"\r\n      [virtualScrollItemSize]=\"30\"\r\n      optionLabel=\"caption\"\r\n      optionValue=\"id\"\r\n      optionDisabled=\"disabled\"\r\n      [ngModel]=\"optionId()\"\r\n      (ngModelChange)=\"onOptionChange($event)\"\r\n      [inputId]=\"name()\"\r\n    ></p-select>\r\n\r\n    @if (optionId() && showClear() && !disabled()) {\r\n      <p-button\r\n        severity=\"secondary\"\r\n        icon=\"fa fa-times\"\r\n        tabindex=\"-1\"\r\n        (click)=\"onClear()\"\r\n      ></p-button>\r\n    }\r\n\r\n    @if (showAdd()) {\r\n      <p-button\r\n        severity=\"info\"\r\n        icon=\"fa fa-plus\"\r\n        tabindex=\"-1\"\r\n        [disabled]=\"disabled()\"\r\n        (click)=\"onAdd()\"\r\n      ></p-button>\r\n    }\r\n  </p-inputgroup>\r\n} @else {\r\n  <div class=\"alpha-prime-select__readonly\">\r\n    <input\r\n      type=\"text\"\r\n      pInputText\r\n      [readOnly]=\"true\"\r\n      [value]=\"readonlyCaption() ?? ''\"\r\n    >\r\n  </div>\r\n}\r\n","export interface IAlphaPrimeSelectOption {\r\n  id: string;\r\n  caption: any;\r\n  disabled: boolean;\r\n  data?: any;\r\n}\r\n\r\nexport class AlphaPrimeSelectInfo {\r\n  /** determine how to set the initial option Id out of 8 options:\r\n   *\r\n   * 'first': first,\r\n   * 'none': undefined,\r\n   * 'idOrNone': id if found,\r\n   * 'idOrFirst': id or first.\r\n   *\r\n   * 'lsOrFirst': localStorage item or first,\r\n   * 'lsOrNone' : localStorage item if found,\r\n   * 'lsOrIdOrNone': localStorage item or id if found,\r\n   * 'lsOrIdOrFirst': localStorage item or id or first.\r\n   *\r\n   * The default value is 'first' */\r\n  initMode: 'first' | 'none' | 'idOrNone' | 'idOrFirst'\r\n    | 'lsOrFirst' | 'lsOrNone' | 'lsOrIdOrNone' | 'lsOrIdOrFirst';\r\n  options: IAlphaPrimeSelectOption[] = [];\r\n  /** key if the localStorage item to retrieved/set */\r\n  lsItemKey: string | undefined;\r\n\r\n  /** initial value */\r\n  optionId: string | undefined;\r\n\r\n  getOption(optionId: string | undefined) {\r\n    if (optionId === undefined) {\r\n      return undefined;\r\n    }\r\n    const option = this.options.find(o => o.id === optionId);\r\n    if (option === undefined) {\r\n      throw new Error('option should not be undefined');\r\n    }\r\n    return option;\r\n  }\r\n\r\n  static First(\r\n    options: IAlphaPrimeSelectOption[]): AlphaPrimeSelectInfo {\r\n    return new AlphaPrimeSelectInfo(\r\n      'first', options)\r\n  }\r\n\r\n  static None(\r\n    options: IAlphaPrimeSelectOption[]): AlphaPrimeSelectInfo {\r\n    return new AlphaPrimeSelectInfo(\r\n      'none', options);\r\n  }\r\n\r\n  static OptionId(\r\n    options: IAlphaPrimeSelectOption[],\r\n    optionId: string | undefined):AlphaPrimeSelectInfo {\r\n    return new AlphaPrimeSelectInfo(\r\n      'idOrNone', options, undefined, optionId);\r\n  }\r\n\r\n  static OptionIdOrFirst(\r\n    options: IAlphaPrimeSelectOption[],\r\n    optionId: string | undefined):AlphaPrimeSelectInfo {\r\n    return new AlphaPrimeSelectInfo(\r\n      'idOrFirst', options, undefined, optionId);\r\n  }\r\n\r\n  static LsOrFirst(options: IAlphaPrimeSelectOption[],\r\n                   lsItemKey: string): AlphaPrimeSelectInfo {\r\n    return new AlphaPrimeSelectInfo(\r\n      'lsOrFirst', options, lsItemKey);\r\n  }\r\n\r\n  static LsOrNone(options: IAlphaPrimeSelectOption[],\r\n                  lsItemKey: string):AlphaPrimeSelectInfo {\r\n    return new AlphaPrimeSelectInfo(\r\n      'lsOrNone', options, lsItemKey);\r\n  }\r\n\r\n  static LsOrIdOrFirst(options: IAlphaPrimeSelectOption[],\r\n                       lsItemKey: string,\r\n                       optionId: string | undefined): AlphaPrimeSelectInfo {\r\n    return new AlphaPrimeSelectInfo(\r\n      'lsOrIdOrFirst', options, lsItemKey, optionId);\r\n  }\r\n\r\n  static LsOrIdOrNone(options: IAlphaPrimeSelectOption[],\r\n                      lsItemKey: string,\r\n                      optionId: string | undefined):AlphaPrimeSelectInfo {\r\n    return new AlphaPrimeSelectInfo(\r\n      'lsOrIdOrNone', options, lsItemKey, optionId);\r\n  }\r\n\r\n  private setIdOrNone(id: string | undefined): void {\r\n    const option = id\r\n      ? this.options.find(o => o.id === id)\r\n      : undefined;\r\n    this.optionId = option?.id;\r\n  }\r\n\r\n  private setFirst(): void {\r\n    this.optionId = this.options.length > 0\r\n      ? this.options[0].id\r\n      : undefined;\r\n  }\r\n\r\n  private setIdOrFirst(id: string | undefined): void {\r\n    this.setIdOrNone(id);\r\n    if (this.optionId) {\r\n      return;\r\n    }\r\n    this.setFirst();\r\n  }\r\n\r\n  private setLsOrNone(lsItemKey: string): void {\r\n    const lsId = localStorage.getItem(lsItemKey!) || undefined;\r\n    this.setIdOrNone(lsId);\r\n  }\r\n\r\n  private setLsOrFirst(lsItemKey: string): void {\r\n    const lsId = localStorage.getItem(lsItemKey!) || undefined;\r\n    this.setIdOrFirst(lsId);\r\n  }\r\n\r\n  private setLsOrIdOrNone(lsItemKey: string, id: string | undefined) {\r\n    const lsId = localStorage.getItem(lsItemKey!) || undefined;\r\n    this.setIdOrNone(lsId || id);\r\n  }\r\n\r\n  private setLsOrIdOrFirst(lsItemKey: string, id: string | undefined) {\r\n    const lsId = localStorage.getItem(lsItemKey!) || undefined;\r\n    this.setIdOrFirst(lsId || id);\r\n  }\r\n\r\n  private constructor(\r\n    initMode: 'first' | 'none' | 'idOrNone' | 'idOrFirst'\r\n      | 'lsOrFirst' | 'lsOrNone' | 'lsOrIdOrNone' | 'lsOrIdOrFirst',\r\n    options: IAlphaPrimeSelectOption[],\r\n    lsItemKey?: string,\r\n    id?: string) {\r\n\r\n    this.initMode = initMode;\r\n    this.options = options;\r\n    this.lsItemKey = lsItemKey;\r\n    this.optionId = id;\r\n\r\n    switch (initMode) {\r\n      case 'first':\r\n        this.setFirst();\r\n        break;\r\n      case 'none':\r\n        this.optionId = undefined;\r\n        break;\r\n      case 'idOrNone':\r\n        this.setIdOrNone(id);\r\n        break;\r\n      case 'idOrFirst':\r\n        this.setIdOrFirst(id);\r\n        break;\r\n\r\n      case 'lsOrFirst':\r\n        this.setLsOrFirst(lsItemKey!);\r\n        break;\r\n      case 'lsOrNone':\r\n        this.setLsOrNone(lsItemKey!);\r\n        break;\r\n      case 'lsOrIdOrNone':\r\n        this.setLsOrIdOrNone(lsItemKey!, id)\r\n        break;\r\n      case 'lsOrIdOrFirst':\r\n        this.setLsOrIdOrFirst(lsItemKey!, id);\r\n        break;\r\n    }\r\n  }\r\n}\r\n","import {\r\n  ChangeDetectionStrategy,\r\n  Component,\r\n  computed,\r\n  inject,\r\n  input,\r\n  output\r\n} from '@angular/core';\r\nimport { ButtonDirective } from 'primeng/button';\r\nimport { Tooltip } from 'primeng/tooltip';\r\n\r\nimport { AlphaPrimeService } from '../../services/alpha-prime.service';\r\nimport { AlphaPrimeLabelComponent } from '../alpha-prime-label/alpha-prime-label.component';\r\n\r\n@Component({\r\n  selector: 'alpha-prime-submit-button',\r\n  standalone: true,\r\n  imports: [\r\n    ButtonDirective,\r\n    Tooltip\r\n  ],\r\n  templateUrl: './alpha-prime-submit-button.component.html',\r\n  styleUrl: './alpha-prime-submit-button.component.css',\r\n  changeDetection: ChangeDetectionStrategy.OnPush,\r\n  host: {\r\n    class: 'alpha-prime-submit-button'\r\n  }\r\n})\r\nexport class AlphaPrimeSubmitButtonComponent {\r\n  private readonly mPs = inject(AlphaPrimeService);\r\n\r\n  disabled = input(false);\r\n  busy = input(false);\r\n  sm = input(false);\r\n  showLabel = input(false);\r\n  caption = input(this.mPs.getTr('alpha.buttons.submit'));\r\n\r\n  clicked = output<void>();\r\n\r\n  publishMouseEvent = computed(() =>\r\n    !(this.busy() || this.disabled()));\r\n\r\n  onClicked(): void {\r\n    this.clicked.emit();\r\n  }\r\n\r\n  onMouseEnter(): void {\r\n    if (this.publishMouseEvent()) {\r\n      this.mPs.publish(true, AlphaPrimeLabelComponent.SHOW_MESSAGE);\r\n    }\r\n  }\r\n\r\n  onMouseLeave(): void {\r\n    if (this.publishMouseEvent()) {\r\n      this.mPs.publish(false, AlphaPrimeLabelComponent.SHOW_MESSAGE);\r\n    }\r\n  }\r\n}\r\n","<span (mouseenter)=\"onMouseEnter()\" (mouseleave)=\"onMouseLeave()\">\r\n  @if (showLabel()) {\r\n    <button pButton\r\n            class=\"p-button-success alpha-prime-button\"\r\n            [class.p-button-sm]=\"sm()\"\r\n            type=\"button\"\r\n            [disabled]=\"disabled()\"\r\n            [attr.aria-label]=\"caption()\"\r\n            (click)=\"onClicked()\">\r\n      <span>{{ caption() }}</span>\r\n      @if (!busy()) {\r\n        <i class=\"fa-regular fa-paper-plane\"></i>\r\n      } @else {\r\n        <i class=\"fa fa-spinner fa-spin\"></i>\r\n      }\r\n    </button>\r\n  } @else {\r\n    <button pButton\r\n            class=\"p-button-success p-button-icon-only alpha-prime-button\"\r\n            [class.p-button-sm]=\"sm()\"\r\n            type=\"button\"\r\n            [disabled]=\"disabled()\"\r\n            [pTooltip]=\"caption()\"\r\n            [attr.aria-label]=\"caption()\"\r\n            (click)=\"onClicked()\">\r\n      @if (!busy()) {\r\n        <i class=\"fa-regular fa-paper-plane\"></i>\r\n      } @else {\r\n        <i class=\"fa fa-spinner fa-spin\"></i>\r\n      }\r\n    </button>\r\n  }\r\n</span>\r\n","import {\r\n  ChangeDetectionStrategy,\r\n  Component,\r\n  computed,\r\n  effect,\r\n  inject,\r\n  input,\r\n  output,\r\n  signal\r\n} from '@angular/core';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { ToggleSwitch } from 'primeng/toggleswitch';\r\n\r\nimport { AlphaPrimeService } from '../../services/alpha-prime.service';\r\nimport { IAlphaPrimeSwitchOption } from './alpha-prime-switch-option';\r\n\r\n@Component({\r\n  selector: 'alpha-prime-switch',\r\n  imports: [\r\n    ToggleSwitch,\r\n    FormsModule\r\n  ],\r\n  templateUrl: './alpha-prime-switch.component.html',\r\n  styleUrl: './alpha-prime-switch.component.css',\r\n  changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class AlphaPrimeSwitchComponent {\r\n  private readonly mPs = inject(AlphaPrimeService);\r\n\r\n  name = input(this.mPs.generateRandomName());\r\n  disabled = input(false);\r\n  switchOption = input<IAlphaPrimeSwitchOption>({\r\n    caption: '',\r\n    id: '',\r\n    selected: true\r\n  });\r\n\r\n  switchOptionChange = output<IAlphaPrimeSwitchOption>();\r\n\r\n  private readonly resolvedSwitchOption = signal<IAlphaPrimeSwitchOption>({\r\n    caption: '',\r\n    id: '',\r\n    selected: true\r\n  });\r\n\r\n  effectiveSwitchOption = computed(() => this.resolvedSwitchOption());\r\n\r\n  constructor() {\r\n    effect(() => {\r\n      const incoming = this.switchOption();\r\n      const lsItem = incoming.lsItemKey\r\n        ? localStorage.getItem(incoming.lsItemKey)\r\n        : null;\r\n\r\n      this.resolvedSwitchOption.set({\r\n        ...incoming,\r\n        selected: lsItem ? lsItem === 'true' : incoming.selected\r\n      });\r\n    });\r\n  }\r\n\r\n  private check(selected: boolean): void {\r\n    const nextOption = {\r\n      ...this.effectiveSwitchOption(),\r\n      selected\r\n    };\r\n\r\n    this.resolvedSwitchOption.set(nextOption);\r\n    this.switchOptionChange.emit(nextOption);\r\n\r\n    if (nextOption.lsItemKey) {\r\n      localStorage.setItem(nextOption.lsItemKey, selected ? 'true' : 'false');\r\n    }\r\n  }\r\n\r\n  onChange(event: { checked: boolean }): void {\r\n    this.check(event.checked);\r\n  }\r\n\r\n  onCaptionClicked(): void {\r\n    if (this.disabled()) {\r\n      return;\r\n    }\r\n    this.check(!this.effectiveSwitchOption().selected);\r\n  }\r\n}\r\n","<p-toggleswitch\r\n  [style]=\"{ 'display': 'inline-block', 'vertical-align': 'middle' }\"\r\n  [ngModel]=\"effectiveSwitchOption().selected\"\r\n  [ngModelOptions]=\"{ standalone: true }\"\r\n  (onChange)=\"onChange($event)\"\r\n  [inputId]=\"name()\"\r\n  [disabled]=\"disabled()\"\r\n></p-toggleswitch>\r\n\r\n@if (!disabled()) {\r\n  <span class=\"p-pl-2\"\r\n        style=\"display: inline-block; vertical-align: middle; cursor: pointer;\"\r\n        (click)=\"onCaptionClicked()\">\r\n    {{ effectiveSwitchOption().caption }}\r\n  </span>\r\n} @else {\r\n  <span class=\"p-pl-2\"\r\n        style=\"display: inline-block; vertical-align: middle;\">\r\n    {{ effectiveSwitchOption().caption }}\r\n  </span>\r\n}\r\n","export interface IAlphaPrimeSwitchOption {\r\n  id: string;\r\n  caption: string;\r\n  selected: boolean;\r\n  /** optional localStorage item key that can store the selected value */\r\n  lsItemKey?: string;\r\n}\r\n\r\nexport class AlphaPrimeSwitchOption implements IAlphaPrimeSwitchOption {\r\n  id: string;\r\n  caption: string;\r\n  selected: boolean;\r\n  lsItemKey?: string;\r\n\r\n  /**\r\n   * When lsItemKey is provided, selected is initialized from localStorage if available.\r\n   */\r\n  constructor(\r\n    id: string,\r\n    caption: string,\r\n    selected: boolean,\r\n    lsItemKey?: string\r\n  ) {\r\n    this.id = id;\r\n    this.caption = caption;\r\n    this.selected = selected;\r\n    this.lsItemKey = lsItemKey;\r\n\r\n    if (lsItemKey) {\r\n      const lsItem = localStorage.getItem(lsItemKey);\r\n      if (lsItem) {\r\n        this.selected = lsItem === 'true';\r\n      }\r\n    }\r\n  }\r\n}\r\n\r\n","import {Directive, ElementRef, Input, OnDestroy, OnInit} from '@angular/core';\r\n\r\n@Directive({\r\n  selector: '[alphaPrimeRemainingHeight]',\r\n  standalone: true\r\n})\r\nexport class AlphaPrimeRemainingHeightDirective\r\n  implements OnInit, OnDestroy {\r\n\r\n  /** bottom margin in pixels (default value is 0) */\r\n  @Input() bottomMarginInPx = 0;\r\n\r\n  constructor(private elementRef: ElementRef<HTMLDivElement>) { }\r\n\r\n  interval: any;\r\n  private lastHeight = 0;\r\n\r\n  private setElementHeight() {\r\n    const native = this.elementRef.nativeElement;\r\n    const rect = native.getBoundingClientRect();\r\n    const spaceFromTop = window.innerHeight - rect.top - this.bottomMarginInPx;\r\n\r\n    // Only update if height changed significantly (more than 1px difference)\r\n    if (Math.abs(spaceFromTop - this.lastHeight) > 1) {\r\n      native.style.height = `${spaceFromTop}px`;\r\n      this.lastHeight = spaceFromTop;\r\n    }\r\n  }\r\n\r\n  ngOnInit(): void {\r\n\r\n    setTimeout(() => {\r\n      window.addEventListener(\r\n        'resize',\r\n        this.setElementHeight.bind(this));\r\n      this.setElementHeight();\r\n    }, 1);\r\n\r\n    // Check periodically (reduced frequency for better performance)\r\n    this.interval = setInterval(() => {\r\n      this.setElementHeight();\r\n    }, 1000);\r\n  }\r\n\r\n  ngOnDestroy(): void {\r\n    window.removeEventListener(\r\n      'resize',\r\n      this.setElementHeight);\r\n    if (this.interval) {\r\n      clearInterval(this.interval);\r\n    }\r\n  }\r\n\r\n}\r\n","/*\r\n * Public API Surface of alpha-prime\r\n */\r\n\r\n// Components\r\nexport * from './lib/components/alpha-prime-add-button/alpha-prime-add-button.component';\r\nexport * from './lib/components/alpha-prime-auto-complete/alpha-prime-auto-complete.component';\r\nexport * from './lib/components/alpha-prime-auto-complete/alpha-prime-auto-complete';\r\nexport * from './lib/components/alpha-prime-cancel-button/alpha-prime-cancel-button.component';\r\nexport * from './lib/components/alpha-prime-confirmation-modal/alpha-prime-confirmation-modal.component';\r\nexport * from './lib/components/alpha-prime-currency-input/alpha-prime-currency-input.component';\r\nexport * from './lib/components/alpha-prime-date-picker/alpha-prime-date-picker.component';\r\nexport * from './lib/components/alpha-prime-date-range-picker/alpha-prime-date-range-picker.component';\r\nexport * from './lib/components/alpha-prime-debug-tag/alpha-prime-debug-tag.component';\r\nexport * from './lib/components/alpha-prime-delete-button/alpha-prime-delete-button.component';\r\nexport * from './lib/components/alpha-prime-edit-button/alpha-prime-edit-button.component';\r\nexport * from './lib/components/alpha-prime-file-upload/alpha-prime-file-upload.component';\r\nexport * from './lib/components/alpha-prime-file-upload/alpha-prime-file-upload';\r\nexport * from './lib/components/alpha-prime-filter-box/alpha-prime-filter-box.component';\r\nexport * from './lib/components/alpha-prime-label/alpha-prime-label.component';\r\nexport * from './lib/components/alpha-prime-login-form/alpha-prime-login-form.component';\r\nexport * from './lib/components/alpha-prime-login-modal/alpha-prime-login-modal.component';\r\nexport * from './lib/components/alpha-prime-number-input/alpha-prime-number-input.component';\r\nexport * from './lib/components/alpha-prime-ok-button/alpha-prime-ok-button';\r\nexport * from './lib/components/alpha-prime-password-input/alpha-prime-password-input.component';\r\nexport * from './lib/components/alpha-prime-progress-bar/alpha-prime-progress-bar.component';\r\nexport * from './lib/components/alpha-prime-save-button/alpha-prime-save-button.component';\r\nexport * from './lib/components/alpha-prime-scroller/alpha-prime-scroller.component';\r\nexport * from './lib/components/alpha-prime-select/alpha-prime-select.component';\r\nexport * from './lib/components/alpha-prime-select/alpha-prime-select-info';\r\nexport * from './lib/components/alpha-prime-submit-button/alpha-prime-submit-button.component';\r\nexport * from './lib/components/alpha-prime-switch/alpha-prime-switch.component';\r\nexport * from './lib/components/alpha-prime-switch/alpha-prime-switch-option';\r\n\r\n// Directives\r\nexport * from './lib/directives/alpha-prime-remaining-height.directive';\r\n\r\n// Pipes\r\nexport * from './lib/pipes/alpha-prime-boldify.pipe';\r\n\r\n// Services\r\nexport * from './lib/services/alpha-prime.service';\r\nexport * from './lib/services/alpha-prime-modal.service';\r\nexport * from './lib/services/alpha-prime-modal-abstractions';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.AlphaPrimeService","i3","i2","FormModel","i2.AlphaPrimeModalService","i1"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAMa,iBAAiB,CAAA;IAE5B,iBAAiB,GACf,MAAK;AACL,IAAA,CAAC;AAEH,IAAA,KAAK,GACH,CAAC,GAAG,EAAE,YAAY,KAAK,CAAA,CAAA,EAAI,GAAG,CAAA,GAAA,EAAM,YAAY,GAAG;AAErD,IAAA,YAAY;;IAGZ,MAAM,GAG0C,MAAM,EAAE,CAAC,KAAK,CAAC;;IAG/D,MAAM,GAGJ,MAAM,EAAE,CAAC,EAAE,CAAC;IACd,YAAY,GAEV,MAAM,EAAE,CAAC,EAAE,CAAC;;AAGd,IAAA,OAAO,GAGL,MAAM,CAAC;AACT,IAAA,SAAS,GAGL,MAAM,CAAC,CAAC;IACZ,WAAW,GACY,MAAK;AAC5B,IAAA,CAAC;AAED;;;;;;;;;;AAUG;IACH,IAAI,CACF,YAAqB,EACrB,kBAIC,EACD,aAIC,EACD,YAKC,EACD,aAMC,EACD,eASC,EAAA;AACD,QAAA,IAAI,CAAC,YAAY,GAAG,YAAY;AAChC,QAAA,IAAI,CAAC,KAAK,GAAG,kBAAkB,CAAC,KAAK;QACrC,IAAI,aAAa,EAAE;AACjB,YAAA,IAAI,CAAC,gBAAgB,CACnB,aAAa,CAAC,iBAAiB,CAAC;QACpC;QACA,IAAI,YAAY,EAAE;AAChB,YAAA,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,MAAM,CAAC;QAC3C;QACA,IAAI,aAAa,EAAE;YACjB,IAAI,CAAC,gBAAgB,CACnB,aAAa,CAAC,MAAM,EACpB,aAAa,CAAC,YAAY,CAAC;QAC/B;QACA,IAAI,eAAe,EAAE;AACnB,YAAA,IAAI,CAAC,kBAAkB,CACrB,eAAe,CAAC,OAAO,EACvB,eAAe,CAAC,SAAS,EACzB,eAAe,CAAC,WAAW,CAAC;QAChC;IACF;AAEA,IAAA,gBAAgB,CAAC,iBAEM,EAAA;AACrB,QAAA,IAAI,CAAC,iBAAiB,GAAG,iBAAiB;IAC5C;AAEA,IAAA,eAAe,CACb,MAG6C,EAAA;AAC7C,QAAA,IAAI,CAAC,MAAM,GAAG,MAAM;IACtB;IAEA,gBAAgB,CACd,MAEkE,EAClE,YACsC,EAAA;AACtC,QAAA,IAAI,CAAC,MAAM,GAAG,MAAM;AACpB,QAAA,IAAI,CAAC,YAAY,GAAG,YAAY;IAClC;AAEA,IAAA,kBAAkB,CAChB,OAE4B,EAC5B,SAE6B,EAC7B,WACoB,EAAA;AACpB,QAAA,IAAI,CAAC,OAAO,GAAG,OAAO;AACtB,QAAA,IAAI,CAAC,SAAS,GAAG,SAAS;AAC1B,QAAA,IAAI,CAAC,WAAW,GAAG,WAAW;IAChC;AAEA,IAAA,kBAAkB,CAAC,GAAY,EAAA;QAC7B,IAAI,CAAC,GAAG,EAAE;YACR,GAAG,GAAG,EAAE;QACV;QACA,IAAI,MAAM,GAAW,EAAE;QACvB,MAAM,KAAK,GAAG,sDAAsD;AACpE,QAAA,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM;AAC7B,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE;AAC5B,YAAA,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,QAAQ,CAAC,CAAC;QAC9D;AACA,QAAA,OAAO,MAAM;IACf;wGA5JW,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA;AAAjB,IAAA,OAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,iBAAiB,cAFhB,MAAM,EAAA,CAAA;;4FAEP,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAH7B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE;AACb,iBAAA;;;MCgBY,4BAA4B,CAAA;AAgBnB,IAAA,GAAA;AAdpB,IAAA,QAAQ,GAAG,KAAK,CAAU,KAAK,oDAAC;AAChC,IAAA,OAAO,GAAG,KAAK,CAAS,EAAE,mDAAC;AAC3B,IAAA,gBAAgB,GAAG,QAAQ,CAAC,MAAK;AAC/B,QAAA,MAAM,aAAa,GAAG,IAAI,CAAC,OAAO,EAAE;AACpC,QAAA,IAAI,aAAa;AAAE,YAAA,OAAO,aAAa;QAEvC,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,mBAAmB,CAAC;;AAEtD,QAAA,OAAO,CAAC,UAAU,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,UAAU,GAAG,KAAK;AAC/E,IAAA,CAAC,4DAAC;AACF,IAAA,EAAE,GAAG,KAAK,CAAU,KAAK,8CAAC;AAC1B,IAAA,SAAS,GAAG,KAAK,CAAU,KAAK,qDAAC;AACvB,IAAA,OAAO,GAAG,IAAI,YAAY,EAAO;AAE3C,IAAA,WAAA,CAAoB,GAAsB,EAAA;QAAtB,IAAA,CAAA,GAAG,GAAH,GAAG;IACvB;IAEA,SAAS,GAAA;AACP,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;IACrB;wGArBW,4BAA4B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,iBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAA5B,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,4BAA4B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,EAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECrBzC,mbAWA,EAAA,MAAA,EAAA,CAAA,wjIAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDKI,YAAY,6bACZ,aAAa,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,cAAA,EAAA,eAAA,EAAA,mBAAA,EAAA,eAAA,EAAA,QAAA,EAAA,WAAA,EAAA,WAAA,EAAA,MAAA,EAAA,aAAA,EAAA,cAAA,EAAA,UAAA,EAAA,YAAA,EAAA,cAAA,EAAA,UAAA,EAAA,iBAAA,EAAA,gBAAA,EAAA,UAAA,EAAA,WAAA,CAAA,EAAA,CAAA,EAAA,CAAA;;4FAIJ,4BAA4B,EAAA,UAAA,EAAA,CAAA;kBAVxC,SAAS;+BACE,wBAAwB,EAAA,UAAA,EACtB,IAAI,EAAA,OAAA,EAEP;wBACP,YAAY;wBACZ;AACD,qBAAA,EAAA,QAAA,EAAA,mbAAA,EAAA,MAAA,EAAA,CAAA,wjIAAA,CAAA,EAAA;;sBAiBA;;;AEjCH;;AAE4D;MAK/C,qBAAqB,CAAA;AAEhC;;;;AAIqD;AACrD,IAAA,SAAS,CAAC,KAAc,EAAE,GAAG,IAAe,EAAA;AAE1C,QAAA,IAAI,KAAK,IAAI,IAAI,EAAE;AACjB,YAAA,OAAO,EAAE;QACX;AACA,QAAA,IAAI,IAAI,CAAC,MAAM,IAAI;AACb,eAAA,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE;AACrB,YAAA,OAAO,KAAK;QACd;QACA,MAAM,KAAK,GAAG,KAAe;AAC7B,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAW;AAC9B,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM;AAEvB,QAAA,MAAM,OAAO,GAAG,KAAK,CAAC,WAAW,EAAE;AACnC,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,EAAE;QAEjC,MAAM,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC;QACnC,IAAI,GAAG,GAAG,CAAC;AAAE,YAAA,OAAO,KAAK;QAEzB,MAAM,QAAQ,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC;AACxC,QAAA,MAAM,QAAQ,GAAG,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,CAAC;QAChD,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC,GAAG,GAAG,GAAG,CAAC;AAC5C,QAAA,OAAO,GAAG,QAAQ,CAAA,QAAA,EAAW,QAAQ,CAAA,SAAA,EAAY,SAAS,EAAE;IAC9D;wGA9BW,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA;sGAArB,qBAAqB,EAAA,YAAA,EAAA,IAAA,EAAA,IAAA,EAAA,mBAAA,EAAA,CAAA;;4FAArB,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAJjC,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACJ,oBAAA,IAAI,EAAE,mBAAmB;AACzB,oBAAA,UAAU,EAAE;AACb,iBAAA;;;ACKD;;;;;;;;;;;;;;;;AAgBE;MAsBW,+BAA+B,CAAA;IACjB,MAAM,GAC3B,MAAM,EAAE,CAAC,EAAE,CAAC;IAEhB,IACI,KAAK,CAAC,KAA+C,EAAA;AACvD,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK;AAClB,QAAA,IAAI,KAAK,KAAK,SAAS,EAAE;AACvB,YAAA,IAAI,CAAC,IAAI,GAAG,EAAE;AACd,YAAA,IAAI,CAAC,KAAK,GAAG,KAAK;QACpB;aAAO;AACL,YAAA,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,OAAO;AACzB,YAAA,IAAI,CAAC,KAAK,GAAG,IAAI;QACnB;IACF;AAEA,IAAA,QAAQ,GAAG,KAAK,CAAU,KAAK,oDAAC;AAChC,IAAA,WAAW,GAAG,KAAK,CAAS,EAAE,uDAAC;AAC/B,IAAA,YAAY,GAAG,KAAK,CAAS,EAAE,wDAAC;AAChC,IAAA,OAAO,GAAG,KAAK,CAAU,KAAK,mDAAC;AAC/B,IAAA,QAAQ,GAAG,KAAK,CAAU,KAAK,oDAAC;AAChC,IAAA,eAAe,GAAG,KAAK,CAAS,EAAE,2DAAC;AACnC,IAAA,EAAE,GAAG,KAAK,CAAU,KAAK,8CAAC;IAEjB,aAAa,GAAG,KAAK;IACrB,OAAO,GAAG,GAAG;AAEZ,IAAA,OAAO,GAAG,IAAI,YAAY,EAAQ;AAClC,IAAA,QAAQ,GAAG,IAAI,YAAY,EAAgC;AAC3D,IAAA,UAAU,GAAG,IAAI,YAAY,EAAU;AAEjD,IAAA,cAAc,GAA2B;AACvC,QAAA,OAAO,EAAE,MAAM;AACf,QAAA,yBAAyB,EAAE,GAAG;AAC9B,QAAA,4BAA4B,EAAE;KAC/B;AAED,IAAA,YAAY,GAA2B;AACrC,QAAA,OAAO,EAAE,MAAM;AACf,QAAA,yBAAyB,EAAE,GAAG;AAC9B,QAAA,4BAA4B,EAAE,GAAG;AACjC,QAAA,WAAW,EAAE;KACd;AAED,IAAA,IAAI,UAAU,GAAA;QACZ,OAAO,IAAI,CAAC,EAAE;cACV,IAAI,CAAC;AACP,cAAE,IAAI,CAAC,cAAc;IACzB;AAEA,IAAA,KAAK;IACL,IAAI,GAAG,EAAE;IACT,SAAS,GAAG,KAAK;IACjB,YAAY,GAAG,KAAK;IACpB,KAAK,GAAG,KAAK;AACb,IAAA,SAAS;AACT,IAAA,IAAI;AAEJ,IAAA,WAAA,GAAA;IACA;AAEA,IAAA,WAAW,GACT,MAAM,CAAiC,EAAE,uDAAC;AAE5C,IAAA,MAAM,CAAC,KAAU,EAAA;AACf,QAAA,IAAI,IAAI,CAAC,SAAS,EAAE;AAClB,YAAA,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC;QAC9B;AACA,QAAA,IAAI,CAAC,SAAS,GAAG,UAAU,CACzB,MAAK;AACH,YAAA,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,KAAK;AACvB,YAAA,IAAI,IAAI,CAAC,IAAI,KAAK,EAAE,EAAE;AACpB,gBAAA,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;gBAChB;YACF;AACA,YAAA,IAAI,IAAI,CAAC,IAAI,KAAK,GAAG,EAAE;AACrB,gBAAA,IAAI,CAAC,IAAI,GAAG,GAAG;YACjB;AACA,YAAA,IAAI,CAAC,SAAS,GAAG,IAAI;AACrB,YAAA,IAAI,CAAC,KAAK,GAAG,KAAK;AAClB,YAAA,IAAI,CAAC,YAAY,GAAG,KAAK;YAEzB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI;AAC9B,iBAAA,SAAS,CAAC;AACT,gBAAA,IAAI,EAAE,CAAC,WAA2C,KAAI;AACpD,oBAAA,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,WAAW,CAAC;AACjC,oBAAA,IAAI,CAAC,SAAS,GAAG,KAAK;gBACxB,CAAC;AACD,gBAAA,KAAK,EAAE,CAAC,KAAU,KAAI;AACpB,oBAAA,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC;AACpB,oBAAA,IAAI,CAAC,YAAY,GAAG,IAAI;AACxB,oBAAA,IAAI,CAAC,SAAS,GAAG,KAAK;gBACxB;AACD,aAAA,CAAC;AACN,QAAA,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC;IACpB;AAEA,IAAA,KAAK,CAAC,IAAa,EAAA;AACjB,QAAA,IAAI,IAAI,CAAC,SAAS,EAAE;AAClB,YAAA,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC;AAC5B,YAAA,IAAI,CAAC,SAAS,GAAG,SAAS;QAC5B;AACA,QAAA,IAAI,IAAI,CAAC,IAAI,EAAE;AACb,YAAA,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;AACvB,YAAA,IAAI,CAAC,IAAI,GAAG,SAAS;QACvB;AACA,QAAA,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC;AACxB,QAAA,IAAI,CAAC,KAAK,GAAG,SAAS;AACtB,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK;AAClB,QAAA,IAAI,CAAC,IAAI,GAAG,EAAE;QACd,IAAI,IAAI,EAAE;AACR,YAAA,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;QACrB;IACF;IAEA,OAAO,GAAA;AACL,QAAA,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;IAClB;AAEA,IAAA,UAAU,CAAC,KAA8B,EAAA;AACvC,QAAA,MAAM,KAAK,GAAG,KAAK,CAAC,KAAqC;AACzD,QAAA,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,OAAO;AACzB,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC;AACzB,QAAA,IAAI,CAAC,KAAK,GAAG,IAAI;AACjB,QAAA,IAAI,IAAI,CAAC,aAAa,EAAE;YACtB,UAAU,CAAC,MAAK;AACd,gBAAA,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;YACnB,CAAC,EAAE,GAAG,CAAC;QACT;IACF;IAEA,KAAK,GAAA;QACH,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;IACjC;IAEA,WAAW,GAAA;AACT,QAAA,IAAI,IAAI,CAAC,SAAS,EAAE;AAClB,YAAA,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC;AAC5B,YAAA,IAAI,CAAC,SAAS,GAAG,SAAS;QAC5B;AACA,QAAA,IAAI,IAAI,CAAC,IAAI,EAAE;AACb,YAAA,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;AACvB,YAAA,IAAI,CAAC,IAAI,GAAG,SAAS;QACvB;IACF;wGAhJW,+BAA+B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAA/B,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,+BAA+B,klDCnD5C,mkEAqEA,EAAA,MAAA,EAAA,CAAA,yCAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA;;ADjCI,gBAAA,WAAW,wxBACX,OAAO,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA;;gBAIP,kBAAkB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,YAAA,EAAA,QAAA,EAAA,iDAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,gBAAA,EAAA,OAAA,EAAA,YAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,SAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,cAAA,EAAA,MAAA,EAAA,eAAA,EAAA,uBAAA,EAAA,sBAAA,EAAA,eAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,YAAA,EAAA,YAAA,EAAA,WAAA,EAAA,mBAAA,EAAA,gBAAA,EAAA,cAAA,EAAA,QAAA,EAAA,OAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,kBAAA,EAAA,cAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,SAAA,EAAA,cAAA,EAAA,uBAAA,EAAA,uBAAA,EAAA,WAAA,EAAA,cAAA,EAAA,qBAAA,EAAA,kBAAA,EAAA,gBAAA,EAAA,aAAA,EAAA,aAAA,EAAA,aAAA,EAAA,IAAA,EAAA,eAAA,EAAA,uBAAA,EAAA,kBAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,cAAA,EAAA,WAAA,EAAA,WAAA,EAAA,WAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,gBAAA,EAAA,UAAA,EAAA,YAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,gBAAA,EAAA,SAAA,EAAA,QAAA,EAAA,QAAA,EAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,aAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAClB,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,mBAAA,EAAA,UAAA,EAAA,MAAA,EAAA,OAAA,EAAA,QAAA,EAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,SAAA,EAAA,aAAA,EAAA,OAAA,EAAA,OAAA,EAAA,MAAA,EAAA,SAAA,EAAA,aAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,MAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,MAAA,EAAA,OAAA,EAAA,UAAA,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,OAAA,EAAA,UAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,SAAA,EAAA,OAAA,EAAA,YAAA,EAAA,YAAA,EAAA,eAAA,EAAA,WAAA,EAAA,WAAA,EAAA,SAAA,EAAA,MAAA,EAAA,OAAA,EAAA,SAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,OAAA,CAAA,EAAA,OAAA,EAAA,CAAA,SAAA,EAAA,SAAA,EAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACZ,eAAe,gLACf,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,MAAA,EAAA,QAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACZ,UAAU,EAAA,QAAA,EAAA,2CAAA,EAAA,MAAA,EAAA,CAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACV,eAAe,EAAA,QAAA,EAAA,uCAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA;;gBAPf,qBAAqB,EAAA,IAAA,EAAA,mBAAA,EAAA,CAAA,EAAA,CAAA;;4FAYZ,+BAA+B,EAAA,UAAA,EAAA,CAAA;kBApB3C,SAAS;+BACE,2BAA2B,EAAA,UAAA,EACzB,IAAI,EAAA,OAAA,EACP;;wBAEP,WAAW;wBACX,OAAO;;wBAEP,qBAAqB;;wBAErB,kBAAkB;wBAClB,YAAY;wBACZ,eAAe;wBACf,YAAY;wBACZ,UAAU;wBACV;AACD,qBAAA,EAAA,QAAA,EAAA,mkEAAA,EAAA,MAAA,EAAA,CAAA,yCAAA,CAAA,EAAA;;sBAKA,KAAK;uBAAC,EAAC,QAAQ,EAAE,IAAI,EAAC;;sBAGtB;;sBAoBA;;sBACA;;sBAEA;;sBACA;;sBACA;;;MExEU,sBAAsB,CAAA;AAEjC;;;;;;;AAOG;AACH,IAAA,OAAO,SAAS,CACd,IAAY,EACZ,MAAyC,EACzC,MAAiD,EAAA;QACjD,OAAO,MAAM,CAAC,IAAI;aACf,IAAI,CACH,GAAG,CAAC,CAAC,KAAU,KAAK;AACjB,aAAA,GAAG,CAAC,CAAC,IAAO,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACzC;AACD;;MCZY,+BAA+B,CAAA;AAWtB,IAAA,GAAA;AATpB,IAAA,QAAQ,GAAG,KAAK,CAAU,KAAK,oDAAC;AAChC,IAAA,OAAO,GAAG,KAAK,CAAS,EAAE,mDAAC;IAC3B,gBAAgB,GAAG,QAAQ,CAAC,MAC1B,IAAI,CAAC,OAAO,EAAE,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,sBAAsB,CAAC,4DACzD;AACD,IAAA,EAAE,GAAC,KAAK,CAAU,KAAK,8CAAC;AACxB,IAAA,SAAS,GAAG,KAAK,CAAU,KAAK,qDAAC;AACvB,IAAA,OAAO,GAAG,IAAI,YAAY,EAAO;AAE3C,IAAA,WAAA,CAAoB,GAAsB,EAAA;QAAtB,IAAA,CAAA,GAAG,GAAH,GAAG;IACvB;IAEA,SAAS,GAAA;AACP,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;IACrB;wGAhBW,+BAA+B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAD,iBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAA/B,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,+BAA+B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,2BAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,EAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECf5C,gbAWA,EAAA,MAAA,EAAA,CAAA,wjIAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDFI,YAAY,6bACZ,aAAa,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,cAAA,EAAA,eAAA,EAAA,mBAAA,EAAA,eAAA,EAAA,QAAA,EAAA,WAAA,EAAA,WAAA,EAAA,MAAA,EAAA,aAAA,EAAA,cAAA,EAAA,UAAA,EAAA,YAAA,EAAA,cAAA,EAAA,UAAA,EAAA,iBAAA,EAAA,gBAAA,EAAA,UAAA,EAAA,WAAA,CAAA,EAAA,CAAA,EAAA,CAAA;;4FAKJ,+BAA+B,EAAA,UAAA,EAAA,CAAA;kBAV3C,SAAS;iCACI,IAAI,EAAA,QAAA,EACN,2BAA2B,EAAA,OAAA,EAC5B;wBACP,YAAY;wBACZ;AACD,qBAAA,EAAA,QAAA,EAAA,gbAAA,EAAA,MAAA,EAAA,CAAA,wjIAAA,CAAA,EAAA;;sBAaA;;;MEZU,2BAA2B,CAAA;AAiBlB,IAAA,GAAA;IAhBpB,OAAO,GAAG,KAAK;;AAGf,IAAA,SAAS,GAAG,MAAM,CAAS,EAAE,qDAAC;;;;IAK9B,IACI,GAAG,CAAC,KAAa,EAAA;AACnB,QAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC;IAC3B;AACA,IAAA,IAAI,GAAG,GAAA;AACL,QAAA,OAAO,IAAI,CAAC,SAAS,EAAE;IACzB;AAEA,IAAA,WAAA,CAAoB,GAAsB,EAAA;QAAtB,IAAA,CAAA,GAAG,GAAH,GAAG;IAAuB;IAE9C,QAAQ,GAAA;AACN,QAAA,IAAI,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE;AACzB,YAAA,YAAY,CAAC,OAAO,CAAC,mBAAmB,EAAE,MAAM,CAAC;QACnD;QACA,MAAM,IAAI,GAAG,YAAY,CAAC,OAAO,CAAC,mBAAmB,CAAC;QACtD,IAAI,CAAC,OAAO,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,OAAO;IAChD;IAEA,OAAO,IAAI,CAAC,MAAe,EAAA;QACzB,IAAI,MAAM,EAAE;AACV,YAAA,YAAY,CAAC,OAAO,CAAC,mBAAmB,EAAE,MAAM,CAAC;QACnD;aAAO;AACL,YAAA,YAAY,CAAC,UAAU,CAAC,mBAAmB,CAAC;QAC9C;AACA,QAAA,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE;IAC1B;AAEA,IAAA,WAAW,MAAM,GAAA;QACf,MAAM,IAAI,GAAG,YAAY,CAAC,OAAO,CAAC,mBAAmB,CAAC;QACtD,OAAO,IAAI,IAAI,MAAM;IACvB;wGAvCW,2BAA2B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,iBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;4FAA3B,2BAA2B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,EAAA,GAAA,EAAA,KAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECZxC,0LAOA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDAI,OAAO,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,cAAA,EAAA,eAAA,EAAA,mBAAA,EAAA,eAAA,EAAA,QAAA,EAAA,WAAA,EAAA,WAAA,EAAA,MAAA,EAAA,aAAA,EAAA,cAAA,EAAA,UAAA,EAAA,YAAA,EAAA,cAAA,EAAA,UAAA,EAAA,iBAAA,EAAA,gBAAA,EAAA,UAAA,EAAA,WAAA,CAAA,EAAA,CAAA,EAAA,CAAA;;4FAKE,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBARvC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,uBAAuB,EAAA,OAAA,EACxB;wBACP;AACD,qBAAA,EAAA,QAAA,EAAA,0LAAA,EAAA;;sBAaA,KAAK;uBAAC,EAAE,QAAQ,EAAE,IAAI,EAAE;;;MELd,oCAAoC,CAAA;AASrC,IAAA,GAAA;AACA,IAAA,IAAA;AACA,IAAA,IAAA;AAVV,IAAA,OAAO,GAAgC,MAAK,EAAG,CAAC;AAEhD,IAAA,KAAK;AACL,IAAA,OAAO;AACP,IAAA,GAAG;AACH,IAAA,EAAE;AAEF,IAAA,WAAA,CACU,GAAsB,EACtB,IAAsB,EACtB,IAAyB,EAAA;QAFzB,IAAA,CAAA,GAAG,GAAH,GAAG;QACH,IAAA,CAAA,IAAI,GAAJ,IAAI;QACJ,IAAA,CAAA,IAAI,GAAJ,IAAI;QACZ,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,+BAA+B,CAAC;QAC5D,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,iCAAiC,CAAC;QAChE,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,6BAA6B,CAAC;QACxD,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,4BAA4B,CAAC;IACxD;IAEA,QAAQ,GAAA;QACN,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;IAClC;IAEA,IAAI,CACF,OAAoC,EACpC,KAAc,EACd,OAAgB,EAChB,GAAY,EACZ,EAAW,EAAA;AACX,QAAA,IAAI,CAAC,OAAO,GAAG,OAAO;QAEtB,UAAU,CACR,MAAK;AACH,YAAA,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG;AACjB,kBAAE;kBACA,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,+BAA+B,CAAC;QACrD,CAAC,EAAE,GAAG,CAAC;QAET,IAAI,OAAO,EAAE;AACX,YAAA,IAAI,CAAC,OAAO,GAAG,OAAO;QACxB;QACA,IAAI,GAAG,EAAE;AACP,YAAA,IAAI,CAAC,GAAG,GAAG,GAAG;QAChB;QACA,IAAI,EAAE,EAAE;AACN,YAAA,IAAI,CAAC,EAAE,GAAG,EAAE;QACd;IACF;IAEA,KAAK,GAAA;AACH,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;AAClB,QAAA,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;IACvB;IAEA,IAAI,GAAA;AACF,QAAA,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;AACnB,QAAA,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;IACxB;wGAxDW,oCAAoC,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,iBAAA,EAAA,EAAA,EAAA,KAAA,EAAAE,IAAA,CAAA,gBAAA,EAAA,EAAA,EAAA,KAAA,EAAAA,IAAA,CAAA,mBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAApC,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,oCAAoC,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,gCAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EChBjD,+dAwBA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDfI,2BAA2B,mFAC3B,MAAM,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,MAAA,EAAA,OAAA,EAAA,UAAA,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,OAAA,EAAA,UAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,SAAA,EAAA,OAAA,EAAA,YAAA,EAAA,YAAA,EAAA,eAAA,EAAA,WAAA,EAAA,WAAA,EAAA,SAAA,EAAA,MAAA,EAAA,OAAA,EAAA,SAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,OAAA,CAAA,EAAA,OAAA,EAAA,CAAA,SAAA,EAAA,SAAA,EAAA,QAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;4FAMG,oCAAoC,EAAA,UAAA,EAAA,CAAA;kBAVhD,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,gCAAgC,EAAA,OAAA,EACjC;wBACP,2BAA2B;wBAC3B;qBACD,EAAA,eAAA,EAGgB,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,+dAAA,EAAA;;;MEapC,gCAAgC,CAAA;AA6CvB,IAAA,GAAA;;;IAzCpB,UAAU,GAAW,aAAa;AAEzB,IAAA,IAAI;IACJ,QAAQ,GAAG,KAAK;IAChB,WAAW,GAAG,EAAE;AAChB,IAAA,GAAG,GAAG,CAAC,MAAM,CAAC,SAAS;AACvB,IAAA,GAAG,GAAG,MAAM,CAAC,SAAS;IACtB,QAAQ,GAAG,KAAK;IAChB,cAAc,GAAG,GAAG;IACpB,MAAM,GAAG,OAAO;IAChB,QAAQ,GAAG,KAAK;IAChB,eAAe,GAAuB,EAAE;IACxC,EAAE,GAAG,KAAK;IACV,SAAS,GAAG,IAAI;AAEzB,IAAA,IAAI;IAEJ,IACI,KAAK,CAAC,KAAyB,EAAA;QACjC,QAAQ,KAAK;AACX,YAAA,KAAK,SAAS;AACZ,gBAAA,IAAI,CAAC,IAAI,GAAG,SAAS;gBACrB;AACF,YAAA,KAAK,CAAC;AACJ,gBAAA,IAAI,CAAC,IAAI,GAAG,GAAG;gBACf;AACF,YAAA;AACE,gBAAA,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,QAAQ,EAAE;;IAElC;AAEA,IAAA,IAAI,KAAK,GAAA;AACP,QAAA,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;AACd,YAAA,OAAO,SAAS;QAClB;QACA,MAAM,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;AAC3B,QAAA,OAAO,KAAK,CAAC,CAAC,CAAC,GAAG,SAAS,GAAG,CAAC;IACjC;AAEU,IAAA,WAAW,GAAG,IAAI,YAAY,EAAU;AAElD,IAAA,WAAA,CAAoB,GAAsB,EAAA;QAAtB,IAAA,CAAA,GAAG,GAAH,GAAG;QACrB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,kBAAkB,EAAE;IAC3C;IAEA,OAAO,GAAG,KAAK;AAEf,IAAA,cAAc,GAAG;AACf,QAAA,OAAO,EAAE,MAAM;AACf,QAAA,yBAAyB,EAAE,GAAG;AAC9B,QAAA,4BAA4B,EAAE;KAC/B;AAED,IAAA,YAAY,GAAG;AACb,QAAA,OAAO,EAAE,MAAM;AACf,QAAA,yBAAyB,EAAE,GAAG;AAC9B,QAAA,4BAA4B,EAAE,GAAG;AACjC,QAAA,WAAW,EAAE;KACd;AAED,IAAA,IAAI,UAAU,GAAA;QACZ,OAAO,IAAI,CAAC;cACR,IAAI,CAAC;AACP,cAAE,IAAI,CAAC,cAAc;IACzB;AAEA,IAAA,YAAY,CAAC,IAAiC,EAAA;QAC5C,IAAI,CAAC,IAAI,EAAE;YACT,IAAI,CAAC,OAAO,EAAE;YACd;QACF;;AAEA,QAAA,IAAI,GAAG,CAAA,EAAG,IAAI,CAAA,CAAE;QAChB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC;AACrC,QAAA,IAAI,IAAI,CAAC,IAAI,KAAK;eACb,IAAI,CAAC,IAAI,KAAK;AACd,eAAA,IAAI,CAAC,IAAI,KAAK,KAAK,EAAE;AACxB,YAAA,IAAI,CAAC,OAAO,GAAG,KAAK;AACpB,YAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC;YAChC;QACF;QACA,MAAM,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;AAC3B,QAAA,IAAI,CAAqB;QACzB,IAAI,KAAK,CAAC,CAAC;eACN,CAAC,GAAG,IAAI,CAAC;AACT,eAAA,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE;AACjB,YAAA,IAAI,CAAC,OAAO,GAAG,IAAI;YACnB,CAAC,GAAG,SAAS;QACf;aAAO;AACL,YAAA,IAAI,CAAC,OAAO,GAAG,KAAK;YACpB,CAAC,GAAG,CAAC;QACP;AACA,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;IAC1B;IAEA,OAAO,GAAA;AACL,QAAA,IAAI,CAAC,OAAO,GAAG,KAAK;AACpB,QAAA,IAAI,CAAC,IAAI,GAAG,SAAS;AACrB,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC;IAClC;IAEA,MAAM,GAAA;AACJ,QAAA,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK;QACpB,IAAI,CAAC,EAAE;YACL,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;QAC1B;IACF;wGA9GW,gCAAgC,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAF,iBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAhC,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,gCAAgC,yZC3B7C,8hCAyCA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,ED3BI,SAAS,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,aAAA,EAAA,OAAA,EAAA,SAAA,EAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACT,SAAS,8HACT,OAAO,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACP,WAAW,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAE,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACX,MAAM,sDACN,MAAM,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,MAAA,EAAA,OAAA,EAAA,UAAA,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,OAAA,EAAA,UAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,SAAA,EAAA,OAAA,EAAA,YAAA,EAAA,YAAA,EAAA,eAAA,EAAA,WAAA,EAAA,WAAA,EAAA,SAAA,EAAA,MAAA,EAAA,OAAA,EAAA,SAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,OAAA,CAAA,EAAA,OAAA,EAAA,CAAA,SAAA,EAAA,SAAA,EAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACN,OAAO,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACP,eAAe,mHACf,UAAU,EAAA,QAAA,EAAA,2CAAA,EAAA,MAAA,EAAA,CAAA,YAAA,CAAA,EAAA,CAAA,EAAA,CAAA;;4FAKD,gCAAgC,EAAA,UAAA,EAAA,CAAA;kBAhB5C,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,4BAA4B,EAAA,OAAA,EAC7B;wBACP,SAAS;wBACT,SAAS;wBACT,OAAO;wBACP,WAAW;wBACX,MAAM;wBACN,MAAM;wBACN,OAAO;wBACP,eAAe;wBACf;AACD,qBAAA,EAAA,QAAA,EAAA,8hCAAA,EAAA;;sBAUA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBAIA,KAAK;uBAAC,EAAC,QAAQ,EAAE,IAAI,EAAC;;sBAsBtB;;;ME5CU,6BAA6B,CAAA;AAyCpB,IAAA,GAAA;AAxCX,IAAA,IAAI;AAEb,IAAA,UAAU;AACV,IAAA,EAAE,GAAG,MAAM,CAAS,YAAY,8CAAC;IAEjC,IACI,WAAW,CAAC,EAAqB,EAAA;AACnC,QAAA,MAAM,MAAM,GAAa,CAAC,IAAI,CAAC,UAAU,CAAC;AAC1C,QAAA,IAAI,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE;AACrB,YAAA,KAAK,MAAM,CAAC,IAAI,EAAE,EAAE;AAClB,gBAAA,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;YAChB;QACF;aAAO;AACL,YAAA,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;QACjB;QAEA,IAAI,CAAC,GAAI,CAAC;QACV,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AACtB,QAAA,IAAI,CAAC,UAAU,GAAG,WAAW,CAAC,MAAK;AACjC,YAAA,CAAC,EAAE;AACH,YAAA,IAAI,CAAC,GAAG,EAAE,CAAC,MAAM,EAAE;gBACjB,CAAC,GAAG,CAAC;YACP;YACA,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QACxB,CAAC,EAAE,IAAI,CAAC;IACV;IAES,QAAQ,GAAG,KAAK;IAChB,SAAS,GAAG,IAAI;IAChB,QAAQ,GAAG,KAAK;IAChB,WAAW,GAAG,KAAK;IACnB,UAAU,GAAG,UAAU;IACvB,OAAO,GAAS,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC;IACpC,OAAO,GAAS,IAAI,IAAI,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,CAAC;AACtC,IAAA,IAAI;IACJ,QAAQ,GAAG,KAAK;IAChB,eAAe,GAA8B,EAAE;IAC/C,EAAE,GAAG,KAAK;AACT,IAAA,UAAU,GAAG,IAAI,YAAY,EAAoB;AAE3D,IAAA,WAAA,CAAoB,GAAsB,EAAA;QAAtB,IAAA,CAAA,GAAG,GAAH,GAAG;QACrB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,kBAAkB,EAAE;IAC3C;AAEA,IAAA,cAAc,GAAG;AACf,QAAA,OAAO,EAAE,MAAM;AACf,QAAA,yBAAyB,EAAE,GAAG;AAC9B,QAAA,4BAA4B,EAAE;KAC/B;AAED,IAAA,YAAY,GAAG;AACb,QAAA,OAAO,EAAE,MAAM;AACf,QAAA,yBAAyB,EAAE,GAAG;AAC9B,QAAA,4BAA4B,EAAE,GAAG;AACjC,QAAA,WAAW,EAAE;KACd;AAED,IAAA,IAAI,UAAU,GAAA;QACZ,OAAO,IAAI,CAAC;cACR,IAAI,CAAC;AACP,cAAE,IAAI,CAAC,cAAc;IACzB;IAEA,WAAW,GAAA;AACT,QAAA,IAAI,IAAI,CAAC,UAAU,EAAE;AACnB,YAAA,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC;QAChC;IACF;IAEA,OAAO,GAAA;AACL,QAAA,IAAI,CAAC,IAAI,GAAG,SAAS;AACrB,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC;IACjC;AAEA,IAAA,aAAa,CAAC,EAAQ,EAAA;AACpB,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;IAC1B;wGA7EW,6BAA6B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAF,iBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAA7B,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,6BAA6B,oaC1B1C,u/CAwDA,EAAA,MAAA,EAAA,CAAA,2BAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,ED1CI,UAAU,EAAA,QAAA,EAAA,2CAAA,EAAA,MAAA,EAAA,CAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACV,UAAU,EAAA,QAAA,EAAA,2CAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,YAAA,EAAA,YAAA,EAAA,SAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,gBAAA,EAAA,WAAA,EAAA,eAAA,EAAA,YAAA,EAAA,mBAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,UAAA,EAAA,MAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,UAAA,EAAA,UAAA,EAAA,YAAA,EAAA,YAAA,EAAA,aAAA,EAAA,aAAA,EAAA,UAAA,EAAA,6BAAA,EAAA,WAAA,EAAA,UAAA,EAAA,eAAA,EAAA,cAAA,EAAA,eAAA,EAAA,uBAAA,EAAA,uBAAA,EAAA,WAAA,EAAA,YAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,aAAA,EAAA,sBAAA,EAAA,SAAA,EAAA,eAAA,EAAA,WAAA,EAAA,uBAAA,EAAA,uBAAA,EAAA,UAAA,EAAA,SAAA,EAAA,SAAA,EAAA,eAAA,EAAA,cAAA,EAAA,UAAA,EAAA,mBAAA,EAAA,gBAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,aAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,SAAA,EAAA,QAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,SAAA,EAAA,cAAA,EAAA,cAAA,EAAA,eAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACV,WAAW,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAE,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACX,eAAe,mHACf,MAAM,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,MAAA,EAAA,OAAA,EAAA,UAAA,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,OAAA,EAAA,UAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,SAAA,EAAA,OAAA,EAAA,YAAA,EAAA,YAAA,EAAA,eAAA,EAAA,WAAA,EAAA,WAAA,EAAA,SAAA,EAAA,MAAA,EAAA,OAAA,EAAA,SAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,OAAA,CAAA,EAAA,OAAA,EAAA,CAAA,SAAA,EAAA,SAAA,EAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACN,MAAM,EAAA,QAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACN,OAAO,oFACP,SAAS,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,aAAA,EAAA,OAAA,EAAA,SAAA,EAAA,OAAA,EAAA,SAAA,CAAA,EAAA,CAAA,EAAA,CAAA;;4FAKA,6BAA6B,EAAA,UAAA,EAAA,CAAA;kBAfzC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,yBAAyB,EAAA,OAAA,EAC1B;wBACP,UAAU;wBACV,UAAU;wBACV,WAAW;wBACX,eAAe;wBACf,MAAM;wBACN,MAAM;wBACN,OAAO;wBACP;AACD,qBAAA,EAAA,QAAA,EAAA,u/CAAA,EAAA,MAAA,EAAA,CAAA,2BAAA,CAAA,EAAA;;sBAKA;;sBAKA;;sBAsBA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;;MEvCU,kCAAkC,CAAA;AAC7C,IAAA,SAAS;AAEA,IAAA,SAAS;AACR,IAAA,eAAe,GAAG,IAAI,YAAY,EAAoB;AAEvD,IAAA,OAAO;AACN,IAAA,aAAa,GAAG,IAAI,YAAY,EAAoB;IAErD,QAAQ,GAAG,KAAK;IAEhB,OAAO,GAAS,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC;IACpC,OAAO,GAAS,IAAI,IAAI,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,CAAC;IACtC,aAAa,GAAG,CAAC;IACjB,UAAU,GAAG,SAAS;IACtB,WAAW,GAAG,EAAE;IAChB,QAAQ,GAAG,KAAK;IAChB,eAAe,GAAG,EAAE;IACpB,EAAE,GAAG,KAAK;AAEnB,IAAA,cAAc,GAAG;AACf,QAAA,OAAO,EAAE,MAAM;AACf,QAAA,yBAAyB,EAAE,GAAG;AAC9B,QAAA,4BAA4B,EAAE;KAC/B;AAED,IAAA,YAAY,GAAG;AACb,QAAA,OAAO,EAAE,MAAM;AACf,QAAA,yBAAyB,EAAE,GAAG;AAC9B,QAAA,4BAA4B,EAAE,GAAG;AACjC,QAAA,WAAW,EAAE;KACd;AAED,IAAA,IAAI,UAAU,GAAA;QACZ,OAAO,IAAI,CAAC;cACR,IAAI,CAAC;AACP,cAAE,IAAI,CAAC,cAAc;IACzB;AAEA,IAAA,WAAW,CAAC,SAAiB,EAAA;AAC3B,QAAA,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC,CAAC,CAAC;QAC7B,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC,CAAC,CAAC,IAAI;AAC7B,cAAE;AACF,cAAE,SAAS,CAAC,CAAC,CAAC;QAChB,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC;QACzC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;IACvC;IAEA,OAAO,GAAA;AACL,QAAA,IAAI,CAAC,SAAS,GAAG,SAAS;AAC1B,QAAA,IAAI,CAAC,SAAS,GAAG,SAAS;AAC1B,QAAA,IAAI,CAAC,OAAO,GAAG,SAAS;QACxB,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC;QACzC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC;IACzC;wGAtDW,kCAAkC,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAlC,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,kCAAkC,0bC1B/C,syDAkEA,EAAA,MAAA,EAAA,CAAA,2BAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDpDI,SAAS,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,aAAA,EAAA,OAAA,EAAA,SAAA,EAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACT,UAAU,EAAA,QAAA,EAAA,2CAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,YAAA,EAAA,YAAA,EAAA,SAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,gBAAA,EAAA,WAAA,EAAA,eAAA,EAAA,YAAA,EAAA,mBAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,UAAA,EAAA,MAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,UAAA,EAAA,UAAA,EAAA,YAAA,EAAA,YAAA,EAAA,aAAA,EAAA,aAAA,EAAA,UAAA,EAAA,6BAAA,EAAA,WAAA,EAAA,UAAA,EAAA,eAAA,EAAA,cAAA,EAAA,eAAA,EAAA,uBAAA,EAAA,uBAAA,EAAA,WAAA,EAAA,YAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,aAAA,EAAA,sBAAA,EAAA,SAAA,EAAA,eAAA,EAAA,WAAA,EAAA,uBAAA,EAAA,uBAAA,EAAA,UAAA,EAAA,SAAA,EAAA,SAAA,EAAA,eAAA,EAAA,cAAA,EAAA,UAAA,EAAA,mBAAA,EAAA,gBAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,aAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,SAAA,EAAA,QAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,SAAA,EAAA,cAAA,EAAA,cAAA,EAAA,eAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACV,WAAW,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACX,UAAU,8GACV,eAAe,EAAA,QAAA,EAAA,uCAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACf,MAAM,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,MAAA,EAAA,OAAA,EAAA,UAAA,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,OAAA,EAAA,UAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,SAAA,EAAA,OAAA,EAAA,YAAA,EAAA,YAAA,EAAA,eAAA,EAAA,WAAA,EAAA,WAAA,EAAA,SAAA,EAAA,MAAA,EAAA,OAAA,EAAA,SAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,OAAA,CAAA,EAAA,OAAA,EAAA,CAAA,SAAA,EAAA,SAAA,EAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACN,MAAM,sDACN,OAAO,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,CAAA,EAAA,CAAA;;4FAKE,kCAAkC,EAAA,UAAA,EAAA,CAAA;kBAhB9C,SAAS;+BACE,+BAA+B,EAAA,UAAA,EAC7B,IAAI,EAAA,OAAA,EACP;wBACP,SAAS;wBACT,UAAU;wBACV,WAAW;wBACX,UAAU;wBACV,eAAe;wBACf,MAAM;wBACN,MAAM;wBACN;AACD,qBAAA,EAAA,QAAA,EAAA,syDAAA,EAAA,MAAA,EAAA,CAAA,2BAAA,CAAA,EAAA;;sBAOA;;sBACA;;sBAEA;;sBACA;;sBAEA;;sBAEA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;;ME/BU,wBAAwB,CAAA;;AAGnC,IAAA,OAAgB,YAAY,GAAG,CAAA,oCAAA,CAAsC;AAEpD,IAAA,YAAY,GAAG,MAAM,CAAC,iBAAiB,CAAC;AAEzD,IAAA,OAAO,GAAG,KAAK,CAAC,EAAE,mDAAC;AACnB,IAAA,KAAK,GAAG,KAAK,CAAC,OAAO,iDAAC;AACtB,IAAA,OAAO,GAAG,KAAK,CAAC,KAAK,mDAAC;AACtB,IAAA,cAAc,GAAG,KAAK,CAAqB,SAAS,0DAAC;AAEpC,IAAA,OAAO,GAAG,QAAQ,CAAC,MAAK;AACvC,QAAA,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,EAAE;QACtB,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE;AAC/B,IAAA,CAAC,mDAAC;AAEF,IAAA,gBAAgB,GAAG,QAAQ,CAAC,MAC1B,IAAI,CAAC,OAAO,EAAE,IAAI,IAAI,CAAC,OAAO,EAAE,4DAAC;AAEnC,IAAA,WAAW,GAAG,KAAK,CAAC,KAAK,uDAAC;AAClB,IAAA,YAAY,GAAG,MAAM,CAAC,KAAK,wDAAC;AACpC,IAAA,oBAAoB,GAAG,QAAQ,CAAC,MAC9B,IAAI,CAAC,YAAY,EAAE,KAAK,IAAI,CAAC,WAAW,EAAE,CAAC,gEAAC;IAErC,uBAAuB,GAAG,QAAQ,CAAC,MAC1C,IAAI,CAAC,cAAc,EAAE;QACrB,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,+BAA+B,CAAC,mEAAC;IAEnD,cAAc,GAAG,CAAC,CAAC;AAE3B,IAAA,WAAA,GAAA;IACA;IAGA,QAAQ,GAAA;QACN,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,YAAY,CAAC,SAAS,CAC/C,CAAC,IAAa,KAAK,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,EAC9C,wBAAwB,CAAC,YAAY,CAAC;IAC1C;IAEA,WAAW,GAAA;QACT,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,IAAI,CAAC,cAAc,CAAC;IACpD;wGA3CW,wBAAwB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAxB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,wBAAwB,kyBCbrC,6fAcA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;4FDDa,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBAVpC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,mBAAmB,cACjB,IAAI,EAAA,eAAA,EAGC,uBAAuB,CAAC,MAAM,EAAA,IAAA,EACzC;AACJ,wBAAA,iBAAiB,EAAE;AACpB,qBAAA,EAAA,QAAA,EAAA,6fAAA,EAAA;;;MEWU,gCAAgC,CAAA;AAE1B,IAAA,GAAG,GAAG,MAAM,CAAC,iBAAiB,CAAC;AAEhD,IAAA,SAAS,GAAG,MAAM,CAAsB,UAAU,qDAAC;IAEnD,IAAI,GAAG,KAAK,CAAS,IAAI,CAAC,GAAG,CAAC,kBAAkB,EAAE,EAAA,IAAA,SAAA,GAAA,CAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAC;AACnD,IAAA,QAAQ,GAAG,KAAK,CAAU,KAAK,oDAAC;AAChC,IAAA,QAAQ,GAAG,KAAK,CAAqB,SAAS,oDAAC;IAE/C,KAAK,GAAG,QAAQ,CACd,MAAM,IAAI,CAAC,QAAQ,EAAE,KAAK;WACrB,IAAI,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,EAAA,IAAA,SAAA,GAAA,CAAA,EAAA,SAAA,EAAA,OAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAC;IAEtC,UAAU,GAAA;QACR,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,IACxB,IAAI,KAAK,UAAU,GAAG,MAAM,GAAG,UAAU,CAAC;IAC9C;AAEA,IAAA,iBAAiB,CAAC,QAAgB,EAAA;AAChC,QAAA,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC;IAC7B;wGArBW,gCAAgC,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;4FAAhC,gCAAgC,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,4BAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECtB7C,ooBAiBA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDLI,UAAU,EAAA,QAAA,EAAA,2CAAA,EAAA,MAAA,EAAA,CAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACV,MAAM,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,MAAA,EAAA,OAAA,EAAA,UAAA,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,OAAA,EAAA,UAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,SAAA,EAAA,OAAA,EAAA,YAAA,EAAA,YAAA,EAAA,eAAA,EAAA,WAAA,EAAA,WAAA,EAAA,SAAA,EAAA,MAAA,EAAA,OAAA,EAAA,SAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,OAAA,CAAA,EAAA,OAAA,EAAA,CAAA,SAAA,EAAA,SAAA,EAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACN,MAAM,EAAA,QAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACN,WAAW,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,4EAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACX,SAAS,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,aAAA,EAAA,OAAA,EAAA,SAAA,EAAA,OAAA,EAAA,SAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;4FAMA,gCAAgC,EAAA,UAAA,EAAA,CAAA;kBAd5C,SAAS;+BACE,4BAA4B,EAAA,UAAA,EAC1B,IAAI,EAAA,OAAA,EACP;wBACP,UAAU;wBACV,MAAM;wBACN,MAAM;wBACN,WAAW;wBACX;qBACD,EAAA,eAAA,EAGgB,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,ooBAAA,EAAA;;;MERpC,8BAA8B,CAAA;AAEjC,IAAA,IAAI;IACJ,KAAK,GAAG,KAAK;IAErB,KAAK,GAAG,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,OAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAsB;AACnC,IAAA,KAAK,GAAG,KAAK,CAAS,GAAG,iDAAC;AAC1B,IAAA,KAAK,GAAG,KAAK,CAAS,CAAC,iDAAC;AACxB,IAAA,IAAI,GAAE,KAAK,CACT,eAAe,gDAAC;IAElB,IACI,IAAI,CAAC,IAAa,EAAA;AACpB,QAAA,IAAI,IAAI,CAAC,IAAI,EAAC;AACZ,YAAA,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC;AACvB,YAAA,IAAI,CAAC,IAAI,GAAG,SAAS;QACvB;QACA,IAAI,IAAI,EAAE;YACR,IAAI,CAAC,eAAe,EAAE;QACxB;aAAO;YACL,IAAI,CAAC,eAAe,EAAE;QACxB;IACF;AACA,IAAA,IAAI,IAAI,GAAA;QACN,OAAO,IAAI,CAAC,KAAK;IACnB;IAEQ,eAAe,GAAA;;AAErB,QAAA,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,aAAa,EAAE;;;AAGjC,YAAA,IAAI,CAAC,KAAK,GAAG,IAAI;QACnB;aAAO;;;AAGL,YAAA,IAAI,CAAC,IAAI,GAAG,UAAU,CACpB,MAAK;AACH,gBAAA,IAAI,CAAC,KAAK,GAAG,IAAI;AACjB,gBAAA,IAAI,CAAC,IAAI,GAAG,SAAS;AACvB,YAAA,CAAC,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC;QACpB;IACF;IAEQ,eAAe,GAAA;AACrB,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK;IACpB;wGA9CW,8BAA8B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;4FAA9B,8BAA8B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,0BAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECZ3C,2rBAyBA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDlBI,WAAW,EAAA,QAAA,EAAA,8CAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,WAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,MAAA,EAAA,OAAA,CAAA,EAAA,CAAA,EAAA,CAAA;;4FAKF,8BAA8B,EAAA,UAAA,EAAA,CAAA;kBAT1C,SAAS;+BACE,0BAA0B,EAAA,UAAA,EACxB,IAAI,EAAA,OAAA,EACP;wBACP;AACD,qBAAA,EAAA,QAAA,EAAA,2rBAAA,EAAA;;sBAeA,KAAK;uBAAC,EAAC,QAAQ,EAAC,IAAI,EAAC;;;kBEXxB,MAAM,SAAS,CAAA;AACb,IAAA,QAAQ,GAAG,MAAM,CAAC,EAAE,oDAAC;AACrB,IAAA,QAAQ,GACN,MAAM,CAAqB,SAAS,oDAAC;AAE/B,IAAA,OAAO,CAAC,KAAyB,EAAA;QACvC,OAAO,KAAK,KAAK,SAAS,IAAI,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE;IACnD;AAEA,IAAA,OAAO,GAAG,QAAQ,CAAC,MAAK;QACtB,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE;eAC9B,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;AACpC,IAAA,CAAC,mDAAC;AACH;MAoBY,4BAA4B,CAAA;AAEtB,IAAA,GAAG,GAAG,MAAM,CAAC,iBAAiB,CAAC;;AAGhD,IAAA,gBAAgB,GAAG,KAAK,CAAC,KAAK,4DAAC;AAC/B,IAAA,aAAa,GAAG,KAAK,CAAqB,SAAS,yDAAC;AACpD,IAAA,aAAa,GAAG,KAAK,CAAqB,SAAS,yDAAC;AACpD,IAAA,cAAc,GAAG,KAAK,CAAqB,SAAS,0DAAC;AACrD,IAAA,yBAAyB,GAAG,KAAK,CAAqB,SAAS,qEAAC;AAChE,IAAA,YAAY,GAAG,KAAK,CAAqB,SAAS,wDAAC;;AAGnD,IAAA,EAAE,GAAc,IAAIC,WAAS,EAAE;AAC/B,IAAA,IAAI,GAAG,MAAM,CAAC,KAAK,gDAAC;AACpB,IAAA,YAAY,GAAG,MAAM,CAAqB,SAAS,wDAAC;;IAGpD,QAAQ,GAAG,MAAM,EAAE;IACnB,SAAS,GAAG,MAAM,EAAE;;IAGpB,WAAW,GAAG,QAAQ,CACpB,MAAM,IAAI,CAAC,aAAa,EAAE,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,uBAAuB,CAAC,uDACtE;IAED,WAAW,GAAG,QAAQ,CACpB,MAAM,IAAI,CAAC,aAAa,EAAE,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,uBAAuB,CAAC,uDACtE;IAED,UAAU,GAAG,QAAQ,CACnB,MAAM,IAAI,CAAC,cAAc,EAAE,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,sBAAsB,CAAC,sDACtE;IAED,qBAAqB,GAAG,QAAQ,CAC9B,MAAM,IAAI,CAAC,yBAAyB,EAAE,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,iCAAiC,CAAC,iEAC5F;IAED,eAAe,GAAG,QAAQ,CACxB,MAAM,IAAI,CAAC,YAAY,EAAE,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,yBAAyB,CAAC,2DACvE;IAED,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE;IACvB;IAEA,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;AACnB,QAAA,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC;QAChC,IAAI,CAAC,GAAG,CAAC,MAAM,CACb,IAAI,CAAC,EAAE,CAAC,QAAQ,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,QAAQ,EAAE,IAAI,EAAE,EAAE,IAAI;AACjD,aAAA,SAAS,CAAC;YACT,IAAI,EAAE,EAAE,IAAG;gBACT,IAAI,EAAE,EAAE;AACN,oBAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE;gBACtB;qBAAO;oBACL,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,qBAAqB,EAAE,CAAC;gBACrD;AACA,gBAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC;YACtB,CAAC;YACD,KAAK,EAAE,MAAK;gBACV,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;AACxC,gBAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC;YACtB;AACD,SAAA,CAAC;IACN;wGAjEW,4BAA4B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAA5B,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,4BAA4B,siCC7CzC,wqDAoDA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDrBI,2BAA2B,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,CAAA,KAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAC3B,wBAAwB,wIACxB,gCAAgC,EAAA,QAAA,EAAA,4BAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAChC,8BAA8B,EAAA,QAAA,EAAA,0BAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,OAAA,EAAA,OAAA,EAAA,MAAA,EAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAC9B,+BAA+B,gJAC/B,SAAS,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,aAAA,EAAA,OAAA,EAAA,SAAA,EAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACT,MAAM,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,MAAA,EAAA,OAAA,EAAA,UAAA,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,OAAA,EAAA,UAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,SAAA,EAAA,OAAA,EAAA,YAAA,EAAA,YAAA,EAAA,eAAA,EAAA,WAAA,EAAA,WAAA,EAAA,SAAA,EAAA,MAAA,EAAA,OAAA,EAAA,SAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,OAAA,CAAA,EAAA,OAAA,EAAA,CAAA,SAAA,EAAA,SAAA,EAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACN,MAAM,qDACN,WAAW,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,4EAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;4FAMF,4BAA4B,EAAA,UAAA,EAAA,CAAA;kBAlBxC,SAAS;+BACE,wBAAwB,EAAA,UAAA,EACtB,IAAI,EAAA,OAAA,EACP;wBACP,2BAA2B;wBAC3B,wBAAwB;wBACxB,gCAAgC;wBAChC,8BAA8B;wBAC9B,+BAA+B;wBAC/B,SAAS;wBACT,MAAM;wBACN,MAAM;wBACN;qBACD,EAAA,eAAA,EAGgB,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,wqDAAA,EAAA;;;ME3BpC,6BAA6B,CAAA;AAEvB,IAAA,GAAG,GAAG,MAAM,CAAC,iBAAiB,CAAC;AAC/B,IAAA,IAAI,GAAG,MAAM,CAAC,gBAAgB,CAAC;AAC/B,IAAA,IAAI,GAAG,MAAM,CAAC,mBAAmB,CAAC;AAEnD,IAAA,KAAK,GAAG,MAAM,CAAC,KAAK,iDAAC;AACrB,IAAA,OAAO,GAA+B,MAAK,EAAE,CAAC;AAE9C,IAAA,aAAa;AACb,IAAA,aAAa;AACb,IAAA,cAAc;AACd,IAAA,yBAAyB;AACzB,IAAA,YAAY;IACZ,gBAAgB,GAAG,KAAK;IAExB,QAAQ,GAAA;QACN,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;QAEhC,UAAU,CACR,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM;YACpB,IAAI,CAAC,IAAI,CAAC,MAAM;gBAChB,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,wBAAwB,CAAC,EAC1C,GAAG,CAAC;IACR;AAEA,IAAA,IAAI,CACF,OAAmC,EACnC,aAAsB,EACtB,aAAsB,EACtB,YAAqB,EACrB,cAAuB,EACvB,yBAAkC,EAClC,gBAAgB,GAAG,KAAK,EAAA;AACxB,QAAA,IAAI,CAAC,OAAO,GAAG,OAAO;AACtB,QAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC;AACpB,QAAA,IAAI,CAAC,aAAa,GAAG,aAAa;AAClC,QAAA,IAAI,CAAC,aAAa,GAAG,aAAa;AAClC,QAAA,IAAI,CAAC,cAAc,GAAG,cAAc;AACpC,QAAA,IAAI,CAAC,yBAAyB,GAAG,yBAAyB;AAC1D,QAAA,IAAI,CAAC,YAAY,GAAG,YAAY;AAChC,QAAA,IAAI,CAAC,gBAAgB,GAAG,gBAAgB;IAC1C;IAEA,UAAU,GAAA;AACR,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;AAClB,QAAA,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;IACvB;IAEA,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;AACnB,QAAA,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;IACrB;wGApDW,6BAA6B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAA7B,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,6BAA6B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EChB1C,4fAaA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDHI,2BAA2B,mFAC3B,4BAA4B,EAAA,QAAA,EAAA,wBAAA,EAAA,MAAA,EAAA,CAAA,kBAAA,EAAA,eAAA,EAAA,eAAA,EAAA,gBAAA,EAAA,2BAAA,EAAA,cAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,EAAA,WAAA,CAAA,EAAA,CAAA,EAAA,CAAA;;4FAKnB,6BAA6B,EAAA,UAAA,EAAA,CAAA;kBAVzC,SAAS;+BACE,yBAAyB,EAAA,UAAA,EACvB,IAAI,EAAA,OAAA,EACP;wBACP,2BAA2B;wBAC3B;AACD,qBAAA,EAAA,QAAA,EAAA,4fAAA,EAAA;;;MECU,sBAAsB,CAAA;IAEzB,MAAM,GACZ,MAAK;AACL,IAAA,CAAC;AACK,IAAA,eAAe;IACf,iBAAiB,GAEvB,MAAK;AACL,IAAA,CAAC;AAEH,IAAA,IAAI,CACF,MAAkE,EAClE,iBAAwD,EACxD,eAAwB,EAAA;AACxB,QAAA,IAAI,CAAC,MAAM,GAAG,MAAM;QACpB,IAAI,iBAAiB,EAAE;AACrB,YAAA,IAAI,CAAC,iBAAiB,GAAG,iBAAiB;QAC5C;QACA,IAAI,eAAe,EAAE;AACnB,YAAA,IAAI,CAAC,eAAe,GAAG,eAAe;QACxC;IACF;AAEA;;;;;;;;;;;;AAYG;AACH,IAAA,SAAS,CACP,SAAkB,EAClB,MAAc,EACd,KAAa,EACb,GAA4B,EAAA;AAE5B,QAAA,OAAO,IAAI,UAAU,CACnB,CAAC,UAAyB,KAAI;YAE5B,IAAI,CAAC,GAAG,EAAE;gBACR,GAAG,GAAG,EAAE;YACV;AAEA,YAAA,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE;AACb,gBAAA,GAAG,CAAC,IAAI,GAAG,EAAE;YACf;YAEA,IAAI,CAAC,GAAG,CAAC;mBACJ,IAAI,CAAC,eAAe,EAAE;AACzB,gBAAA,GAAG,CAAC,UAAU,GAAG,IAAI,CAAC,eAAe;YACvC;AAEA,YAAA,IAAI,GAAG,CAAC,SAAS,KAAK,SAAS,EAAE;AAC/B,gBAAA,GAAG,CAAC,SAAS,GAAG,IAAI;YACtB;AAEA,YAAA,MAAM,IAAI,GAAG,CAAA,EAAG,MAAM,CAAA,EAAA,EAAK,KAAK,EAAE;AAClC,YAAA,MAAM,KAAK,GAAG,CAAA,MAAA,EAAS,KAAK,CAAA,MAAA,EAAS,MAAM,EAAE;YAE7C,GAAG,CAAC,IAAI,CAAC,WAAW,GAAG,CAAC,QAAW,KAAI;AACrC,gBAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,KAAK,CAAC;AACnC,gBAAA,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC;gBACzB,UAAU,CAAC,QAAQ,EAAE;AACvB,YAAA,CAAC;AAED,YAAA,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,GAAG,CAAC;AAC7B,QAAA,CAAC,CAAC;IACN;IAEA,qBAAqB,CACnB,MAAc,EACd,KAAc,EACd,OAAgB,EAChB,iBAA0B,EAC1B,gBAAyB,EACzB,GAA4B,EAAA;AAE5B,QAAA,OAAO,IAAI,UAAU,CACnB,CAAC,UAA+B,KAAI;YAClC,IAAI,CAAC,SAAS,CACZ,oCAAoC,EACpC,MAAM,EAAE,mBAAmB,EAAE,GAAG,CAAC,CAAC,SAAS,CAC3C,CAAC,IAAI,CAAC,CAAC,IAAI,CACT,CAAC,SAAkB,KAAI;AACrB,gBAAA,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC;gBAC1B,UAAU,CAAC,QAAQ,EAAE;YACvB,CAAC,EACD,KAAK,EAAE,OAAO,EACd,iBAAiB,EAAE,gBAAgB,CAAC,CAAC;AAC3C,QAAA,CAAC,CAAC;IACN;AAEA,IAAA,cAAc,CACZ,MAAc,EACd,KAAc,EACd,aAAsB,EACtB,aAAsB,EACtB,YAAqB,EACrB,cAAuB,EACvB,wBAAiC,EACjC,gBAAgB,GAAG,KAAK,EACxB,GAA4B,EAAA;QAE5B,IAAI,KAAK,EAAE;YACT,IAAI,CAAC,GAAG,EAAE;gBACR,GAAG,GAAG,EAAE;YACV;AACA,YAAA,GAAG,CAAC,MAAM,GAAG,KAAK;QACpB;AAEA,QAAA,OAAO,IAAI,UAAU,CACnB,CAAC,UAA+B,KAAI;YAClC,IAAI,CAAC,SAAS,CACZ,6BAA6B,EAC7B,MAAM,EAAE,YAAY,EAAE,GAAG,CAAC,CAAC,SAAS,CACpC,CAAC,IAAI,CAAC,CAAC,IAAI,CACT,CAAC,QAAiB,KAAI;AACpB,gBAAA,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC;gBACzB,UAAU,CAAC,QAAQ,EAAE;AACvB,YAAA,CAAC,EACD,aAAa,EAAE,aAAa,EAAE,YAAY,EAC1C,cAAc,EAAE,wBAAwB,EACxC,gBAAgB,CAAC,CAAC;AACxB,QAAA,CAAC,CAAC;IACN;wGAnIW,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA;AAAtB,IAAA,OAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,sBAAsB,cAFrB,MAAM,EAAA,CAAA;;4FAEP,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAHlC,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE;AACb,iBAAA;;;MCMY,+BAA+B,CAAA;AAsBhC,IAAA,GAAA;AACA,IAAA,GAAA;IArBO,QAAQ,GAAG,mBAAmB;AAE/C,IAAA,QAAQ,GAAG,KAAK,CAAU,KAAK,oDAAC;AAChC,IAAA,OAAO,GAAG,KAAK,CAAS,EAAE,mDAAC;IAC3B,gBAAgB,GAAG,QAAQ,CAAC,MAC1B,IAAI,CAAC,OAAO,EAAE,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,sBAAsB,CAAC,4DACzD;AACD,IAAA,EAAE,GAAG,KAAK,CAAU,KAAK,8CAAC;AAC1B,IAAA,IAAI,GAAG,KAAK,CAAU,KAAK,gDAAC;AAC5B,IAAA,SAAS,GAAG,KAAK,CAAU,KAAK,qDAAC;AAEjC,IAAA,qBAAqB,GAAG,KAAK,CAAU,IAAI,iEAAC;IAC5C,UAAU,GAAG,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,YAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAsB;IACxC,YAAY,GAAG,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,cAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAsB;IAC1C,QAAQ,GAAG,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,UAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAsB;IACtC,OAAO,GAAG,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,SAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAsB;AAE3B,IAAA,OAAO,GAAG,IAAI,YAAY,EAAO;IAE3C,WAAA,CACU,GAAsB,EACtB,GAA2B,EAAA;QAD3B,IAAA,CAAA,GAAG,GAAH,GAAG;QACH,IAAA,CAAA,GAAG,GAAH,GAAG;IACb;IAEA,SAAS,GAAA;AACP,QAAA,IAAI,CAAC,IAAI,CAAC,qBAAqB,EAAE,EAAE;AACjC,YAAA,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;YACnB;QACF;AACA,QAAA,IAAI,CAAC,GAAG,CAAC,SAAS,CAChB,oCAAoC,EACpC,IAAI,CAAC,QAAQ,EAAE,mBAAmB;aACjC,SAAS,CACR,KAAK,IAAG;AACN,YAAA,KAAK,CAAC,IAAI,CACR,CAAC,SAAkB,KAAI;gBACrB,IAAI,SAAS,EAAE;AACb,oBAAA,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;gBACrB;YACF,CAAC,EACD,IAAI,CAAC,UAAU,EAAE,EACjB,IAAI,CAAC,YAAY,EAAE,EACnB,IAAI,CAAC,QAAQ,EAAE,EACf,IAAI,CAAC,OAAO,EAAE,CAAC;AACnB,QAAA,CAAC,CAAC;IACR;wGA/CW,+BAA+B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAH,iBAAA,EAAA,EAAA,EAAA,KAAA,EAAAI,sBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAA/B,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,+BAA+B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,2BAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,EAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,qBAAA,EAAA,EAAA,iBAAA,EAAA,uBAAA,EAAA,UAAA,EAAA,uBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,YAAA,EAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,UAAA,EAAA,cAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EClB5C,s5BAwBA,EAAA,MAAA,EAAA,CAAA,wjIAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDZI,OAAO,0VACP,MAAM,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,MAAA,EAAA,OAAA,EAAA,UAAA,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,OAAA,EAAA,UAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,SAAA,EAAA,OAAA,EAAA,YAAA,EAAA,YAAA,EAAA,eAAA,EAAA,WAAA,EAAA,WAAA,EAAA,SAAA,EAAA,MAAA,EAAA,OAAA,EAAA,SAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,OAAA,CAAA,EAAA,OAAA,EAAA,CAAA,SAAA,EAAA,SAAA,EAAA,QAAA,CAAA,EAAA,CAAA,EAAA,CAAA;;4FAKG,+BAA+B,EAAA,UAAA,EAAA,CAAA;kBAT3C,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,2BAA2B,EAAA,OAAA,EAC5B;wBACP,OAAO;wBACP;AACD,qBAAA,EAAA,QAAA,EAAA,s5BAAA,EAAA,MAAA,EAAA,CAAA,wjIAAA,CAAA,EAAA;;sBAuBA;;;MEtBU,6BAA6B,CAAA;AAWpB,IAAA,GAAA;AATpB,IAAA,QAAQ,GAAG,KAAK,CAAU,KAAK,oDAAC;AAChC,IAAA,OAAO,GAAG,KAAK,CAAS,EAAE,mDAAC;IAC3B,gBAAgB,GAAG,QAAQ,CAAC,MAC1B,IAAI,CAAC,OAAO,EAAE,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,oBAAoB,CAAC,4DACvD;AACD,IAAA,EAAE,GAAG,KAAK,CAAU,KAAK,8CAAC;AAC1B,IAAA,SAAS,GAAG,KAAK,CAAU,KAAK,qDAAC;AACvB,IAAA,OAAO,GAAG,IAAI,YAAY,EAAO;AAE3C,IAAA,WAAA,CAAoB,GAAsB,EAAA;QAAtB,IAAA,CAAA,GAAG,GAAH,GAAG;IACvB;IAEA,SAAS,GAAA;AACP,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;IACrB;wGAhBW,6BAA6B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAJ,iBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAA7B,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,6BAA6B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,EAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECf1C,kbAWA,EAAA,MAAA,EAAA,CAAA,wjIAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDFI,MAAM,sZACN,OAAO,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,cAAA,EAAA,eAAA,EAAA,mBAAA,EAAA,eAAA,EAAA,QAAA,EAAA,WAAA,EAAA,WAAA,EAAA,MAAA,EAAA,aAAA,EAAA,cAAA,EAAA,UAAA,EAAA,YAAA,EAAA,cAAA,EAAA,UAAA,EAAA,iBAAA,EAAA,gBAAA,EAAA,UAAA,EAAA,WAAA,CAAA,EAAA,CAAA,EAAA,CAAA;;4FAKE,6BAA6B,EAAA,UAAA,EAAA,CAAA;kBAVzC,SAAS;+BACE,yBAAyB,EAAA,UAAA,EACvB,IAAI,EAAA,OAAA,EACP;wBACP,MAAM;wBACN;AACD,qBAAA,EAAA,QAAA,EAAA,kbAAA,EAAA,MAAA,EAAA,CAAA,wjIAAA,CAAA,EAAA;;sBAaA;;;AEdH,MAAM,SAAS,CAAA;IACb,QAAQ,GAAG,EAAE;IACb,QAAQ,GAAG,EAAE;AAEb,IAAA,IAAI,OAAO,GAAA;QACT,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,EAAE;IACpC;AAEA,IAAA,IAAI,OAAO,GAAA;QACT,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,EAAE;IACpC;AACD;AAED,MAAM,UAAU,CAAA;AACd,IAAA,QAAQ;AACR,IAAA,QAAQ;AACR,IAAA,QAAQ;AAER,IAAA,WAAA,CACE,QAAgB,EAChB,QAAgB,EAChB,QAAgB,EAAA;AAChB,QAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ;AACxB,QAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ;AACxB,QAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ;IAC1B;AACD;MAgBY,6BAA6B,CAAA;AA+C9B,IAAA,GAAA;AACA,IAAA,GAAA;IA9CV,IAAI,GAAG,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAsB;IAClC,aAAa,GAAA;QACX,OAAO,IAAI,CAAC,IAAI,EAAE,IAAI,IAAI,CAAC,GAAG,CAAC,kBAAkB,EAAE;IAAA;;IAErD,MAAM,GAAG,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,QAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAsB;;AAGpC,IAAA,gBAAgB,GAAG,QAAQ,CAAC,MAAK;AAC/B,QAAA,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,EAAE;AACjC,QAAA,IAAI,CAAC,WAAW;AAAE,YAAA,OAAO,SAAS;;AAElC,QAAA,IAAI,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE;AAChC,YAAA,OAAO,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC;QACjC;AACA,QAAA,OAAO,WAAW;AACpB,IAAA,CAAC,4DAAC;AAEF,IAAA,QAAQ,GAAG,KAAK,CAAU,KAAK,oDAAC;AAChC;;AAEG;AACH,IAAA,UAAU,GAAG,KAAK,CAAU,IAAI,sDAAC;AACjC,IAAA,aAAa,GAAG,KAAK,CAAU,KAAK,yDAAC;AACrC,IAAA,QAAQ,GAAI,KAAK,CAAU,KAAK,oDAAC;AACjC,IAAA,eAAe,GAAG,KAAK,CAAS,EAAE,2DAAC;AACnC,IAAA,EAAE,GAAG,KAAK,CAAU,KAAK,8CAAC;AAEe,IAAA,SAAS;AACxC,IAAA,YAAY,GAAG,IAAI,YAAY,EAAyB;AACxD,IAAA,WAAW,GAAG,IAAI,YAAY,EAAU;AAClD;;;AAGyB;AACf,IAAA,KAAK,GAAG,IAAI,YAAY,EAAW;IAE7C,IAAI,GAAG,KAAK;AACZ,IAAA,EAAE,GAAG,IAAI,SAAS,EAAE;AACpB,IAAA,EAAE;IACF,SAAS,GAAG,KAAK;IACjB,QAAQ,GAAG,CAAC;AAEZ,IAAA,OAAO;IAEP,WAAA,CACU,GAAsB,EACtB,GAAsB,EAAA;QADtB,IAAA,CAAA,GAAG,GAAH,GAAG;QACH,IAAA,CAAA,GAAG,GAAH,GAAG;QACX,IAAI,CAAC,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC,mBAAmB,CAAC;IAC/C;IAEA,eAAe,GAAA;AACb,QAAA,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;IACzC;AAEQ,IAAA,MAAM,CAAC,QAAgB,EAAA;AAC7B,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI;AAChB,QAAA,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,QAAQ;AAC3B,aAAA,SAAS,CAAC;YACT,IAAI,EAAE,MAAK;AACT,gBAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC;AAC/B,gBAAA,IAAI,CAAC,IAAI,GAAG,KAAK;YACnB,CAAC;YACD,KAAK,EAAE,CAAC,IAAG;AACT,gBAAA,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;AAChB,gBAAA,IAAI,CAAC,EAAE,GAAG,SAAS;AACnB,gBAAA,IAAI,CAAC,IAAI,GAAG,KAAK;YACnB;AACD,SAAA,CAAC;IACN;IAEQ,MAAM,GAAA;AACZ,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI;AAChB,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI;AACrB,QAAA,IAAI,CAAC,QAAQ,GAAG,CAAC;AACjB,QAAA,IAAI,CAAC,GAAG,CAAC,MAAM,CACb,IAAI,CAAC,EAAE,CAAC,QAAQ,EAChB,QAAQ,IAAG;AACT,YAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ;QAC1B,CAAC,CAAC,CAAC,SAAS,CAAC;AACb,YAAA,IAAI,EAAE,CAAC,QAAgB,KAAI;AACzB,gBAAA,IAAI,CAAC,IAAI,GAAG,KAAK;gBACjB,UAAU,CAAC,MAAK;AACd,oBAAA,IAAI,CAAC,SAAS,GAAG,KAAK;gBACxB,CAAC,EAAE,IAAI,CAAC;gBACR,IAAI,CAAC,EAAE,GAAG,IAAI,UAAU,CACtB,QAAQ,EACR,IAAI,CAAC,EAAE,CAAC,QAAQ,EAChB,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC;gBACnB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YACjC,CAAC;AACD,YAAA,KAAK,EAAE,CAAC,KAAK,KAAI;AACf,gBAAA,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC;AACpB,gBAAA,IAAI,CAAC,IAAI,GAAG,KAAK;AACjB,gBAAA,IAAI,CAAC,SAAS,GAAG,KAAK;YACxB;AACD,SAAA,CAAC;IACJ;IAEA,SAAS,GAAA;AACP,QAAA,IAAI,CAAC,EAAE,GAAG,IAAI,SAAS,EAAE;AACzB,QAAA,IAAI,CAAC,SAAS,GAAG,KAAK;AACtB,QAAA,IAAI,CAAC,QAAQ,GAAG,CAAC;AACjB,QAAA,IAAI,CAAC,EAAE,GAAG,SAAS;IACrB;AAEA,IAAA,kBAAkB,CAAC,WAAkB,EAAA;AACnC,QAAA,IAAI;AACF,YAAA,IAAI,CAAC,IAAI,GAAG,IAAI;AAChB,YAAA,IAAI,MAAM,GAA2B,IAAI,UAAU,EAAE;AAErD,YAAA,MAAM,CAAC,MAAM,GAAG,CAAC,SAAwB,KAAI;;AAG3C,gBAAA,MAAM,MAAM,GAAG,SAAS,CAAC,MAAqB;;;;gBAI9C,IAAI,CAAC,EAAE,CAAC,QAAQ,GAAG,MAAM,CAAC,MAAgB;;gBAE1C,UAAU,CAAC,MAAM,MAAM,GAAG,SAAS,EAAE,EAAE,CAAC;AACxC,gBAAA,IAAI,CAAC,IAAI,GAAG,KAAK;;AAGjB,gBAAA,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE;AAExB,gBAAA,IAAI,IAAI,CAAC,UAAU,EAAE,EAAE;oBACrB,IAAI,CAAC,MAAM,EAAE;gBACf;AACF,YAAA,CAAC;AAED,YAAA,MAAM,CAAC,OAAO,GAAG,MAAK;gBACpB,IAAI,CAAC,SAAS,EAAE;AAChB,gBAAA,IAAI,CAAC,IAAI,GAAG,KAAK;AACnB,YAAA,CAAC;AAED,YAAA,IAAI,CAAC,EAAE,GAAG,IAAI,SAAS,EAAE;AACzB,YAAA,MAAM,KAAK,GAAI,WAAW,CAAC,MAA4B;YACvD,MAAM,IAAI,GAAG,KAAK,CAAC,KAAM,CAAC,CAAC,CAAC;;;;;AAK5B,YAAA,KAAK,CAAC,KAAK,GAAG,EAAE;YAChB,IAAI,CAAC,IAAI,EAAE;AACT,gBAAA,IAAI,CAAC,IAAI,GAAG,KAAK;gBACjB;YACF;YACA,IAAI,CAAC,EAAE,CAAC,QAAQ,GAAG,IAAI,CAAC,IAAI;AAC5B,YAAA,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC;QAC5B;QAAE,OAAO,KAAK,EAAE;AACd,YAAA,IAAI,CAAC,EAAE,GAAG,IAAI,SAAS,EAAE;AACzB,YAAA,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC;AACpB,YAAA,IAAI,CAAC,IAAI,GAAG,KAAK;QACnB;IACF;IAEA,QAAQ,GAAA;AACN,QAAA,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,EAAE;AAC1B,YAAA,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC;QACjD;AACA,QAAA,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,KAAK,EAAE;IACtC;IAEA,OAAO,GAAA;AACL,QAAA,IAAI,IAAI,CAAC,EAAE,EAAE;AACX,YAAA,IAAI,IAAI,CAAC,aAAa,EAAE,EAAE;gBACxB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC;YAC/B;QACF;QACA,IAAI,CAAC,SAAS,EAAE;IAClB;IAEA,MAAM,GAAA;QACJ,IAAI,CAAC,MAAM,EAAE;IACf;wGAhLW,6BAA6B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,iBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAA7B,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,6BAA6B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,MAAA,EAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,aAAA,EAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,UAAA,EAAA,eAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,eAAA,EAAA,EAAA,iBAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,EAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,YAAA,EAAA,cAAA,EAAA,WAAA,EAAA,aAAA,EAAA,KAAA,EAAA,OAAA,EAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,WAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,WAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECpD1C,kiEA+EA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDrCI,SAAS,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,aAAA,EAAA,OAAA,EAAA,SAAA,EAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACT,WAAW,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAE,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACX,UAAU,EAAA,QAAA,EAAA,2CAAA,EAAA,MAAA,EAAA,CAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACV,MAAM,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,MAAA,EAAA,OAAA,EAAA,UAAA,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,OAAA,EAAA,UAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,SAAA,EAAA,OAAA,EAAA,YAAA,EAAA,YAAA,EAAA,eAAA,EAAA,WAAA,EAAA,WAAA,EAAA,SAAA,EAAA,MAAA,EAAA,OAAA,EAAA,SAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,OAAA,CAAA,EAAA,OAAA,EAAA,CAAA,SAAA,EAAA,SAAA,EAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACN,MAAM,sDACN,8BAA8B,EAAA,QAAA,EAAA,0BAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,OAAA,EAAA,OAAA,EAAA,MAAA,EAAA,MAAA,CAAA,EAAA,CAAA,EAAA,CAAA;;4FAKrB,6BAA6B,EAAA,UAAA,EAAA,CAAA;kBAdzC,SAAS;+BACE,yBAAyB,EAAA,UAAA,EACvB,IAAI,EAAA,OAAA,EACP;wBACP,SAAS;wBACT,WAAW;wBACX,UAAU;wBACV,MAAM;wBACN,MAAM;wBACN;AACD,qBAAA,EAAA,QAAA,EAAA,kiEAAA,EAAA;;sBAiCA,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,WAAW,EAAE,EAAC,MAAM,EAAE,KAAK,EAAC;;sBACtC;;sBACA;;sBAKA;;;MEjEU,4BAA4B,CAAA;AAEvC,IAAA,KAAK,GAAG,KAAK,CAAS,GAAG,iDAAC;AAC1B,IAAA,OAAO,GAAG,KAAK,CAAU,KAAK,mDAAC;AAC/B,IAAA,QAAQ,GAAG,KAAK,CAAU,KAAK,oDAAC;AAChC,IAAA,WAAW,GAAG,KAAK,CAAS,EAAE,uDAAC;AAE/B,IAAA,IAAI,GAAG,KAAK,CAAqB,SAAS,gDAAC;AAE3C,IAAA,KAAK,GAAG,QAAQ,CAAC,MAAK;AACpB,QAAA,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,EAAE;QAC/B,OAAO,CAAC,WAAW,IAAI,WAAW,CAAC,IAAI,EAAE,KAAK,EAAE;AAClD,IAAA,CAAC,iDAAC;IAEF,UAAU,GAAG,MAAM,EAAsB;AAEzC,IAAA,IAAI;AACJ,IAAA,KAAK;AAEL,IAAA,WAAA,CACE,EAAqB,EAAA;AACrB,QAAA,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,kBAAkB,EAAE;IACrC;IAEA,WAAW,GAAA;QACT,IAAI,CAAC,cAAc,EAAE;IACvB;AAEQ,IAAA,UAAU,CAAC,OAAe,EAAA;AAChC,QAAA,IAAI,CAAC,KAAK,GAAG,UAAU,CACrB,MAAK;AACH,YAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC;AACxB,QAAA,CAAC,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC;IACpB;AAEA,IAAA,aAAa,CAAC,OAAe,EAAA;QAC3B,IAAI,CAAC,cAAc,EAAE;AACrB,QAAA,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC;IAC1B;IAEA,OAAO,GAAA;QACL,IAAI,CAAC,cAAc,EAAE;AACrB,QAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC;IAC1B;IAEA,YAAY,GAAA;QACV,IAAI,CAAC,cAAc,EAAE;QACrB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;IACnC;IAEQ,cAAc,GAAA;AACpB,QAAA,IAAI,IAAI,CAAC,KAAK,EAAE;AACd,YAAA,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC;AACxB,YAAA,IAAI,CAAC,KAAK,GAAG,SAAS;QACxB;IAEF;wGAxDW,4BAA4B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAF,iBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAA5B,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,4BAA4B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,IAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECvBzC,67BAmCA,EAAA,MAAA,EAAA,CAAA,4ZAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDtBI,2BAA2B,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,CAAA,KAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAC3B,UAAU,EAAA,QAAA,EAAA,2CAAA,EAAA,MAAA,EAAA,CAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACV,WAAW,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAE,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACX,SAAS,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,aAAA,EAAA,OAAA,EAAA,SAAA,EAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACT,MAAM,sZACN,MAAM,EAAA,QAAA,EAAA,WAAA,EAAA,CAAA,EAAA,CAAA;;4FAKG,4BAA4B,EAAA,UAAA,EAAA,CAAA;kBAdxC,SAAS;+BACE,wBAAwB,EAAA,UAAA,EACtB,IAAI,EAAA,OAAA,EACP;wBACP,2BAA2B;wBAC3B,UAAU;wBACV,WAAW;wBACX,SAAS;wBACT,MAAM;wBACN;AACD,qBAAA,EAAA,QAAA,EAAA,67BAAA,EAAA,MAAA,EAAA,CAAA,4ZAAA,CAAA,EAAA;;;MEOU,8BAA8B,CAAA;AAExB,IAAA,GAAG,GAAG,MAAM,CAAC,iBAAiB,CAAC;;IAGhD,IAAI,GAAG,KAAK,CAAqB,IAAI,CAAC,GAAG,CAAC,kBAAkB,EAAE,EAAA,IAAA,SAAA,GAAA,CAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAC;AAC/D,IAAA,QAAQ,GAAG,KAAK,CAAC,KAAK,oDAAC;AACvB,IAAA,WAAW,GAAG,KAAK,CAAC,EAAE,uDAAC;AACvB,IAAA,MAAM,GAAG,KAAK,CAAC,EAAE,kDAAC;AAClB,IAAA,MAAM,GAAG,KAAK,CAAC,EAAE,kDAAC;AAClB,IAAA,QAAQ,GAAG,KAAK,CAAC,CAAC,oDAAC;IACnB,GAAG,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,SAAS,+CAAC;AAC9B,IAAA,GAAG,GAAG,KAAK,CAAC,MAAM,CAAC,SAAS,+CAAC;AAC7B,IAAA,MAAM,GAAG,KAAK,CAAC,OAAO,kDAAC;AACvB,IAAA,QAAQ,GAAG,KAAK,CAAC,KAAK,oDAAC;AACvB,IAAA,eAAe,GAAG,KAAK,CAAqB,EAAE,2DAAC;AAC/C,IAAA,EAAE,GAAG,KAAK,CAAC,KAAK,8CAAC;AACjB,IAAA,SAAS,GAAG,KAAK,CAAC,IAAI,qDAAC;IACvB,KAAK,GAAG,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,OAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAsB;;AAGnC,IAAA,IAAI,GAAG,MAAM,CAAqB,SAAS,gDAAC;AAC5C,IAAA,OAAO,GAAG,MAAM,CAAC,KAAK,mDAAC;;IAGd,UAAU,GAAW,aAAa;;IAG3C,WAAW,GAAG,MAAM,EAAsB;;AAGzB,IAAA,cAAc,GAAG;AAChC,QAAA,OAAO,EAAE,MAAM;AACf,QAAA,yBAAyB,EAAE,GAAG;AAC9B,QAAA,4BAA4B,EAAE;KAC/B;AAEgB,IAAA,YAAY,GAAG;AAC9B,QAAA,OAAO,EAAE,MAAM;AACf,QAAA,yBAAyB,EAAE,GAAG;AAC9B,QAAA,4BAA4B,EAAE,GAAG;AACjC,QAAA,WAAW,EAAE;KACd;;IAGD,UAAU,GAAG,QAAQ,CACnB,MAAM,IAAI,CAAC,EAAE;UACT,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,cAAc,EAAA,IAAA,SAAA,GAAA,CAAA,EAAA,SAAA,EAAA,YAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAC5C;AAED,IAAA,WAAA,GAAA;;QAEE,MAAM,CAAC,MAAK;AACV,YAAA,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,EAAE;YACxB,QAAQ,GAAG;AACT,gBAAA,KAAK,SAAS;AACZ,oBAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC;oBACxB;AACF,gBAAA,KAAK,CAAC;AACJ,oBAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;oBAClB;AACF,gBAAA;oBACE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;;AAEnC,QAAA,CAAC,CAAC;IACJ;AAEA;;;AAGG;IACH,eAAe,GAAA;AACb,QAAA,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE;AAChB,YAAA,OAAO,SAAS;QAClB;QACA,MAAM,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;AAC7B,QAAA,OAAO,KAAK,CAAC,CAAC,CAAC,GAAG,SAAS,GAAG,CAAC;IACjC;AAEA;;;AAGG;AACH,IAAA,YAAY,CAAC,IAAiC,EAAA;QAC5C,IAAI,CAAC,IAAI,EAAE;YACT,IAAI,CAAC,OAAO,EAAE;YACd;QACF;AAEA,QAAA,IAAI,GAAG,CAAA,EAAG,IAAI,CAAA,CAAE;AAChB,QAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;;AAGxC,QAAA,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK;AACf,eAAA,IAAI,CAAC,IAAI,EAAE,KAAK;AAChB,eAAA,IAAI,CAAC,IAAI,EAAE,KAAK,KAAK,EAAE;AAC1B,YAAA,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC;AACvB,YAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC;YAChC;QACF;QAEA,MAAM,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;AAC7B,QAAA,IAAI,CAAqB;;QAGzB,IAAI,KAAK,CAAC,CAAC;AACN,eAAA,CAAC,GAAG,IAAI,CAAC,GAAG;AACZ,eAAA,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,EAAE;AACnB,YAAA,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC;YACtB,CAAC,GAAG,SAAS;QACf;aAAO;AACL,YAAA,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC;YACvB,CAAC,GAAG,CAAC;QACP;AAEA,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;IAC1B;AAEA;;AAEG;IACH,OAAO,GAAA;AACL,QAAA,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC;AACvB,QAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC;AACxB,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC;IAClC;AAEA;;;;AAIG;AACH,IAAA,gBAAgB,CAAC,IAAY,EAAA;QAC3B,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC;IACnC;wGAtIW,8BAA8B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAA9B,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,8BAA8B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,0BAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,MAAA,EAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,MAAA,EAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,GAAA,EAAA,EAAA,iBAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,GAAA,EAAA,EAAA,iBAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,MAAA,EAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,eAAA,EAAA,EAAA,iBAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,EAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,WAAA,EAAA,aAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EC1B3C,2tBAyBA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDXI,eAAe,gLACf,eAAe,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,SAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,eAAA,EAAA,YAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACf,OAAO,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACP,WAAW,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAD,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACX,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,MAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,MAAA,EAAA,OAAA,EAAA,UAAA,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,OAAA,EAAA,UAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,SAAA,EAAA,OAAA,EAAA,YAAA,EAAA,YAAA,EAAA,eAAA,EAAA,WAAA,EAAA,WAAA,EAAA,SAAA,EAAA,MAAA,EAAA,OAAA,EAAA,SAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,OAAA,CAAA,EAAA,OAAA,EAAA,CAAA,SAAA,EAAA,SAAA,EAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACZ,YAAY,+BACZ,UAAU,EAAA,QAAA,EAAA,2CAAA,EAAA,MAAA,EAAA,CAAA,YAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;4FAMD,8BAA8B,EAAA,UAAA,EAAA,CAAA;kBAhB1C,SAAS;+BACE,0BAA0B,EAAA,UAAA,EACxB,IAAI,EAAA,OAAA,EACP;wBACP,eAAe;wBACf,eAAe;wBACf,OAAO;wBACP,WAAW;wBACX,YAAY;wBACZ,YAAY;wBACZ;qBACD,EAAA,eAAA,EAGgB,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,2tBAAA,EAAA;;;METpC,kBAAkB,CAAA;AACZ,IAAA,GAAG,GAAG,MAAM,CAAC,iBAAiB,CAAC;AAEhD,IAAA,QAAQ,GAAG,KAAK,CAAU,KAAK,oDAAC;IAChC,OAAO,GAAG,MAAM,EAAE;AAClB,IAAA,OAAO,GAAG,KAAK,CAAS,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,kBAAkB,CAAC,EAAA,IAAA,SAAA,GAAA,CAAA,EAAA,SAAA,EAAA,SAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAC;AAC3D,IAAA,EAAE,GAAG,KAAK,CAAU,KAAK,8CAAC;AAC1B,IAAA,SAAS,GAAG,KAAK,CAAU,KAAK,qDAAC;IAEjC,SAAS,GAAA;AACP,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;IACrB;wGAXW,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAlB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,kBAAkB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,EAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECf/B,qZAWA,EAAA,MAAA,EAAA,CAAA,wjIAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDFI,MAAM,sZACN,OAAO,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,cAAA,EAAA,eAAA,EAAA,mBAAA,EAAA,eAAA,EAAA,QAAA,EAAA,WAAA,EAAA,WAAA,EAAA,MAAA,EAAA,aAAA,EAAA,cAAA,EAAA,UAAA,EAAA,YAAA,EAAA,cAAA,EAAA,UAAA,EAAA,iBAAA,EAAA,gBAAA,EAAA,UAAA,EAAA,WAAA,CAAA,EAAA,CAAA,EAAA,CAAA;;4FAKE,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAV9B,SAAS;+BACE,uBAAuB,EAAA,UAAA,EACrB,IAAI,EAAA,OAAA,EACP;wBACP,MAAM;wBACN;AACD,qBAAA,EAAA,QAAA,EAAA,qZAAA,EAAA,MAAA,EAAA,CAAA,wjIAAA,CAAA,EAAA;;;MESU,6BAA6B,CAAA;AAEvB,IAAA,GAAG,GAAG,MAAM,CAAC,iBAAiB,CAAC;AAEhD,IAAA,QAAQ,GAAG,KAAK,CAAU,KAAK,oDAAC;IAChC,OAAO,GAAG,MAAM,EAAE;AAClB,IAAA,OAAO,GAAG,KAAK,CAAS,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,oBAAoB,CAAC,EAAA,IAAA,SAAA,GAAA,CAAA,EAAA,SAAA,EAAA,SAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAC;AAC7D,IAAA,IAAI,GAAG,KAAK,CAAU,KAAK,gDAAC;AAC5B,IAAA,EAAE,GAAG,KAAK,CAAU,KAAK,8CAAC;AAC1B,IAAA,SAAS,GAAG,KAAK,CAAU,KAAK,qDAAC;AAEjC,IAAA,iBAAiB,GAAG,QAAQ,CAAU,MACpC,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC,6DAAC;IAEpC,SAAS,GAAA;AACP,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;IACrB;IAEA,YAAY,GAAA;AACV,QAAA,IAAI,IAAI,CAAC,iBAAiB,EAAE,EAAC;YAC3B,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,wBAAwB,CAAC,YAAY,CAAC;QAC/D;IACF;IAEA,YAAY,GAAA;AACV,QAAA,IAAI,IAAI,CAAC,iBAAiB,EAAE,EAAC;YAC3B,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,wBAAwB,CAAC,YAAY,CAAC;QAChE;IACF;wGA5BW,6BAA6B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAA7B,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,6BAA6B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,EAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,yBAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECpB1C,2/BA+BA,EAAA,MAAA,EAAA,CAAA,wjIAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDrBI,OAAO,0VACP,eAAe,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,mBAAA,EAAA,UAAA,EAAA,MAAA,EAAA,OAAA,EAAA,QAAA,EAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,SAAA,EAAA,aAAA,EAAA,OAAA,EAAA,OAAA,EAAA,MAAA,EAAA,SAAA,EAAA,aAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;4FASN,6BAA6B,EAAA,UAAA,EAAA,CAAA;kBAdzC,SAAS;+BACE,yBAAyB,EAAA,UAAA,EACvB,IAAI,EAAA,OAAA,EACP;wBACP,OAAO;wBACP;qBACD,EAAA,eAAA,EAGgB,uBAAuB,CAAC,MAAM,EAAA,IAAA,EACzC;AACJ,wBAAA,KAAK,EAAE;AACR,qBAAA,EAAA,QAAA,EAAA,2/BAAA,EAAA,MAAA,EAAA,CAAA,wjIAAA,CAAA,EAAA;;;MEeU,2BAA2B,CAAA;AACrB,IAAA,iBAAiB,GAAG,MAAM,CAAC,iBAAiB,CAAC;AACtD,IAAA,cAAc;;AAGtB,IAAA,iBAAiB,GAAG,KAAK,CAAC,GAAG,EAAA,IAAA,SAAA,GAAA,CAAA,EAAA,SAAA,EAAA,mBAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAC,CAAC;AAC/B,IAAA,UAAU,GAAG,KAAK,CAAC,GAAG,EAAA,IAAA,SAAA,GAAA,CAAA,EAAA,SAAA,EAAA,YAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAC,CAAC;AACxB,IAAA,UAAU,GAAG,KAAK,CAAC,EAAE,EAAA,IAAA,SAAA,GAAA,CAAA,EAAA,SAAA,EAAA,YAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAC,CAAC;AACvB,IAAA,oBAAoB,GAAG,KAAK,CAAC,IAAI,EAAA,IAAA,SAAA,GAAA,CAAA,EAAA,SAAA,EAAA,sBAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAC,CAAC;AACnC,IAAA,cAAc,GAAG,KAAK,CAAqB,SAAS,EAAA,IAAA,SAAA,GAAA,CAAA,EAAA,SAAA,EAAA,gBAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAC,CAAC;;AAGtD,IAAA,uBAAuB,GAAG,QAAQ,CAAC,MAAK;AACtC,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,cAAc,EAAE;QACpC,OAAO,MAAM,IAAI,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,wBAAwB,CAAC;AACzE,IAAA,CAAC,mEAAC;;AAGF,IAAA,QAAQ,GAAG,MAAM,EAAU,CAAC;IAC5B,QAAQ,GAAG,MAAM,EAAU;;AAGnB,IAAA,eAAe,GACrB,SAAS,CAA6B,iBAAiB,2DAAC;AAClD,IAAA,QAAQ,GAAG,MAAM,CAAM,EAAE,oDAAC;AAC1B,IAAA,YAAY,GAAG,MAAM,CAAC,KAAK,wDAAC;AAEpC,IAAA,OAAO,GAAG,MAAM,CAAC,KAAK,mDAAC;;AAGf,IAAA,SAAS,GAAG,MAAM,CAAC,CAAC,qDAAC;AACrB,IAAA,eAAe,GAAG,MAAM,CAAC,GAAG,2DAAC;;AAG7B,IAAA,iBAAiB,GAAG,QAAQ,CAAC,MAAK;AACxC,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;AAC9D,QAAA,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;AAC/C,IAAA,CAAC,6DAAC;AAEM,IAAA,eAAe,GAAG,QAAQ,CAAC,MAAK;AACtC,QAAA,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;AACzE,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC,GAAG,WAAW;AAC1E,QAAA,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,GAAG,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;AAClE,IAAA,CAAC,2DAAC;;AAGF,IAAA,WAAW,GAAG,QAAQ,CAAkB,MAAK;AAC3C,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE;AAC7B,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,iBAAiB,EAAE;AACtC,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,eAAe,EAAE;QAElC,MAAM,IAAI,GAAoB,EAAE;AAChC,QAAA,KAAK,IAAI,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE;YAChC,IAAI,CAAC,IAAI,CAAC;AACR,gBAAA,KAAK,EAAE,CAAC;AACR,gBAAA,IAAI,EAAE,KAAK,CAAC,CAAC;AACd,aAAA,CAAC;QACJ;AACA,QAAA,OAAO,IAAI;AACb,IAAA,CAAC,uDAAC;;AAGF,IAAA,UAAU,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,iBAAiB,EAAE,GAAG,IAAI,CAAC,UAAU,EAAE,sDAAC;AACzE,IAAA,aAAa,GAAG,QAAQ,CAAC,MAAK;AAC5B,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC,eAAe,EAAE;AACjE,QAAA,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;AACnD,IAAA,CAAC,yDAAC;IAEF,eAAe,GAAA;;QAEb,MAAM,SAAS,GAAG,IAAI,CAAC,eAAe,EAAE,EAAE,aAAa;QACvD,IAAI,SAAS,EAAE;YACb,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,SAAS,CAAC,YAAY,CAAC;;YAGhD,IAAI,CAAC,cAAc,GAAG,IAAI,cAAc,CAAC,OAAO,IAAG;AACjD,gBAAA,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE;AAC3B,oBAAA,MAAM,SAAS,GAAG,KAAK,CAAC,WAAW,CAAC,MAAM;AAC1C,oBAAA,IAAI,SAAS,GAAG,CAAC,EAAE;AACjB,wBAAA,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,SAAS,CAAC;oBACrC;gBACF;AACF,YAAA,CAAC,CAAC;AACF,YAAA,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,SAAS,CAAC;QACxC;;QAGA,UAAU,CAAC,MAAM,IAAI,CAAC,WAAW,EAAE,EAAE,GAAG,CAAC;IAC3C;IAEA,WAAW,GAAA;AACT,QAAA,IAAI,IAAI,CAAC,cAAc,EAAE;AACvB,YAAA,IAAI,CAAC,cAAc,CAAC,UAAU,EAAE;QAClC;IACF;;AAGA,IAAA,QAAQ,CAAC,QAAsB,EAAA;AAC7B,QAAA,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;YAAE;AAC3B,QAAA,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,IAAI,CAAC,GAAG,OAAO,EAAE,GAAG,QAAQ,CAAC,CAAC;IAC5D;;IAGA,UAAU,CAAC,QAAsB,EAAE,EAAA;QACjC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC;AAC7B,QAAA,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC;QAC5B,IAAI,CAAC,iBAAiB,EAAE;IAC1B;;AAGA,IAAA,WAAW,CAAC,WAA6B,EAAA;AACvC,QAAA,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,GAAG,WAAW,GAAG,CAAC,WAAW,CAAC;AACtE,QAAA,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;YAAE;AAExB,QAAA,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,IAAI,CAAC,GAAG,KAAK,EAAE,GAAG,OAAO,CAAC,CAAC;AACvD,QAAA,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,MAAM,CAAC;IACnC;IAGA,SAAS,CAAC,KAAa,EAAE,IAAO,EAAA;AAC9B,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE;QAC7B,IAAI,KAAK,GAAG,CAAC,IAAI,KAAK,IAAI,KAAK,CAAC,MAAM,EAAE;AACtC,YAAA,OAAO,KAAK;QACd;AAEA,QAAA,MAAM,IAAI,GAAG,CAAC,GAAG,KAAK,CAAC;AACvB,QAAA,IAAI,CAAC,KAAK,CAAC,GAAG,IAAI;AAClB,QAAA,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC;AACvB,QAAA,OAAO,IAAI;IACb;AAEA,IAAA,SAAS,CAAC,SAAyC,EAAA;AACjD,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE;AAC7B,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACrC,YAAA,IAAI,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,EAAE;AACjC,gBAAA,OAAO,CAAC;YACV;QACF;QACA,OAAO,CAAC,CAAC;IACX;AAEA,IAAA,IAAI,CAAC,SAAyC,EAAA;QAC5C,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC;AACvC,QAAA,IAAI,KAAK,GAAG,CAAC,EAAE;AACb,YAAA,OAAO,SAAS;QAClB;AACA,QAAA,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC;IAC/B;IAEA,SAAS,GAAA;AACP,QAAA,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC,MAAM;IAC/B;IAGA,QAAQ,GAAA;QACN,IAAI,CAAC,WAAW,EAAE;IACpB;IAEQ,WAAW,GAAA;QACjB,MAAM,SAAS,GAAG,IAAI,CAAC,eAAe,EAAE,EAAE,aAAa;AACvD,QAAA,IAAI,CAAC,SAAS;YAAE;AAEhB,QAAA,MAAM,SAAS,GAAG,SAAS,CAAC,SAAS;AACrC,QAAA,MAAM,YAAY,GAAG,SAAS,CAAC,YAAY;AAC3C,QAAA,MAAM,YAAY,GAAG,SAAS,CAAC,YAAY;AAC3C,QAAA,MAAM,YAAY,GAAG,YAAY,GAAG,SAAS,GAAG,YAAY;;AAG5D,QAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC;;AAG7B,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC;;QAG7B,MAAM,UAAU,GAAG,YAAY,IAAI,IAAI,CAAC,iBAAiB,EAAE;AAE3D,QAAA,IAAI,UAAU,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE;AACzD,YAAA,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC;AAC3B,YAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,MAAM,CAAC;QAC5C;aAAO,IAAI,CAAC,UAAU,EAAE;AACtB,YAAA,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC;QAC9B;IACF;AAEQ,IAAA,cAAc,CAAC,eAAuB,EAAA;QAC5C,IAAI,eAAe,IAAI,CAAC;YAAE;QAE1B,MAAM,SAAS,GAAG,IAAI,CAAC,eAAe,EAAE,EAAE,aAAa;QACvD,IAAI,CAAC,SAAS,EAAE;YACd;QACF;QAEA,MAAM,MAAM,GAAG,eAAe,GAAG,IAAI,CAAC,UAAU,EAAE;AAClD,QAAA,SAAS,CAAC,SAAS,IAAI,MAAM;QAC7B,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,SAAS,CAAC;IACzC;IAEQ,iBAAiB,GAAA;QACvB,MAAM,SAAS,GAAG,IAAI,CAAC,eAAe,EAAE,EAAE,aAAa;QACvD,IAAI,CAAC,SAAS,EAAE;AACd,YAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;YACrB;QACF;QAEA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,SAAS,CAAC;IACzC;wGA7MW,2BAA2B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAA3B,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,2BAA2B,2/BCjCxC,ukBAkBA,EAAA,MAAA,EAAA,CAAA,gyBAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;4FDea,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBAPvC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,sBAAsB,EAAA,UAAA,EACpB,IAAI,EAAA,eAAA,EAGC,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,ukBAAA,EAAA,MAAA,EAAA,CAAA,gyBAAA,CAAA,EAAA;qtBAyBP,iBAAiB,EAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,EAAA,CAAA;;MErB9C,yBAAyB,CAAA;AACnB,IAAA,GAAG,GAAG,MAAM,CAAC,iBAAiB,CAAC;IAEhD,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,kBAAkB,EAAE,EAAA,IAAA,SAAA,GAAA,CAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAC;AAC3C,IAAA,GAAG,GAAG,KAAK,CAAmC,SAAS,+CAAC;AACxD,IAAA,OAAO,GAAG,KAAK,CAA4B,EAAE,mDAAC;AAC9C,IAAA,WAAW,GAAG,KAAK,CAAC,EAAE,uDAAC;;AAEvB,IAAA,WAAW,GAAG,KAAK,CAAC,EAAE,uDAAC;AACvB,IAAA,QAAQ,GAAG,KAAK,CAAC,KAAK,oDAAC;AACvB,IAAA,QAAQ,GAAG,KAAK,CAAC,KAAK,oDAAC;AACvB,IAAA,eAAe,GAAG,KAAK,CAA4B,EAAE,2DAAC;AACtD,IAAA,OAAO,GAAG,KAAK,CAAC,KAAK,mDAAC;AACtB,IAAA,SAAS,GAAG,KAAK,CAAC,IAAI,qDAAC;AAEvB,IAAA,QAAQ,GAAG,KAAK,CAAqB,SAAS,oDAAC;IAE/C,YAAY,GAAG,MAAM,EAAuC;IAC5D,UAAU,GAAG,MAAM,EAAQ;AAE3B,IAAA,gBAAgB,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,GAAG,EAAE,EAAE,OAAO,IAAI,IAAI,CAAC,OAAO,EAAE,4DAAC;AACxE,IAAA,oBAAoB,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,WAAW,EAAE,IAAI,IAAI,CAAC,WAAW,EAAE,gEAAC;IAC/E,iBAAiB,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC,EAAA,IAAA,SAAA,GAAA,CAAA,EAAA,SAAA,EAAA,mBAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAC;AAE7F,IAAA,WAAA,GAAA;QACE,MAAM,CAAC,MAAK;AACV,YAAA,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE;YACvB,IAAI,IAAI,EAAE;AACR,gBAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC;YACjC;AACF,QAAA,CAAC,CAAC;IACJ;AAEQ,IAAA,WAAW,CAAC,EAAsB,EAAA;AACxC,QAAA,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QAErB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,EAAE,SAAS;QACjC,IAAI,CAAC,GAAG,EAAE;YACR;QACF;QAEA,IAAI,EAAE,EAAE;AACN,YAAA,YAAY,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC;QAC/B;aAAO;AACL,YAAA,YAAY,CAAC,UAAU,CAAC,GAAG,CAAC;QAC9B;IACF;AAEA,IAAA,cAAc,CAAC,EAAsB,EAAA;AACnC,QAAA,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;AACpB,QAAA,MAAM,MAAM,GACV,IAAI,CAAC,gBAAgB,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC;AAChD,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC;IAChC;IAEA,OAAO,GAAA;AACL,QAAA,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC;AAC3B,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC;IACnC;IAEA,KAAK,GAAA;AACH,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE;IACxB;wGA9DW,yBAAyB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAzB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,yBAAyB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,GAAA,EAAA,EAAA,iBAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,eAAA,EAAA,EAAA,iBAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,YAAA,EAAA,cAAA,EAAA,UAAA,EAAA,YAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECnCtC,00CAgDA,EAAA,MAAA,EAAA,CAAA,ocAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDxBI,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAI,IAAA,CAAA,MAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,IAAA,EAAA,cAAA,EAAA,QAAA,EAAA,YAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,aAAA,EAAA,aAAA,EAAA,mBAAA,EAAA,cAAA,EAAA,SAAA,EAAA,SAAA,EAAA,UAAA,EAAA,cAAA,EAAA,WAAA,EAAA,mBAAA,EAAA,WAAA,EAAA,cAAA,EAAA,SAAA,EAAA,aAAA,EAAA,aAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,qBAAA,EAAA,OAAA,EAAA,WAAA,EAAA,oBAAA,EAAA,cAAA,EAAA,MAAA,EAAA,eAAA,EAAA,uBAAA,EAAA,sBAAA,EAAA,gBAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,gBAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,iBAAA,EAAA,sBAAA,EAAA,mBAAA,EAAA,cAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,SAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,SAAA,EAAA,QAAA,EAAA,QAAA,EAAA,SAAA,EAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACZ,WAAW,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAH,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACX,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAD,EAAA,CAAA,MAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,MAAA,EAAA,OAAA,EAAA,UAAA,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,OAAA,EAAA,UAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,SAAA,EAAA,OAAA,EAAA,YAAA,EAAA,YAAA,EAAA,eAAA,EAAA,WAAA,EAAA,WAAA,EAAA,SAAA,EAAA,MAAA,EAAA,OAAA,EAAA,SAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,OAAA,CAAA,EAAA,OAAA,EAAA,CAAA,SAAA,EAAA,SAAA,EAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACZ,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACZ,eAAe,iLACf,UAAU,EAAA,QAAA,EAAA,2CAAA,EAAA,MAAA,EAAA,CAAA,YAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;4FAMD,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBAfrC,SAAS;+BACE,oBAAoB,EAAA,UAAA,EAClB,IAAI,EAAA,OAAA,EACP;wBACP,YAAY;wBACZ,WAAW;wBACX,YAAY;wBACZ,YAAY;wBACZ,eAAe;wBACf;qBACD,EAAA,eAAA,EAGgB,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,00CAAA,EAAA,MAAA,EAAA,CAAA,ocAAA,CAAA,EAAA;;;ME1BpC,oBAAoB,CAAA;AAC/B;;;;;;;;;;;;AAYkC;AAClC,IAAA,QAAQ;IAER,OAAO,GAA8B,EAAE;;AAEvC,IAAA,SAAS;;AAGT,IAAA,QAAQ;AAER,IAAA,SAAS,CAAC,QAA4B,EAAA;AACpC,QAAA,IAAI,QAAQ,KAAK,SAAS,EAAE;AAC1B,YAAA,OAAO,SAAS;QAClB;AACA,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,QAAQ,CAAC;AACxD,QAAA,IAAI,MAAM,KAAK,SAAS,EAAE;AACxB,YAAA,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC;QACnD;AACA,QAAA,OAAO,MAAM;IACf;IAEA,OAAO,KAAK,CACV,OAAkC,EAAA;AAClC,QAAA,OAAO,IAAI,oBAAoB,CAC7B,OAAO,EAAE,OAAO,CAAC;IACrB;IAEA,OAAO,IAAI,CACT,OAAkC,EAAA;AAClC,QAAA,OAAO,IAAI,oBAAoB,CAC7B,MAAM,EAAE,OAAO,CAAC;IACpB;AAEA,IAAA,OAAO,QAAQ,CACb,OAAkC,EAClC,QAA4B,EAAA;QAC5B,OAAO,IAAI,oBAAoB,CAC7B,UAAU,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,CAAC;IAC7C;AAEA,IAAA,OAAO,eAAe,CACpB,OAAkC,EAClC,QAA4B,EAAA;QAC5B,OAAO,IAAI,oBAAoB,CAC7B,WAAW,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,CAAC;IAC9C;AAEA,IAAA,OAAO,SAAS,CAAC,OAAkC,EAClC,SAAiB,EAAA;QAChC,OAAO,IAAI,oBAAoB,CAC7B,WAAW,EAAE,OAAO,EAAE,SAAS,CAAC;IACpC;AAEA,IAAA,OAAO,QAAQ,CAAC,OAAkC,EAClC,SAAiB,EAAA;QAC/B,OAAO,IAAI,oBAAoB,CAC7B,UAAU,EAAE,OAAO,EAAE,SAAS,CAAC;IACnC;AAEA,IAAA,OAAO,aAAa,CAAC,OAAkC,EAClC,SAAiB,EACjB,QAA4B,EAAA;QAC/C,OAAO,IAAI,oBAAoB,CAC7B,eAAe,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,CAAC;IAClD;AAEA,IAAA,OAAO,YAAY,CAAC,OAAkC,EAClC,SAAiB,EACjB,QAA4B,EAAA;QAC9C,OAAO,IAAI,oBAAoB,CAC7B,cAAc,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,CAAC;IACjD;AAEQ,IAAA,WAAW,CAAC,EAAsB,EAAA;QACxC,MAAM,MAAM,GAAG;AACb,cAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,EAAE;cAClC,SAAS;AACb,QAAA,IAAI,CAAC,QAAQ,GAAG,MAAM,EAAE,EAAE;IAC5B;IAEQ,QAAQ,GAAA;QACd,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG;cAClC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;cAChB,SAAS;IACf;AAEQ,IAAA,YAAY,CAAC,EAAsB,EAAA;AACzC,QAAA,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;AACpB,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB;QACF;QACA,IAAI,CAAC,QAAQ,EAAE;IACjB;AAEQ,IAAA,WAAW,CAAC,SAAiB,EAAA;QACnC,MAAM,IAAI,GAAG,YAAY,CAAC,OAAO,CAAC,SAAU,CAAC,IAAI,SAAS;AAC1D,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;IACxB;AAEQ,IAAA,YAAY,CAAC,SAAiB,EAAA;QACpC,MAAM,IAAI,GAAG,YAAY,CAAC,OAAO,CAAC,SAAU,CAAC,IAAI,SAAS;AAC1D,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC;IACzB;IAEQ,eAAe,CAAC,SAAiB,EAAE,EAAsB,EAAA;QAC/D,MAAM,IAAI,GAAG,YAAY,CAAC,OAAO,CAAC,SAAU,CAAC,IAAI,SAAS;AAC1D,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,IAAI,EAAE,CAAC;IAC9B;IAEQ,gBAAgB,CAAC,SAAiB,EAAE,EAAsB,EAAA;QAChE,MAAM,IAAI,GAAG,YAAY,CAAC,OAAO,CAAC,SAAU,CAAC,IAAI,SAAS;AAC1D,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,IAAI,EAAE,CAAC;IAC/B;AAEA,IAAA,WAAA,CACE,QAC+D,EAC/D,OAAkC,EAClC,SAAkB,EAClB,EAAW,EAAA;AAEX,QAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ;AACxB,QAAA,IAAI,CAAC,OAAO,GAAG,OAAO;AACtB,QAAA,IAAI,CAAC,SAAS,GAAG,SAAS;AAC1B,QAAA,IAAI,CAAC,QAAQ,GAAG,EAAE;QAElB,QAAQ,QAAQ;AACd,YAAA,KAAK,OAAO;gBACV,IAAI,CAAC,QAAQ,EAAE;gBACf;AACF,YAAA,KAAK,MAAM;AACT,gBAAA,IAAI,CAAC,QAAQ,GAAG,SAAS;gBACzB;AACF,YAAA,KAAK,UAAU;AACb,gBAAA,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;gBACpB;AACF,YAAA,KAAK,WAAW;AACd,gBAAA,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC;gBACrB;AAEF,YAAA,KAAK,WAAW;AACd,gBAAA,IAAI,CAAC,YAAY,CAAC,SAAU,CAAC;gBAC7B;AACF,YAAA,KAAK,UAAU;AACb,gBAAA,IAAI,CAAC,WAAW,CAAC,SAAU,CAAC;gBAC5B;AACF,YAAA,KAAK,cAAc;AACjB,gBAAA,IAAI,CAAC,eAAe,CAAC,SAAU,EAAE,EAAE,CAAC;gBACpC;AACF,YAAA,KAAK,eAAe;AAClB,gBAAA,IAAI,CAAC,gBAAgB,CAAC,SAAU,EAAE,EAAE,CAAC;gBACrC;;IAEN;AACD;;MClJY,+BAA+B,CAAA;AACzB,IAAA,GAAG,GAAG,MAAM,CAAC,iBAAiB,CAAC;AAEhD,IAAA,QAAQ,GAAG,KAAK,CAAC,KAAK,oDAAC;AACvB,IAAA,IAAI,GAAG,KAAK,CAAC,KAAK,gDAAC;AACnB,IAAA,EAAE,GAAG,KAAK,CAAC,KAAK,8CAAC;AACjB,IAAA,SAAS,GAAG,KAAK,CAAC,KAAK,qDAAC;AACxB,IAAA,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,sBAAsB,CAAC,EAAA,IAAA,SAAA,GAAA,CAAA,EAAA,SAAA,EAAA,SAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAC;IAEvD,OAAO,GAAG,MAAM,EAAQ;AAExB,IAAA,iBAAiB,GAAG,QAAQ,CAAC,MAC3B,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC,6DAAC;IAEpC,SAAS,GAAA;AACP,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;IACrB;IAEA,YAAY,GAAA;AACV,QAAA,IAAI,IAAI,CAAC,iBAAiB,EAAE,EAAE;YAC5B,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,wBAAwB,CAAC,YAAY,CAAC;QAC/D;IACF;IAEA,YAAY,GAAA;AACV,QAAA,IAAI,IAAI,CAAC,iBAAiB,EAAE,EAAE;YAC5B,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,wBAAwB,CAAC,YAAY,CAAC;QAChE;IACF;wGA5BW,+BAA+B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAA/B,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,+BAA+B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,2BAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,EAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,2BAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EC5B5C,yoCAiCA,EAAA,MAAA,EAAA,CAAA,wjIAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDfI,eAAe,qPACf,OAAO,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,cAAA,EAAA,eAAA,EAAA,mBAAA,EAAA,eAAA,EAAA,QAAA,EAAA,WAAA,EAAA,WAAA,EAAA,MAAA,EAAA,aAAA,EAAA,cAAA,EAAA,UAAA,EAAA,YAAA,EAAA,cAAA,EAAA,UAAA,EAAA,iBAAA,EAAA,gBAAA,EAAA,UAAA,EAAA,WAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;4FASE,+BAA+B,EAAA,UAAA,EAAA,CAAA;kBAd3C,SAAS;+BACE,2BAA2B,EAAA,UAAA,EACzB,IAAI,EAAA,OAAA,EACP;wBACP,eAAe;wBACf;qBACD,EAAA,eAAA,EAGgB,uBAAuB,CAAC,MAAM,EAAA,IAAA,EACzC;AACJ,wBAAA,KAAK,EAAE;AACR,qBAAA,EAAA,QAAA,EAAA,yoCAAA,EAAA,MAAA,EAAA,CAAA,wjIAAA,CAAA,EAAA;;;MEAU,yBAAyB,CAAA;AACnB,IAAA,GAAG,GAAG,MAAM,CAAC,iBAAiB,CAAC;IAEhD,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,kBAAkB,EAAE,EAAA,IAAA,SAAA,GAAA,CAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAC;AAC3C,IAAA,QAAQ,GAAG,KAAK,CAAC,KAAK,oDAAC;IACvB,YAAY,GAAG,KAAK,CAA0B;AAC5C,QAAA,OAAO,EAAE,EAAE;AACX,QAAA,EAAE,EAAE,EAAE;AACN,QAAA,QAAQ,EAAE;AACX,KAAA,EAAA,IAAA,SAAA,GAAA,CAAA,EAAA,SAAA,EAAA,cAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAC;IAEF,kBAAkB,GAAG,MAAM,EAA2B;IAErC,oBAAoB,GAAG,MAAM,CAA0B;AACtE,QAAA,OAAO,EAAE,EAAE;AACX,QAAA,EAAE,EAAE,EAAE;AACN,QAAA,QAAQ,EAAE;AACX,KAAA,EAAA,IAAA,SAAA,GAAA,CAAA,EAAA,SAAA,EAAA,sBAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAC;IAEF,qBAAqB,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,oBAAoB,EAAE,EAAA,IAAA,SAAA,GAAA,CAAA,EAAA,SAAA,EAAA,uBAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAC;AAEnE,IAAA,WAAA,GAAA;QACE,MAAM,CAAC,MAAK;AACV,YAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,EAAE;AACpC,YAAA,MAAM,MAAM,GAAG,QAAQ,CAAC;kBACpB,YAAY,CAAC,OAAO,CAAC,QAAQ,CAAC,SAAS;kBACvC,IAAI;AAER,YAAA,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC;AAC5B,gBAAA,GAAG,QAAQ;AACX,gBAAA,QAAQ,EAAE,MAAM,GAAG,MAAM,KAAK,MAAM,GAAG,QAAQ,CAAC;AACjD,aAAA,CAAC;AACJ,QAAA,CAAC,CAAC;IACJ;AAEQ,IAAA,KAAK,CAAC,QAAiB,EAAA;AAC7B,QAAA,MAAM,UAAU,GAAG;YACjB,GAAG,IAAI,CAAC,qBAAqB,EAAE;YAC/B;SACD;AAED,QAAA,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,UAAU,CAAC;AACzC,QAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC;AAExC,QAAA,IAAI,UAAU,CAAC,SAAS,EAAE;AACxB,YAAA,YAAY,CAAC,OAAO,CAAC,UAAU,CAAC,SAAS,EAAE,QAAQ,GAAG,MAAM,GAAG,OAAO,CAAC;QACzE;IACF;AAEA,IAAA,QAAQ,CAAC,KAA2B,EAAA;AAClC,QAAA,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC;IAC3B;IAEA,gBAAgB,GAAA;AACd,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE,EAAE;YACnB;QACF;QACA,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,qBAAqB,EAAE,CAAC,QAAQ,CAAC;IACpD;wGA1DW,yBAAyB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAzB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,yBAAyB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,YAAA,EAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,UAAA,EAAA,cAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EC1BtC,qtBAqBA,EAAA,MAAA,EAAA,CAAA,0BAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDFI,YAAY,4PACZ,WAAW,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;4FAMF,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBAVrC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,oBAAoB,EAAA,OAAA,EACrB;wBACP,YAAY;wBACZ;qBACD,EAAA,eAAA,EAGgB,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,qtBAAA,EAAA,MAAA,EAAA,CAAA,0BAAA,CAAA,EAAA;;;MEhBpC,sBAAsB,CAAA;AACjC,IAAA,EAAE;AACF,IAAA,OAAO;AACP,IAAA,QAAQ;AACR,IAAA,SAAS;AAET;;AAEG;AACH,IAAA,WAAA,CACE,EAAU,EACV,OAAe,EACf,QAAiB,EACjB,SAAkB,EAAA;AAElB,QAAA,IAAI,CAAC,EAAE,GAAG,EAAE;AACZ,QAAA,IAAI,CAAC,OAAO,GAAG,OAAO;AACtB,QAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ;AACxB,QAAA,IAAI,CAAC,SAAS,GAAG,SAAS;QAE1B,IAAI,SAAS,EAAE;YACb,MAAM,MAAM,GAAG,YAAY,CAAC,OAAO,CAAC,SAAS,CAAC;YAC9C,IAAI,MAAM,EAAE;AACV,gBAAA,IAAI,CAAC,QAAQ,GAAG,MAAM,KAAK,MAAM;YACnC;QACF;IACF;AACD;;MC7BY,kCAAkC,CAAA;AAMzB,IAAA,UAAA;;IAFX,gBAAgB,GAAG,CAAC;AAE7B,IAAA,WAAA,CAAoB,UAAsC,EAAA;QAAtC,IAAA,CAAA,UAAU,GAAV,UAAU;IAAgC;AAE9D,IAAA,QAAQ;IACA,UAAU,GAAG,CAAC;IAEd,gBAAgB,GAAA;AACtB,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa;AAC5C,QAAA,MAAM,IAAI,GAAG,MAAM,CAAC,qBAAqB,EAAE;AAC3C,QAAA,MAAM,YAAY,GAAG,MAAM,CAAC,WAAW,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,gBAAgB;;AAG1E,QAAA,IAAI,IAAI,CAAC,GAAG,CAAC,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;YAChD,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,CAAA,EAAG,YAAY,IAAI;AACzC,YAAA,IAAI,CAAC,UAAU,GAAG,YAAY;QAChC;IACF;IAEA,QAAQ,GAAA;QAEN,UAAU,CAAC,MAAK;AACd,YAAA,MAAM,CAAC,gBAAgB,CACrB,QAAQ,EACR,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACnC,IAAI,CAAC,gBAAgB,EAAE;QACzB,CAAC,EAAE,CAAC,CAAC;;AAGL,QAAA,IAAI,CAAC,QAAQ,GAAG,WAAW,CAAC,MAAK;YAC/B,IAAI,CAAC,gBAAgB,EAAE;QACzB,CAAC,EAAE,IAAI,CAAC;IACV;IAEA,WAAW,GAAA;QACT,MAAM,CAAC,mBAAmB,CACxB,QAAQ,EACR,IAAI,CAAC,gBAAgB,CAAC;AACxB,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;AACjB,YAAA,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC;QAC9B;IACF;wGA7CW,kCAAkC,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;4FAAlC,kCAAkC,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,6BAAA,EAAA,MAAA,EAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;4FAAlC,kCAAkC,EAAA,UAAA,EAAA,CAAA;kBAJ9C,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,6BAA6B;AACvC,oBAAA,UAAU,EAAE;AACb,iBAAA;;sBAKE;;;ACVH;;AAEG;AAEH;;ACJA;;AAEG;;;;"}