{"version":3,"file":"ng-zorro-antd-progress.mjs","sources":["../../components/progress/utils.ts","../../components/progress/progress.component.ts","../../components/progress/progress.module.ts","../../components/progress/public-api.ts","../../components/progress/ng-zorro-antd-progress.ts"],"sourcesContent":["/**\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\n */\n\nimport { NzProgressColorGradient, NzProgressGradientProgress } from './typings';\n\nfunction stripPercentToNumber(percent: string): number {\n  return +percent.replace('%', '');\n}\n\nexport const sortGradient = (gradients: NzProgressGradientProgress): Array<{ key: number; value: string }> => {\n  let tempArr: Array<{ key: number; value: string }> = [];\n\n  Object.keys(gradients).forEach(key => {\n    const value = gradients[key];\n    const formatKey = stripPercentToNumber(key);\n    if (!isNaN(formatKey)) {\n      tempArr.push({\n        key: formatKey,\n        value\n      });\n    }\n  });\n\n  tempArr = tempArr.sort((a, b) => a.key - b.key);\n  return tempArr;\n};\n\nexport const handleCircleGradient = (\n  strokeColor: NzProgressGradientProgress\n): Array<{ offset: string; color: string }> =>\n  sortGradient(strokeColor).map(({ key, value }) => ({ offset: `${key}%`, color: value }));\n\nexport const handleLinearGradient = (strokeColor: NzProgressColorGradient): string => {\n  const { from = '#1890ff', to = '#1890ff', direction = 'to right', ...rest } = strokeColor;\n  if (Object.keys(rest).length !== 0) {\n    const sortedGradients = sortGradient(rest as NzProgressGradientProgress)\n      .map(({ key, value }) => `${value} ${key}%`)\n      .join(', ');\n    return `linear-gradient(${direction}, ${sortedGradients})`;\n  }\n  return `linear-gradient(${direction}, ${from}, ${to})`;\n};\n","/**\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\n */\n\nimport { Direction, Directionality } from '@angular/cdk/bidi';\nimport {\n  ChangeDetectionStrategy,\n  ChangeDetectorRef,\n  Component,\n  Input,\n  OnChanges,\n  OnDestroy,\n  OnInit,\n  Optional,\n  SimpleChanges,\n  ViewEncapsulation\n} from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nimport { NzConfigKey, NzConfigService, WithConfig } from 'ng-zorro-antd/core/config';\nimport { NgStyleInterface, NumberInput } from 'ng-zorro-antd/core/types';\nimport { InputNumber, isNotNil } from 'ng-zorro-antd/core/util';\n\nimport {\n  NzProgressCirclePath,\n  NzProgressColorGradient,\n  NzProgressFormatter,\n  NzProgressGapPositionType,\n  NzProgressGradientProgress,\n  NzProgressStatusType,\n  NzProgressStepItem,\n  NzProgressStrokeColorType,\n  NzProgressStrokeLinecapType,\n  NzProgressTypeType\n} from './typings';\nimport { handleCircleGradient, handleLinearGradient } from './utils';\n\nlet gradientIdSeed = 0;\n\nconst NZ_CONFIG_MODULE_NAME: NzConfigKey = 'progress';\nconst statusIconNameMap = new Map([\n  ['success', 'check'],\n  ['exception', 'close']\n]);\nconst statusColorMap = new Map([\n  ['normal', '#108ee9'],\n  ['exception', '#ff5500'],\n  ['success', '#87d068']\n]);\nconst defaultFormatter: NzProgressFormatter = (p: number): string => `${p}%`;\n\n@Component({\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  encapsulation: ViewEncapsulation.None,\n  selector: 'nz-progress',\n  exportAs: 'nzProgress',\n  preserveWhitespaces: false,\n  template: `\n    <ng-template #progressInfoTemplate>\n      <span class=\"ant-progress-text\" *ngIf=\"nzShowInfo\">\n        <ng-container *ngIf=\"(status === 'exception' || status === 'success') && !nzFormat; else formatTemplate\">\n          <span nz-icon [nzType]=\"icon\"></span>\n        </ng-container>\n        <ng-template #formatTemplate>\n          <ng-container *nzStringTemplateOutlet=\"formatter; context: { $implicit: nzPercent }; let formatter\">\n            {{ formatter(nzPercent) }}\n          </ng-container>\n        </ng-template>\n      </span>\n    </ng-template>\n\n    <div\n      [ngClass]=\"'ant-progress ant-progress-status-' + status\"\n      [class.ant-progress-line]=\"nzType === 'line'\"\n      [class.ant-progress-small]=\"nzSize === 'small'\"\n      [class.ant-progress-default]=\"nzSize === 'default'\"\n      [class.ant-progress-show-info]=\"nzShowInfo\"\n      [class.ant-progress-circle]=\"isCircleStyle\"\n      [class.ant-progress-steps]=\"isSteps\"\n      [class.ant-progress-rtl]=\"dir === 'rtl'\"\n    >\n      <!-- line progress -->\n      <div *ngIf=\"nzType === 'line'\">\n        <!-- normal line style -->\n        <ng-container *ngIf=\"!isSteps\">\n          <div class=\"ant-progress-outer\" *ngIf=\"!isSteps\">\n            <div class=\"ant-progress-inner\">\n              <div\n                class=\"ant-progress-bg\"\n                [style.width.%]=\"nzPercent\"\n                [style.border-radius]=\"nzStrokeLinecap === 'round' ? '100px' : '0'\"\n                [style.background]=\"!isGradient ? nzStrokeColor : null\"\n                [style.background-image]=\"isGradient ? lineGradient : null\"\n                [style.height.px]=\"strokeWidth\"\n              ></div>\n              <div\n                *ngIf=\"nzSuccessPercent || nzSuccessPercent === 0\"\n                class=\"ant-progress-success-bg\"\n                [style.width.%]=\"nzSuccessPercent\"\n                [style.border-radius]=\"nzStrokeLinecap === 'round' ? '100px' : '0'\"\n                [style.height.px]=\"strokeWidth\"\n              ></div>\n            </div>\n          </div>\n          <ng-template [ngTemplateOutlet]=\"progressInfoTemplate\"></ng-template>\n        </ng-container>\n        <!-- step style -->\n        <div class=\"ant-progress-steps-outer\" *ngIf=\"isSteps\">\n          <div *ngFor=\"let step of steps; let i = index\" class=\"ant-progress-steps-item\" [ngStyle]=\"step\"></div>\n          <ng-template [ngTemplateOutlet]=\"progressInfoTemplate\"></ng-template>\n        </div>\n      </div>\n\n      <!-- circle / dashboard progress -->\n      <div\n        [style.width.px]=\"this.nzWidth\"\n        [style.height.px]=\"this.nzWidth\"\n        [style.fontSize.px]=\"this.nzWidth * 0.15 + 6\"\n        class=\"ant-progress-inner\"\n        [class.ant-progress-circle-gradient]=\"isGradient\"\n        *ngIf=\"isCircleStyle\"\n      >\n        <svg class=\"ant-progress-circle \" viewBox=\"0 0 100 100\">\n          <defs *ngIf=\"isGradient\">\n            <linearGradient [id]=\"'gradient-' + gradientId\" x1=\"100%\" y1=\"0%\" x2=\"0%\" y2=\"0%\">\n              <stop *ngFor=\"let i of circleGradient\" [attr.offset]=\"i.offset\" [attr.stop-color]=\"i.color\"></stop>\n            </linearGradient>\n          </defs>\n          <path\n            class=\"ant-progress-circle-trail\"\n            stroke=\"#f3f3f3\"\n            fill-opacity=\"0\"\n            [attr.stroke-width]=\"strokeWidth\"\n            [attr.d]=\"pathString\"\n            [ngStyle]=\"trailPathStyle\"\n          ></path>\n          <path\n            *ngFor=\"let p of progressCirclePath; trackBy: trackByFn\"\n            class=\"ant-progress-circle-path\"\n            fill-opacity=\"0\"\n            [attr.d]=\"pathString\"\n            [attr.stroke-linecap]=\"nzStrokeLinecap\"\n            [attr.stroke]=\"p.stroke\"\n            [attr.stroke-width]=\"nzPercent ? strokeWidth : 0\"\n            [ngStyle]=\"p.strokePathStyle\"\n          ></path>\n        </svg>\n        <ng-template [ngTemplateOutlet]=\"progressInfoTemplate\"></ng-template>\n      </div>\n    </div>\n  `\n})\nexport class NzProgressComponent implements OnChanges, OnInit, OnDestroy {\n  readonly _nzModuleName: NzConfigKey = NZ_CONFIG_MODULE_NAME;\n\n  static ngAcceptInputType_nzSuccessPercent: NumberInput;\n  static ngAcceptInputType_nzPercent: NumberInput;\n  static ngAcceptInputType_nzStrokeWidth: NumberInput;\n  static ngAcceptInputType_nzGapDegree: NumberInput;\n  static ngAcceptInputType_nzSteps: NumberInput;\n\n  @Input() @WithConfig() nzShowInfo: boolean = true;\n  @Input() nzWidth = 132;\n  @Input() @WithConfig() nzStrokeColor?: NzProgressStrokeColorType = undefined;\n  @Input() @WithConfig() nzSize: 'default' | 'small' = 'default';\n  @Input() nzFormat?: NzProgressFormatter;\n  @Input() @InputNumber() nzSuccessPercent?: number;\n  @Input() @InputNumber() nzPercent: number = 0;\n  @Input() @WithConfig() @InputNumber() nzStrokeWidth?: number = undefined;\n  @Input() @WithConfig() @InputNumber() nzGapDegree?: number = undefined;\n  @Input() nzStatus?: NzProgressStatusType;\n  @Input() nzType: NzProgressTypeType = 'line';\n  @Input() @WithConfig() nzGapPosition: NzProgressGapPositionType = 'top';\n  @Input() @WithConfig() nzStrokeLinecap: NzProgressStrokeLinecapType = 'round';\n\n  @Input() @InputNumber() nzSteps: number = 0;\n\n  steps: NzProgressStepItem[] = [];\n\n  /** Gradient style when `nzType` is `line`. */\n  lineGradient: string | null = null;\n\n  /** If user uses gradient color. */\n  isGradient = false;\n\n  /** If the linear progress is a step progress. */\n  isSteps = false;\n\n  /**\n   * Each progress whose `nzType` is circle or dashboard should have unique id to\n   * define `<linearGradient>`.\n   */\n  gradientId = gradientIdSeed++;\n\n  /** Paths to rendered in the template. */\n  progressCirclePath: NzProgressCirclePath[] = [];\n  circleGradient?: Array<{ offset: string; color: string }>;\n  trailPathStyle: NgStyleInterface | null = null;\n  pathString?: string;\n  icon!: string;\n\n  dir: Direction = 'ltr';\n\n  trackByFn = (index: number): string => `${index}`;\n\n  get formatter(): NzProgressFormatter {\n    return this.nzFormat || defaultFormatter;\n  }\n\n  get status(): NzProgressStatusType {\n    return this.nzStatus || this.inferredStatus;\n  }\n\n  get strokeWidth(): number {\n    return this.nzStrokeWidth || (this.nzType === 'line' && this.nzSize !== 'small' ? 8 : 6);\n  }\n\n  get isCircleStyle(): boolean {\n    return this.nzType === 'circle' || this.nzType === 'dashboard';\n  }\n\n  private cachedStatus: NzProgressStatusType = 'normal';\n  private inferredStatus: NzProgressStatusType = 'normal';\n  private destroy$ = new Subject<void>();\n\n  constructor(\n    private cdr: ChangeDetectorRef,\n    public nzConfigService: NzConfigService,\n    @Optional() private directionality: Directionality\n  ) {}\n\n  ngOnChanges(changes: SimpleChanges): void {\n    const {\n      nzSteps,\n      nzGapPosition,\n      nzStrokeLinecap,\n      nzStrokeColor,\n      nzGapDegree,\n      nzType,\n      nzStatus,\n      nzPercent,\n      nzSuccessPercent,\n      nzStrokeWidth\n    } = changes;\n\n    if (nzStatus) {\n      this.cachedStatus = this.nzStatus || this.cachedStatus;\n    }\n\n    if (nzPercent || nzSuccessPercent) {\n      const fillAll = parseInt(this.nzPercent.toString(), 10) >= 100;\n      if (fillAll) {\n        if ((isNotNil(this.nzSuccessPercent) && this.nzSuccessPercent! >= 100) || this.nzSuccessPercent === undefined) {\n          this.inferredStatus = 'success';\n        }\n      } else {\n        this.inferredStatus = this.cachedStatus;\n      }\n    }\n\n    if (nzStatus || nzPercent || nzSuccessPercent || nzStrokeColor) {\n      this.updateIcon();\n    }\n\n    if (nzStrokeColor) {\n      this.setStrokeColor();\n    }\n\n    if (nzGapPosition || nzStrokeLinecap || nzGapDegree || nzType || nzPercent || nzStrokeColor || nzStrokeColor) {\n      this.getCirclePaths();\n    }\n\n    if (nzPercent || nzSteps || nzStrokeWidth) {\n      this.isSteps = this.nzSteps > 0;\n      if (this.isSteps) {\n        this.getSteps();\n      }\n    }\n  }\n\n  ngOnInit(): void {\n    this.nzConfigService\n      .getConfigChangeEventForComponent(NZ_CONFIG_MODULE_NAME)\n      .pipe(takeUntil(this.destroy$))\n      .subscribe(() => {\n        this.updateIcon();\n        this.setStrokeColor();\n        this.getCirclePaths();\n      });\n\n    this.directionality.change?.pipe(takeUntil(this.destroy$)).subscribe((direction: Direction) => {\n      this.dir = direction;\n      this.cdr.detectChanges();\n    });\n\n    this.dir = this.directionality.value;\n  }\n\n  ngOnDestroy(): void {\n    this.destroy$.next();\n    this.destroy$.complete();\n  }\n\n  private updateIcon(): void {\n    const ret = statusIconNameMap.get(this.status);\n    this.icon = ret ? ret + (this.isCircleStyle ? '-o' : '-circle-fill') : '';\n  }\n\n  /**\n   * Calculate step render configs.\n   */\n  private getSteps(): void {\n    const current = Math.floor(this.nzSteps * (this.nzPercent / 100));\n    const stepWidth = this.nzSize === 'small' ? 2 : 14;\n\n    const steps = [];\n\n    for (let i = 0; i < this.nzSteps; i++) {\n      let color;\n      if (i <= current - 1) {\n        color = this.nzStrokeColor;\n      }\n      const stepStyle = {\n        backgroundColor: `${color}`,\n        width: `${stepWidth}px`,\n        height: `${this.strokeWidth}px`\n      };\n      steps.push(stepStyle);\n    }\n\n    this.steps = steps;\n  }\n\n  /**\n   * Calculate paths when the type is circle or dashboard.\n   */\n  private getCirclePaths(): void {\n    if (!this.isCircleStyle) {\n      return;\n    }\n\n    const values = isNotNil(this.nzSuccessPercent) ? [this.nzSuccessPercent!, this.nzPercent] : [this.nzPercent];\n\n    // Calculate shared styles.\n    const radius = 50 - this.strokeWidth / 2;\n    const gapPosition = this.nzGapPosition || (this.nzType === 'circle' ? 'top' : 'bottom');\n    const len = Math.PI * 2 * radius;\n    const gapDegree = this.nzGapDegree || (this.nzType === 'circle' ? 0 : 75);\n\n    let beginPositionX = 0;\n    let beginPositionY = -radius;\n    let endPositionX = 0;\n    let endPositionY = radius * -2;\n\n    switch (gapPosition) {\n      case 'left':\n        beginPositionX = -radius;\n        beginPositionY = 0;\n        endPositionX = radius * 2;\n        endPositionY = 0;\n        break;\n      case 'right':\n        beginPositionX = radius;\n        beginPositionY = 0;\n        endPositionX = radius * -2;\n        endPositionY = 0;\n        break;\n      case 'bottom':\n        beginPositionY = radius;\n        endPositionY = radius * 2;\n        break;\n      default:\n    }\n\n    this.pathString = `M 50,50 m ${beginPositionX},${beginPositionY}\n       a ${radius},${radius} 0 1 1 ${endPositionX},${-endPositionY}\n       a ${radius},${radius} 0 1 1 ${-endPositionX},${endPositionY}`;\n\n    this.trailPathStyle = {\n      strokeDasharray: `${len - gapDegree}px ${len}px`,\n      strokeDashoffset: `-${gapDegree / 2}px`,\n      transition: 'stroke-dashoffset .3s ease 0s, stroke-dasharray .3s ease 0s, stroke .3s'\n    };\n\n    // Calculate styles for each path.\n    this.progressCirclePath = values\n      .map((value, index) => {\n        const isSuccessPercent = values.length === 2 && index === 0;\n        return {\n          stroke: this.isGradient && !isSuccessPercent ? `url(#gradient-${this.gradientId})` : null,\n          strokePathStyle: {\n            stroke: !this.isGradient\n              ? isSuccessPercent\n                ? statusColorMap.get('success')\n                : (this.nzStrokeColor as string)\n              : null,\n            transition:\n              'stroke-dashoffset .3s ease 0s, stroke-dasharray .3s ease 0s, stroke .3s, stroke-width .06s ease .3s',\n            strokeDasharray: `${((value || 0) / 100) * (len - gapDegree)}px ${len}px`,\n            strokeDashoffset: `-${gapDegree / 2}px`\n          }\n        };\n      })\n      .reverse();\n  }\n\n  private setStrokeColor(): void {\n    const color = this.nzStrokeColor;\n    const isGradient = (this.isGradient = !!color && typeof color !== 'string');\n    if (isGradient && !this.isCircleStyle) {\n      this.lineGradient = handleLinearGradient(color as NzProgressColorGradient);\n    } else if (isGradient && this.isCircleStyle) {\n      this.circleGradient = handleCircleGradient(this.nzStrokeColor as NzProgressGradientProgress);\n    } else {\n      this.lineGradient = null;\n      this.circleGradient = [];\n    }\n  }\n}\n","/**\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\n */\n\nimport { BidiModule } from '@angular/cdk/bidi';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { NzOutletModule } from 'ng-zorro-antd/core/outlet';\nimport { NzIconModule } from 'ng-zorro-antd/icon';\n\nimport { NzProgressComponent } from './progress.component';\n\n@NgModule({\n  exports: [NzProgressComponent],\n  declarations: [NzProgressComponent],\n  imports: [BidiModule, CommonModule, NzIconModule, NzOutletModule]\n})\nexport class NzProgressModule {}\n","/**\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\n */\n\nexport { NzProgressModule } from './progress.module';\nexport { NzProgressComponent } from './progress.component';\nexport * from './typings';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA;;;AAGG;AAIH,SAAS,oBAAoB,CAAC,OAAe,EAAA;IAC3C,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;AACnC,CAAC;AAEM,MAAM,YAAY,GAAG,CAAC,SAAqC,KAA2C;IAC3G,IAAI,OAAO,GAA0C,EAAE,CAAC;IAExD,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,GAAG,IAAG;AACnC,QAAA,MAAM,KAAK,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC;AAC7B,QAAA,MAAM,SAAS,GAAG,oBAAoB,CAAC,GAAG,CAAC,CAAC;AAC5C,QAAA,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE;YACrB,OAAO,CAAC,IAAI,CAAC;AACX,gBAAA,GAAG,EAAE,SAAS;gBACd,KAAK;AACN,aAAA,CAAC,CAAC;AACJ,SAAA;AACH,KAAC,CAAC,CAAC;IAEH,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;AAChD,IAAA,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC;AAEK,MAAM,oBAAoB,GAAG,CAClC,WAAuC,KAEvC,YAAY,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,CAAA,EAAG,GAAG,CAAA,CAAA,CAAG,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;AAEpF,MAAM,oBAAoB,GAAG,CAAC,WAAoC,KAAY;IACnF,MAAM,EAAE,IAAI,GAAG,SAAS,EAAE,EAAE,GAAG,SAAS,EAAE,SAAS,GAAG,UAAU,EAAA,GAAc,WAAW,EAApB,IAAI,UAAK,WAAW,EAAnF,CAAqE,MAAA,EAAA,IAAA,EAAA,WAAA,CAAA,CAAc,CAAC;IAC1F,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE;AAClC,QAAA,MAAM,eAAe,GAAG,YAAY,CAAC,IAAkC,CAAC;AACrE,aAAA,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,CAAG,EAAA,KAAK,CAAI,CAAA,EAAA,GAAG,GAAG,CAAC;aAC3C,IAAI,CAAC,IAAI,CAAC,CAAC;AACd,QAAA,OAAO,CAAmB,gBAAA,EAAA,SAAS,CAAK,EAAA,EAAA,eAAe,GAAG,CAAC;AAC5D,KAAA;AACD,IAAA,OAAO,mBAAmB,SAAS,CAAA,EAAA,EAAK,IAAI,CAAK,EAAA,EAAA,EAAE,GAAG,CAAC;AACzD,CAAC;;ACJD,IAAI,cAAc,GAAG,CAAC,CAAC;AAEvB,MAAM,qBAAqB,GAAgB,UAAU,CAAC;AACtD,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAAC;IAChC,CAAC,SAAS,EAAE,OAAO,CAAC;IACpB,CAAC,WAAW,EAAE,OAAO,CAAC;AACvB,CAAA,CAAC,CAAC;AACH,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC;IAC7B,CAAC,QAAQ,EAAE,SAAS,CAAC;IACrB,CAAC,WAAW,EAAE,SAAS,CAAC;IACxB,CAAC,SAAS,EAAE,SAAS,CAAC;AACvB,CAAA,CAAC,CAAC;AACH,MAAM,gBAAgB,GAAwB,CAAC,CAAS,KAAa,CAAA,EAAG,CAAC,CAAA,CAAA,CAAG,CAAC;MAuGhE,mBAAmB,CAAA;AAyE9B,IAAA,WAAA,CACU,GAAsB,EACvB,eAAgC,EACnB,cAA8B,EAAA;AAF1C,QAAA,IAAG,CAAA,GAAA,GAAH,GAAG,CAAmB;AACvB,QAAA,IAAe,CAAA,eAAA,GAAf,eAAe,CAAiB;AACnB,QAAA,IAAc,CAAA,cAAA,GAAd,cAAc,CAAgB;AA3E3C,QAAA,IAAa,CAAA,aAAA,GAAgB,qBAAqB,CAAC;AAQrC,QAAA,IAAU,CAAA,UAAA,GAAY,IAAI,CAAC;AACzC,QAAA,IAAO,CAAA,OAAA,GAAG,GAAG,CAAC;AACA,QAAA,IAAa,CAAA,aAAA,GAA+B,SAAS,CAAC;AACtD,QAAA,IAAM,CAAA,MAAA,GAAwB,SAAS,CAAC;AAGvC,QAAA,IAAS,CAAA,SAAA,GAAW,CAAC,CAAC;AACR,QAAA,IAAa,CAAA,aAAA,GAAY,SAAS,CAAC;AACnC,QAAA,IAAW,CAAA,WAAA,GAAY,SAAS,CAAC;AAE9D,QAAA,IAAM,CAAA,MAAA,GAAuB,MAAM,CAAC;AACtB,QAAA,IAAa,CAAA,aAAA,GAA8B,KAAK,CAAC;AACjD,QAAA,IAAe,CAAA,eAAA,GAAgC,OAAO,CAAC;AAEtD,QAAA,IAAO,CAAA,OAAA,GAAW,CAAC,CAAC;AAE5C,QAAA,IAAK,CAAA,KAAA,GAAyB,EAAE,CAAC;;AAGjC,QAAA,IAAY,CAAA,YAAA,GAAkB,IAAI,CAAC;;AAGnC,QAAA,IAAU,CAAA,UAAA,GAAG,KAAK,CAAC;;AAGnB,QAAA,IAAO,CAAA,OAAA,GAAG,KAAK,CAAC;AAEhB;;;AAGG;AACH,QAAA,IAAU,CAAA,UAAA,GAAG,cAAc,EAAE,CAAC;;AAG9B,QAAA,IAAkB,CAAA,kBAAA,GAA2B,EAAE,CAAC;AAEhD,QAAA,IAAc,CAAA,cAAA,GAA4B,IAAI,CAAC;AAI/C,QAAA,IAAG,CAAA,GAAA,GAAc,KAAK,CAAC;QAEvB,IAAS,CAAA,SAAA,GAAG,CAAC,KAAa,KAAa,CAAA,EAAG,KAAK,CAAA,CAAE,CAAC;AAkB1C,QAAA,IAAY,CAAA,YAAA,GAAyB,QAAQ,CAAC;AAC9C,QAAA,IAAc,CAAA,cAAA,GAAyB,QAAQ,CAAC;AAChD,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,OAAO,EAAQ,CAAC;KAMnC;AAxBJ,IAAA,IAAI,SAAS,GAAA;AACX,QAAA,OAAO,IAAI,CAAC,QAAQ,IAAI,gBAAgB,CAAC;KAC1C;AAED,IAAA,IAAI,MAAM,GAAA;AACR,QAAA,OAAO,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,cAAc,CAAC;KAC7C;AAED,IAAA,IAAI,WAAW,GAAA;QACb,OAAO,IAAI,CAAC,aAAa,KAAK,IAAI,CAAC,MAAM,KAAK,MAAM,IAAI,IAAI,CAAC,MAAM,KAAK,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;KAC1F;AAED,IAAA,IAAI,aAAa,GAAA;QACf,OAAO,IAAI,CAAC,MAAM,KAAK,QAAQ,IAAI,IAAI,CAAC,MAAM,KAAK,WAAW,CAAC;KAChE;AAYD,IAAA,WAAW,CAAC,OAAsB,EAAA;QAChC,MAAM,EACJ,OAAO,EACP,aAAa,EACb,eAAe,EACf,aAAa,EACb,WAAW,EACX,MAAM,EACN,QAAQ,EACR,SAAS,EACT,gBAAgB,EAChB,aAAa,EACd,GAAG,OAAO,CAAC;AAEZ,QAAA,IAAI,QAAQ,EAAE;YACZ,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,YAAY,CAAC;AACxD,SAAA;QAED,IAAI,SAAS,IAAI,gBAAgB,EAAE;AACjC,YAAA,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,EAAE,EAAE,CAAC,IAAI,GAAG,CAAC;AAC/D,YAAA,IAAI,OAAO,EAAE;gBACX,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,IAAI,CAAC,gBAAiB,IAAI,GAAG,KAAK,IAAI,CAAC,gBAAgB,KAAK,SAAS,EAAE;AAC7G,oBAAA,IAAI,CAAC,cAAc,GAAG,SAAS,CAAC;AACjC,iBAAA;AACF,aAAA;AAAM,iBAAA;AACL,gBAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,YAAY,CAAC;AACzC,aAAA;AACF,SAAA;AAED,QAAA,IAAI,QAAQ,IAAI,SAAS,IAAI,gBAAgB,IAAI,aAAa,EAAE;YAC9D,IAAI,CAAC,UAAU,EAAE,CAAC;AACnB,SAAA;AAED,QAAA,IAAI,aAAa,EAAE;YACjB,IAAI,CAAC,cAAc,EAAE,CAAC;AACvB,SAAA;AAED,QAAA,IAAI,aAAa,IAAI,eAAe,IAAI,WAAW,IAAI,MAAM,IAAI,SAAS,IAAI,aAAa,IAAI,aAAa,EAAE;YAC5G,IAAI,CAAC,cAAc,EAAE,CAAC;AACvB,SAAA;AAED,QAAA,IAAI,SAAS,IAAI,OAAO,IAAI,aAAa,EAAE;YACzC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;YAChC,IAAI,IAAI,CAAC,OAAO,EAAE;gBAChB,IAAI,CAAC,QAAQ,EAAE,CAAC;AACjB,aAAA;AACF,SAAA;KACF;IAED,QAAQ,GAAA;;AACN,QAAA,IAAI,CAAC,eAAe;aACjB,gCAAgC,CAAC,qBAAqB,CAAC;AACvD,aAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;aAC9B,SAAS,CAAC,MAAK;YACd,IAAI,CAAC,UAAU,EAAE,CAAC;YAClB,IAAI,CAAC,cAAc,EAAE,CAAC;YACtB,IAAI,CAAC,cAAc,EAAE,CAAC;AACxB,SAAC,CAAC,CAAC;QAEL,CAAA,EAAA,GAAA,IAAI,CAAC,cAAc,CAAC,MAAM,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAE,CAAA,SAAS,CAAC,CAAC,SAAoB,KAAI;AAC5F,YAAA,IAAI,CAAC,GAAG,GAAG,SAAS,CAAC;AACrB,YAAA,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;AAC3B,SAAC,CAAC,CAAC;QAEH,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC;KACtC;IAED,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;AACrB,QAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;KAC1B;IAEO,UAAU,GAAA;QAChB,MAAM,GAAG,GAAG,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC/C,IAAI,CAAC,IAAI,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,CAAC,aAAa,GAAG,IAAI,GAAG,cAAc,CAAC,GAAG,EAAE,CAAC;KAC3E;AAED;;AAEG;IACK,QAAQ,GAAA;AACd,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,SAAS,GAAG,GAAG,CAAC,CAAC,CAAC;AAClE,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,KAAK,OAAO,GAAG,CAAC,GAAG,EAAE,CAAC;QAEnD,MAAM,KAAK,GAAG,EAAE,CAAC;AAEjB,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC,EAAE,EAAE;AACrC,YAAA,IAAI,KAAK,CAAC;AACV,YAAA,IAAI,CAAC,IAAI,OAAO,GAAG,CAAC,EAAE;AACpB,gBAAA,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC;AAC5B,aAAA;AACD,YAAA,MAAM,SAAS,GAAG;gBAChB,eAAe,EAAE,CAAG,EAAA,KAAK,CAAE,CAAA;gBAC3B,KAAK,EAAE,CAAG,EAAA,SAAS,CAAI,EAAA,CAAA;AACvB,gBAAA,MAAM,EAAE,CAAA,EAAG,IAAI,CAAC,WAAW,CAAI,EAAA,CAAA;aAChC,CAAC;AACF,YAAA,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AACvB,SAAA;AAED,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;KACpB;AAED;;AAEG;IACK,cAAc,GAAA;AACpB,QAAA,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;YACvB,OAAO;AACR,SAAA;AAED,QAAA,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,gBAAiB,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;;QAG7G,MAAM,MAAM,GAAG,EAAE,GAAG,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;QACzC,MAAM,WAAW,GAAG,IAAI,CAAC,aAAa,KAAK,IAAI,CAAC,MAAM,KAAK,QAAQ,GAAG,KAAK,GAAG,QAAQ,CAAC,CAAC;QACxF,MAAM,GAAG,GAAG,IAAI,CAAC,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC;QACjC,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,KAAK,IAAI,CAAC,MAAM,KAAK,QAAQ,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC;QAE1E,IAAI,cAAc,GAAG,CAAC,CAAC;AACvB,QAAA,IAAI,cAAc,GAAG,CAAC,MAAM,CAAC;QAC7B,IAAI,YAAY,GAAG,CAAC,CAAC;AACrB,QAAA,IAAI,YAAY,GAAG,MAAM,GAAG,CAAC,CAAC,CAAC;AAE/B,QAAA,QAAQ,WAAW;AACjB,YAAA,KAAK,MAAM;gBACT,cAAc,GAAG,CAAC,MAAM,CAAC;gBACzB,cAAc,GAAG,CAAC,CAAC;AACnB,gBAAA,YAAY,GAAG,MAAM,GAAG,CAAC,CAAC;gBAC1B,YAAY,GAAG,CAAC,CAAC;gBACjB,MAAM;AACR,YAAA,KAAK,OAAO;gBACV,cAAc,GAAG,MAAM,CAAC;gBACxB,cAAc,GAAG,CAAC,CAAC;AACnB,gBAAA,YAAY,GAAG,MAAM,GAAG,CAAC,CAAC,CAAC;gBAC3B,YAAY,GAAG,CAAC,CAAC;gBACjB,MAAM;AACR,YAAA,KAAK,QAAQ;gBACX,cAAc,GAAG,MAAM,CAAC;AACxB,gBAAA,YAAY,GAAG,MAAM,GAAG,CAAC,CAAC;gBAC1B,MAAM;YACR,QAAQ;AACT,SAAA;AAED,QAAA,IAAI,CAAC,UAAU,GAAG,CAAa,UAAA,EAAA,cAAc,IAAI,cAAc,CAAA;AACxD,SAAA,EAAA,MAAM,IAAI,MAAM,CAAA,OAAA,EAAU,YAAY,CAAA,CAAA,EAAI,CAAC,YAAY,CAAA;WACvD,MAAM,CAAA,CAAA,EAAI,MAAM,CAAU,OAAA,EAAA,CAAC,YAAY,CAAI,CAAA,EAAA,YAAY,EAAE,CAAC;QAEjE,IAAI,CAAC,cAAc,GAAG;AACpB,YAAA,eAAe,EAAE,CAAG,EAAA,GAAG,GAAG,SAAS,CAAA,GAAA,EAAM,GAAG,CAAI,EAAA,CAAA;AAChD,YAAA,gBAAgB,EAAE,CAAA,CAAA,EAAI,SAAS,GAAG,CAAC,CAAI,EAAA,CAAA;AACvC,YAAA,UAAU,EAAE,yEAAyE;SACtF,CAAC;;QAGF,IAAI,CAAC,kBAAkB,GAAG,MAAM;AAC7B,aAAA,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,KAAI;YACpB,MAAM,gBAAgB,GAAG,MAAM,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC;YAC5D,OAAO;AACL,gBAAA,MAAM,EAAE,IAAI,CAAC,UAAU,IAAI,CAAC,gBAAgB,GAAG,CAAA,cAAA,EAAiB,IAAI,CAAC,UAAU,GAAG,GAAG,IAAI;AACzF,gBAAA,eAAe,EAAE;AACf,oBAAA,MAAM,EAAE,CAAC,IAAI,CAAC,UAAU;AACtB,0BAAE,gBAAgB;AAChB,8BAAE,cAAc,CAAC,GAAG,CAAC,SAAS,CAAC;8BAC5B,IAAI,CAAC,aAAwB;AAClC,0BAAE,IAAI;AACR,oBAAA,UAAU,EACR,qGAAqG;AACvG,oBAAA,eAAe,EAAE,CAAG,EAAA,CAAC,CAAC,KAAK,IAAI,CAAC,IAAI,GAAG,KAAK,GAAG,GAAG,SAAS,CAAC,CAAA,GAAA,EAAM,GAAG,CAAI,EAAA,CAAA;AACzE,oBAAA,gBAAgB,EAAE,CAAA,CAAA,EAAI,SAAS,GAAG,CAAC,CAAI,EAAA,CAAA;AACxC,iBAAA;aACF,CAAC;AACJ,SAAC,CAAC;AACD,aAAA,OAAO,EAAE,CAAC;KACd;IAEO,cAAc,GAAA;AACpB,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC;AACjC,QAAA,MAAM,UAAU,IAAI,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC;AAC5E,QAAA,IAAI,UAAU,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;AACrC,YAAA,IAAI,CAAC,YAAY,GAAG,oBAAoB,CAAC,KAAgC,CAAC,CAAC;AAC5E,SAAA;AAAM,aAAA,IAAI,UAAU,IAAI,IAAI,CAAC,aAAa,EAAE;YAC3C,IAAI,CAAC,cAAc,GAAG,oBAAoB,CAAC,IAAI,CAAC,aAA2C,CAAC,CAAC;AAC9F,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;AACzB,YAAA,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;AAC1B,SAAA;KACF;;gHAzQU,mBAAmB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,eAAA,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;AAAnB,mBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,mBAAmB,EA/FpB,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,EAAA,UAAA,EAAA,YAAA,EAAA,OAAA,EAAA,SAAA,EAAA,aAAA,EAAA,eAAA,EAAA,MAAA,EAAA,QAAA,EAAA,QAAA,EAAA,UAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,SAAA,EAAA,WAAA,EAAA,aAAA,EAAA,eAAA,EAAA,WAAA,EAAA,aAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,aAAA,EAAA,eAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,SAAA,EAAA,EAAA,QAAA,EAAA,CAAA,YAAA,CAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6FT,EAAA,QAAA,EAAA,IAAA,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,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,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,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,SAAA,EAAA,gBAAA,EAAA,YAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,+BAAA,EAAA,QAAA,EAAA,0BAAA,EAAA,MAAA,EAAA,CAAA,+BAAA,EAAA,wBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,wBAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;AAWS,IAAA,UAAU,EAAE;CAA4B,EAAA,mBAAA,CAAA,SAAA,EAAA,YAAA,EAAA,KAAA,CAAA,CAAA,CAAA;;AAExC,IAAA,UAAU,EAAE;CAAuD,EAAA,mBAAA,CAAA,SAAA,EAAA,eAAA,EAAA,KAAA,CAAA,CAAA,CAAA;;AACnE,IAAA,UAAU,EAAE;CAAyC,EAAA,mBAAA,CAAA,SAAA,EAAA,QAAA,EAAA,KAAA,CAAA,CAAA,CAAA;;AAErD,IAAA,WAAW,EAAE;CAA2B,EAAA,mBAAA,CAAA,SAAA,EAAA,kBAAA,EAAA,KAAA,CAAA,CAAA,CAAA;;AACxC,IAAA,WAAW,EAAE;CAAuB,EAAA,mBAAA,CAAA,SAAA,EAAA,WAAA,EAAA,KAAA,CAAA,CAAA,CAAA;;AACpC,IAAA,UAAU,EAAE;AAAE,IAAA,WAAW,EAAE;CAAoC,EAAA,mBAAA,CAAA,SAAA,EAAA,eAAA,EAAA,KAAA,CAAA,CAAA,CAAA;;AAC/D,IAAA,UAAU,EAAE;AAAE,IAAA,WAAW,EAAE;CAAkC,EAAA,mBAAA,CAAA,SAAA,EAAA,aAAA,EAAA,KAAA,CAAA,CAAA,CAAA;;AAG7D,IAAA,UAAU,EAAE;CAAkD,EAAA,mBAAA,CAAA,SAAA,EAAA,eAAA,EAAA,KAAA,CAAA,CAAA,CAAA;;AAC9D,IAAA,UAAU,EAAE;CAAwD,EAAA,mBAAA,CAAA,SAAA,EAAA,iBAAA,EAAA,KAAA,CAAA,CAAA,CAAA;;AAEpE,IAAA,WAAW,EAAE;CAAqB,EAAA,mBAAA,CAAA,SAAA,EAAA,SAAA,EAAA,KAAA,CAAA,CAAA,CAAA;2FAvBjC,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBArG/B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;oBACT,eAAe,EAAE,uBAAuB,CAAC,MAAM;oBAC/C,aAAa,EAAE,iBAAiB,CAAC,IAAI;AACrC,oBAAA,QAAQ,EAAE,aAAa;AACvB,oBAAA,QAAQ,EAAE,YAAY;AACtB,oBAAA,mBAAmB,EAAE,KAAK;AAC1B,oBAAA,QAAQ,EAAE,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6FT,EAAA,CAAA;iBACF,CAAA;;;8BA6EI,QAAQ;;yBAnEY,UAAU,EAAA,CAAA;sBAAhC,KAAK;gBACG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBACiB,aAAa,EAAA,CAAA;sBAAnC,KAAK;gBACiB,MAAM,EAAA,CAAA;sBAA5B,KAAK;gBACG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBACkB,gBAAgB,EAAA,CAAA;sBAAvC,KAAK;gBACkB,SAAS,EAAA,CAAA;sBAAhC,KAAK;gBACgC,aAAa,EAAA,CAAA;sBAAlD,KAAK;gBACgC,WAAW,EAAA,CAAA;sBAAhD,KAAK;gBACG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBACG,MAAM,EAAA,CAAA;sBAAd,KAAK;gBACiB,aAAa,EAAA,CAAA;sBAAnC,KAAK;gBACiB,eAAe,EAAA,CAAA;sBAArC,KAAK;gBAEkB,OAAO,EAAA,CAAA;sBAA9B,KAAK;;;ACjLR;;;AAGG;MAgBU,gBAAgB,CAAA;;6GAAhB,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;8GAAhB,gBAAgB,EAAA,YAAA,EAAA,CAHZ,mBAAmB,CAAA,EAAA,OAAA,EAAA,CACxB,UAAU,EAAE,YAAY,EAAE,YAAY,EAAE,cAAc,CAAA,EAAA,OAAA,EAAA,CAFtD,mBAAmB,CAAA,EAAA,CAAA,CAAA;AAIlB,gBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,gBAAgB,YAFjB,UAAU,EAAE,YAAY,EAAE,YAAY,EAAE,cAAc,CAAA,EAAA,CAAA,CAAA;2FAErD,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAL5B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,OAAO,EAAE,CAAC,mBAAmB,CAAC;oBAC9B,YAAY,EAAE,CAAC,mBAAmB,CAAC;oBACnC,OAAO,EAAE,CAAC,UAAU,EAAE,YAAY,EAAE,YAAY,EAAE,cAAc,CAAC;iBAClE,CAAA;;;AClBD;;;AAGG;;ACHH;;AAEG;;;;"}