{"version":3,"file":"datahive-ui-datahive-grid.mjs","sources":["../../../../../libs/shared/ui-datahive-grid/src/lib/ag-master-detail/ag-master-detail.cell-renderer-control.component.ts","../../../../../libs/shared/ui-datahive-grid/src/lib/ag-master-detail/ag-master-detail.cell-renderer.component.html","../../../../../libs/shared/ui-datahive-grid/src/lib/configuration/grid-selection-mode.enum.ts","../../../../../libs/shared/ui-datahive-grid/src/lib/filters/ag-bool-filter/ag-bool-filter.component.ts","../../../../../libs/shared/ui-datahive-grid/src/lib/filters/ag-bool-filter/ag-bool-filter.component.html","../../../../../libs/shared/ui-datahive-grid/src/lib/filters/ag-date-filter/ag-date-filter.component.ts","../../../../../libs/shared/ui-datahive-grid/src/lib/filters/ag-date-filter/ag-date-filter.component.html","../../../../../libs/shared/ui-datahive-grid/src/lib/filters/ag-no-filter/ag-no-filter.component.ts","../../../../../libs/shared/ui-datahive-grid/src/lib/filters/ag-no-filter/ag-no-filter.component.html","../../../../../libs/shared/ui-datahive-grid/src/lib/filters/ag-text-filter/ag-text-filter.component.ts","../../../../../libs/shared/ui-datahive-grid/src/lib/filters/ag-text-filter/ag-text-filter.component.html","../../../../../libs/shared/ui-datahive-grid/src/lib/filters/options-helpers.ts","../../../../../libs/shared/ui-datahive-grid/src/lib/filters/set-filter/set-filter.component.ts","../../../../../libs/shared/ui-datahive-grid/src/lib/filters/set-filter/set-filter.component.html","../../../../../libs/shared/ui-datahive-grid/src/lib/filters/ag-set-filter/ag-set-filter.component.ts","../../../../../libs/shared/ui-datahive-grid/src/lib/filters/ag-set-filter/ag-set-filter.component.html","../../../../../libs/shared/ui-datahive-grid/src/lib/datahive-grid/datahive-grid.component.ts","../../../../../libs/shared/ui-datahive-grid/src/lib/datahive-grid/datahive-grid.component.html","../../../../../libs/shared/ui-datahive-grid/src/lib/cell-renderers/ag-date/ag-date.cell-renderer.component.ts","../../../../../libs/shared/ui-datahive-grid/src/lib/cell-renderers/ag-date/ag-date.cell-renderer.component.html","../../../../../libs/shared/ui-datahive-grid/src/lib/cell-renderers/ag-country-flags/ag-country-flags.component.ts","../../../../../libs/shared/ui-datahive-grid/src/lib/cell-renderers/ag-country-flags/ag-country-flags.component.html","../../../../../libs/shared/ui-datahive-grid/src/lib/cell-renderers/ag-user/ag-user.cell-renderer.component.ts","../../../../../libs/shared/ui-datahive-grid/src/lib/cell-renderers/ag-user/ag-user.cell-renderer.component.html","../../../../../libs/shared/ui-datahive-grid/src/lib/cell-renderers/ag-yesno/ag-yesno.component.ts","../../../../../libs/shared/ui-datahive-grid/src/lib/cell-renderers/ag-yesno/ag-yesno.component.html","../../../../../libs/shared/ui-datahive-grid/src/lib/ghheader-component/ghheader-component.component.ts","../../../../../libs/shared/ui-datahive-grid/src/lib/ghheader-component/ghheader-component.component.html","../../../../../libs/shared/ui-datahive-grid/src/lib/cell-renderers/ag-date-as-cw/ag-date-as-cw.cell-renderer.component.ts","../../../../../libs/shared/ui-datahive-grid/src/lib/cell-renderers/ag-date-as-cw/ag-date-as-cw.cell-renderer.component.html","../../../../../libs/shared/ui-datahive-grid/src/lib/cell-renderers/ag-entra-id-trace/ag-entra-id-trace.cell-renderer.component.ts","../../../../../libs/shared/ui-datahive-grid/src/lib/cell-renderers/ag-entra-id-trace/ag-entra-id-trace.cell-renderer.component.html","../../../../../libs/shared/ui-datahive-grid/src/lib/cell-renderers/ag-template/ag-template.cell-renderer.ts","../../../../../libs/shared/ui-datahive-grid/src/lib/datahive-grid.module.ts","../../../../../libs/shared/ui-datahive-grid/src/lib/ag-master-detail/cell-renderer-base.component.ts","../../../../../libs/shared/ui-datahive-grid/src/lib/comparators.ts","../../../../../libs/shared/ui-datahive-grid/src/lib/grid-helpers.ts","../../../../../libs/shared/ui-datahive-grid/src/lib/range-selection-helper.ts","../../../../../libs/shared/ui-datahive-grid/src/lib/models/option-model.ts","../../../../../libs/shared/ui-datahive-grid/src/datahive-ui-datahive-grid.ts"],"sourcesContent":["import { ChangeDetectionStrategy, ChangeDetectorRef, Component, inject } from '@angular/core';\r\nimport { hasProperties } from '@datahive/util-datahive';\r\nimport { ICellRendererAngularComp } from 'ag-grid-angular';\r\nimport { ICellRendererParams } from 'ag-grid-community';\r\nimport { DatahiveGridComponent } from '../datahive-grid/datahive-grid.component';\r\n@Component({\r\n    selector: 'grouphive-master-detail-control',\r\n    templateUrl: './ag-master-detail.cell-renderer.component.html',\r\n    styleUrls: ['./ag-master-detail.cell-renderer.component.scss'],\r\n    changeDetection: ChangeDetectionStrategy.OnPush,\r\n    standalone: false\r\n})\r\nexport class AgMasterDetailControlCellRendererComponent implements ICellRendererAngularComp {\r\n   private change = inject(ChangeDetectorRef);\r\n\r\n   refresh(params: ICellRendererParams<any, any, any>): boolean {\r\n      return true;\r\n   }\r\n   context!: DatahiveGridComponent<any>;\r\n   object: any;\r\n   params: any;\r\n   id: number = -1;\r\n   imagePath?: string;\r\n   expanded = false;\r\n   showExpandIndicator = true;\r\n   waitingForExpandFunction = false;\r\n   onExpand: any = (_: any) => {};\r\n   public agInit(params: any): void {\r\n      this.params = params;\r\n      this.expanded = false;\r\n\r\n      if (params) {\r\n         this.context = params.context;\r\n         if (this.context.getRowPictureFn) {\r\n            this.imagePath = this.context.getRowPictureFn(params.data);\r\n         }\r\n\r\n         if (params.data) {\r\n            if (params.data.ImagePath && params.showPicture === true) {\r\n               this.imagePath = params.data.ImagePath;\r\n            }\r\n         }\r\n         if (\r\n            params.context &&\r\n            params.context.gridOptions &&\r\n            params.context.gridOptions.rowData &&\r\n            params.context.gridOptions.rowData.length === 1\r\n         ) {\r\n            this.expanded = true;\r\n         } else {\r\n            this.expanded = false;\r\n         }\r\n         this.object = params.data;\r\n         this.id = parseInt(params.node.id, 10);\r\n         params.context.cellRendererRefs[this.id] = this;\r\n         if (params.onExpand) {\r\n            this.onExpand = params.onExpand;\r\n         }\r\n         if (params.showExpandable) {\r\n            this.showExpandIndicator = params.showExpandable(params.data);\r\n         }\r\n         /** This cell will be re-rendered while ie scrolling. To remember which rows have been expanded and which not, the expanded ids property is\r\n          *  used.\r\n          *  Store for each id weather it was expanded or not to loose this information if the cell is re-rendered.\r\n          */\r\n         if (hasProperties(this.context.expandedIds)) {\r\n            const ex = this.context.expandedIds[this.id];\r\n            if (ex === true) {\r\n               this.expanded = true;\r\n            }\r\n         }\r\n      }\r\n   }\r\n   public async callOnExpand(event: Event, object: any, context: any, id: any) {\r\n      if (this.waitingForExpandFunction) {\r\n         return;\r\n      }\r\n      this.waitingForExpandFunction = true;\r\n      if (event) {\r\n         event.stopPropagation();\r\n         event.preventDefault();\r\n      }\r\n      this.expanded = !this.expanded;\r\n      if (!this.context.expandedIds) {\r\n         this.context.expandedIds = {};\r\n      }\r\n      this.context.expandedIds[this.id] = this.expanded;\r\n      this.change.detectChanges();\r\n      await this.context.onExpand.call(context, object, id);\r\n      this.waitingForExpandFunction = false;\r\n      this.change.detectChanges();\r\n   }\r\n}\r\n","<div class=\"ag-name-edit-outer\">\r\n  @if (imagePath) {\r\n    <img [src]=\"imagePath\" alt=\"expand-arrow\" class=\"bs-row-image\" />\r\n  }\r\n  @if (!waitingForExpandFunction) {\r\n    <div\r\n      class=\"action-icon\"\r\n      [ngClass]=\"{\r\n         'bs-icon-chevron-right': expanded === false,\r\n         'bs-icon-chevron-down': expanded === true,\r\n         'bs-icon-chevron-transparent': showExpandIndicator === false\r\n      }\"\r\n      (click)=\"callOnExpand($event, object, context, id)\"\r\n    ></div>\r\n  }\r\n  @if (waitingForExpandFunction) {\r\n    <img\r\n      src=\"assets/img/general/loading.gif\"\r\n      class=\"h-4 mt-1\"\r\n      title=\"loading\"\r\n      alt=\"loading\"\r\n      />\r\n  }\r\n  <div class=\"clear-both\"></div>\r\n</div>\r\n","export enum GridSelectionMode {\r\n   None,\r\n   Cell,\r\n   Row,\r\n   Multirow,\r\n   Range,\r\n}\r\n","import { IDoesFilterPassParams, IFilterParams, IAfterGuiAttachedParams, RowNode } from 'ag-grid-community';\r\nimport { AgFilterComponent } from 'ag-grid-angular';\r\nimport { Component, OnInit } from '@angular/core';\r\nimport { MatCheckbox } from '@angular/material/checkbox';\r\nimport { getNiceBool, hasValidValue } from '@datahive/util-datahive';\r\n\r\n@Component({\r\n    selector: 'app-ag-bool-filter',\r\n    templateUrl: './ag-bool-filter.component.html',\r\n    styleUrls: ['./ag-bool-filter.component.scss'],\r\n    standalone: false\r\n})\r\nexport class AgBoolFilterComponent implements AgFilterComponent {\r\n   yesNoValue: boolean | undefined | null;\r\n   hasValidValue = hasValidValue;\r\n   private params!: IFilterParams;\r\n   private valueGetter!: (rowNode: RowNode) => any;\r\n\r\n   constructor() {}\r\n   public agInit(params: IFilterParams): void {\r\n      this.params = params;\r\n      this.valueGetter = params.valueGetter as any;\r\n   }\r\n   public isFilterActive(): boolean {\r\n      if (hasValidValue(this.yesNoValue)) {\r\n         return true;\r\n      }\r\n      return false;\r\n   }\r\n   public doesFilterPass(params: IDoesFilterPassParams): boolean {\r\n      return true;\r\n   }\r\n   public getModel() {\r\n      if (this.yesNoValue === true) {\r\n         return 'true';\r\n      } else if (this.yesNoValue === false) {\r\n         return 'false';\r\n      } else {\r\n         return null;\r\n      }\r\n   }\r\n   public setModel(model: any): void {\r\n      if (model === 'true') {\r\n         this.yesNoValue = true;\r\n      } else if (model === 'false') {\r\n         this.yesNoValue = false;\r\n      } else {\r\n         this.yesNoValue = null;\r\n      }\r\n   }\r\n   public onNewRowsLoaded?(): void {}\r\n   public onAnyFilterChanged?(): void {\r\n      this.params.filterChangedCallback();\r\n   }\r\n   public getFrameworkComponentInstance?() {}\r\n   public getModelAsString?(model: any): string {\r\n      return getNiceBool(model);\r\n   }\r\n   public afterGuiAttached?(params?: IAfterGuiAttachedParams): void {}\r\n   public toggle(checkbox: MatCheckbox, event: any) {\r\n      event.preventDefault();\r\n      if (checkbox.checked === false && checkbox.indeterminate === true) {\r\n         checkbox.checked = false;\r\n         checkbox.indeterminate = false;\r\n         this.yesNoValue = false;\r\n      } else if (checkbox.checked === true && checkbox.indeterminate === false) {\r\n         checkbox.checked = false;\r\n         checkbox.indeterminate = true;\r\n         this.yesNoValue = null;\r\n      } else if (checkbox.checked === false && checkbox.indeterminate === false) {\r\n         checkbox.checked = true;\r\n         checkbox.indeterminate = false;\r\n         this.yesNoValue = true;\r\n      }\r\n      this.params.filterChangedCallback();\r\n   }\r\n}\r\n","<div class=\"bs-custom-filter-outer\">\r\n   <mat-checkbox [(ngModel)]=\"yesNoValue\"\r\n                 #forme\r\n                 [indeterminate]=\"!hasValidValue(yesNoValue) ? true : false\"\r\n                 (click)=\"toggle(forme, $event)\" \r\n                 color=\"primary\">\r\n      Yes/No Filter\r\n   </mat-checkbox>  \r\n</div>","import { IDoesFilterPassParams, IFilterParams, IAfterGuiAttachedParams, RowNode } from 'ag-grid-community';\r\nimport { AgFilterComponent } from 'ag-grid-angular';\r\nimport { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n    selector: 'app-ag-date-filter',\r\n    templateUrl: './ag-date-filter.component.html',\r\n    styleUrls: ['./ag-date-filter.component.scss'],\r\n    standalone: false\r\n})\r\nexport class AgDateFilterComponent implements AgFilterComponent {\r\n   selectOptions!: string[];\r\n   selectedOptions: boolean[] = [];\r\n   private params!: IFilterParams;\r\n   private valueGetter!: (rowNode: RowNode) => any;\r\n\r\n   constructor() {}\r\n   public agInit(params: IFilterParams): void {\r\n      this.params = params;\r\n      this.refreshOptionSelection();\r\n      this.valueGetter = params.valueGetter as any;\r\n   }\r\n   private refreshOptionSelection() {\r\n      if (this.selectOptions) {\r\n         this.selectOptions.forEach((option) => {\r\n            this.selectedOptions.push(false);\r\n         });\r\n      }\r\n   }\r\n   public isFilterActive(): boolean {\r\n      return this.selectedOptions.includes(true);\r\n   }\r\n   public doesFilterPass(params: IDoesFilterPassParams): boolean {\r\n      return true;\r\n   }\r\n   public getModel() {\r\n      let resultText = '';\r\n      if (this.selectOptions) {\r\n         let cnt = 0;\r\n         this.selectOptions.forEach((option) => {\r\n            if (this.selectedOptions[cnt] === true) {\r\n               resultText += cnt;\r\n            }\r\n            cnt++;\r\n         });\r\n      }\r\n      return resultText;\r\n   }\r\n   public setModel(model: any): void {}\r\n   public onNewRowsLoaded?(): void {}\r\n   public onAnyFilterChanged?(): void {\r\n      this.params.filterChangedCallback();\r\n   }\r\n   public getFrameworkComponentInstance?() {}\r\n   public getModelAsString?(model: any): string {\r\n      return this.getModel();\r\n   }\r\n   public afterGuiAttached?(params?: IAfterGuiAttachedParams): void {}\r\n}\r\n","Implementation missing","import { IDoesFilterPassParams, IFilterParams, IAfterGuiAttachedParams, RowNode, AgPromise } from 'ag-grid-community';\r\nimport { AgFilterComponent } from 'ag-grid-angular';\r\nimport { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n    selector: 'app-ag-no-filter',\r\n    templateUrl: './ag-no-filter.component.html',\r\n    styleUrls: ['./ag-no-filter.component.scss'],\r\n    standalone: false\r\n})\r\nexport class AgNoFilterComponent\r\n       implements AgFilterComponent  {\r\n   isFilterActive(): boolean {\r\n     return false;\r\n   }\r\n   doesFilterPass(params: IDoesFilterPassParams): boolean {\r\n     return false;\r\n   }\r\n   getModel() {\r\n     \r\n   }\r\n   setModel(model: any): void | AgPromise<void> {\r\n     \r\n   }\r\n   onNewRowsLoaded?(): void {\r\n     \r\n   }\r\n   onAnyFilterChanged?(): void {\r\n     \r\n   }\r\n   getFrameworkComponentInstance?() {\r\n     \r\n   }\r\n   getModelAsString?(model: any): string {\r\n     return '';\r\n   }\r\n   agInit(params: IFilterParams): void {\r\n     \r\n   }\r\n   afterGuiAttached?(params?: IAfterGuiAttachedParams): void {\r\n     \r\n   }\r\n   \r\n  \r\n}\r\n","Cannot filter here","import { IDoesFilterPassParams, IFilterParams, IAfterGuiAttachedParams, RowNode } from 'ag-grid-community';\r\nimport { AgFilterComponent } from 'ag-grid-angular';\r\nimport { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n    selector: 'app-ag-text-filter',\r\n    templateUrl: './ag-text-filter.component.html',\r\n    styleUrls: ['./ag-text-filter.component.scss'],\r\n    standalone: false\r\n})\r\nexport class AgTextFilterComponent implements AgFilterComponent {\r\n   filterText!: string;\r\n   hasIndex!: boolean;\r\n   isNumeric!: boolean;\r\n   private params!: IFilterParams;\r\n   private valueGetter!: (rowNode: RowNode) => any;\r\n\r\n   constructor() {}\r\n   public agInit(params: IFilterParams): void {\r\n      this.params = params;\r\n      this.hasIndex = (params as any).hasIndex;\r\n      this.isNumeric = (params as any).isNumeric;\r\n      this.valueGetter = params.valueGetter as any;\r\n   }\r\n   public isFilterActive(): boolean {\r\n      return this.filterText != null && this.filterText !== '';\r\n   }\r\n   public doesFilterPass(params: IDoesFilterPassParams): boolean {\r\n      return true;\r\n   }\r\n   public getModel() {\r\n      return this.filterText;\r\n   }\r\n   public setModel(model: any): void {\r\n      this.filterText = model;\r\n   }\r\n   public onNewRowsLoaded?(): void {}\r\n   public onAnyFilterChanged(): void {\r\n      this.params.filterChangedCallback();\r\n   }\r\n   public getFrameworkComponentInstance?() {}\r\n   public getModelAsString?(model: any): string {\r\n      return this.filterText;\r\n   }\r\n   public afterGuiAttached?(params?: IAfterGuiAttachedParams): void {}\r\n}\r\n","<div class=\"bs-custom-filter-outer\">\r\n  @if (hasIndex === true) {\r\n    <app-bs-textfield\r\n      [placeholder]=\"isNumeric ? 'Number equals' : 'Contains text'\"\r\n      (valueChanged)=\"onAnyFilterChanged()\"\r\n      [(ngModel)]=\"filterText\"\r\n      >\r\n    </app-bs-textfield>\r\n  }\r\n  @if (!hasIndex && !isNumeric) {\r\n    <div\r\n      matTooltip=\"This property was not included in the search index by your admin. Please change the settings of the property, if you want to filter here.\"\r\n      class=\"bs-pending-indicator\"\r\n      >\r\n      Not set as 'searchable'\r\n    </div>\r\n  }\r\n</div>\r\n","export function getOptionWithoutVariables(option: string) {\r\n   if(option) {\r\n      var pattern = /\\{(.*?)\\}/g;\r\n      try {\r\n         option = option.replace(pattern, '');\r\n      } catch(e) {\r\n         /** If a number is provided or a date or so */\r\n         return option + '';   \r\n      }      \r\n      return option;\r\n   } else {\r\n      return '';\r\n   }\r\n}","import { ChangeDetectorRef, Component, EventEmitter, forwardRef, Input, OnInit, Output, inject } from '@angular/core';\r\nimport { NG_VALUE_ACCESSOR, NG_VALIDATORS, ControlValueAccessor, UntypedFormControl } from '@angular/forms';\r\nimport { OptionModel } from '../../models/option-model';\r\nimport { getOptionWithoutVariables } from '../options-helpers';\r\n\r\n@Component({\r\n    selector: 'app-set-filter',\r\n    templateUrl: './set-filter.component.html',\r\n    styleUrls: ['./set-filter.component.scss'],\r\n    providers: [\r\n        {\r\n            provide: NG_VALUE_ACCESSOR,\r\n            useExisting: forwardRef(() => SetFilterComponent),\r\n            multi: true,\r\n        },\r\n        {\r\n            provide: NG_VALIDATORS,\r\n            useExisting: forwardRef(() => SetFilterComponent),\r\n            multi: true,\r\n        },\r\n    ],\r\n    standalone: false\r\n})\r\nexport class SetFilterComponent implements OnInit, ControlValueAccessor {\r\n   changeDet = inject(ChangeDetectorRef);\r\n\r\n   @Input() optionLabels!: OptionModel[];\r\n   @Output() selectionChanged = new EventEmitter();\r\n   getOptionWithoutVariables = getOptionWithoutVariables;\r\n   selectedOptions: boolean[] = [];\r\n\r\n   public ngOnInit(): void {}\r\n   public publish() {\r\n      let result = '';\r\n      let cnt = 0;\r\n      for (const num of this.selectedOptions) {\r\n         if (num === true) {\r\n            result += cnt + ' ';\r\n         }\r\n         cnt++;\r\n      }\r\n      this.propagateChange(result);\r\n   }\r\n   public change() {\r\n      this.changeDet.detectChanges();\r\n      this.publish();\r\n      this.selectionChanged.emit();\r\n   }\r\n   public propagateChange = (_: any) => {};\r\n   public writeValue(inputValue: string) {\r\n      this.selectedOptions = [];\r\n      if (this.optionLabels) {\r\n         this.optionLabels.forEach((option) => {\r\n            this.selectedOptions.push(false);\r\n         });\r\n      }\r\n      if (inputValue) {\r\n         let numbers = inputValue.split(' ');\r\n         numbers.forEach((num) => {\r\n            let realNum = parseInt(num);\r\n            (this.optionLabels as any)[num] = true;\r\n         });\r\n      }\r\n   }\r\n   public validate(formControl: UntypedFormControl) {\r\n      return null;\r\n   }\r\n   public registerOnChange(fn: any) {\r\n      this.propagateChange = fn;\r\n   }\r\n   public registerOnTouched() {}\r\n}\r\n","@for (option of optionLabels; track option; let i = $index) {\r\n  <mat-checkbox [(ngModel)]=\"selectedOptions[i]\"\r\n    (change)=\"change()\"\r\n    color=\"primary\">\r\n    {{getOptionWithoutVariables(option.Value)}}\r\n  </mat-checkbox>\r\n  <br>\r\n  }\r\n","import { IDoesFilterPassParams, IFilterParams, IAfterGuiAttachedParams, RowNode } from 'ag-grid-community';\r\nimport { AgFilterComponent } from 'ag-grid-angular';\r\nimport { Component, OnInit } from '@angular/core';\r\nimport { OptionModel } from '../../models/option-model';\r\n\r\n@Component({\r\n    selector: 'app-ag-set-filter',\r\n    templateUrl: './ag-set-filter.component.html',\r\n    styleUrls: ['./ag-set-filter.component.scss'],\r\n    standalone: false\r\n})\r\nexport class AgSetFilterComponent implements AgFilterComponent {\r\n   selectOptions!: OptionModel[];\r\n   selection!: string;\r\n   private params!: IFilterParams;\r\n   private valueGetter!: (rowNode: RowNode) => any;\r\n\r\n   constructor() {}\r\n   public agInit(params: IFilterParams): void {\r\n      this.params = params;\r\n      this.selectOptions = (params as any).options;\r\n      this.refreshOptionSelection();\r\n      this.valueGetter = params.valueGetter as any;\r\n   }\r\n   private refreshOptionSelection() {}\r\n   public isFilterActive(): boolean {\r\n      if (!this.selection) {\r\n         return false;\r\n      }\r\n      return this.selection.length > 0;\r\n   }\r\n   public doesFilterPass(params: IDoesFilterPassParams): boolean {\r\n      return true;\r\n   }\r\n   public getModel() {\r\n      return this.selection;\r\n   }\r\n   public setModel(model: any): void {}\r\n   public onNewRowsLoaded?(): void {}\r\n   public onAnyFilterChanged(): void {\r\n      this.params.filterChangedCallback();\r\n   }\r\n   public getFrameworkComponentInstance?() {}\r\n   public getModelAsString?(model: any): string {\r\n      return this.getModel();\r\n   }\r\n   public afterGuiAttached?(params?: IAfterGuiAttachedParams): void {}\r\n}\r\n","<div class=\"bs-custom-filter-outer\">\r\n   <app-set-filter [optionLabels]=\"selectOptions\"\r\n                   (selectionChanged)=\"onAnyFilterChanged()\"\r\n                   [(ngModel)]=\"selection\">\r\n   </app-set-filter>\r\n</div>\r\n","import { isPlatformBrowser } from '@angular/common';\r\nimport {\r\n   ChangeDetectionStrategy,\r\n   Component,\r\n   EnvironmentInjector,\r\n   EventEmitter,\r\n   Input,\r\n   OnChanges,\r\n   OnInit,\r\n   Output,\r\n   PLATFORM_ID,\r\n   Signal,\r\n   WritableSignal,\r\n   inject,\r\n   runInInjectionContext,\r\n} from '@angular/core';\r\nimport { toObservable } from '@angular/core/rxjs-interop';\r\nimport { hasValidValue } from '@datahive/util-datahive';\r\nimport { ColDef, GridOptions, IRowNode, IsFullWidthRowParams } from 'ag-grid-community';\r\nimport { distinctUntilChanged } from 'rxjs';\r\nimport { AgMasterDetailControlCellRendererComponent } from '../ag-master-detail/ag-master-detail.cell-renderer-control.component';\r\nimport { DataHiveGridSelectionConfig } from '../configuration/datahive-grid-selection.config';\r\nimport { GridSelectionMode } from '../configuration/grid-selection-mode.enum';\r\nimport { AgBoolFilterComponent } from '../filters/ag-bool-filter/ag-bool-filter.component';\r\nimport { AgDateFilterComponent } from '../filters/ag-date-filter/ag-date-filter.component';\r\nimport { AgNoFilterComponent } from '../filters/ag-no-filter/ag-no-filter.component';\r\nimport { AgTextFilterComponent } from '../filters/ag-text-filter/ag-text-filter.component';\r\nimport { AgSetFilterComponent } from '../filters/ag-set-filter/ag-set-filter.component';\r\ninterface fullWidthCellRendererParams {\r\n   asyncData: any;\r\n   entity: any;\r\n}\r\n@Component({\r\n   selector: 'grouphive-grid',\r\n   templateUrl: './datahive-grid.component.html',\r\n   styles: `:host {width: 100%;height: 100%; display: block;}`,\r\n   changeDetection: ChangeDetectionStrategy.OnPush,\r\n   standalone: false,\r\n})\r\nexport class DatahiveGridComponent<PARENT_COMPONENT_TYPE> implements OnInit, OnChanges {\r\n   platformId = inject(PLATFORM_ID);\r\n\r\n   gridOptions?: GridOptions;\r\n   isPlatformBrowser = isPlatformBrowser;\r\n   @Input() selectionConfig!: DataHiveGridSelectionConfig;\r\n   @Input({ required: true }) colDefs: ColDef[] = [];\r\n   @Input() headline?: string;\r\n   @Input({ required: true }) gridData!: WritableSignal<any[]> | Signal<any[]>;\r\n   @Input() defaultRowHeight = 30;\r\n   @Input() sortable = true;\r\n   @Input() fullWidthRowComponent: unknown = null;\r\n   @Input({ required: true }) parentComponent!: PARENT_COMPONENT_TYPE;\r\n   @Input() expandResolverFn?: any;\r\n   @Input() identifierName = 'Id';\r\n   @Input() totals?: WritableSignal<number>;\r\n   @Input() setQuickFilterUsed = false;\r\n   @Input() getRowPictureFn?: (colData: any) => string;\r\n   @Output() gOptions = new EventEmitter<GridOptions>();\r\n\r\n   prerequisitesLoaded = false;\r\n   private environmentInjector = inject(EnvironmentInjector);\r\n   expandedIds: { [key: string]: boolean } = {};\r\n   heightMap: any = {};\r\n\r\n   cssId: string = 'datahive-grid' + Math.random().toString();\r\n   constructor() {\r\n      if (isPlatformBrowser(this.platformId)) {\r\n         this.clientConstructor();\r\n      }\r\n   }\r\n   clientConstructor() {\r\n      this.selectionConfig = {\r\n         selectionMode: GridSelectionMode.None,\r\n      };\r\n   }\r\n   ngOnInit(): void {\r\n      if (isPlatformBrowser(this.platformId)) {\r\n         this.clientNgOnInit();\r\n      }\r\n   }\r\n   ngOnChanges(changes: any): void {\r\n      if (!changes.colDefs?.currentValue) {\r\n         return;\r\n      }\r\n      let prevIds = [];\r\n      if (changes.colDefs?.previousValue) {\r\n         prevIds = changes.colDefs.previousValue.map((col: any) => col.headerName);\r\n      }\r\n      const currentIds = changes.colDefs.currentValue.map((col: any) => col.headerName);\r\n      if (JSON.stringify(prevIds) === JSON.stringify(currentIds)) {\r\n         return;\r\n      }\r\n      this.parentUpdatedColDefs();\r\n   }\r\n   parentUpdatedColDefs() {\r\n      this.upsertExpandColumn();\r\n      if (this.colDefs && this.colDefs?.length > 0) {\r\n         this.gridOptions?.api?.setColumnDefs(this.colDefs);\r\n      }\r\n   }\r\n   timeout: any;\r\n   clientNgOnInit() {\r\n      this.upsertExpandColumn();\r\n      this.setGridOptions();\r\n      runInInjectionContext(this.environmentInjector, () => {\r\n         const gridData$ = toObservable(this.gridData).pipe(\r\n            distinctUntilChanged((oldValue, newValue) => {\r\n               return JSON.stringify(oldValue) === JSON.stringify(newValue);\r\n            })\r\n         );\r\n         gridData$.subscribe((data) => {\r\n            this.expandedIds = {};\r\n            if (data.length === 1) {\r\n               if (this.timeout) {\r\n                  clearTimeout(this.timeout);\r\n               }\r\n               this.expandFirst(data[0]);\r\n            }\r\n            this.gridOptions?.api?.setRowData(data);\r\n         });\r\n      });\r\n      this.prerequisitesLoaded = true;\r\n   }\r\n   upsertExpandColumn() {\r\n      if (this.fullWidthRowComponent && this.colDefs) {\r\n         this.colDefs = this.colDefs.filter((col) => col.colId !== 'expandable_col');\r\n         this.colDefs.unshift(this.getExpandableColumn());\r\n      }\r\n   }\r\n   cellRendererRefs: any = {};\r\n   getExpandableColumn() {\r\n      return {\r\n         headerName: '',\r\n         field: '',\r\n         width: this.getRowPictureFn ? 80 : 30,\r\n         colId: 'expandable_col',\r\n         suppressMovable: true,\r\n         lockPinned: true,\r\n         suppressMenu: true,\r\n         sortable: false,\r\n         pinned: true,\r\n         resizable: false,\r\n         cellRenderer: AgMasterDetailControlCellRendererComponent,\r\n         cellRendererParams: {\r\n            onExpand: (this as DatahiveGridComponent<PARENT_COMPONENT_TYPE>).onExpand,\r\n            context: this as DatahiveGridComponent<PARENT_COMPONENT_TYPE>,\r\n            heightMap: (this as DatahiveGridComponent<PARENT_COMPONENT_TYPE>).heightMap,\r\n         },\r\n      } as ColDef;\r\n   }\r\n   setGridOptions() {\r\n      this.gridOptions = {\r\n         suppressRowClickSelection:\r\n            this.selectionConfig.selectionMode === GridSelectionMode.Cell ||\r\n            this.selectionConfig.selectionMode === GridSelectionMode.Range ||\r\n            this.selectionConfig.selectionMode === GridSelectionMode.None,\r\n         rowSelection: this.selectionConfig.selectionMode === GridSelectionMode.Multirow ? 'multiple' : 'single',\r\n         rowMultiSelectWithClick: true,\r\n         suppressMenuHide: true,\r\n         suppressCellFocus: true,\r\n         rowHeight: 32,\r\n         components: {\r\n            agTextFilter: AgTextFilterComponent,\r\n            agSetFilter: AgSetFilterComponent,\r\n            agNoFilter: AgNoFilterComponent,\r\n            agBoolFilter: AgBoolFilterComponent,\r\n            agDateFilter: AgDateFilterComponent,\r\n         },\r\n\r\n         onGridReady: () => {\r\n            this.gOptions.emit(this.gridOptions);\r\n         },\r\n         isFullWidthRow: this.isFullWidth,\r\n         getRowHeight: (params) => {\r\n            if (params.data.isFullWidth) {\r\n               if (this.heightMap) {\r\n                  const height = this.heightMap[params.data.Id];\r\n                  return height;\r\n               } else {\r\n                  return this.defaultRowHeight;\r\n               }\r\n            } else {\r\n               return this.defaultRowHeight;\r\n            }\r\n         },\r\n         fullWidthCellRenderer: this.fullWidthRowComponent,\r\n         fullWidthCellRendererParams: {\r\n            parentComp: this.parentComponent,\r\n         },\r\n         rowData: this.gridData(),\r\n         context: this,\r\n         columnDefs: this.colDefs,\r\n         defaultColDef: this.getDefaultColDefinition(),\r\n      } as GridOptions;\r\n   }\r\n   getDefaultColDefinition() {\r\n      return {\r\n         suppressMenu: false,\r\n         sortable: this.sortable,\r\n         resizable: true,\r\n         filter: 'agTextFilter',\r\n         menuTabs: ['filterMenuTab'],\r\n         getQuickFilterText: (_) => {\r\n            return '';\r\n         },\r\n      } as ColDef<any>;\r\n   }\r\n   async expandFirst(dtoEntity: any) {\r\n      if (this.cellRendererRefs[0]) {\r\n         this.cellRendererRefs[0].callOnExpand(null, dtoEntity, this, 0);\r\n      } else {\r\n         /** Sometimes the cell renderer is not rendered quick enough to add its own reference here. In this case try again after a second. */\r\n         setTimeout(() => {\r\n            if (this.cellRendererRefs[0]) {\r\n               this.cellRendererRefs[0].callOnExpand(null, dtoEntity, this, 0);\r\n            }\r\n         }, 1000);\r\n      }\r\n   }\r\n   async onExpand(data: any, id: number) {\r\n      const fullWidthCellRendererParams = {\r\n         entity: data,\r\n      } as fullWidthCellRendererParams;\r\n      if (!this.gridOptions) {\r\n         return;\r\n      }\r\n      await this.openMasterDetailRow(fullWidthCellRendererParams, id);\r\n   }\r\n\r\n   async openMasterDetailRow(data: fullWidthCellRendererParams, id: number) {\r\n      if (!this.gridOptions?.api) {\r\n         return;\r\n      }\r\n      const fullWidthRowCount = this.numberOfFullWidthRowsBeforeThisIndex(data.entity[this.identifierName], this.identifierName);\r\n\r\n      let indexOfNewPotentialFullWidthRow = id + 1;\r\n\r\n      indexOfNewPotentialFullWidthRow += fullWidthRowCount;\r\n\r\n      const fullWidthRowNode = this.gridOptions?.api?.getRowNode(id + '');\r\n      if (!fullWidthRowNode) {\r\n         return;\r\n      }\r\n\r\n      /** Is this row opened? */\r\n      if (this.isRowWithThisIndexFullWidth(id, this.identifierName)) {\r\n         const node = this.getFullWidthRowWithThisId(fullWidthRowNode.data[this.identifierName], this.identifierName);\r\n         this.closeRow(node?.data);\r\n      } else {\r\n         if (this.expandResolverFn) {\r\n            data.asyncData = await this.expandResolverFn(data.entity);\r\n         }\r\n         this.addFullWidthRow(indexOfNewPotentialFullWidthRow, data);\r\n      }\r\n   }\r\n   addFullWidthRow(indexOfNewRow: number, data: any) {\r\n      if (!this.gridOptions?.api) {\r\n         return;\r\n      }\r\n      const newObj = Object.assign(\r\n         {\r\n            isFullWidth: true,\r\n         },\r\n         data\r\n      );\r\n      newObj[this.identifierName] = data.entity[this.identifierName];\r\n      /** The quickfilter will filter out full width columns, if the data is not assigned on the root level. */\r\n      if (this.setQuickFilterUsed) {\r\n         Object.assign(newObj, data.entity);\r\n      }\r\n      const transaction = {\r\n         add: [newObj],\r\n         addIndex: indexOfNewRow,\r\n      };\r\n      setTimeout(() => {\r\n         this.gridOptions?.api?.applyTransaction(transaction);\r\n      }, 100);\r\n   }\r\n   closeRow(data: any) {\r\n      if (!this.gridOptions?.api || !data) {\r\n         return;\r\n      }\r\n\r\n      const transaction = {\r\n         remove: [data],\r\n      };\r\n      this.gridOptions?.api?.applyTransaction(transaction);\r\n   }\r\n   numberOfFullWidthRowsBeforeThisIndex(id: string, identifierName: string) {\r\n      if (!this.gridOptions?.api) {\r\n         return 0;\r\n      }\r\n\r\n      let numberOfRows = 0;\r\n      let countUp = true;\r\n      this.gridOptions?.api?.forEachNodeAfterFilterAndSort((node: IRowNode) => {\r\n         if (node.isFullWidthCell()) {\r\n            if (countUp === true) {\r\n               numberOfRows++;\r\n            }\r\n         }\r\n         if (node.data[identifierName] === id) {\r\n            countUp = false;\r\n         }\r\n      });\r\n      return numberOfRows;\r\n   }\r\n   getFullWidthRowWithThisId(id: string, identifierName: string) {\r\n      if (!this.gridOptions?.api) {\r\n         return;\r\n      }\r\n\r\n      let nodeToReturn: IRowNode<any> | undefined;\r\n      this.gridOptions?.api?.forEachNode((node: IRowNode) => {\r\n         if (node.isFullWidthCell()) {\r\n            if (node.data[identifierName] === id) {\r\n               nodeToReturn = node;\r\n            }\r\n         }\r\n      });\r\n      return nodeToReturn;\r\n   }\r\n   isRowWithThisIndexFullWidth(index: number, identifierName: string) {\r\n      if (!this.gridOptions?.api) {\r\n         return;\r\n      }\r\n\r\n      const node2 = this.gridOptions?.api?.getRowNode(index + '');\r\n      if (!node2) {\r\n         return false;\r\n      }\r\n\r\n      let cnt = 0;\r\n      this.gridOptions?.api?.forEachNode((node: IRowNode) => {\r\n         if (!hasValidValue(node.data[identifierName]) || hasValidValue(node2.data[identifierName])) {\r\n            // console.log('Error, problem with identifier of table');\r\n         }\r\n         if (node.data[identifierName] === node2.data[identifierName]) {\r\n            cnt++;\r\n         }\r\n      });\r\n      /** Two times, means the item with the same id exists two times => fullwidth row + normal row = 2 */\r\n      if (cnt === 2) {\r\n         return true;\r\n      }\r\n      return false;\r\n   }\r\n   isFullWidth(params: IsFullWidthRowParams): boolean {\r\n      if (params.rowNode && params.rowNode.data && params.rowNode.data.isFullWidth) {\r\n         return true;\r\n      }\r\n      return false;\r\n   }\r\n}\r\n","@if (isPlatformBrowser(platformId) && prerequisitesLoaded) {\r\n  @if (headline) {\r\n    <h3>{{ headline }}</h3>\r\n  }\r\n  <div class=\"relative w-full h-full\">\r\n    @if (totals) {\r\n      <div class=\"absolute left-14 top-3 text-xl z-10 font-bold\">Total: {{ totals() }}</div>\r\n    }\r\n    <ag-grid-angular class=\"w-full h-full\" [id]=\"cssId\" [gridOptions]=\"gridOptions\"></ag-grid-angular>\r\n  </div>\r\n}\r\n","import { Component } from '@angular/core';\r\nimport { hasValidValue } from '@datahive/util-datahive';\r\n\r\n@Component({\r\n    selector: 'grouphive-ag-date-cell-renderer',\r\n    templateUrl: './ag-date.cell-renderer.component.html',\r\n    standalone: false\r\n})\r\nexport class AgDateCellRendererComponent {\r\n   showTime: boolean = false;\r\n   multivalue: boolean = false;\r\n   value: any;\r\n   public agInit(params: any): void {\r\n      if (params && hasValidValue(params.value)) {\r\n         this.showTime = params.showTime;\r\n         this.value = params.value;\r\n      }\r\n   }\r\n}\r\n","@if (multivalue === false) {\r\n  <app-show-date-time [value]=\"value\" [showTime]=\"showTime\"> </app-show-date-time>\r\n}\r\n","// src/app/red-component/red-component.component.ts\r\nimport { Component } from '@angular/core';\r\n\r\n@Component({\r\n    selector: 'app-country-flags-ag',\r\n    templateUrl: './ag-country-flags.component.html',\r\n    styleUrls: ['./ag-country-flags.component.scss'],\r\n    standalone: false\r\n})\r\nexport class AgCounryFlagsCellRendererComponent {\r\n   countryCode: string = '';\r\n   countryName: string = '';\r\n   agInit(params: any): void {\r\n      if (params && params.value) {\r\n         /** Country code can be in brackets after the country name - but it can also be the raw value arriving here.\r\n          *  In products i.e. the former is true. For sites the second. */\r\n         var matches = params.value.match(/\\((.*?)\\)/);\r\n         if (matches) {\r\n            this.countryCode = matches[1];\r\n            this.countryName = params.value;\r\n         } else {\r\n            if (params.value) {\r\n               this.countryCode = params.value;\r\n               this.countryName = params.data.CountryName;\r\n            }\r\n         }\r\n         if (this.countryCode) {\r\n            this.countryCode = this.countryCode.toLowerCase();\r\n         }\r\n      }\r\n   }\r\n}\r\n","<div style=\"width: 500px\">\r\n  <div>\r\n    @if (countryCode) {\r\n      <img\r\n        [src]=\"'https://flagcdn.com/24x18/' + countryCode + '.png'\"\r\n        onerror=\"this.src='../../../../assets/img/general/flagerror.png';\"\r\n        style=\"float: left; margin-top: 5px\"\r\n        />\r\n    }\r\n  </div>\r\n  <div style=\"float: left; margin-top: -2px; margin-left: 9px\">\r\n    {{ countryName }}\r\n  </div>\r\n  <div style=\"clear: both\"></div>\r\n</div>\r\n","import { Component } from '@angular/core';\r\nimport { hasValidValue } from '@datahive/util-datahive';\r\nimport { UserActionVO } from '@datahive/util-m365';\r\n\r\n@Component({\r\n    selector: 'grouphive-ag-user-cell-renderer',\r\n    templateUrl: './ag-user.cell-renderer.component.html',\r\n    standalone: false\r\n})\r\nexport class AgUserCellRendererComponent {\r\n   user?: UserActionVO;\r\n   public agInit(params: any): void {\r\n      if (params && hasValidValue(params.value)) {\r\n         this.user = params.value;\r\n      }\r\n   }\r\n}\r\n","{{ user?.Name }}\r\n","import { Component } from '@angular/core';\r\nimport { hasValidValue } from '@datahive/util-datahive';\r\n\r\n@Component({\r\n    selector: 'app-yesno-ag',\r\n    templateUrl: './ag-yesno.component.html',\r\n    styleUrls: ['./ag-yesno.component.scss'],\r\n    standalone: false\r\n})\r\nexport class AgYesNoCellRendererComponent {\r\n   yesNo?: boolean;\r\n   agInit(params: any): void {\r\n      if (params && hasValidValue(params.value)) {\r\n         this.yesNo = params.value;\r\n      }\r\n   }\r\n}\r\n","<app-yes-no [value]=\"yesNo\"></app-yes-no>\r\n","import { IAfterGuiAttachedParams, IHeaderParams } from 'ag-grid-community';\r\nimport { IHeaderAngularComp } from 'ag-grid-angular';\r\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, OnInit, ViewChild, inject } from '@angular/core';\r\n\r\n@Component({\r\n    selector: 'grouphive-ghheader-component',\r\n    templateUrl: './ghheader-component.component.html',\r\n    styleUrls: ['./ghheader-component.component.scss'],\r\n    changeDetection: ChangeDetectionStrategy.OnPush,\r\n    standalone: false\r\n})\r\nexport class GHHeaderComponentComponent implements IHeaderAngularComp {\r\n   private changeDetec = inject(ChangeDetectorRef);\r\n\r\n   public params: any;\r\n   public ascSortActive: boolean = false;\r\n   public descSortActive: boolean = false;\r\n\r\n   public ascSort!: string;\r\n   public descSort!: string;\r\n   public noSort!: string;\r\n   public columnId!: string;\r\n   public context!: any;\r\n   public parentComponent: any;\r\n   public sortCallback: any;\r\n   public isValidColumn: boolean = true;\r\n   @ViewChild('menuButton', { read: ElementRef }) public menuButton: any;\r\n   public agInit(params: IHeaderParams): void {\r\n      this.params = params;\r\n      this.columnId = this.params.column.colId;\r\n      this.context = params.context;\r\n      this.parentComponent = params.context.parentComponent;\r\n      this.sortCallback = (params as any).sortCallback;\r\n      if (this.params.column.colId === 'expandableColumn') {\r\n         this.isValidColumn = false;\r\n      }\r\n   }\r\n\r\n   public onMenuClicked() {\r\n      this.params.showColumnMenu(this.menuButton.nativeElement);\r\n   }\r\n   interval: any;\r\n   public onSortRequested(order: string, event: any) {\r\n      this.sortCallback(this.params.context, order, this.params.column.colId, this.params.column.colDef);\r\n\r\n      setTimeout(() => {\r\n         this.checkIfSortStillActive();\r\n      }, 0);\r\n      clearInterval(this.interval);\r\n      this.interval = setInterval(() => {\r\n         this.checkIfSortStillActive();\r\n      }, 4000);\r\n   }\r\n   private checkIfSortStillActive() {\r\n      const sortModel = this.parentComponent.searchApiModel.SortModel;\r\n      if (sortModel) {\r\n         if (sortModel[this.columnId] === 'desc') {\r\n            this.descSortActive = true;\r\n            this.ascSortActive = false;\r\n         } else {\r\n            this.descSortActive = false;\r\n         }\r\n         if (sortModel[this.columnId] === 'asc') {\r\n            this.descSortActive = false;\r\n            this.ascSortActive = true;\r\n         } else {\r\n            this.ascSortActive = false;\r\n         }\r\n      }\r\n      this.changeDetec.detectChanges();\r\n   }\r\n   refresh(params: IHeaderParams): boolean {\r\n      return true;\r\n   }\r\n   afterGuiAttached?(params?: IAfterGuiAttachedParams): void {}\r\n}\r\n","@if (isValidColumn) {\r\n  <div class=\"flex\">\r\n    <div class=\"customHeaderLabel\">{{ params.displayName }}</div>\r\n    @if (params.enableSorting) {\r\n      <div\r\n        (click)=\"onSortRequested('asc', $event)\"\r\n        [ngClass]=\"ascSort\"\r\n        matTooltip=\"Sort ascending\"\r\n        class=\"customSortDownLabel\"\r\n        >\r\n        <i\r\n          class=\"text-sm bs-icon-arrow-circle-down cursor-pointer hover:text-blue-900\"\r\n          [style.color]=\"ascSortActive ? 'red' : 'black'\"\r\n        ></i>\r\n      </div>\r\n    }\r\n    @if (params.enableSorting) {\r\n      <div\r\n        (click)=\"onSortRequested('desc', $event)\"\r\n        [ngClass]=\"descSort\"\r\n        matTooltip=\"Sort descending\"\r\n        class=\"customSortUpLabel\"\r\n        >\r\n        <i\r\n          class=\"text-sm bs-icon-arrow-circle-up cursor-pointer hover:text-blue-900\"\r\n          [style.color]=\"descSortActive ? 'red' : 'black'\"\r\n        ></i>\r\n      </div>\r\n    }\r\n    @if (params.enableSorting) {\r\n      <div\r\n        (click)=\"onSortRequested('', $event)\"\r\n        [ngClass]=\"noSort\"\r\n        matTooltip=\"Disable sort\"\r\n        class=\"customSortRemoveLabel\"\r\n        >\r\n        <i class=\"text-sm bs-icon-times cursor-pointer hover:text-blue-900\"></i>\r\n      </div>\r\n    }\r\n    @if (params.enableMenu) {\r\n      <div #menuButton class=\"customHeaderMenuButton\" (click)=\"onMenuClicked()\">\r\n        <i class=\"bs-icon-small bs-icon-search\"></i>\r\n      </div>\r\n    }\r\n    <!-- <div *ngIf=\"params.enableMenu\" #menuButton class=\"customHeaderMenuButton\" (click)=\"onMenuClicked($event)\"><i class=\"bs-icon-small bs-icon-search\"></i></div>    -->\r\n  </div>\r\n}\r\n","import { Component } from '@angular/core';\r\nimport { hasValidValue } from '@datahive/util-datahive';\r\n\r\n@Component({\r\n    selector: 'grouphive-ag-date-as-cw-cell-renderer',\r\n    templateUrl: './ag-date-as-cw.cell-renderer.component.html',\r\n    standalone: false\r\n})\r\nexport class AgDateAsCWCellRendererComponent {\r\n   showTime: boolean = false;\r\n   multivalue: boolean = false;\r\n   value: any;\r\n   public agInit(params: any): void {\r\n      if (params && hasValidValue(params.value)) {\r\n         this.showTime = params.showTime;\r\n         this.value = params.value;\r\n      }\r\n   }\r\n}\r\n","@if (multivalue === false) {\r\n  <app-date-as-cw [value]=\"value\"></app-date-as-cw>\r\n}\r\n","import { Component } from '@angular/core';\r\nimport { hasValidValue } from '@datahive/util-datahive';\r\nimport { EntraIdTrace } from '@datahive/util-m365';\r\n\r\n@Component({\r\n    selector: 'grouphive-ag-entra-id-trace-cell-renderer',\r\n    templateUrl: './ag-entra-id-trace.cell-renderer.component.html',\r\n    standalone: false\r\n})\r\nexport class AgEntraIdTraceCellRendererComponent {\r\n   user?: EntraIdTrace;\r\n   public agInit(params: any): void {\r\n      if (params && hasValidValue(params.value)) {\r\n         this.user = params.value;\r\n      }\r\n   }\r\n}\r\n","{{ user?.FirstName }} {{ user?.LastName }}\r\n","import { Component, TemplateRef } from '@angular/core';\r\nimport { ICellRendererAngularComp } from 'ag-grid-angular';\r\nimport { ICellRendererParams } from 'ag-grid-community';\r\n\r\n@Component({\r\n    selector: 'app-template-renderer',\r\n    template: ` <ng-container *ngTemplateOutlet=\"template; context: templateContext\"></ng-container> `,\r\n    standalone: false\r\n})\r\nexport class TemplateRendererComponent implements ICellRendererAngularComp {\r\n   template!: TemplateRef<any>;\r\n   templateContext!: { $implicit: any; params: any };\r\n\r\n   refresh(params: any): boolean {\r\n      this.templateContext = {\r\n         $implicit: params.data,\r\n         params: params,\r\n      };\r\n      return true;\r\n   }\r\n\r\n   agInit(params: ICellRendererParams): void {\r\n      this.template = (params as any)['ngTemplate'];\r\n      this.refresh(params);\r\n   }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { AgMasterDetailControlCellRendererComponent } from './ag-master-detail/ag-master-detail.cell-renderer-control.component';\r\nimport { DatahiveGridComponent } from './datahive-grid/datahive-grid.component';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AgGridModule } from 'ag-grid-angular';\r\nimport { UiDataHiveModule } from '@datahive/ui-datahive';\r\nimport { AgDateCellRendererComponent } from './cell-renderers/ag-date/ag-date.cell-renderer.component';\r\nimport { AgCounryFlagsCellRendererComponent } from './cell-renderers/ag-country-flags/ag-country-flags.component';\r\nimport { AgUserCellRendererComponent } from './cell-renderers/ag-user/ag-user.cell-renderer.component';\r\nimport { AgBoolFilterComponent } from './filters/ag-bool-filter/ag-bool-filter.component';\r\nimport { AgDateFilterComponent } from './filters/ag-date-filter/ag-date-filter.component';\r\nimport { AgNoFilterComponent } from './filters/ag-no-filter/ag-no-filter.component';\r\nimport { AgTextFilterComponent } from './filters/ag-text-filter/ag-text-filter.component';\r\nimport { MatCheckboxModule } from '@angular/material/checkbox';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { AgYesNoCellRendererComponent } from './cell-renderers/ag-yesno/ag-yesno.component';\r\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\r\nimport { GHHeaderComponentComponent } from './ghheader-component/ghheader-component.component';\r\nimport { AgDateAsCWCellRendererComponent } from './cell-renderers/ag-date-as-cw/ag-date-as-cw.cell-renderer.component';\r\nimport { AgEntraIdTraceCellRendererComponent } from './cell-renderers/ag-entra-id-trace/ag-entra-id-trace.cell-renderer.component';\r\nimport { TemplateRendererComponent } from './cell-renderers/ag-template/ag-template.cell-renderer';\r\nimport { SetFilterComponent } from './filters/set-filter/set-filter.component';\r\nimport { AgSetFilterComponent } from './filters/ag-set-filter/ag-set-filter.component';\r\n\r\n@NgModule({\r\n   imports: [AgGridModule, CommonModule, MatCheckboxModule, FormsModule, MatProgressSpinnerModule, UiDataHiveModule],\r\n   declarations: [\r\n      AgMasterDetailControlCellRendererComponent,\r\n      AgDateCellRendererComponent,\r\n      DatahiveGridComponent,\r\n\r\n      GHHeaderComponentComponent,\r\n      SetFilterComponent,\r\n      AgSetFilterComponent,\r\n\r\n      /** Cell renderers */\r\n      AgUserCellRendererComponent,\r\n      AgDateCellRendererComponent,\r\n      AgCounryFlagsCellRendererComponent,\r\n      AgYesNoCellRendererComponent,\r\n      AgDateAsCWCellRendererComponent,\r\n      AgEntraIdTraceCellRendererComponent,\r\n      TemplateRendererComponent,\r\n\r\n      /** Filters */\r\n      AgBoolFilterComponent,\r\n      AgDateFilterComponent,\r\n      AgNoFilterComponent,\r\n      AgTextFilterComponent,\r\n   ],\r\n   exports: [\r\n      DatahiveGridComponent,\r\n      SetFilterComponent,\r\n\r\n      /** Cell renderers */\r\n      AgUserCellRendererComponent,\r\n      AgDateCellRendererComponent,\r\n      AgCounryFlagsCellRendererComponent,\r\n      AgYesNoCellRendererComponent,\r\n      AgEntraIdTraceCellRendererComponent,\r\n      TemplateRendererComponent,\r\n\r\n      GHHeaderComponentComponent,\r\n      /** Filters */\r\n      AgBoolFilterComponent,\r\n      AgDateFilterComponent,\r\n      AgNoFilterComponent,\r\n      AgTextFilterComponent,\r\n   ],\r\n})\r\nexport class DataHiveGridModule {}\r\n","import { DataHiveCellRenderer } from '../contracts/cell-renderer';\r\n\r\nexport class FullWidthCellRendererBaseComponent<ParentComponentType> implements DataHiveCellRenderer<ParentComponentType> {\r\n   parentComponent!: ParentComponentType;\r\n   context: any;\r\n   data: any;\r\n   randomId: any;\r\n   heightMap: any;\r\n   id: string;\r\n\r\n   constructor() {\r\n      this.parentComponent;\r\n      this.id = '-1';\r\n      this.randomId = 'iden' + Math.random() * 20;\r\n   }\r\n   agInit(params: any): void {\r\n      if (params && params.data) {\r\n         this.data = params.data;\r\n         this.parentComponent = params.parentComp;\r\n         this.context = params.context;\r\n         this.heightMap = params.context.heightMap;\r\n         this.id = params.data.Id;\r\n         //Div not rendered yet, so wait one change dection cycle\r\n         setTimeout(() => {\r\n            this.heightMap[this.id] = this.getHeight();\r\n            this.context.gridOptions.api.resetRowHeights();\r\n         }, 0);\r\n         setTimeout(() => {\r\n            this.resetHeightTo100AfterHeightMapHasCorrectValue();\r\n         }, 1000);\r\n      }\r\n   }\r\n   getHeight() {\r\n      const target = document.getElementById(this.randomId);\r\n      if (target) {\r\n         return target.clientHeight;\r\n      } else {\r\n         return 200;\r\n      }\r\n   }\r\n   /* This function updates the height of the wrapper to 100%. Usually the wrapper has a calculated height that is transferred through the\r\n   heighmap to the grid to tell how high the full width column should be. After this \"heigthmap\" exists, the heighth should be 100% of this.\r\n   If the user changes the view (ie selects another tab), a scrollbar should appear because the contents of other tabs will have other heights than the default tab */\r\n   resetHeightTo100AfterHeightMapHasCorrectValue() {\r\n      const target = document.getElementById(this.randomId);\r\n      if (target) {\r\n         target.style.height = '100%';\r\n      }\r\n   }\r\n}\r\n","/// Comparator gets v1 and v2 as formatted date time string and returns 0\r\n/// if both dates are equal, 1 if v1 is bigger than v2 and -1 if v1 is smaller than v2\r\nexport function dateTimeComparator(v1: string, v2: string) {\r\n   return 0;\r\n\r\n   // const dateTime1 = v1.split(' - ');\r\n   // const dateTime2 = v2.split(' - ');\r\n   // if (dateTime1.length === 2 && dateTime2.length === 2) {\r\n   //    const parts1 = dateTime1[0].split('.');\r\n   //    const parts2 = dateTime2[0].split('.');\r\n   //    const time1 = dateTime1[1].split(':');\r\n   //    const time2 = dateTime2[1].split(':');\r\n   //    if (time1.length === 2 && time2.length === 2) {\r\n   //       // Please pay attention to the month (parts[1]); JavaScript counts months from 0\r\n   //       const date1 = new Date(parts1[2], parts1[1] - 1, parts1[0]);\r\n   //       const date2 = new Date(parts2[2], parts2[1] - 1, parts2[0]);\r\n   //       date1.setHours(time1[0]);\r\n   //       date1.setMinutes(time1[1]);\r\n   //       date2.setHours(time2[0]);\r\n   //       date2.setMinutes(time2[1]);\r\n   //       let result = 0;\r\n   //       if (date1 < date2) {\r\n   //          result = -1;\r\n   //       } else if (date1 > date2) {\r\n   //          result = 1;\r\n   //       }\r\n   //       return result;\r\n   //    } else if (time1.length === 2 && time2.length !== 2) {\r\n   //       return -1;\r\n   //    } else if (time2.length === 2 && time1.length !== 2) {\r\n   //       return 1;\r\n   //    } else {\r\n   //       return 0;\r\n   //    }\r\n   // } else if (dateTime1.length !== 2 && dateTime2.length === 2) {\r\n   //    return -1;\r\n   // } else if (dateTime2.length !== 2 && dateTime1.length === 2) {\r\n   //    return 1;\r\n   // } else {\r\n   //    return 0;\r\n   // }\r\n}\r\n/// Comparator gets v1 and v2 as formatted date string and returns 0 if both dates\r\n/// are equal, 1 if v1 is bigger than v2 and -1 if v1 is smaller than v2\r\nexport function dateComparator(v1: string, v2: string) {\r\n   return 0;\r\n   // const parts1 = v1.split('.');\r\n   // const parts2 = v2.split('.');\r\n   // if (parts1.length === 3 && parts2.length === 3) {\r\n   //    // Please pay attention to the month (parts[1]); JavaScript counts months from 0\r\n   //    const date1 = new Date(parts1[2], parts1[1] - 1, parts1[0]);\r\n   //    const date2 = new Date(parts2[2], parts2[1] - 1, parts2[0]);\r\n   //    let result = 0;\r\n   //    if (date1 < date2) {\r\n   //       result = -1;\r\n   //    } else if (date1 > date2) {\r\n   //       result = 1;\r\n   //    }\r\n   //    return result;\r\n   // } else if (parts1.length !== 3 && parts2.length === 3) {\r\n   //    return -1;\r\n   // } else if (parts2.length !== 3 && parts1.length === 3) {\r\n   //    return 1;\r\n   // } else {\r\n   //    return 0;\r\n   // }\r\n}\r\n","import { AgEntraIdTraceCellRendererComponent } from '@datahive/util-m365';\r\nimport { AgDateCellRendererComponent } from './cell-renderers/ag-date/ag-date.cell-renderer.component';\r\nimport { AgUserCellRendererComponent } from './cell-renderers/ag-user/ag-user.cell-renderer.component';\r\nimport { dateTimeComparator } from './comparators';\r\n\r\nfunction getDefaultColDefinition() {\r\n   return {\r\n      suppressToolPanel: true,\r\n      suppressMenu: true,\r\n      sortable: true,\r\n      resizable: true,\r\n      filter: 'agTextFilter',\r\n      menuTabs: ['generalMenuTab', 'filterMenuTab'],\r\n      getQuickFilterText: null,\r\n   };\r\n}\r\nexport function getDetailColumn() {\r\n   return {\r\n      headerName: 'Details',\r\n      id: '0000', // Id is here because sometimes I want to find this column to remove it (switching between supliers and customers for example.)\r\n      children: getDetailArray(),\r\n   };\r\n}\r\nexport function getDetailColumns() {\r\n   return {\r\n      headerName: 'Details',\r\n      id: '0000',\r\n      children: getDetailColDefs(),\r\n   };\r\n}\r\nexport function getDetailArray() {\r\n   return [\r\n      {\r\n         headerName: 'Created',\r\n         field: 'CreatedDate',\r\n         cellRenderer: AgDateCellRendererComponent,\r\n         cellRendererParams: { showTime: true },\r\n         comparator: dateTimeComparator,\r\n         filter: 'agDateFilter',\r\n         width: 200,\r\n      },\r\n      {\r\n         headerName: 'Created by',\r\n         field: 'CreatedBy',\r\n         width: 200,\r\n         filter: null,\r\n         cellRenderer: AgUserCellRendererComponent,\r\n      },\r\n      {\r\n         headerName: 'Modified',\r\n         field: 'ModifiedDate',\r\n         cellRenderer: AgDateCellRendererComponent,\r\n         cellRendererParams: { showTime: true },\r\n         comparator: dateTimeComparator,\r\n         width: 200,\r\n         filter: 'agDateFilter',\r\n      },\r\n      {\r\n         headerName: 'Modified by',\r\n         field: 'ModifiedBy',\r\n         width: 200,\r\n         filter: null,\r\n         cellRenderer: AgUserCellRendererComponent,\r\n      },\r\n   ];\r\n}\r\nfunction getDetailColDefs() {\r\n   return [\r\n      {\r\n         headerName: 'Created',\r\n         field: 'CreatedDate',\r\n         cellRenderer: AgDateCellRendererComponent,\r\n         cellRendererParams: { showTime: true },\r\n         comparator: dateTimeComparator,\r\n         filter: 'agDateFilter',\r\n         width: 200,\r\n      },\r\n      {\r\n         headerName: 'Created by',\r\n         field: 'CreatedBy',\r\n         width: 200,\r\n         filter: null,\r\n         cellRenderer: AgEntraIdTraceCellRendererComponent,\r\n      },\r\n      {\r\n         headerName: 'Modified',\r\n         field: 'ModifiedDate',\r\n         cellRenderer: AgDateCellRendererComponent,\r\n         cellRendererParams: { showTime: true },\r\n         comparator: dateTimeComparator,\r\n         width: 200,\r\n         filter: 'agDateFilter',\r\n      },\r\n      {\r\n         headerName: 'Modified by',\r\n         field: 'ModifiedBy',\r\n         width: 200,\r\n         filter: null,\r\n         cellRenderer: AgEntraIdTraceCellRendererComponent,\r\n      },\r\n   ];\r\n}\r\n","import { CellMouseDownEvent, ColumnState, GridOptions } from 'ag-grid-community';\r\nimport { Injectable } from '@angular/core';\r\nimport { getNiceValueForExport, hasValidValue } from '@datahive/util-datahive';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class TableSelectionService {\r\n   selectionCoordinates: Selection | null = null;\r\n   selectionStarted = false;\r\n   selectionEnabled = false;\r\n   rangeSelectionEnabled = false;\r\n   selectionAvoidFirstColumn = true;\r\n   selectedGridData: any = {};\r\n   isRightBottomSelection = false;\r\n   isRightTopSelection = false;\r\n   isLeftBottomSelection = false;\r\n   isLeftTopSelection = false;\r\n   domCache: any;\r\n\r\n   public globalMouseUpEventListener() {\r\n      /** Mouse up event has to take place AFTER a potential mouse down - this does only work with a timeout.\r\n       *  I cannot explain why, but this fixes a bug:\r\n       *\r\n       *  - Starting range selection\r\n       *  - Clicking somewhere else\r\n       *  - Clicking inside the range => Bug, range \"sticks\" to the mouse.\r\n       */\r\n      setTimeout(() => {\r\n         this.selectionStarted = false;\r\n         this.domCache = {};\r\n      }, 0);\r\n   }\r\n   public appendListenersToGridOptions(gridOptions: GridOptions) {\r\n      gridOptions.onCellMouseDown = (p) => {\r\n         if (this.selectionEnabled === false) {\r\n            return;\r\n         }\r\n         this.detectCopyTable(gridOptions);\r\n         this.selectionStarted = true;\r\n         if (this.selectionCoordinates) {\r\n            this.selectionCoordinates = null;\r\n            this.detectSelection(gridOptions);\r\n         }\r\n         const coordinates = this.getCoordinates(p);\r\n         this.selectionCoordinates = {\r\n            rowYStart: coordinates.y,\r\n            rowXStart: coordinates.x,\r\n            rowYEnd: coordinates.y,\r\n            rowXEnd: coordinates.x,\r\n         };\r\n         this.detectSelection(gridOptions);\r\n      };\r\n      gridOptions.onCellMouseOver = (p) => {\r\n         const coordinates = this.getCoordinates(p);\r\n         if (this.rangeSelectionEnabled === false) {\r\n            return;\r\n         }\r\n         if (!this.selectionCoordinates || this.selectionStarted == false) {\r\n            return;\r\n         }\r\n         this.selectionCoordinates = {\r\n            rowYStart: this.selectionCoordinates.rowYStart,\r\n            rowXStart: this.selectionCoordinates.rowXStart,\r\n            rowYEnd: coordinates.y,\r\n            rowXEnd: coordinates.x,\r\n         };\r\n         this.detectSelection(gridOptions);\r\n      };\r\n   }\r\n   public fillSelectedGrid(value: string, xPos: number, yPos: number) {\r\n      if (!this.selectedGridData[xPos]) {\r\n         this.selectedGridData[xPos] = {};\r\n      }\r\n      this.selectedGridData[xPos][yPos] = value;\r\n   }\r\n   public copySelection(gridOptions: GridOptions) {\r\n      if (!gridOptions.columnApi || !this.selectionCoordinates) {\r\n         return;\r\n      }\r\n      const table = document.createElement('table');\r\n      table.setAttribute('id', 'clipboard_table');\r\n      let valueCount = 0;\r\n      let singleValue = '';\r\n      const cols = gridOptions.columnApi.getColumnState();\r\n      for (let y = this.selectionCoordinates.rowYStart; y <= this.selectionCoordinates.rowYEnd; y++) {\r\n         const row = document.createElement('tr');\r\n         for (let x = this.selectionCoordinates.rowXStart; x <= this.selectionCoordinates.rowXEnd; x++) {\r\n            const td = document.createElement('td');\r\n            singleValue = getNiceValueForExport(this.selectedGridData[x][y]);\r\n            td.innerText = singleValue;\r\n            const elem = this.getGridCellAsHtmlElement(y, cols[x].colId);\r\n            this.addClassToHtmLElement(elem, 'copied-ag-cell');\r\n            setTimeout(() => {\r\n               this.removeClassFromHtmLElement(elem, 'copied-ag-cell');\r\n            }, 1000);\r\n            row.appendChild(td);\r\n            valueCount++;\r\n         }\r\n         table.appendChild(row);\r\n      }\r\n      if (valueCount === 1) {\r\n         /** Single value */\r\n         copySingleValueToClipboard(singleValue);\r\n      } else {\r\n         /** Range */\r\n         document.getElementsByTagName('body')[0].appendChild(table);\r\n         this.copyToClipboard();\r\n         const elem = document.getElementById('clipboard_table');\r\n         if (elem && elem.parentNode) {\r\n            elem.parentNode.removeChild(elem);\r\n         }\r\n      }\r\n   }\r\n   public copyToClipboard() {\r\n      const tab = document.getElementById('clipboard_table');\r\n      const body = document.body;\r\n      let range: any;\r\n      let sel: any;\r\n      if (document.createRange && window.getSelection) {\r\n         range = document.createRange();\r\n         sel = window.getSelection();\r\n         sel.removeAllRanges();\r\n         try {\r\n            range.selectNodeContents(tab);\r\n            sel.addRange(range);\r\n         } catch (e) {\r\n            range.selectNode(tab);\r\n            sel.addRange(range);\r\n         }\r\n      } else if ((body as any).createTextRange) {\r\n         range = (body as any).createTextRange();\r\n         range.moveToElementText(tab);\r\n         range.select();\r\n      }\r\n      document.execCommand('Copy');\r\n   }\r\n   public getCoordinates(cellEvent: CellMouseDownEvent) {\r\n      const colId = (cellEvent.column as any).colId;\r\n      const coordinates = { x: 0, y: cellEvent.node.rowIndex ? cellEvent.node.rowIndex : 0 };\r\n      const state = cellEvent.columnApi.getColumnState();\r\n      let cnt = 0;\r\n      for (const sta of state) {\r\n         if (sta.colId === colId) {\r\n            coordinates.x = cnt;\r\n            break;\r\n         }\r\n         cnt++;\r\n      }\r\n      return coordinates;\r\n   }\r\n   public getCoordinatesByNode(colId: string, rowIndex: number, columnState: ColumnState[]) {\r\n      const coordinates = { x: 0, y: rowIndex };\r\n      let cnt = 0;\r\n      for (const sta of columnState) {\r\n         if (sta.colId === colId) {\r\n            coordinates.x = cnt;\r\n            break;\r\n         }\r\n         cnt++;\r\n      }\r\n      return coordinates;\r\n   }\r\n   private getGridCellAsHtmlElement(rowIndex: number, colId: string) {\r\n      if (!this.domCache) {\r\n         this.domCache = {};\r\n      }\r\n      if (!this.domCache[rowIndex]) {\r\n         this.domCache[rowIndex] = {};\r\n      } else {\r\n         if (this.domCache[rowIndex][colId]) {\r\n            return this.domCache[rowIndex][colId];\r\n         }\r\n      }\r\n      const rows = document.querySelectorAll(`[row-index=\"${rowIndex}\"]`);\r\n      if (rows.length === 0) {\r\n         return null;\r\n      }\r\n      let currentRow;\r\n      for (const r of rows as any) {\r\n         if (r.children.length > 1) {\r\n            currentRow = r;\r\n         }\r\n      }\r\n      if (!currentRow) {\r\n         return null;\r\n      }\r\n      const cells = currentRow.children;\r\n      let htmlElement;\r\n      for (const cell of cells) {\r\n         if (cell.getAttribute('col-id') === colId) {\r\n            htmlElement = cell;\r\n         }\r\n      }\r\n      this.domCache[rowIndex][colId] = htmlElement;\r\n      return htmlElement;\r\n   }\r\n   private addClassToHtmLElement(element: HTMLElement, addedClass: string) {\r\n      const currentClass = element.getAttribute('class');\r\n      element.setAttribute('class', currentClass + ' ' + addedClass);\r\n   }\r\n   private removeClassFromHtmLElement(element: HTMLElement, classToBeRemoved: string) {\r\n      let currentClass = element.getAttribute('class');\r\n      if (currentClass) {\r\n         currentClass = currentClass.replace(classToBeRemoved, '');\r\n         element.setAttribute('class', currentClass);\r\n      }\r\n   }\r\n   public detectCopyTable(gridOptions: GridOptions) {\r\n      const sel = this;\r\n      // const agGrids = document.getElementsByTagName('grouphive-grid');\r\n      // const agGrid = agGrids[0] as any;\r\n      window.addEventListener(\r\n         'keydown',\r\n         function (e: any) {\r\n            (e as any) = e || window.event;\r\n            const key = (e as any).which || (e as any).keyCode; // keyCode detection\r\n            const ctrl = (e as any).ctrlKey ? (e as any).ctrlKey : key === 17 ? true : false; // ctrl detection\r\n            if (key == 67 && ctrl) {\r\n               if (sel.selectionCoordinates) {\r\n                  sel.copySelection(gridOptions);\r\n               }\r\n            }\r\n         },\r\n         false\r\n      );\r\n   }\r\n   public detectSelection(gridOptions: GridOptions) {\r\n      if (!gridOptions || !gridOptions.columnApi || !this.selectionCoordinates || !gridOptions.api) {\r\n         return;\r\n      }\r\n      this.selectionAvoidFirstColumn = true;\r\n      const nodes = gridOptions.api.getRenderedNodes();\r\n      const cols = gridOptions.columnApi\r\n         .getAllDisplayedVirtualColumns()\r\n         .map((c) => ({ colId: (c as any).colId, field: (c as any).colDef.field }));\r\n      const cols2 = gridOptions.columnApi.getAllDisplayedVirtualColumns();\r\n      const allCols = gridOptions.columnApi.getColumnState();\r\n      for (const node of nodes) {\r\n         for (const c of cols) {\r\n            if (!hasValidValue(node.rowIndex)) {\r\n               continue;\r\n            }\r\n            if (this.selectionAvoidFirstColumn === true) {\r\n               this.selectionAvoidFirstColumn = false;\r\n               continue;\r\n            }\r\n            const coordinates = this.getCoordinatesByNode(c.colId, node.rowIndex!, allCols);\r\n            const isInRange = this.isInSelectedRange(coordinates.x, coordinates.y);\r\n            const gridCellHtml = this.getGridCellAsHtmlElement(node.rowIndex!, c.colId);\r\n            if (!gridCellHtml) {\r\n               continue;\r\n            }\r\n            this.removeClassFromHtmLElement(gridCellHtml, 'selected-ag-cell');\r\n            this.removeAllBorderClasses(gridCellHtml);\r\n            if (isInRange === true) {\r\n               const borderClass = this.defineBorders(coordinates.x, coordinates.y);\r\n               this.addClassToHtmLElement(gridCellHtml, 'selected-ag-cell ' + borderClass);\r\n               let result;\r\n               let array = c.colId.split('.');\r\n               if (c.field) {\r\n                  array = c.field.split('.');\r\n               }\r\n               for (const ar of array) {\r\n                  if (!result) {\r\n                     result = node.data[ar];\r\n                     continue;\r\n                  }\r\n                  if (hasValidValue(result)) {\r\n                     result = result[ar];\r\n                  } else {\r\n                     break;\r\n                  }\r\n               }\r\n               this.fillSelectedGrid(result, coordinates.x, coordinates.y);\r\n            }\r\n         }\r\n      }\r\n   }\r\n   private removeAllBorderClasses(gridCellHtml: any) {\r\n      this.removeClassFromHtmLElement(gridCellHtml, 'ag-cell-left-border');\r\n      this.removeClassFromHtmLElement(gridCellHtml, 'ag-cell-top-border');\r\n      this.removeClassFromHtmLElement(gridCellHtml, 'ag-cell-right-border');\r\n      this.removeClassFromHtmLElement(gridCellHtml, 'ag-cell-bottom-border');\r\n   }\r\n   private isInSelectedRange(rowX: number, rowY: number) {\r\n      if (!this.selectionCoordinates) {\r\n         return;\r\n      }\r\n      this.disableAllDirectionSelectors();\r\n      if (\r\n         rowY >= this.selectionCoordinates.rowYStart &&\r\n         rowY <= this.selectionCoordinates.rowYEnd &&\r\n         rowX >= this.selectionCoordinates.rowXStart &&\r\n         rowX <= this.selectionCoordinates.rowXEnd\r\n      ) {\r\n         this.isRightBottomSelection = true;\r\n         return true;\r\n      }\r\n      if (\r\n         rowY <= this.selectionCoordinates.rowYStart &&\r\n         rowY >= this.selectionCoordinates.rowYEnd &&\r\n         rowX <= this.selectionCoordinates.rowXStart &&\r\n         rowX >= this.selectionCoordinates.rowXEnd\r\n      ) {\r\n         this.isLeftTopSelection = true;\r\n         return true;\r\n      }\r\n      if (\r\n         rowY <= this.selectionCoordinates.rowYStart &&\r\n         rowY >= this.selectionCoordinates.rowYEnd &&\r\n         rowX >= this.selectionCoordinates.rowXStart &&\r\n         rowX <= this.selectionCoordinates.rowXEnd\r\n      ) {\r\n         this.isRightTopSelection = true;\r\n         return true;\r\n      }\r\n      if (\r\n         rowY >= this.selectionCoordinates.rowYStart &&\r\n         rowY <= this.selectionCoordinates.rowYEnd &&\r\n         rowX <= this.selectionCoordinates.rowXStart &&\r\n         rowX >= this.selectionCoordinates.rowXEnd\r\n      ) {\r\n         this.isLeftBottomSelection = true;\r\n         return true;\r\n      }\r\n      return false;\r\n   }\r\n   private disableAllDirectionSelectors() {\r\n      this.isRightBottomSelection = false;\r\n      this.isRightTopSelection = false;\r\n      this.isLeftBottomSelection = false;\r\n      this.isLeftTopSelection = false;\r\n   }\r\n   private defineBorders(rowX: number, rowY: number) {\r\n      if (!this.selectionCoordinates) {\r\n         return;\r\n      }\r\n      let classToReturn = '';\r\n      if (this.isRightBottomSelection === true) {\r\n         if (rowX === this.selectionCoordinates.rowXStart) {\r\n            classToReturn += 'ag-cell-left-border ';\r\n         }\r\n         if (rowY === this.selectionCoordinates.rowYStart) {\r\n            classToReturn += 'ag-cell-top-border ';\r\n         }\r\n         if (rowX === this.selectionCoordinates.rowXEnd) {\r\n            classToReturn += 'ag-cell-right-border ';\r\n         }\r\n         if (rowY === this.selectionCoordinates.rowYEnd) {\r\n            classToReturn += 'ag-cell-bottom-border ';\r\n         }\r\n      }\r\n      if (this.isRightTopSelection === true) {\r\n         if (rowX === this.selectionCoordinates.rowXStart) {\r\n            classToReturn += 'ag-cell-left-border ';\r\n         }\r\n         if (rowY === this.selectionCoordinates.rowYStart) {\r\n            classToReturn += 'ag-cell-bottom-border ';\r\n         }\r\n         if (rowX === this.selectionCoordinates.rowXEnd) {\r\n            classToReturn += 'ag-cell-right-border ';\r\n         }\r\n         if (rowY === this.selectionCoordinates.rowYEnd) {\r\n            classToReturn += 'ag-cell-top-border ';\r\n         }\r\n      }\r\n      if (this.isLeftTopSelection === true) {\r\n         if (rowX === this.selectionCoordinates.rowXStart) {\r\n            classToReturn += 'ag-cell-right-border ';\r\n         }\r\n         if (rowY === this.selectionCoordinates.rowYStart) {\r\n            classToReturn += 'ag-cell-bottom-border ';\r\n         }\r\n         if (rowX === this.selectionCoordinates.rowXEnd) {\r\n            classToReturn += 'ag-cell-left-border ';\r\n         }\r\n         if (rowY === this.selectionCoordinates.rowYEnd) {\r\n            classToReturn += 'ag-cell-top-border ';\r\n         }\r\n      }\r\n      if (this.isLeftBottomSelection === true) {\r\n         if (rowX === this.selectionCoordinates.rowXStart) {\r\n            classToReturn += 'ag-cell-right-border ';\r\n         }\r\n         if (rowY === this.selectionCoordinates.rowYStart) {\r\n            classToReturn += 'ag-cell-top-border ';\r\n         }\r\n         if (rowX === this.selectionCoordinates.rowXEnd) {\r\n            classToReturn += 'ag-cell-left-border ';\r\n         }\r\n         if (rowY === this.selectionCoordinates.rowYEnd) {\r\n            classToReturn += 'ag-cell-bottom-border ';\r\n         }\r\n      }\r\n      return classToReturn;\r\n   }\r\n}\r\nexport class Selection {\r\n   rowYStart: any;\r\n   rowYEnd: any;\r\n   rowXStart: any;\r\n   rowXEnd: any;\r\n}\r\nexport function copySingleValueToClipboard(value: string) {\r\n   const copyText = getNiceValueForExport(value);\r\n   const inputField = document.createElement('input');\r\n   inputField.setAttribute('type', 'text');\r\n   inputField.setAttribute('id', 'clipboard_field');\r\n   inputField.value = copyText;\r\n   document.getElementsByTagName('body')[0].appendChild(inputField);\r\n   inputField.select();\r\n   inputField.setSelectionRange(0, 99999);\r\n   document.execCommand('copy');\r\n   const elem = document.getElementById('clipboard_field');\r\n   if (elem && elem.parentNode) {\r\n      elem.parentNode.removeChild(elem);\r\n   }\r\n}\r\n","export class OptionModel {\r\n   Index!: number;\r\n   Value!: string;\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1","i2","i2.SetFilterComponent","AgEntraIdTraceCellRendererComponent"],"mappings":";;;;;;;;;;;;;;;;;;MAYa,0CAA0C,CAAA;AAPvD,IAAA,WAAA,GAAA;AAQW,QAAA,IAAA,CAAA,MAAM,GAAG,MAAM,CAAC,iBAAiB,CAAC;QAQ1C,IAAA,CAAA,EAAE,GAAW,CAAC,CAAC;QAEf,IAAA,CAAA,QAAQ,GAAG,KAAK;QAChB,IAAA,CAAA,mBAAmB,GAAG,IAAI;QAC1B,IAAA,CAAA,wBAAwB,GAAG,KAAK;AAChC,QAAA,IAAA,CAAA,QAAQ,GAAQ,CAAC,CAAM,KAAI,EAAE,CAAC;AAkEhC,IAAA;AA7EE,IAAA,OAAO,CAAC,MAA0C,EAAA;AAC/C,QAAA,OAAO,IAAI;IACd;AAUO,IAAA,MAAM,CAAC,MAAW,EAAA;AACtB,QAAA,IAAI,CAAC,MAAM,GAAG,MAAM;AACpB,QAAA,IAAI,CAAC,QAAQ,GAAG,KAAK;QAErB,IAAI,MAAM,EAAE;AACT,YAAA,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO;AAC7B,YAAA,IAAI,IAAI,CAAC,OAAO,CAAC,eAAe,EAAE;AAC/B,gBAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC;YAC7D;AAEA,YAAA,IAAI,MAAM,CAAC,IAAI,EAAE;AACd,gBAAA,IAAI,MAAM,CAAC,IAAI,CAAC,SAAS,IAAI,MAAM,CAAC,WAAW,KAAK,IAAI,EAAE;oBACvD,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS;gBACzC;YACH;YACA,IACG,MAAM,CAAC,OAAO;gBACd,MAAM,CAAC,OAAO,CAAC,WAAW;AAC1B,gBAAA,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,OAAO;gBAClC,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAChD;AACC,gBAAA,IAAI,CAAC,QAAQ,GAAG,IAAI;YACvB;iBAAO;AACJ,gBAAA,IAAI,CAAC,QAAQ,GAAG,KAAK;YACxB;AACA,YAAA,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,IAAI;AACzB,YAAA,IAAI,CAAC,EAAE,GAAG,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC;YACtC,MAAM,CAAC,OAAO,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,IAAI;AAC/C,YAAA,IAAI,MAAM,CAAC,QAAQ,EAAE;AAClB,gBAAA,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ;YAClC;AACA,YAAA,IAAI,MAAM,CAAC,cAAc,EAAE;gBACxB,IAAI,CAAC,mBAAmB,GAAG,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC;YAChE;AACA;;;AAGG;YACH,IAAI,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE;AAC1C,gBAAA,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC;AAC5C,gBAAA,IAAI,EAAE,KAAK,IAAI,EAAE;AACd,oBAAA,IAAI,CAAC,QAAQ,GAAG,IAAI;gBACvB;YACH;QACH;IACH;IACO,MAAM,YAAY,CAAC,KAAY,EAAE,MAAW,EAAE,OAAY,EAAE,EAAO,EAAA;AACvE,QAAA,IAAI,IAAI,CAAC,wBAAwB,EAAE;YAChC;QACH;AACA,QAAA,IAAI,CAAC,wBAAwB,GAAG,IAAI;QACpC,IAAI,KAAK,EAAE;YACR,KAAK,CAAC,eAAe,EAAE;YACvB,KAAK,CAAC,cAAc,EAAE;QACzB;AACA,QAAA,IAAI,CAAC,QAAQ,GAAG,CAAC,IAAI,CAAC,QAAQ;AAC9B,QAAA,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE;AAC5B,YAAA,IAAI,CAAC,OAAO,CAAC,WAAW,GAAG,EAAE;QAChC;AACA,QAAA,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,QAAQ;AACjD,QAAA,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE;AAC3B,QAAA,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,CAAC;AACrD,QAAA,IAAI,CAAC,wBAAwB,GAAG,KAAK;AACrC,QAAA,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE;IAC9B;8GA/EU,0CAA0C,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA1C,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,0CAA0C,4FCZvD,8wBAyBA,EAAA,MAAA,EAAA,CAAA,4XAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FDba,0CAA0C,EAAA,UAAA,EAAA,CAAA;kBAPtD,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,iCAAiC,EAAA,eAAA,EAG1B,uBAAuB,CAAC,MAAM,cACnC,KAAK,EAAA,QAAA,EAAA,8wBAAA,EAAA,MAAA,EAAA,CAAA,4XAAA,CAAA,EAAA;;;IEVT;AAAZ,CAAA,UAAY,iBAAiB,EAAA;AAC1B,IAAA,iBAAA,CAAA,iBAAA,CAAA,MAAA,CAAA,GAAA,CAAA,CAAA,GAAA,MAAI;AACJ,IAAA,iBAAA,CAAA,iBAAA,CAAA,MAAA,CAAA,GAAA,CAAA,CAAA,GAAA,MAAI;AACJ,IAAA,iBAAA,CAAA,iBAAA,CAAA,KAAA,CAAA,GAAA,CAAA,CAAA,GAAA,KAAG;AACH,IAAA,iBAAA,CAAA,iBAAA,CAAA,UAAA,CAAA,GAAA,CAAA,CAAA,GAAA,UAAQ;AACR,IAAA,iBAAA,CAAA,iBAAA,CAAA,OAAA,CAAA,GAAA,CAAA,CAAA,GAAA,OAAK;AACR,CAAC,EANW,iBAAiB,KAAjB,iBAAiB,GAAA,EAAA,CAAA,CAAA;;MCYhB,qBAAqB,CAAA;AAM/B,IAAA,WAAA,GAAA;QAJA,IAAA,CAAA,aAAa,GAAG,aAAa;IAId;AACR,IAAA,MAAM,CAAC,MAAqB,EAAA;AAChC,QAAA,IAAI,CAAC,MAAM,GAAG,MAAM;AACpB,QAAA,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,WAAkB;IAC/C;IACO,cAAc,GAAA;AAClB,QAAA,IAAI,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;AACjC,YAAA,OAAO,IAAI;QACd;AACA,QAAA,OAAO,KAAK;IACf;AACO,IAAA,cAAc,CAAC,MAA6B,EAAA;AAChD,QAAA,OAAO,IAAI;IACd;IACO,QAAQ,GAAA;AACZ,QAAA,IAAI,IAAI,CAAC,UAAU,KAAK,IAAI,EAAE;AAC3B,YAAA,OAAO,MAAM;QAChB;AAAO,aAAA,IAAI,IAAI,CAAC,UAAU,KAAK,KAAK,EAAE;AACnC,YAAA,OAAO,OAAO;QACjB;aAAO;AACJ,YAAA,OAAO,IAAI;QACd;IACH;AACO,IAAA,QAAQ,CAAC,KAAU,EAAA;AACvB,QAAA,IAAI,KAAK,KAAK,MAAM,EAAE;AACnB,YAAA,IAAI,CAAC,UAAU,GAAG,IAAI;QACzB;AAAO,aAAA,IAAI,KAAK,KAAK,OAAO,EAAE;AAC3B,YAAA,IAAI,CAAC,UAAU,GAAG,KAAK;QAC1B;aAAO;AACJ,YAAA,IAAI,CAAC,UAAU,GAAG,IAAI;QACzB;IACH;AACO,IAAA,eAAe,KAAW;IAC1B,kBAAkB,GAAA;AACtB,QAAA,IAAI,CAAC,MAAM,CAAC,qBAAqB,EAAE;IACtC;AACO,IAAA,6BAA6B,KAAK;AAClC,IAAA,gBAAgB,CAAE,KAAU,EAAA;AAChC,QAAA,OAAO,WAAW,CAAC,KAAK,CAAC;IAC5B;IACO,gBAAgB,CAAE,MAAgC,EAAA,EAAS;IAC3D,MAAM,CAAC,QAAqB,EAAE,KAAU,EAAA;QAC5C,KAAK,CAAC,cAAc,EAAE;AACtB,QAAA,IAAI,QAAQ,CAAC,OAAO,KAAK,KAAK,IAAI,QAAQ,CAAC,aAAa,KAAK,IAAI,EAAE;AAChE,YAAA,QAAQ,CAAC,OAAO,GAAG,KAAK;AACxB,YAAA,QAAQ,CAAC,aAAa,GAAG,KAAK;AAC9B,YAAA,IAAI,CAAC,UAAU,GAAG,KAAK;QAC1B;AAAO,aAAA,IAAI,QAAQ,CAAC,OAAO,KAAK,IAAI,IAAI,QAAQ,CAAC,aAAa,KAAK,KAAK,EAAE;AACvE,YAAA,QAAQ,CAAC,OAAO,GAAG,KAAK;AACxB,YAAA,QAAQ,CAAC,aAAa,GAAG,IAAI;AAC7B,YAAA,IAAI,CAAC,UAAU,GAAG,IAAI;QACzB;AAAO,aAAA,IAAI,QAAQ,CAAC,OAAO,KAAK,KAAK,IAAI,QAAQ,CAAC,aAAa,KAAK,KAAK,EAAE;AACxE,YAAA,QAAQ,CAAC,OAAO,GAAG,IAAI;AACvB,YAAA,QAAQ,CAAC,aAAa,GAAG,KAAK;AAC9B,YAAA,IAAI,CAAC,UAAU,GAAG,IAAI;QACzB;AACA,QAAA,IAAI,CAAC,MAAM,CAAC,qBAAqB,EAAE;IACtC;8GA/DU,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAArB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,qBAAqB,+ECZlC,2VAQM,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,WAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,iBAAA,EAAA,kBAAA,EAAA,eAAA,EAAA,eAAA,EAAA,WAAA,EAAA,IAAA,EAAA,UAAA,EAAA,eAAA,EAAA,MAAA,EAAA,OAAA,EAAA,eAAA,EAAA,UAAA,EAAA,OAAA,EAAA,qBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,eAAA,CAAA,EAAA,OAAA,EAAA,CAAA,QAAA,EAAA,qBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,aAAA,CAAA,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,CAAA,CAAA;;2FDIO,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBANjC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,oBAAoB,cAGlB,KAAK,EAAA,QAAA,EAAA,2VAAA,EAAA;;;MEAR,qBAAqB,CAAA;AAM/B,IAAA,WAAA,GAAA;QAJA,IAAA,CAAA,eAAe,GAAc,EAAE;IAIhB;AACR,IAAA,MAAM,CAAC,MAAqB,EAAA;AAChC,QAAA,IAAI,CAAC,MAAM,GAAG,MAAM;QACpB,IAAI,CAAC,sBAAsB,EAAE;AAC7B,QAAA,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,WAAkB;IAC/C;IACQ,sBAAsB,GAAA;AAC3B,QAAA,IAAI,IAAI,CAAC,aAAa,EAAE;YACrB,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,MAAM,KAAI;AACnC,gBAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC;AACnC,YAAA,CAAC,CAAC;QACL;IACH;IACO,cAAc,GAAA;QAClB,OAAO,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,IAAI,CAAC;IAC7C;AACO,IAAA,cAAc,CAAC,MAA6B,EAAA;AAChD,QAAA,OAAO,IAAI;IACd;IACO,QAAQ,GAAA;QACZ,IAAI,UAAU,GAAG,EAAE;AACnB,QAAA,IAAI,IAAI,CAAC,aAAa,EAAE;YACrB,IAAI,GAAG,GAAG,CAAC;YACX,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,MAAM,KAAI;gBACnC,IAAI,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE;oBACrC,UAAU,IAAI,GAAG;gBACpB;AACA,gBAAA,GAAG,EAAE;AACR,YAAA,CAAC,CAAC;QACL;AACA,QAAA,OAAO,UAAU;IACpB;IACO,QAAQ,CAAC,KAAU,EAAA,EAAS;AAC5B,IAAA,eAAe,KAAW;IAC1B,kBAAkB,GAAA;AACtB,QAAA,IAAI,CAAC,MAAM,CAAC,qBAAqB,EAAE;IACtC;AACO,IAAA,6BAA6B,KAAK;AAClC,IAAA,gBAAgB,CAAE,KAAU,EAAA;AAChC,QAAA,OAAO,IAAI,CAAC,QAAQ,EAAE;IACzB;IACO,gBAAgB,CAAE,MAAgC,EAAA,EAAS;8GA/CxD,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAArB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,qBAAqB,+ECVlC,wBAAsB,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;2FDUT,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBANjC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,oBAAoB,cAGlB,KAAK,EAAA,QAAA,EAAA,wBAAA,EAAA;;;MEER,mBAAmB,CAAA;IAE7B,cAAc,GAAA;AACZ,QAAA,OAAO,KAAK;IACd;AACA,IAAA,cAAc,CAAC,MAA6B,EAAA;AAC1C,QAAA,OAAO,KAAK;IACd;IACA,QAAQ,GAAA;IAER;AACA,IAAA,QAAQ,CAAC,KAAU,EAAA;IAEnB;IACA,eAAe,GAAA;IAEf;IACA,kBAAkB,GAAA;IAElB;IACA,6BAA6B,GAAA;IAE7B;AACA,IAAA,gBAAgB,CAAE,KAAU,EAAA;AAC1B,QAAA,OAAO,EAAE;IACX;AACA,IAAA,MAAM,CAAC,MAAqB,EAAA;IAE5B;AACA,IAAA,gBAAgB,CAAE,MAAgC,EAAA;IAElD;8GA/BU,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAnB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,mBAAmB,6ECVhC,oBAAkB,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;2FDUL,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAN/B,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,kBAAkB,cAGhB,KAAK,EAAA,QAAA,EAAA,oBAAA,EAAA;;;MEER,qBAAqB,CAAA;AAO/B,IAAA,WAAA,GAAA,EAAe;AACR,IAAA,MAAM,CAAC,MAAqB,EAAA;AAChC,QAAA,IAAI,CAAC,MAAM,GAAG,MAAM;AACpB,QAAA,IAAI,CAAC,QAAQ,GAAI,MAAc,CAAC,QAAQ;AACxC,QAAA,IAAI,CAAC,SAAS,GAAI,MAAc,CAAC,SAAS;AAC1C,QAAA,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,WAAkB;IAC/C;IACO,cAAc,GAAA;QAClB,OAAO,IAAI,CAAC,UAAU,IAAI,IAAI,IAAI,IAAI,CAAC,UAAU,KAAK,EAAE;IAC3D;AACO,IAAA,cAAc,CAAC,MAA6B,EAAA;AAChD,QAAA,OAAO,IAAI;IACd;IACO,QAAQ,GAAA;QACZ,OAAO,IAAI,CAAC,UAAU;IACzB;AACO,IAAA,QAAQ,CAAC,KAAU,EAAA;AACvB,QAAA,IAAI,CAAC,UAAU,GAAG,KAAK;IAC1B;AACO,IAAA,eAAe,KAAW;IAC1B,kBAAkB,GAAA;AACtB,QAAA,IAAI,CAAC,MAAM,CAAC,qBAAqB,EAAE;IACtC;AACO,IAAA,6BAA6B,KAAK;AAClC,IAAA,gBAAgB,CAAE,KAAU,EAAA;QAChC,OAAO,IAAI,CAAC,UAAU;IACzB;IACO,gBAAgB,CAAE,MAAgC,EAAA,EAAS;8GAlCxD,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAArB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,qBAAqB,+ECVlC,qnBAkBA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,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,EAAAC,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,SAAA,EAAA,WAAA,EAAA,aAAA,EAAA,mBAAA,EAAA,iBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;2FDRa,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBANjC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,oBAAoB,cAGlB,KAAK,EAAA,QAAA,EAAA,qnBAAA,EAAA;;;AERf,SAAU,yBAAyB,CAAC,MAAc,EAAA;IACrD,IAAG,MAAM,EAAE;QACR,IAAI,OAAO,GAAG,YAAY;AAC1B,QAAA,IAAI;YACD,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC;QACvC;QAAE,OAAM,CAAC,EAAE;;YAER,OAAO,MAAM,GAAG,EAAE;QACrB;AACA,QAAA,OAAO,MAAM;IAChB;SAAO;AACJ,QAAA,OAAO,EAAE;IACZ;AACH;;MCUa,kBAAkB,CAAA;AAlB/B,IAAA,WAAA,GAAA;AAmBG,QAAA,IAAA,CAAA,SAAS,GAAG,MAAM,CAAC,iBAAiB,CAAC;AAG3B,QAAA,IAAA,CAAA,gBAAgB,GAAG,IAAI,YAAY,EAAE;QAC/C,IAAA,CAAA,yBAAyB,GAAG,yBAAyB;QACrD,IAAA,CAAA,eAAe,GAAc,EAAE;AAmBxB,QAAA,IAAA,CAAA,eAAe,GAAG,CAAC,CAAM,KAAI,EAAE,CAAC;AAuBzC,IAAA;AAxCS,IAAA,QAAQ,KAAU;IAClB,OAAO,GAAA;QACX,IAAI,MAAM,GAAG,EAAE;QACf,IAAI,GAAG,GAAG,CAAC;AACX,QAAA,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,eAAe,EAAE;AACrC,YAAA,IAAI,GAAG,KAAK,IAAI,EAAE;AACf,gBAAA,MAAM,IAAI,GAAG,GAAG,GAAG;YACtB;AACA,YAAA,GAAG,EAAE;QACR;AACA,QAAA,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC;IAC/B;IACO,MAAM,GAAA;AACV,QAAA,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE;QAC9B,IAAI,CAAC,OAAO,EAAE;AACd,QAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE;IAC/B;AAEO,IAAA,UAAU,CAAC,UAAkB,EAAA;AACjC,QAAA,IAAI,CAAC,eAAe,GAAG,EAAE;AACzB,QAAA,IAAI,IAAI,CAAC,YAAY,EAAE;YACpB,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,MAAM,KAAI;AAClC,gBAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC;AACnC,YAAA,CAAC,CAAC;QACL;QACA,IAAI,UAAU,EAAE;YACb,IAAI,OAAO,GAAG,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC;AACnC,YAAA,OAAO,CAAC,OAAO,CAAC,CAAC,GAAG,KAAI;AACrB,gBAAA,IAAI,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC;AAC1B,gBAAA,IAAI,CAAC,YAAoB,CAAC,GAAG,CAAC,GAAG,IAAI;AACzC,YAAA,CAAC,CAAC;QACL;IACH;AACO,IAAA,QAAQ,CAAC,WAA+B,EAAA;AAC5C,QAAA,OAAO,IAAI;IACd;AACO,IAAA,gBAAgB,CAAC,EAAO,EAAA;AAC5B,QAAA,IAAI,CAAC,eAAe,GAAG,EAAE;IAC5B;AACO,IAAA,iBAAiB,KAAI;8GA/ClB,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAlB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,kBAAkB,EAAA,YAAA,EAAA,KAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,EAAA,YAAA,EAAA,cAAA,EAAA,EAAA,OAAA,EAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,EAAA,SAAA,EAdhB;AACP,YAAA;AACI,gBAAA,OAAO,EAAE,iBAAiB;AAC1B,gBAAA,WAAW,EAAE,UAAU,CAAC,MAAM,kBAAkB,CAAC;AACjD,gBAAA,KAAK,EAAE,IAAI;AACd,aAAA;AACD,YAAA;AACI,gBAAA,OAAO,EAAE,aAAa;AACtB,gBAAA,WAAW,EAAE,UAAU,CAAC,MAAM,kBAAkB,CAAC;AACjD,gBAAA,KAAK,EAAE,IAAI;AACd,aAAA;AACJ,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECpBL,yQAQA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAD,IAAA,CAAA,WAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,iBAAA,EAAA,kBAAA,EAAA,eAAA,EAAA,eAAA,EAAA,WAAA,EAAA,IAAA,EAAA,UAAA,EAAA,eAAA,EAAA,MAAA,EAAA,OAAA,EAAA,eAAA,EAAA,UAAA,EAAA,OAAA,EAAA,qBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,eAAA,CAAA,EAAA,OAAA,EAAA,CAAA,QAAA,EAAA,qBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,aAAA,CAAA,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,CAAA,CAAA;;2FDea,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAlB9B,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,gBAAgB,EAAA,SAAA,EAGf;AACP,wBAAA;AACI,4BAAA,OAAO,EAAE,iBAAiB;AAC1B,4BAAA,WAAW,EAAE,UAAU,CAAC,wBAAwB,CAAC;AACjD,4BAAA,KAAK,EAAE,IAAI;AACd,yBAAA;AACD,wBAAA;AACI,4BAAA,OAAO,EAAE,aAAa;AACtB,4BAAA,WAAW,EAAE,UAAU,CAAC,wBAAwB,CAAC;AACjD,4BAAA,KAAK,EAAE,IAAI;AACd,yBAAA;AACJ,qBAAA,EAAA,UAAA,EACW,KAAK,EAAA,QAAA,EAAA,yQAAA,EAAA;;sBAKjB;;sBACA;;;MEhBS,oBAAoB,CAAA;AAM9B,IAAA,WAAA,GAAA,EAAe;AACR,IAAA,MAAM,CAAC,MAAqB,EAAA;AAChC,QAAA,IAAI,CAAC,MAAM,GAAG,MAAM;AACpB,QAAA,IAAI,CAAC,aAAa,GAAI,MAAc,CAAC,OAAO;QAC5C,IAAI,CAAC,sBAAsB,EAAE;AAC7B,QAAA,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,WAAkB;IAC/C;AACQ,IAAA,sBAAsB,KAAI;IAC3B,cAAc,GAAA;AAClB,QAAA,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;AAClB,YAAA,OAAO,KAAK;QACf;AACA,QAAA,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC;IACnC;AACO,IAAA,cAAc,CAAC,MAA6B,EAAA;AAChD,QAAA,OAAO,IAAI;IACd;IACO,QAAQ,GAAA;QACZ,OAAO,IAAI,CAAC,SAAS;IACxB;IACO,QAAQ,CAAC,KAAU,EAAA,EAAS;AAC5B,IAAA,eAAe,KAAW;IAC1B,kBAAkB,GAAA;AACtB,QAAA,IAAI,CAAC,MAAM,CAAC,qBAAqB,EAAE;IACtC;AACO,IAAA,6BAA6B,KAAK;AAClC,IAAA,gBAAgB,CAAE,KAAU,EAAA;AAChC,QAAA,OAAO,IAAI,CAAC,QAAQ,EAAE;IACzB;IACO,gBAAgB,CAAE,MAAgC,EAAA,EAAS;8GAnCxD,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAApB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,oBAAoB,8ECXjC,wPAMA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,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,EAAAE,kBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,cAAA,CAAA,EAAA,OAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;2FDKa,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBANhC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,mBAAmB,cAGjB,KAAK,EAAA,QAAA,EAAA,wPAAA,EAAA;;;ME8BR,qBAAqB,CAAA;AA0B/B,IAAA,WAAA,GAAA;AAzBA,QAAA,IAAA,CAAA,UAAU,GAAG,MAAM,CAAC,WAAW,CAAC;QAGhC,IAAA,CAAA,iBAAiB,GAAG,iBAAiB;QAEV,IAAA,CAAA,OAAO,GAAa,EAAE;QAGxC,IAAA,CAAA,gBAAgB,GAAG,EAAE;QACrB,IAAA,CAAA,QAAQ,GAAG,IAAI;QACf,IAAA,CAAA,qBAAqB,GAAY,IAAI;QAGrC,IAAA,CAAA,cAAc,GAAG,IAAI;QAErB,IAAA,CAAA,kBAAkB,GAAG,KAAK;AAEzB,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,YAAY,EAAe;QAEpD,IAAA,CAAA,mBAAmB,GAAG,KAAK;AACnB,QAAA,IAAA,CAAA,mBAAmB,GAAG,MAAM,CAAC,mBAAmB,CAAC;QACzD,IAAA,CAAA,WAAW,GAA+B,EAAE;QAC5C,IAAA,CAAA,SAAS,GAAQ,EAAE;QAEnB,IAAA,CAAA,KAAK,GAAW,eAAe,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAiE1D,IAAA,CAAA,gBAAgB,GAAQ,EAAE;AA/DvB,QAAA,IAAI,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;YACrC,IAAI,CAAC,iBAAiB,EAAE;QAC3B;IACH;IACA,iBAAiB,GAAA;QACd,IAAI,CAAC,eAAe,GAAG;YACpB,aAAa,EAAE,iBAAiB,CAAC,IAAI;SACvC;IACJ;IACA,QAAQ,GAAA;AACL,QAAA,IAAI,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;YACrC,IAAI,CAAC,cAAc,EAAE;QACxB;IACH;AACA,IAAA,WAAW,CAAC,OAAY,EAAA;AACrB,QAAA,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,YAAY,EAAE;YACjC;QACH;QACA,IAAI,OAAO,GAAG,EAAE;AAChB,QAAA,IAAI,OAAO,CAAC,OAAO,EAAE,aAAa,EAAE;AACjC,YAAA,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,GAAQ,KAAK,GAAG,CAAC,UAAU,CAAC;QAC5E;AACA,QAAA,MAAM,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,GAAQ,KAAK,GAAG,CAAC,UAAU,CAAC;AACjF,QAAA,IAAI,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE;YACzD;QACH;QACA,IAAI,CAAC,oBAAoB,EAAE;IAC9B;IACA,oBAAoB,GAAA;QACjB,IAAI,CAAC,kBAAkB,EAAE;AACzB,QAAA,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,CAAC,EAAE;YAC3C,IAAI,CAAC,WAAW,EAAE,GAAG,EAAE,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC;QACrD;IACH;IAEA,cAAc,GAAA;QACX,IAAI,CAAC,kBAAkB,EAAE;QACzB,IAAI,CAAC,cAAc,EAAE;AACrB,QAAA,qBAAqB,CAAC,IAAI,CAAC,mBAAmB,EAAE,MAAK;AAClD,YAAA,MAAM,SAAS,GAAG,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CAC/C,oBAAoB,CAAC,CAAC,QAAQ,EAAE,QAAQ,KAAI;AACzC,gBAAA,OAAO,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC;YAC/D,CAAC,CAAC,CACJ;AACD,YAAA,SAAS,CAAC,SAAS,CAAC,CAAC,IAAI,KAAI;AAC1B,gBAAA,IAAI,CAAC,WAAW,GAAG,EAAE;AACrB,gBAAA,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;AACpB,oBAAA,IAAI,IAAI,CAAC,OAAO,EAAE;AACf,wBAAA,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC;oBAC7B;oBACA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAC5B;gBACA,IAAI,CAAC,WAAW,EAAE,GAAG,EAAE,UAAU,CAAC,IAAI,CAAC;AAC1C,YAAA,CAAC,CAAC;AACL,QAAA,CAAC,CAAC;AACF,QAAA,IAAI,CAAC,mBAAmB,GAAG,IAAI;IAClC;IACA,kBAAkB,GAAA;QACf,IAAI,IAAI,CAAC,qBAAqB,IAAI,IAAI,CAAC,OAAO,EAAE;YAC7C,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,KAAK,KAAK,gBAAgB,CAAC;YAC3E,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,mBAAmB,EAAE,CAAC;QACnD;IACH;IAEA,mBAAmB,GAAA;QAChB,OAAO;AACJ,YAAA,UAAU,EAAE,EAAE;AACd,YAAA,KAAK,EAAE,EAAE;YACT,KAAK,EAAE,IAAI,CAAC,eAAe,GAAG,EAAE,GAAG,EAAE;AACrC,YAAA,KAAK,EAAE,gBAAgB;AACvB,YAAA,eAAe,EAAE,IAAI;AACrB,YAAA,UAAU,EAAE,IAAI;AAChB,YAAA,YAAY,EAAE,IAAI;AAClB,YAAA,QAAQ,EAAE,KAAK;AACf,YAAA,MAAM,EAAE,IAAI;AACZ,YAAA,SAAS,EAAE,KAAK;AAChB,YAAA,YAAY,EAAE,0CAA0C;AACxD,YAAA,kBAAkB,EAAE;gBACjB,QAAQ,EAAG,IAAqD,CAAC,QAAQ;AACzE,gBAAA,OAAO,EAAE,IAAoD;gBAC7D,SAAS,EAAG,IAAqD,CAAC,SAAS;AAC7E,aAAA;SACO;IACd;IACA,cAAc,GAAA;QACX,IAAI,CAAC,WAAW,GAAG;YAChB,yBAAyB,EACtB,IAAI,CAAC,eAAe,CAAC,aAAa,KAAK,iBAAiB,CAAC,IAAI;AAC7D,gBAAA,IAAI,CAAC,eAAe,CAAC,aAAa,KAAK,iBAAiB,CAAC,KAAK;AAC9D,gBAAA,IAAI,CAAC,eAAe,CAAC,aAAa,KAAK,iBAAiB,CAAC,IAAI;AAChE,YAAA,YAAY,EAAE,IAAI,CAAC,eAAe,CAAC,aAAa,KAAK,iBAAiB,CAAC,QAAQ,GAAG,UAAU,GAAG,QAAQ;AACvG,YAAA,uBAAuB,EAAE,IAAI;AAC7B,YAAA,gBAAgB,EAAE,IAAI;AACtB,YAAA,iBAAiB,EAAE,IAAI;AACvB,YAAA,SAAS,EAAE,EAAE;AACb,YAAA,UAAU,EAAE;AACT,gBAAA,YAAY,EAAE,qBAAqB;AACnC,gBAAA,WAAW,EAAE,oBAAoB;AACjC,gBAAA,UAAU,EAAE,mBAAmB;AAC/B,gBAAA,YAAY,EAAE,qBAAqB;AACnC,gBAAA,YAAY,EAAE,qBAAqB;AACrC,aAAA;YAED,WAAW,EAAE,MAAK;gBACf,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC;YACvC,CAAC;YACD,cAAc,EAAE,IAAI,CAAC,WAAW;AAChC,YAAA,YAAY,EAAE,CAAC,MAAM,KAAI;AACtB,gBAAA,IAAI,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE;AAC1B,oBAAA,IAAI,IAAI,CAAC,SAAS,EAAE;AACjB,wBAAA,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;AAC7C,wBAAA,OAAO,MAAM;oBAChB;yBAAO;wBACJ,OAAO,IAAI,CAAC,gBAAgB;oBAC/B;gBACH;qBAAO;oBACJ,OAAO,IAAI,CAAC,gBAAgB;gBAC/B;YACH,CAAC;YACD,qBAAqB,EAAE,IAAI,CAAC,qBAAqB;AACjD,YAAA,2BAA2B,EAAE;gBAC1B,UAAU,EAAE,IAAI,CAAC,eAAe;AAClC,aAAA;AACD,YAAA,OAAO,EAAE,IAAI,CAAC,QAAQ,EAAE;AACxB,YAAA,OAAO,EAAE,IAAI;YACb,UAAU,EAAE,IAAI,CAAC,OAAO;AACxB,YAAA,aAAa,EAAE,IAAI,CAAC,uBAAuB,EAAE;SAChC;IACnB;IACA,uBAAuB,GAAA;QACpB,OAAO;AACJ,YAAA,YAAY,EAAE,KAAK;YACnB,QAAQ,EAAE,IAAI,CAAC,QAAQ;AACvB,YAAA,SAAS,EAAE,IAAI;AACf,YAAA,MAAM,EAAE,cAAc;YACtB,QAAQ,EAAE,CAAC,eAAe,CAAC;AAC3B,YAAA,kBAAkB,EAAE,CAAC,CAAC,KAAI;AACvB,gBAAA,OAAO,EAAE;YACZ,CAAC;SACY;IACnB;IACA,MAAM,WAAW,CAAC,SAAc,EAAA;AAC7B,QAAA,IAAI,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE;AAC3B,YAAA,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAClE;aAAO;;YAEJ,UAAU,CAAC,MAAK;AACb,gBAAA,IAAI,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE;AAC3B,oBAAA,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;gBAClE;YACH,CAAC,EAAE,IAAI,CAAC;QACX;IACH;AACA,IAAA,MAAM,QAAQ,CAAC,IAAS,EAAE,EAAU,EAAA;AACjC,QAAA,MAAM,2BAA2B,GAAG;AACjC,YAAA,MAAM,EAAE,IAAI;SACiB;AAChC,QAAA,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;YACpB;QACH;QACA,MAAM,IAAI,CAAC,mBAAmB,CAAC,2BAA2B,EAAE,EAAE,CAAC;IAClE;AAEA,IAAA,MAAM,mBAAmB,CAAC,IAAiC,EAAE,EAAU,EAAA;AACpE,QAAA,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,EAAE;YACzB;QACH;AACA,QAAA,MAAM,iBAAiB,GAAG,IAAI,CAAC,oCAAoC,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE,IAAI,CAAC,cAAc,CAAC;AAE1H,QAAA,IAAI,+BAA+B,GAAG,EAAE,GAAG,CAAC;QAE5C,+BAA+B,IAAI,iBAAiB;AAEpD,QAAA,MAAM,gBAAgB,GAAG,IAAI,CAAC,WAAW,EAAE,GAAG,EAAE,UAAU,CAAC,EAAE,GAAG,EAAE,CAAC;QACnE,IAAI,CAAC,gBAAgB,EAAE;YACpB;QACH;;QAGA,IAAI,IAAI,CAAC,2BAA2B,CAAC,EAAE,EAAE,IAAI,CAAC,cAAc,CAAC,EAAE;AAC5D,YAAA,MAAM,IAAI,GAAG,IAAI,CAAC,yBAAyB,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE,IAAI,CAAC,cAAc,CAAC;AAC5G,YAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;QAC5B;aAAO;AACJ,YAAA,IAAI,IAAI,CAAC,gBAAgB,EAAE;AACxB,gBAAA,IAAI,CAAC,SAAS,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC;YAC5D;AACA,YAAA,IAAI,CAAC,eAAe,CAAC,+BAA+B,EAAE,IAAI,CAAC;QAC9D;IACH;IACA,eAAe,CAAC,aAAqB,EAAE,IAAS,EAAA;AAC7C,QAAA,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,EAAE;YACzB;QACH;AACA,QAAA,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CACzB;AACG,YAAA,WAAW,EAAE,IAAI;SACnB,EACD,IAAI,CACN;AACD,QAAA,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC;;AAE9D,QAAA,IAAI,IAAI,CAAC,kBAAkB,EAAE;YAC1B,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC;QACrC;AACA,QAAA,MAAM,WAAW,GAAG;YACjB,GAAG,EAAE,CAAC,MAAM,CAAC;AACb,YAAA,QAAQ,EAAE,aAAa;SACzB;QACD,UAAU,CAAC,MAAK;YACb,IAAI,CAAC,WAAW,EAAE,GAAG,EAAE,gBAAgB,CAAC,WAAW,CAAC;QACvD,CAAC,EAAE,GAAG,CAAC;IACV;AACA,IAAA,QAAQ,CAAC,IAAS,EAAA;QACf,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,IAAI,EAAE;YAClC;QACH;AAEA,QAAA,MAAM,WAAW,GAAG;YACjB,MAAM,EAAE,CAAC,IAAI,CAAC;SAChB;QACD,IAAI,CAAC,WAAW,EAAE,GAAG,EAAE,gBAAgB,CAAC,WAAW,CAAC;IACvD;IACA,oCAAoC,CAAC,EAAU,EAAE,cAAsB,EAAA;AACpE,QAAA,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,EAAE;AACzB,YAAA,OAAO,CAAC;QACX;QAEA,IAAI,YAAY,GAAG,CAAC;QACpB,IAAI,OAAO,GAAG,IAAI;QAClB,IAAI,CAAC,WAAW,EAAE,GAAG,EAAE,6BAA6B,CAAC,CAAC,IAAc,KAAI;AACrE,YAAA,IAAI,IAAI,CAAC,eAAe,EAAE,EAAE;AACzB,gBAAA,IAAI,OAAO,KAAK,IAAI,EAAE;AACnB,oBAAA,YAAY,EAAE;gBACjB;YACH;YACA,IAAI,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,EAAE;gBACnC,OAAO,GAAG,KAAK;YAClB;AACH,QAAA,CAAC,CAAC;AACF,QAAA,OAAO,YAAY;IACtB;IACA,yBAAyB,CAAC,EAAU,EAAE,cAAsB,EAAA;AACzD,QAAA,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,EAAE;YACzB;QACH;AAEA,QAAA,IAAI,YAAuC;QAC3C,IAAI,CAAC,WAAW,EAAE,GAAG,EAAE,WAAW,CAAC,CAAC,IAAc,KAAI;AACnD,YAAA,IAAI,IAAI,CAAC,eAAe,EAAE,EAAE;gBACzB,IAAI,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,EAAE;oBACnC,YAAY,GAAG,IAAI;gBACtB;YACH;AACH,QAAA,CAAC,CAAC;AACF,QAAA,OAAO,YAAY;IACtB;IACA,2BAA2B,CAAC,KAAa,EAAE,cAAsB,EAAA;AAC9D,QAAA,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,EAAE;YACzB;QACH;AAEA,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,EAAE,GAAG,EAAE,UAAU,CAAC,KAAK,GAAG,EAAE,CAAC;QAC3D,IAAI,CAAC,KAAK,EAAE;AACT,YAAA,OAAO,KAAK;QACf;QAEA,IAAI,GAAG,GAAG,CAAC;QACX,IAAI,CAAC,WAAW,EAAE,GAAG,EAAE,WAAW,CAAC,CAAC,IAAc,KAAI;YACnD,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,IAAI,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,EAAE;;YAE5F;AACA,YAAA,IAAI,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE;AAC3D,gBAAA,GAAG,EAAE;YACR;AACH,QAAA,CAAC,CAAC;;AAEF,QAAA,IAAI,GAAG,KAAK,CAAC,EAAE;AACZ,YAAA,OAAO,IAAI;QACd;AACA,QAAA,OAAO,KAAK;IACf;AACA,IAAA,WAAW,CAAC,MAA4B,EAAA;AACrC,QAAA,IAAI,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE;AAC3E,YAAA,OAAO,IAAI;QACd;AACA,QAAA,OAAO,KAAK;IACf;8GAzTU,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAArB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,qBAAqB,2iBCvClC,4aAWA,EAAA,MAAA,EAAA,CAAA,+CAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAF,IAAA,CAAA,aAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,SAAA,EAAA,WAAA,EAAA,SAAA,EAAA,qBAAA,EAAA,6BAAA,EAAA,gCAAA,EAAA,kBAAA,EAAA,uBAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,kBAAA,EAAA,mBAAA,EAAA,oBAAA,EAAA,aAAA,EAAA,wBAAA,EAAA,6BAAA,EAAA,oBAAA,EAAA,6BAAA,EAAA,8BAAA,EAAA,8BAAA,EAAA,wBAAA,EAAA,sBAAA,EAAA,wBAAA,EAAA,YAAA,EAAA,eAAA,EAAA,oBAAA,EAAA,aAAA,EAAA,qBAAA,EAAA,qBAAA,EAAA,0BAAA,EAAA,cAAA,EAAA,mBAAA,EAAA,uBAAA,EAAA,mBAAA,EAAA,wBAAA,EAAA,+BAAA,EAAA,wBAAA,EAAA,6BAAA,EAAA,+BAAA,EAAA,8BAAA,EAAA,kBAAA,EAAA,kBAAA,EAAA,iBAAA,EAAA,sBAAA,EAAA,YAAA,EAAA,UAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,cAAA,EAAA,+BAAA,EAAA,gBAAA,EAAA,yBAAA,EAAA,0BAAA,EAAA,mCAAA,EAAA,8BAAA,EAAA,qBAAA,EAAA,0BAAA,EAAA,wBAAA,EAAA,mBAAA,EAAA,0BAAA,EAAA,qBAAA,EAAA,aAAA,EAAA,iBAAA,EAAA,kBAAA,EAAA,qCAAA,EAAA,mCAAA,EAAA,mBAAA,EAAA,oBAAA,EAAA,sCAAA,EAAA,sBAAA,EAAA,qBAAA,EAAA,sCAAA,EAAA,sBAAA,EAAA,6BAAA,EAAA,cAAA,EAAA,aAAA,EAAA,mBAAA,EAAA,qBAAA,EAAA,6BAAA,EAAA,+BAAA,EAAA,oBAAA,EAAA,qBAAA,EAAA,2BAAA,EAAA,6BAAA,EAAA,YAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,qBAAA,EAAA,oBAAA,EAAA,0BAAA,EAAA,iBAAA,EAAA,qBAAA,EAAA,SAAA,EAAA,cAAA,EAAA,UAAA,EAAA,WAAA,EAAA,YAAA,EAAA,wBAAA,EAAA,uBAAA,EAAA,2BAAA,EAAA,eAAA,EAAA,2BAAA,EAAA,qBAAA,EAAA,+BAAA,EAAA,4BAAA,EAAA,yBAAA,EAAA,OAAA,EAAA,wBAAA,EAAA,yBAAA,EAAA,+BAAA,EAAA,wBAAA,EAAA,uBAAA,EAAA,wBAAA,EAAA,8BAAA,EAAA,uBAAA,EAAA,YAAA,EAAA,oBAAA,EAAA,wBAAA,EAAA,mBAAA,EAAA,yBAAA,EAAA,WAAA,EAAA,gBAAA,EAAA,sBAAA,EAAA,wBAAA,EAAA,gBAAA,EAAA,yBAAA,EAAA,+BAAA,EAAA,mBAAA,EAAA,UAAA,EAAA,yBAAA,EAAA,4BAAA,EAAA,wBAAA,EAAA,6BAAA,EAAA,yBAAA,EAAA,2CAAA,EAAA,aAAA,EAAA,uBAAA,EAAA,gBAAA,EAAA,eAAA,EAAA,4BAAA,EAAA,WAAA,EAAA,gBAAA,EAAA,WAAA,EAAA,8BAAA,EAAA,mCAAA,EAAA,2BAAA,EAAA,gBAAA,EAAA,iBAAA,EAAA,6BAAA,EAAA,kBAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,uBAAA,EAAA,6BAAA,EAAA,oBAAA,EAAA,kBAAA,EAAA,sBAAA,EAAA,oBAAA,EAAA,oBAAA,EAAA,sBAAA,EAAA,mBAAA,EAAA,oBAAA,EAAA,yBAAA,EAAA,0BAAA,EAAA,sBAAA,EAAA,iBAAA,EAAA,2BAAA,EAAA,iCAAA,EAAA,sBAAA,EAAA,sBAAA,EAAA,mBAAA,EAAA,kBAAA,EAAA,wBAAA,EAAA,uCAAA,EAAA,UAAA,EAAA,2BAAA,EAAA,yBAAA,EAAA,+BAAA,EAAA,kBAAA,EAAA,qBAAA,EAAA,cAAA,EAAA,SAAA,EAAA,4BAAA,EAAA,2CAAA,EAAA,YAAA,EAAA,mBAAA,EAAA,yBAAA,EAAA,2BAAA,EAAA,qBAAA,EAAA,kCAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,iCAAA,EAAA,yBAAA,EAAA,qBAAA,EAAA,sBAAA,EAAA,yBAAA,EAAA,qCAAA,EAAA,2BAAA,EAAA,wBAAA,EAAA,0BAAA,EAAA,+BAAA,EAAA,iCAAA,EAAA,qCAAA,EAAA,oBAAA,EAAA,0BAAA,EAAA,4BAAA,EAAA,4BAAA,EAAA,0BAAA,EAAA,2BAAA,EAAA,0BAAA,EAAA,yBAAA,EAAA,iCAAA,EAAA,wBAAA,EAAA,4BAAA,EAAA,oCAAA,EAAA,gBAAA,EAAA,cAAA,EAAA,yBAAA,EAAA,wBAAA,EAAA,2BAAA,EAAA,mBAAA,EAAA,6BAAA,EAAA,yBAAA,EAAA,sBAAA,EAAA,mBAAA,EAAA,kBAAA,EAAA,qBAAA,EAAA,8BAAA,EAAA,cAAA,EAAA,cAAA,EAAA,YAAA,EAAA,mBAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,+BAAA,EAAA,OAAA,EAAA,WAAA,EAAA,UAAA,EAAA,UAAA,EAAA,eAAA,EAAA,2BAAA,EAAA,sBAAA,EAAA,sBAAA,EAAA,QAAA,EAAA,WAAA,EAAA,qBAAA,EAAA,kBAAA,EAAA,iBAAA,EAAA,qBAAA,EAAA,kBAAA,EAAA,kBAAA,EAAA,yBAAA,EAAA,2BAAA,EAAA,gCAAA,EAAA,0BAAA,EAAA,iBAAA,EAAA,0BAAA,EAAA,yBAAA,EAAA,wBAAA,EAAA,sBAAA,EAAA,sBAAA,EAAA,sBAAA,EAAA,iBAAA,EAAA,oBAAA,EAAA,eAAA,EAAA,eAAA,EAAA,aAAA,EAAA,2BAAA,EAAA,gBAAA,EAAA,sBAAA,EAAA,6BAAA,EAAA,wBAAA,EAAA,6BAAA,EAAA,0BAAA,EAAA,+BAAA,EAAA,aAAA,EAAA,eAAA,EAAA,+BAAA,EAAA,0BAAA,EAAA,gCAAA,EAAA,8BAAA,EAAA,mBAAA,EAAA,uBAAA,EAAA,uBAAA,EAAA,UAAA,EAAA,sBAAA,EAAA,sBAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,eAAA,EAAA,cAAA,EAAA,aAAA,EAAA,aAAA,EAAA,cAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,yBAAA,EAAA,sBAAA,EAAA,UAAA,EAAA,QAAA,EAAA,YAAA,EAAA,UAAA,EAAA,eAAA,EAAA,cAAA,EAAA,eAAA,EAAA,aAAA,EAAA,oBAAA,EAAA,wBAAA,EAAA,oBAAA,EAAA,mBAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,yBAAA,EAAA,uBAAA,EAAA,yBAAA,EAAA,uBAAA,EAAA,kBAAA,EAAA,iBAAA,EAAA,iBAAA,EAAA,oBAAA,EAAA,oBAAA,EAAA,mBAAA,EAAA,mBAAA,EAAA,aAAA,EAAA,WAAA,EAAA,aAAA,EAAA,WAAA,EAAA,kBAAA,EAAA,gBAAA,EAAA,cAAA,EAAA,eAAA,EAAA,gBAAA,EAAA,qCAAA,EAAA,cAAA,EAAA,4BAAA,EAAA,qBAAA,EAAA,gBAAA,EAAA,aAAA,EAAA,WAAA,EAAA,kBAAA,EAAA,mBAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,mBAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,eAAA,EAAA,aAAA,EAAA,aAAA,EAAA,mBAAA,EAAA,cAAA,EAAA,aAAA,EAAA,cAAA,EAAA,YAAA,EAAA,uBAAA,EAAA,gBAAA,EAAA,qBAAA,EAAA,sBAAA,EAAA,gBAAA,EAAA,gBAAA,EAAA,0BAAA,EAAA,gBAAA,EAAA,aAAA,EAAA,mBAAA,EAAA,aAAA,EAAA,eAAA,EAAA,cAAA,EAAA,eAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,aAAA,EAAA,kBAAA,EAAA,iBAAA,EAAA,uBAAA,EAAA,aAAA,EAAA,aAAA,EAAA,aAAA,EAAA,6BAAA,EAAA,0BAAA,EAAA,0BAAA,EAAA,4BAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FD4Ba,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAPjC,SAAS;AACG,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,gBAAgB,EAAA,eAAA,EAGT,uBAAuB,CAAC,MAAM,cACnC,KAAK,EAAA,QAAA,EAAA,4aAAA,EAAA,MAAA,EAAA,CAAA,+CAAA,CAAA,EAAA;;sBAOhB;;sBACA,KAAK;uBAAC,EAAE,QAAQ,EAAE,IAAI,EAAE;;sBACxB;;sBACA,KAAK;uBAAC,EAAE,QAAQ,EAAE,IAAI,EAAE;;sBACxB;;sBACA;;sBACA;;sBACA,KAAK;uBAAC,EAAE,QAAQ,EAAE,IAAI,EAAE;;sBACxB;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;;MEjDS,2BAA2B,CAAA;AALxC,IAAA,WAAA,GAAA;QAMG,IAAA,CAAA,QAAQ,GAAY,KAAK;QACzB,IAAA,CAAA,UAAU,GAAY,KAAK;AAQ7B,IAAA;AANS,IAAA,MAAM,CAAC,MAAW,EAAA;QACtB,IAAI,MAAM,IAAI,aAAa,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;AACxC,YAAA,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ;AAC/B,YAAA,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK;QAC5B;IACH;8GATU,2BAA2B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA3B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,2BAA2B,4FCRxC,iIAGA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,qBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;2FDKa,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBALvC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,iCAAiC,cAE/B,KAAK,EAAA,QAAA,EAAA,iIAAA,EAAA;;;AENrB;MASa,kCAAkC,CAAA;AAN/C,IAAA,WAAA,GAAA;QAOG,IAAA,CAAA,WAAW,GAAW,EAAE;QACxB,IAAA,CAAA,WAAW,GAAW,EAAE;AAoB1B,IAAA;AAnBE,IAAA,MAAM,CAAC,MAAW,EAAA;AACf,QAAA,IAAI,MAAM,IAAI,MAAM,CAAC,KAAK,EAAE;AACzB;AACiE;YACjE,IAAI,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC;YAC7C,IAAI,OAAO,EAAE;AACV,gBAAA,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,CAAC,CAAC;AAC7B,gBAAA,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,KAAK;YAClC;iBAAO;AACJ,gBAAA,IAAI,MAAM,CAAC,KAAK,EAAE;AACf,oBAAA,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,KAAK;oBAC/B,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW;gBAC7C;YACH;AACA,YAAA,IAAI,IAAI,CAAC,WAAW,EAAE;gBACnB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE;YACpD;QACH;IACH;8GArBU,kCAAkC,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAlC,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,kCAAkC,iFCT/C,+dAeA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;2FDNa,kCAAkC,EAAA,UAAA,EAAA,CAAA;kBAN9C,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,sBAAsB,cAGpB,KAAK,EAAA,QAAA,EAAA,+dAAA,EAAA;;;MEER,2BAA2B,CAAA;AAE9B,IAAA,MAAM,CAAC,MAAW,EAAA;QACtB,IAAI,MAAM,IAAI,aAAa,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;AACxC,YAAA,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,KAAK;QAC3B;IACH;8GANU,2BAA2B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA3B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,2BAA2B,4FCTxC,sBACA,EAAA,CAAA,CAAA;;2FDQa,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBALvC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,iCAAiC,cAE/B,KAAK,EAAA,QAAA,EAAA,sBAAA,EAAA;;;MEER,4BAA4B,CAAA;AAEtC,IAAA,MAAM,CAAC,MAAW,EAAA;QACf,IAAI,MAAM,IAAI,aAAa,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;AACxC,YAAA,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK;QAC5B;IACH;8GANU,4BAA4B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA5B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,4BAA4B,yECTzC,iDACA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,cAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,QAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;2FDQa,4BAA4B,EAAA,UAAA,EAAA,CAAA;kBANxC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,cAAc,cAGZ,KAAK,EAAA,QAAA,EAAA,iDAAA,EAAA;;;MEIR,0BAA0B,CAAA;AAPvC,IAAA,WAAA,GAAA;AAQW,QAAA,IAAA,CAAA,WAAW,GAAG,MAAM,CAAC,iBAAiB,CAAC;QAGxC,IAAA,CAAA,aAAa,GAAY,KAAK;QAC9B,IAAA,CAAA,cAAc,GAAY,KAAK;QAS/B,IAAA,CAAA,aAAa,GAAY,IAAI;AAkDtC,IAAA;AAhDS,IAAA,MAAM,CAAC,MAAqB,EAAA;AAChC,QAAA,IAAI,CAAC,MAAM,GAAG,MAAM;QACpB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK;AACxC,QAAA,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO;QAC7B,IAAI,CAAC,eAAe,GAAG,MAAM,CAAC,OAAO,CAAC,eAAe;AACrD,QAAA,IAAI,CAAC,YAAY,GAAI,MAAc,CAAC,YAAY;QAChD,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,KAAK,kBAAkB,EAAE;AAClD,YAAA,IAAI,CAAC,aAAa,GAAG,KAAK;QAC7B;IACH;IAEO,aAAa,GAAA;QACjB,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC;IAC5D;IAEO,eAAe,CAAC,KAAa,EAAE,KAAU,EAAA;QAC7C,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC;QAElG,UAAU,CAAC,MAAK;YACb,IAAI,CAAC,sBAAsB,EAAE;QAChC,CAAC,EAAE,CAAC,CAAC;AACL,QAAA,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC;AAC5B,QAAA,IAAI,CAAC,QAAQ,GAAG,WAAW,CAAC,MAAK;YAC9B,IAAI,CAAC,sBAAsB,EAAE;QAChC,CAAC,EAAE,IAAI,CAAC;IACX;IACQ,sBAAsB,GAAA;QAC3B,MAAM,SAAS,GAAG,IAAI,CAAC,eAAe,CAAC,cAAc,CAAC,SAAS;QAC/D,IAAI,SAAS,EAAE;YACZ,IAAI,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,MAAM,EAAE;AACtC,gBAAA,IAAI,CAAC,cAAc,GAAG,IAAI;AAC1B,gBAAA,IAAI,CAAC,aAAa,GAAG,KAAK;YAC7B;iBAAO;AACJ,gBAAA,IAAI,CAAC,cAAc,GAAG,KAAK;YAC9B;YACA,IAAI,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,KAAK,EAAE;AACrC,gBAAA,IAAI,CAAC,cAAc,GAAG,KAAK;AAC3B,gBAAA,IAAI,CAAC,aAAa,GAAG,IAAI;YAC5B;iBAAO;AACJ,gBAAA,IAAI,CAAC,aAAa,GAAG,KAAK;YAC7B;QACH;AACA,QAAA,IAAI,CAAC,WAAW,CAAC,aAAa,EAAE;IACnC;AACA,IAAA,OAAO,CAAC,MAAqB,EAAA;AAC1B,QAAA,OAAO,IAAI;IACd;IACA,gBAAgB,CAAE,MAAgC,EAAA,EAAS;8GA/DjD,0BAA0B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAA1B,0BAA0B,EAAA,YAAA,EAAA,KAAA,EAAA,QAAA,EAAA,8BAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,YAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,YAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,IAAA,EAeH,UAAU,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EC1B9C,0tDA+CA,EAAA,MAAA,EAAA,CAAA,wPAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FDpCa,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBAPtC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,8BAA8B,EAAA,eAAA,EAGvB,uBAAuB,CAAC,MAAM,cACnC,KAAK,EAAA,QAAA,EAAA,0tDAAA,EAAA,MAAA,EAAA,CAAA,wPAAA,CAAA,EAAA;;sBAiBjB,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,YAAY,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE;;;MElBnC,+BAA+B,CAAA;AAL5C,IAAA,WAAA,GAAA;QAMG,IAAA,CAAA,QAAQ,GAAY,KAAK;QACzB,IAAA,CAAA,UAAU,GAAY,KAAK;AAQ7B,IAAA;AANS,IAAA,MAAM,CAAC,MAAW,EAAA;QACtB,IAAI,MAAM,IAAI,aAAa,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;AACxC,YAAA,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ;AAC/B,YAAA,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK;QAC5B;IACH;8GATU,+BAA+B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA/B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,+BAA+B,kGCR5C,gGAGA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,qBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;2FDKa,+BAA+B,EAAA,UAAA,EAAA,CAAA;kBAL3C,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,uCAAuC,cAErC,KAAK,EAAA,QAAA,EAAA,gGAAA,EAAA;;;MEGR,mCAAmC,CAAA;AAEtC,IAAA,MAAM,CAAC,MAAW,EAAA;QACtB,IAAI,MAAM,IAAI,aAAa,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;AACxC,YAAA,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,KAAK;QAC3B;IACH;8GANU,mCAAmC,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAnC,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,mCAAmC,sGCThD,gDACA,EAAA,CAAA,CAAA;;2FDQa,mCAAmC,EAAA,UAAA,EAAA,CAAA;kBAL/C,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,2CAA2C,cAEzC,KAAK,EAAA,QAAA,EAAA,gDAAA,EAAA;;;MEER,yBAAyB,CAAA;AAInC,IAAA,OAAO,CAAC,MAAW,EAAA;QAChB,IAAI,CAAC,eAAe,GAAG;YACpB,SAAS,EAAE,MAAM,CAAC,IAAI;AACtB,YAAA,MAAM,EAAE,MAAM;SAChB;AACD,QAAA,OAAO,IAAI;IACd;AAEA,IAAA,MAAM,CAAC,MAA2B,EAAA;AAC/B,QAAA,IAAI,CAAC,QAAQ,GAAI,MAAc,CAAC,YAAY,CAAC;AAC7C,QAAA,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;IACvB;8GAfU,yBAAyB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAzB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,yBAAyB,kFAHxB,CAAA,sFAAA,CAAwF,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;2FAGzF,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBALrC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,uBAAuB;AACjC,oBAAA,QAAQ,EAAE,CAAA,sFAAA,CAAwF;AAClG,oBAAA,UAAU,EAAE;AACf,iBAAA;;;MC8DY,kBAAkB,CAAA;8GAAlB,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAlB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,kBAAkB,iBA3CzB,0CAA0C;YAC1C,2BAA2B;YAC3B,qBAAqB;YAErB,0BAA0B;YAC1B,kBAAkB;YAClB,oBAAoB;;YAGpB,2BAA2B;YAC3B,2BAA2B;YAC3B,kCAAkC;YAClC,4BAA4B;YAC5B,+BAA+B;YAC/B,mCAAmC;YACnC,yBAAyB;;YAGzB,qBAAqB;YACrB,qBAAqB;YACrB,mBAAmB;AACnB,YAAA,qBAAqB,CAAA,EAAA,OAAA,EAAA,CAvBd,YAAY,EAAE,YAAY,EAAE,iBAAiB,EAAE,WAAW,EAAE,wBAAwB,EAAE,gBAAgB,aA0B7G,qBAAqB;YACrB,kBAAkB;;YAGlB,2BAA2B;YAC3B,2BAA2B;YAC3B,kCAAkC;YAClC,4BAA4B;YAC5B,mCAAmC;YACnC,yBAAyB;YAEzB,0BAA0B;;YAE1B,qBAAqB;YACrB,qBAAqB;YACrB,mBAAmB;YACnB,qBAAqB,CAAA,EAAA,CAAA,CAAA;+GAGd,kBAAkB,EAAA,OAAA,EAAA,CA7ClB,YAAY,EAAE,YAAY,EAAE,iBAAiB,EAAE,WAAW,EAAE,wBAAwB,EAAE,gBAAgB,CAAA,EAAA,CAAA,CAAA;;2FA6CtG,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBA9C9B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,OAAO,EAAE,CAAC,YAAY,EAAE,YAAY,EAAE,iBAAiB,EAAE,WAAW,EAAE,wBAAwB,EAAE,gBAAgB,CAAC;AACjH,oBAAA,YAAY,EAAE;wBACX,0CAA0C;wBAC1C,2BAA2B;wBAC3B,qBAAqB;wBAErB,0BAA0B;wBAC1B,kBAAkB;wBAClB,oBAAoB;;wBAGpB,2BAA2B;wBAC3B,2BAA2B;wBAC3B,kCAAkC;wBAClC,4BAA4B;wBAC5B,+BAA+B;wBAC/B,mCAAmC;wBACnC,yBAAyB;;wBAGzB,qBAAqB;wBACrB,qBAAqB;wBACrB,mBAAmB;wBACnB,qBAAqB;AACvB,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACN,qBAAqB;wBACrB,kBAAkB;;wBAGlB,2BAA2B;wBAC3B,2BAA2B;wBAC3B,kCAAkC;wBAClC,4BAA4B;wBAC5B,mCAAmC;wBACnC,yBAAyB;wBAEzB,0BAA0B;;wBAE1B,qBAAqB;wBACrB,qBAAqB;wBACrB,mBAAmB;wBACnB,qBAAqB;AACvB,qBAAA;AACH,iBAAA;;;MCnEY,kCAAkC,CAAA;AAQ5C,IAAA,WAAA,GAAA;QACG,IAAI,CAAC,eAAe;AACpB,QAAA,IAAI,CAAC,EAAE,GAAG,IAAI;QACd,IAAI,CAAC,QAAQ,GAAG,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE;IAC9C;AACA,IAAA,MAAM,CAAC,MAAW,EAAA;AACf,QAAA,IAAI,MAAM,IAAI,MAAM,CAAC,IAAI,EAAE;AACxB,YAAA,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI;AACvB,YAAA,IAAI,CAAC,eAAe,GAAG,MAAM,CAAC,UAAU;AACxC,YAAA,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO;YAC7B,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,OAAO,CAAC,SAAS;YACzC,IAAI,CAAC,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,EAAE;;YAExB,UAAU,CAAC,MAAK;AACb,gBAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,SAAS,EAAE;gBAC1C,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,eAAe,EAAE;YACjD,CAAC,EAAE,CAAC,CAAC;YACL,UAAU,CAAC,MAAK;gBACb,IAAI,CAAC,6CAA6C,EAAE;YACvD,CAAC,EAAE,IAAI,CAAC;QACX;IACH;IACA,SAAS,GAAA;QACN,MAAM,MAAM,GAAG,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC;QACrD,IAAI,MAAM,EAAE;YACT,OAAO,MAAM,CAAC,YAAY;QAC7B;aAAO;AACJ,YAAA,OAAO,GAAG;QACb;IACH;AACA;;AAEmK;IACnK,6CAA6C,GAAA;QAC1C,MAAM,MAAM,GAAG,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC;QACrD,IAAI,MAAM,EAAE;AACT,YAAA,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,MAAM;QAC/B;IACH;AACF;;ACjDD;AACA;AACM,SAAU,kBAAkB,CAAC,EAAU,EAAE,EAAU,EAAA;AACtD,IAAA,OAAO,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAsCX;AACA;AACA;AACM,SAAU,cAAc,CAAC,EAAU,EAAE,EAAU,EAAA;AAClD,IAAA,OAAO,CAAC;;;;;;;;;;;;;;;;;;;;;AAqBX;;AC7DA,SAAS,uBAAuB,GAAA;IAC7B,OAAO;AACJ,QAAA,iBAAiB,EAAE,IAAI;AACvB,QAAA,YAAY,EAAE,IAAI;AAClB,QAAA,QAAQ,EAAE,IAAI;AACd,QAAA,SAAS,EAAE,IAAI;AACf,QAAA,MAAM,EAAE,cAAc;AACtB,QAAA,QAAQ,EAAE,CAAC,gBAAgB,EAAE,eAAe,CAAC;AAC7C,QAAA,kBAAkB,EAAE,IAAI;KAC1B;AACJ;SACgB,eAAe,GAAA;IAC5B,OAAO;AACJ,QAAA,UAAU,EAAE,SAAS;QACrB,EAAE,EAAE,MAAM;QACV,QAAQ,EAAE,cAAc,EAAE;KAC5B;AACJ;SACgB,gBAAgB,GAAA;IAC7B,OAAO;AACJ,QAAA,UAAU,EAAE,SAAS;AACrB,QAAA,EAAE,EAAE,MAAM;QACV,QAAQ,EAAE,gBAAgB,EAAE;KAC9B;AACJ;SACgB,cAAc,GAAA;IAC3B,OAAO;AACJ,QAAA;AACG,YAAA,UAAU,EAAE,SAAS;AACrB,YAAA,KAAK,EAAE,aAAa;AACpB,YAAA,YAAY,EAAE,2BAA2B;AACzC,YAAA,kBAAkB,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE;AACtC,YAAA,UAAU,EAAE,kBAAkB;AAC9B,YAAA,MAAM,EAAE,cAAc;AACtB,YAAA,KAAK,EAAE,GAAG;AACZ,SAAA;AACD,QAAA;AACG,YAAA,UAAU,EAAE,YAAY;AACxB,YAAA,KAAK,EAAE,WAAW;AAClB,YAAA,KAAK,EAAE,GAAG;AACV,YAAA,MAAM,EAAE,IAAI;AACZ,YAAA,YAAY,EAAE,2BAA2B;AAC3C,SAAA;AACD,QAAA;AACG,YAAA,UAAU,EAAE,UAAU;AACtB,YAAA,KAAK,EAAE,cAAc;AACrB,YAAA,YAAY,EAAE,2BAA2B;AACzC,YAAA,kBAAkB,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE;AACtC,YAAA,UAAU,EAAE,kBAAkB;AAC9B,YAAA,KAAK,EAAE,GAAG;AACV,YAAA,MAAM,EAAE,cAAc;AACxB,SAAA;AACD,QAAA;AACG,YAAA,UAAU,EAAE,aAAa;AACzB,YAAA,KAAK,EAAE,YAAY;AACnB,YAAA,KAAK,EAAE,GAAG;AACV,YAAA,MAAM,EAAE,IAAI;AACZ,YAAA,YAAY,EAAE,2BAA2B;AAC3C,SAAA;KACH;AACJ;AACA,SAAS,gBAAgB,GAAA;IACtB,OAAO;AACJ,QAAA;AACG,YAAA,UAAU,EAAE,SAAS;AACrB,YAAA,KAAK,EAAE,aAAa;AACpB,YAAA,YAAY,EAAE,2BAA2B;AACzC,YAAA,kBAAkB,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE;AACtC,YAAA,UAAU,EAAE,kBAAkB;AAC9B,YAAA,MAAM,EAAE,cAAc;AACtB,YAAA,KAAK,EAAE,GAAG;AACZ,SAAA;AACD,QAAA;AACG,YAAA,UAAU,EAAE,YAAY;AACxB,YAAA,KAAK,EAAE,WAAW;AAClB,YAAA,KAAK,EAAE,GAAG;AACV,YAAA,MAAM,EAAE,IAAI;AACZ,YAAA,YAAY,EAAEG,qCAAmC;AACnD,SAAA;AACD,QAAA;AACG,YAAA,UAAU,EAAE,UAAU;AACtB,YAAA,KAAK,EAAE,cAAc;AACrB,YAAA,YAAY,EAAE,2BAA2B;AACzC,YAAA,kBAAkB,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE;AACtC,YAAA,UAAU,EAAE,kBAAkB;AAC9B,YAAA,KAAK,EAAE,GAAG;AACV,YAAA,MAAM,EAAE,cAAc;AACxB,SAAA;AACD,QAAA;AACG,YAAA,UAAU,EAAE,aAAa;AACzB,YAAA,KAAK,EAAE,YAAY;AACnB,YAAA,KAAK,EAAE,GAAG;AACV,YAAA,MAAM,EAAE,IAAI;AACZ,YAAA,YAAY,EAAEA,qCAAmC;AACnD,SAAA;KACH;AACJ;;MChGa,qBAAqB,CAAA;AADlC,IAAA,WAAA,GAAA;QAEG,IAAA,CAAA,oBAAoB,GAAqB,IAAI;QAC7C,IAAA,CAAA,gBAAgB,GAAG,KAAK;QACxB,IAAA,CAAA,gBAAgB,GAAG,KAAK;QACxB,IAAA,CAAA,qBAAqB,GAAG,KAAK;QAC7B,IAAA,CAAA,yBAAyB,GAAG,IAAI;QAChC,IAAA,CAAA,gBAAgB,GAAQ,EAAE;QAC1B,IAAA,CAAA,sBAAsB,GAAG,KAAK;QAC9B,IAAA,CAAA,mBAAmB,GAAG,KAAK;QAC3B,IAAA,CAAA,qBAAqB,GAAG,KAAK;QAC7B,IAAA,CAAA,kBAAkB,GAAG,KAAK;AA4X5B,IAAA;IAzXS,0BAA0B,GAAA;AAC9B;;;;;;AAMG;QACH,UAAU,CAAC,MAAK;AACb,YAAA,IAAI,CAAC,gBAAgB,GAAG,KAAK;AAC7B,YAAA,IAAI,CAAC,QAAQ,GAAG,EAAE;QACrB,CAAC,EAAE,CAAC,CAAC;IACR;AACO,IAAA,4BAA4B,CAAC,WAAwB,EAAA;AACzD,QAAA,WAAW,CAAC,eAAe,GAAG,CAAC,CAAC,KAAI;AACjC,YAAA,IAAI,IAAI,CAAC,gBAAgB,KAAK,KAAK,EAAE;gBAClC;YACH;AACA,YAAA,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC;AACjC,YAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI;AAC5B,YAAA,IAAI,IAAI,CAAC,oBAAoB,EAAE;AAC5B,gBAAA,IAAI,CAAC,oBAAoB,GAAG,IAAI;AAChC,gBAAA,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC;YACpC;YACA,MAAM,WAAW,GAAG,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC;YAC1C,IAAI,CAAC,oBAAoB,GAAG;gBACzB,SAAS,EAAE,WAAW,CAAC,CAAC;gBACxB,SAAS,EAAE,WAAW,CAAC,CAAC;gBACxB,OAAO,EAAE,WAAW,CAAC,CAAC;gBACtB,OAAO,EAAE,WAAW,CAAC,CAAC;aACxB;AACD,YAAA,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC;AACpC,QAAA,CAAC;AACD,QAAA,WAAW,CAAC,eAAe,GAAG,CAAC,CAAC,KAAI;YACjC,MAAM,WAAW,GAAG,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC;AAC1C,YAAA,IAAI,IAAI,CAAC,qBAAqB,KAAK,KAAK,EAAE;gBACvC;YACH;YACA,IAAI,CAAC,IAAI,CAAC,oBAAoB,IAAI,IAAI,CAAC,gBAAgB,IAAI,KAAK,EAAE;gBAC/D;YACH;YACA,IAAI,CAAC,oBAAoB,GAAG;AACzB,gBAAA,SAAS,EAAE,IAAI,CAAC,oBAAoB,CAAC,SAAS;AAC9C,gBAAA,SAAS,EAAE,IAAI,CAAC,oBAAoB,CAAC,SAAS;gBAC9C,OAAO,EAAE,WAAW,CAAC,CAAC;gBACtB,OAAO,EAAE,WAAW,CAAC,CAAC;aACxB;AACD,YAAA,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC;AACpC,QAAA,CAAC;IACJ;AACO,IAAA,gBAAgB,CAAC,KAAa,EAAE,IAAY,EAAE,IAAY,EAAA;QAC9D,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE;AAC/B,YAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,GAAG,EAAE;QACnC;QACA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,KAAK;IAC5C;AACO,IAAA,aAAa,CAAC,WAAwB,EAAA;QAC1C,IAAI,CAAC,WAAW,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE;YACvD;QACH;QACA,MAAM,KAAK,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC;AAC7C,QAAA,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE,iBAAiB,CAAC;QAC3C,IAAI,UAAU,GAAG,CAAC;QAClB,IAAI,WAAW,GAAG,EAAE;QACpB,MAAM,IAAI,GAAG,WAAW,CAAC,SAAS,CAAC,cAAc,EAAE;QACnD,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,oBAAoB,CAAC,SAAS,EAAE,CAAC,IAAI,IAAI,CAAC,oBAAoB,CAAC,OAAO,EAAE,CAAC,EAAE,EAAE;YAC5F,MAAM,GAAG,GAAG,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC;YACxC,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,oBAAoB,CAAC,SAAS,EAAE,CAAC,IAAI,IAAI,CAAC,oBAAoB,CAAC,OAAO,EAAE,CAAC,EAAE,EAAE;gBAC5F,MAAM,EAAE,GAAG,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC;AACvC,gBAAA,WAAW,GAAG,qBAAqB,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAChE,gBAAA,EAAE,CAAC,SAAS,GAAG,WAAW;AAC1B,gBAAA,MAAM,IAAI,GAAG,IAAI,CAAC,wBAAwB,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;AAC5D,gBAAA,IAAI,CAAC,qBAAqB,CAAC,IAAI,EAAE,gBAAgB,CAAC;gBAClD,UAAU,CAAC,MAAK;AACb,oBAAA,IAAI,CAAC,0BAA0B,CAAC,IAAI,EAAE,gBAAgB,CAAC;gBAC1D,CAAC,EAAE,IAAI,CAAC;AACR,gBAAA,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC;AACnB,gBAAA,UAAU,EAAE;YACf;AACA,YAAA,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC;QACzB;AACA,QAAA,IAAI,UAAU,KAAK,CAAC,EAAE;;YAEnB,0BAA0B,CAAC,WAAW,CAAC;QAC1C;aAAO;;AAEJ,YAAA,QAAQ,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC;YAC3D,IAAI,CAAC,eAAe,EAAE;YACtB,MAAM,IAAI,GAAG,QAAQ,CAAC,cAAc,CAAC,iBAAiB,CAAC;AACvD,YAAA,IAAI,IAAI,IAAI,IAAI,CAAC,UAAU,EAAE;AAC1B,gBAAA,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC;YACpC;QACH;IACH;IACO,eAAe,GAAA;QACnB,MAAM,GAAG,GAAG,QAAQ,CAAC,cAAc,CAAC,iBAAiB,CAAC;AACtD,QAAA,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI;AAC1B,QAAA,IAAI,KAAU;AACd,QAAA,IAAI,GAAQ;QACZ,IAAI,QAAQ,CAAC,WAAW,IAAI,MAAM,CAAC,YAAY,EAAE;AAC9C,YAAA,KAAK,GAAG,QAAQ,CAAC,WAAW,EAAE;AAC9B,YAAA,GAAG,GAAG,MAAM,CAAC,YAAY,EAAE;YAC3B,GAAG,CAAC,eAAe,EAAE;AACrB,YAAA,IAAI;AACD,gBAAA,KAAK,CAAC,kBAAkB,CAAC,GAAG,CAAC;AAC7B,gBAAA,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC;YACtB;YAAE,OAAO,CAAC,EAAE;AACT,gBAAA,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC;AACrB,gBAAA,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC;YACtB;QACH;AAAO,aAAA,IAAK,IAAY,CAAC,eAAe,EAAE;AACvC,YAAA,KAAK,GAAI,IAAY,CAAC,eAAe,EAAE;AACvC,YAAA,KAAK,CAAC,iBAAiB,CAAC,GAAG,CAAC;YAC5B,KAAK,CAAC,MAAM,EAAE;QACjB;AACA,QAAA,QAAQ,CAAC,WAAW,CAAC,MAAM,CAAC;IAC/B;AACO,IAAA,cAAc,CAAC,SAA6B,EAAA;AAChD,QAAA,MAAM,KAAK,GAAI,SAAS,CAAC,MAAc,CAAC,KAAK;QAC7C,MAAM,WAAW,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,SAAS,CAAC,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC,IAAI,CAAC,QAAQ,GAAG,CAAC,EAAE;QACtF,MAAM,KAAK,GAAG,SAAS,CAAC,SAAS,CAAC,cAAc,EAAE;QAClD,IAAI,GAAG,GAAG,CAAC;AACX,QAAA,KAAK,MAAM,GAAG,IAAI,KAAK,EAAE;AACtB,YAAA,IAAI,GAAG,CAAC,KAAK,KAAK,KAAK,EAAE;AACtB,gBAAA,WAAW,CAAC,CAAC,GAAG,GAAG;gBACnB;YACH;AACA,YAAA,GAAG,EAAE;QACR;AACA,QAAA,OAAO,WAAW;IACrB;AACO,IAAA,oBAAoB,CAAC,KAAa,EAAE,QAAgB,EAAE,WAA0B,EAAA;QACpF,MAAM,WAAW,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,QAAQ,EAAE;QACzC,IAAI,GAAG,GAAG,CAAC;AACX,QAAA,KAAK,MAAM,GAAG,IAAI,WAAW,EAAE;AAC5B,YAAA,IAAI,GAAG,CAAC,KAAK,KAAK,KAAK,EAAE;AACtB,gBAAA,WAAW,CAAC,CAAC,GAAG,GAAG;gBACnB;YACH;AACA,YAAA,GAAG,EAAE;QACR;AACA,QAAA,OAAO,WAAW;IACrB;IACQ,wBAAwB,CAAC,QAAgB,EAAE,KAAa,EAAA;AAC7D,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;AACjB,YAAA,IAAI,CAAC,QAAQ,GAAG,EAAE;QACrB;QACA,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE;AAC3B,YAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,EAAE;QAC/B;aAAO;YACJ,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,EAAE;gBACjC,OAAO,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC;YACxC;QACH;QACA,MAAM,IAAI,GAAG,QAAQ,CAAC,gBAAgB,CAAC,CAAA,YAAA,EAAe,QAAQ,CAAA,EAAA,CAAI,CAAC;AACnE,QAAA,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;AACpB,YAAA,OAAO,IAAI;QACd;AACA,QAAA,IAAI,UAAU;AACd,QAAA,KAAK,MAAM,CAAC,IAAI,IAAW,EAAE;YAC1B,IAAI,CAAC,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;gBACxB,UAAU,GAAG,CAAC;YACjB;QACH;QACA,IAAI,CAAC,UAAU,EAAE;AACd,YAAA,OAAO,IAAI;QACd;AACA,QAAA,MAAM,KAAK,GAAG,UAAU,CAAC,QAAQ;AACjC,QAAA,IAAI,WAAW;AACf,QAAA,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;YACvB,IAAI,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,KAAK,KAAK,EAAE;gBACxC,WAAW,GAAG,IAAI;YACrB;QACH;QACA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,GAAG,WAAW;AAC5C,QAAA,OAAO,WAAW;IACrB;IACQ,qBAAqB,CAAC,OAAoB,EAAE,UAAkB,EAAA;QACnE,MAAM,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC;QAClD,OAAO,CAAC,YAAY,CAAC,OAAO,EAAE,YAAY,GAAG,GAAG,GAAG,UAAU,CAAC;IACjE;IACQ,0BAA0B,CAAC,OAAoB,EAAE,gBAAwB,EAAA;QAC9E,IAAI,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC;QAChD,IAAI,YAAY,EAAE;YACf,YAAY,GAAG,YAAY,CAAC,OAAO,CAAC,gBAAgB,EAAE,EAAE,CAAC;AACzD,YAAA,OAAO,CAAC,YAAY,CAAC,OAAO,EAAE,YAAY,CAAC;QAC9C;IACH;AACO,IAAA,eAAe,CAAC,WAAwB,EAAA;QAC5C,MAAM,GAAG,GAAG,IAAI;;;AAGhB,QAAA,MAAM,CAAC,gBAAgB,CACpB,SAAS,EACT,UAAU,CAAM,EAAA;AACZ,YAAA,CAAS,GAAG,CAAC,IAAI,MAAM,CAAC,KAAK;YAC9B,MAAM,GAAG,GAAI,CAAS,CAAC,KAAK,IAAK,CAAS,CAAC,OAAO,CAAC;YACnD,MAAM,IAAI,GAAI,CAAS,CAAC,OAAO,GAAI,CAAS,CAAC,OAAO,GAAG,GAAG,KAAK,EAAE,GAAG,IAAI,GAAG,KAAK,CAAC;AACjF,YAAA,IAAI,GAAG,IAAI,EAAE,IAAI,IAAI,EAAE;AACpB,gBAAA,IAAI,GAAG,CAAC,oBAAoB,EAAE;AAC3B,oBAAA,GAAG,CAAC,aAAa,CAAC,WAAW,CAAC;gBACjC;YACH;QACH,CAAC,EACD,KAAK,CACP;IACJ;AACO,IAAA,eAAe,CAAC,WAAwB,EAAA;AAC5C,QAAA,IAAI,CAAC,WAAW,IAAI,CAAC,WAAW,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,oBAAoB,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE;YAC3F;QACH;AACA,QAAA,IAAI,CAAC,yBAAyB,GAAG,IAAI;QACrC,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,CAAC,gBAAgB,EAAE;AAChD,QAAA,MAAM,IAAI,GAAG,WAAW,CAAC;AACrB,aAAA,6BAA6B;aAC7B,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,KAAK,EAAG,CAAS,CAAC,KAAK,EAAE,KAAK,EAAG,CAAS,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;QAC7E,MAAM,KAAK,GAAG,WAAW,CAAC,SAAS,CAAC,6BAA6B,EAAE;QACnE,MAAM,OAAO,GAAG,WAAW,CAAC,SAAS,CAAC,cAAc,EAAE;AACtD,QAAA,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;AACvB,YAAA,KAAK,MAAM,CAAC,IAAI,IAAI,EAAE;gBACnB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE;oBAChC;gBACH;AACA,gBAAA,IAAI,IAAI,CAAC,yBAAyB,KAAK,IAAI,EAAE;AAC1C,oBAAA,IAAI,CAAC,yBAAyB,GAAG,KAAK;oBACtC;gBACH;AACA,gBAAA,MAAM,WAAW,GAAG,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,QAAS,EAAE,OAAO,CAAC;AAC/E,gBAAA,MAAM,SAAS,GAAG,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC;AACtE,gBAAA,MAAM,YAAY,GAAG,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,QAAS,EAAE,CAAC,CAAC,KAAK,CAAC;gBAC3E,IAAI,CAAC,YAAY,EAAE;oBAChB;gBACH;AACA,gBAAA,IAAI,CAAC,0BAA0B,CAAC,YAAY,EAAE,kBAAkB,CAAC;AACjE,gBAAA,IAAI,CAAC,sBAAsB,CAAC,YAAY,CAAC;AACzC,gBAAA,IAAI,SAAS,KAAK,IAAI,EAAE;AACrB,oBAAA,MAAM,WAAW,GAAG,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC;oBACpE,IAAI,CAAC,qBAAqB,CAAC,YAAY,EAAE,mBAAmB,GAAG,WAAW,CAAC;AAC3E,oBAAA,IAAI,MAAM;oBACV,IAAI,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC;AAC9B,oBAAA,IAAI,CAAC,CAAC,KAAK,EAAE;wBACV,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC;oBAC7B;AACA,oBAAA,KAAK,MAAM,EAAE,IAAI,KAAK,EAAE;wBACrB,IAAI,CAAC,MAAM,EAAE;AACV,4BAAA,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;4BACtB;wBACH;AACA,wBAAA,IAAI,aAAa,CAAC,MAAM,CAAC,EAAE;AACxB,4BAAA,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC;wBACtB;6BAAO;4BACJ;wBACH;oBACH;AACA,oBAAA,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC;gBAC9D;YACH;QACH;IACH;AACQ,IAAA,sBAAsB,CAAC,YAAiB,EAAA;AAC7C,QAAA,IAAI,CAAC,0BAA0B,CAAC,YAAY,EAAE,qBAAqB,CAAC;AACpE,QAAA,IAAI,CAAC,0BAA0B,CAAC,YAAY,EAAE,oBAAoB,CAAC;AACnE,QAAA,IAAI,CAAC,0BAA0B,CAAC,YAAY,EAAE,sBAAsB,CAAC;AACrE,QAAA,IAAI,CAAC,0BAA0B,CAAC,YAAY,EAAE,uBAAuB,CAAC;IACzE;IACQ,iBAAiB,CAAC,IAAY,EAAE,IAAY,EAAA;AACjD,QAAA,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE;YAC7B;QACH;QACA,IAAI,CAAC,4BAA4B,EAAE;AACnC,QAAA,IACG,IAAI,IAAI,IAAI,CAAC,oBAAoB,CAAC,SAAS;AAC3C,YAAA,IAAI,IAAI,IAAI,CAAC,oBAAoB,CAAC,OAAO;AACzC,YAAA,IAAI,IAAI,IAAI,CAAC,oBAAoB,CAAC,SAAS;AAC3C,YAAA,IAAI,IAAI,IAAI,CAAC,oBAAoB,CAAC,OAAO,EAC1C;AACC,YAAA,IAAI,CAAC,sBAAsB,GAAG,IAAI;AAClC,YAAA,OAAO,IAAI;QACd;AACA,QAAA,IACG,IAAI,IAAI,IAAI,CAAC,oBAAoB,CAAC,SAAS;AAC3C,YAAA,IAAI,IAAI,IAAI,CAAC,oBAAoB,CAAC,OAAO;AACzC,YAAA,IAAI,IAAI,IAAI,CAAC,oBAAoB,CAAC,SAAS;AAC3C,YAAA,IAAI,IAAI,IAAI,CAAC,oBAAoB,CAAC,OAAO,EAC1C;AACC,YAAA,IAAI,CAAC,kBAAkB,GAAG,IAAI;AAC9B,YAAA,OAAO,IAAI;QACd;AACA,QAAA,IACG,IAAI,IAAI,IAAI,CAAC,oBAAoB,CAAC,SAAS;AAC3C,YAAA,IAAI,IAAI,IAAI,CAAC,oBAAoB,CAAC,OAAO;AACzC,YAAA,IAAI,IAAI,IAAI,CAAC,oBAAoB,CAAC,SAAS;AAC3C,YAAA,IAAI,IAAI,IAAI,CAAC,oBAAoB,CAAC,OAAO,EAC1C;AACC,YAAA,IAAI,CAAC,mBAAmB,GAAG,IAAI;AAC/B,YAAA,OAAO,IAAI;QACd;AACA,QAAA,IACG,IAAI,IAAI,IAAI,CAAC,oBAAoB,CAAC,SAAS;AAC3C,YAAA,IAAI,IAAI,IAAI,CAAC,oBAAoB,CAAC,OAAO;AACzC,YAAA,IAAI,IAAI,IAAI,CAAC,oBAAoB,CAAC,SAAS;AAC3C,YAAA,IAAI,IAAI,IAAI,CAAC,oBAAoB,CAAC,OAAO,EAC1C;AACC,YAAA,IAAI,CAAC,qBAAqB,GAAG,IAAI;AACjC,YAAA,OAAO,IAAI;QACd;AACA,QAAA,OAAO,KAAK;IACf;IACQ,4BAA4B,GAAA;AACjC,QAAA,IAAI,CAAC,sBAAsB,GAAG,KAAK;AACnC,QAAA,IAAI,CAAC,mBAAmB,GAAG,KAAK;AAChC,QAAA,IAAI,CAAC,qBAAqB,GAAG,KAAK;AAClC,QAAA,IAAI,CAAC,kBAAkB,GAAG,KAAK;IAClC;IACQ,aAAa,CAAC,IAAY,EAAE,IAAY,EAAA;AAC7C,QAAA,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE;YAC7B;QACH;QACA,IAAI,aAAa,GAAG,EAAE;AACtB,QAAA,IAAI,IAAI,CAAC,sBAAsB,KAAK,IAAI,EAAE;YACvC,IAAI,IAAI,KAAK,IAAI,CAAC,oBAAoB,CAAC,SAAS,EAAE;gBAC/C,aAAa,IAAI,sBAAsB;YAC1C;YACA,IAAI,IAAI,KAAK,IAAI,CAAC,oBAAoB,CAAC,SAAS,EAAE;gBAC/C,aAAa,IAAI,qBAAqB;YACzC;YACA,IAAI,IAAI,KAAK,IAAI,CAAC,oBAAoB,CAAC,OAAO,EAAE;gBAC7C,aAAa,IAAI,uBAAuB;YAC3C;YACA,IAAI,IAAI,KAAK,IAAI,CAAC,oBAAoB,CAAC,OAAO,EAAE;gBAC7C,aAAa,IAAI,wBAAwB;YAC5C;QACH;AACA,QAAA,IAAI,IAAI,CAAC,mBAAmB,KAAK,IAAI,EAAE;YACpC,IAAI,IAAI,KAAK,IAAI,CAAC,oBAAoB,CAAC,SAAS,EAAE;gBAC/C,aAAa,IAAI,sBAAsB;YAC1C;YACA,IAAI,IAAI,KAAK,IAAI,CAAC,oBAAoB,CAAC,SAAS,EAAE;gBAC/C,aAAa,IAAI,wBAAwB;YAC5C;YACA,IAAI,IAAI,KAAK,IAAI,CAAC,oBAAoB,CAAC,OAAO,EAAE;gBAC7C,aAAa,IAAI,uBAAuB;YAC3C;YACA,IAAI,IAAI,KAAK,IAAI,CAAC,oBAAoB,CAAC,OAAO,EAAE;gBAC7C,aAAa,IAAI,qBAAqB;YACzC;QACH;AACA,QAAA,IAAI,IAAI,CAAC,kBAAkB,KAAK,IAAI,EAAE;YACnC,IAAI,IAAI,KAAK,IAAI,CAAC,oBAAoB,CAAC,SAAS,EAAE;gBAC/C,aAAa,IAAI,uBAAuB;YAC3C;YACA,IAAI,IAAI,KAAK,IAAI,CAAC,oBAAoB,CAAC,SAAS,EAAE;gBAC/C,aAAa,IAAI,wBAAwB;YAC5C;YACA,IAAI,IAAI,KAAK,IAAI,CAAC,oBAAoB,CAAC,OAAO,EAAE;gBAC7C,aAAa,IAAI,sBAAsB;YAC1C;YACA,IAAI,IAAI,KAAK,IAAI,CAAC,oBAAoB,CAAC,OAAO,EAAE;gBAC7C,aAAa,IAAI,qBAAqB;YACzC;QACH;AACA,QAAA,IAAI,IAAI,CAAC,qBAAqB,KAAK,IAAI,EAAE;YACtC,IAAI,IAAI,KAAK,IAAI,CAAC,oBAAoB,CAAC,SAAS,EAAE;gBAC/C,aAAa,IAAI,uBAAuB;YAC3C;YACA,IAAI,IAAI,KAAK,IAAI,CAAC,oBAAoB,CAAC,SAAS,EAAE;gBAC/C,aAAa,IAAI,qBAAqB;YACzC;YACA,IAAI,IAAI,KAAK,IAAI,CAAC,oBAAoB,CAAC,OAAO,EAAE;gBAC7C,aAAa,IAAI,sBAAsB;YAC1C;YACA,IAAI,IAAI,KAAK,IAAI,CAAC,oBAAoB,CAAC,OAAO,EAAE;gBAC7C,aAAa,IAAI,wBAAwB;YAC5C;QACH;AACA,QAAA,OAAO,aAAa;IACvB;8GArYU,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAArB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,qBAAqB,cADR,MAAM,EAAA,CAAA,CAAA;;2FACnB,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBADjC,UAAU;mBAAC,EAAE,UAAU,EAAE,MAAM,EAAE;;MAwYrB,SAAS,CAAA;AAKrB;AACK,SAAU,0BAA0B,CAAC,KAAa,EAAA;AACrD,IAAA,MAAM,QAAQ,GAAG,qBAAqB,CAAC,KAAK,CAAC;IAC7C,MAAM,UAAU,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC;AAClD,IAAA,UAAU,CAAC,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC;AACvC,IAAA,UAAU,CAAC,YAAY,CAAC,IAAI,EAAE,iBAAiB,CAAC;AAChD,IAAA,UAAU,CAAC,KAAK,GAAG,QAAQ;AAC3B,IAAA,QAAQ,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,UAAU,CAAC;IAChE,UAAU,CAAC,MAAM,EAAE;AACnB,IAAA,UAAU,CAAC,iBAAiB,CAAC,CAAC,EAAE,KAAK,CAAC;AACtC,IAAA,QAAQ,CAAC,WAAW,CAAC,MAAM,CAAC;IAC5B,MAAM,IAAI,GAAG,QAAQ,CAAC,cAAc,CAAC,iBAAiB,CAAC;AACvD,IAAA,IAAI,IAAI,IAAI,IAAI,CAAC,UAAU,EAAE;AAC1B,QAAA,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC;IACpC;AACH;;MChaa,WAAW,CAAA;AAGvB;;ACHD;;AAEG;;;;"}