{"version":3,"file":"vts-voffice-ng-vts-tree-view.mjs","sources":["../../components/tree-view/node-base.ts","../../components/tree-view/utils.ts","../../components/tree-view/tree.ts","../../components/tree-view/indent.ts","../../components/tree-view/node.ts","../../components/tree-view/checkbox.ts","../../components/tree-view/option.ts","../../components/tree-view/outlet.ts","../../components/tree-view/padding.ts","../../components/tree-view/toggle.ts","../../components/tree-view/tree-view.ts","../../components/tree-view/tree-virtual-scroll-view.ts","../../components/tree-view/tree-view.module.ts","../../components/tree-view/data-source.ts","../../components/tree-view/public-api.ts","../../components/tree-view/vts-voffice-ng-vts-tree-view.ts"],"sourcesContent":["import { CdkTreeNode } from '@angular/cdk/tree';\r\n\r\nexport abstract class VtsNodeBase<T> extends CdkTreeNode<T> {\r\n  abstract setIndents(indents: boolean[]): void;\r\n  abstract isLeaf: boolean;\r\n}\r\n","/**\r\n * Use of this source code is governed by an MIT-style license that can be\r\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\r\n */\r\n\r\nexport function getParent<T>(nodes: T[], node: T, getLevel: (dataNode: T) => number): T | null {\r\n  let index = nodes.indexOf(node);\r\n  if (index < 0) {\r\n    return null;\r\n  }\r\n  const level = getLevel(node);\r\n  for (index--; index >= 0; index--) {\r\n    const preLevel = getLevel(nodes[index]);\r\n    if (preLevel + 1 === level) {\r\n      return nodes[index];\r\n    }\r\n    if (preLevel + 1 < level) {\r\n      return null;\r\n    }\r\n  }\r\n  return null;\r\n}\r\n\r\nexport function getNextSibling<T>(\r\n  nodes: T[],\r\n  node: T,\r\n  getLevel: (dataNode: T) => number,\r\n  _index?: number\r\n): T | null {\r\n  let index = typeof _index !== 'undefined' ? _index : nodes.indexOf(node);\r\n  if (index < 0) {\r\n    return null;\r\n  }\r\n  const level = getLevel(node);\r\n\r\n  for (index++; index < nodes.length; index++) {\r\n    const nextLevel = getLevel(nodes[index]);\r\n    if (nextLevel < level) {\r\n      return null;\r\n    }\r\n    if (nextLevel === level) {\r\n      return nodes[index];\r\n    }\r\n  }\r\n  return null;\r\n}\r\n\r\nexport function getPrevSibling<T>(\r\n  nodes: T[],\r\n  node: T,\r\n  getLevel: (dataNode: T) => number,\r\n  _index?: number\r\n): T | null {\r\n  let index = typeof _index !== 'undefined' ? _index : nodes.indexOf(node);\r\n  if (index < 0) {\r\n    return null;\r\n  }\r\n  const level = getLevel(node);\r\n\r\n  for (index--; index >= 0; index--) {\r\n    const prevLevel = getLevel(nodes[index]);\r\n    if (prevLevel < level) {\r\n      return null;\r\n    }\r\n    if (prevLevel === level) {\r\n      return nodes[index];\r\n    }\r\n  }\r\n  return null;\r\n}\r\n","/**\r\n * Use of this source code is governed by an MIT-style license that can be\r\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\r\n */\r\n\r\nimport { Direction, Directionality } from '@angular/cdk/bidi';\r\nimport { CdkTree, TreeControl } from '@angular/cdk/tree';\r\nimport {\r\n  ChangeDetectorRef,\r\n  Component,\r\n  Host,\r\n  Input,\r\n  IterableDiffer,\r\n  IterableDiffers,\r\n  OnChanges,\r\n  OnDestroy,\r\n  OnInit,\r\n  Optional,\r\n  SimpleChanges,\r\n  ViewContainerRef\r\n} from '@angular/core';\r\nimport { VtsNoAnimationDirective } from '@vts-voffice/ng-vts/core/no-animation';\r\nimport { Subject } from 'rxjs';\r\nimport { BooleanInput, NumberInput, VtsSafeAny, VtsSizeLMSType } from '@vts-voffice/ng-vts/core/types';\r\nimport { InputBoolean, InputNumber } from '@vts-voffice/ng-vts/core/util';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { DataSource } from '@angular/cdk/collections';\r\n\r\n@Component({ template: '' })\r\n//@ts-ignore\r\nexport class VtsTreeView<T, F> extends CdkTree<T> implements OnInit, OnDestroy, OnChanges {\r\n  static ngAcceptInputType_vtsShowLine: BooleanInput;\r\n  static ngAcceptInputType_vtsIndent: NumberInput;\r\n  static ngAcceptInputType_vtsInitialIndent: NumberInput;\r\n\r\n  private destroy$ = new Subject();\r\n  dir: Direction = 'ltr';\r\n  _dataSourceChanged = new Subject<void>();\r\n  _reRenderNodes = new Subject<void>();\r\n  @Input('vtsTreeControl') override treeControl!: TreeControl<T, VtsSafeAny>;\r\n  @Input('vtsDataSource')\r\n  override get dataSource(): DataSource<T> {\r\n    return super.dataSource as DataSource<T>;\r\n  }\r\n  override set dataSource(dataSource: DataSource<T>) {\r\n    super.dataSource = dataSource;\r\n  }\r\n  @Input() @InputNumber() vtsIndent: number = 24;\r\n  @Input() @InputNumber() vtsInitialIndent: number = 8;\r\n  @Input() @InputBoolean() vtsShowLine = false;\r\n  @Input() vtsSize: VtsSizeLMSType = 'md';\r\n\r\n  constructor(\r\n    protected differs: IterableDiffers,\r\n    protected changeDetectorRef: ChangeDetectorRef,\r\n    @Host() @Optional() public noAnimation?: VtsNoAnimationDirective,\r\n    @Optional() private directionality?: Directionality\r\n  ) {\r\n    super(differs, changeDetectorRef);\r\n  }\r\n\r\n  override ngOnInit(): void {\r\n    super.ngOnInit();\r\n\r\n    if (this.directionality) {\r\n      this.dir = this.directionality.value;\r\n      this.directionality.change\r\n        ?.pipe(takeUntil(this.destroy$))\r\n        .subscribe((direction: Direction) => {\r\n          this.dir = direction;\r\n          this.changeDetectorRef.detectChanges();\r\n        });\r\n    }\r\n  }\r\n\r\n  ngOnChanges(changes: SimpleChanges): void {\r\n    const { vtsShowLine } = changes;\r\n    if (vtsShowLine) {\r\n      this._reRenderNodes.next();\r\n    }\r\n  }\r\n\r\n  override ngOnDestroy(): void {\r\n    super.ngOnDestroy();\r\n    this.destroy$.next();\r\n    this.destroy$.complete();\r\n  }\r\n\r\n  override renderNodeChanges(\r\n    data: T[] | ReadonlyArray<T>,\r\n    dataDiffer?: IterableDiffer<T>,\r\n    viewContainer?: ViewContainerRef,\r\n    parentData?: T\r\n  ): void {\r\n    super.renderNodeChanges(data, dataDiffer, viewContainer, parentData);\r\n    this._dataSourceChanged.next();\r\n  }\r\n}\r\n","/**\r\n * Use of this source code is governed by an MIT-style license that can be\r\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\r\n */\r\n\r\nimport { ChangeDetectionStrategy, Component, Input } from '@angular/core';\r\n\r\n@Component({\r\n  selector: 'vts-tree-node-indents',\r\n  template: `\r\n    <span\r\n      class=\"vts-tree-indent-unit\"\r\n      [class.vts-tree-indent-unit-start]=\"first\"\r\n      [class.vts-tree-indent-unit-end]=\"last\"\r\n      [class.vts-tree-indent-unit-eliminated]=\"isEliminated\"\r\n      *ngFor=\"let isEliminated of indents; let last = last; let first = first\"\r\n    ></span>\r\n  `,\r\n  changeDetection: ChangeDetectionStrategy.OnPush,\r\n  host: {\r\n    class: 'vts-tree-indent'\r\n  }\r\n})\r\nexport class VtsTreeNodeIndentsComponent {\r\n  @Input() indents: boolean[] = [];\r\n}\r\n","/**\r\n * Use of this source code is governed by an MIT-style license that can be\r\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\r\n */\r\n\r\nimport { CdkTreeNode, CdkTreeNodeDef, CdkTreeNodeOutletContext } from '@angular/cdk/tree';\r\nimport {\r\n  ChangeDetectionStrategy,\r\n  ChangeDetectorRef,\r\n  Component,\r\n  Directive,\r\n  ElementRef,\r\n  EmbeddedViewRef,\r\n  EventEmitter,\r\n  Input,\r\n  OnChanges,\r\n  OnDestroy,\r\n  OnInit,\r\n  Output,\r\n  SimpleChange,\r\n  SimpleChanges,\r\n  ViewContainerRef\r\n} from '@angular/core';\r\n\r\nimport { BooleanInput, VtsSafeAny } from '@vts-voffice/ng-vts/core/types';\r\n\r\nimport { VtsTreeView } from './tree';\r\nimport { VtsNodeBase } from './node-base';\r\nimport { InputBoolean } from '@vts-voffice/ng-vts/core/util';\r\nimport { getNextSibling, getParent, getPrevSibling } from './utils';\r\nimport { VtsDestroyService } from '@vts-voffice/ng-vts/core/services';\r\nimport { takeUntil } from 'rxjs/operators';\r\n\r\nexport interface VtsTreeVirtualNodeData<T> {\r\n  data: T;\r\n  context: CdkTreeNodeOutletContext<T>;\r\n  nodeDef: CdkTreeNodeDef<T>;\r\n}\r\n\r\n@Component({\r\n  selector: 'vts-tree-node:not([builtin])',\r\n  exportAs: 'vtsTreeNode',\r\n  changeDetection: ChangeDetectionStrategy.OnPush,\r\n  providers: [\r\n    { provide: CdkTreeNode, useExisting: VtsTreeNodeComponent },\r\n    { provide: VtsNodeBase, useExisting: VtsTreeNodeComponent },\r\n    VtsDestroyService\r\n  ],\r\n  template: `\r\n    <vts-tree-node-indents [indents]=\"indents\" *ngIf=\"indents.length\"></vts-tree-node-indents>\r\n    <ng-content select=\"vts-tree-node-toggle, [vts-tree-node-toggle]\"></ng-content>\r\n\r\n    <ng-content select=\"vts-tree-node-checkbox\"></ng-content>\r\n    <ng-content select=\"vts-tree-node-option\"></ng-content>\r\n    <ng-content></ng-content>\r\n  `,\r\n  host: {\r\n    '[class.vts-tree-treenode-switcher-open]': 'isExpanded',\r\n    '[class.vts-tree-treenode-switcher-close]': '!isExpanded',\r\n    '[class.vts-tree-treenode-disabled]': 'vtsDisabled',\r\n    '[class.vts-tree-treenode-selected]': 'vtsSelected',\r\n    '[class.vts-tree-treenode-start]': `isFirst`,\r\n    '[class.vts-tree-treenode-end]': `isLast`,\r\n    '[class.vts-tree-treenode-end-of-expand]': `isEndOfExpand`,\r\n    '(click)': 'onClick($event)'\r\n  }\r\n})\r\nexport class VtsTreeNodeComponent<T, F> extends CdkTreeNode<T> implements OnDestroy, OnInit {\r\n  static ngAcceptInputType_vtsDisabled: BooleanInput;\r\n  static ngAcceptInputType_vtsSelected: BooleanInput;\r\n\r\n  @Input() @InputBoolean() vtsDisabled: boolean = false;\r\n  @Input() @InputBoolean() vtsSelected: boolean = false;\r\n  @Output() readonly vtsClick = new EventEmitter<MouseEvent>();\r\n\r\n  indents: boolean[] = [];\r\n  isLeaf = false;\r\n  isFirst = false;\r\n  isLast = false;\r\n  isEndOfExpand = false;\r\n\r\n  constructor(\r\n    protected elementRef: ElementRef<HTMLElement>,\r\n    protected tree: VtsTreeView<T, F>,\r\n    private cdr: ChangeDetectorRef,\r\n    private vtsDestroyService: VtsDestroyService\r\n  ) {\r\n    super(elementRef, tree);\r\n    this._elementRef.nativeElement.classList.add('vts-tree-treenode');\r\n  }\r\n\r\n  override ngOnInit(): void {\r\n    this.renderChanged();\r\n    this.tree._reRenderNodes.pipe(takeUntil(this.vtsDestroyService)).subscribe(() => {\r\n      this.renderChanged();\r\n    });\r\n  }\r\n\r\n  onClick(e: MouseEvent): void {\r\n    if (!this.vtsDisabled) {\r\n      this.vtsClick.emit(e);\r\n    }\r\n  }\r\n\r\n  disable(): void {\r\n    this.vtsDisabled = true;\r\n  }\r\n\r\n  enable(): void {\r\n    this.vtsDisabled = false;\r\n  }\r\n\r\n  select(): void {\r\n    this.vtsSelected = true;\r\n  }\r\n\r\n  deselect(): void {\r\n    this.vtsSelected = false;\r\n  }\r\n\r\n  private getIndents() {\r\n    const getLevel = this.tree.treeControl.getLevel;\r\n    const nodes = this.tree.treeControl.dataNodes;\r\n    let parent = getParent(nodes, this.data, getLevel);\r\n    let isEnds: boolean[] = [];\r\n    while (parent) {\r\n      isEnds.push(!getNextSibling(nodes, parent, getLevel));\r\n      parent = getParent(nodes, parent, getLevel);\r\n    }\r\n    return isEnds.reverse().map((_, i) => (i + 1 > isEnds.length - 1 ? false : isEnds[i + 1]));\r\n  }\r\n\r\n  buildIndents() {\r\n    if (this.tree.vtsShowLine) this.indents = this.getIndents();\r\n    else this.indents = [];\r\n  }\r\n\r\n  renderChanged() {\r\n    const getLevel = this.tree.treeControl.getLevel;\r\n    const nodes = this.tree.treeControl.dataNodes;\r\n    const parent = getParent(nodes, this.data, getLevel);\r\n    this.isFirst = !getPrevSibling(nodes, this.data, getLevel);\r\n    this.isLast = !getNextSibling(nodes, this.data, getLevel);\r\n    this.isLeaf = !this.tree.treeControl.isExpandable(this.data);\r\n    this.isEndOfExpand = parent\r\n      ? this.level > 1 && !getNextSibling(nodes, parent, getLevel)\r\n      : false;\r\n    this.buildIndents();\r\n    this.cdr.markForCheck();\r\n  }\r\n}\r\n\r\n@Directive({\r\n  selector: '[vtsTreeNodeDef]',\r\n  providers: [{ provide: CdkTreeNodeDef, useExisting: VtsTreeNodeDefDirective }]\r\n})\r\nexport class VtsTreeNodeDefDirective<T> extends CdkTreeNodeDef<T> {\r\n  @Input('vtsTreeNodeDefWhen') override when!: (index: number, nodeData: T) => boolean;\r\n}\r\n\r\n@Directive({\r\n  selector: '[vtsTreeVirtualScrollNodeOutlet]'\r\n})\r\nexport class VtsTreeVirtualScrollNodeOutletDirective<T> implements OnChanges {\r\n  private _viewRef: EmbeddedViewRef<VtsSafeAny> | null = null;\r\n  @Input() data!: VtsTreeVirtualNodeData<T>;\r\n\r\n  constructor(private _viewContainerRef: ViewContainerRef) {}\r\n\r\n  ngOnChanges(changes: SimpleChanges): void {\r\n    const recreateView = this.shouldRecreateView(changes);\r\n    if (recreateView) {\r\n      const viewContainerRef = this._viewContainerRef;\r\n\r\n      if (this._viewRef) {\r\n        viewContainerRef.remove(viewContainerRef.indexOf(this._viewRef));\r\n      }\r\n\r\n      this._viewRef = this.data\r\n        ? viewContainerRef.createEmbeddedView(this.data.nodeDef.template, this.data.context)\r\n        : null;\r\n\r\n      if (CdkTreeNode.mostRecentTreeNode && this._viewRef) {\r\n        CdkTreeNode.mostRecentTreeNode.data = this.data.data;\r\n      }\r\n    } else if (this._viewRef && this.data.context) {\r\n      this.updateExistingContext(this.data.context);\r\n    }\r\n  }\r\n\r\n  private shouldRecreateView(changes: SimpleChanges): boolean {\r\n    const ctxChange = changes.data;\r\n    return !!changes.data || (ctxChange && this.hasContextShapeChanged(ctxChange));\r\n  }\r\n\r\n  private hasContextShapeChanged(ctxChange: SimpleChange): boolean {\r\n    const prevCtxKeys = Object.keys(ctxChange.previousValue || {});\r\n    const currCtxKeys = Object.keys(ctxChange.currentValue || {});\r\n\r\n    if (prevCtxKeys.length === currCtxKeys.length) {\r\n      for (const propName of currCtxKeys) {\r\n        if (prevCtxKeys.indexOf(propName) === -1) {\r\n          return true;\r\n        }\r\n      }\r\n      return false;\r\n    }\r\n    return true;\r\n  }\r\n\r\n  private updateExistingContext(ctx: VtsSafeAny): void {\r\n    for (const propName of Object.keys(ctx)) {\r\n      this._viewRef!.context[propName] = (this.data.context as VtsSafeAny)[propName];\r\n    }\r\n  }\r\n}\r\n","/**\r\n * Use of this source code is governed by an MIT-style license that can be\r\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\r\n */\r\n\r\nimport { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';\r\n\r\nimport { BooleanInput } from '@vts-voffice/ng-vts/core/types';\r\nimport { InputBoolean } from '@vts-voffice/ng-vts/core/util';\r\nimport { VtsTreeNodeComponent } from './node';\r\n\r\n@Component({\r\n  selector: 'vts-tree-node-checkbox:not([builtin])',\r\n  template: `\r\n    <span class=\"vts-tree-checkbox-inner\"></span>\r\n  `,\r\n  changeDetection: ChangeDetectionStrategy.OnPush,\r\n  preserveWhitespaces: false,\r\n  host: {\r\n    class: 'vts-tree-checkbox',\r\n    '[class.vts-tree-checkbox-checked]': `vtsChecked`,\r\n    '[class.vts-tree-checkbox-indeterminate]': `vtsIndeterminate`,\r\n    '[class.vts-tree-checkbox-disabled]': `vtsDisabled`,\r\n    '(click)': 'onClick($event)'\r\n  }\r\n})\r\nexport class VtsTreeNodeCheckboxComponent<T, F> {\r\n  static ngAcceptInputType_vtsDisabled: BooleanInput;\r\n\r\n  @Input() vtsChecked?: boolean;\r\n  @Input() vtsIndeterminate?: boolean;\r\n  @Input() @InputBoolean() vtsDisabled: boolean = false;\r\n  @Output() readonly vtsClick = new EventEmitter<MouseEvent>();\r\n\r\n  constructor(private treeNode: VtsTreeNodeComponent<T, F>) {}\r\n\r\n  get disabled() {\r\n    return this.vtsDisabled || this.treeNode.vtsDisabled;\r\n  }\r\n\r\n  onClick(e: MouseEvent): void {\r\n    if (!this.disabled) {\r\n      this.vtsClick.emit(e);\r\n    }\r\n  }\r\n}\r\n","/**\r\n * Use of this source code is governed by an MIT-style license that can be\r\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\r\n */\r\n\r\nimport { ChangeDetectionStrategy, Component, EventEmitter, Output } from '@angular/core';\r\nimport { VtsTreeNodeComponent } from './node';\r\n\r\n@Component({\r\n  selector: 'vts-tree-node-option',\r\n  template: `\r\n    <span class=\"vts-tree-title\"><ng-content></ng-content></span>\r\n  `,\r\n  changeDetection: ChangeDetectionStrategy.OnPush,\r\n  host: {\r\n    class: 'vts-tree-node-content-wrapper',\r\n    '[class.vts-tree-node-content-wrapper-open]': 'isExpanded',\r\n    '[class.vts-tree-node-selected]': 'vtsSelected',\r\n    '(click)': 'onClick($event)'\r\n  }\r\n})\r\nexport class VtsTreeNodeOptionComponent<T, F> {\r\n  @Output() readonly vtsClick = new EventEmitter<MouseEvent>();\r\n\r\n  constructor(private treeNode: VtsTreeNodeComponent<T, F>) {}\r\n\r\n  get isExpanded(): boolean {\r\n    return this.treeNode.isExpanded;\r\n  }\r\n\r\n  get disabled() {\r\n    return this.treeNode.vtsDisabled;\r\n  }\r\n\r\n  onClick(e: MouseEvent): void {\r\n    if (!this.disabled) {\r\n      this.vtsClick.emit(e);\r\n    }\r\n  }\r\n}\r\n","/**\r\n * Use of this source code is governed by an MIT-style license that can be\r\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\r\n */\r\n\r\nimport { CdkTreeNodeOutlet, CDK_TREE_NODE_OUTLET_NODE } from '@angular/cdk/tree';\r\nimport { Directive, Inject, Optional, ViewContainerRef } from '@angular/core';\r\n\r\nimport { VtsSafeAny } from '@vts-voffice/ng-vts/core/types';\r\n\r\n@Directive({\r\n  selector: '[vtsTreeNodeOutlet]',\r\n  providers: [\r\n    {\r\n      provide: CdkTreeNodeOutlet,\r\n      useExisting: VtsTreeNodeOutletDirective\r\n    }\r\n  ]\r\n})\r\nexport class VtsTreeNodeOutletDirective implements CdkTreeNodeOutlet {\r\n  constructor(\r\n    public viewContainer: ViewContainerRef,\r\n    @Inject(CDK_TREE_NODE_OUTLET_NODE) @Optional() public _node?: VtsSafeAny\r\n  ) {}\r\n}\r\n","/**\r\n * Use of this source code is governed by an MIT-style license that can be\r\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\r\n */\r\n\r\nimport { CdkTree, CdkTreeNode, CdkTreeNodePadding } from '@angular/cdk/tree';\r\nimport { Directive, ElementRef } from '@angular/core';\r\nimport { Directionality } from '@angular/cdk/bidi';\r\nimport { VtsTreeView } from './tree';\r\nimport { VtsDestroyService } from '@vts-voffice/ng-vts/core/services';\r\nimport { takeUntil } from 'rxjs/operators';\r\n\r\n@Directive({\r\n  selector: 'vts-tree-node:not([builtin])',\r\n  providers: [\r\n    { provide: CdkTreeNodePadding, useExisting: VtsTreeNodePaddingDirective },\r\n    VtsDestroyService\r\n  ]\r\n})\r\nexport class VtsTreeNodePaddingDirective<T, F> extends CdkTreeNodePadding<T> {\r\n  override _indent = 24;\r\n  initialIndent = 8;\r\n\r\n  override get level(): number {\r\n    return this._level;\r\n  }\r\n  override set level(value: number) {\r\n    this._setLevelInput(value);\r\n  }\r\n\r\n  override get indent(): number | string {\r\n    return this._indent;\r\n  }\r\n  override set indent(indent: number | string) {\r\n    this._setIndentInput(indent);\r\n  }\r\n\r\n  override _paddingIndent() {\r\n    const padding = super._paddingIndent();\r\n    return padding !== null\r\n      ? `${Number(padding.replace(this.indentUnits, '')) + this.initialIndent}${this.indentUnits}`\r\n      : null;\r\n  }\r\n\r\n  setOptions() {\r\n    this.indent = this.treeView.vtsShowLine ? 0 : this.treeView.vtsIndent;\r\n    this.initialIndent = this.treeView.vtsInitialIndent;\r\n  }\r\n\r\n  constructor(\r\n    _treeNode: CdkTreeNode<T, T>,\r\n    _tree: CdkTree<T, T>,\r\n    _element: ElementRef<HTMLElement>,\r\n    _dir: Directionality,\r\n    protected treeView: VtsTreeView<T, F>,\r\n    vtsDestroyService: VtsDestroyService\r\n  ) {\r\n    super(_treeNode, _tree, _element, _dir);\r\n    this.setOptions();\r\n    this.treeView._reRenderNodes\r\n      .pipe(takeUntil(vtsDestroyService))\r\n      .subscribe(() => this.setOptions());\r\n  }\r\n}\r\n","/**\r\n * Use of this source code is governed by an MIT-style license that can be\r\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\r\n */\r\n\r\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\r\nimport { CdkTree, CdkTreeNode, CdkTreeNodeToggle } from '@angular/cdk/tree';\r\nimport { Component, Input } from '@angular/core';\r\nimport { BooleanInput } from '@vts-voffice/ng-vts/core/types';\r\nimport { VtsTreeNodeComponent } from './node';\r\nimport { InputBoolean } from '@vts-voffice/ng-vts/core/util';\r\n\r\n@Component({\r\n  selector: 'vts-tree-node-toggle',\r\n  providers: [{ provide: CdkTreeNodeToggle, useExisting: VtsTreeNodeToggleDirective }],\r\n  host: {\r\n    class: 'vts-tree-switcher',\r\n    '[class.vts-tree-switcher_open]': 'isExpanded',\r\n    '[class.vts-tree-switcher_close]': '!isExpanded',\r\n    '[class.vts-tree-switcher-disabled]': 'vtsDisabled'\r\n  },\r\n  template: `\r\n    <ng-container *ngIf=\"vtsCaret || vtsLoading; else default\">\r\n      <ng-container *ngIf=\"vtsCaret\">\r\n        <ng-container *ngTemplateOutlet=\"caret\"></ng-container>\r\n      </ng-container>\r\n      <ng-container *ngIf=\"vtsLoading\">\r\n        <ng-container *ngTemplateOutlet=\"loading\"></ng-container>\r\n      </ng-container>\r\n    </ng-container>\r\n\r\n    <ng-template #caret>\r\n      <i class=\"vts-tree-switcher-icon\" vts-icon vtsType=\"CaretDownFill:bootstrap\"></i>\r\n    </ng-template>\r\n\r\n    <ng-template #loading>\r\n      <i vts-icon vtsType=\"BxLoaderAlt:boxIcon\" vtsSpin class=\"vts-tree-switcher-loading-icon\"></i>\r\n    </ng-template>\r\n\r\n    <ng-template #default>\r\n      <ng-content></ng-content>\r\n    </ng-template>\r\n  `\r\n})\r\nexport class VtsTreeNodeToggleDirective<T, F> extends CdkTreeNodeToggle<T> {\r\n  static ngAcceptInputType_vtsNoop: BooleanInput;\r\n  static ngAcceptInputType_vtsCaret: BooleanInput;\r\n  static ngAcceptInputType_vtsLoading: BooleanInput;\r\n  static ngAcceptInputType_vtsDisabled: BooleanInput;\r\n  static ngAcceptInputType_vtsRecursive: BooleanInput;\r\n\r\n  @Input() @InputBoolean() vtsNoop: boolean = false;\r\n  @Input() @InputBoolean() vtsCaret: boolean = false;\r\n  @Input() @InputBoolean() vtsLoading: boolean = false;\r\n  @Input() @InputBoolean() vtsDisabled: boolean = false;\r\n\r\n  @Input('vtsRecursive')\r\n  @InputBoolean()\r\n  get _recursive(): boolean {\r\n    return this.recursive;\r\n  }\r\n  set _recursive(value: boolean) {\r\n    this.recursive = coerceBooleanProperty(value);\r\n  }\r\n\r\n  get isExpanded(): boolean {\r\n    return this._treeNode.isExpanded;\r\n  }\r\n\r\n  get disabled() {\r\n    return this.vtsDisabled || this.treeNode.vtsDisabled;\r\n  }\r\n\r\n  constructor(\r\n    _tree: CdkTree<T, T>,\r\n    _treeNode: CdkTreeNode<T, T>,\r\n    private treeNode: VtsTreeNodeComponent<T, F>\r\n  ) {\r\n    super(_tree, _treeNode);\r\n  }\r\n\r\n  override _toggle(event: Event): void {\r\n    if (!this.vtsNoop && !this.disabled) super._toggle(event);\r\n  }\r\n}\r\n","/**\r\n * Use of this source code is governed by an MIT-style license that can be\r\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\r\n */\r\n\r\nimport { CdkTree } from '@angular/cdk/tree';\r\nimport {\r\n  AfterViewInit,\r\n  ChangeDetectionStrategy,\r\n  Component,\r\n  ViewChild,\r\n  ViewEncapsulation\r\n} from '@angular/core';\r\n\r\nimport { treeAccordionMotion } from '@vts-voffice/ng-vts/core/animation';\r\n\r\nimport { VtsTreeNodeOutletDirective } from './outlet';\r\nimport { VtsTreeView } from './tree';\r\n\r\n@Component({\r\n  selector: 'vts-tree-view',\r\n  exportAs: 'vtsTreeView',\r\n  template: `\r\n    <div class=\"vts-tree-list-holder\">\r\n      <div\r\n        [@.disabled]=\"!_afterViewInit || noAnimation?.vtsNoAnimation\"\r\n        [@treeAccordionMotion]=\"_nodeOutlet.viewContainer.length\"\r\n        class=\"vts-tree-list-holder-inner\"\r\n      >\r\n        <ng-container vtsTreeNodeOutlet></ng-container>\r\n      </div>\r\n    </div>\r\n  `,\r\n  encapsulation: ViewEncapsulation.None,\r\n  changeDetection: ChangeDetectionStrategy.OnPush,\r\n  providers: [\r\n    { provide: CdkTree, useExisting: VtsTreeViewComponent },\r\n    { provide: VtsTreeView, useExisting: VtsTreeViewComponent }\r\n  ],\r\n  host: {\r\n    class: 'vts-tree',\r\n    '[class.vts-tree-rtl]': `dir === 'rtl'`,\r\n    '[class.vts-tree-sm]': 'vtsSize === \"sm\"',\r\n    '[class.vts-tree-md]': 'vtsSize === \"md\"',\r\n    '[class.vts-tree-lg]': 'vtsSize === \"lg\"',\r\n    '[class.vts-tree-show-line]': `vtsShowLine`\r\n  },\r\n  animations: [treeAccordionMotion]\r\n})\r\nexport class VtsTreeViewComponent<T, F> extends VtsTreeView<T, F> implements AfterViewInit {\r\n  @ViewChild(VtsTreeNodeOutletDirective, { static: true })\r\n  nodeOutlet!: VtsTreeNodeOutletDirective;\r\n  _afterViewInit = false;\r\n  ngAfterViewInit(): void {\r\n    Promise.resolve().then(() => {\r\n      this._afterViewInit = true;\r\n      this.changeDetectorRef.markForCheck();\r\n    });\r\n  }\r\n}\r\n","/**\r\n * Use of this source code is governed by an MIT-style license that can be\r\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\r\n */\r\n\r\nimport { CdkVirtualScrollViewport } from '@angular/cdk/scrolling';\r\nimport { CdkTree, CdkTreeNodeOutletContext } from '@angular/cdk/tree';\r\nimport {\r\n  ChangeDetectionStrategy,\r\n  Component,\r\n  Input,\r\n  OnChanges,\r\n  SimpleChanges,\r\n  ViewChild,\r\n  ViewEncapsulation\r\n} from '@angular/core';\r\n\r\nimport { VtsTreeVirtualNodeData } from './node';\r\nimport { VtsTreeNodeOutletDirective } from './outlet';\r\n\r\nimport { VtsTreeView } from './tree';\r\nimport { VtsSizeLMSType } from '@vts-voffice/ng-vts/core/types';\r\n\r\nconst SIZE: { [k in VtsSizeLMSType]: number } = {\r\n  sm: 32,\r\n  md: 40,\r\n  lg: 48\r\n};\r\n\r\nconst DEFAULT_SIZE = SIZE.md;\r\n\r\n@Component({\r\n  selector: 'vts-tree-virtual-scroll-view',\r\n  exportAs: 'vtsTreeVirtualScrollView',\r\n  template: `\r\n    <div class=\"vts-tree-list\">\r\n      <cdk-virtual-scroll-viewport\r\n        class=\"vts-tree-list-holder\"\r\n        [itemSize]=\"itemSize\"\r\n        [minBufferPx]=\"vtsMinBufferPx\"\r\n        [maxBufferPx]=\"vtsMaxBufferPx\"\r\n      >\r\n        <ng-container *cdkVirtualFor=\"let item of nodes; let i = index\">\r\n          <ng-template vtsTreeVirtualScrollNodeOutlet [data]=\"item\"></ng-template>\r\n        </ng-container>\r\n      </cdk-virtual-scroll-viewport>\r\n    </div>\r\n    <ng-container vtsTreeNodeOutlet></ng-container>\r\n  `,\r\n  encapsulation: ViewEncapsulation.None,\r\n  changeDetection: ChangeDetectionStrategy.OnPush,\r\n  providers: [\r\n    { provide: VtsTreeView, useExisting: VtsTreeVirtualScrollViewComponent },\r\n    { provide: CdkTree, useExisting: VtsTreeVirtualScrollViewComponent }\r\n  ],\r\n  host: {\r\n    class: 'vts-tree',\r\n    '[class.vts-tree-sm]': 'vtsSize === \"sm\"',\r\n    '[class.vts-tree-md]': 'vtsSize === \"md\"',\r\n    '[class.vts-tree-lg]': 'vtsSize === \"lg\"',\r\n    '[class.vts-tree-show-line]': `vtsShowLine`,\r\n    '[class.vts-tree-rtl]': `dir === 'rtl'`\r\n  }\r\n})\r\nexport class VtsTreeVirtualScrollViewComponent<T, F>\r\n  extends VtsTreeView<T, F>\r\n  implements OnChanges\r\n{\r\n  itemSize = DEFAULT_SIZE;\r\n\r\n  @ViewChild(VtsTreeNodeOutletDirective, { static: true })\r\n  readonly nodeOutlet!: VtsTreeNodeOutletDirective;\r\n  @ViewChild(CdkVirtualScrollViewport, { static: true })\r\n  readonly virtualScrollViewport!: CdkVirtualScrollViewport;\r\n\r\n  @Input() vtsItemSize = DEFAULT_SIZE;\r\n  @Input() vtsMinBufferPx = DEFAULT_SIZE * 5;\r\n  @Input() vtsMaxBufferPx = DEFAULT_SIZE * 10;\r\n\r\n  nodes: Array<VtsTreeVirtualNodeData<T>> = [];\r\n\r\n  override renderNodeChanges(data: T[] | ReadonlyArray<T>): void {\r\n    this.nodes = new Array(...data).map((n, i) => this.createNode(n, i));\r\n  }\r\n\r\n  private createNode(nodeData: T, index: number): VtsTreeVirtualNodeData<T> {\r\n    const node = this._getNodeDef(nodeData, index);\r\n    const context = new CdkTreeNodeOutletContext<T>(nodeData);\r\n    if (this.treeControl.getLevel) {\r\n      context.level = this.treeControl.getLevel(nodeData);\r\n    } else {\r\n      context.level = 0;\r\n    }\r\n    return {\r\n      data: nodeData,\r\n      context,\r\n      nodeDef: node\r\n    };\r\n  }\r\n\r\n  override ngOnChanges(changes: SimpleChanges): void {\r\n    const { vtsSize } = changes;\r\n    const size = SIZE[vtsSize.currentValue as VtsSizeLMSType];\r\n    this.itemSize = size;\r\n    this.vtsMinBufferPx = this.itemSize * 5;\r\n    this.vtsMaxBufferPx = this.itemSize * 10;\r\n  }\r\n}\r\n","/**\r\n * Use of this source code is governed by an MIT-style license that can be\r\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\r\n */\r\n\r\nimport { BidiModule } from '@angular/cdk/bidi';\r\nimport { ScrollingModule } from '@angular/cdk/scrolling';\r\nimport { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\n\r\nimport { VtsNoAnimationModule } from '@vts-voffice/ng-vts/core/no-animation';\r\n\r\nimport { VtsTreeNodeCheckboxComponent } from './checkbox';\r\nimport { VtsTreeNodeIndentsComponent } from './indent';\r\nimport {\r\n  VtsTreeNodeComponent,\r\n  VtsTreeNodeDefDirective,\r\n  VtsTreeVirtualScrollNodeOutletDirective\r\n} from './node';\r\nimport { VtsTreeNodeOptionComponent } from './option';\r\nimport { VtsTreeNodeOutletDirective } from './outlet';\r\nimport { VtsTreeNodePaddingDirective } from './padding';\r\nimport { VtsTreeNodeToggleDirective } from './toggle';\r\nimport { VtsTreeView } from './tree';\r\nimport { VtsTreeViewComponent } from './tree-view';\r\nimport { VtsTreeVirtualScrollViewComponent } from './tree-virtual-scroll-view';\r\nimport { VtsIconModule } from '@vts-voffice/ng-vts/icon';\r\n\r\nconst treeWithControlComponents = [\r\n  VtsTreeView,\r\n  VtsTreeNodeOutletDirective,\r\n  VtsTreeViewComponent,\r\n  VtsTreeNodeDefDirective,\r\n  VtsTreeNodeComponent,\r\n  VtsTreeNodeToggleDirective,\r\n  VtsTreeNodePaddingDirective,\r\n  VtsTreeNodeOptionComponent,\r\n  VtsTreeNodeCheckboxComponent,\r\n  VtsTreeNodeIndentsComponent,\r\n  VtsTreeVirtualScrollViewComponent,\r\n  VtsTreeVirtualScrollNodeOutletDirective\r\n];\r\n\r\n@NgModule({\r\n  imports: [BidiModule, CommonModule, VtsNoAnimationModule, ScrollingModule, VtsIconModule],\r\n  declarations: [treeWithControlComponents],\r\n  exports: [treeWithControlComponents]\r\n})\r\nexport class VtsTreeViewModule {}\r\n","/**\r\n * Use of this source code is governed by an MIT-style license that can be\r\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\r\n */\r\n\r\nimport { CollectionViewer, DataSource } from '@angular/cdk/collections';\r\nimport { FlatTreeControl, TreeControl } from '@angular/cdk/tree';\r\nimport { BehaviorSubject, merge, Observable } from 'rxjs';\r\nimport { map, take } from 'rxjs/operators';\r\n\r\nexport class VtsTreeFlattener<T, F, K = F> {\r\n  constructor(\r\n    public transformFunction: (node: T, level: number) => F,\r\n    public getLevel: (node: F) => number,\r\n    public isExpandable: (node: F) => boolean,\r\n    public getChildren: (node: T) => Observable<T[]> | T[] | undefined | null\r\n  ) {}\r\n\r\n  private flattenNode(node: T, level: number, resultNodes: F[], parentMap: boolean[]): F[] {\r\n    const flatNode = this.transformFunction(node, level);\r\n    resultNodes.push(flatNode);\r\n\r\n    if (this.isExpandable(flatNode)) {\r\n      const childrenNodes = this.getChildren(node);\r\n      if (childrenNodes) {\r\n        if (Array.isArray(childrenNodes)) {\r\n          this.flattenChildren(childrenNodes, level, resultNodes, parentMap);\r\n        } else {\r\n          childrenNodes.pipe(take(1)).subscribe(children => {\r\n            this.flattenChildren(children, level, resultNodes, parentMap);\r\n          });\r\n        }\r\n      }\r\n    }\r\n    return resultNodes;\r\n  }\r\n\r\n  private flattenChildren(\r\n    children: T[],\r\n    level: number,\r\n    resultNodes: F[],\r\n    parentMap: boolean[]\r\n  ): void {\r\n    children.forEach((child, index) => {\r\n      const childParentMap: boolean[] = parentMap.slice();\r\n      childParentMap.push(index !== children.length - 1);\r\n      this.flattenNode(child, level + 1, resultNodes, childParentMap);\r\n    });\r\n  }\r\n\r\n  /**\r\n   * Flatten a list of node type T to flattened version of node F.\r\n   * Please note that type T may be nested, and the length of `structuredData` may be different\r\n   * from that of returned list `F[]`.\r\n   */\r\n  flattenNodes(structuredData: T[]): F[] {\r\n    const resultNodes: F[] = [];\r\n    structuredData.forEach(node => this.flattenNode(node, 0, resultNodes, []));\r\n    return resultNodes;\r\n  }\r\n\r\n  /**\r\n   * Expand flattened node with current expansion status.\r\n   * The returned list may have different length.\r\n   */\r\n  expandFlattenedNodes(nodes: F[], treeControl: TreeControl<F, K>): F[] {\r\n    const results: F[] = [];\r\n    const currentExpand: boolean[] = [];\r\n    currentExpand[0] = true;\r\n\r\n    nodes.forEach(node => {\r\n      let expand = true;\r\n      for (let i = 0; i <= this.getLevel(node); i++) {\r\n        expand = expand && currentExpand[i];\r\n      }\r\n      if (expand) {\r\n        results.push(node);\r\n      }\r\n      if (this.isExpandable(node)) {\r\n        currentExpand[this.getLevel(node) + 1] = treeControl.isExpanded(node);\r\n      }\r\n    });\r\n    return results;\r\n  }\r\n}\r\n\r\nexport class VtsTreeFlatDataSource<T, F, K = F> extends DataSource<F> {\r\n  _flattenedData = new BehaviorSubject<F[]>([]);\r\n\r\n  _expandedData = new BehaviorSubject<F[]>([]);\r\n\r\n  _data: BehaviorSubject<T[]>;\r\n\r\n  constructor(\r\n    private _treeControl: FlatTreeControl<F, K>,\r\n    private _treeFlattener: VtsTreeFlattener<T, F, K>,\r\n    initialData: T[] = []\r\n  ) {\r\n    super();\r\n    this._data = new BehaviorSubject<T[]>(initialData);\r\n    this.flatNodes();\r\n  }\r\n\r\n  setData(value: T[]): void {\r\n    this._data.next(value);\r\n    this.flatNodes();\r\n  }\r\n\r\n  getData(): T[] {\r\n    return this._data.getValue();\r\n  }\r\n\r\n  getFlattenData(): F[] {\r\n    return this._flattenedData.getValue();\r\n  }\r\n\r\n  connect(collectionViewer: CollectionViewer): Observable<F[]> {\r\n    const changes = [\r\n      collectionViewer.viewChange,\r\n      this._treeControl.expansionModel.changed,\r\n      this._flattenedData\r\n    ];\r\n    return merge(...changes).pipe(\r\n      map(() => {\r\n        this._expandedData.next(\r\n          this._treeFlattener.expandFlattenedNodes(this._flattenedData.value, this._treeControl)\r\n        );\r\n        return this._expandedData.value;\r\n      })\r\n    );\r\n  }\r\n\r\n  disconnect(): void {\r\n    // no op\r\n  }\r\n\r\n  private flatNodes(): void {\r\n    const flatten = this._treeFlattener.flattenNodes(this.getData());\r\n    this._treeControl.dataNodes = flatten;\r\n    this._flattenedData.next(flatten);\r\n  }\r\n}\r\n","/**\r\n * Use of this source code is governed by an MIT-style license that can be\r\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\r\n */\r\n\r\nexport * from './tree-view.module';\r\nexport * from './checkbox';\r\nexport * from './utils';\r\nexport * from './data-source';\r\nexport * from './indent';\r\nexport * from './node';\r\nexport * from './option';\r\nexport * from './outlet';\r\nexport * from './padding';\r\nexport * from './toggle';\r\nexport * from './tree-view';\r\nexport * from './tree';\r\nexport * from './tree-virtual-scroll-view';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i1.VtsTreeView","i2","i4.VtsTreeNodeIndentsComponent","i1.VtsTreeNodeComponent","i3.VtsTreeView","i4","i2.VtsTreeNodeComponent","i1.VtsTreeNodeOutletDirective","i2.VtsTreeNodeOutletDirective","i3.VtsTreeVirtualScrollNodeOutletDirective"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAEM,MAAgB,WAAe,SAAQ,WAAc,CAAA;AAG1D;;ACLD;;;AAGG;SAEa,SAAS,CAAI,KAAU,EAAE,IAAO,EAAE,QAAiC,EAAA;IACjF,IAAI,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AAChC,IAAA,IAAI,KAAK,GAAG,CAAC,EAAE;AACb,QAAA,OAAO,IAAI,CAAC;KACb;AACD,IAAA,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC7B,KAAK,KAAK,EAAE,EAAE,KAAK,IAAI,CAAC,EAAE,KAAK,EAAE,EAAE;QACjC,MAAM,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;AACxC,QAAA,IAAI,QAAQ,GAAG,CAAC,KAAK,KAAK,EAAE;AAC1B,YAAA,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC;SACrB;AACD,QAAA,IAAI,QAAQ,GAAG,CAAC,GAAG,KAAK,EAAE;AACxB,YAAA,OAAO,IAAI,CAAC;SACb;KACF;AACD,IAAA,OAAO,IAAI,CAAC;AACd,CAAC;AAEK,SAAU,cAAc,CAC5B,KAAU,EACV,IAAO,EACP,QAAiC,EACjC,MAAe,EAAA;AAEf,IAAA,IAAI,KAAK,GAAG,OAAO,MAAM,KAAK,WAAW,GAAG,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AACzE,IAAA,IAAI,KAAK,GAAG,CAAC,EAAE;AACb,QAAA,OAAO,IAAI,CAAC;KACb;AACD,IAAA,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;AAE7B,IAAA,KAAK,KAAK,EAAE,EAAE,KAAK,GAAG,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;QAC3C,MAAM,SAAS,GAAG,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;AACzC,QAAA,IAAI,SAAS,GAAG,KAAK,EAAE;AACrB,YAAA,OAAO,IAAI,CAAC;SACb;AACD,QAAA,IAAI,SAAS,KAAK,KAAK,EAAE;AACvB,YAAA,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC;SACrB;KACF;AACD,IAAA,OAAO,IAAI,CAAC;AACd,CAAC;AAEK,SAAU,cAAc,CAC5B,KAAU,EACV,IAAO,EACP,QAAiC,EACjC,MAAe,EAAA;AAEf,IAAA,IAAI,KAAK,GAAG,OAAO,MAAM,KAAK,WAAW,GAAG,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AACzE,IAAA,IAAI,KAAK,GAAG,CAAC,EAAE;AACb,QAAA,OAAO,IAAI,CAAC;KACb;AACD,IAAA,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;IAE7B,KAAK,KAAK,EAAE,EAAE,KAAK,IAAI,CAAC,EAAE,KAAK,EAAE,EAAE;QACjC,MAAM,SAAS,GAAG,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;AACzC,QAAA,IAAI,SAAS,GAAG,KAAK,EAAE;AACrB,YAAA,OAAO,IAAI,CAAC;SACb;AACD,QAAA,IAAI,SAAS,KAAK,KAAK,EAAE;AACvB,YAAA,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC;SACrB;KACF;AACD,IAAA,OAAO,IAAI,CAAC;AACd;;ACxCA;AACM,MAAO,WAAkB,SAAQ,OAAU,CAAA;AAU/C,IAAA,IACa,UAAU,GAAA;QACrB,OAAO,KAAK,CAAC,UAA2B,CAAC;KAC1C;IACD,IAAa,UAAU,CAAC,UAAyB,EAAA;AAC/C,QAAA,KAAK,CAAC,UAAU,GAAG,UAAU,CAAC;KAC/B;AAMD,IAAA,WAAA,CACY,OAAwB,EACxB,iBAAoC,EACnB,WAAqC,EAC5C,cAA+B,EAAA;AAEnD,QAAA,KAAK,CAAC,OAAO,EAAE,iBAAiB,CAAC,CAAC;QALxB,IAAO,CAAA,OAAA,GAAP,OAAO,CAAiB;QACxB,IAAiB,CAAA,iBAAA,GAAjB,iBAAiB,CAAmB;QACnB,IAAW,CAAA,WAAA,GAAX,WAAW,CAA0B;QAC5C,IAAc,CAAA,cAAA,GAAd,cAAc,CAAiB;AArB7C,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,OAAO,EAAE,CAAC;QACjC,IAAG,CAAA,GAAA,GAAc,KAAK,CAAC;AACvB,QAAA,IAAA,CAAA,kBAAkB,GAAG,IAAI,OAAO,EAAQ,CAAC;AACzC,QAAA,IAAA,CAAA,cAAc,GAAG,IAAI,OAAO,EAAQ,CAAC;QASb,IAAS,CAAA,SAAA,GAAW,EAAE,CAAC;QACvB,IAAgB,CAAA,gBAAA,GAAW,CAAC,CAAC;QAC5B,IAAW,CAAA,WAAA,GAAG,KAAK,CAAC;QACpC,IAAO,CAAA,OAAA,GAAmB,IAAI,CAAC;KASvC;IAEQ,QAAQ,GAAA;QACf,KAAK,CAAC,QAAQ,EAAE,CAAC;AAEjB,QAAA,IAAI,IAAI,CAAC,cAAc,EAAE;YACvB,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC;YACrC,IAAI,CAAC,cAAc,CAAC,MAAM;kBACtB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AAC/B,iBAAA,SAAS,CAAC,CAAC,SAAoB,KAAI;AAClC,gBAAA,IAAI,CAAC,GAAG,GAAG,SAAS,CAAC;AACrB,gBAAA,IAAI,CAAC,iBAAiB,CAAC,aAAa,EAAE,CAAC;AACzC,aAAC,CAAC,CAAC;SACN;KACF;AAED,IAAA,WAAW,CAAC,OAAsB,EAAA;AAChC,QAAA,MAAM,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC;QAChC,IAAI,WAAW,EAAE;AACf,YAAA,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC;SAC5B;KACF;IAEQ,WAAW,GAAA;QAClB,KAAK,CAAC,WAAW,EAAE,CAAC;AACpB,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;AACrB,QAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;KAC1B;AAEQ,IAAA,iBAAiB,CACxB,IAA4B,EAC5B,UAA8B,EAC9B,aAAgC,EAChC,UAAc,EAAA;QAEd,KAAK,CAAC,iBAAiB,CAAC,IAAI,EAAE,UAAU,EAAE,aAAa,EAAE,UAAU,CAAC,CAAC;AACrE,QAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,EAAE,CAAC;KAChC;+GAlEU,WAAW,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,eAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,uBAAA,EAAA,IAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,cAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAX,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,WAAW,uTAFD,EAAE,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,CAAA,EAAA;;AAmBC,UAAA,CAAA;AAAd,IAAA,WAAW,EAAE;AAAwB,CAAA,EAAA,WAAA,CAAA,SAAA,EAAA,WAAA,EAAA,KAAA,CAAA,CAAA,CAAA;AACvB,UAAA,CAAA;AAAd,IAAA,WAAW,EAAE;AAA8B,CAAA,EAAA,WAAA,CAAA,SAAA,EAAA,kBAAA,EAAA,KAAA,CAAA,CAAA,CAAA;AAC5B,UAAA,CAAA;AAAf,IAAA,YAAY,EAAE;AAAqB,CAAA,EAAA,WAAA,CAAA,SAAA,EAAA,aAAA,EAAA,KAAA,CAAA,CAAA,CAAA;4FAnBlC,WAAW,EAAA,UAAA,EAAA,CAAA;kBAFvB,SAAS;mBAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAA;;0BA2BtB,IAAI;;0BAAI,QAAQ;;0BAChB,QAAQ;yCAjBuB,WAAW,EAAA,CAAA;sBAA5C,KAAK;uBAAC,gBAAgB,CAAA;gBAEV,UAAU,EAAA,CAAA;sBADtB,KAAK;uBAAC,eAAe,CAAA;gBAOE,SAAS,EAAA,CAAA;sBAAhC,KAAK;gBACkB,gBAAgB,EAAA,CAAA;sBAAvC,KAAK;gBACmB,WAAW,EAAA,CAAA;sBAAnC,KAAK;gBACG,OAAO,EAAA,CAAA;sBAAf,KAAK;;;AClDR;;;AAGG;MAoBU,2BAA2B,CAAA;AAhBxC,IAAA,WAAA,GAAA;QAiBW,IAAO,CAAA,OAAA,GAAc,EAAE,CAAC;AAClC,KAAA;+GAFY,2BAA2B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAA3B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,2BAA2B,EAd5B,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,iBAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;;;AAQT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;4FAMU,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBAhBvC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,uBAAuB;AACjC,oBAAA,QAAQ,EAAE,CAAA;;;;;;;;AAQT,EAAA,CAAA;oBACD,eAAe,EAAE,uBAAuB,CAAC,MAAM;AAC/C,oBAAA,IAAI,EAAE;AACJ,wBAAA,KAAK,EAAE,iBAAiB;AACzB,qBAAA;AACF,iBAAA,CAAA;8BAEU,OAAO,EAAA,CAAA;sBAAf,KAAK;;;AC2CF,MAAO,oBAA2B,SAAQ,WAAc,CAAA;AAc5D,IAAA,WAAA,CACY,UAAmC,EACnC,IAAuB,EACzB,GAAsB,EACtB,iBAAoC,EAAA;AAE5C,QAAA,KAAK,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;QALd,IAAU,CAAA,UAAA,GAAV,UAAU,CAAyB;QACnC,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAmB;QACzB,IAAG,CAAA,GAAA,GAAH,GAAG,CAAmB;QACtB,IAAiB,CAAA,iBAAA,GAAjB,iBAAiB,CAAmB;QAdrB,IAAW,CAAA,WAAA,GAAY,KAAK,CAAC;QAC7B,IAAW,CAAA,WAAA,GAAY,KAAK,CAAC;AACnC,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,YAAY,EAAc,CAAC;QAE7D,IAAO,CAAA,OAAA,GAAc,EAAE,CAAC;QACxB,IAAM,CAAA,MAAA,GAAG,KAAK,CAAC;QACf,IAAO,CAAA,OAAA,GAAG,KAAK,CAAC;QAChB,IAAM,CAAA,MAAA,GAAG,KAAK,CAAC;QACf,IAAa,CAAA,aAAA,GAAG,KAAK,CAAC;QASpB,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,SAAS,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;KACnE;IAEQ,QAAQ,GAAA;QACf,IAAI,CAAC,aAAa,EAAE,CAAC;AACrB,QAAA,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,SAAS,CAAC,MAAK;YAC9E,IAAI,CAAC,aAAa,EAAE,CAAC;AACvB,SAAC,CAAC,CAAC;KACJ;AAED,IAAA,OAAO,CAAC,CAAa,EAAA;AACnB,QAAA,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;AACrB,YAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;SACvB;KACF;IAED,OAAO,GAAA;AACL,QAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;KACzB;IAED,MAAM,GAAA;AACJ,QAAA,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;KAC1B;IAED,MAAM,GAAA;AACJ,QAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;KACzB;IAED,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;KAC1B;IAEO,UAAU,GAAA;QAChB,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC;QAChD,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC;AAC9C,QAAA,IAAI,MAAM,GAAG,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QACnD,IAAI,MAAM,GAAc,EAAE,CAAC;QAC3B,OAAO,MAAM,EAAE;AACb,YAAA,MAAM,CAAC,IAAI,CAAC,CAAC,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC;YACtD,MAAM,GAAG,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;SAC7C;AACD,QAAA,OAAO,MAAM,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,GAAG,KAAK,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;KAC5F;IAED,YAAY,GAAA;AACV,QAAA,IAAI,IAAI,CAAC,IAAI,CAAC,WAAW;AAAE,YAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;;AACvD,YAAA,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;KACxB;IAED,aAAa,GAAA;QACX,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC;QAChD,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC;AAC9C,QAAA,MAAM,MAAM,GAAG,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;AACrD,QAAA,IAAI,CAAC,OAAO,GAAG,CAAC,cAAc,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;AAC3D,QAAA,IAAI,CAAC,MAAM,GAAG,CAAC,cAAc,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;AAC1D,QAAA,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC7D,IAAI,CAAC,aAAa,GAAG,MAAM;AACzB,cAAE,IAAI,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC;cAC1D,KAAK,CAAC;QACV,IAAI,CAAC,YAAY,EAAE,CAAC;AACpB,QAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;KACzB;+GAlFU,oBAAoB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,WAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,IAAA,CAAA,iBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAApB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,oBAAoB,EAxBpB,QAAA,EAAA,8BAAA,EAAA,MAAA,EAAA,EAAA,WAAA,EAAA,aAAA,EAAA,WAAA,EAAA,aAAA,EAAA,EAAA,OAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,OAAA,EAAA,iBAAA,EAAA,EAAA,UAAA,EAAA,EAAA,uCAAA,EAAA,YAAA,EAAA,wCAAA,EAAA,aAAA,EAAA,kCAAA,EAAA,aAAA,EAAA,kCAAA,EAAA,aAAA,EAAA,+BAAA,EAAA,SAAA,EAAA,6BAAA,EAAA,QAAA,EAAA,uCAAA,EAAA,eAAA,EAAA,EAAA,EAAA,SAAA,EAAA;AACT,YAAA,EAAE,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,oBAAoB,EAAE;AAC3D,YAAA,EAAE,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,oBAAoB,EAAE;YAC3D,iBAAiB;SAClB,EACS,QAAA,EAAA,CAAA,aAAA,CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;;AAOT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,2BAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;AAgBwB,UAAA,CAAA;AAAf,IAAA,YAAY,EAAE;AAA8B,CAAA,EAAA,oBAAA,CAAA,SAAA,EAAA,aAAA,EAAA,KAAA,CAAA,CAAA,CAAA;AAC7B,UAAA,CAAA;AAAf,IAAA,YAAY,EAAE;AAA8B,CAAA,EAAA,oBAAA,CAAA,SAAA,EAAA,aAAA,EAAA,KAAA,CAAA,CAAA,CAAA;4FAL3C,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBA5BhC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,8BAA8B;AACxC,oBAAA,QAAQ,EAAE,aAAa;oBACvB,eAAe,EAAE,uBAAuB,CAAC,MAAM;AAC/C,oBAAA,SAAS,EAAE;AACT,wBAAA,EAAE,OAAO,EAAE,WAAW,EAAE,WAAW,sBAAsB,EAAE;AAC3D,wBAAA,EAAE,OAAO,EAAE,WAAW,EAAE,WAAW,sBAAsB,EAAE;wBAC3D,iBAAiB;AAClB,qBAAA;AACD,oBAAA,QAAQ,EAAE,CAAA;;;;;;;AAOT,EAAA,CAAA;AACD,oBAAA,IAAI,EAAE;AACJ,wBAAA,yCAAyC,EAAE,YAAY;AACvD,wBAAA,0CAA0C,EAAE,aAAa;AACzD,wBAAA,oCAAoC,EAAE,aAAa;AACnD,wBAAA,oCAAoC,EAAE,aAAa;AACnD,wBAAA,iCAAiC,EAAE,CAAS,OAAA,CAAA;AAC5C,wBAAA,+BAA+B,EAAE,CAAQ,MAAA,CAAA;AACzC,wBAAA,yCAAyC,EAAE,CAAe,aAAA,CAAA;AAC1D,wBAAA,SAAS,EAAE,iBAAiB;AAC7B,qBAAA;AACF,iBAAA,CAAA;wKAK0B,WAAW,EAAA,CAAA;sBAAnC,KAAK;gBACmB,WAAW,EAAA,CAAA;sBAAnC,KAAK;gBACa,QAAQ,EAAA,CAAA;sBAA1B,MAAM;;AAmFH,MAAO,uBAA2B,SAAQ,cAAiB,CAAA;+GAApD,uBAAuB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;mGAAvB,uBAAuB,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,CAAA,oBAAA,EAAA,MAAA,CAAA,EAAA,EAAA,SAAA,EAFvB,CAAC,EAAE,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,uBAAuB,EAAE,CAAC,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;4FAEnE,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBAJnC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,kBAAkB;oBAC5B,SAAS,EAAE,CAAC,EAAE,OAAO,EAAE,cAAc,EAAE,WAAW,EAAyB,uBAAA,EAAE,CAAC;AAC/E,iBAAA,CAAA;8BAEuC,IAAI,EAAA,CAAA;sBAAzC,KAAK;uBAAC,oBAAoB,CAAA;;MAMhB,uCAAuC,CAAA;AAIlD,IAAA,WAAA,CAAoB,iBAAmC,EAAA;QAAnC,IAAiB,CAAA,iBAAA,GAAjB,iBAAiB,CAAkB;QAH/C,IAAQ,CAAA,QAAA,GAAuC,IAAI,CAAC;KAGD;AAE3D,IAAA,WAAW,CAAC,OAAsB,EAAA;QAChC,MAAM,YAAY,GAAG,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC;QACtD,IAAI,YAAY,EAAE;AAChB,YAAA,MAAM,gBAAgB,GAAG,IAAI,CAAC,iBAAiB,CAAC;AAEhD,YAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;AACjB,gBAAA,gBAAgB,CAAC,MAAM,CAAC,gBAAgB,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;aAClE;AAED,YAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,IAAI;AACvB,kBAAE,gBAAgB,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;kBAClF,IAAI,CAAC;YAET,IAAI,WAAW,CAAC,kBAAkB,IAAI,IAAI,CAAC,QAAQ,EAAE;gBACnD,WAAW,CAAC,kBAAkB,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;aACtD;SACF;aAAM,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;YAC7C,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;SAC/C;KACF;AAEO,IAAA,kBAAkB,CAAC,OAAsB,EAAA;AAC/C,QAAA,MAAM,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;AAC/B,QAAA,OAAO,CAAC,CAAC,OAAO,CAAC,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,sBAAsB,CAAC,SAAS,CAAC,CAAC,CAAC;KAChF;AAEO,IAAA,sBAAsB,CAAC,SAAuB,EAAA;AACpD,QAAA,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,IAAI,EAAE,CAAC,CAAC;AAC/D,QAAA,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC;QAE9D,IAAI,WAAW,CAAC,MAAM,KAAK,WAAW,CAAC,MAAM,EAAE;AAC7C,YAAA,KAAK,MAAM,QAAQ,IAAI,WAAW,EAAE;gBAClC,IAAI,WAAW,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE;AACxC,oBAAA,OAAO,IAAI,CAAC;iBACb;aACF;AACD,YAAA,OAAO,KAAK,CAAC;SACd;AACD,QAAA,OAAO,IAAI,CAAC;KACb;AAEO,IAAA,qBAAqB,CAAC,GAAe,EAAA;QAC3C,KAAK,MAAM,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;AACvC,YAAA,IAAI,CAAC,QAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAI,IAAI,CAAC,IAAI,CAAC,OAAsB,CAAC,QAAQ,CAAC,CAAC;SAChF;KACF;+GAnDU,uCAAuC,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;mGAAvC,uCAAuC,EAAA,QAAA,EAAA,kCAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;4FAAvC,uCAAuC,EAAA,UAAA,EAAA,CAAA;kBAHnD,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,kCAAkC;AAC7C,iBAAA,CAAA;qFAGU,IAAI,EAAA,CAAA;sBAAZ,KAAK;;;MC3IK,4BAA4B,CAAA;AAQvC,IAAA,WAAA,CAAoB,QAAoC,EAAA;QAApC,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAA4B;QAH/B,IAAW,CAAA,WAAA,GAAY,KAAK,CAAC;AACnC,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,YAAY,EAAc,CAAC;KAED;AAE5D,IAAA,IAAI,QAAQ,GAAA;QACV,OAAO,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC;KACtD;AAED,IAAA,OAAO,CAAC,CAAa,EAAA;AACnB,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;AAClB,YAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;SACvB;KACF;+GAlBU,4BAA4B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAC,oBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAA5B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,4BAA4B,EAb7B,QAAA,EAAA,uCAAA,EAAA,MAAA,EAAA,EAAA,UAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,WAAA,EAAA,aAAA,EAAA,EAAA,OAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,OAAA,EAAA,iBAAA,EAAA,EAAA,UAAA,EAAA,EAAA,iCAAA,EAAA,YAAA,EAAA,uCAAA,EAAA,kBAAA,EAAA,kCAAA,EAAA,aAAA,EAAA,EAAA,cAAA,EAAA,mBAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;AAET,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;AAgBwB,UAAA,CAAA;AAAf,IAAA,YAAY,EAAE;AAA8B,CAAA,EAAA,4BAAA,CAAA,SAAA,EAAA,aAAA,EAAA,KAAA,CAAA,CAAA,CAAA;4FAL3C,4BAA4B,EAAA,UAAA,EAAA,CAAA;kBAfxC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,uCAAuC;AACjD,oBAAA,QAAQ,EAAE,CAAA;;AAET,EAAA,CAAA;oBACD,eAAe,EAAE,uBAAuB,CAAC,MAAM;AAC/C,oBAAA,mBAAmB,EAAE,KAAK;AAC1B,oBAAA,IAAI,EAAE;AACJ,wBAAA,KAAK,EAAE,mBAAmB;AAC1B,wBAAA,mCAAmC,EAAE,CAAY,UAAA,CAAA;AACjD,wBAAA,yCAAyC,EAAE,CAAkB,gBAAA,CAAA;AAC7D,wBAAA,oCAAoC,EAAE,CAAa,WAAA,CAAA;AACnD,wBAAA,SAAS,EAAE,iBAAiB;AAC7B,qBAAA;AACF,iBAAA,CAAA;sFAIU,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBACG,gBAAgB,EAAA,CAAA;sBAAxB,KAAK;gBACmB,WAAW,EAAA,CAAA;sBAAnC,KAAK;gBACa,QAAQ,EAAA,CAAA;sBAA1B,MAAM;;;AChCT;;;AAGG;MAkBU,0BAA0B,CAAA;AAGrC,IAAA,WAAA,CAAoB,QAAoC,EAAA;QAApC,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAA4B;AAFrC,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,YAAY,EAAc,CAAC;KAED;AAE5D,IAAA,IAAI,UAAU,GAAA;AACZ,QAAA,OAAO,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC;KACjC;AAED,IAAA,IAAI,QAAQ,GAAA;AACV,QAAA,OAAO,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC;KAClC;AAED,IAAA,OAAO,CAAC,CAAa,EAAA;AACnB,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;AAClB,YAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;SACvB;KACF;+GAjBU,0BAA0B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,oBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAA1B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,0BAA0B,EAX3B,QAAA,EAAA,sBAAA,EAAA,OAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,OAAA,EAAA,iBAAA,EAAA,EAAA,UAAA,EAAA,EAAA,0CAAA,EAAA,YAAA,EAAA,8BAAA,EAAA,aAAA,EAAA,EAAA,cAAA,EAAA,+BAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;AAET,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;4FASU,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBAbtC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,sBAAsB;AAChC,oBAAA,QAAQ,EAAE,CAAA;;AAET,EAAA,CAAA;oBACD,eAAe,EAAE,uBAAuB,CAAC,MAAM;AAC/C,oBAAA,IAAI,EAAE;AACJ,wBAAA,KAAK,EAAE,+BAA+B;AACtC,wBAAA,4CAA4C,EAAE,YAAY;AAC1D,wBAAA,gCAAgC,EAAE,aAAa;AAC/C,wBAAA,SAAS,EAAE,iBAAiB;AAC7B,qBAAA;AACF,iBAAA,CAAA;sFAEoB,QAAQ,EAAA,CAAA;sBAA1B,MAAM;;;ACtBT;;;AAGG;MAgBU,0BAA0B,CAAA;IACrC,WACS,CAAA,aAA+B,EACgB,KAAkB,EAAA;QADjE,IAAa,CAAA,aAAA,GAAb,aAAa,CAAkB;QACgB,IAAK,CAAA,KAAA,GAAL,KAAK,CAAa;KACtE;AAJO,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,0BAA0B,kDAG3B,yBAAyB,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAHxB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,0BAA0B,EAP1B,QAAA,EAAA,qBAAA,EAAA,SAAA,EAAA;AACT,YAAA;AACE,gBAAA,OAAO,EAAE,iBAAiB;AAC1B,gBAAA,WAAW,EAAE,0BAA0B;AACxC,aAAA;AACF,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;4FAEU,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBATtC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,qBAAqB;AAC/B,oBAAA,SAAS,EAAE;AACT,wBAAA;AACE,4BAAA,OAAO,EAAE,iBAAiB;AAC1B,4BAAA,WAAW,EAA4B,0BAAA;AACxC,yBAAA;AACF,qBAAA;AACF,iBAAA,CAAA;;0BAII,MAAM;2BAAC,yBAAyB,CAAA;;0BAAG,QAAQ;;;ACtBhD;;;AAGG;AAgBG,MAAO,2BAAkC,SAAQ,kBAAqB,CAAA;AAI1E,IAAA,IAAa,KAAK,GAAA;QAChB,OAAO,IAAI,CAAC,MAAM,CAAC;KACpB;IACD,IAAa,KAAK,CAAC,KAAa,EAAA;AAC9B,QAAA,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;KAC5B;AAED,IAAA,IAAa,MAAM,GAAA;QACjB,OAAO,IAAI,CAAC,OAAO,CAAC;KACrB;IACD,IAAa,MAAM,CAAC,MAAuB,EAAA;AACzC,QAAA,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;KAC9B;IAEQ,cAAc,GAAA;AACrB,QAAA,MAAM,OAAO,GAAG,KAAK,CAAC,cAAc,EAAE,CAAC;QACvC,OAAO,OAAO,KAAK,IAAI;cACnB,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,aAAa,CAAG,EAAA,IAAI,CAAC,WAAW,CAAE,CAAA;cAC1F,IAAI,CAAC;KACV;IAED,UAAU,GAAA;QACR,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,GAAG,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC;QACtE,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC;KACrD;IAED,WACE,CAAA,SAA4B,EAC5B,KAAoB,EACpB,QAAiC,EACjC,IAAoB,EACV,QAA2B,EACrC,iBAAoC,EAAA;QAEpC,KAAK,CAAC,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;QAH9B,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAmB;QAlC9B,IAAO,CAAA,OAAA,GAAG,EAAE,CAAC;QACtB,IAAa,CAAA,aAAA,GAAG,CAAC,CAAC;QAqChB,IAAI,CAAC,UAAU,EAAE,CAAC;QAClB,IAAI,CAAC,QAAQ,CAAC,cAAc;AACzB,aAAA,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAC;aAClC,SAAS,CAAC,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;KACvC;+GA3CU,2BAA2B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAJ,IAAA,CAAA,WAAA,EAAA,EAAA,EAAA,KAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,cAAA,EAAA,EAAA,EAAA,KAAA,EAAAK,WAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,IAAA,CAAA,iBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAA3B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,2BAA2B,EAL3B,QAAA,EAAA,8BAAA,EAAA,SAAA,EAAA;AACT,YAAA,EAAE,OAAO,EAAE,kBAAkB,EAAE,WAAW,EAAE,2BAA2B,EAAE;YACzE,iBAAiB;AAClB,SAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;4FAEU,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBAPvC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,8BAA8B;AACxC,oBAAA,SAAS,EAAE;AACT,wBAAA,EAAE,OAAO,EAAE,kBAAkB,EAAE,WAAW,6BAA6B,EAAE;wBACzE,iBAAiB;AAClB,qBAAA;AACF,iBAAA,CAAA;;;AC0BK,MAAO,0BAAiC,SAAQ,iBAAoB,CAAA;AAcxE,IAAA,IAAI,UAAU,GAAA;QACZ,OAAO,IAAI,CAAC,SAAS,CAAC;KACvB;IACD,IAAI,UAAU,CAAC,KAAc,EAAA;AAC3B,QAAA,IAAI,CAAC,SAAS,GAAG,qBAAqB,CAAC,KAAK,CAAC,CAAC;KAC/C;AAED,IAAA,IAAI,UAAU,GAAA;AACZ,QAAA,OAAO,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC;KAClC;AAED,IAAA,IAAI,QAAQ,GAAA;QACV,OAAO,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC;KACtD;AAED,IAAA,WAAA,CACE,KAAoB,EACpB,SAA4B,EACpB,QAAoC,EAAA;AAE5C,QAAA,KAAK,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;QAFhB,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAA4B;QAzBrB,IAAO,CAAA,OAAA,GAAY,KAAK,CAAC;QACzB,IAAQ,CAAA,QAAA,GAAY,KAAK,CAAC;QAC1B,IAAU,CAAA,UAAA,GAAY,KAAK,CAAC;QAC5B,IAAW,CAAA,WAAA,GAAY,KAAK,CAAC;KAyBrD;AAEQ,IAAA,OAAO,CAAC,KAAY,EAAA;QAC3B,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ;AAAE,YAAA,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;KAC3D;+GAvCU,0BAA0B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAN,IAAA,CAAA,OAAA,EAAA,EAAA,EAAA,KAAA,EAAAA,IAAA,CAAA,WAAA,EAAA,EAAA,EAAA,KAAA,EAAAO,oBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAA1B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,0BAA0B,EA9B1B,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,UAAA,EAAA,UAAA,EAAA,YAAA,EAAA,WAAA,EAAA,aAAA,EAAA,UAAA,EAAA,CAAA,cAAA,EAAA,YAAA,CAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,8BAAA,EAAA,YAAA,EAAA,+BAAA,EAAA,aAAA,EAAA,kCAAA,EAAA,aAAA,EAAA,EAAA,cAAA,EAAA,mBAAA,EAAA,EAAA,SAAA,EAAA,CAAC,EAAE,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,0BAA0B,EAAE,CAAC,EAO1E,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;;;;;;;;;;;;;;;;AAqBT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,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,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,WAAA,EAAA,SAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;AASwB,UAAA,CAAA;AAAf,IAAA,YAAY,EAAE;AAA0B,CAAA,EAAA,0BAAA,CAAA,SAAA,EAAA,SAAA,EAAA,KAAA,CAAA,CAAA,CAAA;AACzB,UAAA,CAAA;AAAf,IAAA,YAAY,EAAE;AAA2B,CAAA,EAAA,0BAAA,CAAA,SAAA,EAAA,UAAA,EAAA,KAAA,CAAA,CAAA,CAAA;AAC1B,UAAA,CAAA;AAAf,IAAA,YAAY,EAAE;AAA6B,CAAA,EAAA,0BAAA,CAAA,SAAA,EAAA,YAAA,EAAA,KAAA,CAAA,CAAA,CAAA;AAC5B,UAAA,CAAA;AAAf,IAAA,YAAY,EAAE;AAA8B,CAAA,EAAA,0BAAA,CAAA,SAAA,EAAA,aAAA,EAAA,KAAA,CAAA,CAAA,CAAA;AAItD,UAAA,CAAA;AADC,IAAA,YAAY,EAAE;AAGd,CAAA,EAAA,0BAAA,CAAA,SAAA,EAAA,YAAA,EAAA,IAAA,CAAA,CAAA;4FAhBU,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBAhCtC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,sBAAsB;oBAChC,SAAS,EAAE,CAAC,EAAE,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAA4B,0BAAA,EAAE,CAAC;AACpF,oBAAA,IAAI,EAAE;AACJ,wBAAA,KAAK,EAAE,mBAAmB;AAC1B,wBAAA,gCAAgC,EAAE,YAAY;AAC9C,wBAAA,iCAAiC,EAAE,aAAa;AAChD,wBAAA,oCAAoC,EAAE,aAAa;AACpD,qBAAA;AACD,oBAAA,QAAQ,EAAE,CAAA;;;;;;;;;;;;;;;;;;;;;AAqBT,EAAA,CAAA;AACF,iBAAA,CAAA;0IAQ0B,OAAO,EAAA,CAAA;sBAA/B,KAAK;gBACmB,QAAQ,EAAA,CAAA;sBAAhC,KAAK;gBACmB,UAAU,EAAA,CAAA;sBAAlC,KAAK;gBACmB,WAAW,EAAA,CAAA;sBAAnC,KAAK;gBAIF,UAAU,EAAA,CAAA;sBAFb,KAAK;uBAAC,cAAc,CAAA;;;ACxDvB;;;AAGG;AA8CG,MAAO,oBAA2B,SAAQ,WAAiB,CAAA;AA9BjE,IAAA,WAAA,GAAA;;QAiCE,IAAc,CAAA,cAAA,GAAG,KAAK,CAAC;AAOxB,KAAA;IANC,eAAe,GAAA;AACb,QAAA,OAAO,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,MAAK;AAC1B,YAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;AAC3B,YAAA,IAAI,CAAC,iBAAiB,CAAC,YAAY,EAAE,CAAC;AACxC,SAAC,CAAC,CAAC;KACJ;+GATU,oBAAoB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAApB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,oBAAoB,EAdpB,QAAA,EAAA,eAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,oBAAA,EAAA,eAAA,EAAA,mBAAA,EAAA,oBAAA,EAAA,mBAAA,EAAA,oBAAA,EAAA,mBAAA,EAAA,oBAAA,EAAA,0BAAA,EAAA,aAAA,EAAA,EAAA,cAAA,EAAA,UAAA,EAAA,EAAA,SAAA,EAAA;AACT,YAAA,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,oBAAoB,EAAE;AACvD,YAAA,EAAE,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,oBAAoB,EAAE;AAC5D,SAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,YAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAYU,0BAA0B,EA5B3B,WAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,CAAA,aAAA,CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;;;;;GAUT,EAeW,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,0BAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,CAAA,EAAA,UAAA,EAAA,CAAC,mBAAmB,CAAC,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;;4FAEtB,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBA9BhC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,eAAe;AACzB,oBAAA,QAAQ,EAAE,aAAa;AACvB,oBAAA,QAAQ,EAAE,CAAA;;;;;;;;;;AAUT,EAAA,CAAA;oBACD,aAAa,EAAE,iBAAiB,CAAC,IAAI;oBACrC,eAAe,EAAE,uBAAuB,CAAC,MAAM;AAC/C,oBAAA,SAAS,EAAE;AACT,wBAAA,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,sBAAsB,EAAE;AACvD,wBAAA,EAAE,OAAO,EAAE,WAAW,EAAE,WAAW,sBAAsB,EAAE;AAC5D,qBAAA;AACD,oBAAA,IAAI,EAAE;AACJ,wBAAA,KAAK,EAAE,UAAU;AACjB,wBAAA,sBAAsB,EAAE,CAAe,aAAA,CAAA;AACvC,wBAAA,qBAAqB,EAAE,kBAAkB;AACzC,wBAAA,qBAAqB,EAAE,kBAAkB;AACzC,wBAAA,qBAAqB,EAAE,kBAAkB;AACzC,wBAAA,4BAA4B,EAAE,CAAa,WAAA,CAAA;AAC5C,qBAAA;oBACD,UAAU,EAAE,CAAC,mBAAmB,CAAC;AAClC,iBAAA,CAAA;8BAGC,UAAU,EAAA,CAAA;sBADT,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,0BAA0B,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAA;;;AClDzD;;;AAGG;AAoBH,MAAM,IAAI,GAAsC;AAC9C,IAAA,EAAE,EAAE,EAAE;AACN,IAAA,EAAE,EAAE,EAAE;AACN,IAAA,EAAE,EAAE,EAAE;CACP,CAAC;AAEF,MAAM,YAAY,GAAG,IAAI,CAAC,EAAE,CAAC;AAmCvB,MAAO,iCACX,SAAQ,WAAiB,CAAA;AAlC3B,IAAA,WAAA,GAAA;;QAqCE,IAAQ,CAAA,QAAA,GAAG,YAAY,CAAC;QAOf,IAAW,CAAA,WAAA,GAAG,YAAY,CAAC;AAC3B,QAAA,IAAA,CAAA,cAAc,GAAG,YAAY,GAAG,CAAC,CAAC;AAClC,QAAA,IAAA,CAAA,cAAc,GAAG,YAAY,GAAG,EAAE,CAAC;QAE5C,IAAK,CAAA,KAAA,GAAqC,EAAE,CAAC;AA4B9C,KAAA;AA1BU,IAAA,iBAAiB,CAAC,IAA4B,EAAA;AACrD,QAAA,IAAI,CAAC,KAAK,GAAG,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;KACtE;IAEO,UAAU,CAAC,QAAW,EAAE,KAAa,EAAA;QAC3C,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;AAC/C,QAAA,MAAM,OAAO,GAAG,IAAI,wBAAwB,CAAI,QAAQ,CAAC,CAAC;AAC1D,QAAA,IAAI,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE;YAC7B,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;SACrD;aAAM;AACL,YAAA,OAAO,CAAC,KAAK,GAAG,CAAC,CAAC;SACnB;QACD,OAAO;AACL,YAAA,IAAI,EAAE,QAAQ;YACd,OAAO;AACP,YAAA,OAAO,EAAE,IAAI;SACd,CAAC;KACH;AAEQ,IAAA,WAAW,CAAC,OAAsB,EAAA;AACzC,QAAA,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC;QAC5B,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,YAA8B,CAAC,CAAC;AAC1D,QAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;QACxC,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;KAC1C;+GA1CU,iCAAiC,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAjC,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,iCAAiC,EAbjC,QAAA,EAAA,8BAAA,EAAA,MAAA,EAAA,EAAA,WAAA,EAAA,aAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,mBAAA,EAAA,oBAAA,EAAA,mBAAA,EAAA,oBAAA,EAAA,mBAAA,EAAA,oBAAA,EAAA,0BAAA,EAAA,aAAA,EAAA,oBAAA,EAAA,eAAA,EAAA,EAAA,cAAA,EAAA,UAAA,EAAA,EAAA,SAAA,EAAA;AACT,YAAA,EAAE,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,iCAAiC,EAAE;AACxE,YAAA,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,iCAAiC,EAAE;SACrE,EAgBU,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,YAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,0BAA0B,EAE1B,WAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,uBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,wBAAwB,EAtCzB,WAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,CAAA,0BAAA,CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;;;;;;;;;AAcT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAR,IAAA,CAAA,yBAAA,EAAA,QAAA,EAAA,uCAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,aAAA,EAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,kCAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,sBAAA,EAAA,uBAAA,EAAA,gCAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,wBAAA,EAAA,QAAA,EAAA,6BAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,YAAA,CAAA,EAAA,OAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAS,0BAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,uCAAA,EAAA,QAAA,EAAA,kCAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;;4FAgBU,iCAAiC,EAAA,UAAA,EAAA,CAAA;kBAjC7C,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,8BAA8B;AACxC,oBAAA,QAAQ,EAAE,0BAA0B;AACpC,oBAAA,QAAQ,EAAE,CAAA;;;;;;;;;;;;;;AAcT,EAAA,CAAA;oBACD,aAAa,EAAE,iBAAiB,CAAC,IAAI;oBACrC,eAAe,EAAE,uBAAuB,CAAC,MAAM;AAC/C,oBAAA,SAAS,EAAE;AACT,wBAAA,EAAE,OAAO,EAAE,WAAW,EAAE,WAAW,mCAAmC,EAAE;AACxE,wBAAA,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,mCAAmC,EAAE;AACrE,qBAAA;AACD,oBAAA,IAAI,EAAE;AACJ,wBAAA,KAAK,EAAE,UAAU;AACjB,wBAAA,qBAAqB,EAAE,kBAAkB;AACzC,wBAAA,qBAAqB,EAAE,kBAAkB;AACzC,wBAAA,qBAAqB,EAAE,kBAAkB;AACzC,wBAAA,4BAA4B,EAAE,CAAa,WAAA,CAAA;AAC3C,wBAAA,sBAAsB,EAAE,CAAe,aAAA,CAAA;AACxC,qBAAA;AACF,iBAAA,CAAA;8BAQU,UAAU,EAAA,CAAA;sBADlB,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,0BAA0B,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAA;gBAG9C,qBAAqB,EAAA,CAAA;sBAD7B,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,wBAAwB,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAA;gBAG5C,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBACG,cAAc,EAAA,CAAA;sBAAtB,KAAK;gBACG,cAAc,EAAA,CAAA;sBAAtB,KAAK;;;AC7ER;;;AAGG;AAyBH,MAAM,yBAAyB,GAAG;IAChC,WAAW;IACX,0BAA0B;IAC1B,oBAAoB;IACpB,uBAAuB;IACvB,oBAAoB;IACpB,0BAA0B;IAC1B,2BAA2B;IAC3B,0BAA0B;IAC1B,4BAA4B;IAC5B,2BAA2B;IAC3B,iCAAiC;IACjC,uCAAuC;CACxC,CAAC;MAOW,iBAAiB,CAAA;+GAAjB,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;AAAjB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,iBAAiB,iBAnB5B,WAAW;YACX,0BAA0B;YAC1B,oBAAoB;YACpB,uBAAuB;YACvB,oBAAoB;YACpB,0BAA0B;YAC1B,2BAA2B;YAC3B,0BAA0B;YAC1B,4BAA4B;YAC5B,2BAA2B;YAC3B,iCAAiC;YACjC,uCAAuC,CAAA,EAAA,OAAA,EAAA,CAI7B,UAAU,EAAE,YAAY,EAAE,oBAAoB,EAAE,eAAe,EAAE,aAAa,CAAA,EAAA,OAAA,EAAA,CAfxF,WAAW;YACX,0BAA0B;YAC1B,oBAAoB;YACpB,uBAAuB;YACvB,oBAAoB;YACpB,0BAA0B;YAC1B,2BAA2B;YAC3B,0BAA0B;YAC1B,4BAA4B;YAC5B,2BAA2B;YAC3B,iCAAiC;YACjC,uCAAuC,CAAA,EAAA,CAAA,CAAA,EAAA;gHAQ5B,iBAAiB,EAAA,OAAA,EAAA,CAJlB,UAAU,EAAE,YAAY,EAAE,oBAAoB,EAAE,eAAe,EAAE,aAAa,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAI7E,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAL7B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,OAAO,EAAE,CAAC,UAAU,EAAE,YAAY,EAAE,oBAAoB,EAAE,eAAe,EAAE,aAAa,CAAC;oBACzF,YAAY,EAAE,CAAC,yBAAyB,CAAC;oBACzC,OAAO,EAAE,CAAC,yBAAyB,CAAC;AACrC,iBAAA,CAAA;;;AC/CD;;;AAGG;MAOU,gBAAgB,CAAA;AAC3B,IAAA,WAAA,CACS,iBAAgD,EAChD,QAA6B,EAC7B,YAAkC,EAClC,WAAkE,EAAA;QAHlE,IAAiB,CAAA,iBAAA,GAAjB,iBAAiB,CAA+B;QAChD,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAqB;QAC7B,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAsB;QAClC,IAAW,CAAA,WAAA,GAAX,WAAW,CAAuD;KACvE;AAEI,IAAA,WAAW,CAAC,IAAO,EAAE,KAAa,EAAE,WAAgB,EAAE,SAAoB,EAAA;QAChF,MAAM,QAAQ,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;AACrD,QAAA,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AAE3B,QAAA,IAAI,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,EAAE;YAC/B,MAAM,aAAa,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;YAC7C,IAAI,aAAa,EAAE;AACjB,gBAAA,IAAI,KAAK,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE;oBAChC,IAAI,CAAC,eAAe,CAAC,aAAa,EAAE,KAAK,EAAE,WAAW,EAAE,SAAS,CAAC,CAAC;iBACpE;qBAAM;AACL,oBAAA,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,QAAQ,IAAG;wBAC/C,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE,KAAK,EAAE,WAAW,EAAE,SAAS,CAAC,CAAC;AAChE,qBAAC,CAAC,CAAC;iBACJ;aACF;SACF;AACD,QAAA,OAAO,WAAW,CAAC;KACpB;AAEO,IAAA,eAAe,CACrB,QAAa,EACb,KAAa,EACb,WAAgB,EAChB,SAAoB,EAAA;QAEpB,QAAQ,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,KAAK,KAAI;AAChC,YAAA,MAAM,cAAc,GAAc,SAAS,CAAC,KAAK,EAAE,CAAC;YACpD,cAAc,CAAC,IAAI,CAAC,KAAK,KAAK,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AACnD,YAAA,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,KAAK,GAAG,CAAC,EAAE,WAAW,EAAE,cAAc,CAAC,CAAC;AAClE,SAAC,CAAC,CAAC;KACJ;AAED;;;;AAIG;AACH,IAAA,YAAY,CAAC,cAAmB,EAAA;QAC9B,MAAM,WAAW,GAAQ,EAAE,CAAC;QAC5B,cAAc,CAAC,OAAO,CAAC,IAAI,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,EAAE,WAAW,EAAE,EAAE,CAAC,CAAC,CAAC;AAC3E,QAAA,OAAO,WAAW,CAAC;KACpB;AAED;;;AAGG;IACH,oBAAoB,CAAC,KAAU,EAAE,WAA8B,EAAA;QAC7D,MAAM,OAAO,GAAQ,EAAE,CAAC;QACxB,MAAM,aAAa,GAAc,EAAE,CAAC;AACpC,QAAA,aAAa,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;AAExB,QAAA,KAAK,CAAC,OAAO,CAAC,IAAI,IAAG;YACnB,IAAI,MAAM,GAAG,IAAI,CAAC;AAClB,YAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE;AAC7C,gBAAA,MAAM,GAAG,MAAM,IAAI,aAAa,CAAC,CAAC,CAAC,CAAC;aACrC;YACD,IAAI,MAAM,EAAE;AACV,gBAAA,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aACpB;AACD,YAAA,IAAI,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE;AAC3B,gBAAA,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;aACvE;AACH,SAAC,CAAC,CAAC;AACH,QAAA,OAAO,OAAO,CAAC;KAChB;AACF,CAAA;AAEK,MAAO,qBAAmC,SAAQ,UAAa,CAAA;AAOnE,IAAA,WAAA,CACU,YAAmC,EACnC,cAAyC,EACjD,cAAmB,EAAE,EAAA;AAErB,QAAA,KAAK,EAAE,CAAC;QAJA,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAuB;QACnC,IAAc,CAAA,cAAA,GAAd,cAAc,CAA2B;AARnD,QAAA,IAAA,CAAA,cAAc,GAAG,IAAI,eAAe,CAAM,EAAE,CAAC,CAAC;AAE9C,QAAA,IAAA,CAAA,aAAa,GAAG,IAAI,eAAe,CAAM,EAAE,CAAC,CAAC;QAU3C,IAAI,CAAC,KAAK,GAAG,IAAI,eAAe,CAAM,WAAW,CAAC,CAAC;QACnD,IAAI,CAAC,SAAS,EAAE,CAAC;KAClB;AAED,IAAA,OAAO,CAAC,KAAU,EAAA;AAChB,QAAA,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACvB,IAAI,CAAC,SAAS,EAAE,CAAC;KAClB;IAED,OAAO,GAAA;AACL,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;KAC9B;IAED,cAAc,GAAA;AACZ,QAAA,OAAO,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,CAAC;KACvC;AAED,IAAA,OAAO,CAAC,gBAAkC,EAAA;AACxC,QAAA,MAAM,OAAO,GAAG;AACd,YAAA,gBAAgB,CAAC,UAAU;AAC3B,YAAA,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,OAAO;AACxC,YAAA,IAAI,CAAC,cAAc;SACpB,CAAC;QACF,OAAO,KAAK,CAAC,GAAG,OAAO,CAAC,CAAC,IAAI,CAC3B,GAAG,CAAC,MAAK;YACP,IAAI,CAAC,aAAa,CAAC,IAAI,CACrB,IAAI,CAAC,cAAc,CAAC,oBAAoB,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,IAAI,CAAC,YAAY,CAAC,CACvF,CAAC;AACF,YAAA,OAAO,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC;SACjC,CAAC,CACH,CAAC;KACH;IAED,UAAU,GAAA;;KAET;IAEO,SAAS,GAAA;AACf,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;AACjE,QAAA,IAAI,CAAC,YAAY,CAAC,SAAS,GAAG,OAAO,CAAC;AACtC,QAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;KACnC;AACF;;AC7ID;;;AAGG;;ACHH;;AAEG;;;;"}