{"version":3,"file":"ng-zorro-antd-date-picker.mjs","sources":["../../components/date-picker/standard-types.ts","../../components/date-picker/util.ts","../../components/date-picker/lib/util.ts","../../components/date-picker/calendar-footer.component.ts","../../components/date-picker/date-picker.service.ts","../../components/date-picker/lib/abstract-panel-header.ts","../../components/date-picker/lib/decade-header.component.ts","../../components/date-picker/lib/abstract-panel-header.html","../../components/date-picker/lib/abstract-table.ts","../../components/date-picker/lib/decade-table.component.ts","../../components/date-picker/lib/abstract-table.html","../../components/date-picker/lib/year-header.component.ts","../../components/date-picker/lib/year-table.component.ts","../../components/date-picker/lib/quarter-header.component.ts","../../components/date-picker/lib/quarter-table.component.ts","../../components/date-picker/lib/month-header.component.ts","../../components/date-picker/lib/month-table.component.ts","../../components/date-picker/lib/date-header.component.ts","../../components/date-picker/lib/date-table.component.ts","../../components/date-picker/lib/lib-packer.module.ts","../../components/date-picker/lib/public-api.ts","../../components/date-picker/lib/index.ts","../../components/date-picker/inner-popup.component.ts","../../components/date-picker/date-range-popup.component.ts","../../components/date-picker/date-picker.component.ts","../../components/date-picker/month-picker.component.ts","../../components/date-picker/quarter-picker.component.ts","../../components/date-picker/range-picker.component.ts","../../components/date-picker/week-picker.component.ts","../../components/date-picker/year-picker.component.ts","../../components/date-picker/date-picker.module.ts","../../components/date-picker/public-api.ts","../../components/date-picker/ng-zorro-antd-date-picker.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 { TemplateRef } from '@angular/core';\n\nexport type DisabledDateFn = (d: Date) => boolean;\n\nexport type DisabledTimePartial = 'start' | 'end';\n\nexport type NzDateMode = 'decade' | 'year' | 'quarter' | 'month' | 'week' | 'date' | 'time';\n\nexport type RangePartType = 'left' | 'right';\n\nexport type CompatibleDate = Date | Date[];\n\nexport type DisabledTimeFn = (current: Date | Date[], partial?: DisabledTimePartial) => DisabledTimeConfig | undefined;\n\nexport type NzPanelChangeType =\n  | { mode: NzDateMode; date: Date }\n  | {\n      mode: [startMode: NzDateMode, endMode: NzDateMode];\n      date: [startDate: Date, endDate: Date];\n    };\n\nexport interface DisabledTimeConfig {\n  nzDisabledHours(): number[];\n\n  nzDisabledMinutes(hour: number): number[];\n\n  nzDisabledSeconds(hour: number, minute: number): number[];\n}\n\nexport interface SupportTimeOptions {\n  nzFormat?: string;\n  nzHourStep?: number;\n  nzMinuteStep?: number;\n  nzSecondStep?: number;\n\n  nzDisabledHours?(): number[];\n\n  nzDisabledMinutes?(hour: number): number[];\n\n  nzDisabledSeconds?(hour: number, minute: number): number[];\n\n  nzHideDisabledOptions?: boolean;\n  nzDefaultOpenValue?: Date;\n  nzAddOn?: TemplateRef<void>;\n  nzUse12Hours?: boolean;\n}\n\nexport interface PresetRanges {\n  [key: string]: Date[] | (() => Date[]);\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 { CandyDate } from 'ng-zorro-antd/core/time';\n\nimport { DisabledDateFn, DisabledTimeConfig, DisabledTimeFn } from './standard-types';\n\nexport const PREFIX_CLASS = 'ant-picker';\n\nconst defaultDisabledTime: DisabledTimeConfig = {\n  nzDisabledHours(): number[] {\n    return [];\n  },\n  nzDisabledMinutes(): number[] {\n    return [];\n  },\n  nzDisabledSeconds(): number[] {\n    return [];\n  }\n};\n\nexport function getTimeConfig(value: CandyDate, disabledTime?: DisabledTimeFn): DisabledTimeConfig {\n  let disabledTimeConfig = disabledTime ? disabledTime(value && value.nativeDate) : ({} as DisabledTimeConfig);\n  disabledTimeConfig = {\n    ...defaultDisabledTime,\n    ...disabledTimeConfig\n  };\n  return disabledTimeConfig;\n}\n\nexport function isTimeValidByConfig(value: CandyDate, disabledTimeConfig: DisabledTimeConfig): boolean {\n  let invalidTime = false;\n  if (value) {\n    const hour = value.getHours();\n    const minutes = value.getMinutes();\n    const seconds = value.getSeconds();\n    const disabledHours = disabledTimeConfig.nzDisabledHours();\n    if (disabledHours.indexOf(hour) === -1) {\n      const disabledMinutes = disabledTimeConfig.nzDisabledMinutes(hour);\n      if (disabledMinutes.indexOf(minutes) === -1) {\n        const disabledSeconds = disabledTimeConfig.nzDisabledSeconds(hour, minutes);\n        invalidTime = disabledSeconds.indexOf(seconds) !== -1;\n      } else {\n        invalidTime = true;\n      }\n    } else {\n      invalidTime = true;\n    }\n  }\n  return !invalidTime;\n}\n\nexport function isTimeValid(value: CandyDate, disabledTime: DisabledTimeFn): boolean {\n  const disabledTimeConfig = getTimeConfig(value, disabledTime);\n  return isTimeValidByConfig(value, disabledTimeConfig);\n}\n\nexport function isAllowedDate(value: CandyDate, disabledDate?: DisabledDateFn, disabledTime?: DisabledTimeFn): boolean {\n  if (!value) {\n    return false;\n  }\n  if (disabledDate) {\n    if (disabledDate(value.nativeDate)) {\n      return false;\n    }\n  }\n  if (disabledTime) {\n    if (!isTimeValid(value, disabledTime)) {\n      return false;\n    }\n  }\n  return true;\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\n/**\n * Compatible translate the moment-like format pattern to angular's pattern\n * Why? For now, we need to support the existing language formats in AntD, and AntD uses the default temporal syntax.\n *\n * TODO: compare and complete all format patterns\n * Each format docs as below:\n *\n * @link https://momentjs.com/docs/#/displaying/format/\n * @link https://angular.io/api/common/DatePipe#description\n * @param format input format pattern\n */\nexport function transCompatFormat(format: string): string {\n  return (\n    format &&\n    format\n      .replace(/Y/g, 'y') // only support y, yy, yyy, yyyy\n      .replace(/D/g, 'd')\n  ); // d, dd represent of D, DD for momentjs, others are not support\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 { NgTemplateOutlet } from '@angular/common';\nimport {\n  ChangeDetectionStrategy,\n  Component,\n  EventEmitter,\n  Input,\n  OnChanges,\n  Output,\n  SimpleChanges,\n  TemplateRef,\n  ViewEncapsulation,\n  booleanAttribute\n} from '@angular/core';\n\nimport { NzButtonModule } from 'ng-zorro-antd/button';\nimport { CandyDate } from 'ng-zorro-antd/core/time';\nimport { NzSafeAny } from 'ng-zorro-antd/core/types';\nimport { isNonEmptyString, isTemplateRef } from 'ng-zorro-antd/core/util';\nimport { DateHelperService, NzCalendarI18nInterface } from 'ng-zorro-antd/i18n';\n\nimport { transCompatFormat } from './lib/util';\nimport { PREFIX_CLASS } from './util';\n\n@Component({\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  // eslint-disable-next-line @angular-eslint/component-selector\n  selector: 'calendar-footer',\n  exportAs: 'calendarFooter',\n  template: `\n    <div class=\"{{ prefixCls }}-footer\">\n      @if (extraFooter) {\n        <div class=\"{{ prefixCls }}-footer-extra\">\n          @if (isExtraFooterTemplateRef) {\n            <ng-container *ngTemplateOutlet=\"$any(extraFooter)\" />\n          }\n          @if (isExtraFooterNonEmptyString) {\n            <span [innerHTML]=\"extraFooter\"></span>\n          }\n        </div>\n      }\n\n      @if (showToday) {\n        <a\n          class=\"{{ prefixCls }}-today-btn {{ isTodayDisabled ? prefixCls + '-today-btn-disabled' : '' }}\"\n          role=\"button\"\n          (click)=\"isTodayDisabled ? null : onClickToday()\"\n          title=\"{{ todayTitle }}\"\n        >\n          {{ locale.today }}\n        </a>\n      }\n\n      @if (hasTimePicker || rangeQuickSelector) {\n        <ul class=\"{{ prefixCls }}-ranges\">\n          <ng-container *ngTemplateOutlet=\"rangeQuickSelector\" />\n          @if (showNow) {\n            <li class=\"{{ prefixCls }}-now\">\n              <a class=\"{{ prefixCls }}-now-btn\" (click)=\"isTodayDisabled ? null : onClickToday()\">\n                {{ locale.now }}\n              </a>\n            </li>\n          }\n\n          @if (hasTimePicker) {\n            <li class=\"{{ prefixCls }}-ok\">\n              <button\n                nz-button\n                type=\"button\"\n                nzType=\"primary\"\n                nzSize=\"small\"\n                [disabled]=\"okDisabled\"\n                (click)=\"okDisabled ? null : clickOk.emit()\"\n              >\n                {{ locale.ok }}\n              </button>\n            </li>\n          }\n        </ul>\n      }\n    </div>\n  `,\n  imports: [NgTemplateOutlet, NzButtonModule],\n  standalone: true\n})\nexport class CalendarFooterComponent implements OnChanges {\n  @Input() locale!: NzCalendarI18nInterface;\n  @Input({ transform: booleanAttribute }) showToday: boolean = false;\n  @Input({ transform: booleanAttribute }) showNow: boolean = false;\n  @Input({ transform: booleanAttribute }) hasTimePicker: boolean = false;\n  @Input({ transform: booleanAttribute }) isRange: boolean = false;\n\n  @Input({ transform: booleanAttribute }) okDisabled: boolean = false;\n  @Input() disabledDate?: (d: Date) => boolean;\n  @Input() extraFooter?: TemplateRef<void> | string;\n  @Input() rangeQuickSelector: TemplateRef<NzSafeAny> | null = null;\n\n  @Output() readonly clickOk = new EventEmitter<void>();\n  @Output() readonly clickToday = new EventEmitter<CandyDate>();\n\n  prefixCls: string = PREFIX_CLASS;\n  isTemplateRef = isTemplateRef;\n  isNonEmptyString = isNonEmptyString;\n  isTodayDisabled: boolean = false;\n  todayTitle: string = '';\n\n  constructor(private dateHelper: DateHelperService) {}\n\n  ngOnChanges(changes: SimpleChanges): void {\n    const now: Date = new Date();\n    if (changes.disabledDate) {\n      this.isTodayDisabled = !!(this.disabledDate && this.disabledDate(now));\n    }\n    if (changes.locale) {\n      // NOTE: Compat for DatePipe formatting rules\n      const dateFormat: string = transCompatFormat(this.locale.dateFormat);\n      this.todayTitle = this.dateHelper.format(now, dateFormat);\n    }\n  }\n\n  onClickToday(): void {\n    const now: CandyDate = new CandyDate();\n    this.clickToday.emit(now.clone()); // To prevent the \"now\" being modified from outside, we use clone\n  }\n\n  get isExtraFooterTemplateRef(): boolean {\n    return isTemplateRef(this.extraFooter);\n  }\n\n  get isExtraFooterNonEmptyString(): boolean {\n    return isNonEmptyString(this.extraFooter);\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 { Injectable, OnDestroy } from '@angular/core';\nimport { ReplaySubject, Subject } from 'rxjs';\n\nimport { CandyDate, cloneDate, CompatibleValue, NormalizedMode, normalizeRangeValue } from 'ng-zorro-antd/core/time';\n\nimport { CompatibleDate, NzDateMode, RangePartType } from './standard-types';\n\n@Injectable()\nexport class DatePickerService implements OnDestroy {\n  initialValue!: CompatibleValue;\n  value!: CompatibleValue;\n  activeDate?: CompatibleValue;\n  activeInput: RangePartType = 'left';\n  arrowLeft: number = 0;\n  isRange = false;\n\n  valueChange$ = new ReplaySubject<CompatibleValue>(1);\n  emitValue$ = new Subject<void>();\n  inputPartChange$ = new Subject<RangePartType | null>();\n\n  initValue(reset: boolean = false): void {\n    if (reset) {\n      this.initialValue = this.isRange ? [] : null;\n    }\n\n    this.setValue(this.initialValue);\n  }\n\n  hasValue(value: CompatibleValue = this.value): boolean {\n    if (Array.isArray(value)) {\n      return !!value[0] || !!value[1];\n    } else {\n      return !!value;\n    }\n  }\n\n  makeValue(value?: CompatibleDate): CompatibleValue {\n    if (this.isRange) {\n      return value ? (value as Date[]).map(val => new CandyDate(val)) : [];\n    } else {\n      return value ? new CandyDate(value as Date) : null;\n    }\n  }\n\n  setActiveDate(value: CompatibleValue, hasTimePicker: boolean = false, mode: NormalizedMode = 'month'): void {\n    const parentPanels: { [key in NzDateMode]?: NormalizedMode } = {\n      date: 'month',\n      month: 'year',\n      quarter: 'year',\n      year: 'decade'\n    };\n    if (this.isRange) {\n      this.activeDate = normalizeRangeValue(value as CandyDate[], hasTimePicker, parentPanels[mode], this.activeInput);\n    } else {\n      this.activeDate = cloneDate(value);\n    }\n  }\n\n  setValue(value: CompatibleValue): void {\n    this.value = value;\n    this.valueChange$.next(this.value);\n  }\n\n  getActiveIndex(part: RangePartType = this.activeInput): number {\n    return { left: 0, right: 1 }[part];\n  }\n\n  ngOnDestroy(): void {\n    this.valueChange$.complete();\n    this.emitValue$.complete();\n    this.inputPartChange$.complete();\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 {\n  booleanAttribute,\n  Directive,\n  EventEmitter,\n  Input,\n  OnChanges,\n  OnInit,\n  Output,\n  SimpleChanges\n} from '@angular/core';\n\nimport { CandyDate } from 'ng-zorro-antd/core/time';\nimport { NzCalendarI18nInterface } from 'ng-zorro-antd/i18n';\n\nimport { NzDateMode, NzPanelChangeType } from '../standard-types';\nimport { PanelSelector } from './interface';\n\n@Directive()\n// eslint-disable-next-line @angular-eslint/directive-class-suffix\nexport abstract class AbstractPanelHeader implements OnInit, OnChanges {\n  prefixCls: string = `ant-picker-header`;\n  selectors: PanelSelector[] = [];\n  mode!: NzDateMode;\n\n  @Input() value!: CandyDate;\n  @Input() locale!: NzCalendarI18nInterface;\n  @Input({transform: booleanAttribute}) showSuperPreBtn: boolean = true;\n  @Input({transform: booleanAttribute}) showSuperNextBtn: boolean = true;\n  @Input({transform: booleanAttribute}) showPreBtn: boolean = true;\n  @Input({transform: booleanAttribute}) showNextBtn: boolean = true;\n\n  @Output() readonly panelChange = new EventEmitter<NzPanelChangeType>();\n  @Output() readonly valueChange = new EventEmitter<CandyDate>();\n\n  abstract getSelectors(): PanelSelector[];\n\n  superPreviousTitle(): string {\n    return this.locale.previousYear;\n  }\n\n  previousTitle(): string {\n    return this.locale.previousMonth;\n  }\n\n  superNextTitle(): string {\n    return this.locale.nextYear;\n  }\n\n  nextTitle(): string {\n    return this.locale.nextMonth;\n  }\n\n  superPrevious(): void {\n    this.changeValue(this.value.addYears(-1));\n  }\n\n  superNext(): void {\n    this.changeValue(this.value.addYears(1));\n  }\n\n  previous(): void {\n    this.changeValue(this.value.addMonths(-1));\n  }\n\n  next(): void {\n    this.changeValue(this.value.addMonths(1));\n  }\n\n  changeValue(value: CandyDate): void {\n    if (this.value !== value) {\n      this.value = value;\n      this.valueChange.emit(this.value);\n      this.changeMode(this.mode);\n      this.render();\n    }\n  }\n\n  changeMode(mode: NzDateMode): void {\n    this.panelChange.emit({mode, date: this.value.nativeDate});\n  }\n\n  private render(): void {\n    if (this.value) {\n      this.selectors = this.getSelectors();\n    }\n  }\n\n  ngOnInit(): void {\n    if (!this.value) {\n      this.value = new CandyDate(); // Show today by default\n    }\n    this.selectors = this.getSelectors();\n  }\n\n  ngOnChanges(changes: SimpleChanges): void {\n    if (changes.value || changes.locale) {\n      this.render();\n    }\n  }\n\n  trackBySelector(selector: PanelSelector): string {\n    return `${selector.title}-${selector.label}`;\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 { NgClass, NgForOf, NgIf } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\n\nimport { AbstractPanelHeader } from './abstract-panel-header';\nimport { PanelSelector } from './interface';\nimport { NzDateMode } from '../standard-types';\n\n@Component({\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  selector: 'decade-header', // eslint-disable-line @angular-eslint/component-selector\n  exportAs: 'decadeHeader',\n  templateUrl: './abstract-panel-header.html',\n  imports: [NgForOf, NgIf, NgClass],\n  standalone: true\n})\nexport class DecadeHeaderComponent extends AbstractPanelHeader {\n  override previous(): void {\n  }\n\n  override next(): void {\n  }\n\n  override mode: NzDateMode = 'decade';\n\n  get startYear(): number {\n    return parseInt(`${this.value.getYear() / 100}`, 10) * 100;\n  }\n\n  get endYear(): number {\n    return this.startYear + 99;\n  }\n\n  override superPrevious(): void {\n    this.changeValue(this.value.addYears(-100));\n  }\n\n  override superNext(): void {\n    this.changeValue(this.value.addYears(100));\n  }\n\n  getSelectors(): PanelSelector[] {\n    return [\n      {\n        className: `${this.prefixCls}-decade-btn`,\n        title: '',\n        onClick: () => {\n          // noop\n        },\n        label: `${this.startYear}-${this.endYear}`\n      }\n    ];\n  }\n}\n","<div class=\"{{ prefixCls }}\">\n  <button\n    [style.visibility]=\"showSuperPreBtn ? 'visible' : 'hidden'\"\n    class=\"{{ prefixCls }}-super-prev-btn\"\n    role=\"button\"\n    type=\"button\"\n    tabindex=\"-1\"\n    title=\"{{ superPreviousTitle() }}\"\n    (click)=\"superPrevious()\"\n  >\n    <span class=\"ant-picker-super-prev-icon\"></span>\n  </button>\n  <button\n    [style.visibility]=\"showPreBtn ? 'visible' : 'hidden'\"\n    class=\"{{ prefixCls }}-prev-btn\"\n    role=\"button\"\n    type=\"button\"\n    title=\"{{ previousTitle() }}\"\n    tabindex=\"-1\"\n    (click)=\"previous()\"\n  >\n    <span class=\"ant-picker-prev-icon\"></span>\n  </button>\n\n  <div class=\"{{ prefixCls }}-view\">\n    @for (selector of selectors; track trackBySelector(selector)) {\n      <button\n        class=\"{{ selector.className }}\"\n        role=\"button\"\n        type=\"button\"\n        title=\"{{ selector.title || null }}\"\n        (click)=\"selector.onClick()\"\n      >\n        {{ selector.label }}\n      </button>\n    }\n  </div>\n  <button\n    [style.visibility]=\"showNextBtn ? 'visible' : 'hidden'\"\n    class=\"{{ prefixCls }}-next-btn\"\n    role=\"button\"\n    type=\"button\"\n    tabindex=\"-1\"\n    title=\"{{ nextTitle() }}\"\n    (click)=\"next()\"\n  >\n    <span class=\"ant-picker-next-icon\"></span>\n  </button>\n  <button\n    [style.visibility]=\"showSuperNextBtn ? 'visible' : 'hidden'\"\n    class=\"{{ prefixCls }}-super-next-btn\"\n    role=\"button\"\n    type=\"button\"\n    tabindex=\"-1\"\n    title=\"{{ superNextTitle() }}\"\n    (click)=\"superNext()\"\n  >\n    <span class=\"ant-picker-super-next-icon\"></span>\n  </button>\n</div>\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 {\n  Directive,\n  EventEmitter,\n  Input,\n  OnChanges,\n  OnInit,\n  Output,\n  SimpleChange,\n  SimpleChanges,\n  TemplateRef,\n  booleanAttribute\n} from '@angular/core';\n\nimport { CandyDate } from 'ng-zorro-antd/core/time';\nimport { FunctionProp } from 'ng-zorro-antd/core/types';\nimport { NzCalendarI18nInterface } from 'ng-zorro-antd/i18n';\n\nimport { DateBodyRow, DateCell } from './interface';\n\n@Directive()\n// eslint-disable-next-line @angular-eslint/directive-class-suffix\nexport abstract class AbstractTable implements OnInit, OnChanges {\n  headRow: DateCell[] = [];\n  bodyRows: DateBodyRow[] = [];\n  MAX_ROW = 6;\n  MAX_COL = 7;\n\n  @Input() prefixCls: string = 'ant-picker';\n  @Input() value!: CandyDate;\n  @Input() locale!: NzCalendarI18nInterface;\n  @Input() activeDate: CandyDate = new CandyDate();\n  @Input({ transform: booleanAttribute }) showWeek: boolean = false;\n  @Input() selectedValue: CandyDate[] = []; // Range ONLY\n  @Input() hoverValue: CandyDate[] = []; // Range ONLY\n  @Input() disabledDate?: (d: Date) => boolean;\n  @Input() cellRender?: string | TemplateRef<Date> | FunctionProp<TemplateRef<Date> | string>;\n  @Input() fullCellRender?: string | TemplateRef<Date> | FunctionProp<TemplateRef<Date> | string>;\n  @Input({ transform: booleanAttribute }) canSelectWeek: boolean = false;\n\n  @Output() readonly valueChange = new EventEmitter<CandyDate>();\n  @Output() readonly cellHover = new EventEmitter<CandyDate>(); // Emitted when hover on a day by mouse enter\n\n  protected render(): void {\n    if (this.activeDate) {\n      this.headRow = this.makeHeadRow();\n      this.bodyRows = this.makeBodyRows();\n    }\n  }\n\n\n\n  hasRangeValue(): boolean {\n    return this.selectedValue?.length > 0 || this.hoverValue?.length > 0;\n  }\n\n  getClassMap(cell: DateCell): { [key: string]: boolean } {\n    return {\n      [`ant-picker-cell`]: true,\n      [`ant-picker-cell-in-view`]: true,\n      [`ant-picker-cell-selected`]: cell.isSelected,\n      [`ant-picker-cell-disabled`]: cell.isDisabled,\n      [`ant-picker-cell-in-range`]: !!cell.isInSelectedRange,\n      [`ant-picker-cell-range-start`]: !!cell.isSelectedStart,\n      [`ant-picker-cell-range-end`]: !!cell.isSelectedEnd,\n      [`ant-picker-cell-range-start-single`]: !!cell.isStartSingle,\n      [`ant-picker-cell-range-end-single`]: !!cell.isEndSingle,\n      [`ant-picker-cell-range-hover`]: !!cell.isInHoverRange,\n      [`ant-picker-cell-range-hover-start`]: !!cell.isHoverStart,\n      [`ant-picker-cell-range-hover-end`]: !!cell.isHoverEnd,\n      [`ant-picker-cell-range-hover-edge-start`]: !!cell.isFirstCellInPanel,\n      [`ant-picker-cell-range-hover-edge-end`]: !!cell.isLastCellInPanel,\n      [`ant-picker-cell-range-start-near-hover`]: !!cell.isRangeStartNearHover,\n      [`ant-picker-cell-range-end-near-hover`]: !!cell.isRangeEndNearHover\n    };\n  }\n\n  abstract makeHeadRow(): DateCell[];\n  abstract makeBodyRows(): DateBodyRow[];\n\n  ngOnInit(): void {\n    this.render();\n  }\n\n  ngOnChanges(changes: SimpleChanges): void {\n    if (changes.activeDate && !changes.activeDate.currentValue) {\n      this.activeDate = new CandyDate();\n    }\n\n    if (\n      changes.disabledDate ||\n      changes.locale ||\n      changes.showWeek ||\n      changes.selectWeek ||\n      this.isDateRealChange(changes.activeDate) ||\n      this.isDateRealChange(changes.value) ||\n      this.isDateRealChange(changes.selectedValue) ||\n      this.isDateRealChange(changes.hoverValue)\n    ) {\n      this.render();\n    }\n  }\n\n  private isDateRealChange(change: SimpleChange): boolean {\n    if (change) {\n      const previousValue: CandyDate | CandyDate[] = change.previousValue;\n      const currentValue: CandyDate | CandyDate[] = change.currentValue;\n      if (Array.isArray(currentValue)) {\n        return (\n          !Array.isArray(previousValue) ||\n          currentValue.length !== previousValue.length ||\n          currentValue.some((value, index) => {\n            const previousCandyDate = previousValue[index];\n            return previousCandyDate instanceof CandyDate\n              ? previousCandyDate.isSameDay(value)\n              : previousCandyDate !== value;\n          })\n        );\n      } else {\n        return !this.isSameDate(previousValue as CandyDate, currentValue);\n      }\n    }\n    return false;\n  }\n\n  private isSameDate(left: CandyDate, right: CandyDate): boolean {\n    return (!left && !right) || (left && right && right.isSameDay(left));\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 { NgClass, NgForOf, NgIf, NgSwitch, NgSwitchCase, NgSwitchDefault, NgTemplateOutlet } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, OnChanges, ViewEncapsulation } from '@angular/core';\n\nimport { AbstractTable } from './abstract-table';\nimport { DateBodyRow, DateCell, DecadeCell } from './interface';\n\nconst MAX_ROW = 4;\nconst MAX_COL = 3;\n\n@Component({\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  // eslint-disable-next-line @angular-eslint/component-selector\n  selector: 'decade-table',\n  exportAs: 'decadeTable',\n  templateUrl: 'abstract-table.html',\n  standalone: true,\n  imports: [NgIf, NgForOf, NgClass, NgSwitch, NgSwitchCase, NgTemplateOutlet, NgSwitchDefault]\n})\nexport class DecadeTableComponent extends AbstractTable implements OnChanges {\n  get startYear(): number {\n    return parseInt(`${this.activeDate.getYear() / 100}`, 10) * 100;\n  }\n\n  get endYear(): number {\n    return this.startYear + 99;\n  }\n\n  makeHeadRow(): DateCell[] {\n    return [];\n  }\n\n  makeBodyRows(): DateBodyRow[] {\n    const decades: DateBodyRow[] = [];\n    const currentYear = this.value && this.value.getYear();\n    const startYear = this.startYear;\n    const endYear = this.endYear;\n    const previousYear = startYear - 10;\n\n    let index = 0;\n    for (let rowIndex = 0; rowIndex < MAX_ROW; rowIndex++) {\n      const row: DateBodyRow = {\n        dateCells: [],\n        trackByIndex: rowIndex\n      };\n\n      for (let colIndex = 0; colIndex < MAX_COL; colIndex++) {\n        const start = previousYear + index * 10;\n        const end = previousYear + index * 10 + 9;\n        const content = `${start}-${end}`;\n\n        const cell: DecadeCell = {\n          trackByIndex: colIndex,\n          value: this.activeDate.setYear(start).nativeDate,\n          content,\n          title: content,\n          isDisabled: false,\n          isSelected: currentYear >= start && currentYear <= end,\n          isLowerThanStart: end < startYear,\n          isBiggerThanEnd: start > endYear,\n          classMap: {},\n          onClick(): void {},\n          onMouseEnter(): void {}\n        };\n\n        cell.classMap = this.getClassMap(cell);\n        cell.onClick = () => this.chooseDecade(start);\n        index++;\n        row.dateCells.push(cell);\n      }\n\n      decades.push(row);\n    }\n    return decades;\n  }\n\n  override getClassMap(cell: DecadeCell): { [key: string]: boolean } {\n    return {\n      [`${this.prefixCls}-cell`]: true,\n      [`${this.prefixCls}-cell-in-view`]: !cell.isBiggerThanEnd && !cell.isLowerThanStart,\n      [`${this.prefixCls}-cell-selected`]: cell.isSelected,\n      [`${this.prefixCls}-cell-disabled`]: cell.isDisabled\n    };\n  }\n\n  private chooseDecade(year: number): void {\n    this.value = this.activeDate.setYear(year);\n    this.valueChange.emit(this.value);\n  }\n}\n","<table class=\"ant-picker-content\" cellspacing=\"0\" role=\"grid\">\n  @if (headRow && headRow.length > 0) {\n    <thead>\n      <tr role=\"row\">\n        @if (showWeek) {\n          <th role=\"columnheader\"></th>\n        }\n        @for (cell of headRow; track $index) {\n          <th role=\"columnheader\" title=\"{{ cell.title }}\"> {{ cell.content }}</th>\n        }\n      </tr>\n    </thead>\n  }\n\n  <tbody>\n    @for (row of bodyRows; track row.trackByIndex) {\n      <tr [ngClass]=\"row.classMap!\" role=\"row\">\n        @if (row.weekNum) {\n          <td role=\"gridcell\" class=\"{{ prefixCls }}-cell-week\"> {{ row.weekNum }}</td>\n        }\n        @for (cell of row.dateCells; track cell.trackByIndex) {\n          <td\n            title=\"{{ cell.title }}\"\n            role=\"gridcell\"\n            [ngClass]=\"cell.classMap!\"\n            (click)=\"cell.isDisabled ? null : cell.onClick()\"\n            (mouseenter)=\"cell.onMouseEnter()\"\n          >\n            @switch (prefixCls) {\n              @case ('ant-picker') {\n                @if (cell.isTemplateRef) {\n                  <ng-container *ngTemplateOutlet=\"$any(cell.cellRender); context: { $implicit: cell.value }\" />\n                } @else if (cell.isNonEmptyString) {\n                  <span [innerHTML]=\"cell.cellRender\"></span>\n                } @else {\n                  <div\n                    class=\"{{ prefixCls }}-cell-inner\"\n                    [attr.aria-selected]=\"cell.isSelected\"\n                    [attr.aria-disabled]=\"cell.isDisabled\"\n                  >\n                    {{ cell.content }}\n                  </div>\n                }\n              }\n              @case ('ant-picker-calendar') {\n                <div\n                  class=\"{{ prefixCls }}-date ant-picker-cell-inner\"\n                  [class.ant-picker-calendar-date-today]=\"cell.isToday\"\n                >\n                  @if (cell.fullCellRender) {\n                    <ng-container *ngTemplateOutlet=\"$any(cell.fullCellRender); context: { $implicit: cell.value }\" />\n                  } @else {\n                    <div class=\"{{ prefixCls }}-date-value\">{{ cell.content }}</div>\n                    <div class=\"{{ prefixCls }}-date-content\">\n                      <ng-container *ngTemplateOutlet=\"$any(cell.cellRender); context: { $implicit: cell.value }\">\n                      </ng-container>\n                    </div>\n                  }\n                </div>\n              }\n            }\n          </td>\n        }\n\n      </tr>\n    }\n  </tbody>\n</table>\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 { NgClass, NgForOf, NgIf } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\n\nimport { AbstractPanelHeader } from './abstract-panel-header';\nimport { PanelSelector } from './interface';\nimport { NzDateMode } from '../standard-types';\n\n@Component({\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  selector: 'year-header', // eslint-disable-line @angular-eslint/component-selector\n  exportAs: 'yearHeader',\n  templateUrl: './abstract-panel-header.html',\n  standalone: true,\n  imports: [NgForOf, NgIf, NgClass]\n})\nexport class YearHeaderComponent extends AbstractPanelHeader {\n  override mode: NzDateMode = 'year';\n\n  get startYear(): number {\n    return parseInt(`${this.value.getYear() / 10}`, 10) * 10;\n  }\n\n  get endYear(): number {\n    return this.startYear + 9;\n  }\n\n  override superPrevious(): void {\n    this.changeValue(this.value.addYears(-10));\n  }\n\n  override superNext(): void {\n    this.changeValue(this.value.addYears(10));\n  }\n\n  getSelectors(): PanelSelector[] {\n    return [\n      {\n        className: `${this.prefixCls}-year-btn`,\n        title: '',\n        onClick: () => {\n          this.mode = 'decade';\n          this.changeMode('decade');\n        },\n        label: `${this.startYear}-${this.endYear}`\n      }\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 { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\n\nimport { CandyDate } from 'ng-zorro-antd/core/time';\nimport { valueFunctionProp } from 'ng-zorro-antd/core/util';\nimport { DateHelperService } from 'ng-zorro-antd/i18n';\n\nimport { AbstractTable } from './abstract-table';\nimport { DateBodyRow, DateCell, YearCell } from './interface';\nimport { NgClass, NgForOf, NgIf, NgSwitch, NgSwitchCase, NgSwitchDefault, NgTemplateOutlet } from '@angular/common';\n\n@Component({\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  // eslint-disable-next-line @angular-eslint/component-selector\n  selector: 'year-table',\n  exportAs: 'yearTable',\n  templateUrl: 'abstract-table.html',\n  imports: [NgIf, NgForOf, NgClass, NgSwitch, NgSwitchCase, NgTemplateOutlet, NgSwitchDefault],\n  standalone: true\n})\nexport class YearTableComponent extends AbstractTable {\n  override MAX_ROW = 4;\n  override MAX_COL = 3;\n\n  constructor(private dateHelper: DateHelperService) {\n    super();\n  }\n\n  makeHeadRow(): DateCell[] {\n    return [];\n  }\n\n  makeBodyRows(): DateBodyRow[] {\n    const currentYear = this.activeDate && this.activeDate.getYear();\n    const startYear = parseInt(`${currentYear / 10}`, 10) * 10;\n    const endYear = startYear + 9;\n    const previousYear = startYear - 1;\n    const years: DateBodyRow[] = [];\n    let yearValue = 0;\n\n    for (let rowIndex = 0; rowIndex < this.MAX_ROW; rowIndex++) {\n      const row: DateBodyRow = {\n        dateCells: [],\n        trackByIndex: rowIndex\n      };\n      for (let colIndex = 0; colIndex < this.MAX_COL; colIndex++) {\n        const yearNum = previousYear + yearValue;\n        const year = this.activeDate.setYear(yearNum);\n        const content = this.dateHelper.format(year.nativeDate, 'yyyy');\n        const isDisabled = this.isDisabledYear(year);\n        const cell: YearCell = {\n          trackByIndex: colIndex,\n          value: year.nativeDate,\n          isDisabled,\n          isSameDecade: yearNum >= startYear && yearNum <= endYear,\n          isSelected: yearNum === (this.value && this.value.getYear()),\n          content,\n          title: content,\n          classMap: {},\n          isLastCellInPanel: year.getYear() === endYear,\n          isFirstCellInPanel: year.getYear() === startYear,\n          cellRender: valueFunctionProp(this.cellRender!, year), // Customized content\n          fullCellRender: valueFunctionProp(this.fullCellRender!, year),\n          onClick: () => this.chooseYear(cell.value.getFullYear()), // don't use yearValue here,\n          onMouseEnter: () => this.cellHover.emit(year)\n        };\n\n        this.addCellProperty(cell, year);\n        row.dateCells.push(cell);\n        yearValue++;\n      }\n      years.push(row);\n    }\n    return years;\n  }\n\n  override getClassMap(cell: YearCell): { [key: string]: boolean } {\n    return {\n      ...super.getClassMap(cell),\n      [`ant-picker-cell-in-view`]: !!cell.isSameDecade\n    };\n  }\n\n  private isDisabledYear(year: CandyDate): boolean {\n    if (!this.disabledDate) {\n      return false;\n    }\n\n    const firstOfMonth = year.setMonth(0).setDate(1);\n\n    for (let date = firstOfMonth; date.getYear() === year.getYear(); date = date.addDays(1)) {\n      if (!this.disabledDate(date.nativeDate)) {\n        return false;\n      }\n    }\n\n    return true;\n  }\n\n  private addCellProperty(cell: DateCell, year: CandyDate): void {\n    if (this.hasRangeValue()) {\n      const [startHover, endHover] = this.hoverValue;\n      const [startSelected, endSelected] = this.selectedValue;\n      // Selected\n      if (startSelected?.isSameYear(year)) {\n        cell.isSelectedStart = true;\n        cell.isSelected = true;\n      }\n\n      if (endSelected?.isSameYear(year)) {\n        cell.isSelectedEnd = true;\n        cell.isSelected = true;\n      }\n\n      if (startHover && endHover) {\n        cell.isHoverStart = startHover.isSameYear(year);\n        cell.isHoverEnd = endHover.isSameYear(year);\n        cell.isInHoverRange = startHover.isBeforeYear(year) && year.isBeforeYear(endHover);\n      }\n      cell.isStartSingle = startSelected && !endSelected;\n      cell.isEndSingle = !startSelected && endSelected;\n      cell.isInSelectedRange = startSelected?.isBeforeYear(year) && year?.isBeforeYear(endSelected);\n      cell.isRangeStartNearHover = startSelected && cell.isInHoverRange;\n      cell.isRangeEndNearHover = endSelected && cell.isInHoverRange;\n    } else if (year.isSameYear(this.value)) {\n      cell.isSelected = true;\n    }\n    cell.classMap = this.getClassMap(cell);\n  }\n\n  private chooseYear(year: number): void {\n    this.value = this.activeDate.setYear(year);\n    this.valueChange.emit(this.value);\n    this.render();\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 { NgClass, NgForOf, NgIf } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\n\nimport { DateHelperService } from 'ng-zorro-antd/i18n';\n\nimport { AbstractPanelHeader } from './abstract-panel-header';\nimport { PanelSelector } from './interface';\nimport { transCompatFormat } from './util';\nimport { NzDateMode } from '../standard-types';\n\n@Component({\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  selector: 'quarter-header', // eslint-disable-line @angular-eslint/component-selector\n  exportAs: 'quarterHeader',\n  templateUrl: './abstract-panel-header.html',\n  standalone: true,\n  imports: [NgForOf, NgIf, NgClass]\n})\nexport class QuarterHeaderComponent extends AbstractPanelHeader {\n  override mode: NzDateMode = 'quarter';\n\n  constructor(private dateHelper: DateHelperService) {\n    super();\n  }\n\n  getSelectors(): PanelSelector[] {\n    return [\n      {\n        className: `${this.prefixCls}-quarter-btn`,\n        title: this.locale.yearSelect,\n        onClick: () => {\n          this.mode = 'year';\n          this.changeMode('year');\n        },\n        label: this.dateHelper.format(this.value.nativeDate, transCompatFormat(this.locale.yearFormat))\n      }\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 { NgClass, NgForOf, NgIf, NgSwitch, NgSwitchCase, NgSwitchDefault, NgTemplateOutlet } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, OnChanges, OnInit, ViewEncapsulation } from '@angular/core';\n\nimport { startOfQuarter } from 'date-fns';\n\nimport { CandyDate } from 'ng-zorro-antd/core/time';\nimport { isNonEmptyString, isTemplateRef, valueFunctionProp } from 'ng-zorro-antd/core/util';\nimport { DateHelperService } from 'ng-zorro-antd/i18n';\n\nimport { AbstractTable } from './abstract-table';\nimport { DateBodyRow, DateCell } from './interface';\n\n@Component({\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  // eslint-disable-next-line @angular-eslint/component-selector\n  selector: 'quarter-table',\n  exportAs: 'quarterTable',\n  templateUrl: 'abstract-table.html',\n  standalone: true,\n  imports: [NgIf, NgForOf, NgClass, NgSwitch, NgSwitchCase, NgTemplateOutlet, NgSwitchDefault]\n})\nexport class QuarterTableComponent extends AbstractTable implements OnChanges, OnInit {\n  override MAX_ROW = 1;\n  override MAX_COL = 4;\n\n  constructor(private dateHelper: DateHelperService) {\n    super();\n  }\n\n  private changeValueFromInside(value: CandyDate): void {\n    this.activeDate = value.clone();\n    this.valueChange.emit(this.activeDate);\n\n    if (!this.activeDate.isSameQuarter(this.value)) {\n      this.render();\n    }\n  }\n\n  makeHeadRow(): DateCell[] {\n    return [];\n  }\n\n  makeBodyRows(): DateBodyRow[] {\n    const dateCells: DateCell[] = [];\n    const months: DateBodyRow[] = [{ dateCells, trackByIndex: 0 }];\n    let quarterValue = 1;\n\n    for (let colIndex = 1; colIndex <= this.MAX_COL; colIndex++, quarterValue++) {\n      const date = this.activeDate.setQuarter(quarterValue);\n      const isDisabled = this.isDisabledQuarter(date);\n      const content = this.dateHelper.format(date.nativeDate, '[Q]Q');\n      const cell: DateCell = {\n        trackByIndex: colIndex,\n        value: date.nativeDate,\n        isDisabled,\n        isSelected: date.isSameQuarter(this.value),\n        content,\n        title: content,\n        classMap: {},\n        cellRender: valueFunctionProp(this.cellRender!, date),\n        fullCellRender: valueFunctionProp(this.fullCellRender!, date),\n        onClick: () => this.changeValueFromInside(date),\n        onMouseEnter: () => this.cellHover.emit(date)\n      };\n\n      this.addCellProperty(cell, date);\n      dateCells.push(cell);\n    }\n    return months;\n  }\n\n  private isDisabledQuarter(quarter: CandyDate): boolean {\n    if (!this.disabledDate) {\n      return false;\n    }\n\n    const firstDayOfQuarter = new CandyDate(startOfQuarter(quarter.nativeDate));\n    for (let date = firstDayOfQuarter; date.getQuarter() === quarter.getQuarter(); date = date.addMonths(1)) {\n      if (!this.disabledDate(date.nativeDate)) {\n        return false;\n      }\n    }\n    return true;\n  }\n\n  private addCellProperty(cell: DateCell, month: CandyDate): void {\n    cell.isTemplateRef = isTemplateRef(cell.cellRender);\n    cell.isNonEmptyString = isNonEmptyString(cell.cellRender);\n\n    if (this.hasRangeValue()) {\n      const [startHover, endHover] = this.hoverValue;\n      const [startSelected, endSelected] = this.selectedValue;\n\n      if (startSelected?.isSameQuarter(month)) {\n        cell.isSelectedStart = true;\n        cell.isSelected = true;\n      }\n\n      if (endSelected?.isSameQuarter(month)) {\n        cell.isSelectedEnd = true;\n        cell.isSelected = true;\n      }\n\n      if (startHover && endHover) {\n        cell.isHoverStart = startHover.isSameQuarter(month);\n        cell.isHoverEnd = endHover.isSameQuarter(month);\n        cell.isLastCellInPanel = month.getQuarter() === 4;\n        cell.isFirstCellInPanel = month.getQuarter() === 1;\n        cell.isInHoverRange = startHover.isBeforeQuarter(month) && month.isBeforeQuarter(endHover);\n      }\n      cell.isStartSingle = startSelected && !endSelected;\n      cell.isEndSingle = !startSelected && endSelected;\n      cell.isInSelectedRange = startSelected?.isBeforeQuarter(month) && month?.isBeforeQuarter(endSelected);\n      cell.isRangeStartNearHover = startSelected && cell.isInHoverRange;\n      cell.isRangeEndNearHover = endSelected && cell.isInHoverRange;\n    } else if (month.isSameQuarter(this.value)) {\n      cell.isSelected = true;\n    }\n    cell.classMap = this.getClassMap(cell);\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 { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\n\nimport { DateHelperService } from 'ng-zorro-antd/i18n';\n\nimport { AbstractPanelHeader } from './abstract-panel-header';\nimport { PanelSelector } from './interface';\nimport { transCompatFormat } from './util';\nimport { NgClass, NgForOf, NgIf } from '@angular/common';\nimport { NzDateMode } from '../standard-types';\n\n@Component({\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  selector: 'month-header', // eslint-disable-line @angular-eslint/component-selector\n  exportAs: 'monthHeader',\n  templateUrl: './abstract-panel-header.html',\n  standalone: true,\n  imports: [NgForOf, NgIf, NgClass]\n})\nexport class MonthHeaderComponent extends AbstractPanelHeader {\n  override mode: NzDateMode = 'month';\n\n  constructor(private dateHelper: DateHelperService) {\n    super();\n  }\n\n  getSelectors(): PanelSelector[] {\n    return [\n      {\n        className: `${this.prefixCls}-month-btn`,\n        title: this.locale.yearSelect,\n        onClick: () => {\n          this.mode = 'year';\n          this.changeMode('year');\n        },\n        label: this.dateHelper.format(this.value.nativeDate, transCompatFormat(this.locale.yearFormat))\n      }\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 { NgClass, NgForOf, NgIf, NgSwitch, NgSwitchCase, NgSwitchDefault, NgTemplateOutlet } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, OnChanges, OnInit, ViewEncapsulation } from '@angular/core';\n\nimport { CandyDate } from 'ng-zorro-antd/core/time';\nimport { valueFunctionProp } from 'ng-zorro-antd/core/util';\nimport { DateHelperService } from 'ng-zorro-antd/i18n';\n\nimport { AbstractTable } from './abstract-table';\nimport { DateBodyRow, DateCell } from './interface';\n\n@Component({\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  // eslint-disable-next-line @angular-eslint/component-selector\n  selector: 'month-table',\n  exportAs: 'monthTable',\n  templateUrl: 'abstract-table.html',\n  standalone: true,\n  imports: [NgIf, NgForOf, NgClass, NgSwitch, NgSwitchCase, NgTemplateOutlet, NgSwitchDefault]\n})\nexport class MonthTableComponent extends AbstractTable implements OnChanges, OnInit {\n  override MAX_ROW = 4;\n  override MAX_COL = 3;\n\n  constructor(private dateHelper: DateHelperService) {\n    super();\n  }\n\n  makeHeadRow(): DateCell[] {\n    return [];\n  }\n\n  makeBodyRows(): DateBodyRow[] {\n    const months: DateBodyRow[] = [];\n    let monthValue = 0;\n\n    for (let rowIndex = 0; rowIndex < this.MAX_ROW; rowIndex++) {\n      const row: DateBodyRow = {\n        dateCells: [],\n        trackByIndex: rowIndex\n      };\n\n      for (let colIndex = 0; colIndex < this.MAX_COL; colIndex++) {\n        const month = this.activeDate.setMonth(monthValue);\n        const isDisabled = this.isDisabledMonth(month);\n        const content = this.dateHelper.format(month.nativeDate, 'MMM');\n        const cell: DateCell = {\n          trackByIndex: colIndex,\n          value: month.nativeDate,\n          isDisabled,\n          isSelected: month.isSameMonth(this.value),\n          content,\n          title: content,\n          classMap: {},\n          cellRender: valueFunctionProp(this.cellRender!, month), // Customized content\n          fullCellRender: valueFunctionProp(this.fullCellRender!, month),\n          onClick: () => this.chooseMonth(cell.value.getMonth()), // don't use monthValue here,\n          onMouseEnter: () => this.cellHover.emit(month)\n        };\n\n        this.addCellProperty(cell, month);\n        row.dateCells.push(cell);\n        monthValue++;\n      }\n      months.push(row);\n    }\n    return months;\n  }\n\n  private isDisabledMonth(month: CandyDate): boolean {\n    if (!this.disabledDate) {\n      return false;\n    }\n\n    const firstOfMonth = month.setDate(1);\n\n    for (let date = firstOfMonth; date.getMonth() === month.getMonth(); date = date.addDays(1)) {\n      if (!this.disabledDate(date.nativeDate)) {\n        return false;\n      }\n    }\n\n    return true;\n  }\n\n  private addCellProperty(cell: DateCell, month: CandyDate): void {\n    if (this.hasRangeValue()) {\n      const [startHover, endHover] = this.hoverValue;\n      const [startSelected, endSelected] = this.selectedValue;\n      // Selected\n      if (startSelected?.isSameMonth(month)) {\n        cell.isSelectedStart = true;\n        cell.isSelected = true;\n      }\n\n      if (endSelected?.isSameMonth(month)) {\n        cell.isSelectedEnd = true;\n        cell.isSelected = true;\n      }\n\n      if (startHover && endHover) {\n        cell.isHoverStart = startHover.isSameMonth(month);\n        cell.isHoverEnd = endHover.isSameMonth(month);\n        cell.isLastCellInPanel = month.getMonth() === 11;\n        cell.isFirstCellInPanel = month.getMonth() === 0;\n        cell.isInHoverRange = startHover.isBeforeMonth(month) && month.isBeforeMonth(endHover);\n      }\n      cell.isStartSingle = startSelected && !endSelected;\n      cell.isEndSingle = !startSelected && endSelected;\n      cell.isInSelectedRange = startSelected?.isBeforeMonth(month) && month?.isBeforeMonth(endSelected);\n      cell.isRangeStartNearHover = startSelected && cell.isInHoverRange;\n      cell.isRangeEndNearHover = endSelected && cell.isInHoverRange;\n    } else if (month.isSameMonth(this.value)) {\n      cell.isSelected = true;\n    }\n    cell.classMap = this.getClassMap(cell);\n  }\n\n  private chooseMonth(month: number): void {\n    this.value = this.activeDate.setMonth(month);\n    this.valueChange.emit(this.value);\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 { NgClass, NgForOf, NgIf } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\n\nimport { DateHelperService } from 'ng-zorro-antd/i18n';\n\nimport { AbstractPanelHeader } from './abstract-panel-header';\nimport { PanelSelector } from './interface';\nimport { transCompatFormat } from './util';\nimport { NzDateMode } from '../standard-types';\n\n@Component({\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  selector: 'date-header', // eslint-disable-line @angular-eslint/component-selector\n  exportAs: 'dateHeader',\n  templateUrl: './abstract-panel-header.html',\n  standalone: true,\n  imports: [NgForOf, NgIf, NgClass]\n})\nexport class DateHeaderComponent extends AbstractPanelHeader {\n  override mode: NzDateMode = 'date';\n\n  constructor(private dateHelper: DateHelperService) {\n    super();\n  }\n\n  getSelectors(): PanelSelector[] {\n    return [\n      {\n        className: `${this.prefixCls}-year-btn`,\n        title: this.locale.yearSelect,\n        onClick: () => {\n          this.mode = 'year';\n          this.changeMode('year');\n        },\n        label: this.dateHelper.format(this.value.nativeDate, transCompatFormat(this.locale.yearFormat))\n      },\n      {\n        className: `${this.prefixCls}-month-btn`,\n        title: this.locale.monthSelect,\n        onClick: () => {\n          this.mode = 'month';\n          this.changeMode('month');\n        },\n        label: this.dateHelper.format(this.value.nativeDate, this.locale.monthFormat || 'MMM')\n      }\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 { NgClass, NgSwitch, NgTemplateOutlet } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, Input, OnChanges, OnInit, ViewEncapsulation } from '@angular/core';\n\nimport { CandyDate } from 'ng-zorro-antd/core/time';\nimport { isNonEmptyString, isTemplateRef, valueFunctionProp } from 'ng-zorro-antd/core/util';\nimport { DateHelperService, NzCalendarI18nInterface, NzI18nService } from 'ng-zorro-antd/i18n';\n\nimport { AbstractTable } from './abstract-table';\nimport { DateBodyRow, DateCell } from './interface';\nimport { transCompatFormat } from './util';\n\n@Component({\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  // eslint-disable-next-line @angular-eslint/component-selector\n  selector: 'date-table',\n  exportAs: 'dateTable',\n  templateUrl: './abstract-table.html',\n  standalone: true,\n  imports: [NgClass, NgSwitch, NgTemplateOutlet]\n})\nexport class DateTableComponent extends AbstractTable implements OnChanges, OnInit {\n  @Input() override locale!: NzCalendarI18nInterface;\n\n  constructor(private i18n: NzI18nService, private dateHelper: DateHelperService) {\n    super();\n  }\n\n  private changeValueFromInside(value: CandyDate): void {\n    // Only change date not change time\n    this.activeDate = this.activeDate.setYear(value.getYear()).setMonth(value.getMonth()).setDate(value.getDate());\n    this.valueChange.emit(this.activeDate);\n\n    if (!this.activeDate.isSameMonth(this.value)) {\n      this.render();\n    }\n  }\n\n  makeHeadRow(): DateCell[] {\n    const weekDays: DateCell[] = [];\n    const start = this.activeDate.calendarStart({ weekStartsOn: this.dateHelper.getFirstDayOfWeek() });\n    for (let colIndex = 0; colIndex < this.MAX_COL; colIndex++) {\n      const day = start.addDays(colIndex);\n      weekDays.push({\n        trackByIndex: null,\n        value: day.nativeDate,\n        title: this.dateHelper.format(day.nativeDate, 'E'), // eg. Tue\n        content: this.dateHelper.format(day.nativeDate, this.getVeryShortWeekFormat()), // eg. Tu,\n        isSelected: false,\n        isDisabled: false,\n        onClick(): void {},\n        onMouseEnter(): void {}\n      });\n    }\n    return weekDays;\n  }\n\n  private getVeryShortWeekFormat(): string {\n    return this.i18n.getLocaleId().toLowerCase().indexOf('zh') === 0 ? 'EEEEE' : 'EEEEEE'; // Use extreme short for chinese\n  }\n\n  makeBodyRows(): DateBodyRow[] {\n    const weekRows: DateBodyRow[] = [];\n    const firstDayOfMonth = this.activeDate.calendarStart({ weekStartsOn: this.dateHelper.getFirstDayOfWeek() });\n\n    for (let week = 0; week < this.MAX_ROW; week++) {\n      const weekStart = firstDayOfMonth.addDays(week * 7);\n      const row: DateBodyRow = {\n        isActive: false,\n        dateCells: [],\n        trackByIndex: week\n      };\n\n      for (let day = 0; day < 7; day++) {\n        const date = weekStart.addDays(day);\n        const dateFormat = transCompatFormat(this.i18n.getLocaleData('DatePicker.lang.dateFormat', 'YYYY-MM-DD'));\n        const title = this.dateHelper.format(date.nativeDate, dateFormat);\n        const label = this.dateHelper.format(date.nativeDate, 'dd');\n        const cell: DateCell = {\n          trackByIndex: day,\n          value: date.nativeDate,\n          label,\n          isSelected: false,\n          isDisabled: false,\n          isToday: false,\n          title,\n          cellRender: valueFunctionProp(this.cellRender!, date), // Customized content\n          fullCellRender: valueFunctionProp(this.fullCellRender!, date),\n          content: `${date.getDate()}`,\n          onClick: () => this.changeValueFromInside(date),\n          onMouseEnter: () => this.cellHover.emit(date),\n        };\n\n        this.addCellProperty(cell, date);\n\n        if (this.showWeek && !row.weekNum) {\n          row.weekNum = this.dateHelper.getISOWeek(date.nativeDate);\n        }\n        if (date.isSameDay(this.value)) {\n          row.isActive = date.isSameDay(this.value);\n        }\n        row.dateCells.push(cell);\n      }\n      row.classMap = {\n        [`ant-picker-week-panel-row`]: this.canSelectWeek,\n        [`ant-picker-week-panel-row-selected`]: this.canSelectWeek && row.isActive\n      };\n      weekRows.push(row);\n    }\n    return weekRows;\n  }\n\n  addCellProperty(cell: DateCell, date: CandyDate): void {\n    cell.isTemplateRef = isTemplateRef(cell.cellRender);\n    cell.isNonEmptyString =  isNonEmptyString(cell.cellRender);\n    if (this.hasRangeValue() && !this.canSelectWeek) {\n      const [startHover, endHover] = this.hoverValue;\n      const [startSelected, endSelected] = this.selectedValue;\n      // Selected\n      if (startSelected?.isSameDay(date)) {\n        cell.isSelectedStart = true;\n        cell.isSelected = true;\n      }\n\n      if (endSelected?.isSameDay(date)) {\n        cell.isSelectedEnd = true;\n        cell.isSelected = true;\n      }\n\n      if (startHover && endHover) {\n        cell.isHoverStart = startHover.isSameDay(date);\n        cell.isHoverEnd = endHover.isSameDay(date);\n        cell.isLastCellInPanel = date.isLastDayOfMonth();\n        cell.isFirstCellInPanel = date.isFirstDayOfMonth();\n        cell.isInHoverRange = startHover.isBeforeDay(date) && date.isBeforeDay(endHover);\n      }\n      cell.isStartSingle = startSelected && !endSelected;\n      cell.isEndSingle = !startSelected && endSelected;\n      cell.isInSelectedRange = startSelected?.isBeforeDay(date) && date.isBeforeDay(endSelected);\n      cell.isRangeStartNearHover = startSelected && cell.isInHoverRange;\n      cell.isRangeEndNearHover = endSelected && cell.isInHoverRange;\n    }\n\n    cell.isToday = date.isToday();\n    cell.isSelected = date.isSameDay(this.value);\n    cell.isDisabled = !!this.disabledDate?.(date.nativeDate);\n    cell.classMap = this.getClassMap(cell);\n  }\n\n  override getClassMap(cell: DateCell): { [key: string]: boolean } {\n    const date = new CandyDate(cell.value);\n    return {\n      ...super.getClassMap(cell),\n      [`ant-picker-cell-today`]: !!cell.isToday,\n      [`ant-picker-cell-in-view`]: date.isSameMonth(this.activeDate)\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\n/**\n * A collection module of standard output for all lib components\n */\n\nimport { NgModule } from '@angular/core';\n\nimport { DateHeaderComponent } from './date-header.component';\nimport { DateTableComponent } from './date-table.component';\nimport { DecadeHeaderComponent } from './decade-header.component';\nimport { DecadeTableComponent } from './decade-table.component';\nimport { MonthHeaderComponent } from './month-header.component';\nimport { MonthTableComponent } from './month-table.component';\nimport { QuarterHeaderComponent } from './quarter-header.component';\nimport { QuarterTableComponent } from './quarter-table.component';\nimport { YearHeaderComponent } from './year-header.component';\nimport { YearTableComponent } from './year-table.component';\n\n@NgModule({\n  imports: [\n    DateHeaderComponent,\n    DateTableComponent,\n    DecadeHeaderComponent,\n    DecadeTableComponent,\n    MonthHeaderComponent,\n    MonthTableComponent,\n    YearHeaderComponent,\n    YearTableComponent,\n    QuarterHeaderComponent,\n    QuarterTableComponent\n  ],\n  exports: [\n    DateHeaderComponent,\n    DateTableComponent,\n    DecadeHeaderComponent,\n    DecadeTableComponent,\n    MonthHeaderComponent,\n    MonthTableComponent,\n    YearHeaderComponent,\n    YearTableComponent,\n    QuarterHeaderComponent,\n    QuarterTableComponent\n  ]\n})\nexport class LibPackerModule {}\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 { DecadeHeaderComponent as ɵDecadeHeaderComponent } from './decade-header.component';\nexport { DecadeTableComponent as ɵDecadeTableComponent } from './decade-table.component';\nexport { YearHeaderComponent as ɵYearHeaderComponent } from './year-header.component';\nexport { YearTableComponent as ɵYearTableComponent } from './year-table.component';\nexport { QuarterHeaderComponent as ɵQuarterHeaderComponent } from './quarter-header.component';\nexport { QuarterTableComponent as ɵQuarterTableComponent } from './quarter-table.component';\nexport { MonthHeaderComponent as ɵMonthHeaderComponent } from './month-header.component';\nexport { MonthTableComponent as ɵMonthTableComponent } from './month-table.component';\nexport { DateHeaderComponent as ɵDateHeaderComponent } from './date-header.component';\nexport { DateTableComponent as ɵDateTableComponent } from './date-table.component';\nexport { AbstractPanelHeader as ɵAbstractPanelHeader } from './abstract-panel-header';\nexport { AbstractTable as ɵAbstractTable } from './abstract-table';\nexport { LibPackerModule } from './lib-packer.module';\nexport { transCompatFormat } from './util';\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 * from './public-api';\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 {\n  booleanAttribute,\n  ChangeDetectionStrategy,\n  Component,\n  EventEmitter,\n  Input,\n  OnChanges,\n  Output,\n  SimpleChanges,\n  TemplateRef,\n  ViewEncapsulation\n} from '@angular/core';\nimport { FormsModule } from '@angular/forms';\n\nimport { CandyDate } from 'ng-zorro-antd/core/time';\nimport { FunctionProp } from 'ng-zorro-antd/core/types';\nimport { NzCalendarI18nInterface } from 'ng-zorro-antd/i18n';\nimport { NzTimePickerModule } from 'ng-zorro-antd/time-picker';\n\nimport { LibPackerModule } from './lib';\nimport { DisabledDateFn, NzDateMode, NzPanelChangeType, RangePartType, SupportTimeOptions } from './standard-types';\nimport { PREFIX_CLASS } from './util';\n\n@Component({\n  // eslint-disable-next-line @angular-eslint/component-selector\n  selector: 'inner-popup',\n  exportAs: 'innerPopup',\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <div [class.ant-picker-datetime-panel]=\"showTimePicker\">\n      <div class=\"{{ prefixCls }}-{{ panelMode }}-panel\">\n        @switch (panelMode) {\n          @case ('decade') {\n            <decade-header\n              [(value)]=\"activeDate\"\n              [locale]=\"locale\"\n              [showSuperPreBtn]=\"enablePrevNext('prev', 'decade')\"\n              [showSuperNextBtn]=\"enablePrevNext('next', 'decade')\"\n              [showNextBtn]=\"false\"\n              [showPreBtn]=\"false\"\n              (panelChange)=\"panelChange.emit($event)\"\n              (valueChange)=\"headerChange.emit($event)\"\n            />\n            <div class=\"{{ prefixCls }}-body\">\n              <decade-table\n                [activeDate]=\"activeDate\"\n                [value]=\"value\"\n                [locale]=\"locale\"\n                (valueChange)=\"onChooseDecade($event)\"\n                [disabledDate]=\"disabledDate\"\n              />\n            </div>\n          }\n          @case ('year') {\n            <year-header\n              [(value)]=\"activeDate\"\n              [locale]=\"locale\"\n              [showSuperPreBtn]=\"enablePrevNext('prev', 'year')\"\n              [showSuperNextBtn]=\"enablePrevNext('next', 'year')\"\n              [showNextBtn]=\"false\"\n              [showPreBtn]=\"false\"\n              (panelChange)=\"panelChange.emit($event)\"\n              (valueChange)=\"headerChange.emit($event)\"\n            />\n            <div class=\"{{ prefixCls }}-body\">\n              <year-table\n                [activeDate]=\"activeDate\"\n                [value]=\"value\"\n                [locale]=\"locale\"\n                [disabledDate]=\"disabledDate\"\n                [selectedValue]=\"selectedValue\"\n                [hoverValue]=\"hoverValue\"\n                (valueChange)=\"onChooseYear($event)\"\n                (cellHover)=\"cellHover.emit($event)\"\n              />\n            </div>\n          }\n          @case ('month') {\n            <month-header\n              [(value)]=\"activeDate\"\n              [locale]=\"locale\"\n              [showSuperPreBtn]=\"enablePrevNext('prev', 'month')\"\n              [showSuperNextBtn]=\"enablePrevNext('next', 'month')\"\n              [showNextBtn]=\"false\"\n              [showPreBtn]=\"false\"\n              (panelChange)=\"panelChange.emit($event)\"\n              (valueChange)=\"headerChange.emit($event)\"\n            />\n            <div class=\"{{ prefixCls }}-body\">\n              <month-table\n                [value]=\"value\"\n                [activeDate]=\"activeDate\"\n                [locale]=\"locale\"\n                [disabledDate]=\"disabledDate\"\n                [selectedValue]=\"selectedValue\"\n                [hoverValue]=\"hoverValue\"\n                (valueChange)=\"onChooseMonth($event)\"\n                (cellHover)=\"cellHover.emit($event)\"\n              />\n            </div>\n          }\n          @case ('quarter') {\n            <quarter-header\n              [(value)]=\"activeDate\"\n              [locale]=\"locale\"\n              [showSuperPreBtn]=\"enablePrevNext('prev', 'month')\"\n              [showSuperNextBtn]=\"enablePrevNext('next', 'month')\"\n              [showNextBtn]=\"false\"\n              [showPreBtn]=\"false\"\n              (panelChange)=\"panelChange.emit($event)\"\n              (valueChange)=\"headerChange.emit($event)\"\n            />\n            <div class=\"{{ prefixCls }}-body\">\n              <quarter-table\n                [value]=\"value\"\n                [activeDate]=\"activeDate\"\n                [locale]=\"locale\"\n                [disabledDate]=\"disabledDate\"\n                [selectedValue]=\"selectedValue\"\n                [hoverValue]=\"hoverValue\"\n                (valueChange)=\"onChooseQuarter($event)\"\n                (cellHover)=\"cellHover.emit($event)\"\n                [cellRender]=\"dateRender\"\n              />\n            </div>\n          }\n          @default {\n            <date-header\n              [(value)]=\"activeDate\"\n              [locale]=\"locale\"\n              [showSuperPreBtn]=\"panelMode === 'week' ? enablePrevNext('prev', 'week') : enablePrevNext('prev', 'date')\"\n              [showSuperNextBtn]=\"\n                panelMode === 'week' ? enablePrevNext('next', 'week') : enablePrevNext('next', 'date')\n              \"\n              [showPreBtn]=\"panelMode === 'week' ? enablePrevNext('prev', 'week') : enablePrevNext('prev', 'date')\"\n              [showNextBtn]=\"panelMode === 'week' ? enablePrevNext('next', 'week') : enablePrevNext('next', 'date')\"\n              (panelChange)=\"panelChange.emit($event)\"\n              (valueChange)=\"headerChange.emit($event)\"\n            />\n            <div class=\"{{ prefixCls }}-body\">\n              <date-table\n                [locale]=\"locale\"\n                [showWeek]=\"showWeek\"\n                [value]=\"value\"\n                [activeDate]=\"activeDate\"\n                [disabledDate]=\"disabledDate\"\n                [cellRender]=\"dateRender\"\n                [selectedValue]=\"selectedValue\"\n                [hoverValue]=\"hoverValue\"\n                [canSelectWeek]=\"panelMode === 'week'\"\n                (valueChange)=\"onSelectDate($event)\"\n                (cellHover)=\"cellHover.emit($event)\"\n              />\n            </div>\n          }\n        }\n      </div>\n      @if (showTimePicker && timeOptions) {\n        <nz-time-picker-panel\n          [nzInDatePicker]=\"true\"\n          [ngModel]=\"value?.nativeDate\"\n          (ngModelChange)=\"onSelectTime($event)\"\n          [format]=\"$any(timeOptions.nzFormat)\"\n          [nzHourStep]=\"$any(timeOptions.nzHourStep)\"\n          [nzMinuteStep]=\"$any(timeOptions.nzMinuteStep)\"\n          [nzSecondStep]=\"$any(timeOptions.nzSecondStep)\"\n          [nzDisabledHours]=\"$any(timeOptions.nzDisabledHours)\"\n          [nzDisabledMinutes]=\"$any(timeOptions.nzDisabledMinutes)\"\n          [nzDisabledSeconds]=\"$any(timeOptions.nzDisabledSeconds)\"\n          [nzHideDisabledOptions]=\"!!timeOptions.nzHideDisabledOptions\"\n          [nzDefaultOpenValue]=\"$any(timeOptions.nzDefaultOpenValue)\"\n          [nzUse12Hours]=\"!!timeOptions.nzUse12Hours\"\n          [nzAddOn]=\"$any(timeOptions.nzAddOn)\"\n        />\n      }\n    </div>\n  `,\n  imports: [LibPackerModule, NzTimePickerModule, FormsModule],\n  standalone: true\n})\nexport class InnerPopupComponent implements OnChanges {\n  @Input() activeDate!: CandyDate;\n  @Input() endPanelMode!: NzDateMode;\n  @Input() panelMode!: NzDateMode;\n  @Input({ transform: booleanAttribute }) showWeek!: boolean;\n  @Input() locale!: NzCalendarI18nInterface;\n  @Input({ transform: booleanAttribute }) showTimePicker!: boolean;\n  @Input() timeOptions!: SupportTimeOptions | null;\n  @Input() disabledDate?: DisabledDateFn;\n  @Input() dateRender?: string | TemplateRef<Date> | FunctionProp<TemplateRef<Date> | string>;\n  @Input() selectedValue!: CandyDate[]; // Range ONLY\n  @Input() hoverValue!: CandyDate[]; // Range ONLY\n  @Input() value!: CandyDate;\n  @Input() partType!: RangePartType;\n\n  @Output() readonly panelChange = new EventEmitter<NzPanelChangeType>();\n  // TODO: name is not proper\n  @Output() readonly headerChange = new EventEmitter<CandyDate>(); // Emitted when user changed the header's value\n  @Output() readonly selectDate = new EventEmitter<CandyDate>(); // Emitted when the date is selected by click the date panel\n  @Output() readonly selectTime = new EventEmitter<CandyDate>();\n  @Output() readonly cellHover = new EventEmitter<CandyDate>(); // Emitted when hover on a day by mouse enter\n\n  prefixCls: string = PREFIX_CLASS;\n\n  /**\n   * Hide \"next\" arrow in left panel,\n   * hide \"prev\" arrow in right panel\n   *\n   * @param direction\n   * @param panelMode\n   */\n  enablePrevNext(direction: 'prev' | 'next', panelMode: NzDateMode): boolean {\n    return !(\n      !this.showTimePicker &&\n      panelMode === this.endPanelMode &&\n      ((this.partType === 'left' && direction === 'next') || (this.partType === 'right' && direction === 'prev'))\n    );\n  }\n\n  onSelectTime(date: Date): void {\n    this.selectTime.emit(new CandyDate(date));\n  }\n\n  // The value real changed to outside\n  onSelectDate(date: CandyDate | Date): void {\n    const value = date instanceof CandyDate ? date : new CandyDate(date);\n    const timeValue = this.timeOptions && this.timeOptions.nzDefaultOpenValue;\n\n    // Display timeValue when value is null\n    if (!this.value && timeValue) {\n      value.setHms(timeValue.getHours(), timeValue.getMinutes(), timeValue.getSeconds());\n    }\n\n    this.selectDate.emit(value);\n  }\n\n  onChooseMonth(value: CandyDate): void {\n    this.activeDate = this.activeDate.setMonth(value.getMonth());\n    if (this.endPanelMode === 'month') {\n      this.value = value;\n      this.selectDate.emit(value);\n    } else {\n      this.headerChange.emit(value);\n      this.panelChange.emit({ mode: this.endPanelMode, date: value.nativeDate });\n    }\n  }\n\n  onChooseQuarter(value: CandyDate): void {\n    this.activeDate = this.activeDate.setQuarter(value.getQuarter());\n    this.value = value;\n    this.selectDate.emit(value);\n  }\n\n  onChooseYear(value: CandyDate): void {\n    this.activeDate = this.activeDate.setYear(value.getYear());\n    if (this.endPanelMode === 'year') {\n      this.value = value;\n      this.selectDate.emit(value);\n    } else {\n      this.headerChange.emit(value);\n      this.panelChange.emit({ mode: this.endPanelMode, date: value.nativeDate });\n    }\n  }\n\n  onChooseDecade(value: CandyDate): void {\n    this.activeDate = this.activeDate.setYear(value.getYear());\n    if (this.endPanelMode === 'decade') {\n      this.value = value;\n      this.selectDate.emit(value);\n    } else {\n      this.headerChange.emit(value);\n      this.panelChange.emit({ mode: 'year', date: value.nativeDate });\n    }\n  }\n\n  ngOnChanges(changes: SimpleChanges): void {\n    if (changes.activeDate && !changes.activeDate.currentValue) {\n      this.activeDate = new CandyDate();\n    }\n    // New Antd vesion has merged 'date' ant 'time' to one panel,\n    // So there is not 'time' panel\n    if (changes.panelMode && changes.panelMode.currentValue === 'time') {\n      this.panelMode = 'date';\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 { Direction } from '@angular/cdk/bidi';\nimport { NgStyle, NgTemplateOutlet } from '@angular/common';\nimport {\n  booleanAttribute,\n  ChangeDetectionStrategy,\n  ChangeDetectorRef,\n  Component,\n  ElementRef,\n  EventEmitter,\n  Input,\n  NgZone,\n  OnChanges,\n  OnDestroy,\n  OnInit,\n  Output,\n  SimpleChanges,\n  TemplateRef,\n  ViewEncapsulation\n} from '@angular/core';\nimport { fromEvent, merge, Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nimport {\n  CandyDate,\n  cloneDate,\n  CompatibleValue,\n  NormalizedMode,\n  SingleValue,\n  wrongSortOrder\n} from 'ng-zorro-antd/core/time';\nimport { FunctionProp } from 'ng-zorro-antd/core/types';\nimport { NzCalendarI18nInterface } from 'ng-zorro-antd/i18n';\n\nimport { CalendarFooterComponent } from './calendar-footer.component';\nimport { DatePickerService } from './date-picker.service';\nimport { InnerPopupComponent } from './inner-popup.component';\nimport {\n  CompatibleDate,\n  DisabledDateFn,\n  DisabledTimeFn,\n  DisabledTimePartial,\n  NzDateMode,\n  NzPanelChangeType,\n  PresetRanges,\n  RangePartType,\n  SupportTimeOptions\n} from './standard-types';\nimport { getTimeConfig, isAllowedDate, PREFIX_CLASS } from './util';\n\n@Component({\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  // eslint-disable-next-line @angular-eslint/component-selector\n  selector: 'date-range-popup',\n  exportAs: 'dateRangePopup',\n  template: `\n    @if (isRange) {\n      <div class=\"{{ prefixCls }}-range-wrapper {{ prefixCls }}-date-range-wrapper\">\n        <div class=\"{{ prefixCls }}-range-arrow\" [ngStyle]=\"arrowPosition\"></div>\n        <div class=\"{{ prefixCls }}-panel-container {{ showWeek ? prefixCls + '-week-number' : '' }}\">\n          <div class=\"{{ prefixCls }}-panels\">\n            @if (hasTimePicker) {\n              <ng-container *ngTemplateOutlet=\"tplInnerPopup; context: { partType: datePickerService.activeInput }\" />\n            } @else {\n              <ng-container *ngTemplateOutlet=\"tplInnerPopup; context: { partType: 'left' }\" />\n              <ng-container *ngTemplateOutlet=\"tplInnerPopup; context: { partType: 'right' }\" />\n            }\n          </div>\n          <ng-container *ngTemplateOutlet=\"tplFooter\" />\n        </div>\n      </div>\n    } @else {\n      <div\n        class=\"{{ prefixCls }}-panel-container {{ showWeek ? prefixCls + '-week-number' : '' }} {{\n          hasTimePicker ? prefixCls + '-time' : ''\n        }} {{ isRange ? prefixCls + '-range' : '' }}\"\n      >\n        <div class=\"{{ prefixCls }}-panel\" [class.ant-picker-panel-rtl]=\"dir === 'rtl'\" tabindex=\"-1\">\n          <!-- Single ONLY -->\n          <ng-container *ngTemplateOutlet=\"tplInnerPopup\" />\n          <ng-container *ngTemplateOutlet=\"tplFooter\" />\n        </div>\n      </div>\n    }\n\n    <ng-template #tplInnerPopup let-partType=\"partType\">\n      <div class=\"{{ prefixCls }}-panel\" [class.ant-picker-panel-rtl]=\"dir === 'rtl'\">\n        <!-- TODO(@wenqi73) [selectedValue] [hoverValue] types-->\n        <inner-popup\n          [showWeek]=\"showWeek\"\n          [endPanelMode]=\"getPanelMode(endPanelMode, partType)\"\n          [partType]=\"partType\"\n          [locale]=\"locale!\"\n          [showTimePicker]=\"hasTimePicker\"\n          [timeOptions]=\"getTimeOptions(partType)\"\n          [panelMode]=\"getPanelMode(panelMode, partType)\"\n          (panelChange)=\"onPanelModeChange($event, partType)\"\n          [activeDate]=\"getActiveDate(partType)\"\n          [value]=\"getValue(partType)\"\n          [disabledDate]=\"disabledDate\"\n          [dateRender]=\"dateRender\"\n          [selectedValue]=\"$any(datePickerService?.value)\"\n          [hoverValue]=\"$any(hoverValue)\"\n          (cellHover)=\"onCellHover($event)\"\n          (selectDate)=\"changeValueFromSelect($event, !showTime)\"\n          (selectTime)=\"onSelectTime($event, partType)\"\n          (headerChange)=\"onActiveDateChange($event, partType)\"\n        />\n      </div>\n    </ng-template>\n\n    <ng-template #tplFooter>\n      @if (hasFooter) {\n        <calendar-footer\n          [locale]=\"locale!\"\n          [isRange]=\"isRange\"\n          [showToday]=\"showToday\"\n          [showNow]=\"showNow\"\n          [hasTimePicker]=\"hasTimePicker\"\n          [okDisabled]=\"!isAllowed($any(datePickerService?.value))\"\n          [extraFooter]=\"extraFooter\"\n          [rangeQuickSelector]=\"ranges ? tplRangeQuickSelector : null\"\n          (clickOk)=\"onClickOk()\"\n          (clickToday)=\"onClickToday($event)\"\n        />\n      }\n    </ng-template>\n\n    <!-- Range ONLY: Range Quick Selector -->\n    <ng-template #tplRangeQuickSelector>\n      @for (name of getObjectKeys(ranges); track name) {\n        <li\n          class=\"{{ prefixCls }}-preset\"\n          (click)=\"onClickPresetRange(ranges![name])\"\n          (mouseenter)=\"onHoverPresetRange(ranges![name])\"\n          (mouseleave)=\"onPresetRangeMouseLeave()\"\n        >\n          <span class=\"ant-tag ant-tag-blue\">{{ name }}</span>\n        </li>\n      }\n    </ng-template>\n  `,\n  imports: [InnerPopupComponent, NgTemplateOutlet, CalendarFooterComponent, NgStyle],\n  standalone: true\n})\nexport class DateRangePopupComponent implements OnInit, OnChanges, OnDestroy {\n  @Input({ transform: booleanAttribute }) isRange!: boolean;\n  @Input({ transform: booleanAttribute }) inline: boolean = false;\n  @Input({ transform: booleanAttribute }) showWeek!: boolean;\n  @Input() locale!: NzCalendarI18nInterface | undefined;\n  @Input() disabledDate?: DisabledDateFn;\n  @Input() disabledTime?: DisabledTimeFn; // This will lead to rebuild time options\n  @Input({ transform: booleanAttribute }) showToday!: boolean;\n  @Input({ transform: booleanAttribute }) showNow!: boolean;\n  @Input() showTime!: SupportTimeOptions | boolean;\n  @Input() extraFooter?: TemplateRef<void> | string;\n  @Input() ranges?: PresetRanges;\n  @Input() dateRender?: string | TemplateRef<Date> | FunctionProp<TemplateRef<Date> | string>;\n  @Input() panelMode!: NzDateMode | NzDateMode[];\n  @Input() defaultPickerValue!: CompatibleDate | undefined | null;\n  @Input() dir: Direction = 'ltr';\n\n  @Output() readonly panelModeChange = new EventEmitter<NzPanelChangeType>();\n  @Output() readonly calendarChange = new EventEmitter<CompatibleValue>();\n  @Output() readonly resultOk = new EventEmitter<void>(); // Emitted when done with date selecting\n\n  prefixCls: string = PREFIX_CLASS;\n  endPanelMode: NzDateMode | NzDateMode[] = 'date';\n  timeOptions: SupportTimeOptions | SupportTimeOptions[] | null = null;\n  hoverValue: SingleValue[] = []; // Range ONLY\n  checkedPartArr: boolean[] = [false, false];\n  destroy$ = new Subject<boolean>();\n\n  get hasTimePicker(): boolean {\n    return !!this.showTime;\n  }\n\n  get hasFooter(): boolean {\n    return this.showToday || this.hasTimePicker || !!this.extraFooter || !!this.ranges;\n  }\n\n  get arrowPosition(): { left?: string; right?: string } {\n    return this.dir === 'rtl'\n      ? { right: `${this.datePickerService?.arrowLeft}px` }\n      : { left: `${this.datePickerService?.arrowLeft}px` };\n  }\n\n  constructor(\n    public datePickerService: DatePickerService,\n    public cdr: ChangeDetectorRef,\n    private ngZone: NgZone,\n    private host: ElementRef<HTMLElement>\n  ) {}\n\n  ngOnInit(): void {\n    merge(this.datePickerService.valueChange$, this.datePickerService.inputPartChange$)\n      .pipe(takeUntil(this.destroy$))\n      .subscribe(() => {\n        this.updateActiveDate();\n        this.cdr.markForCheck();\n      });\n\n    this.ngZone.runOutsideAngular(() => {\n      fromEvent(this.host.nativeElement, 'mousedown')\n        .pipe(takeUntil(this.destroy$))\n        .subscribe(event => event.preventDefault());\n    });\n  }\n\n  ngOnChanges(changes: SimpleChanges): void {\n    // Parse showTime options\n    if (changes.showTime || changes.disabledTime) {\n      if (this.showTime) {\n        this.buildTimeOptions();\n      }\n    }\n    if (changes.panelMode) {\n      this.endPanelMode = this.panelMode;\n    }\n    if (changes.defaultPickerValue) {\n      this.updateActiveDate();\n    }\n  }\n\n  ngOnDestroy(): void {\n    this.destroy$.next(true);\n    this.destroy$.complete();\n  }\n\n  updateActiveDate(): void {\n    const activeDate = this.datePickerService.hasValue()\n      ? this.datePickerService.value\n      : this.datePickerService.makeValue(this.defaultPickerValue!);\n    this.datePickerService.setActiveDate(\n      activeDate,\n      this.hasTimePicker,\n      this.getPanelMode(this.endPanelMode) as NormalizedMode\n    );\n  }\n\n  onClickOk(): void {\n    const inputIndex = { left: 0, right: 1 }[this.datePickerService.activeInput];\n    const value: CandyDate = this.isRange\n      ? (this.datePickerService.value as CandyDate[])[inputIndex]\n      : (this.datePickerService.value as CandyDate);\n    this.changeValueFromSelect(value);\n    this.resultOk.emit();\n  }\n\n  onClickToday(value: CandyDate): void {\n    this.changeValueFromSelect(value, !this.showTime);\n  }\n\n  onCellHover(value: CandyDate): void {\n    if (!this.isRange) {\n      return;\n    }\n    const otherInputIndex = { left: 1, right: 0 }[this.datePickerService.activeInput];\n    const base = (this.datePickerService.value as CandyDate[])[otherInputIndex]!;\n    if (base) {\n      if (base.isBeforeDay(value)) {\n        this.hoverValue = [base, value];\n      } else {\n        this.hoverValue = [value, base];\n      }\n    }\n  }\n\n  onPanelModeChange(panelChangeEvent: NzPanelChangeType, partType?: RangePartType): void {\n    if (this.isRange) {\n      const index = this.datePickerService.getActiveIndex(partType);\n      if (index === 0) {\n        this.panelMode = [panelChangeEvent.mode, this.panelMode[1]] as [NzDateMode, NzDateMode];\n      } else {\n        this.panelMode = [this.panelMode[0], panelChangeEvent.mode] as [NzDateMode, NzDateMode];\n      }\n      this.panelModeChange.emit({\n        mode: this.panelMode as [NzDateMode, NzDateMode],\n        date: (this.datePickerService.activeDate as SingleValue[]).map(d => d!.nativeDate) as [Date, Date]\n      });\n    } else {\n      this.panelMode = panelChangeEvent.mode as NzDateMode;\n      this.panelModeChange.emit({ mode: this.panelMode as NzDateMode, date: panelChangeEvent.date as Date });\n    }\n  }\n\n  onActiveDateChange(value: CandyDate, partType: RangePartType): void {\n    if (this.isRange) {\n      const activeDate: SingleValue[] = [];\n      activeDate[this.datePickerService.getActiveIndex(partType)] = value;\n      this.datePickerService.setActiveDate(\n        activeDate,\n        this.hasTimePicker,\n        this.getPanelMode(this.endPanelMode, partType) as NormalizedMode\n      );\n    } else {\n      this.datePickerService.setActiveDate(value);\n    }\n  }\n\n  onSelectTime(value: CandyDate, partType?: RangePartType): void {\n    if (this.isRange) {\n      const newValue = cloneDate(this.datePickerService.value) as SingleValue[];\n      const index = this.datePickerService.getActiveIndex(partType);\n      newValue[index] = this.overrideHms(value, newValue[index]);\n      this.datePickerService.setValue(newValue);\n    } else {\n      const newValue = this.overrideHms(value, this.datePickerService.value as CandyDate);\n      this.datePickerService.setValue(newValue); // If not select a date currently, use today\n    }\n    this.datePickerService.inputPartChange$.next(null);\n    this.buildTimeOptions();\n  }\n\n  changeValueFromSelect(value: CandyDate, emitValue: boolean = true): void {\n    if (this.isRange) {\n      const selectedValue: SingleValue[] = cloneDate(this.datePickerService.value) as CandyDate[];\n      const checkedPart: RangePartType = this.datePickerService.activeInput;\n      let nextPart: RangePartType = checkedPart;\n\n      selectedValue[this.datePickerService.getActiveIndex(checkedPart)] = value;\n      this.checkedPartArr[this.datePickerService.getActiveIndex(checkedPart)] = true;\n      this.hoverValue = selectedValue;\n\n      if (emitValue) {\n        if (this.inline) {\n          // For UE, Should always be reversed, and clear vaue when next part is right\n          nextPart = this.reversedPart(checkedPart);\n          if (nextPart === 'right') {\n            selectedValue[this.datePickerService.getActiveIndex(nextPart)] = null;\n            this.checkedPartArr[this.datePickerService.getActiveIndex(nextPart)] = false;\n          }\n          this.datePickerService.setValue(selectedValue);\n          this.calendarChange.emit(selectedValue);\n          if (this.isBothAllowed(selectedValue) && this.checkedPartArr[0] && this.checkedPartArr[1]) {\n            this.clearHoverValue();\n            this.datePickerService.emitValue$.next();\n          }\n        } else {\n          /**\n           * if sort order is wrong, clear the other part's value\n           */\n          if (wrongSortOrder(selectedValue)) {\n            nextPart = this.reversedPart(checkedPart);\n            selectedValue[this.datePickerService.getActiveIndex(nextPart)] = null;\n            this.checkedPartArr[this.datePickerService.getActiveIndex(nextPart)] = false;\n          }\n\n          this.datePickerService.setValue(selectedValue);\n          /**\n           * range date usually selected paired,\n           * so we emit the date value only both date is allowed and both part are checked\n           */\n          if (this.isBothAllowed(selectedValue) && this.checkedPartArr[0] && this.checkedPartArr[1]) {\n            this.calendarChange.emit(selectedValue);\n            this.clearHoverValue();\n            this.datePickerService.emitValue$.next();\n          } else if (this.isAllowed(selectedValue)) {\n            nextPart = this.reversedPart(checkedPart);\n            this.calendarChange.emit([value.clone()]);\n          }\n        }\n      } else {\n        this.datePickerService.setValue(selectedValue);\n      }\n      this.datePickerService.inputPartChange$.next(nextPart);\n    } else {\n      this.datePickerService.setValue(value);\n      this.datePickerService.inputPartChange$.next(null);\n\n      if (emitValue && this.isAllowed(value)) {\n        this.datePickerService.emitValue$.next();\n      }\n    }\n\n    this.buildTimeOptions();\n  }\n\n  reversedPart(part: RangePartType): RangePartType {\n    return part === 'left' ? 'right' : 'left';\n  }\n\n  getPanelMode(panelMode: NzDateMode | NzDateMode[], partType?: RangePartType): NzDateMode {\n    if (this.isRange) {\n      return panelMode[this.datePickerService.getActiveIndex(partType)] as NzDateMode;\n    } else {\n      return panelMode as NzDateMode;\n    }\n  }\n\n  // Get single value or part value of a range\n  getValue(partType?: RangePartType): CandyDate {\n    if (this.isRange) {\n      return ((this.datePickerService.value as CandyDate[]) || [])[this.datePickerService.getActiveIndex(partType)];\n    } else {\n      return this.datePickerService.value as CandyDate;\n    }\n  }\n\n  getActiveDate(partType?: RangePartType): CandyDate {\n    if (this.isRange) {\n      return (this.datePickerService.activeDate as CandyDate[])[this.datePickerService.getActiveIndex(partType)];\n    } else {\n      return this.datePickerService.activeDate as CandyDate;\n    }\n  }\n\n  disabledStartTime: DisabledTimeFn = (value: Date | Date[]) => this.disabledTime && this.disabledTime(value, 'start');\n\n  disabledEndTime: DisabledTimeFn = (value: Date | Date[]) => this.disabledTime && this.disabledTime(value, 'end');\n\n  isOneAllowed(selectedValue: SingleValue[]): boolean {\n    const index = this.datePickerService.getActiveIndex();\n    const disabledTimeArr = [this.disabledStartTime, this.disabledEndTime];\n    return isAllowedDate(selectedValue[index]!, this.disabledDate, disabledTimeArr[index]);\n  }\n\n  isBothAllowed(selectedValue: SingleValue[]): boolean {\n    return (\n      isAllowedDate(selectedValue[0]!, this.disabledDate, this.disabledStartTime) &&\n      isAllowedDate(selectedValue[1]!, this.disabledDate, this.disabledEndTime)\n    );\n  }\n\n  isAllowed(value: CompatibleValue, isBoth: boolean = false): boolean {\n    if (this.isRange) {\n      return isBoth ? this.isBothAllowed(value as CandyDate[]) : this.isOneAllowed(value as CandyDate[]);\n    } else {\n      return isAllowedDate(value as CandyDate, this.disabledDate, this.disabledTime);\n    }\n  }\n\n  getTimeOptions(partType?: RangePartType): SupportTimeOptions | null {\n    if (this.showTime && this.timeOptions) {\n      return this.timeOptions instanceof Array\n        ? this.timeOptions[this.datePickerService.getActiveIndex(partType)]\n        : this.timeOptions;\n    }\n    return null;\n  }\n\n  onClickPresetRange(val: PresetRanges[keyof PresetRanges]): void {\n    const value = typeof val === 'function' ? val() : val;\n    if (value) {\n      this.datePickerService.setValue([new CandyDate(value[0]), new CandyDate(value[1])]);\n      this.datePickerService.emitValue$.next();\n    }\n  }\n\n  onPresetRangeMouseLeave(): void {\n    this.clearHoverValue();\n  }\n\n  onHoverPresetRange(val: PresetRanges[keyof PresetRanges]): void {\n    if (typeof val !== 'function') {\n      this.hoverValue = [new CandyDate(val[0]), new CandyDate(val[1])];\n    }\n  }\n\n  getObjectKeys(obj?: PresetRanges): string[] {\n    return obj ? Object.keys(obj) : [];\n  }\n\n  show(partType: RangePartType): boolean {\n    const hide = this.showTime && this.isRange && this.datePickerService.activeInput !== partType;\n    return !hide;\n  }\n\n  private clearHoverValue(): void {\n    this.hoverValue = [];\n  }\n\n  private buildTimeOptions(): void {\n    if (this.showTime) {\n      const showTime = typeof this.showTime === 'object' ? this.showTime : {};\n      if (this.isRange) {\n        const value = this.datePickerService.value as CandyDate[];\n        this.timeOptions = [\n          this.overrideTimeOptions(showTime, value[0], 'start'),\n          this.overrideTimeOptions(showTime, value[1], 'end')\n        ];\n      } else {\n        this.timeOptions = this.overrideTimeOptions(showTime, this.datePickerService.value as CandyDate);\n      }\n    } else {\n      this.timeOptions = null;\n    }\n  }\n\n  private overrideTimeOptions(\n    origin: SupportTimeOptions,\n    value: CandyDate,\n    partial?: DisabledTimePartial\n  ): SupportTimeOptions {\n    let disabledTimeFn;\n    if (partial) {\n      disabledTimeFn = partial === 'start' ? this.disabledStartTime : this.disabledEndTime;\n    } else {\n      disabledTimeFn = this.disabledTime;\n    }\n    return { ...origin, ...getTimeConfig(value, disabledTimeFn) };\n  }\n\n  private overrideHms(newValue: CandyDate | null, oldValue: CandyDate | null): CandyDate {\n    newValue = newValue || new CandyDate();\n    oldValue = oldValue || new CandyDate();\n    return oldValue.setHms(newValue.getHours(), newValue.getMinutes(), newValue.getSeconds());\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 { Direction, Directionality } from '@angular/cdk/bidi';\nimport { ESCAPE } from '@angular/cdk/keycodes';\nimport {\n  CdkConnectedOverlay,\n  CdkOverlayOrigin,\n  ConnectedOverlayPositionChange,\n  ConnectionPositionPair,\n  HorizontalConnectionPos,\n  VerticalConnectionPos\n} from '@angular/cdk/overlay';\nimport { Platform } from '@angular/cdk/platform';\nimport { DOCUMENT, NgStyle, NgTemplateOutlet } from '@angular/common';\nimport {\n  AfterViewInit,\n  booleanAttribute,\n  ChangeDetectionStrategy,\n  ChangeDetectorRef,\n  Component,\n  ElementRef,\n  EventEmitter,\n  forwardRef,\n  inject,\n  Input,\n  NgZone,\n  OnChanges,\n  OnInit,\n  Output,\n  QueryList,\n  Renderer2,\n  SimpleChanges,\n  TemplateRef,\n  ViewChild,\n  ViewChildren,\n  ViewEncapsulation\n} from '@angular/core';\nimport { ControlValueAccessor, FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { fromEvent, of as observableOf } from 'rxjs';\nimport { distinctUntilChanged, map, takeUntil, withLatestFrom } from 'rxjs/operators';\n\nimport { NzResizeObserver } from 'ng-zorro-antd/cdk/resize-observer';\nimport { slideMotion } from 'ng-zorro-antd/core/animation';\nimport { NzConfigKey, NzConfigService, WithConfig } from 'ng-zorro-antd/core/config';\nimport { NzFormNoStatusService, NzFormPatchModule, NzFormStatusService } from 'ng-zorro-antd/core/form';\nimport { NzNoAnimationDirective } from 'ng-zorro-antd/core/no-animation';\nimport { NzOutletModule } from 'ng-zorro-antd/core/outlet';\nimport { DATE_PICKER_POSITION_MAP, DEFAULT_DATE_PICKER_POSITIONS, NzOverlayModule } from 'ng-zorro-antd/core/overlay';\nimport { NzDestroyService } from 'ng-zorro-antd/core/services';\nimport { CandyDate, cloneDate, CompatibleValue, wrongSortOrder } from 'ng-zorro-antd/core/time';\nimport {\n  BooleanInput,\n  FunctionProp,\n  NgClassInterface,\n  NzSafeAny,\n  NzStatus,\n  NzValidateStatus,\n  OnChangeType,\n  OnTouchedType\n} from 'ng-zorro-antd/core/types';\nimport { getStatusClassNames, toBoolean, valueFunctionProp } from 'ng-zorro-antd/core/util';\nimport {\n  DateHelperService,\n  NzDatePickerI18nInterface,\n  NzDatePickerLangI18nInterface,\n  NzI18nService\n} from 'ng-zorro-antd/i18n';\nimport { NzIconModule } from 'ng-zorro-antd/icon';\n\nimport { DatePickerService } from './date-picker.service';\nimport { DateRangePopupComponent } from './date-range-popup.component';\nimport {\n  CompatibleDate,\n  DisabledTimeFn,\n  NzDateMode,\n  NzPanelChangeType,\n  PresetRanges,\n  RangePartType,\n  SupportTimeOptions\n} from './standard-types';\nimport { PREFIX_CLASS } from './util';\n\nconst POPUP_STYLE_PATCH = { position: 'relative' }; // Aim to override antd's style to support overlay's position strategy (position:absolute will cause it not working because the overlay can't get the height/width of it's content)\nconst NZ_CONFIG_MODULE_NAME: NzConfigKey = 'datePicker';\n\nexport type NzDatePickerSizeType = 'large' | 'default' | 'small';\nexport type NzPlacement = 'bottomLeft' | 'bottomRight' | 'topLeft' | 'topRight'; // todo: export it in public API\n\n/**\n * The base picker for all common APIs\n */\n@Component({\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  selector: 'nz-date-picker,nz-week-picker,nz-month-picker,nz-quarter-picker,nz-year-picker,nz-range-picker',\n  exportAs: 'nzDatePicker',\n  template: `\n    @if (!nzInline) {\n      @if (!isRange) {\n        <div class=\"{{ prefixCls }}-input\">\n          <input\n            #pickerInput\n            [attr.id]=\"nzId\"\n            [class.ant-input-disabled]=\"nzDisabled\"\n            [disabled]=\"nzDisabled\"\n            [readOnly]=\"nzInputReadOnly\"\n            [(ngModel)]=\"inputValue\"\n            placeholder=\"{{ getPlaceholder() }}\"\n            [size]=\"inputSize\"\n            autocomplete=\"off\"\n            (focus)=\"onFocus($event)\"\n            (focusout)=\"onFocusout($event)\"\n            (ngModelChange)=\"onInputChange($event)\"\n            (keyup.enter)=\"onKeyupEnter($event)\"\n          />\n          <ng-container *ngTemplateOutlet=\"tplRightRest\" />\n        </div>\n      } @else {\n        <div class=\"{{ prefixCls }}-input\">\n          <ng-container *ngTemplateOutlet=\"tplRangeInput; context: { partType: 'left' }\" />\n        </div>\n        <div #separatorElement class=\"{{ prefixCls }}-range-separator\">\n          <span class=\"{{ prefixCls }}-separator\">\n            <ng-container *nzStringTemplateOutlet=\"nzSeparator; let separator\">\n              @if (nzSeparator) {\n                {{ nzSeparator }}\n              } @else {\n                <span nz-icon nzType=\"swap-right\" nzTheme=\"outline\"></span>\n              }\n            </ng-container>\n          </span>\n        </div>\n        <div class=\"{{ prefixCls }}-input\">\n          <ng-container *ngTemplateOutlet=\"tplRangeInput; context: { partType: 'right' }\" />\n        </div>\n        <ng-container *ngTemplateOutlet=\"tplRightRest\" />\n      }\n    } @else {\n      <ng-template [ngTemplateOutlet]=\"inlineMode\" />\n    }\n    <!-- Input for Range ONLY -->\n    <ng-template #tplRangeInput let-partType=\"partType\">\n      <input\n        #rangePickerInput\n        [attr.id]=\"nzId\"\n        [disabled]=\"nzDisabled\"\n        [readOnly]=\"nzInputReadOnly\"\n        [size]=\"inputSize\"\n        autocomplete=\"off\"\n        (click)=\"onClickInputBox($event)\"\n        (focusout)=\"onFocusout($event)\"\n        (focus)=\"onFocus($event, partType)\"\n        (keyup.enter)=\"onKeyupEnter($event)\"\n        [(ngModel)]=\"inputValue[datePickerService.getActiveIndex(partType)]\"\n        (ngModelChange)=\"onInputChange($event)\"\n        placeholder=\"{{ getPlaceholder(partType) }}\"\n      />\n    </ng-template>\n\n    <!-- Right operator icons -->\n    <ng-template #tplRightRest>\n      <div class=\"{{ prefixCls }}-active-bar\" [ngStyle]=\"activeBarStyle\"></div>\n      @if (showClear) {\n        <span class=\"{{ prefixCls }}-clear\" (click)=\"onClickClear($event)\">\n          <span nz-icon nzType=\"close-circle\" nzTheme=\"fill\"></span>\n        </span>\n      }\n\n      <span class=\"{{ prefixCls }}-suffix\">\n        <ng-container *nzStringTemplateOutlet=\"nzSuffixIcon; let suffixIcon\">\n          <span nz-icon [nzType]=\"suffixIcon\"></span>\n        </ng-container>\n        @if (hasFeedback && !!status) {\n          <nz-form-item-feedback-icon [status]=\"status\" />\n        }\n      </span>\n    </ng-template>\n\n    <ng-template #inlineMode>\n      <div\n        class=\"{{ prefixCls }}-dropdown {{ nzDropdownClassName }}\"\n        [class.ant-picker-dropdown-rtl]=\"dir === 'rtl'\"\n        [class.ant-picker-dropdown-placement-bottomLeft]=\"currentPositionY === 'bottom' && currentPositionX === 'start'\"\n        [class.ant-picker-dropdown-placement-topLeft]=\"currentPositionY === 'top' && currentPositionX === 'start'\"\n        [class.ant-picker-dropdown-placement-bottomRight]=\"currentPositionY === 'bottom' && currentPositionX === 'end'\"\n        [class.ant-picker-dropdown-placement-topRight]=\"currentPositionY === 'top' && currentPositionX === 'end'\"\n        [class.ant-picker-dropdown-range]=\"isRange\"\n        [class.ant-picker-active-left]=\"datePickerService.activeInput === 'left'\"\n        [class.ant-picker-active-right]=\"datePickerService.activeInput === 'right'\"\n        [ngStyle]=\"nzPopupStyle\"\n      >\n        <date-range-popup\n          [isRange]=\"isRange\"\n          [inline]=\"nzInline\"\n          [defaultPickerValue]=\"nzDefaultPickerValue\"\n          [showWeek]=\"nzShowWeekNumber || nzMode === 'week'\"\n          [panelMode]=\"panelMode\"\n          (panelModeChange)=\"onPanelModeChange($event)\"\n          (calendarChange)=\"onCalendarChange($event)\"\n          [locale]=\"nzLocale?.lang!\"\n          [showToday]=\"nzMode === 'date' && nzShowToday && !isRange && !nzShowTime\"\n          [showNow]=\"nzMode === 'date' && nzShowNow && !isRange && !!nzShowTime\"\n          [showTime]=\"nzShowTime\"\n          [dateRender]=\"nzDateRender\"\n          [disabledDate]=\"nzDisabledDate\"\n          [disabledTime]=\"nzDisabledTime\"\n          [extraFooter]=\"extraFooter\"\n          [ranges]=\"nzRanges\"\n          [dir]=\"dir\"\n          (resultOk)=\"onResultOk()\"\n        />\n      </div>\n    </ng-template>\n\n    <!-- Overlay -->\n    <ng-template\n      cdkConnectedOverlay\n      nzConnectedOverlay\n      [cdkConnectedOverlayHasBackdrop]=\"nzBackdrop\"\n      [cdkConnectedOverlayOrigin]=\"origin\"\n      [cdkConnectedOverlayOpen]=\"realOpenState\"\n      [cdkConnectedOverlayPositions]=\"overlayPositions\"\n      [cdkConnectedOverlayTransformOriginOn]=\"'.ant-picker-wrapper'\"\n      (positionChange)=\"onPositionChange($event)\"\n      (detach)=\"close()\"\n      (overlayKeydown)=\"onOverlayKeydown($event)\"\n    >\n      <div\n        class=\"ant-picker-wrapper\"\n        [nzNoAnimation]=\"!!noAnimation?.nzNoAnimation\"\n        [@slideMotion]=\"'enter'\"\n        [style.position]=\"'relative'\"\n      >\n        <ng-container *ngTemplateOutlet=\"inlineMode\"></ng-container>\n      </div>\n    </ng-template>\n  `,\n  host: {\n    '[class.ant-picker]': `true`,\n    '[class.ant-picker-range]': `isRange`,\n    '[class.ant-picker-large]': `nzSize === 'large'`,\n    '[class.ant-picker-small]': `nzSize === 'small'`,\n    '[class.ant-picker-disabled]': `nzDisabled`,\n    '[class.ant-picker-rtl]': `dir === 'rtl'`,\n    '[class.ant-picker-borderless]': `nzBorderless`,\n    '[class.ant-picker-inline]': `nzInline`,\n    '(click)': 'onClickInputBox($event)'\n  },\n  providers: [\n    NzDestroyService,\n    DatePickerService,\n    {\n      provide: NG_VALUE_ACCESSOR,\n      multi: true,\n      useExisting: forwardRef(() => NzDatePickerComponent)\n    }\n  ],\n  animations: [slideMotion],\n  imports: [\n    FormsModule,\n    NgTemplateOutlet,\n    NzOutletModule,\n    NzIconModule,\n    NgStyle,\n    NzFormPatchModule,\n    DateRangePopupComponent,\n    CdkConnectedOverlay,\n    NzOverlayModule,\n    NzNoAnimationDirective\n  ],\n  standalone: true\n})\nexport class NzDatePickerComponent implements OnInit, OnChanges, AfterViewInit, ControlValueAccessor {\n  readonly _nzModuleName: NzConfigKey = NZ_CONFIG_MODULE_NAME;\n\n  static ngAcceptInputType_nzShowTime: BooleanInput | SupportTimeOptions | null | undefined;\n  static ngAcceptInputType_nzMode: NzDateMode | string;\n\n  isRange: boolean = false; // Indicate whether the value is a range value\n  extraFooter?: TemplateRef<NzSafeAny> | string;\n  dir: Direction = 'ltr';\n\n  // status\n  statusCls: NgClassInterface = {};\n  status: NzValidateStatus = '';\n  hasFeedback: boolean = false;\n\n  public panelMode: NzDateMode | NzDateMode[] = 'date';\n  private isCustomPlaceHolder: boolean = false;\n  private isCustomFormat: boolean = false;\n  private showTime: SupportTimeOptions | boolean = false;\n  private isNzDisableFirstChange: boolean = true;\n  // --- Common API\n  @Input({ transform: booleanAttribute }) nzAllowClear: boolean = true;\n  @Input({ transform: booleanAttribute }) nzAutoFocus: boolean = false;\n  @Input({ transform: booleanAttribute }) nzDisabled: boolean = false;\n  @Input({ transform: booleanAttribute }) nzBorderless: boolean = false;\n  @Input({ transform: booleanAttribute }) nzInputReadOnly: boolean = false;\n  @Input({ transform: booleanAttribute }) nzInline: boolean = false;\n  @Input({ transform: booleanAttribute }) nzOpen?: boolean;\n  @Input() nzDisabledDate?: (d: Date) => boolean;\n  @Input() nzLocale!: NzDatePickerI18nInterface;\n  @Input() nzPlaceHolder: string | string[] = '';\n  @Input() nzPopupStyle: object = POPUP_STYLE_PATCH;\n  @Input() nzDropdownClassName?: string;\n  @Input() nzSize: NzDatePickerSizeType = 'default';\n  @Input() nzStatus: NzStatus = '';\n  @Input() nzFormat!: string;\n  @Input() nzDateRender?: TemplateRef<NzSafeAny> | string | FunctionProp<TemplateRef<Date> | string>;\n  @Input() nzDisabledTime?: DisabledTimeFn;\n  @Input() nzRenderExtraFooter?: TemplateRef<NzSafeAny> | string | FunctionProp<TemplateRef<NzSafeAny> | string>;\n  @Input({ transform: booleanAttribute }) nzShowToday: boolean = true;\n  @Input() nzMode: NzDateMode = 'date';\n  @Input({ transform: booleanAttribute }) nzShowNow: boolean = true;\n  @Input() nzRanges?: PresetRanges;\n  @Input() nzDefaultPickerValue: CompatibleDate | null = null;\n  @Input() @WithConfig() nzSeparator?: string | TemplateRef<NzSafeAny> = undefined;\n  @Input() @WithConfig() nzSuffixIcon: string | TemplateRef<NzSafeAny> = 'calendar';\n  @Input() @WithConfig() nzBackdrop = false;\n  @Input() nzId: string | null = null;\n  @Input() nzPlacement: NzPlacement = 'bottomLeft';\n  @Input({ transform: booleanAttribute }) nzShowWeekNumber: boolean = false;\n\n  @Output() readonly nzOnPanelChange = new EventEmitter<NzPanelChangeType>();\n  @Output() readonly nzOnCalendarChange = new EventEmitter<Array<Date | null>>();\n  @Output() readonly nzOnOk = new EventEmitter<CompatibleDate | null>();\n  @Output() readonly nzOnOpenChange = new EventEmitter<boolean>();\n\n  @Input() get nzShowTime(): SupportTimeOptions | boolean {\n    return this.showTime;\n  }\n\n  set nzShowTime(value: SupportTimeOptions | boolean) {\n    this.showTime = typeof value === 'object' ? value : toBoolean(value);\n  }\n\n  // ------------------------------------------------------------------------\n  // Input API Start\n  // ------------------------------------------------------------------------\n  @ViewChild(CdkConnectedOverlay, { static: false }) cdkConnectedOverlay?: CdkConnectedOverlay;\n  @ViewChild(DateRangePopupComponent, { static: false }) panel!: DateRangePopupComponent;\n  @ViewChild('separatorElement', { static: false }) separatorElement?: ElementRef;\n  @ViewChild('pickerInput', { static: false }) pickerInput?: ElementRef<HTMLInputElement>;\n  @ViewChildren('rangePickerInput') rangePickerInputs?: QueryList<ElementRef<HTMLInputElement>>;\n\n  private document: Document = inject(DOCUMENT);\n  origin: CdkOverlayOrigin;\n  inputSize: number = 12;\n  inputWidth?: number;\n  prefixCls = PREFIX_CLASS;\n  inputValue!: NzSafeAny;\n  activeBarStyle: object = {};\n  overlayOpen: boolean = false; // Available when \"nzOpen\" = undefined\n  overlayPositions: ConnectionPositionPair[] = [...DEFAULT_DATE_PICKER_POSITIONS];\n  currentPositionX: HorizontalConnectionPos = 'start';\n  currentPositionY: VerticalConnectionPos = 'bottom';\n\n  get realOpenState(): boolean {\n    // The value that really decide the open state of overlay\n    return this.isOpenHandledByUser() ? !!this.nzOpen : this.overlayOpen;\n  }\n\n  ngAfterViewInit(): void {\n    if (this.nzAutoFocus) {\n      this.focus();\n    }\n\n    if (this.isRange && this.platform.isBrowser) {\n      this.nzResizeObserver\n        .observe(this.elementRef)\n        .pipe(takeUntil(this.destroy$))\n        .subscribe(() => {\n          this.updateInputWidthAndArrowLeft();\n        });\n    }\n\n    this.datePickerService.inputPartChange$.pipe(takeUntil(this.destroy$)).subscribe(partType => {\n      if (partType) {\n        this.datePickerService.activeInput = partType;\n      }\n      this.focus();\n      this.updateInputWidthAndArrowLeft();\n    });\n\n    if (this.platform.isBrowser) {\n      this.ngZone.runOutsideAngular(() =>\n        // prevent mousedown event to trigger focusout event when click in date picker\n        // see: https://github.com/NG-ZORRO/ng-zorro-antd/issues/7450\n        fromEvent(this.elementRef.nativeElement, 'mousedown')\n          .pipe(takeUntil(this.destroy$))\n          .subscribe(event => {\n            if ((event.target as HTMLInputElement).tagName.toLowerCase() !== 'input') {\n              event.preventDefault();\n            }\n          })\n      );\n    }\n  }\n\n  updateInputWidthAndArrowLeft(): void {\n    this.inputWidth = this.rangePickerInputs?.first?.nativeElement.offsetWidth || 0;\n\n    const baseStyle = { position: 'absolute', width: `${this.inputWidth}px` };\n    this.datePickerService.arrowLeft =\n      this.datePickerService.activeInput === 'left'\n        ? 0\n        : this.inputWidth + this.separatorElement?.nativeElement.offsetWidth || 0;\n\n    if (this.dir === 'rtl') {\n      this.activeBarStyle = { ...baseStyle, right: `${this.datePickerService.arrowLeft}px` };\n    } else {\n      this.activeBarStyle = { ...baseStyle, left: `${this.datePickerService.arrowLeft}px` };\n    }\n\n    this.cdr.markForCheck();\n  }\n\n  getInput(partType?: RangePartType): HTMLInputElement | undefined {\n    if (this.nzInline) {\n      return undefined;\n    }\n    return this.isRange\n      ? partType === 'left'\n        ? this.rangePickerInputs?.first.nativeElement\n        : this.rangePickerInputs?.last.nativeElement\n      : this.pickerInput!.nativeElement;\n  }\n\n  focus(): void {\n    const activeInputElement = this.getInput(this.datePickerService.activeInput);\n    if (this.document.activeElement !== activeInputElement) {\n      activeInputElement?.focus();\n    }\n  }\n\n  onFocus(event: FocusEvent, partType?: RangePartType): void {\n    event.preventDefault();\n    if (partType) {\n      this.datePickerService.inputPartChange$.next(partType);\n    }\n    this.renderClass(true);\n  }\n\n  // blur event has not the relatedTarget in IE11, use focusout instead.\n  onFocusout(event: FocusEvent): void {\n    event.preventDefault();\n    this.onTouchedFn();\n    if (!this.elementRef.nativeElement.contains(<Node>event.relatedTarget)) {\n      this.checkAndClose();\n    }\n    this.renderClass(false);\n  }\n\n  // Show overlay content\n  open(): void {\n    if (this.nzInline) {\n      return;\n    }\n    if (!this.realOpenState && !this.nzDisabled) {\n      this.updateInputWidthAndArrowLeft();\n      this.overlayOpen = true;\n      this.nzOnOpenChange.emit(true);\n      this.focus();\n      this.cdr.markForCheck();\n    }\n  }\n\n  close(): void {\n    if (this.nzInline) {\n      return;\n    }\n    if (this.realOpenState) {\n      this.overlayOpen = false;\n      this.nzOnOpenChange.emit(false);\n    }\n  }\n\n  get showClear(): boolean {\n    return !this.nzDisabled && !this.isEmptyValue(this.datePickerService.value) && this.nzAllowClear;\n  }\n\n  checkAndClose(): void {\n    if (!this.realOpenState) {\n      return;\n    }\n\n    if (this.panel.isAllowed(this.datePickerService.value!, true)) {\n      if (Array.isArray(this.datePickerService.value) && wrongSortOrder(this.datePickerService.value)) {\n        const index = this.datePickerService.getActiveIndex();\n        const value = this.datePickerService.value[index];\n        this.panel.changeValueFromSelect(value!, true);\n        return;\n      }\n      this.updateInputValue();\n      this.datePickerService.emitValue$.next();\n    } else {\n      this.datePickerService.setValue(this.datePickerService.initialValue!);\n      this.close();\n    }\n  }\n\n  onClickInputBox(event: MouseEvent): void {\n    event.stopPropagation();\n    this.focus();\n    if (!this.isOpenHandledByUser()) {\n      this.open();\n    }\n  }\n\n  onOverlayKeydown(event: KeyboardEvent): void {\n    if (event.keyCode === ESCAPE) {\n      this.datePickerService.initValue();\n    }\n  }\n\n  // NOTE: A issue here, the first time position change, the animation will not be triggered.\n  // Because the overlay's \"positionChange\" event is emitted after the content's full shown up.\n  // All other components like \"nz-dropdown\" which depends on overlay also has the same issue.\n  // See: https://github.com/NG-ZORRO/ng-zorro-antd/issues/1429\n  onPositionChange(position: ConnectedOverlayPositionChange): void {\n    this.currentPositionX = position.connectionPair.originX;\n    this.currentPositionY = position.connectionPair.originY;\n    this.cdr.detectChanges(); // Take side-effects to position styles\n  }\n\n  onClickClear(event: MouseEvent): void {\n    event.preventDefault();\n    event.stopPropagation();\n\n    this.datePickerService.initValue(true);\n    this.datePickerService.emitValue$.next();\n  }\n\n  updateInputValue(): void {\n    const newValue = this.datePickerService.value;\n    if (this.isRange) {\n      this.inputValue = newValue ? (newValue as CandyDate[]).map(v => this.formatValue(v)) : ['', ''];\n    } else {\n      this.inputValue = this.formatValue(newValue as CandyDate);\n    }\n    this.cdr.markForCheck();\n  }\n\n  formatValue(value: CandyDate): string {\n    return this.dateHelper.format(value && (value as CandyDate).nativeDate, this.nzFormat);\n  }\n\n  onInputChange(value: string, isEnter: boolean = false): void {\n    /**\n     * in IE11 focus/blur will trigger ngModelChange if placeholder changes,\n     * so we forbidden IE11 to open panel through input change\n     */\n    if (\n      !this.platform.TRIDENT &&\n      this.document.activeElement === this.getInput(this.datePickerService.activeInput) &&\n      !this.realOpenState\n    ) {\n      this.open();\n      return;\n    }\n\n    const date = this.checkValidDate(value);\n    // Can only change date when it's open\n    if (date && this.realOpenState) {\n      this.panel.changeValueFromSelect(date, isEnter);\n    }\n  }\n\n  onKeyupEnter(event: Event): void {\n    this.onInputChange((event.target as HTMLInputElement).value, true);\n  }\n\n  private checkValidDate(value: string): CandyDate | null {\n    const date = new CandyDate(this.dateHelper.parseDate(value, this.nzFormat));\n\n    if (!date.isValid() || value !== this.dateHelper.format(date.nativeDate, this.nzFormat)) {\n      return null;\n    }\n\n    return date;\n  }\n\n  getPlaceholder(partType?: RangePartType): string {\n    return this.isRange\n      ? this.nzPlaceHolder[this.datePickerService.getActiveIndex(partType!)]\n      : (this.nzPlaceHolder as string);\n  }\n\n  isEmptyValue(value: CompatibleValue): boolean {\n    if (value === null) {\n      return true;\n    } else if (this.isRange) {\n      return !value || !Array.isArray(value) || value.every(val => !val);\n    } else {\n      return !value;\n    }\n  }\n\n  // Whether open state is permanently controlled by user himself\n  isOpenHandledByUser(): boolean {\n    return this.nzOpen !== undefined;\n  }\n\n  noAnimation = inject(NzNoAnimationDirective, { host: true, optional: true });\n  private nzFormStatusService = inject(NzFormStatusService, { optional: true });\n  private nzFormNoStatusService = inject(NzFormNoStatusService, { optional: true });\n\n  // ------------------------------------------------------------------------\n  // Input API End\n  // ------------------------------------------------------------------------\n\n  constructor(\n    public nzConfigService: NzConfigService,\n    public datePickerService: DatePickerService,\n    protected i18n: NzI18nService,\n    protected cdr: ChangeDetectorRef,\n    private renderer: Renderer2,\n    private ngZone: NgZone,\n    private elementRef: ElementRef<HTMLElement>,\n    private dateHelper: DateHelperService,\n    private nzResizeObserver: NzResizeObserver,\n    private platform: Platform,\n    private destroy$: NzDestroyService,\n    private directionality: Directionality\n  ) {\n    this.origin = new CdkOverlayOrigin(this.elementRef);\n  }\n\n  ngOnInit(): void {\n    this.nzFormStatusService?.formStatusChanges\n      .pipe(\n        distinctUntilChanged((pre, cur) => {\n          return pre.status === cur.status && pre.hasFeedback === cur.hasFeedback;\n        }),\n        withLatestFrom(this.nzFormNoStatusService ? this.nzFormNoStatusService.noFormStatus : observableOf(false)),\n        map(([{ status, hasFeedback }, noStatus]) => ({ status: noStatus ? '' : status, hasFeedback })),\n        takeUntil(this.destroy$)\n      )\n      .subscribe(({ status, hasFeedback }) => {\n        this.setStatusStyles(status, hasFeedback);\n      });\n\n    // Subscribe the every locale change if the nzLocale is not handled by user\n    if (!this.nzLocale) {\n      this.i18n.localeChange.pipe(takeUntil(this.destroy$)).subscribe(() => this.setLocale());\n    }\n\n    // Default value\n    this.datePickerService.isRange = this.isRange;\n    this.datePickerService.initValue(true);\n    this.datePickerService.emitValue$.pipe(takeUntil(this.destroy$)).subscribe(() => {\n      const granularityComparaison = this.showTime ? 'second' : 'day';\n      const value = this.datePickerService.value;\n      const datePickerPreviousValue = this.datePickerService.initialValue;\n\n      // Check if the value has change for a simple datepicker, let us to avoid notify the control for nothing\n      if (\n        !this.isRange &&\n        (value as CandyDate)?.isSame((datePickerPreviousValue as CandyDate)?.nativeDate, granularityComparaison)\n      ) {\n        this.onTouchedFn();\n        return this.close();\n      }\n\n      // check if the value has change for a range picker, let us to avoid notify the control for nothing\n      if (this.isRange) {\n        const [previousStartDate, previousEndDate] = datePickerPreviousValue as CandyDate[];\n        const [currentStartDate, currentEndDate] = value as CandyDate[];\n        if (\n          previousStartDate?.isSame(currentStartDate?.nativeDate, granularityComparaison) &&\n          previousEndDate?.isSame(currentEndDate?.nativeDate, granularityComparaison)\n        ) {\n          this.onTouchedFn();\n          return this.close();\n        }\n      }\n\n      this.datePickerService.initialValue = cloneDate(value);\n      if (this.isRange) {\n        const vAsRange = value as CandyDate[];\n        if (vAsRange.length) {\n          this.onChangeFn([vAsRange[0]?.nativeDate ?? null, vAsRange[1]?.nativeDate ?? null]);\n        } else {\n          this.onChangeFn([]);\n        }\n      } else {\n        if (value) {\n          this.onChangeFn((value as CandyDate).nativeDate);\n        } else {\n          this.onChangeFn(null);\n        }\n      }\n      this.onTouchedFn();\n      // When value emitted, overlay will be closed\n      this.close();\n    });\n\n    this.directionality.change?.pipe(takeUntil(this.destroy$)).subscribe((direction: Direction) => {\n      this.dir = direction;\n      this.cdr.detectChanges();\n    });\n    this.dir = this.directionality.value;\n    this.inputValue = this.isRange ? ['', ''] : '';\n    this.setModeAndFormat();\n\n    this.datePickerService.valueChange$.pipe(takeUntil(this.destroy$)).subscribe(() => {\n      this.updateInputValue();\n    });\n  }\n\n  ngOnChanges(changes: SimpleChanges): void {\n    const { nzStatus, nzPlacement } = changes;\n    if (changes.nzPopupStyle) {\n      // Always assign the popup style patch\n      this.nzPopupStyle = this.nzPopupStyle ? { ...this.nzPopupStyle, ...POPUP_STYLE_PATCH } : POPUP_STYLE_PATCH;\n    }\n\n    // Mark as customized placeholder by user once nzPlaceHolder assigned at the first time\n    if (changes.nzPlaceHolder?.currentValue) {\n      this.isCustomPlaceHolder = true;\n    }\n\n    if (changes.nzFormat?.currentValue) {\n      this.isCustomFormat = true;\n    }\n\n    if (changes.nzLocale) {\n      // The nzLocale is currently handled by user\n      this.setDefaultPlaceHolder();\n    }\n\n    if (changes.nzRenderExtraFooter) {\n      this.extraFooter = valueFunctionProp(this.nzRenderExtraFooter!);\n    }\n\n    if (changes.nzMode) {\n      this.setDefaultPlaceHolder();\n      this.setModeAndFormat();\n    }\n\n    if (nzStatus) {\n      this.setStatusStyles(this.nzStatus, this.hasFeedback);\n    }\n\n    if (nzPlacement) {\n      this.setPlacement(this.nzPlacement);\n    }\n  }\n\n  setModeAndFormat(): void {\n    const inputFormats: { [key in NzDateMode]?: string } = {\n      year: 'yyyy',\n      quarter: 'yyyy-[Q]Q',\n      month: 'yyyy-MM',\n      week: 'YYYY-ww',\n      date: this.nzShowTime ? 'yyyy-MM-dd HH:mm:ss' : 'yyyy-MM-dd'\n    };\n\n    if (!this.nzMode) {\n      this.nzMode = 'date';\n    }\n\n    this.panelMode = this.isRange ? [this.nzMode, this.nzMode] : this.nzMode;\n\n    // Default format when it's empty\n    if (!this.isCustomFormat) {\n      this.nzFormat = inputFormats[this.nzMode as NzDateMode]!;\n    }\n\n    this.inputSize = Math.max(10, this.nzFormat.length) + 2;\n    this.updateInputValue();\n  }\n\n  /**\n   * Triggered when overlayOpen changes (different with realOpenState)\n   *\n   * @param open The overlayOpen in picker component\n   */\n  onOpenChange(open: boolean): void {\n    this.nzOnOpenChange.emit(open);\n  }\n\n  // ------------------------------------------------------------------------\n  // | Control value accessor implements\n  // ------------------------------------------------------------------------\n\n  // NOTE: onChangeFn/onTouchedFn will not be assigned if user not use as ngModel\n  onChangeFn: OnChangeType = () => void 0;\n  onTouchedFn: OnTouchedType = () => void 0;\n\n  writeValue(value: CompatibleDate): void {\n    this.setValue(value);\n    this.cdr.markForCheck();\n  }\n\n  registerOnChange(fn: OnChangeType): void {\n    this.onChangeFn = fn;\n  }\n\n  registerOnTouched(fn: OnTouchedType): void {\n    this.onTouchedFn = fn;\n  }\n\n  setDisabledState(isDisabled: boolean): void {\n    this.nzDisabled = (this.isNzDisableFirstChange && this.nzDisabled) || isDisabled;\n    this.cdr.markForCheck();\n    this.isNzDisableFirstChange = false;\n  }\n\n  // ------------------------------------------------------------------------\n  // | Internal methods\n  // ------------------------------------------------------------------------\n\n  // Reload locale from i18n with side effects\n  private setLocale(): void {\n    this.nzLocale = this.i18n.getLocaleData('DatePicker', {});\n    this.setDefaultPlaceHolder();\n    this.cdr.markForCheck();\n  }\n\n  private setDefaultPlaceHolder(): void {\n    if (!this.isCustomPlaceHolder && this.nzLocale) {\n      const defaultPlaceholder: { [key in NzDateMode]?: string } = {\n        year: this.getPropertyOfLocale('yearPlaceholder'),\n        quarter: this.getPropertyOfLocale('quarterPlaceholder'),\n        month: this.getPropertyOfLocale('monthPlaceholder'),\n        week: this.getPropertyOfLocale('weekPlaceholder'),\n        date: this.getPropertyOfLocale('placeholder')\n      };\n\n      const defaultRangePlaceholder: { [key in NzDateMode]?: string[] } = {\n        year: this.getPropertyOfLocale('rangeYearPlaceholder'),\n        quarter: this.getPropertyOfLocale('rangeQuarterPlaceholder'),\n        month: this.getPropertyOfLocale('rangeMonthPlaceholder'),\n        week: this.getPropertyOfLocale('rangeWeekPlaceholder'),\n        date: this.getPropertyOfLocale('rangePlaceholder')\n      };\n\n      this.nzPlaceHolder = this.isRange\n        ? defaultRangePlaceholder[this.nzMode as NzDateMode]!\n        : defaultPlaceholder[this.nzMode as NzDateMode]!;\n    }\n  }\n\n  private getPropertyOfLocale<T extends keyof NzDatePickerLangI18nInterface>(\n    type: T\n  ): NzDatePickerLangI18nInterface[T] {\n    return this.nzLocale.lang[type] || this.i18n.getLocaleData(`DatePicker.lang.${type}`);\n  }\n\n  // Safe way of setting value with default\n  private setValue(value: CompatibleDate): void {\n    const newValue = this.datePickerService.makeValue(value);\n    this.datePickerService.setValue(newValue);\n    this.datePickerService.initialValue = cloneDate(newValue);\n    this.cdr.detectChanges();\n  }\n\n  renderClass(value: boolean): void {\n    // TODO: avoid autoFocus cause change after checked error\n    if (value) {\n      this.renderer.addClass(this.elementRef.nativeElement, 'ant-picker-focused');\n    } else {\n      this.renderer.removeClass(this.elementRef.nativeElement, 'ant-picker-focused');\n    }\n  }\n\n  onPanelModeChange(panelChange: NzPanelChangeType): void {\n    this.nzOnPanelChange.emit(panelChange);\n  }\n\n  // Emit nzOnCalendarChange when select date by nz-range-picker\n  onCalendarChange(value: CompatibleValue): void {\n    if (this.isRange && Array.isArray(value)) {\n      const rangeValue = value.filter(x => x instanceof CandyDate).map(x => x!.nativeDate);\n      this.nzOnCalendarChange.emit(rangeValue);\n    }\n  }\n\n  onResultOk(): void {\n    if (this.isRange) {\n      const value = this.datePickerService.value as CandyDate[];\n      if (value.length) {\n        this.nzOnOk.emit([value[0]?.nativeDate || null, value[1]?.nativeDate || null]);\n      } else {\n        this.nzOnOk.emit([]);\n      }\n    } else {\n      if (this.datePickerService.value) {\n        this.nzOnOk.emit((this.datePickerService.value as CandyDate).nativeDate);\n      } else {\n        this.nzOnOk.emit(null);\n      }\n    }\n  }\n\n  // status\n  private setStatusStyles(status: NzValidateStatus, hasFeedback: boolean): void {\n    // set inner status\n    this.status = status;\n    this.hasFeedback = hasFeedback;\n    this.cdr.markForCheck();\n    // render status if nzStatus is set\n    this.statusCls = getStatusClassNames(this.prefixCls, status, hasFeedback);\n    Object.keys(this.statusCls).forEach(status => {\n      if (this.statusCls[status]) {\n        this.renderer.addClass(this.elementRef.nativeElement, status);\n      } else {\n        this.renderer.removeClass(this.elementRef.nativeElement, status);\n      }\n    });\n  }\n\n  private setPlacement(placement: NzPlacement): void {\n    const position: ConnectionPositionPair = DATE_PICKER_POSITION_MAP[placement];\n    this.overlayPositions = [position, ...DEFAULT_DATE_PICKER_POSITIONS];\n    this.currentPositionX = position.originX;\n    this.currentPositionY = position.originY;\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 { Directive, inject } from '@angular/core';\n\nimport { NzDatePickerComponent } from './date-picker.component';\n\n@Directive({\n  selector: 'nz-month-picker',\n  exportAs: 'nzMonthPicker',\n  standalone: true\n})\n// eslint-disable-next-line @angular-eslint/directive-class-suffix\nexport class NzMonthPickerComponent {\n  datePicker = inject(NzDatePickerComponent, { host: true });\n\n  constructor() {\n    this.datePicker.nzMode = 'month';\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 { Directive, inject } from '@angular/core';\n\nimport { NzDatePickerComponent } from './date-picker.component';\n\n@Directive({\n  selector: 'nz-quarter-picker',\n  exportAs: 'nzQuarterPicker',\n  standalone: true\n})\nexport class NzQuarterPickerComponent {\n  datePicker = inject(NzDatePickerComponent, { host: true });\n\n  constructor() {\n    this.datePicker.nzMode = 'quarter';\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 { Directive, inject } from '@angular/core';\n\nimport { NzDatePickerComponent } from './date-picker.component';\n\n@Directive({\n  selector: 'nz-range-picker',\n  exportAs: 'nzRangePicker',\n  standalone: true\n})\n// eslint-disable-next-line @angular-eslint/directive-class-suffix\nexport class NzRangePickerComponent {\n  datePicker = inject(NzDatePickerComponent, { host: true });\n\n  constructor() {\n    this.datePicker.isRange = true;\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 { Directive, inject } from '@angular/core';\n\nimport { NzDatePickerComponent } from './date-picker.component';\n\n@Directive({\n  selector: 'nz-week-picker',\n  exportAs: 'nzWeekPicker',\n  standalone: true\n})\n// eslint-disable-next-line @angular-eslint/directive-class-suffix\nexport class NzWeekPickerComponent {\n  datePicker = inject(NzDatePickerComponent, { host: true });\n\n  constructor() {\n    this.datePicker.nzMode = 'week';\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 { Directive, inject } from '@angular/core';\n\nimport { NzDatePickerComponent } from './date-picker.component';\n\n@Directive({\n  selector: 'nz-year-picker',\n  exportAs: 'nzYearPicker',\n  standalone: true\n})\n// eslint-disable-next-line @angular-eslint/directive-class-suffix\nexport class NzYearPickerComponent {\n  datePicker = inject(NzDatePickerComponent, { host: true });\n\n  constructor() {\n    this.datePicker.nzMode = 'year';\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 { NgModule } from '@angular/core';\n\nimport { CalendarFooterComponent } from './calendar-footer.component';\nimport { NzDatePickerComponent } from './date-picker.component';\nimport { DateRangePopupComponent } from './date-range-popup.component';\nimport { InnerPopupComponent } from './inner-popup.component';\nimport { NzMonthPickerComponent } from './month-picker.component';\nimport { NzQuarterPickerComponent } from './quarter-picker.component';\nimport { NzRangePickerComponent } from './range-picker.component';\nimport { NzWeekPickerComponent } from './week-picker.component';\nimport { NzYearPickerComponent } from './year-picker.component';\n\n@NgModule({\n  imports: [\n    NzDatePickerComponent,\n    NzMonthPickerComponent,\n    NzYearPickerComponent,\n    NzWeekPickerComponent,\n    NzRangePickerComponent,\n    CalendarFooterComponent,\n    InnerPopupComponent,\n    DateRangePopupComponent,\n    NzQuarterPickerComponent\n  ],\n  exports: [\n    NzDatePickerComponent,\n    NzRangePickerComponent,\n    NzMonthPickerComponent,\n    NzYearPickerComponent,\n    NzWeekPickerComponent,\n    NzQuarterPickerComponent\n  ]\n})\nexport class NzDatePickerModule {}\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 * from './standard-types';\nexport * from './util';\n\nexport { NzDatePickerModule } from './date-picker.module';\nexport { NzDatePickerComponent, NzDatePickerSizeType } from './date-picker.component';\nexport { NzRangePickerComponent } from './range-picker.component';\nexport { NzMonthPickerComponent } from './month-picker.component';\nexport { NzQuarterPickerComponent } from './quarter-picker.component';\nexport { NzWeekPickerComponent } from './week-picker.component';\nexport { NzYearPickerComponent } from './year-picker.component';\nexport { DatePickerService as ɵDatePickerService } from './date-picker.service';\nexport { DateRangePopupComponent as ɵDateRangePopupComponent } from './date-range-popup.component';\nexport { InnerPopupComponent as ɵInnerPopupComponent } from './inner-popup.component';\nexport { CalendarFooterComponent as ɵCalendarFooterComponent } from './calendar-footer.component';\n\nexport * from './lib/public-api';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.DateHeaderComponent","i2.DateTableComponent","i3.DecadeHeaderComponent","i4.DecadeTableComponent","i5.MonthHeaderComponent","i6.MonthTableComponent","i7.YearHeaderComponent","i8.YearTableComponent","i9.QuarterHeaderComponent","i10.QuarterTableComponent","i12","i1.DatePickerService","observableOf","i1","i2.DatePickerService","i3","i4"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;;AAGG;;ACHH;;;AAGG;AAMI,MAAM,YAAY,GAAG,aAAa;AAEzC,MAAM,mBAAmB,GAAuB;IAC9C,eAAe,GAAA;AACb,QAAA,OAAO,EAAE,CAAC;KACX;IACD,iBAAiB,GAAA;AACf,QAAA,OAAO,EAAE,CAAC;KACX;IACD,iBAAiB,GAAA;AACf,QAAA,OAAO,EAAE,CAAC;KACX;CACF,CAAC;AAEc,SAAA,aAAa,CAAC,KAAgB,EAAE,YAA6B,EAAA;AAC3E,IAAA,IAAI,kBAAkB,GAAG,YAAY,GAAG,YAAY,CAAC,KAAK,IAAI,KAAK,CAAC,UAAU,CAAC,GAAI,EAAyB,CAAC;AAC7G,IAAA,kBAAkB,GAAG;AACnB,QAAA,GAAG,mBAAmB;AACtB,QAAA,GAAG,kBAAkB;KACtB,CAAC;AACF,IAAA,OAAO,kBAAkB,CAAC;AAC5B,CAAC;AAEe,SAAA,mBAAmB,CAAC,KAAgB,EAAE,kBAAsC,EAAA;IAC1F,IAAI,WAAW,GAAG,KAAK,CAAC;IACxB,IAAI,KAAK,EAAE;AACT,QAAA,MAAM,IAAI,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC;AAC9B,QAAA,MAAM,OAAO,GAAG,KAAK,CAAC,UAAU,EAAE,CAAC;AACnC,QAAA,MAAM,OAAO,GAAG,KAAK,CAAC,UAAU,EAAE,CAAC;AACnC,QAAA,MAAM,aAAa,GAAG,kBAAkB,CAAC,eAAe,EAAE,CAAC;QAC3D,IAAI,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE;YACtC,MAAM,eAAe,GAAG,kBAAkB,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;YACnE,IAAI,eAAe,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE;gBAC3C,MAAM,eAAe,GAAG,kBAAkB,CAAC,iBAAiB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;gBAC5E,WAAW,GAAG,eAAe,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;aACvD;iBAAM;gBACL,WAAW,GAAG,IAAI,CAAC;aACpB;SACF;aAAM;YACL,WAAW,GAAG,IAAI,CAAC;SACpB;KACF;IACD,OAAO,CAAC,WAAW,CAAC;AACtB,CAAC;AAEe,SAAA,WAAW,CAAC,KAAgB,EAAE,YAA4B,EAAA;IACxE,MAAM,kBAAkB,GAAG,aAAa,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;AAC9D,IAAA,OAAO,mBAAmB,CAAC,KAAK,EAAE,kBAAkB,CAAC,CAAC;AACxD,CAAC;SAEe,aAAa,CAAC,KAAgB,EAAE,YAA6B,EAAE,YAA6B,EAAA;IAC1G,IAAI,CAAC,KAAK,EAAE;AACV,QAAA,OAAO,KAAK,CAAC;KACd;IACD,IAAI,YAAY,EAAE;AAChB,QAAA,IAAI,YAAY,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE;AAClC,YAAA,OAAO,KAAK,CAAC;SACd;KACF;IACD,IAAI,YAAY,EAAE;QAChB,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,YAAY,CAAC,EAAE;AACrC,YAAA,OAAO,KAAK,CAAC;SACd;KACF;AACD,IAAA,OAAO,IAAI,CAAC;AACd;;AC1EA;;;AAGG;AAEH;;;;;;;;;;AAUG;AACG,SAAU,iBAAiB,CAAC,MAAc,EAAA;AAC9C,IAAA,QACE,MAAM;QACN,MAAM;AACH,aAAA,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC;aAClB,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,EACrB;AACJ;;ACvBA;;;AAGG;MAuFU,uBAAuB,CAAA;AAqBlC,IAAA,WAAA,CAAoB,UAA6B,EAAA;QAA7B,IAAU,CAAA,UAAA,GAAV,UAAU,CAAmB;QAnBT,IAAS,CAAA,SAAA,GAAY,KAAK,CAAC;QAC3B,IAAO,CAAA,OAAA,GAAY,KAAK,CAAC;QACzB,IAAa,CAAA,aAAA,GAAY,KAAK,CAAC;QAC/B,IAAO,CAAA,OAAA,GAAY,KAAK,CAAC;QAEzB,IAAU,CAAA,UAAA,GAAY,KAAK,CAAC;QAG3D,IAAkB,CAAA,kBAAA,GAAkC,IAAI,CAAC;AAE/C,QAAA,IAAA,CAAA,OAAO,GAAG,IAAI,YAAY,EAAQ,CAAC;AACnC,QAAA,IAAA,CAAA,UAAU,GAAG,IAAI,YAAY,EAAa,CAAC;QAE9D,IAAS,CAAA,SAAA,GAAW,YAAY,CAAC;QACjC,IAAa,CAAA,aAAA,GAAG,aAAa,CAAC;QAC9B,IAAgB,CAAA,gBAAA,GAAG,gBAAgB,CAAC;QACpC,IAAe,CAAA,eAAA,GAAY,KAAK,CAAC;QACjC,IAAU,CAAA,UAAA,GAAW,EAAE,CAAC;KAE6B;AAErD,IAAA,WAAW,CAAC,OAAsB,EAAA;AAChC,QAAA,MAAM,GAAG,GAAS,IAAI,IAAI,EAAE,CAAC;AAC7B,QAAA,IAAI,OAAO,CAAC,YAAY,EAAE;AACxB,YAAA,IAAI,CAAC,eAAe,GAAG,CAAC,EAAE,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC;SACxE;AACD,QAAA,IAAI,OAAO,CAAC,MAAM,EAAE;;YAElB,MAAM,UAAU,GAAW,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;AACrE,YAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;SAC3D;KACF;IAED,YAAY,GAAA;AACV,QAAA,MAAM,GAAG,GAAc,IAAI,SAAS,EAAE,CAAC;AACvC,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC;KACnC;AAED,IAAA,IAAI,wBAAwB,GAAA;AAC1B,QAAA,OAAO,aAAa,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;KACxC;AAED,IAAA,IAAI,2BAA2B,GAAA;AAC7B,QAAA,OAAO,gBAAgB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;KAC3C;8GA9CU,uBAAuB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;kGAAvB,uBAAuB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,SAAA,EAAA,CAAA,WAAA,EAAA,WAAA,EAEd,gBAAgB,CAAA,EAAA,OAAA,EAAA,CAAA,SAAA,EAAA,SAAA,EAChB,gBAAgB,CAAA,EAAA,aAAA,EAAA,CAAA,eAAA,EAAA,eAAA,EAChB,gBAAgB,CAChB,EAAA,OAAA,EAAA,CAAA,SAAA,EAAA,SAAA,EAAA,gBAAgB,CAEhB,EAAA,UAAA,EAAA,CAAA,YAAA,EAAA,YAAA,EAAA,gBAAgB,CA/D1B,EAAA,YAAA,EAAA,cAAA,EAAA,WAAA,EAAA,aAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,EAAA,OAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,UAAA,EAAA,YAAA,EAAA,EAAA,QAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoDT,EACS,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,gBAAgB,mJAAE,cAAc,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,iCAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,SAAA,EAAA,UAAA,EAAA,WAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,SAAA,EAAA,QAAA,CAAA,EAAA,QAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,2BAAA,EAAA,QAAA,EAAA,qIAAA,EAAA,MAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2EAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;;2FAG/B,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBA9DnC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;oBACT,aAAa,EAAE,iBAAiB,CAAC,IAAI;oBACrC,eAAe,EAAE,uBAAuB,CAAC,MAAM;;AAE/C,oBAAA,QAAQ,EAAE,iBAAiB;AAC3B,oBAAA,QAAQ,EAAE,gBAAgB;AAC1B,oBAAA,QAAQ,EAAE,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAoDT,EAAA,CAAA;AACD,oBAAA,OAAO,EAAE,CAAC,gBAAgB,EAAE,cAAc,CAAC;AAC3C,oBAAA,UAAU,EAAE,IAAI;AACjB,iBAAA,CAAA;sFAEU,MAAM,EAAA,CAAA;sBAAd,KAAK;gBACkC,SAAS,EAAA,CAAA;sBAAhD,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAA;gBACE,OAAO,EAAA,CAAA;sBAA9C,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAA;gBACE,aAAa,EAAA,CAAA;sBAApD,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAA;gBACE,OAAO,EAAA,CAAA;sBAA9C,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAA;gBAEE,UAAU,EAAA,CAAA;sBAAjD,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAA;gBAC7B,YAAY,EAAA,CAAA;sBAApB,KAAK;gBACG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBACG,kBAAkB,EAAA,CAAA;sBAA1B,KAAK;gBAEa,OAAO,EAAA,CAAA;sBAAzB,MAAM;gBACY,UAAU,EAAA,CAAA;sBAA5B,MAAM;;;ACvGT;;;AAGG;MAUU,iBAAiB,CAAA;AAD9B,IAAA,WAAA,GAAA;QAKE,IAAW,CAAA,WAAA,GAAkB,MAAM,CAAC;QACpC,IAAS,CAAA,SAAA,GAAW,CAAC,CAAC;QACtB,IAAO,CAAA,OAAA,GAAG,KAAK,CAAC;AAEhB,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,aAAa,CAAkB,CAAC,CAAC,CAAC;AACrD,QAAA,IAAA,CAAA,UAAU,GAAG,IAAI,OAAO,EAAQ,CAAC;AACjC,QAAA,IAAA,CAAA,gBAAgB,GAAG,IAAI,OAAO,EAAwB,CAAC;AAsDxD,KAAA;IApDC,SAAS,CAAC,QAAiB,KAAK,EAAA;QAC9B,IAAI,KAAK,EAAE;AACT,YAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,OAAO,GAAG,EAAE,GAAG,IAAI,CAAC;SAC9C;AAED,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;KAClC;AAED,IAAA,QAAQ,CAAC,KAAA,GAAyB,IAAI,CAAC,KAAK,EAAA;AAC1C,QAAA,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;AACxB,YAAA,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;SACjC;aAAM;YACL,OAAO,CAAC,CAAC,KAAK,CAAC;SAChB;KACF;AAED,IAAA,SAAS,CAAC,KAAsB,EAAA;AAC9B,QAAA,IAAI,IAAI,CAAC,OAAO,EAAE;YAChB,OAAO,KAAK,GAAI,KAAgB,CAAC,GAAG,CAAC,GAAG,IAAI,IAAI,SAAS,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;SACtE;aAAM;AACL,YAAA,OAAO,KAAK,GAAG,IAAI,SAAS,CAAC,KAAa,CAAC,GAAG,IAAI,CAAC;SACpD;KACF;AAED,IAAA,aAAa,CAAC,KAAsB,EAAE,gBAAyB,KAAK,EAAE,OAAuB,OAAO,EAAA;AAClG,QAAA,MAAM,YAAY,GAA6C;AAC7D,YAAA,IAAI,EAAE,OAAO;AACb,YAAA,KAAK,EAAE,MAAM;AACb,YAAA,OAAO,EAAE,MAAM;AACf,YAAA,IAAI,EAAE,QAAQ;SACf,CAAC;AACF,QAAA,IAAI,IAAI,CAAC,OAAO,EAAE;AAChB,YAAA,IAAI,CAAC,UAAU,GAAG,mBAAmB,CAAC,KAAoB,EAAE,aAAa,EAAE,YAAY,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;SAClH;aAAM;AACL,YAAA,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC;SACpC;KACF;AAED,IAAA,QAAQ,CAAC,KAAsB,EAAA;AAC7B,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KACpC;AAED,IAAA,cAAc,CAAC,IAAA,GAAsB,IAAI,CAAC,WAAW,EAAA;AACnD,QAAA,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;KACpC;IAED,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC;AAC7B,QAAA,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC;AAC3B,QAAA,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE,CAAC;KAClC;8GA/DU,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;kHAAjB,iBAAiB,EAAA,CAAA,CAAA,EAAA;;2FAAjB,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAD7B,UAAU;;;ACZX;;;AAGG;AAoBH;MACsB,mBAAmB,CAAA;AAFzC,IAAA,WAAA,GAAA;QAGE,IAAS,CAAA,SAAA,GAAW,mBAAmB,CAAC;QACxC,IAAS,CAAA,SAAA,GAAoB,EAAE,CAAC;QAKM,IAAe,CAAA,eAAA,GAAY,IAAI,CAAC;QAChC,IAAgB,CAAA,gBAAA,GAAY,IAAI,CAAC;QACjC,IAAU,CAAA,UAAA,GAAY,IAAI,CAAC;QAC3B,IAAW,CAAA,WAAA,GAAY,IAAI,CAAC;AAE/C,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,YAAY,EAAqB,CAAC;AACpD,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,YAAY,EAAa,CAAC;AAuEhE,KAAA;IAnEC,kBAAkB,GAAA;AAChB,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC;KACjC;IAED,aAAa,GAAA;AACX,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC;KAClC;IAED,cAAc,GAAA;AACZ,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC;KAC7B;IAED,SAAS,GAAA;AACP,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC;KAC9B;IAED,aAAa,GAAA;AACX,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;KAC3C;IAED,SAAS,GAAA;AACP,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;KAC1C;IAED,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;KAC5C;IAED,IAAI,GAAA;AACF,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;KAC3C;AAED,IAAA,WAAW,CAAC,KAAgB,EAAA;AAC1B,QAAA,IAAI,IAAI,CAAC,KAAK,KAAK,KAAK,EAAE;AACxB,YAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;YACnB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAClC,YAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC3B,IAAI,CAAC,MAAM,EAAE,CAAC;SACf;KACF;AAED,IAAA,UAAU,CAAC,IAAgB,EAAA;AACzB,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,UAAU,EAAC,CAAC,CAAC;KAC5D;IAEO,MAAM,GAAA;AACZ,QAAA,IAAI,IAAI,CAAC,KAAK,EAAE;AACd,YAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;SACtC;KACF;IAED,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;YACf,IAAI,CAAC,KAAK,GAAG,IAAI,SAAS,EAAE,CAAC;SAC9B;AACD,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;KACtC;AAED,IAAA,WAAW,CAAC,OAAsB,EAAA;QAChC,IAAI,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,MAAM,EAAE;YACnC,IAAI,CAAC,MAAM,EAAE,CAAC;SACf;KACF;AAED,IAAA,eAAe,CAAC,QAAuB,EAAA;QACrC,OAAO,CAAA,EAAG,QAAQ,CAAC,KAAK,IAAI,QAAQ,CAAC,KAAK,CAAA,CAAE,CAAC;KAC9C;8GAnFmB,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAnB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,mBAAmB,sGAOpB,gBAAgB,CAAA,EAAA,gBAAA,EAAA,CAAA,kBAAA,EAAA,kBAAA,EAChB,gBAAgB,CAChB,EAAA,UAAA,EAAA,CAAA,YAAA,EAAA,YAAA,EAAA,gBAAgB,+CAChB,gBAAgB,CAAA,EAAA,EAAA,OAAA,EAAA,EAAA,WAAA,EAAA,aAAA,EAAA,WAAA,EAAA,aAAA,EAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;2FAVf,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAFxC,SAAS;8BAOC,KAAK,EAAA,CAAA;sBAAb,KAAK;gBACG,MAAM,EAAA,CAAA;sBAAd,KAAK;gBACgC,eAAe,EAAA,CAAA;sBAApD,KAAK;uBAAC,EAAC,SAAS,EAAE,gBAAgB,EAAC,CAAA;gBACE,gBAAgB,EAAA,CAAA;sBAArD,KAAK;uBAAC,EAAC,SAAS,EAAE,gBAAgB,EAAC,CAAA;gBACE,UAAU,EAAA,CAAA;sBAA/C,KAAK;uBAAC,EAAC,SAAS,EAAE,gBAAgB,EAAC,CAAA;gBACE,WAAW,EAAA,CAAA;sBAAhD,KAAK;uBAAC,EAAC,SAAS,EAAE,gBAAgB,EAAC,CAAA;gBAEjB,WAAW,EAAA,CAAA;sBAA7B,MAAM;gBACY,WAAW,EAAA,CAAA;sBAA7B,MAAM;;;ACrCT;;;AAGG;AAkBG,MAAO,qBAAsB,SAAQ,mBAAmB,CAAA;AAT9D,IAAA,WAAA,GAAA;;QAgBW,IAAI,CAAA,IAAA,GAAe,QAAQ,CAAC;AA8BtC,KAAA;IApCU,QAAQ,GAAA;KAChB;IAEQ,IAAI,GAAA;KACZ;AAID,IAAA,IAAI,SAAS,GAAA;AACX,QAAA,OAAO,QAAQ,CAAC,CAAA,EAAG,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,GAAG,GAAG,CAAE,CAAA,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC;KAC5D;AAED,IAAA,IAAI,OAAO,GAAA;AACT,QAAA,OAAO,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;KAC5B;IAEQ,aAAa,GAAA;AACpB,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;KAC7C;IAEQ,SAAS,GAAA;AAChB,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;KAC5C;IAED,YAAY,GAAA;QACV,OAAO;AACL,YAAA;AACE,gBAAA,SAAS,EAAE,CAAA,EAAG,IAAI,CAAC,SAAS,CAAa,WAAA,CAAA;AACzC,gBAAA,KAAK,EAAE,EAAE;gBACT,OAAO,EAAE,MAAK;;iBAEb;gBACD,KAAK,EAAE,GAAG,IAAI,CAAC,SAAS,CAAI,CAAA,EAAA,IAAI,CAAC,OAAO,CAAE,CAAA;AAC3C,aAAA;SACF,CAAC;KACH;8GApCU,qBAAqB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAArB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,qBAAqB,4HCrBlC,oqDA4DA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;;2FDvCa,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBATjC,SAAS;AACO,YAAA,IAAA,EAAA,CAAA,EAAA,aAAA,EAAA,iBAAiB,CAAC,IAAI,EAAA,eAAA,EACpB,uBAAuB,CAAC,MAAM,YACrC,eAAe,EAAA,QAAA,EACf,cAAc,EAEf,OAAA,EAAA,CAAC,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,cACrB,IAAI,EAAA,QAAA,EAAA,oqDAAA,EAAA,CAAA;;;AEnBlB;;;AAGG;AAsBH;MACsB,aAAa,CAAA;AAFnC,IAAA,WAAA,GAAA;QAGE,IAAO,CAAA,OAAA,GAAe,EAAE,CAAC;QACzB,IAAQ,CAAA,QAAA,GAAkB,EAAE,CAAC;QAC7B,IAAO,CAAA,OAAA,GAAG,CAAC,CAAC;QACZ,IAAO,CAAA,OAAA,GAAG,CAAC,CAAC;QAEH,IAAS,CAAA,SAAA,GAAW,YAAY,CAAC;AAGjC,QAAA,IAAA,CAAA,UAAU,GAAc,IAAI,SAAS,EAAE,CAAC;QACT,IAAQ,CAAA,QAAA,GAAY,KAAK,CAAC;AACzD,QAAA,IAAA,CAAA,aAAa,GAAgB,EAAE,CAAC;AAChC,QAAA,IAAA,CAAA,UAAU,GAAgB,EAAE,CAAC;QAIE,IAAa,CAAA,aAAA,GAAY,KAAK,CAAC;AAEpD,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,YAAY,EAAa,CAAC;AAC5C,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,YAAY,EAAa,CAAC;AAuF9D,KAAA;IArFW,MAAM,GAAA;AACd,QAAA,IAAI,IAAI,CAAC,UAAU,EAAE;AACnB,YAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;AAClC,YAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;SACrC;KACF;IAID,aAAa,GAAA;AACX,QAAA,OAAO,IAAI,CAAC,aAAa,EAAE,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,UAAU,EAAE,MAAM,GAAG,CAAC,CAAC;KACtE;AAED,IAAA,WAAW,CAAC,IAAc,EAAA;QACxB,OAAO;YACL,CAAC,CAAA,eAAA,CAAiB,GAAG,IAAI;YACzB,CAAC,CAAA,uBAAA,CAAyB,GAAG,IAAI;AACjC,YAAA,CAAC,CAA0B,wBAAA,CAAA,GAAG,IAAI,CAAC,UAAU;AAC7C,YAAA,CAAC,CAA0B,wBAAA,CAAA,GAAG,IAAI,CAAC,UAAU;AAC7C,YAAA,CAAC,0BAA0B,GAAG,CAAC,CAAC,IAAI,CAAC,iBAAiB;AACtD,YAAA,CAAC,6BAA6B,GAAG,CAAC,CAAC,IAAI,CAAC,eAAe;AACvD,YAAA,CAAC,2BAA2B,GAAG,CAAC,CAAC,IAAI,CAAC,aAAa;AACnD,YAAA,CAAC,oCAAoC,GAAG,CAAC,CAAC,IAAI,CAAC,aAAa;AAC5D,YAAA,CAAC,kCAAkC,GAAG,CAAC,CAAC,IAAI,CAAC,WAAW;AACxD,YAAA,CAAC,6BAA6B,GAAG,CAAC,CAAC,IAAI,CAAC,cAAc;AACtD,YAAA,CAAC,mCAAmC,GAAG,CAAC,CAAC,IAAI,CAAC,YAAY;AAC1D,YAAA,CAAC,iCAAiC,GAAG,CAAC,CAAC,IAAI,CAAC,UAAU;AACtD,YAAA,CAAC,wCAAwC,GAAG,CAAC,CAAC,IAAI,CAAC,kBAAkB;AACrE,YAAA,CAAC,sCAAsC,GAAG,CAAC,CAAC,IAAI,CAAC,iBAAiB;AAClE,YAAA,CAAC,wCAAwC,GAAG,CAAC,CAAC,IAAI,CAAC,qBAAqB;AACxE,YAAA,CAAC,sCAAsC,GAAG,CAAC,CAAC,IAAI,CAAC,mBAAmB;SACrE,CAAC;KACH;IAKD,QAAQ,GAAA;QACN,IAAI,CAAC,MAAM,EAAE,CAAC;KACf;AAED,IAAA,WAAW,CAAC,OAAsB,EAAA;QAChC,IAAI,OAAO,CAAC,UAAU,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,YAAY,EAAE;AAC1D,YAAA,IAAI,CAAC,UAAU,GAAG,IAAI,SAAS,EAAE,CAAC;SACnC;QAED,IACE,OAAO,CAAC,YAAY;AACpB,YAAA,OAAO,CAAC,MAAM;AACd,YAAA,OAAO,CAAC,QAAQ;AAChB,YAAA,OAAO,CAAC,UAAU;AAClB,YAAA,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,UAAU,CAAC;AACzC,YAAA,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,KAAK,CAAC;AACpC,YAAA,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,aAAa,CAAC;YAC5C,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,UAAU,CAAC,EACzC;YACA,IAAI,CAAC,MAAM,EAAE,CAAC;SACf;KACF;AAEO,IAAA,gBAAgB,CAAC,MAAoB,EAAA;QAC3C,IAAI,MAAM,EAAE;AACV,YAAA,MAAM,aAAa,GAA4B,MAAM,CAAC,aAAa,CAAC;AACpE,YAAA,MAAM,YAAY,GAA4B,MAAM,CAAC,YAAY,CAAC;AAClE,YAAA,IAAI,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE;AAC/B,gBAAA,QACE,CAAC,KAAK,CAAC,OAAO,CAAC,aAAa,CAAC;AAC7B,oBAAA,YAAY,CAAC,MAAM,KAAK,aAAa,CAAC,MAAM;oBAC5C,YAAY,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,KAAK,KAAI;AACjC,wBAAA,MAAM,iBAAiB,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;wBAC/C,OAAO,iBAAiB,YAAY,SAAS;AAC3C,8BAAE,iBAAiB,CAAC,SAAS,CAAC,KAAK,CAAC;AACpC,8BAAE,iBAAiB,KAAK,KAAK,CAAC;qBACjC,CAAC,EACF;aACH;iBAAM;gBACL,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,aAA0B,EAAE,YAAY,CAAC,CAAC;aACnE;SACF;AACD,QAAA,OAAO,KAAK,CAAC;KACd;IAEO,UAAU,CAAC,IAAe,EAAE,KAAgB,EAAA;QAClD,OAAO,CAAC,CAAC,IAAI,IAAI,CAAC,KAAK,MAAM,IAAI,IAAI,KAAK,IAAI,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;KACtE;8GAzGmB,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;kGAAb,aAAa,EAAA,MAAA,EAAA,EAAA,SAAA,EAAA,WAAA,EAAA,KAAA,EAAA,OAAA,EAAA,MAAA,EAAA,QAAA,EAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,CAAA,UAAA,EAAA,UAAA,EAUb,gBAAgB,CAAA,EAAA,aAAA,EAAA,eAAA,EAAA,UAAA,EAAA,YAAA,EAAA,YAAA,EAAA,cAAA,EAAA,UAAA,EAAA,YAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,aAAA,EAAA,CAAA,eAAA,EAAA,eAAA,EAMhB,gBAAgB,CAAA,EAAA,EAAA,OAAA,EAAA,EAAA,WAAA,EAAA,aAAA,EAAA,SAAA,EAAA,WAAA,EAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;2FAhBhB,aAAa,EAAA,UAAA,EAAA,CAAA;kBAFlC,SAAS;8BAQC,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBACG,KAAK,EAAA,CAAA;sBAAb,KAAK;gBACG,MAAM,EAAA,CAAA;sBAAd,KAAK;gBACG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBACkC,QAAQ,EAAA,CAAA;sBAA/C,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAA;gBAC7B,aAAa,EAAA,CAAA;sBAArB,KAAK;gBACG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBACG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBACG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBACG,cAAc,EAAA,CAAA;sBAAtB,KAAK;gBACkC,aAAa,EAAA,CAAA;sBAApD,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAA;gBAEnB,WAAW,EAAA,CAAA;sBAA7B,MAAM;gBACY,SAAS,EAAA,CAAA;sBAA3B,MAAM;;;AC7CT;;;AAGG;AAQH,MAAM,OAAO,GAAG,CAAC,CAAC;AAClB,MAAM,OAAO,GAAG,CAAC,CAAC;AAYZ,MAAO,oBAAqB,SAAQ,aAAa,CAAA;AACrD,IAAA,IAAI,SAAS,GAAA;AACX,QAAA,OAAO,QAAQ,CAAC,CAAA,EAAG,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,GAAG,GAAG,CAAE,CAAA,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC;KACjE;AAED,IAAA,IAAI,OAAO,GAAA;AACT,QAAA,OAAO,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;KAC5B;IAED,WAAW,GAAA;AACT,QAAA,OAAO,EAAE,CAAC;KACX;IAED,YAAY,GAAA;QACV,MAAM,OAAO,GAAkB,EAAE,CAAC;AAClC,QAAA,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;AACvD,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;AACjC,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;AAC7B,QAAA,MAAM,YAAY,GAAG,SAAS,GAAG,EAAE,CAAC;QAEpC,IAAI,KAAK,GAAG,CAAC,CAAC;AACd,QAAA,KAAK,IAAI,QAAQ,GAAG,CAAC,EAAE,QAAQ,GAAG,OAAO,EAAE,QAAQ,EAAE,EAAE;AACrD,YAAA,MAAM,GAAG,GAAgB;AACvB,gBAAA,SAAS,EAAE,EAAE;AACb,gBAAA,YAAY,EAAE,QAAQ;aACvB,CAAC;AAEF,YAAA,KAAK,IAAI,QAAQ,GAAG,CAAC,EAAE,QAAQ,GAAG,OAAO,EAAE,QAAQ,EAAE,EAAE;AACrD,gBAAA,MAAM,KAAK,GAAG,YAAY,GAAG,KAAK,GAAG,EAAE,CAAC;gBACxC,MAAM,GAAG,GAAG,YAAY,GAAG,KAAK,GAAG,EAAE,GAAG,CAAC,CAAC;AAC1C,gBAAA,MAAM,OAAO,GAAG,CAAA,EAAG,KAAK,CAAI,CAAA,EAAA,GAAG,EAAE,CAAC;AAElC,gBAAA,MAAM,IAAI,GAAe;AACvB,oBAAA,YAAY,EAAE,QAAQ;oBACtB,KAAK,EAAE,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,UAAU;oBAChD,OAAO;AACP,oBAAA,KAAK,EAAE,OAAO;AACd,oBAAA,UAAU,EAAE,KAAK;AACjB,oBAAA,UAAU,EAAE,WAAW,IAAI,KAAK,IAAI,WAAW,IAAI,GAAG;oBACtD,gBAAgB,EAAE,GAAG,GAAG,SAAS;oBACjC,eAAe,EAAE,KAAK,GAAG,OAAO;AAChC,oBAAA,QAAQ,EAAE,EAAE;AACZ,oBAAA,OAAO,MAAW;AAClB,oBAAA,YAAY,MAAW;iBACxB,CAAC;gBAEF,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;AACvC,gBAAA,IAAI,CAAC,OAAO,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;AAC9C,gBAAA,KAAK,EAAE,CAAC;AACR,gBAAA,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aAC1B;AAED,YAAA,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;SACnB;AACD,QAAA,OAAO,OAAO,CAAC;KAChB;AAEQ,IAAA,WAAW,CAAC,IAAgB,EAAA;QACnC,OAAO;AACL,YAAA,CAAC,GAAG,IAAI,CAAC,SAAS,CAAO,KAAA,CAAA,GAAG,IAAI;AAChC,YAAA,CAAC,CAAG,EAAA,IAAI,CAAC,SAAS,eAAe,GAAG,CAAC,IAAI,CAAC,eAAe,IAAI,CAAC,IAAI,CAAC,gBAAgB;YACnF,CAAC,CAAA,EAAG,IAAI,CAAC,SAAS,gBAAgB,GAAG,IAAI,CAAC,UAAU;YACpD,CAAC,CAAA,EAAG,IAAI,CAAC,SAAS,gBAAgB,GAAG,IAAI,CAAC,UAAU;SACrD,CAAC;KACH;AAEO,IAAA,YAAY,CAAC,IAAY,EAAA;QAC/B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC3C,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KACnC;8GArEU,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,QAAA,EAAA,IAAA,EAAA,oBAAoB,ECxBjC,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,cAAA,EAAA,QAAA,EAAA,CAAA,aAAA,CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,sjFAoEA,ED9C2B,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,OAAO,oFAA0B,gBAAgB,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;;2FAE/D,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAVhC,SAAS;oCACO,iBAAiB,CAAC,IAAI,EAAA,eAAA,EACpB,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAErC,cAAc,EAAA,QAAA,EACd,aAAa,EAAA,UAAA,EAEX,IAAI,EAAA,OAAA,EACP,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,gBAAgB,EAAE,eAAe,CAAC,EAAA,QAAA,EAAA,sjFAAA,EAAA,CAAA;;;AEtB9F;;;AAGG;AAkBG,MAAO,mBAAoB,SAAQ,mBAAmB,CAAA;AAT5D,IAAA,WAAA,GAAA;;QAUW,IAAI,CAAA,IAAA,GAAe,MAAM,CAAC;AA+BpC,KAAA;AA7BC,IAAA,IAAI,SAAS,GAAA;AACX,QAAA,OAAO,QAAQ,CAAC,CAAA,EAAG,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,GAAG,EAAE,CAAE,CAAA,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC;KAC1D;AAED,IAAA,IAAI,OAAO,GAAA;AACT,QAAA,OAAO,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;KAC3B;IAEQ,aAAa,GAAA;AACpB,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;KAC5C;IAEQ,SAAS,GAAA;AAChB,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;KAC3C;IAED,YAAY,GAAA;QACV,OAAO;AACL,YAAA;AACE,gBAAA,SAAS,EAAE,CAAA,EAAG,IAAI,CAAC,SAAS,CAAW,SAAA,CAAA;AACvC,gBAAA,KAAK,EAAE,EAAE;gBACT,OAAO,EAAE,MAAK;AACZ,oBAAA,IAAI,CAAC,IAAI,GAAG,QAAQ,CAAC;AACrB,oBAAA,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;iBAC3B;gBACD,KAAK,EAAE,GAAG,IAAI,CAAC,SAAS,CAAI,CAAA,EAAA,IAAI,CAAC,OAAO,CAAE,CAAA;AAC3C,aAAA;SACF,CAAC;KACH;8GA/BU,mBAAmB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAnB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,mBAAmB,wHJrBhC,oqDA4DA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;;2FIvCa,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAT/B,SAAS;AACO,YAAA,IAAA,EAAA,CAAA,EAAA,aAAA,EAAA,iBAAiB,CAAC,IAAI,EAAA,eAAA,EACpB,uBAAuB,CAAC,MAAM,YACrC,aAAa,EAAA,QAAA,EACb,YAAY,EAEV,UAAA,EAAA,IAAI,WACP,CAAC,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,EAAA,QAAA,EAAA,oqDAAA,EAAA,CAAA;;;ACnBnC;;;AAGG;AAsBG,MAAO,kBAAmB,SAAQ,aAAa,CAAA;AAInD,IAAA,WAAA,CAAoB,UAA6B,EAAA;AAC/C,QAAA,KAAK,EAAE,CAAC;QADU,IAAU,CAAA,UAAA,GAAV,UAAU,CAAmB;QAHxC,IAAO,CAAA,OAAA,GAAG,CAAC,CAAC;QACZ,IAAO,CAAA,OAAA,GAAG,CAAC,CAAC;KAIpB;IAED,WAAW,GAAA;AACT,QAAA,OAAO,EAAE,CAAC;KACX;IAED,YAAY,GAAA;AACV,QAAA,MAAM,WAAW,GAAG,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;AACjE,QAAA,MAAM,SAAS,GAAG,QAAQ,CAAC,GAAG,WAAW,GAAG,EAAE,CAAA,CAAE,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC;AAC3D,QAAA,MAAM,OAAO,GAAG,SAAS,GAAG,CAAC,CAAC;AAC9B,QAAA,MAAM,YAAY,GAAG,SAAS,GAAG,CAAC,CAAC;QACnC,MAAM,KAAK,GAAkB,EAAE,CAAC;QAChC,IAAI,SAAS,GAAG,CAAC,CAAC;AAElB,QAAA,KAAK,IAAI,QAAQ,GAAG,CAAC,EAAE,QAAQ,GAAG,IAAI,CAAC,OAAO,EAAE,QAAQ,EAAE,EAAE;AAC1D,YAAA,MAAM,GAAG,GAAgB;AACvB,gBAAA,SAAS,EAAE,EAAE;AACb,gBAAA,YAAY,EAAE,QAAQ;aACvB,CAAC;AACF,YAAA,KAAK,IAAI,QAAQ,GAAG,CAAC,EAAE,QAAQ,GAAG,IAAI,CAAC,OAAO,EAAE,QAAQ,EAAE,EAAE;AAC1D,gBAAA,MAAM,OAAO,GAAG,YAAY,GAAG,SAAS,CAAC;gBACzC,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;AAC9C,gBAAA,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;gBAChE,MAAM,UAAU,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;AAC7C,gBAAA,MAAM,IAAI,GAAa;AACrB,oBAAA,YAAY,EAAE,QAAQ;oBACtB,KAAK,EAAE,IAAI,CAAC,UAAU;oBACtB,UAAU;AACV,oBAAA,YAAY,EAAE,OAAO,IAAI,SAAS,IAAI,OAAO,IAAI,OAAO;AACxD,oBAAA,UAAU,EAAE,OAAO,MAAM,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;oBAC5D,OAAO;AACP,oBAAA,KAAK,EAAE,OAAO;AACd,oBAAA,QAAQ,EAAE,EAAE;AACZ,oBAAA,iBAAiB,EAAE,IAAI,CAAC,OAAO,EAAE,KAAK,OAAO;AAC7C,oBAAA,kBAAkB,EAAE,IAAI,CAAC,OAAO,EAAE,KAAK,SAAS;oBAChD,UAAU,EAAE,iBAAiB,CAAC,IAAI,CAAC,UAAW,EAAE,IAAI,CAAC;oBACrD,cAAc,EAAE,iBAAiB,CAAC,IAAI,CAAC,cAAe,EAAE,IAAI,CAAC;AAC7D,oBAAA,OAAO,EAAE,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;oBACxD,YAAY,EAAE,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC;iBAC9C,CAAC;AAEF,gBAAA,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AACjC,gBAAA,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACzB,gBAAA,SAAS,EAAE,CAAC;aACb;AACD,YAAA,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;SACjB;AACD,QAAA,OAAO,KAAK,CAAC;KACd;AAEQ,IAAA,WAAW,CAAC,IAAc,EAAA;QACjC,OAAO;AACL,YAAA,GAAG,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC;AAC1B,YAAA,CAAC,yBAAyB,GAAG,CAAC,CAAC,IAAI,CAAC,YAAY;SACjD,CAAC;KACH;AAEO,IAAA,cAAc,CAAC,IAAe,EAAA;AACpC,QAAA,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;AACtB,YAAA,OAAO,KAAK,CAAC;SACd;AAED,QAAA,MAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QAEjD,KAAK,IAAI,IAAI,GAAG,YAAY,EAAE,IAAI,CAAC,OAAO,EAAE,KAAK,IAAI,CAAC,OAAO,EAAE,EAAE,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;YACvF,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;AACvC,gBAAA,OAAO,KAAK,CAAC;aACd;SACF;AAED,QAAA,OAAO,IAAI,CAAC;KACb;IAEO,eAAe,CAAC,IAAc,EAAE,IAAe,EAAA;AACrD,QAAA,IAAI,IAAI,CAAC,aAAa,EAAE,EAAE;YACxB,MAAM,CAAC,UAAU,EAAE,QAAQ,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC;YAC/C,MAAM,CAAC,aAAa,EAAE,WAAW,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC;;AAExD,YAAA,IAAI,aAAa,EAAE,UAAU,CAAC,IAAI,CAAC,EAAE;AACnC,gBAAA,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;AAC5B,gBAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;aACxB;AAED,YAAA,IAAI,WAAW,EAAE,UAAU,CAAC,IAAI,CAAC,EAAE;AACjC,gBAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;AAC1B,gBAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;aACxB;AAED,YAAA,IAAI,UAAU,IAAI,QAAQ,EAAE;gBAC1B,IAAI,CAAC,YAAY,GAAG,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;gBAChD,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;AAC5C,gBAAA,IAAI,CAAC,cAAc,GAAG,UAAU,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;aACpF;AACD,YAAA,IAAI,CAAC,aAAa,GAAG,aAAa,IAAI,CAAC,WAAW,CAAC;AACnD,YAAA,IAAI,CAAC,WAAW,GAAG,CAAC,aAAa,IAAI,WAAW,CAAC;AACjD,YAAA,IAAI,CAAC,iBAAiB,GAAG,aAAa,EAAE,YAAY,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,YAAY,CAAC,WAAW,CAAC,CAAC;YAC9F,IAAI,CAAC,qBAAqB,GAAG,aAAa,IAAI,IAAI,CAAC,cAAc,CAAC;YAClE,IAAI,CAAC,mBAAmB,GAAG,WAAW,IAAI,IAAI,CAAC,cAAc,CAAC;SAC/D;aAAM,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;AACtC,YAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;SACxB;QACD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;KACxC;AAEO,IAAA,UAAU,CAAC,IAAY,EAAA;QAC7B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC3C,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAClC,IAAI,CAAC,MAAM,EAAE,CAAC;KACf;8GAlHU,kBAAkB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAlB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,kBAAkB,EFzB/B,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,YAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,sjFAoEA,EE9C2B,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,OAAO,oFAA0B,gBAAgB,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;;2FAG/D,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAV9B,SAAS;oCACO,iBAAiB,CAAC,IAAI,EAAA,eAAA,EACpB,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAErC,YAAY,EAAA,QAAA,EACZ,WAAW,EAAA,OAAA,EAEZ,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,gBAAgB,EAAE,eAAe,CAAC,EAAA,UAAA,EAChF,IAAI,EAAA,QAAA,EAAA,sjFAAA,EAAA,CAAA;;;ACvBlB;;;AAGG;AAqBG,MAAO,sBAAuB,SAAQ,mBAAmB,CAAA;AAG7D,IAAA,WAAA,CAAoB,UAA6B,EAAA;AAC/C,QAAA,KAAK,EAAE,CAAC;QADU,IAAU,CAAA,UAAA,GAAV,UAAU,CAAmB;QAFxC,IAAI,CAAA,IAAA,GAAe,SAAS,CAAC;KAIrC;IAED,YAAY,GAAA;QACV,OAAO;AACL,YAAA;AACE,gBAAA,SAAS,EAAE,CAAA,EAAG,IAAI,CAAC,SAAS,CAAc,YAAA,CAAA;AAC1C,gBAAA,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU;gBAC7B,OAAO,EAAE,MAAK;AACZ,oBAAA,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC;AACnB,oBAAA,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;iBACzB;gBACD,KAAK,EAAE,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;AAChG,aAAA;SACF,CAAC;KACH;8GAnBU,sBAAsB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAtB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,sBAAsB,8HNxBnC,oqDA4DA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;;2FMpCa,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBATlC,SAAS;AACO,YAAA,IAAA,EAAA,CAAA,EAAA,aAAA,EAAA,iBAAiB,CAAC,IAAI,EAAA,eAAA,EACpB,uBAAuB,CAAC,MAAM,YACrC,gBAAgB,EAAA,QAAA,EAChB,eAAe,EAEb,UAAA,EAAA,IAAI,WACP,CAAC,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,EAAA,QAAA,EAAA,oqDAAA,EAAA,CAAA;;;ACtBnC;;;AAGG;AAwBG,MAAO,qBAAsB,SAAQ,aAAa,CAAA;AAItD,IAAA,WAAA,CAAoB,UAA6B,EAAA;AAC/C,QAAA,KAAK,EAAE,CAAC;QADU,IAAU,CAAA,UAAA,GAAV,UAAU,CAAmB;QAHxC,IAAO,CAAA,OAAA,GAAG,CAAC,CAAC;QACZ,IAAO,CAAA,OAAA,GAAG,CAAC,CAAC;KAIpB;AAEO,IAAA,qBAAqB,CAAC,KAAgB,EAAA;AAC5C,QAAA,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC;QAChC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;AAEvC,QAAA,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;YAC9C,IAAI,CAAC,MAAM,EAAE,CAAC;SACf;KACF;IAED,WAAW,GAAA;AACT,QAAA,OAAO,EAAE,CAAC;KACX;IAED,YAAY,GAAA;QACV,MAAM,SAAS,GAAe,EAAE,CAAC;QACjC,MAAM,MAAM,GAAkB,CAAC,EAAE,SAAS,EAAE,YAAY,EAAE,CAAC,EAAE,CAAC,CAAC;QAC/D,IAAI,YAAY,GAAG,CAAC,CAAC;AAErB,QAAA,KAAK,IAAI,QAAQ,GAAG,CAAC,EAAE,QAAQ,IAAI,IAAI,CAAC,OAAO,EAAE,QAAQ,EAAE,EAAE,YAAY,EAAE,EAAE;YAC3E,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;YACtD,MAAM,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;AAChD,YAAA,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;AAChE,YAAA,MAAM,IAAI,GAAa;AACrB,gBAAA,YAAY,EAAE,QAAQ;gBACtB,KAAK,EAAE,IAAI,CAAC,UAAU;gBACtB,UAAU;gBACV,UAAU,EAAE,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC;gBAC1C,OAAO;AACP,gBAAA,KAAK,EAAE,OAAO;AACd,gBAAA,QAAQ,EAAE,EAAE;gBACZ,UAAU,EAAE,iBAAiB,CAAC,IAAI,CAAC,UAAW,EAAE,IAAI,CAAC;gBACrD,cAAc,EAAE,iBAAiB,CAAC,IAAI,CAAC,cAAe,EAAE,IAAI,CAAC;gBAC7D,OAAO,EAAE,MAAM,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC;gBAC/C,YAAY,EAAE,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC;aAC9C,CAAC;AAEF,YAAA,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AACjC,YAAA,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SACtB;AACD,QAAA,OAAO,MAAM,CAAC;KACf;AAEO,IAAA,iBAAiB,CAAC,OAAkB,EAAA;AAC1C,QAAA,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;AACtB,YAAA,OAAO,KAAK,CAAC;SACd;AAED,QAAA,MAAM,iBAAiB,GAAG,IAAI,SAAS,CAAC,cAAc,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC;QAC5E,KAAK,IAAI,IAAI,GAAG,iBAAiB,EAAE,IAAI,CAAC,UAAU,EAAE,KAAK,OAAO,CAAC,UAAU,EAAE,EAAE,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE;YACvG,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;AACvC,gBAAA,OAAO,KAAK,CAAC;aACd;SACF;AACD,QAAA,OAAO,IAAI,CAAC;KACb;IAEO,eAAe,CAAC,IAAc,EAAE,KAAgB,EAAA;QACtD,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACpD,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;AAE1D,QAAA,IAAI,IAAI,CAAC,aAAa,EAAE,EAAE;YACxB,MAAM,CAAC,UAAU,EAAE,QAAQ,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC;YAC/C,MAAM,CAAC,aAAa,EAAE,WAAW,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC;AAExD,YAAA,IAAI,aAAa,EAAE,aAAa,CAAC,KAAK,CAAC,EAAE;AACvC,gBAAA,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;AAC5B,gBAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;aACxB;AAED,YAAA,IAAI,WAAW,EAAE,aAAa,CAAC,KAAK,CAAC,EAAE;AACrC,gBAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;AAC1B,gBAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;aACxB;AAED,YAAA,IAAI,UAAU,IAAI,QAAQ,EAAE;gBAC1B,IAAI,CAAC,YAAY,GAAG,UAAU,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;gBACpD,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;gBAChD,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;gBAClD,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;AACnD,gBAAA,IAAI,CAAC,cAAc,GAAG,UAAU,CAAC,eAAe,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;aAC5F;AACD,YAAA,IAAI,CAAC,aAAa,GAAG,aAAa,IAAI,CAAC,WAAW,CAAC;AACnD,YAAA,IAAI,CAAC,WAAW,GAAG,CAAC,aAAa,IAAI,WAAW,CAAC;AACjD,YAAA,IAAI,CAAC,iBAAiB,GAAG,aAAa,EAAE,eAAe,CAAC,KAAK,CAAC,IAAI,KAAK,EAAE,eAAe,CAAC,WAAW,CAAC,CAAC;YACtG,IAAI,CAAC,qBAAqB,GAAG,aAAa,IAAI,IAAI,CAAC,cAAc,CAAC;YAClE,IAAI,CAAC,mBAAmB,GAAG,WAAW,IAAI,IAAI,CAAC,cAAc,CAAC;SAC/D;aAAM,IAAI,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;AAC1C,YAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;SACxB;QACD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;KACxC;8GAlGU,qBAAqB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAArB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,qBAAqB,EJ3BlC,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,eAAA,EAAA,QAAA,EAAA,CAAA,cAAA,CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,sjFAoEA,EI3C2B,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,OAAO,oFAA0B,gBAAgB,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;;2FAE/D,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAVjC,SAAS;oCACO,iBAAiB,CAAC,IAAI,EAAA,eAAA,EACpB,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAErC,eAAe,EAAA,QAAA,EACf,cAAc,EAAA,UAAA,EAEZ,IAAI,EAAA,OAAA,EACP,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,gBAAgB,EAAE,eAAe,CAAC,EAAA,QAAA,EAAA,sjFAAA,EAAA,CAAA;;;ACzB9F;;;AAGG;AAqBG,MAAO,oBAAqB,SAAQ,mBAAmB,CAAA;AAG3D,IAAA,WAAA,CAAoB,UAA6B,EAAA;AAC/C,QAAA,KAAK,EAAE,CAAC;QADU,IAAU,CAAA,UAAA,GAAV,UAAU,CAAmB;QAFxC,IAAI,CAAA,IAAA,GAAe,OAAO,CAAC;KAInC;IAED,YAAY,GAAA;QACV,OAAO;AACL,YAAA;AACE,gBAAA,SAAS,EAAE,CAAA,EAAG,IAAI,CAAC,SAAS,CAAY,UAAA,CAAA;AACxC,gBAAA,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU;gBAC7B,OAAO,EAAE,MAAK;AACZ,oBAAA,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC;AACnB,oBAAA,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;iBACzB;gBACD,KAAK,EAAE,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;AAChG,aAAA;SACF,CAAC;KACH;8GAnBU,oBAAoB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,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,QAAA,EAAA,IAAA,EAAA,oBAAoB,0HRxBjC,oqDA4DA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;;2FQpCa,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAThC,SAAS;AACO,YAAA,IAAA,EAAA,CAAA,EAAA,aAAA,EAAA,iBAAiB,CAAC,IAAI,EAAA,eAAA,EACpB,uBAAuB,CAAC,MAAM,YACrC,cAAc,EAAA,QAAA,EACd,aAAa,EAEX,UAAA,EAAA,IAAI,WACP,CAAC,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,EAAA,QAAA,EAAA,oqDAAA,EAAA,CAAA;;;ACtBnC;;;AAGG;AAsBG,MAAO,mBAAoB,SAAQ,aAAa,CAAA;AAIpD,IAAA,WAAA,CAAoB,UAA6B,EAAA;AAC/C,QAAA,KAAK,EAAE,CAAC;QADU,IAAU,CAAA,UAAA,GAAV,UAAU,CAAmB;QAHxC,IAAO,CAAA,OAAA,GAAG,CAAC,CAAC;QACZ,IAAO,CAAA,OAAA,GAAG,CAAC,CAAC;KAIpB;IAED,WAAW,GAAA;AACT,QAAA,OAAO,EAAE,CAAC;KACX;IAED,YAAY,GAAA;QACV,MAAM,MAAM,GAAkB,EAAE,CAAC;QACjC,IAAI,UAAU,GAAG,CAAC,CAAC;AAEnB,QAAA,KAAK,IAAI,QAAQ,GAAG,CAAC,EAAE,QAAQ,GAAG,IAAI,CAAC,OAAO,EAAE,QAAQ,EAAE,EAAE;AAC1D,YAAA,MAAM,GAAG,GAAgB;AACvB,gBAAA,SAAS,EAAE,EAAE;AACb,gBAAA,YAAY,EAAE,QAAQ;aACvB,CAAC;AAEF,YAAA,KAAK,IAAI,QAAQ,GAAG,CAAC,EAAE,QAAQ,GAAG,IAAI,CAAC,OAAO,EAAE,QAAQ,EAAE,EAAE;gBAC1D,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;gBACnD,MAAM,UAAU,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;AAC/C,gBAAA,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;AAChE,gBAAA,MAAM,IAAI,GAAa;AACrB,oBAAA,YAAY,EAAE,QAAQ;oBACtB,KAAK,EAAE,KAAK,CAAC,UAAU;oBACvB,UAAU;oBACV,UAAU,EAAE,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC;oBACzC,OAAO;AACP,oBAAA,KAAK,EAAE,OAAO;AACd,oBAAA,QAAQ,EAAE,EAAE;oBACZ,UAAU,EAAE,iBAAiB,CAAC,IAAI,CAAC,UAAW,EAAE,KAAK,CAAC;oBACtD,cAAc,EAAE,iBAAiB,CAAC,IAAI,CAAC,cAAe,EAAE,KAAK,CAAC;AAC9D,oBAAA,OAAO,EAAE,MAAM,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;oBACtD,YAAY,EAAE,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC;iBAC/C,CAAC;AAEF,gBAAA,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;AAClC,gBAAA,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACzB,gBAAA,UAAU,EAAE,CAAC;aACd;AACD,YAAA,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;SAClB;AACD,QAAA,OAAO,MAAM,CAAC;KACf;AAEO,IAAA,eAAe,CAAC,KAAgB,EAAA;AACtC,QAAA,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;AACtB,YAAA,OAAO,KAAK,CAAC;SACd;QAED,MAAM,YAAY,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QAEtC,KAAK,IAAI,IAAI,GAAG,YAAY,EAAE,IAAI,CAAC,QAAQ,EAAE,KAAK,KAAK,CAAC,QAAQ,EAAE,EAAE,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;YAC1F,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;AACvC,gBAAA,OAAO,KAAK,CAAC;aACd;SACF;AAED,QAAA,OAAO,IAAI,CAAC;KACb;IAEO,eAAe,CAAC,IAAc,EAAE,KAAgB,EAAA;AACtD,QAAA,IAAI,IAAI,CAAC,aAAa,EAAE,EAAE;YACxB,MAAM,CAAC,UAAU,EAAE,QAAQ,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC;YAC/C,MAAM,CAAC,aAAa,EAAE,WAAW,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC;;AAExD,YAAA,IAAI,aAAa,EAAE,WAAW,CAAC,KAAK,CAAC,EAAE;AACrC,gBAAA,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;AAC5B,gBAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;aACxB;AAED,YAAA,IAAI,WAAW,EAAE,WAAW,CAAC,KAAK,CAAC,EAAE;AACnC,gBAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;AAC1B,gBAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;aACxB;AAED,YAAA,IAAI,UAAU,IAAI,QAAQ,EAAE;gBAC1B,IAAI,CAAC,YAAY,GAAG,UAAU,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;gBAClD,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;gBAC9C,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC,QAAQ,EAAE,KAAK,EAAE,CAAC;gBACjD,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;AACjD,gBAAA,IAAI,CAAC,cAAc,GAAG,UAAU,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;aACxF;AACD,YAAA,IAAI,CAAC,aAAa,GAAG,aAAa,IAAI,CAAC,WAAW,CAAC;AACnD,YAAA,IAAI,CAAC,WAAW,GAAG,CAAC,aAAa,IAAI,WAAW,CAAC;AACjD,YAAA,IAAI,CAAC,iBAAiB,GAAG,aAAa,EAAE,aAAa,CAAC,KAAK,CAAC,IAAI,KAAK,EAAE,aAAa,CAAC,WAAW,CAAC,CAAC;YAClG,IAAI,CAAC,qBAAqB,GAAG,aAAa,IAAI,IAAI,CAAC,cAAc,CAAC;YAClE,IAAI,CAAC,mBAAmB,GAAG,WAAW,IAAI,IAAI,CAAC,cAAc,CAAC;SAC/D;aAAM,IAAI,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;AACxC,YAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;SACxB;QACD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;KACxC;AAEO,IAAA,WAAW,CAAC,KAAa,EAAA;QAC/B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QAC7C,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KACnC;8GArGU,mBAAmB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAnB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,mBAAmB,ENzBhC,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,aAAA,EAAA,QAAA,EAAA,CAAA,YAAA,CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,sjFAoEA,EM7C2B,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,OAAO,oFAA0B,gBAAgB,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;;2FAE/D,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAV/B,SAAS;oCACO,iBAAiB,CAAC,IAAI,EAAA,eAAA,EACpB,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAErC,aAAa,EAAA,QAAA,EACb,YAAY,EAAA,UAAA,EAEV,IAAI,EAAA,OAAA,EACP,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,gBAAgB,EAAE,eAAe,CAAC,EAAA,QAAA,EAAA,sjFAAA,EAAA,CAAA;;;ACvB9F;;;AAGG;AAqBG,MAAO,mBAAoB,SAAQ,mBAAmB,CAAA;AAG1D,IAAA,WAAA,CAAoB,UAA6B,EAAA;AAC/C,QAAA,KAAK,EAAE,CAAC;QADU,IAAU,CAAA,UAAA,GAAV,UAAU,CAAmB;QAFxC,IAAI,CAAA,IAAA,GAAe,MAAM,CAAC;KAIlC;IAED,YAAY,GAAA;QACV,OAAO;AACL,YAAA;AACE,gBAAA,SAAS,EAAE,CAAA,EAAG,IAAI,CAAC,SAAS,CAAW,SAAA,CAAA;AACvC,gBAAA,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU;gBAC7B,OAAO,EAAE,MAAK;AACZ,oBAAA,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC;AACnB,oBAAA,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;iBACzB;gBACD,KAAK,EAAE,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;AAChG,aAAA;AACD,YAAA;AACE,gBAAA,SAAS,EAAE,CAAA,EAAG,IAAI,CAAC,SAAS,CAAY,UAAA,CAAA;AACxC,gBAAA,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,WAAW;gBAC9B,OAAO,EAAE,MAAK;AACZ,oBAAA,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC;AACpB,oBAAA,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;iBAC1B;gBACD,KAAK,EAAE,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,WAAW,IAAI,KAAK,CAAC;AACvF,aAAA;SACF,CAAC;KACH;8GA5BU,mBAAmB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAnB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,mBAAmB,wHVxBhC,oqDA4DA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;;2FUpCa,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAT/B,SAAS;AACO,YAAA,IAAA,EAAA,CAAA,EAAA,aAAA,EAAA,iBAAiB,CAAC,IAAI,EAAA,eAAA,EACpB,uBAAuB,CAAC,MAAM,YACrC,aAAa,EAAA,QAAA,EACb,YAAY,EAEV,UAAA,EAAA,IAAI,WACP,CAAC,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,EAAA,QAAA,EAAA,oqDAAA,EAAA,CAAA;;;ACtBnC;;;AAGG;AAuBG,MAAO,kBAAmB,SAAQ,aAAa,CAAA;IAGnD,WAAoB,CAAA,IAAmB,EAAU,UAA6B,EAAA;AAC5E,QAAA,KAAK,EAAE,CAAC;QADU,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAe;QAAU,IAAU,CAAA,UAAA,GAAV,UAAU,CAAmB;KAE7E;AAEO,IAAA,qBAAqB,CAAC,KAAgB,EAAA;;AAE5C,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QAC/G,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;AAEvC,QAAA,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;YAC5C,IAAI,CAAC,MAAM,EAAE,CAAC;SACf;KACF;IAED,WAAW,GAAA;QACT,MAAM,QAAQ,GAAe,EAAE,CAAC;AAChC,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE,YAAY,EAAE,IAAI,CAAC,UAAU,CAAC,iBAAiB,EAAE,EAAE,CAAC,CAAC;AACnG,QAAA,KAAK,IAAI,QAAQ,GAAG,CAAC,EAAE,QAAQ,GAAG,IAAI,CAAC,OAAO,EAAE,QAAQ,EAAE,EAAE;YAC1D,MAAM,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YACpC,QAAQ,CAAC,IAAI,CAAC;AACZ,gBAAA,YAAY,EAAE,IAAI;gBAClB,KAAK,EAAE,GAAG,CAAC,UAAU;AACrB,gBAAA,KAAK,EAAE,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,EAAE,GAAG,CAAC;AAClD,gBAAA,OAAO,EAAE,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,EAAE,IAAI,CAAC,sBAAsB,EAAE,CAAC;AAC9E,gBAAA,UAAU,EAAE,KAAK;AACjB,gBAAA,UAAU,EAAE,KAAK;AACjB,gBAAA,OAAO,MAAW;AAClB,gBAAA,YAAY,MAAW;AACxB,aAAA,CAAC,CAAC;SACJ;AACD,QAAA,OAAO,QAAQ,CAAC;KACjB;IAEO,sBAAsB,GAAA;QAC5B,OAAO,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,OAAO,GAAG,QAAQ,CAAC;KACvF;IAED,YAAY,GAAA;QACV,MAAM,QAAQ,GAAkB,EAAE,CAAC;AACnC,QAAA,MAAM,eAAe,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE,YAAY,EAAE,IAAI,CAAC,UAAU,CAAC,iBAAiB,EAAE,EAAE,CAAC,CAAC;AAE7G,QAAA,KAAK,IAAI,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE;YAC9C,MAAM,SAAS,GAAG,eAAe,CAAC,OAAO,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC;AACpD,YAAA,MAAM,GAAG,GAAgB;AACvB,gBAAA,QAAQ,EAAE,KAAK;AACf,gBAAA,SAAS,EAAE,EAAE;AACb,gBAAA,YAAY,EAAE,IAAI;aACnB,CAAC;AAEF,YAAA,KAAK,IAAI,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,EAAE,EAAE;gBAChC,MAAM,IAAI,GAAG,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;AACpC,gBAAA,MAAM,UAAU,GAAG,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,4BAA4B,EAAE,YAAY,CAAC,CAAC,CAAC;AAC1G,gBAAA,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;AAClE,gBAAA,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;AAC5D,gBAAA,MAAM,IAAI,GAAa;AACrB,oBAAA,YAAY,EAAE,GAAG;oBACjB,KAAK,EAAE,IAAI,CAAC,UAAU;oBACtB,KAAK;AACL,oBAAA,UAAU,EAAE,KAAK;AACjB,oBAAA,UAAU,EAAE,KAAK;AACjB,oBAAA,OAAO,EAAE,KAAK;oBACd,KAAK;oBACL,UAAU,EAAE,iBAAiB,CAAC,IAAI,CAAC,UAAW,EAAE,IAAI,CAAC;oBACrD,cAAc,EAAE,iBAAiB,CAAC,IAAI,CAAC,cAAe,EAAE,IAAI,CAAC;AAC7D,oBAAA,OAAO,EAAE,CAAG,EAAA,IAAI,CAAC,OAAO,EAAE,CAAE,CAAA;oBAC5B,OAAO,EAAE,MAAM,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC;oBAC/C,YAAY,EAAE,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC;iBAC9C,CAAC;AAEF,gBAAA,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;gBAEjC,IAAI,IAAI,CAAC,QAAQ,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE;AACjC,oBAAA,GAAG,CAAC,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;iBAC3D;gBACD,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;oBAC9B,GAAG,CAAC,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;iBAC3C;AACD,gBAAA,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aAC1B;YACD,GAAG,CAAC,QAAQ,GAAG;AACb,gBAAA,CAAC,CAA2B,yBAAA,CAAA,GAAG,IAAI,CAAC,aAAa;gBACjD,CAAC,CAAA,kCAAA,CAAoC,GAAG,IAAI,CAAC,aAAa,IAAI,GAAG,CAAC,QAAQ;aAC3E,CAAC;AACF,YAAA,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;SACpB;AACD,QAAA,OAAO,QAAQ,CAAC;KACjB;IAED,eAAe,CAAC,IAAc,EAAE,IAAe,EAAA;QAC7C,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACpD,IAAI,CAAC,gBAAgB,GAAI,gBAAgB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC3D,IAAI,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;YAC/C,MAAM,CAAC,UAAU,EAAE,QAAQ,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC;YAC/C,MAAM,CAAC,aAAa,EAAE,WAAW,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC;;AAExD,YAAA,IAAI,aAAa,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE;AAClC,gBAAA,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;AAC5B,gBAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;aACxB;AAED,YAAA,IAAI,WAAW,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE;AAChC,gBAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;AAC1B,gBAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;aACxB;AAED,YAAA,IAAI,UAAU,IAAI,QAAQ,EAAE;gBAC1B,IAAI,CAAC,YAAY,GAAG,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;gBAC/C,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;AAC3C,gBAAA,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;AACjD,gBAAA,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC;AACnD,gBAAA,IAAI,CAAC,cAAc,GAAG,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;aAClF;AACD,YAAA,IAAI,CAAC,aAAa,GAAG,aAAa,IAAI,CAAC,WAAW,CAAC;AACnD,YAAA,IAAI,CAAC,WAAW,GAAG,CAAC,aAAa,IAAI,WAAW,CAAC;AACjD,YAAA,IAAI,CAAC,iBAAiB,GAAG,aAAa,EAAE,WAAW,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;YAC3F,IAAI,CAAC,qBAAqB,GAAG,aAAa,IAAI,IAAI,CAAC,cAAc,CAAC;YAClE,IAAI,CAAC,mBAAmB,GAAG,WAAW,IAAI,IAAI,CAAC,cAAc,CAAC;SAC/D;AAED,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;QAC9B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC7C,QAAA,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC;QACzD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;KACxC;AAEQ,IAAA,WAAW,CAAC,IAAc,EAAA;QACjC,MAAM,IAAI,GAAG,IAAI,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACvC,OAAO;AACL,YAAA,GAAG,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC;AAC1B,YAAA,CAAC,uBAAuB,GAAG,CAAC,CAAC,IAAI,CAAC,OAAO;YACzC,CAAC,CAAA,uBAAA,CAAyB,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC;SAC/D,CAAC;KACH;8GAvIU,kBAAkB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,aAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAlB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,kBAAkB,ER1B/B,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,sjFAoEA,EQ5CY,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,OAAO,oFAAY,gBAAgB,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;;2FAElC,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAV9B,SAAS;AACO,YAAA,IAAA,EAAA,CAAA,EAAA,aAAA,EAAA,iBAAiB,CAAC,IAAI,EAAA,eAAA,EACpB,uBAAuB,CAAC,MAAM,YAErC,YAAY,EAAA,QAAA,EACZ,WAAW,EAET,UAAA,EAAA,IAAI,WACP,CAAC,OAAO,EAAE,QAAQ,EAAE,gBAAgB,CAAC,EAAA,QAAA,EAAA,sjFAAA,EAAA,CAAA;kHAG5B,MAAM,EAAA,CAAA;sBAAvB,KAAK;;;AC3BR;;;AAGG;AAEH;;AAEG;MAyCU,eAAe,CAAA;8GAAf,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;AAAf,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,eAAe,YAxBxB,mBAAmB;YACnB,kBAAkB;YAClB,qBAAqB;YACrB,oBAAoB;YACpB,oBAAoB;YACpB,mBAAmB;YACnB,mBAAmB;YACnB,kBAAkB;YAClB,sBAAsB;AACtB,YAAA,qBAAqB,aAGrB,mBAAmB;YACnB,kBAAkB;YAClB,qBAAqB;YACrB,oBAAoB;YACpB,oBAAoB;YACpB,mBAAmB;YACnB,mBAAmB;YACnB,kBAAkB;YAClB,sBAAsB;YACtB,qBAAqB,CAAA,EAAA,CAAA,CAAA,EAAA;+GAGZ,eAAe,EAAA,CAAA,CAAA,EAAA;;2FAAf,eAAe,EAAA,UAAA,EAAA,CAAA;kBA1B3B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,OAAO,EAAE;wBACP,mBAAmB;wBACnB,kBAAkB;wBAClB,qBAAqB;wBACrB,oBAAoB;wBACpB,oBAAoB;wBACpB,mBAAmB;wBACnB,mBAAmB;wBACnB,kBAAkB;wBAClB,sBAAsB;wBACtB,qBAAqB;AACtB,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,mBAAmB;wBACnB,kBAAkB;wBAClB,qBAAqB;wBACrB,oBAAoB;wBACpB,oBAAoB;wBACpB,mBAAmB;wBACnB,mBAAmB;wBACnB,kBAAkB;wBAClB,sBAAsB;wBACtB,qBAAqB;AACtB,qBAAA;AACF,iBAAA,CAAA;;;AC/CD;;;AAGG;;ACHH;;;AAGG;;ACHH;;;AAGG;MAuLU,mBAAmB,CAAA;AA9JhC,IAAA,WAAA,GAAA;AA6KqB,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,YAAY,EAAqB,CAAC;;AAEpD,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,YAAY,EAAa,CAAC;AAC7C,QAAA,IAAA,CAAA,UAAU,GAAG,IAAI,YAAY,EAAa,CAAC;AAC3C,QAAA,IAAA,CAAA,UAAU,GAAG,IAAI,YAAY,EAAa,CAAC;AAC3C,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,YAAY,EAAa,CAAC;QAE7D,IAAS,CAAA,SAAA,GAAW,YAAY,CAAC;AAmFlC,KAAA;AAjFC;;;;;;AAMG;IACH,cAAc,CAAC,SAA0B,EAAE,SAAqB,EAAA;AAC9D,QAAA,OAAO,EACL,CAAC,IAAI,CAAC,cAAc;YACpB,SAAS,KAAK,IAAI,CAAC,YAAY;aAC9B,CAAC,IAAI,CAAC,QAAQ,KAAK,MAAM,IAAI,SAAS,KAAK,MAAM,MAAM,IAAI,CAAC,QAAQ,KAAK,OAAO,IAAI,SAAS,KAAK,MAAM,CAAC,CAAC,CAC5G,CAAC;KACH;AAED,IAAA,YAAY,CAAC,IAAU,EAAA;QACrB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;KAC3C;;AAGD,IAAA,YAAY,CAAC,IAAsB,EAAA;AACjC,QAAA,MAAM,KAAK,GAAG,IAAI,YAAY,SAAS,GAAG,IAAI,GAAG,IAAI,SAAS,CAAC,IAAI,CAAC,CAAC;QACrE,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,WAAW,CAAC,kBAAkB,CAAC;;AAG1E,QAAA,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,SAAS,EAAE;AAC5B,YAAA,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,EAAE,EAAE,SAAS,CAAC,UAAU,EAAE,EAAE,SAAS,CAAC,UAAU,EAAE,CAAC,CAAC;SACpF;AAED,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAC7B;AAED,IAAA,aAAa,CAAC,KAAgB,EAAA;AAC5B,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC7D,QAAA,IAAI,IAAI,CAAC,YAAY,KAAK,OAAO,EAAE;AACjC,YAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;AACnB,YAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SAC7B;aAAM;AACL,YAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC9B,YAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,YAAY,EAAE,IAAI,EAAE,KAAK,CAAC,UAAU,EAAE,CAAC,CAAC;SAC5E;KACF;AAED,IAAA,eAAe,CAAC,KAAgB,EAAA;AAC9B,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC,CAAC;AACjE,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;AACnB,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAC7B;AAED,IAAA,YAAY,CAAC,KAAgB,EAAA;AAC3B,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;AAC3D,QAAA,IAAI,IAAI,CAAC,YAAY,KAAK,MAAM,EAAE;AAChC,YAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;AACnB,YAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SAC7B;aAAM;AACL,YAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC9B,YAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,YAAY,EAAE,IAAI,EAAE,KAAK,CAAC,UAAU,EAAE,CAAC,CAAC;SAC5E;KACF;AAED,IAAA,cAAc,CAAC,KAAgB,EAAA;AAC7B,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;AAC3D,QAAA,IAAI,IAAI,CAAC,YAAY,KAAK,QAAQ,EAAE;AAClC,YAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;AACnB,YAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SAC7B;aAAM;AACL,YAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC9B,YAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC,UAAU,EAAE,CAAC,CAAC;SACjE;KACF;AAED,IAAA,WAAW,CAAC,OAAsB,EAAA;QAChC,IAAI,OAAO,CAAC,UAAU,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,YAAY,EAAE;AAC1D,YAAA,IAAI,CAAC,UAAU,GAAG,IAAI,SAAS,EAAE,CAAC;SACnC;;;AAGD,QAAA,IAAI,OAAO,CAAC,SAAS,IAAI,OAAO,CAAC,SAAS,CAAC,YAAY,KAAK,MAAM,EAAE;AAClE,YAAA,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC;SACzB;KACF;8GAxGU,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAnB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,mBAAmB,EAIV,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,EAAA,UAAA,EAAA,YAAA,EAAA,YAAA,EAAA,cAAA,EAAA,SAAA,EAAA,WAAA,EAAA,QAAA,EAAA,CAAA,UAAA,EAAA,UAAA,EAAA,gBAAgB,CAEhB,EAAA,MAAA,EAAA,QAAA,EAAA,cAAA,EAAA,CAAA,gBAAA,EAAA,gBAAA,EAAA,gBAAgB,CA9J1B,EAAA,WAAA,EAAA,aAAA,EAAA,YAAA,EAAA,cAAA,EAAA,UAAA,EAAA,YAAA,EAAA,aAAA,EAAA,eAAA,EAAA,UAAA,EAAA,YAAA,EAAA,KAAA,EAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,EAAA,WAAA,EAAA,aAAA,EAAA,YAAA,EAAA,cAAA,EAAA,UAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,EAAA,SAAA,EAAA,WAAA,EAAA,EAAA,QAAA,EAAA,CAAA,YAAA,CAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAoJT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACS,eAAe,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,mBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,QAAA,EAAA,CAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,kBAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,QAAA,CAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,qBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,QAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,oBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,QAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,oBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,QAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,mBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,QAAA,EAAA,CAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,mBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,QAAA,EAAA,CAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,kBAAA,EAAA,QAAA,EAAA,YAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,sBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,qBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,QAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,kBAAkB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,GAAA,CAAA,0BAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,gBAAA,EAAA,SAAA,EAAA,uBAAA,EAAA,aAAA,EAAA,WAAA,EAAA,UAAA,EAAA,eAAA,EAAA,cAAA,EAAA,oBAAA,EAAA,cAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,mBAAA,EAAA,QAAA,EAAA,YAAA,EAAA,cAAA,EAAA,cAAA,CAAA,EAAA,OAAA,EAAA,CAAA,YAAA,CAAA,EAAA,QAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,WAAW,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;;2FAG/C,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBA9J/B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;;AAET,oBAAA,QAAQ,EAAE,aAAa;AACvB,oBAAA,QAAQ,EAAE,YAAY;oBACtB,aAAa,EAAE,iBAAiB,CAAC,IAAI;oBACrC,eAAe,EAAE,uBAAuB,CAAC,MAAM;AAC/C,oBAAA,QAAQ,EAAE,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAoJT,EAAA,CAAA;AACD,oBAAA,OAAO,EAAE,CAAC,eAAe,EAAE,kBAAkB,EAAE,WAAW,CAAC;AAC3D,oBAAA,UAAU,EAAE,IAAI;AACjB,iBAAA,CAAA;8BAEU,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBACG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBACG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBACkC,QAAQ,EAAA,CAAA;sBAA/C,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAA;gBAC7B,MAAM,EAAA,CAAA;sBAAd,KAAK;gBACkC,cAAc,EAAA,CAAA;sBAArD,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAA;gBAC7B,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBACG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBACG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBACG,aAAa,EAAA,CAAA;sBAArB,KAAK;gBACG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBACG,KAAK,EAAA,CAAA;sBAAb,KAAK;gBACG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBAEa,WAAW,EAAA,CAAA;sBAA7B,MAAM;gBAEY,YAAY,EAAA,CAAA;sBAA9B,MAAM;gBACY,UAAU,EAAA,CAAA;sBAA5B,MAAM;gBACY,UAAU,EAAA,CAAA;sBAA5B,MAAM;gBACY,SAAS,EAAA,CAAA;sBAA3B,MAAM;;;MCxDI,uBAAuB,CAAA;AA4BlC,IAAA,IAAI,aAAa,GAAA;AACf,QAAA,OAAO,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC;KACxB;AAED,IAAA,IAAI,SAAS,GAAA;AACX,QAAA,OAAO,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,aAAa,IAAI,CAAC,CAAC,IAAI,CAAC,WAAW,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC;KACpF;AAED,IAAA,IAAI,aAAa,GAAA;AACf,QAAA,OAAO,IAAI,CAAC,GAAG,KAAK,KAAK;cACrB,EAAE,KAAK,EAAE,CAAA,EAAG,IAAI,CAAC,iBAAiB,EAAE,SAAS,CAAA,EAAA,CAAI,EAAE;AACrD,cAAE,EAAE,IAAI,EAAE,CAAG,EAAA,IAAI,CAAC,iBAAiB,EAAE,SAAS,CAAI,EAAA,CAAA,EAAE,CAAC;KACxD;AAED,IAAA,WAAA,CACS,iBAAoC,EACpC,GAAsB,EACrB,MAAc,EACd,IAA6B,EAAA;QAH9B,IAAiB,CAAA,iBAAA,GAAjB,iBAAiB,CAAmB;QACpC,IAAG,CAAA,GAAA,GAAH,GAAG,CAAmB;QACrB,IAAM,CAAA,MAAA,GAAN,MAAM,CAAQ;QACd,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAyB;QA5CC,IAAM,CAAA,MAAA,GAAY,KAAK,CAAC;QAavD,IAAG,CAAA,GAAA,GAAc,KAAK,CAAC;AAEb,QAAA,IAAA,CAAA,eAAe,GAAG,IAAI,YAAY,EAAqB,CAAC;AACxD,QAAA,IAAA,CAAA,cAAc,GAAG,IAAI,YAAY,EAAmB,CAAC;AACrD,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,YAAY,EAAQ,CAAC;QAEvD,IAAS,CAAA,SAAA,GAAW,YAAY,CAAC;QACjC,IAAY,CAAA,YAAA,GAA8B,MAAM,CAAC;QACjD,IAAW,CAAA,WAAA,GAAqD,IAAI,CAAC;AACrE,QAAA,IAAA,CAAA,UAAU,GAAkB,EAAE,CAAC;AAC/B,QAAA,IAAA,CAAA,cAAc,GAAc,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;AAC3C,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,OAAO,EAAW,CAAC;AA4OlC,QAAA,IAAA,CAAA,iBAAiB,GAAmB,CAAC,KAAoB,KAAK,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;AAErH,QAAA,IAAA,CAAA,eAAe,GAAmB,CAAC,KAAoB,KAAK,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;KAzN7G;IAEJ,QAAQ,GAAA;AACN,QAAA,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,YAAY,EAAE,IAAI,CAAC,iBAAiB,CAAC,gBAAgB,CAAC;AAChF,aAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;aAC9B,SAAS,CAAC,MAAK;YACd,IAAI,CAAC,gBAAgB,EAAE,CAAC;AACxB,YAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;AAC1B,SAAC,CAAC,CAAC;AAEL,QAAA,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,MAAK;YACjC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,WAAW,CAAC;AAC5C,iBAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;iBAC9B,SAAS,CAAC,KAAK,IAAI,KAAK,CAAC,cAAc,EAAE,CAAC,CAAC;AAChD,SAAC,CAAC,CAAC;KACJ;AAED,IAAA,WAAW,CAAC,OAAsB,EAAA;;QAEhC,IAAI,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,YAAY,EAAE;AAC5C,YAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;gBACjB,IAAI,CAAC,gBAAgB,EAAE,CAAC;aACzB;SACF;AACD,QAAA,IAAI,OAAO,CAAC,SAAS,EAAE;AACrB,YAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC;SACpC;AACD,QAAA,IAAI,OAAO,CAAC,kBAAkB,EAAE;YAC9B,IAAI,CAAC,gBAAgB,EAAE,CAAC;SACzB;KACF;IAED,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACzB,QAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;KAC1B;IAED,gBAAgB,GAAA;AACd,QAAA,MAAM,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,QAAQ,EAAE;AAClD,cAAE,IAAI,CAAC,iBAAiB,CAAC,KAAK;cAC5B,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,IAAI,CAAC,kBAAmB,CAAC,CAAC;QAC/D,IAAI,CAAC,iBAAiB,CAAC,aAAa,CAClC,UAAU,EACV,IAAI,CAAC,aAAa,EAClB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,YAAY,CAAmB,CACvD,CAAC;KACH;IAED,SAAS,GAAA;AACP,QAAA,MAAM,UAAU,GAAG,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC;AAC7E,QAAA,MAAM,KAAK,GAAc,IAAI,CAAC,OAAO;cAChC,IAAI,CAAC,iBAAiB,CAAC,KAAqB,CAAC,UAAU,CAAC;AAC3D,cAAG,IAAI,CAAC,iBAAiB,CAAC,KAAmB,CAAC;AAChD,QAAA,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC;AAClC,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;KACtB;AAED,IAAA,YAAY,CAAC,KAAgB,EAAA;QAC3B,IAAI,CAAC,qBAAqB,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;KACnD;AAED,IAAA,WAAW,CAAC,KAAgB,EAAA;AAC1B,QAAA,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;YACjB,OAAO;SACR;AACD,QAAA,MAAM,eAAe,GAAG,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC;QAClF,MAAM,IAAI,GAAI,IAAI,CAAC,iBAAiB,CAAC,KAAqB,CAAC,eAAe,CAAE,CAAC;QAC7E,IAAI,IAAI,EAAE;AACR,YAAA,IAAI,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE;gBAC3B,IAAI,CAAC,UAAU,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;aACjC;iBAAM;gBACL,IAAI,CAAC,UAAU,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;aACjC;SACF;KACF;IAED,iBAAiB,CAAC,gBAAmC,EAAE,QAAwB,EAAA;AAC7E,QAAA,IAAI,IAAI,CAAC,OAAO,EAAE;YAChB,MAAM,KAAK,GAAG,IAAI,CAAC,iBAAiB,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;AAC9D,YAAA,IAAI,KAAK,KAAK,CAAC,EAAE;AACf,gBAAA,IAAI,CAAC,SAAS,GAAG,CAAC,gBAAgB,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAA6B,CAAC;aACzF;iBAAM;AACL,gBAAA,IAAI,CAAC,SAAS,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,gBAAgB,CAAC,IAAI,CAA6B,CAAC;aACzF;AACD,YAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC;gBACxB,IAAI,EAAE,IAAI,CAAC,SAAqC;AAChD,gBAAA,IAAI,EAAG,IAAI,CAAC,iBAAiB,CAAC,UAA4B,CAAC,GAAG,CAAC,CAAC,IAAI,CAAE,CAAC,UAAU,CAAiB;AACnG,aAAA,CAAC,CAAC;SACJ;aAAM;AACL,YAAA,IAAI,CAAC,SAAS,GAAG,gBAAgB,CAAC,IAAkB,CAAC;AACrD,YAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,SAAuB,EAAE,IAAI,EAAE,gBAAgB,CAAC,IAAY,EAAE,CAAC,CAAC;SACxG;KACF;IAED,kBAAkB,CAAC,KAAgB,EAAE,QAAuB,EAAA;AAC1D,QAAA,IAAI,IAAI,CAAC,OAAO,EAAE;YAChB,MAAM,UAAU,GAAkB,EAAE,CAAC;AACrC,YAAA,UAAU,CAAC,IAAI,CAAC,iBAAiB,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,GAAG,KAAK,CAAC;YACpE,IAAI,CAAC,iBAAiB,CAAC,aAAa,CAClC,UAAU,EACV,IAAI,CAAC,aAAa,EAClB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,YAAY,EAAE,QAAQ,CAAmB,CACjE,CAAC;SACH;aAAM;AACL,YAAA,IAAI,CAAC,iBAAiB,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;SAC7C;KACF;IAED,YAAY,CAAC,KAAgB,EAAE,QAAwB,EAAA;AACrD,QAAA,IAAI,IAAI,CAAC,OAAO,EAAE;YAChB,MAAM,QAAQ,GAAG,SAAS,CAAC,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAkB,CAAC;YAC1E,MAAM,KAAK,GAAG,IAAI,CAAC,iBAAiB,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;AAC9D,YAAA,QAAQ,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;AAC3D,YAAA,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;SAC3C;aAAM;AACL,YAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,IAAI,CAAC,iBAAiB,CAAC,KAAkB,CAAC,CAAC;YACpF,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;SAC3C;QACD,IAAI,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACnD,IAAI,CAAC,gBAAgB,EAAE,CAAC;KACzB;AAED,IAAA,qBAAqB,CAAC,KAAgB,EAAE,SAAA,GAAqB,IAAI,EAAA;AAC/D,QAAA,IAAI,IAAI,CAAC,OAAO,EAAE;YAChB,MAAM,aAAa,GAAkB,SAAS,CAAC,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAgB,CAAC;AAC5F,YAAA,MAAM,WAAW,GAAkB,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC;YACtE,IAAI,QAAQ,GAAkB,WAAW,CAAC;AAE1C,YAAA,aAAa,CAAC,IAAI,CAAC,iBAAiB,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC,GAAG,KAAK,CAAC;AAC1E,YAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,iBAAiB,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC,GAAG,IAAI,CAAC;AAC/E,YAAA,IAAI,CAAC,UAAU,GAAG,aAAa,CAAC;YAEhC,IAAI,SAAS,EAAE;AACb,gBAAA,IAAI,IAAI,CAAC,MAAM,EAAE;;AAEf,oBAAA,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;AAC1C,oBAAA,IAAI,QAAQ,KAAK,OAAO,EAAE;AACxB,wBAAA,aAAa,CAAC,IAAI,CAAC,iBAAiB,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,GAAG,IAAI,CAAC;AACtE,wBAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,iBAAiB,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,GAAG,KAAK,CAAC;qBAC9E;AACD,oBAAA,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;AAC/C,oBAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;oBACxC,IAAI,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,IAAI,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE;wBACzF,IAAI,CAAC,eAAe,EAAE,CAAC;AACvB,wBAAA,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;qBAC1C;iBACF;qBAAM;AACL;;AAEG;AACH,oBAAA,IAAI,cAAc,CAAC,aAAa,CAAC,EAAE;AACjC,wBAAA,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;AAC1C,wBAAA,aAAa,CAAC,IAAI,CAAC,iBAAiB,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,GAAG,IAAI,CAAC;AACtE,wBAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,iBAAiB,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,GAAG,KAAK,CAAC;qBAC9E;AAED,oBAAA,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;AAC/C;;;AAGG;oBACH,IAAI,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,IAAI,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE;AACzF,wBAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;wBACxC,IAAI,CAAC,eAAe,EAAE,CAAC;AACvB,wBAAA,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;qBAC1C;AAAM,yBAAA,IAAI,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,EAAE;AACxC,wBAAA,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;AAC1C,wBAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;qBAC3C;iBACF;aACF;iBAAM;AACL,gBAAA,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;aAChD;YACD,IAAI,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;SACxD;aAAM;AACL,YAAA,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;YACvC,IAAI,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAEnD,IAAI,SAAS,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE;AACtC,gBAAA,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;aAC1C;SACF;QAED,IAAI,CAAC,gBAAgB,EAAE,CAAC;KACzB;AAED,IAAA,YAAY,CAAC,IAAmB,EAAA;QAC9B,OAAO,IAAI,KAAK,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC;KAC3C;IAED,YAAY,CAAC,SAAoC,EAAE,QAAwB,EAAA;AACzE,QAAA,IAAI,IAAI,CAAC,OAAO,EAAE;YAChB,OAAO,SAAS,CAAC,IAAI,CAAC,iBAAiB,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAe,CAAC;SACjF;aAAM;AACL,YAAA,OAAO,SAAuB,CAAC;SAChC;KACF;;AAGD,IAAA,QAAQ,CAAC,QAAwB,EAAA;AAC/B,QAAA,IAAI,IAAI,CAAC,OAAO,EAAE;AAChB,YAAA,OAAO,CAAE,IAAI,CAAC,iBAAiB,CAAC,KAAqB,IAAI,EAAE,EAAE,IAAI,CAAC,iBAAiB,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC;SAC/G;aAAM;AACL,YAAA,OAAO,IAAI,CAAC,iBAAiB,CAAC,KAAkB,CAAC;SAClD;KACF;AAED,IAAA,aAAa,CAAC,QAAwB,EAAA;AACpC,QAAA,IAAI,IAAI,CAAC,OAAO,EAAE;AAChB,YAAA,OAAQ,IAAI,CAAC,iBAAiB,CAAC,UAA0B,CAAC,IAAI,CAAC,iBAAiB,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC;SAC5G;aAAM;AACL,YAAA,OAAO,IAAI,CAAC,iBAAiB,CAAC,UAAuB,CAAC;SACvD;KACF;AAMD,IAAA,YAAY,CAAC,aAA4B,EAAA;QACvC,MAAM,KAAK,GAAG,IAAI,CAAC,iBAAiB,CAAC,cAAc,EAAE,CAAC;QACtD,MAAM,eAAe,GAAG,CAAC,IAAI,CAAC,iBAAiB,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;AACvE,QAAA,OAAO,aAAa,CAAC,aAAa,CAAC,KAAK,CAAE,EAAE,IAAI,CAAC,YAAY,EAAE,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC;KACxF;AAED,IAAA,aAAa,CAAC,aAA4B,EAAA;AACxC,QAAA,QACE,aAAa,CAAC,aAAa,CAAC,CAAC,CAAE,EAAE,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,iBAAiB,CAAC;AAC3E,YAAA,aAAa,CAAC,aAAa,CAAC,CAAC,CAAE,EAAE,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,eAAe,CAAC,EACzE;KACH;AAED,IAAA,SAAS,CAAC,KAAsB,EAAE,MAAA,GAAkB,KAAK,EAAA;AACvD,QAAA,IAAI,IAAI,CAAC,OAAO,EAAE;AAChB,YAAA,OAAO,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,KAAoB,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,KAAoB,CAAC,CAAC;SACpG;aAAM;AACL,YAAA,OAAO,aAAa,CAAC,KAAkB,EAAE,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;SAChF;KACF;AAED,IAAA,cAAc,CAAC,QAAwB,EAAA;QACrC,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,WAAW,EAAE;AACrC,YAAA,OAAO,IAAI,CAAC,WAAW,YAAY,KAAK;AACtC,kBAAE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,iBAAiB,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;AACnE,kBAAE,IAAI,CAAC,WAAW,CAAC;SACtB;AACD,QAAA,OAAO,IAAI,CAAC;KACb;AAED,IAAA,kBAAkB,CAAC,GAAqC,EAAA;AACtD,QAAA,MAAM,KAAK,GAAG,OAAO,GAAG,KAAK,UAAU,GAAG,GAAG,EAAE,GAAG,GAAG,CAAC;QACtD,IAAI,KAAK,EAAE;YACT,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC,IAAI,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACpF,YAAA,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;SAC1C;KACF;IAED,uBAAuB,GAAA;QACrB,IAAI,CAAC,eAAe,EAAE,CAAC;KACxB;AAED,IAAA,kBAAkB,CAAC,GAAqC,EAAA;AACtD,QAAA,IAAI,OAAO,GAAG,KAAK,UAAU,EAAE;YAC7B,IAAI,CAAC,UAAU,GAAG,CAAC,IAAI,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;SAClE;KACF;AAED,IAAA,aAAa,CAAC,GAAkB,EAAA;AAC9B,QAAA,OAAO,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;KACpC;AAED,IAAA,IAAI,CAAC,QAAuB,EAAA;AAC1B,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,iBAAiB,CAAC,WAAW,KAAK,QAAQ,CAAC;QAC9F,OAAO,CAAC,IAAI,CAAC;KACd;IAEO,eAAe,GAAA;AACrB,QAAA,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;KACtB;IAEO,gBAAgB,GAAA;AACtB,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;AACjB,YAAA,MAAM,QAAQ,GAAG,OAAO,IAAI,CAAC,QAAQ,KAAK,QAAQ,GAAG,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;AACxE,YAAA,IAAI,IAAI,CAAC,OAAO,EAAE;AAChB,gBAAA,MAAM,KAAK,GAAG,IAAI,CAAC,iBAAiB,CAAC,KAAoB,CAAC;gBAC1D,IAAI,CAAC,WAAW,GAAG;oBACjB,IAAI,CAAC,mBAAmB,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC;oBACrD,IAAI,CAAC,mBAAmB,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC;iBACpD,CAAC;aACH;iBAAM;AACL,gBAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,mBAAmB,CAAC,QAAQ,EAAE,IAAI,CAAC,iBAAiB,CAAC,KAAkB,CAAC,CAAC;aAClG;SACF;aAAM;AACL,YAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;SACzB;KACF;AAEO,IAAA,mBAAmB,CACzB,MAA0B,EAC1B,KAAgB,EAChB,OAA6B,EAAA;AAE7B,QAAA,IAAI,cAAc,CAAC;QACnB,IAAI,OAAO,EAAE;AACX,YAAA,cAAc,GAAG,OAAO,KAAK,OAAO,GAAG,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,eAAe,CAAC;SACtF;aAAM;AACL,YAAA,cAAc,GAAG,IAAI,CAAC,YAAY,CAAC;SACpC;AACD,QAAA,OAAO,EAAE,GAAG,MAAM,EAAE,GAAG,aAAa,CAAC,KAAK,EAAE,cAAc,CAAC,EAAE,CAAC;KAC/D;IAEO,WAAW,CAAC,QAA0B,EAAE,QAA0B,EAAA;AACxE,QAAA,QAAQ,GAAG,QAAQ,IAAI,IAAI,SAAS,EAAE,CAAC;AACvC,QAAA,QAAQ,GAAG,QAAQ,IAAI,IAAI,SAAS,EAAE,CAAC;AACvC,QAAA,OAAO,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,EAAE,QAAQ,CAAC,UAAU,EAAE,EAAE,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC;KAC3F;8GA1WU,uBAAuB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAC,iBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,MAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;kGAAvB,uBAAuB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,CAAA,SAAA,EAAA,SAAA,EACd,gBAAgB,CAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,QAAA,EAChB,gBAAgB,CAAA,EAAA,QAAA,EAAA,CAAA,UAAA,EAAA,UAAA,EAChB,gBAAgB,CAIhB,EAAA,MAAA,EAAA,QAAA,EAAA,YAAA,EAAA,cAAA,EAAA,YAAA,EAAA,cAAA,EAAA,SAAA,EAAA,CAAA,WAAA,EAAA,WAAA,EAAA,gBAAgB,CAChB,EAAA,OAAA,EAAA,CAAA,SAAA,EAAA,SAAA,EAAA,gBAAgB,CAlG1B,EAAA,QAAA,EAAA,UAAA,EAAA,WAAA,EAAA,aAAA,EAAA,MAAA,EAAA,QAAA,EAAA,UAAA,EAAA,YAAA,EAAA,SAAA,EAAA,WAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,GAAA,EAAA,KAAA,EAAA,EAAA,OAAA,EAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,QAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAsFT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACS,mBAAmB,EAAE,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,cAAA,EAAA,WAAA,EAAA,UAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,aAAA,EAAA,cAAA,EAAA,YAAA,EAAA,eAAA,EAAA,YAAA,EAAA,OAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,aAAA,EAAA,cAAA,EAAA,YAAA,EAAA,YAAA,EAAA,WAAA,CAAA,EAAA,QAAA,EAAA,CAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,gBAAgB,EAAE,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,uBAAuB,yQAAE,OAAO,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;;2FAGtE,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBAhGnC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;oBACT,aAAa,EAAE,iBAAiB,CAAC,IAAI;oBACrC,eAAe,EAAE,uBAAuB,CAAC,MAAM;;AAE/C,oBAAA,QAAQ,EAAE,kBAAkB;AAC5B,oBAAA,QAAQ,EAAE,gBAAgB;AAC1B,oBAAA,QAAQ,EAAE,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAsFT,EAAA,CAAA;oBACD,OAAO,EAAE,CAAC,mBAAmB,EAAE,gBAAgB,EAAE,uBAAuB,EAAE,OAAO,CAAC;AAClF,oBAAA,UAAU,EAAE,IAAI;AACjB,iBAAA,CAAA;iKAEyC,OAAO,EAAA,CAAA;sBAA9C,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAA;gBACE,MAAM,EAAA,CAAA;sBAA7C,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAA;gBACE,QAAQ,EAAA,CAAA;sBAA/C,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAA;gBAC7B,MAAM,EAAA,CAAA;sBAAd,KAAK;gBACG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBACG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBACkC,SAAS,EAAA,CAAA;sBAAhD,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAA;gBACE,OAAO,EAAA,CAAA;sBAA9C,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAA;gBAC7B,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBACG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBACG,MAAM,EAAA,CAAA;sBAAd,KAAK;gBACG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBACG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBACG,kBAAkB,EAAA,CAAA;sBAA1B,KAAK;gBACG,GAAG,EAAA,CAAA;sBAAX,KAAK;gBAEa,eAAe,EAAA,CAAA;sBAAjC,MAAM;gBACY,cAAc,EAAA,CAAA;sBAAhC,MAAM;gBACY,QAAQ,EAAA,CAAA;sBAA1B,MAAM;;;ACpFT,MAAM,iBAAiB,GAAG,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC;AACnD,MAAM,qBAAqB,GAAgB,YAAY,CAAC;AAKxD;;AAEG;MAsLU,qBAAqB,CAAA;AAwDhC,IAAA,IAAa,UAAU,GAAA;QACrB,OAAO,IAAI,CAAC,QAAQ,CAAC;KACtB;IAED,IAAI,UAAU,CAAC,KAAmC,EAAA;AAChD,QAAA,IAAI,CAAC,QAAQ,GAAG,OAAO,KAAK,KAAK,QAAQ,GAAG,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC;KACtE;AAuBD,IAAA,IAAI,aAAa,GAAA;;AAEf,QAAA,OAAO,IAAI,CAAC,mBAAmB,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC;KACtE;IAED,eAAe,GAAA;AACb,QAAA,IAAI,IAAI,CAAC,WAAW,EAAE;YACpB,IAAI,CAAC,KAAK,EAAE,CAAC;SACd;QAED,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE;AAC3C,YAAA,IAAI,CAAC,gBAAgB;AAClB,iBAAA,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC;AACxB,iBAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;iBAC9B,SAAS,CAAC,MAAK;gBACd,IAAI,CAAC,4BAA4B,EAAE,CAAC;AACtC,aAAC,CAAC,CAAC;SACN;AAED,QAAA,IAAI,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,QAAQ,IAAG;YAC1F,IAAI,QAAQ,EAAE;AACZ,gBAAA,IAAI,CAAC,iBAAiB,CAAC,WAAW,GAAG,QAAQ,CAAC;aAC/C;YACD,IAAI,CAAC,KAAK,EAAE,CAAC;YACb,IAAI,CAAC,4BAA4B,EAAE,CAAC;AACtC,SAAC,CAAC,CAAC;AAEH,QAAA,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE;AAC3B,YAAA,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC;;;YAG5B,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,WAAW,CAAC;AAClD,iBAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;iBAC9B,SAAS,CAAC,KAAK,IAAG;gBACjB,IAAK,KAAK,CAAC,MAA2B,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,OAAO,EAAE;oBACxE,KAAK,CAAC,cAAc,EAAE,CAAC;iBACxB;aACF,CAAC,CACL,CAAC;SACH;KACF;IAED,4BAA4B,GAAA;AAC1B,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,iBAAiB,EAAE,KAAK,EAAE,aAAa,CAAC,WAAW,IAAI,CAAC,CAAC;AAEhF,QAAA,MAAM,SAAS,GAAG,EAAE,QAAQ,EAAE,UAAU,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,UAAU,CAAA,EAAA,CAAI,EAAE,CAAC;QAC1E,IAAI,CAAC,iBAAiB,CAAC,SAAS;AAC9B,YAAA,IAAI,CAAC,iBAAiB,CAAC,WAAW,KAAK,MAAM;AAC3C,kBAAE,CAAC;AACH,kBAAE,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,gBAAgB,EAAE,aAAa,CAAC,WAAW,IAAI,CAAC,CAAC;AAE9E,QAAA,IAAI,IAAI,CAAC,GAAG,KAAK,KAAK,EAAE;AACtB,YAAA,IAAI,CAAC,cAAc,GAAG,EAAE,GAAG,SAAS,EAAE,KAAK,EAAE,CAAA,EAAG,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAA,EAAA,CAAI,EAAE,CAAC;SACxF;aAAM;AACL,YAAA,IAAI,CAAC,cAAc,GAAG,EAAE,GAAG,SAAS,EAAE,IAAI,EAAE,CAAA,EAAG,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAA,EAAA,CAAI,EAAE,CAAC;SACvF;AAED,QAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;KACzB;AAED,IAAA,QAAQ,CAAC,QAAwB,EAAA;AAC/B,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;AACjB,YAAA,OAAO,SAAS,CAAC;SAClB;QACD,OAAO,IAAI,CAAC,OAAO;cACf,QAAQ,KAAK,MAAM;AACnB,kBAAE,IAAI,CAAC,iBAAiB,EAAE,KAAK,CAAC,aAAa;AAC7C,kBAAE,IAAI,CAAC,iBAAiB,EAAE,IAAI,CAAC,aAAa;AAC9C,cAAE,IAAI,CAAC,WAAY,CAAC,aAAa,CAAC;KACrC;IAED,KAAK,GAAA;AACH,QAAA,MAAM,kBAAkB,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC;QAC7E,IAAI,IAAI,CAAC,QAAQ,CAAC,aAAa,KAAK,kBAAkB,EAAE;YACtD,kBAAkB,EAAE,KAAK,EAAE,CAAC;SAC7B;KACF;IAED,OAAO,CAAC,KAAiB,EAAE,QAAwB,EAAA;QACjD,KAAK,CAAC,cAAc,EAAE,CAAC;QACvB,IAAI,QAAQ,EAAE;YACZ,IAAI,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;SACxD;AACD,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;KACxB;;AAGD,IAAA,UAAU,CAAC,KAAiB,EAAA;QAC1B,KAAK,CAAC,cAAc,EAAE,CAAC;QACvB,IAAI,CAAC,WAAW,EAAE,CAAC;AACnB,QAAA,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,QAAQ,CAAO,KAAK,CAAC,aAAa,CAAC,EAAE;YACtE,IAAI,CAAC,aAAa,EAAE,CAAC;SACtB;AACD,QAAA,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;KACzB;;IAGD,IAAI,GAAA;AACF,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB,OAAO;SACR;QACD,IAAI,CAAC,IAAI,CAAC,aAAa,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;YAC3C,IAAI,CAAC,4BAA4B,EAAE,CAAC;AACpC,YAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;AACxB,YAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC/B,IAAI,CAAC,KAAK,EAAE,CAAC;AACb,YAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;SACzB;KACF;IAED,KAAK,GAAA;AACH,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB,OAAO;SACR;AACD,QAAA,IAAI,IAAI,CAAC,aAAa,EAAE;AACtB,YAAA,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;AACzB,YAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SACjC;KACF;AAED,IAAA,IAAI,SAAS,GAAA;QACX,OAAO,CAAC,IAAI,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,YAAY,CAAC;KAClG;IAED,aAAa,GAAA;AACX,QAAA,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;YACvB,OAAO;SACR;AAED,QAAA,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,iBAAiB,CAAC,KAAM,EAAE,IAAI,CAAC,EAAE;YAC7D,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,IAAI,cAAc,CAAC,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,EAAE;gBAC/F,MAAM,KAAK,GAAG,IAAI,CAAC,iBAAiB,CAAC,cAAc,EAAE,CAAC;gBACtD,MAAM,KAAK,GAAG,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;gBAClD,IAAI,CAAC,KAAK,CAAC,qBAAqB,CAAC,KAAM,EAAE,IAAI,CAAC,CAAC;gBAC/C,OAAO;aACR;YACD,IAAI,CAAC,gBAAgB,EAAE,CAAC;AACxB,YAAA,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;SAC1C;aAAM;YACL,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,IAAI,CAAC,iBAAiB,CAAC,YAAa,CAAC,CAAC;YACtE,IAAI,CAAC,KAAK,EAAE,CAAC;SACd;KACF;AAED,IAAA,eAAe,CAAC,KAAiB,EAAA;QAC/B,KAAK,CAAC,eAAe,EAAE,CAAC;QACxB,IAAI,CAAC,KAAK,EAAE,CAAC;AACb,QAAA,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE,EAAE;YAC/B,IAAI,CAAC,IAAI,EAAE,CAAC;SACb;KACF;AAED,IAAA,gBAAgB,CAAC,KAAoB,EAAA;AACnC,QAAA,IAAI,KAAK,CAAC,OAAO,KAAK,MAAM,EAAE;AAC5B,YAAA,IAAI,CAAC,iBAAiB,CAAC,SAAS,EAAE,CAAC;SACpC;KACF;;;;;AAMD,IAAA,gBAAgB,CAAC,QAAwC,EAAA;QACvD,IAAI,CAAC,gBAAgB,GAAG,QAAQ,CAAC,cAAc,CAAC,OAAO,CAAC;QACxD,IAAI,CAAC,gBAAgB,GAAG,QAAQ,CAAC,cAAc,CAAC,OAAO,CAAC;AACxD,QAAA,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;KAC1B;AAED,IAAA,YAAY,CAAC,KAAiB,EAAA;QAC5B,KAAK,CAAC,cAAc,EAAE,CAAC;QACvB,KAAK,CAAC,eAAe,EAAE,CAAC;AAExB,QAAA,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;AACvC,QAAA,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;KAC1C;IAED,gBAAgB,GAAA;AACd,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC;AAC9C,QAAA,IAAI,IAAI,CAAC,OAAO,EAAE;AAChB,YAAA,IAAI,CAAC,UAAU,GAAG,QAAQ,GAAI,QAAwB,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;SACjG;aAAM;YACL,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,QAAqB,CAAC,CAAC;SAC3D;AACD,QAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;KACzB;AAED,IAAA,WAAW,CAAC,KAAgB,EAAA;AAC1B,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,IAAK,KAAmB,CAAC,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;KACxF;AAED,IAAA,aAAa,CAAC,KAAa,EAAE,OAAA,GAAmB,KAAK,EAAA;AACnD;;;AAGG;AACH,QAAA,IACE,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO;AACtB,YAAA,IAAI,CAAC,QAAQ,CAAC,aAAa,KAAK,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC;AACjF,YAAA,CAAC,IAAI,CAAC,aAAa,EACnB;YACA,IAAI,CAAC,IAAI,EAAE,CAAC;YACZ,OAAO;SACR;QAED,MAAM,IAAI,GAAG,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;;AAExC,QAAA,IAAI,IAAI,IAAI,IAAI,CAAC,aAAa,EAAE;YAC9B,IAAI,CAAC,KAAK,CAAC,qBAAqB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;SACjD;KACF;AAED,IAAA,YAAY,CAAC,KAAY,EAAA;QACvB,IAAI,CAAC,aAAa,CAAE,KAAK,CAAC,MAA2B,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;KACpE;AAEO,IAAA,cAAc,CAAC,KAAa,EAAA;AAClC,QAAA,MAAM,IAAI,GAAG,IAAI,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;QAE5E,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,KAAK,KAAK,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE;AACvF,YAAA,OAAO,IAAI,CAAC;SACb;AAED,QAAA,OAAO,IAAI,CAAC;KACb;AAED,IAAA,cAAc,CAAC,QAAwB,EAAA;QACrC,OAAO,IAAI,CAAC,OAAO;AACjB,cAAE,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,iBAAiB,CAAC,cAAc,CAAC,QAAS,CAAC,CAAC;AACtE,cAAG,IAAI,CAAC,aAAwB,CAAC;KACpC;AAED,IAAA,YAAY,CAAC,KAAsB,EAAA;AACjC,QAAA,IAAI,KAAK,KAAK,IAAI,EAAE;AAClB,YAAA,OAAO,IAAI,CAAC;SACb;AAAM,aAAA,IAAI,IAAI,CAAC,OAAO,EAAE;YACvB,OAAO,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;SACpE;aAAM;YACL,OAAO,CAAC,KAAK,CAAC;SACf;KACF;;IAGD,mBAAmB,GAAA;AACjB,QAAA,OAAO,IAAI,CAAC,MAAM,KAAK,SAAS,CAAC;KAClC;;;;IAUD,WACS,CAAA,eAAgC,EAChC,iBAAoC,EACjC,IAAmB,EACnB,GAAsB,EACxB,QAAmB,EACnB,MAAc,EACd,UAAmC,EACnC,UAA6B,EAC7B,gBAAkC,EAClC,QAAkB,EAClB,QAA0B,EAC1B,cAA8B,EAAA;QAX/B,IAAe,CAAA,eAAA,GAAf,eAAe,CAAiB;QAChC,IAAiB,CAAA,iBAAA,GAAjB,iBAAiB,CAAmB;QACjC,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAe;QACnB,IAAG,CAAA,GAAA,GAAH,GAAG,CAAmB;QACxB,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAW;QACnB,IAAM,CAAA,MAAA,GAAN,MAAM,CAAQ;QACd,IAAU,CAAA,UAAA,GAAV,UAAU,CAAyB;QACnC,IAAU,CAAA,UAAA,GAAV,UAAU,CAAmB;QAC7B,IAAgB,CAAA,gBAAA,GAAhB,gBAAgB,CAAkB;QAClC,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAU;QAClB,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAkB;QAC1B,IAAc,CAAA,cAAA,GAAd,cAAc,CAAgB;QA9V/B,IAAa,CAAA,aAAA,GAAgB,qBAAqB,CAAC;AAK5D,QAAA,IAAA,CAAA,OAAO,GAAY,KAAK,CAAC;QAEzB,IAAG,CAAA,GAAA,GAAc,KAAK,CAAC;;QAGvB,IAAS,CAAA,SAAA,GAAqB,EAAE,CAAC;QACjC,IAAM,CAAA,MAAA,GAAqB,EAAE,CAAC;QAC9B,IAAW,CAAA,WAAA,GAAY,KAAK,CAAC;QAEtB,IAAS,CAAA,SAAA,GAA8B,MAAM,CAAC;QAC7C,IAAmB,CAAA,mBAAA,GAAY,KAAK,CAAC;QACrC,IAAc,CAAA,cAAA,GAAY,KAAK,CAAC;QAChC,IAAQ,CAAA,QAAA,GAAiC,KAAK,CAAC;QAC/C,IAAsB,CAAA,sBAAA,GAAY,IAAI,CAAC;;QAEP,IAAY,CAAA,YAAA,GAAY,IAAI,CAAC;QAC7B,IAAW,CAAA,WAAA,GAAY,KAAK,CAAC;QAC7B,IAAU,CAAA,UAAA,GAAY,KAAK,CAAC;QAC5B,IAAY,CAAA,YAAA,GAAY,KAAK,CAAC;QAC9B,IAAe,CAAA,eAAA,GAAY,KAAK,CAAC;QACjC,IAAQ,CAAA,QAAA,GAAY,KAAK,CAAC;QAIzD,IAAa,CAAA,aAAA,GAAsB,EAAE,CAAC;QACtC,IAAY,CAAA,YAAA,GAAW,iBAAiB,CAAC;QAEzC,IAAM,CAAA,MAAA,GAAyB,SAAS,CAAC;QACzC,IAAQ,CAAA,QAAA,GAAa,EAAE,CAAC;QAKO,IAAW,CAAA,WAAA,GAAY,IAAI,CAAC;QAC3D,IAAM,CAAA,MAAA,GAAe,MAAM,CAAC;QACG,IAAS,CAAA,SAAA,GAAY,IAAI,CAAC;QAEzD,IAAoB,CAAA,oBAAA,GAA0B,IAAI,CAAC;QACrC,IAAW,CAAA,WAAA,GAAqC,SAAS,CAAC;QAC1D,IAAY,CAAA,YAAA,GAAoC,UAAU,CAAC;QAC3D,IAAU,CAAA,UAAA,GAAG,KAAK,CAAC;QACjC,IAAI,CAAA,IAAA,GAAkB,IAAI,CAAC;QAC3B,IAAW,CAAA,WAAA,GAAgB,YAAY,CAAC;QACT,IAAgB,CAAA,gBAAA,GAAY,KAAK,CAAC;AAEvD,QAAA,IAAA,CAAA,eAAe,GAAG,IAAI,YAAY,EAAqB,CAAC;AACxD,QAAA,IAAA,CAAA,kBAAkB,GAAG,IAAI,YAAY,EAAsB,CAAC;AAC5D,QAAA,IAAA,CAAA,MAAM,GAAG,IAAI,YAAY,EAAyB,CAAC;AACnD,QAAA,IAAA,CAAA,cAAc,GAAG,IAAI,YAAY,EAAW,CAAC;AAmBxD,QAAA,IAAA,CAAA,QAAQ,GAAa,MAAM,CAAC,QAAQ,CAAC,CAAC;QAE9C,IAAS,CAAA,SAAA,GAAW,EAAE,CAAC;QAEvB,IAAS,CAAA,SAAA,GAAG,YAAY,CAAC;QAEzB,IAAc,CAAA,cAAA,GAAW,EAAE,CAAC;AAC5B,QAAA,IAAA,CAAA,WAAW,GAAY,KAAK,CAAC;AAC7B,QAAA,IAAA,CAAA,gBAAgB,GAA6B,CAAC,GAAG,6BAA6B,CAAC,CAAC;QAChF,IAAgB,CAAA,gBAAA,GAA4B,OAAO,CAAC;QACpD,IAAgB,CAAA,gBAAA,GAA0B,QAAQ,CAAC;AAwPnD,QAAA,IAAA,CAAA,WAAW,GAAG,MAAM,CAAC,sBAAsB,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;QACrE,IAAmB,CAAA,mBAAA,GAAG,MAAM,CAAC,mBAAmB,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;QACtE,IAAqB,CAAA,qBAAA,GAAG,MAAM,CAAC,qBAAqB,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;;;;;AAsLlF,QAAA,IAAA,CAAA,UAAU,GAAiB,MAAM,KAAK,CAAC,CAAC;AACxC,QAAA,IAAA,CAAA,WAAW,GAAkB,MAAM,KAAK,CAAC,CAAC;QAnKxC,IAAI,CAAC,MAAM,GAAG,IAAI,gBAAgB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;KACrD;IAED,QAAQ,GAAA;QACN,IAAI,CAAC,mBAAmB,EAAE,iBAAiB;aACxC,IAAI,CACH,oBAAoB,CAAC,CAAC,GAAG,EAAE,GAAG,KAAI;AAChC,YAAA,OAAO,GAAG,CAAC,MAAM,KAAK,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,WAAW,KAAK,GAAG,CAAC,WAAW,CAAC;AAC1E,SAAC,CAAC,EACF,cAAc,CAAC,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,qBAAqB,CAAC,YAAY,GAAGC,EAAY,CAAC,KAAK,CAAC,CAAC,EAC1G,GAAG,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,EAAE,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,GAAG,EAAE,GAAG,MAAM,EAAE,WAAW,EAAE,CAAC,CAAC,EAC/F,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CACzB;aACA,SAAS,CAAC,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,KAAI;AACrC,YAAA,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;AAC5C,SAAC,CAAC,CAAC;;AAGL,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YAClB,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;SACzF;;QAGD,IAAI,CAAC,iBAAiB,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;AAC9C,QAAA,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;AACvC,QAAA,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,MAAK;AAC9E,YAAA,MAAM,sBAAsB,GAAG,IAAI,CAAC,QAAQ,GAAG,QAAQ,GAAG,KAAK,CAAC;AAChE,YAAA,MAAM,KAAK,GAAG,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC;AAC3C,YAAA,MAAM,uBAAuB,GAAG,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAAC;;YAGpE,IACE,CAAC,IAAI,CAAC,OAAO;gBACZ,KAAmB,EAAE,MAAM,CAAE,uBAAqC,EAAE,UAAU,EAAE,sBAAsB,CAAC,EACxG;gBACA,IAAI,CAAC,WAAW,EAAE,CAAC;AACnB,gBAAA,OAAO,IAAI,CAAC,KAAK,EAAE,CAAC;aACrB;;AAGD,YAAA,IAAI,IAAI,CAAC,OAAO,EAAE;AAChB,gBAAA,MAAM,CAAC,iBAAiB,EAAE,eAAe,CAAC,GAAG,uBAAsC,CAAC;AACpF,gBAAA,MAAM,CAAC,gBAAgB,EAAE,cAAc,CAAC,GAAG,KAAoB,CAAC;gBAChE,IACE,iBAAiB,EAAE,MAAM,CAAC,gBAAgB,EAAE,UAAU,EAAE,sBAAsB,CAAC;oBAC/E,eAAe,EAAE,MAAM,CAAC,cAAc,EAAE,UAAU,EAAE,sBAAsB,CAAC,EAC3E;oBACA,IAAI,CAAC,WAAW,EAAE,CAAC;AACnB,oBAAA,OAAO,IAAI,CAAC,KAAK,EAAE,CAAC;iBACrB;aACF;YAED,IAAI,CAAC,iBAAiB,CAAC,YAAY,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC;AACvD,YAAA,IAAI,IAAI,CAAC,OAAO,EAAE;gBAChB,MAAM,QAAQ,GAAG,KAAoB,CAAC;AACtC,gBAAA,IAAI,QAAQ,CAAC,MAAM,EAAE;oBACnB,IAAI,CAAC,UAAU,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,UAAU,IAAI,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,UAAU,IAAI,IAAI,CAAC,CAAC,CAAC;iBACrF;qBAAM;AACL,oBAAA,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;iBACrB;aACF;iBAAM;gBACL,IAAI,KAAK,EAAE;AACT,oBAAA,IAAI,CAAC,UAAU,CAAE,KAAmB,CAAC,UAAU,CAAC,CAAC;iBAClD;qBAAM;AACL,oBAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;iBACvB;aACF;YACD,IAAI,CAAC,WAAW,EAAE,CAAC;;YAEnB,IAAI,CAAC,KAAK,EAAE,CAAC;AACf,SAAC,CAAC,CAAC;QAEH,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,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;QACH,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC;AACrC,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,OAAO,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC;QAC/C,IAAI,CAAC,gBAAgB,EAAE,CAAC;AAExB,QAAA,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,MAAK;YAChF,IAAI,CAAC,gBAAgB,EAAE,CAAC;AAC1B,SAAC,CAAC,CAAC;KACJ;AAED,IAAA,WAAW,CAAC,OAAsB,EAAA;AAChC,QAAA,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC;AAC1C,QAAA,IAAI,OAAO,CAAC,YAAY,EAAE;;YAExB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,GAAG,EAAE,GAAG,IAAI,CAAC,YAAY,EAAE,GAAG,iBAAiB,EAAE,GAAG,iBAAiB,CAAC;SAC5G;;AAGD,QAAA,IAAI,OAAO,CAAC,aAAa,EAAE,YAAY,EAAE;AACvC,YAAA,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC;SACjC;AAED,QAAA,IAAI,OAAO,CAAC,QAAQ,EAAE,YAAY,EAAE;AAClC,YAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;SAC5B;AAED,QAAA,IAAI,OAAO,CAAC,QAAQ,EAAE;;YAEpB,IAAI,CAAC,qBAAqB,EAAE,CAAC;SAC9B;AAED,QAAA,IAAI,OAAO,CAAC,mBAAmB,EAAE;YAC/B,IAAI,CAAC,WAAW,GAAG,iBAAiB,CAAC,IAAI,CAAC,mBAAoB,CAAC,CAAC;SACjE;AAED,QAAA,IAAI,OAAO,CAAC,MAAM,EAAE;YAClB,IAAI,CAAC,qBAAqB,EAAE,CAAC;YAC7B,IAAI,CAAC,gBAAgB,EAAE,CAAC;SACzB;QAED,IAAI,QAAQ,EAAE;YACZ,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;SACvD;QAED,IAAI,WAAW,EAAE;AACf,YAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;SACrC;KACF;IAED,gBAAgB,GAAA;AACd,QAAA,MAAM,YAAY,GAAqC;AACrD,YAAA,IAAI,EAAE,MAAM;AACZ,YAAA,OAAO,EAAE,WAAW;AACpB,YAAA,KAAK,EAAE,SAAS;AAChB,YAAA,IAAI,EAAE,SAAS;YACf,IAAI,EAAE,IAAI,CAAC,UAAU,GAAG,qBAAqB,GAAG,YAAY;SAC7D,CAAC;AAEF,QAAA,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;AAChB,YAAA,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;SACtB;QAED,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,OAAO,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;;AAGzE,QAAA,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE;YACxB,IAAI,CAAC,QAAQ,GAAG,YAAY,CAAC,IAAI,CAAC,MAAoB,CAAE,CAAC;SAC1D;AAED,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACxD,IAAI,CAAC,gBAAgB,EAAE,CAAC;KACzB;AAED;;;;AAIG;AACH,IAAA,YAAY,CAAC,IAAa,EAAA;AACxB,QAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KAChC;AAUD,IAAA,UAAU,CAAC,KAAqB,EAAA;AAC9B,QAAA,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AACrB,QAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;KACzB;AAED,IAAA,gBAAgB,CAAC,EAAgB,EAAA;AAC/B,QAAA,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;KACtB;AAED,IAAA,iBAAiB,CAAC,EAAiB,EAAA;AACjC,QAAA,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;KACvB;AAED,IAAA,gBAAgB,CAAC,UAAmB,EAAA;AAClC,QAAA,IAAI,CAAC,UAAU,GAAG,CAAC,IAAI,CAAC,sBAAsB,IAAI,IAAI,CAAC,UAAU,KAAK,UAAU,CAAC;AACjF,QAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;AACxB,QAAA,IAAI,CAAC,sBAAsB,GAAG,KAAK,CAAC;KACrC;;;;;IAOO,SAAS,GAAA;AACf,QAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;QAC1D,IAAI,CAAC,qBAAqB,EAAE,CAAC;AAC7B,QAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;KACzB;IAEO,qBAAqB,GAAA;QAC3B,IAAI,CAAC,IAAI,CAAC,mBAAmB,IAAI,IAAI,CAAC,QAAQ,EAAE;AAC9C,YAAA,MAAM,kBAAkB,GAAqC;AAC3D,gBAAA,IAAI,EAAE,IAAI,CAAC,mBAAmB,CAAC,iBAAiB,CAAC;AACjD,gBAAA,OAAO,EAAE,IAAI,CAAC,mBAAmB,CAAC,oBAAoB,CAAC;AACvD,gBAAA,KAAK,EAAE,IAAI,CAAC,mBAAmB,CAAC,kBAAkB,CAAC;AACnD,gBAAA,IAAI,EAAE,IAAI,CAAC,mBAAmB,CAAC,iBAAiB,CAAC;AACjD,gBAAA,IAAI,EAAE,IAAI,CAAC,mBAAmB,CAAC,aAAa,CAAC;aAC9C,CAAC;AAEF,YAAA,MAAM,uBAAuB,GAAuC;AAClE,gBAAA,IAAI,EAAE,IAAI,CAAC,mBAAmB,CAAC,sBAAsB,CAAC;AACtD,gBAAA,OAAO,EAAE,IAAI,CAAC,mBAAmB,CAAC,yBAAyB,CAAC;AAC5D,gBAAA,KAAK,EAAE,IAAI,CAAC,mBAAmB,CAAC,uBAAuB,CAAC;AACxD,gBAAA,IAAI,EAAE,IAAI,CAAC,mBAAmB,CAAC,sBAAsB,CAAC;AACtD,gBAAA,IAAI,EAAE,IAAI,CAAC,mBAAmB,CAAC,kBAAkB,CAAC;aACnD,CAAC;AAEF,YAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,OAAO;AAC/B,kBAAE,uBAAuB,CAAC,IAAI,CAAC,MAAoB,CAAE;AACrD,kBAAE,kBAAkB,CAAC,IAAI,CAAC,MAAoB,CAAE,CAAC;SACpD;KACF;AAEO,IAAA,mBAAmB,CACzB,IAAO,EAAA;AAEP,QAAA,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,mBAAmB,IAAI,CAAA,CAAE,CAAC,CAAC;KACvF;;AAGO,IAAA,QAAQ,CAAC,KAAqB,EAAA;QACpC,MAAM,QAAQ,GAAG,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;AACzD,QAAA,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAC1C,IAAI,CAAC,iBAAiB,CAAC,YAAY,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;AAC1D,QAAA,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;KAC1B;AAED,IAAA,WAAW,CAAC,KAAc,EAAA;;QAExB,IAAI,KAAK,EAAE;AACT,YAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,oBAAoB,CAAC,CAAC;SAC7E;aAAM;AACL,YAAA,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,oBAAoB,CAAC,CAAC;SAChF;KACF;AAED,IAAA,iBAAiB,CAAC,WAA8B,EAAA;AAC9C,QAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;KACxC;;AAGD,IAAA,gBAAgB,CAAC,KAAsB,EAAA;QACrC,IAAI,IAAI,CAAC,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;YACxC,MAAM,UAAU,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,YAAY,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAE,CAAC,UAAU,CAAC,CAAC;AACrF,YAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;SAC1C;KACF;IAED,UAAU,GAAA;AACR,QAAA,IAAI,IAAI,CAAC,OAAO,EAAE;AAChB,YAAA,MAAM,KAAK,GAAG,IAAI,CAAC,iBAAiB,CAAC,KAAoB,CAAC;AAC1D,YAAA,IAAI,KAAK,CAAC,MAAM,EAAE;gBAChB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,UAAU,IAAI,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,UAAU,IAAI,IAAI,CAAC,CAAC,CAAC;aAChF;iBAAM;AACL,gBAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;aACtB;SACF;aAAM;AACL,YAAA,IAAI,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE;AAChC,gBAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAE,IAAI,CAAC,iBAAiB,CAAC,KAAmB,CAAC,UAAU,CAAC,CAAC;aAC1E;iBAAM;AACL,gBAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aACxB;SACF;KACF;;IAGO,eAAe,CAAC,MAAwB,EAAE,WAAoB,EAAA;;AAEpE,QAAA,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;AACrB,QAAA,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;AAC/B,QAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;;AAExB,QAAA,IAAI,CAAC,SAAS,GAAG,mBAAmB,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;AAC1E,QAAA,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,MAAM,IAAG;AAC3C,YAAA,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;AAC1B,gBAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;aAC/D;iBAAM;AACL,gBAAA,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;aAClE;AACH,SAAC,CAAC,CAAC;KACJ;AAEO,IAAA,YAAY,CAAC,SAAsB,EAAA;AACzC,QAAA,MAAM,QAAQ,GAA2B,wBAAwB,CAAC,SAAS,CAAC,CAAC;QAC7E,IAAI,CAAC,gBAAgB,GAAG,CAAC,QAAQ,EAAE,GAAG,6BAA6B,CAAC,CAAC;AACrE,QAAA,IAAI,CAAC,gBAAgB,GAAG,QAAQ,CAAC,OAAO,CAAC;AACzC,QAAA,IAAI,CAAC,gBAAgB,GAAG,QAAQ,CAAC,OAAO,CAAC;KAC1C;8GAtoBU,qBAAqB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAC,IAAA,CAAA,eAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,iBAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,EAAA,CAAA,aAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,SAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,MAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAAA,EAAA,CAAA,iBAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,IAAA,CAAA,gBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,QAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,cAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;kGAArB,qBAAqB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,gGAAA,EAAA,MAAA,EAAA,EAAA,YAAA,EAAA,CAAA,cAAA,EAAA,cAAA,EAqBZ,gBAAgB,CAChB,EAAA,WAAA,EAAA,CAAA,aAAA,EAAA,aAAA,EAAA,gBAAgB,4CAChB,gBAAgB,CAAA,EAAA,YAAA,EAAA,CAAA,cAAA,EAAA,cAAA,EAChB,gBAAgB,CAChB,EAAA,eAAA,EAAA,CAAA,iBAAA,EAAA,iBAAA,EAAA,gBAAgB,sCAChB,gBAAgB,CAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,QAAA,EAChB,gBAAgB,CAYhB,EAAA,cAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,aAAA,EAAA,eAAA,EAAA,YAAA,EAAA,cAAA,EAAA,mBAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,QAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,UAAA,EAAA,YAAA,EAAA,cAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,mBAAA,EAAA,qBAAA,EAAA,WAAA,EAAA,CAAA,aAAA,EAAA,aAAA,EAAA,gBAAgB,2DAEhB,gBAAgB,CAAA,EAAA,QAAA,EAAA,UAAA,EAAA,oBAAA,EAAA,sBAAA,EAAA,WAAA,EAAA,aAAA,EAAA,YAAA,EAAA,cAAA,EAAA,UAAA,EAAA,YAAA,EAAA,IAAA,EAAA,MAAA,EAAA,WAAA,EAAA,aAAA,EAAA,gBAAA,EAAA,CAAA,kBAAA,EAAA,kBAAA,EAQhB,gBAAgB,CAzEzB,EAAA,UAAA,EAAA,YAAA,EAAA,EAAA,OAAA,EAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,QAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,OAAA,EAAA,yBAAA,EAAA,EAAA,UAAA,EAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,wBAAA,EAAA,SAAA,EAAA,wBAAA,EAAA,oBAAA,EAAA,wBAAA,EAAA,oBAAA,EAAA,2BAAA,EAAA,YAAA,EAAA,sBAAA,EAAA,eAAA,EAAA,6BAAA,EAAA,cAAA,EAAA,yBAAA,EAAA,UAAA,EAAA,EAAA,EAAA,SAAA,EAAA;YACT,gBAAgB;YAChB,iBAAiB;AACjB,YAAA;AACE,gBAAA,OAAO,EAAE,iBAAiB;AAC1B,gBAAA,KAAK,EAAE,IAAI;AACX,gBAAA,WAAW,EAAE,UAAU,CAAC,MAAM,qBAAqB,CAAC;AACrD,aAAA;SACF,EAmFU,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,qBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,mBAAmB,EACnB,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,OAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,uBAAuB,EApPxB,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,aAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,aAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,mBAAA,EAAA,SAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,CAAA,cAAA,CAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4IT,EAuBC,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,WAAW,+mBACX,gBAAgB,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAChB,cAAc,EACd,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,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,YAAY,EACZ,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,GAAA,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,OAAO,EACP,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAiB,iMACjB,uBAAuB,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,cAAA,EAAA,cAAA,EAAA,WAAA,EAAA,SAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,YAAA,EAAA,WAAA,EAAA,oBAAA,EAAA,KAAA,CAAA,EAAA,OAAA,EAAA,CAAA,iBAAA,EAAA,gBAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACvB,mBAAmB,EACnB,QAAA,EAAA,qEAAA,EAAA,MAAA,EAAA,CAAA,2BAAA,EAAA,8BAAA,EAAA,qCAAA,EAAA,4BAAA,EAAA,4BAAA,EAAA,0BAAA,EAAA,2BAAA,EAAA,6BAAA,EAAA,8BAAA,EAAA,kCAAA,EAAA,+BAAA,EAAA,mCAAA,EAAA,mCAAA,EAAA,yBAAA,EAAA,iCAAA,EAAA,sCAAA,EAAA,gCAAA,EAAA,iCAAA,EAAA,uCAAA,EAAA,kCAAA,EAAA,yBAAA,EAAA,wCAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,qBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,eAAe,wNACf,sBAAsB,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,eAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAXZ,CAAC,WAAW,CAAC,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;;AA2DF,UAAA,CAAA;AAAb,IAAA,UAAU,EAAE;AAA2D,CAAA,EAAA,qBAAA,CAAA,SAAA,EAAA,aAAA,EAAA,KAAA,CAAA,CAAA,CAAA;AAC1D,UAAA,CAAA;AAAb,IAAA,UAAU,EAAE;AAA4D,CAAA,EAAA,qBAAA,CAAA,SAAA,EAAA,cAAA,EAAA,KAAA,CAAA,CAAA,CAAA;AAC3D,UAAA,CAAA;AAAb,IAAA,UAAU,EAAE;AAAoB,CAAA,EAAA,qBAAA,CAAA,SAAA,EAAA,YAAA,EAAA,KAAA,CAAA,CAAA,CAAA;2FA9C/B,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBArLjC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;oBACT,aAAa,EAAE,iBAAiB,CAAC,IAAI;oBACrC,eAAe,EAAE,uBAAuB,CAAC,MAAM;AAC/C,oBAAA,QAAQ,EAAE,gGAAgG;AAC1G,oBAAA,QAAQ,EAAE,cAAc;AACxB,oBAAA,QAAQ,EAAE,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA4IT,EAAA,CAAA;AACD,oBAAA,IAAI,EAAE;AACJ,wBAAA,oBAAoB,EAAE,CAAM,IAAA,CAAA;AAC5B,wBAAA,0BAA0B,EAAE,CAAS,OAAA,CAAA;AACrC,wBAAA,0BAA0B,EAAE,CAAoB,kBAAA,CAAA;AAChD,wBAAA,0BAA0B,EAAE,CAAoB,kBAAA,CAAA;AAChD,wBAAA,6BAA6B,EAAE,CAAY,UAAA,CAAA;AAC3C,wBAAA,wBAAwB,EAAE,CAAe,aAAA,CAAA;AACzC,wBAAA,+BAA+B,EAAE,CAAc,YAAA,CAAA;AAC/C,wBAAA,2BAA2B,EAAE,CAAU,QAAA,CAAA;AACvC,wBAAA,SAAS,EAAE,yBAAyB;AACrC,qBAAA;AACD,oBAAA,SAAS,EAAE;wBACT,gBAAgB;wBAChB,iBAAiB;AACjB,wBAAA;AACE,4BAAA,OAAO,EAAE,iBAAiB;AAC1B,4BAAA,KAAK,EAAE,IAAI;AACX,4BAAA,WAAW,EAAE,UAAU,CAAC,2BAA2B,CAAC;AACrD,yBAAA;AACF,qBAAA;oBACD,UAAU,EAAE,CAAC,WAAW,CAAC;AACzB,oBAAA,OAAO,EAAE;wBACP,WAAW;wBACX,gBAAgB;wBAChB,cAAc;wBACd,YAAY;wBACZ,OAAO;wBACP,iBAAiB;wBACjB,uBAAuB;wBACvB,mBAAmB;wBACnB,eAAe;wBACf,sBAAsB;AACvB,qBAAA;AACD,oBAAA,UAAU,EAAE,IAAI;AACjB,iBAAA,CAAA;yYAsByC,YAAY,EAAA,CAAA;sBAAnD,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAA;gBACE,WAAW,EAAA,CAAA;sBAAlD,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAA;gBACE,UAAU,EAAA,CAAA;sBAAjD,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAA;gBACE,YAAY,EAAA,CAAA;sBAAnD,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAA;gBACE,eAAe,EAAA,CAAA;sBAAtD,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAA;gBACE,QAAQ,EAAA,CAAA;sBAA/C,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAA;gBACE,MAAM,EAAA,CAAA;sBAA7C,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAA;gBAC7B,cAAc,EAAA,CAAA;sBAAtB,KAAK;gBACG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBACG,aAAa,EAAA,CAAA;sBAArB,KAAK;gBACG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBACG,mBAAmB,EAAA,CAAA;sBAA3B,KAAK;gBACG,MAAM,EAAA,CAAA;sBAAd,KAAK;gBACG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBACG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBACG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBACG,cAAc,EAAA,CAAA;sBAAtB,KAAK;gBACG,mBAAmB,EAAA,CAAA;sBAA3B,KAAK;gBACkC,WAAW,EAAA,CAAA;sBAAlD,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAA;gBAC7B,MAAM,EAAA,CAAA;sBAAd,KAAK;gBACkC,SAAS,EAAA,CAAA;sBAAhD,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAA;gBAC7B,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBACG,oBAAoB,EAAA,CAAA;sBAA5B,KAAK;gBACiB,WAAW,EAAA,CAAA;sBAAjC,KAAK;gBACiB,YAAY,EAAA,CAAA;sBAAlC,KAAK;gBACiB,UAAU,EAAA,CAAA;sBAAhC,KAAK;gBACG,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBACG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBACkC,gBAAgB,EAAA,CAAA;sBAAvD,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAA;gBAEnB,eAAe,EAAA,CAAA;sBAAjC,MAAM;gBACY,kBAAkB,EAAA,CAAA;sBAApC,MAAM;gBACY,MAAM,EAAA,CAAA;sBAAxB,MAAM;gBACY,cAAc,EAAA,CAAA;sBAAhC,MAAM;gBAEM,UAAU,EAAA,CAAA;sBAAtB,KAAK;gBAW6C,mBAAmB,EAAA,CAAA;sBAArE,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,mBAAmB,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAA;gBACM,KAAK,EAAA,CAAA;sBAA3D,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,uBAAuB,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAA;gBACH,gBAAgB,EAAA,CAAA;sBAAjE,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,kBAAkB,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAA;gBACH,WAAW,EAAA,CAAA;sBAAvD,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,aAAa,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAA;gBACT,iBAAiB,EAAA,CAAA;sBAAlD,YAAY;uBAAC,kBAAkB,CAAA;;;AC1VlC;;;AAGG;AAWH;MACa,sBAAsB,CAAA;AAGjC,IAAA,WAAA,GAAA;QAFA,IAAU,CAAA,UAAA,GAAG,MAAM,CAAC,qBAAqB,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;AAGzD,QAAA,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,OAAO,CAAC;KAClC;8GALU,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;kGAAtB,sBAAsB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;2FAAtB,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBANlC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,iBAAiB;AAC3B,oBAAA,QAAQ,EAAE,eAAe;AACzB,oBAAA,UAAU,EAAE,IAAI;AACjB,iBAAA,CAAA;;;ACbD;;;AAGG;MAWU,wBAAwB,CAAA;AAGnC,IAAA,WAAA,GAAA;QAFA,IAAU,CAAA,UAAA,GAAG,MAAM,CAAC,qBAAqB,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;AAGzD,QAAA,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,SAAS,CAAC;KACpC;8GALU,wBAAwB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;kGAAxB,wBAAwB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,QAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;2FAAxB,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBALpC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,mBAAmB;AAC7B,oBAAA,QAAQ,EAAE,iBAAiB;AAC3B,oBAAA,UAAU,EAAE,IAAI;AACjB,iBAAA,CAAA;;;ACbD;;;AAGG;AAWH;MACa,sBAAsB,CAAA;AAGjC,IAAA,WAAA,GAAA;QAFA,IAAU,CAAA,UAAA,GAAG,MAAM,CAAC,qBAAqB,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;AAGzD,QAAA,IAAI,CAAC,UAAU,CAAC,OAAO,GAAG,IAAI,CAAC;KAChC;8GALU,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;kGAAtB,sBAAsB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;2FAAtB,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBANlC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,iBAAiB;AAC3B,oBAAA,QAAQ,EAAE,eAAe;AACzB,oBAAA,UAAU,EAAE,IAAI;AACjB,iBAAA,CAAA;;;ACbD;;;AAGG;AAWH;MACa,qBAAqB,CAAA;AAGhC,IAAA,WAAA,GAAA;QAFA,IAAU,CAAA,UAAA,GAAG,MAAM,CAAC,qBAAqB,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;AAGzD,QAAA,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,MAAM,CAAC;KACjC;8GALU,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;kGAArB,qBAAqB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,CAAA,cAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;2FAArB,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBANjC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,gBAAgB;AAC1B,oBAAA,QAAQ,EAAE,cAAc;AACxB,oBAAA,UAAU,EAAE,IAAI;AACjB,iBAAA,CAAA;;;ACbD;;;AAGG;AAWH;MACa,qBAAqB,CAAA;AAGhC,IAAA,WAAA,GAAA;QAFA,IAAU,CAAA,UAAA,GAAG,MAAM,CAAC,qBAAqB,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;AAGzD,QAAA,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,MAAM,CAAC;KACjC;8GALU,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;kGAArB,qBAAqB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,CAAA,cAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;2FAArB,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBANjC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,gBAAgB;AAC1B,oBAAA,QAAQ,EAAE,cAAc;AACxB,oBAAA,UAAU,EAAE,IAAI;AACjB,iBAAA,CAAA;;;ACbD;;;AAGG;MAmCU,kBAAkB,CAAA;8GAAlB,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;AAAlB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,kBAAkB,YAnB3B,qBAAqB;YACrB,sBAAsB;YACtB,qBAAqB;YACrB,qBAAqB;YACrB,sBAAsB;YACtB,uBAAuB;YACvB,mBAAmB;YACnB,uBAAuB;AACvB,YAAA,wBAAwB,aAGxB,qBAAqB;YACrB,sBAAsB;YACtB,sBAAsB;YACtB,qBAAqB;YACrB,qBAAqB;YACrB,wBAAwB,CAAA,EAAA,CAAA,CAAA,EAAA;AAGf,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,kBAAkB,YAnB3B,qBAAqB;YAKrB,uBAAuB;YACvB,mBAAmB;YACnB,uBAAuB,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAYd,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBArB9B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,OAAO,EAAE;wBACP,qBAAqB;wBACrB,sBAAsB;wBACtB,qBAAqB;wBACrB,qBAAqB;wBACrB,sBAAsB;wBACtB,uBAAuB;wBACvB,mBAAmB;wBACnB,uBAAuB;wBACvB,wBAAwB;AACzB,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,qBAAqB;wBACrB,sBAAsB;wBACtB,sBAAsB;wBACtB,qBAAqB;wBACrB,qBAAqB;wBACrB,wBAAwB;AACzB,qBAAA;AACF,iBAAA,CAAA;;;ACrCD;;;AAGG;;ACHH;;AAEG;;;;"}