{"version":3,"file":"jsonforms-vue-vuetify.esm.mjs","sources":["../src/styles/defaultStyles.ts","../src/styles/styles.ts","../src/styles/util.ts","../src/util/composition.ts","../src/util/validator.ts","../src/util/datejs.ts","../src/util/i18nDefaultMessages.ts","../src/additional/LabelRenderer.vue","../src/additional/LabelRenderer.vue?vue&type=template&id=b089b63c&lang.js","../src/additional/index.ts","../src/controls/components/ValidationBadge.vue","../src/controls/components/ValidationBadge.vue?vue&type=template&id=0a603561&lang.js","../src/controls/components/ValidationIcon.vue","../src/controls/components/ValidationIcon.vue?vue&type=template&id=5aeef984&lang.js","../src/layouts/ArrayLayoutRenderer.vue","../src/layouts/ArrayLayoutRenderer.vue?vue&type=template&id=57da656e&lang.js","../src/layouts/CategorizationRenderer.vue","../src/layouts/CategorizationRenderer.vue?vue&type=template&id=86ddddb4&lang.js","../src/layouts/GroupRenderer.vue","../src/layouts/GroupRenderer.vue?vue&type=template&id=ce826122&lang.js","../src/layouts/HorizontalLayoutRenderer.vue","../src/layouts/HorizontalLayoutRenderer.vue?vue&type=template&id=c41b83d2&lang.js","../src/layouts/VerticalLayoutRenderer.vue","../src/layouts/VerticalLayoutRenderer.vue?vue&type=template&id=29794f2e&lang.js","../src/layouts/index.ts","../src/array/index.ts","../src/complex/components/CombinatorProperties.vue","../src/complex/components/CombinatorProperties.vue?vue&type=template&id=4fe01236&lang.js","../src/controls/directives/DisabledIconFocus.ts","../src/complex/components/AdditionalProperties.vue","../src/complex/components/AdditionalProperties.vue?vue&type=template&id=3c2125b5&lang.js","../src/complex/AllOfRenderer.vue","../src/complex/AllOfRenderer.vue?vue&type=template&id=81c58074&lang.js","../src/complex/AnyOfRenderer.vue","../src/complex/AnyOfRenderer.vue?vue&type=template&id=87905258&lang.js","../src/complex/ArrayControlRenderer.vue","../src/complex/ArrayControlRenderer.vue?vue&type=template&id=5b6f5c3b&lang.js","../src/complex/EnumArrayRenderer.vue","../src/complex/EnumArrayRenderer.vue?vue&type=template&id=56013f62&lang.js","../src/complex/ObjectRenderer.vue","../src/complex/ObjectRenderer.vue?vue&type=template&id=7a317540&lang.js","../src/complex/OneOfRenderer.vue","../src/complex/OneOfRenderer.vue?vue&type=template&id=dcdb5362&lang.js","../src/complex/OneOfTabRenderer.vue","../src/complex/OneOfTabRenderer.vue?vue&type=template&id=87f9ed2e&lang.js","../src/complex/index.ts","../src/controls/ControlWrapper.vue","../src/controls/ControlWrapper.vue?vue&type=template&id=05987e1c&lang.js","../src/controls/AnyOfStringOrEnumControlRenderer.vue","../src/controls/AnyOfStringOrEnumControlRenderer.vue?vue&type=template&id=37341a68&lang.js","../src/controls/BooleanControlRenderer.vue","../src/controls/BooleanControlRenderer.vue?vue&type=template&id=17a88ad8&lang.js","../src/controls/BooleanToggleControlRenderer.vue","../src/controls/BooleanToggleControlRenderer.vue?vue&type=template&id=bd3b8920&lang.js","../src/controls/DateControlRenderer.vue","../src/controls/DateControlRenderer.vue?vue&type=template&id=e916bb76&lang.js","../src/controls/DateTimeControlRenderer.vue","../src/controls/DateTimeControlRenderer.vue?vue&type=template&id=3b7408b6&lang.js","../src/controls/EnumControlRenderer.vue","../src/controls/EnumControlRenderer.vue?vue&type=template&id=cc269a2e&lang.js","../src/controls/IntegerControlRenderer.vue","../src/controls/IntegerControlRenderer.vue?vue&type=template&id=7768cc65&lang.js","../src/controls/MultiStringControlRenderer.vue","../src/controls/MultiStringControlRenderer.vue?vue&type=template&id=a50d9220&lang.js","../src/controls/NumberControlRenderer.vue","../src/controls/NumberControlRenderer.vue?vue&type=template&id=01197e04&lang.js","../src/controls/OneOfEnumControlRenderer.vue","../src/controls/OneOfEnumControlRenderer.vue?vue&type=template&id=37934dfb&lang.js","../src/controls/OneOfRadioGroupControlRenderer.vue","../src/controls/OneOfRadioGroupControlRenderer.vue?vue&type=template&id=f607a9ae&lang.js","../src/controls/PasswordControlRenderer.vue","../src/controls/PasswordControlRenderer.vue?vue&type=template&id=5c1380d4&lang.js","../src/controls/RadioGroupControlRenderer.vue","../src/controls/RadioGroupControlRenderer.vue?vue&type=template&id=3aa37cf0&lang.js","../src/controls/SliderControlRenderer.vue","../src/controls/SliderControlRenderer.vue?vue&type=template&id=0b94b4e9&lang.js","../src/controls/StringControlRenderer.vue","../src/controls/StringControlRenderer.vue?vue&type=template&id=7a4f94c9&lang.js","../src/controls/TimeControlRenderer.vue","../src/controls/TimeControlRenderer.vue?vue&type=template&id=0aec1e0b&lang.js","../src/controls/index.ts","../src/extended/AutocompleteEnumControlRenderer.vue","../src/extended/AutocompleteEnumControlRenderer.vue?vue&type=template&id=a4b6bfd8&lang.js","../src/extended/AutocompleteOneOfEnumControlRenderer.vue","../src/extended/AutocompleteOneOfEnumControlRenderer.vue?vue&type=template&id=9d33eb92&lang.js","../src/extended/index.ts","../src/renderers.ts"],"sourcesContent":["import { Styles } from './styles';\n\nexport const defaultStyles: Styles = {\n  control: {\n    root: 'control',\n    input: 'input',\n  },\n  verticalLayout: {\n    root: 'vertical-layout',\n    item: 'vertical-layout-item',\n  },\n  horizontalLayout: {\n    root: 'horizontal-layout',\n    item: 'horizontal-layout-item',\n  },\n  group: {\n    root: 'group',\n    label: 'group-label',\n    item: 'group-item',\n    bare: 'group-bare',\n    alignLeft: 'group-align-left',\n  },\n  arrayList: {\n    root: 'array-list',\n    toolbar: 'array-list-toolbar',\n    validationIcon: 'array-list-validation',\n    addButton: 'array-list-add',\n    label: 'array-list-label',\n    noData: 'array-list-no-data',\n    item: 'array-list-item',\n    itemHeader: 'array-list-item-header',\n    itemLabel: 'array-list-item-label',\n    itemContent: 'array-list-item-content',\n    itemMoveUp: 'array-list-item-move-up',\n    itemMoveDown: 'array-list-item-move-down',\n    itemDelete: 'array-list-item-delete',\n  },\n  listWithDetail: {\n    root: 'list-with-detail',\n    toolbar: 'list-with-detail-toolbar',\n    addButton: 'list-with-detail-add',\n    label: 'list-with-detail-label',\n    noData: 'list-with-detail-no-data',\n    item: 'list-with-detail-item',\n    itemLabel: 'list-with-detail-item-label',\n    itemContent: 'list-with-detail-item-content',\n    itemMoveUp: 'list-with-detail-item-move-up',\n    itemMoveDown: 'list-with-detail-item-move-down',\n    itemDelete: 'list-with-detail-item-delete',\n  },\n  label: {\n    root: 'label-element',\n  },\n  categorization: {\n    root: 'categorization',\n  },\n};\n","import { UISchemaElement } from '@jsonforms/core';\nimport { inject } from 'vue';\nimport merge from 'lodash/merge';\nimport { defaultStyles } from './defaultStyles';\n\nconst createEmptyStyles = (): Styles => ({\n  control: {},\n  verticalLayout: {},\n  horizontalLayout: {},\n  group: {},\n  arrayList: {},\n  listWithDetail: {},\n  label: {},\n  categorization: {},\n});\n\nexport interface Styles {\n  control: {\n    root?: string;\n    input?: string;\n  };\n  verticalLayout: {\n    root?: string;\n    item?: string;\n  };\n  horizontalLayout: {\n    root?: string;\n    item?: string;\n  };\n  group: {\n    root?: string;\n    label?: string;\n    item?: string;\n    bare?: string;\n    alignLeft?: string;\n  };\n  arrayList: {\n    root?: string;\n    toolbar?: string;\n    validationIcon?: string;\n    container?: string;\n    addButton?: string;\n    label?: string;\n    noData?: string;\n    item?: string;\n    itemContainer?: string;\n    itemHeader?: string;\n    itemLabel?: string;\n    itemContent?: string;\n    itemMoveUp?: string;\n    itemMoveDown?: string;\n    itemDelete?: string;\n  };\n  listWithDetail: {\n    root?: string;\n    toolbar?: string;\n    addButton?: string;\n    label?: string;\n    noData?: string;\n    item?: string;\n    itemLabel?: string;\n    itemContent?: string;\n    itemMoveUp?: string;\n    itemMoveDown?: string;\n    itemDelete?: string;\n  };\n  label: {\n    root?: string;\n  };\n  categorization: {\n    root?: string;\n  };\n}\n\nexport const useStyles = (element?: UISchemaElement): Styles => {\n  const userStyles = inject('styles', defaultStyles);\n  if (!element?.options?.styles) {\n    return userStyles;\n  }\n  const styles = createEmptyStyles();\n  if (userStyles) {\n    merge(styles, userStyles);\n  } else {\n    merge(styles, defaultStyles);\n  }\n  if (element?.options?.styles) {\n    merge(styles, element.options.styles);\n  }\n  return styles;\n};\n","import { Styles } from './styles';\nimport cloneDeep from 'lodash/cloneDeep';\nimport mergeWith from 'lodash/mergeWith';\n\nexport const classes = (\n  strings: TemplateStringsArray,\n  ...variables: any[]\n): string => {\n  return strings\n    .reduce((acc, curr, index) => {\n      return `${acc}${curr}${variables[index] || ''}`;\n    }, '')\n    .trim();\n};\n\n/**\n * Helper function to merge two styles definitions. The contained classes will be combined, not overwritten.\n *\n * Example usage:\n * ```ts\n * const myStyles = mergeStyles(defaultStyles, { control: { root: 'mycontrol' } });\n * ```\n */\nexport const mergeStyles = (\n  stylesA: Partial<Styles>,\n  stylesB: Partial<Styles>\n): Partial<Styles> => {\n  const styles = cloneDeep(stylesA);\n  mergeWith(styles, stylesB, (aValue, bValue) => {\n    if (typeof aValue === 'string' && typeof bValue === 'string') {\n      return `${aValue} ${bValue}`;\n    }\n    return undefined;\n  });\n  return styles;\n};\n","import {\n  composePaths,\n  computeLabel,\n  getFirstPrimitiveProp,\n  isDescriptionHidden,\n  JsonFormsSubStates,\n  Resolve,\n} from '@jsonforms/core';\nimport cloneDeep from 'lodash/cloneDeep';\nimport debounce from 'lodash/debounce';\nimport merge from 'lodash/merge';\nimport get from 'lodash/get';\nimport isPlainObject from 'lodash/isPlainObject';\nimport { useStyles } from '../styles';\nimport { computed, ComputedRef, inject, ref, provide } from 'vue';\nimport Ajv, {ErrorObject} from 'ajv';\n\nexport const useControlAppliedOptions = <I extends { control: any }>(\n  input: I\n) => {\n  return computed(() =>\n    merge(\n      {},\n      cloneDeep(input.control.value.config),\n      cloneDeep(input.control.value.uischema.options)\n    )\n  );\n};\n\nexport const useComputedLabel = <I extends { control: any }>(\n  input: I,\n  appliedOptions: ComputedRef<any>\n) => {\n  return computed((): string => {\n    return computeLabel(\n      input.control.value.label,\n      input.control.value.required,\n      !!appliedOptions.value?.hideRequiredAsterisk\n    );\n  });\n};\n\n/**\n * Adds styles, appliedOptions and vuetifyProps\n */\nexport const useVuetifyLabel = <I extends { label: any }>(input: I) => {\n  const styles = useStyles(input.label.value.uischema);\n  const appliedOptions = computed(() =>\n    merge(\n      {},\n      cloneDeep(input.label.value.config),\n      cloneDeep(input.label.value.uischema.options)\n    )\n  );\n  const vuetifyProps = (path: string) => {\n    const props = get(appliedOptions.value?.vuetify, path);\n\n    return props && isPlainObject(props) ? props : {};\n  };\n  return {\n    ...input,\n    appliedOptions,\n    vuetifyProps,\n    styles,\n  };\n};\n\n/**\n * Adds styles, isFocused, appliedOptions and onChange\n */\nexport const useVuetifyControl = <\n  I extends { control: any; handleChange: any }\n>(\n  input: I,\n  adaptValue: (target: any) => any = (v) => v,\n  debounceWait?: number\n) => {\n  const touched = ref(false);\n  const changeEmitter =\n    typeof debounceWait === 'number'\n      ? debounce(input.handleChange, debounceWait)\n      : input.handleChange;\n\n  const onChange = (value: any) => {\n    changeEmitter(input.control.value.path, adaptValue(value));\n  };\n\n  const appliedOptions = useControlAppliedOptions(input);\n  const isFocused = ref(false);\n\n  const handleBlur = () => {\n    touched.value = true;\n    isFocused.value = false;\n  };\n\n  const filteredErrors = computed(() => {\n    return (touched.value || !input.control.value.config.enableFilterErrorsBeforeTouch)? input.control.value.errors : '';\n  });\n\n  const persistentHint = (): boolean => {\n    return !isDescriptionHidden(\n      input.control.value.visible,\n      input.control.value.description,\n      isFocused.value,\n      !!appliedOptions.value?.showUnfocusedDescription\n    );\n  };\n\n  const computedLabel = useComputedLabel(input, appliedOptions);\n\n  const controlWrapper = computed(() => {\n    const { id, description, errors, label, visible, required } =\n      input.control.value;\n    return { id, description, errors, label, visible, required };\n  });\n\n  const styles = useStyles(input.control.value.uischema);\n\n  const vuetifyProps = (path: string) => {\n    const props = get(appliedOptions.value?.vuetify, path);\n\n    return props && isPlainObject(props) ? props : {};\n  };\n\n  const overwrittenControl = computed(() => {\n  return {...input.control.value,\n    filteredErrors: filteredErrors.value,\n        errors: filteredErrors.value,\n        rawErrors: input.control.value.errors,\n    rawChildErrors: input.control.value.childErrors,\n  }\n  });\n\n  const rawErrors = computed(() => input.control.value.errors);\n\n\n\n  return {\n    ...input,\n    control: overwrittenControl,\n    filteredErrors,\n    rawErrors,\n    styles,\n    isFocused,\n    appliedOptions,\n    controlWrapper,\n    onChange,\n    vuetifyProps,\n    persistentHint,\n    computedLabel,\n    touched,\n    handleBlur,\n  };\n};\n\nexport const useTranslator = () => {\n  const jsonforms = inject<JsonFormsSubStates>('jsonforms');\n\n  if (!jsonforms) {\n    throw new Error(\n      \"'jsonforms couldn't be injected. Are you within JSON Forms?\"\n    );\n  }\n\n  if (!jsonforms.i18n || !jsonforms.i18n.translate) {\n    throw new Error(\n      \"'jsonforms i18n couldn't be injected. Are you within JSON Forms?\"\n    );\n  }\n\n  const translate = computed(() => {\n    // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n    return jsonforms.i18n!.translate!;\n  });\n\n  return translate;\n};\n\n/**\n * Adds styles and appliedOptions\n */\nexport const useVuetifyLayout = <I extends { layout: any }>(input: I) => {\n  const appliedOptions = computed(() => {\n    return merge(\n      {},\n      cloneDeep(input.layout.value.config),\n      cloneDeep(input.layout.value.uischema.options)\n    );\n  });\n\n  const vuetifyProps = (path: string) => {\n    const props = get(appliedOptions.value?.vuetify, path);\n\n    return props && isPlainObject(props) ? props : {};\n  };\n\n  return {\n    ...input,\n    styles: useStyles(input.layout.value.uischema),\n    appliedOptions,\n    vuetifyProps,\n  };\n};\n\n/**\n * Adds styles, appliedOptions and childUiSchema\n */\nexport const useVuetifyArrayControl = <I extends { control: any }>(\n  input: I\n) => {\n  const appliedOptions = useControlAppliedOptions(input);\n\n  const computedLabel = useComputedLabel(input, appliedOptions);\n\n  const vuetifyProps = (path: string) => {\n    const props = get(appliedOptions.value?.vuetify, path);\n\n    return props && isPlainObject(props) ? props : {};\n  };\n\n  const childLabelForIndex = (index: number | null) => {\n    if (index === null) {\n      return '';\n    }\n    const childLabelProp =\n      input.control.value.uischema.options?.childLabelProp ??\n      getFirstPrimitiveProp(input.control.value.schema);\n    if (!childLabelProp) {\n      return `${index}`;\n    }\n    const labelValue = Resolve.data(\n      input.control.value.data,\n      composePaths(`${index}`, childLabelProp)\n    );\n    if (\n      labelValue === undefined ||\n      labelValue === null ||\n      Number.isNaN(labelValue)\n    ) {\n      return '';\n    }\n    return `${labelValue}`;\n  };\n  const filteredChildErrors = computed(() => {\n    // supress childErrors unless touch filtering is disabled\n    // otherwise all child errors will show, irrespective of their control touch state\n    const filtered: ErrorObject[] = appliedOptions.value?.enableFilterErrorsBeforeTouch ? [] : input.control.value.childErrors\n    return filtered;\n  });\n  const overwrittenControl = computed(() => {\n    return {...input.control.value,\n      childErrors: filteredChildErrors.value,\n      rawChildErrors: input.control.value.childErrors,\n    }\n  });\n  return {\n    ...input,\n    control: overwrittenControl,\n    styles: useStyles(input.control.value.uischema),\n    appliedOptions,\n    childLabelForIndex,\n    computedLabel,\n    vuetifyProps,\n  };\n};\n\n/**\n * Adds styles and appliedOptions\n */\nexport const useVuetifyBasicControl = <I extends { control: any }>(\n  input: I\n) => {\n  const appliedOptions = useControlAppliedOptions(input);\n\n  const vuetifyProps = (path: string) => {\n    const props = get(appliedOptions.value?.vuetify, path);\n\n    return props && isPlainObject(props) ? props : {};\n  };\n\n  return {\n    ...input,\n    styles: useStyles(input.control.value.uischema),\n    appliedOptions,\n    vuetifyProps,\n  };\n};\n\n/**\n * Extracts Ajv from JSON Forms\n */\nexport const useAjv = () => {\n  const jsonforms = inject<JsonFormsSubStates>('jsonforms');\n\n  if (!jsonforms) {\n    throw new Error(\n      \"'jsonforms' couldn't be injected. Are you within JSON Forms?\"\n    );\n  }\n\n  // should always exist\n  return jsonforms.core?.ajv as Ajv;\n};\n\nexport interface NestedInfo {\n  level: number;\n  parentElement?: 'array' | 'object';\n}\nexport const useNested = (element: false | 'array' | 'object'): NestedInfo => {\n  const nestedInfo = inject<NestedInfo>('jsonforms.nestedInfo', { level: 0 });\n  if (element) {\n    provide('jsonforms.nestedInfo', {\n      level: nestedInfo.level + 1,\n      parentElement: element,\n    });\n  }\n  return nestedInfo;\n};\n","import { Options } from 'ajv';\nimport { createAjv as createAjvCore } from '@jsonforms/core';\nimport Ajv from 'ajv';\n\nexport const createAjv = (options?: Options): Ajv => {\n  const ajv = createAjvCore(options);\n  ajv.addFormat('password', (_) => true);\n  return ajv;\n};\n","import dayjs from 'dayjs';\nimport customParsing from 'dayjs/plugin/customParseFormat';\nimport utc from 'dayjs/plugin/utc';\nimport timezone from 'dayjs/plugin/timezone'; // dependent on utc plugin\n\n// required for the custom save formats in the date, time and date-time pickers\ndayjs.extend(customParsing);\ndayjs.extend(utc);\ndayjs.extend(timezone);\n\nexport const parseDateTime = (\n  data: string | null | undefined,\n  format: string | string[] | undefined\n): dayjs.Dayjs | null => {\n  if (!data) {\n    return null;\n  }\n  const dayjsData = dayjs(data, format);\n  if (!dayjsData.isValid()) {\n    return null;\n  }\n  return dayjsData;\n};\n","export const i18nDefaultMessages = {\n  arraylayout: {\n    add: 'Add',\n    delete: 'Delete',\n    moveUp: 'Move Up',\n    moveDown: 'Move Down',\n    dialogTitle: 'Delete {{ element }}?',\n    dialogText: 'The element will be deleted.',\n    dialogConfirm: 'Delete',\n    dialogCancel: 'Cancel',\n  },\n};\n","<template>\n  <v-label\n    v-if=\"label.visible\"\n    :class=\"styles.label.root\"\n    v-bind=\"vuetifyProps('v-label')\"\n  >\n    {{ label.text }}\n  </v-label>\n</template>\n\n<script lang=\"ts\">\nimport {\n  JsonFormsRendererRegistryEntry,\n  rankWith,\n  uiTypeIs,\n  LabelElement,\n} from '@jsonforms/core';\nimport { defineComponent } from 'vue';\nimport {\n  DispatchRenderer,\n  rendererProps,\n  RendererProps,\n  useJsonFormsLabel,\n} from '@jsonforms/vue';\nimport { VLabel } from 'vuetify/components';\nimport { useVuetifyLabel } from '../util';\n\nconst labelRenderer = defineComponent({\n  name: 'label-renderer',\n  components: {\n    DispatchRenderer,\n    VLabel,\n  },\n  props: {\n    ...rendererProps<LabelElement>(),\n  },\n  setup(props: RendererProps<LabelElement>) {\n    return useVuetifyLabel(useJsonFormsLabel(props));\n  },\n});\n\nexport default labelRenderer;\n\nexport const entry: JsonFormsRendererRegistryEntry = {\n  renderer: labelRenderer,\n  tester: rankWith(1, uiTypeIs('Label')),\n};\n</script>\n","<template>\n  <v-label\n    v-if=\"label.visible\"\n    :class=\"styles.label.root\"\n    v-bind=\"vuetifyProps('v-label')\"\n  >\n    {{ label.text }}\n  </v-label>\n</template>\n\n<script lang=\"ts\">\nimport {\n  JsonFormsRendererRegistryEntry,\n  rankWith,\n  uiTypeIs,\n  LabelElement,\n} from '@jsonforms/core';\nimport { defineComponent } from 'vue';\nimport {\n  DispatchRenderer,\n  rendererProps,\n  RendererProps,\n  useJsonFormsLabel,\n} from '@jsonforms/vue';\nimport { VLabel } from 'vuetify/components';\nimport { useVuetifyLabel } from '../util';\n\nconst labelRenderer = defineComponent({\n  name: 'label-renderer',\n  components: {\n    DispatchRenderer,\n    VLabel,\n  },\n  props: {\n    ...rendererProps<LabelElement>(),\n  },\n  setup(props: RendererProps<LabelElement>) {\n    return useVuetifyLabel(useJsonFormsLabel(props));\n  },\n});\n\nexport default labelRenderer;\n\nexport const entry: JsonFormsRendererRegistryEntry = {\n  renderer: labelRenderer,\n  tester: rankWith(1, uiTypeIs('Label')),\n};\n</script>\n","export { default as LabelRenderer } from './LabelRenderer.vue';\n// export { default as ListWithDetailRenderer } from './ListWithDetailRenderer.vue';\n\nimport { entry as labelRendererEntry } from './LabelRenderer.vue';\n// import { entry as listWithDetailRendererEntry } from './ListWithDetailRenderer.vue';\n\nexport const additionalRenderers = [\n  labelRendererEntry,\n  // listWithDetailRendererEntry,\n];\n\nexport {\n  labelRendererEntry\n}","<template>\n  <div>\n    <v-tooltip bottom v-if=\"errors.length > 0\">\n      <template v-slot:activator=\"{ props }\">\n        <v-badge\n          :color=\"color\"\n          :bordered=\"bordered\"\n          :inline=\"inline\"\n          :offsetX=\"offsetX\"\n          :offsetY=\"offsetY\"\n          :overlap=\"overlap\"\n        >\n          <template v-slot:badge>\n            {{ errors.length }}\n          </template>\n          <div v-bind=\"props\"><slot></slot></div>\n        </v-badge>\n      </template>\n\n      <p>Validation Errors</p>\n      <p\n        v-for=\"(message, index) in tooltipMessages\"\n        :key=\"`${index}`\"\n        class=\"mb-0\"\n      >\n        {{ message }}\n      </p>\n    </v-tooltip>\n    <slot v-else></slot>\n  </div>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent, PropType } from 'vue';\nimport { VBadge, VTooltip } from 'vuetify/components';\nimport { ErrorObject } from 'ajv';\nimport findIndex from 'lodash/findIndex';\nimport {\n  createControlElement,\n  createLabelDescriptionFrom,\n  JsonSchema,\n} from '@jsonforms/core';\n\nexport default defineComponent({\n  name: 'validation-badge',\n  components: {\n    VBadge,\n    VTooltip,\n  },\n  props: {\n    errors: {\n      required: true,\n      type: Array as PropType<ErrorObject[]>,\n    },\n    bordered: {\n      type: Boolean,\n      default: false,\n    },\n    color: {\n      type: String,\n      default: 'error',\n    },\n    inline: {\n      type: Boolean,\n      default: false,\n    },\n    offsetX: {\n      type: [Number, String],\n      default: undefined,\n    },\n    offsetY: {\n      type: [Number, String],\n      default: undefined,\n    },\n    overlap: {\n      type: Boolean,\n      default: false,\n    },\n  },\n  computed: {\n    tooltipMessages(): string[] {\n      const error: {\n        instancePath: string;\n        schemaPath: string;\n        labels: (string | undefined)[];\n        message: string;\n      }[] = [];\n\n      for (const e of this.errors) {\n        const errorObject = e as ErrorObject;\n        const index = findIndex(error, { schemaPath: errorObject.schemaPath });\n        if (errorObject.message) {\n          if (index == -1) {\n            error.push({\n              schemaPath: errorObject.schemaPath,\n              instancePath: errorObject.instancePath,\n              labels: [\n                createLabelDescriptionFrom(\n                  createControlElement(errorObject.instancePath),\n                  errorObject.schema as JsonSchema\n                ).text,\n              ],\n              message: errorObject.message,\n            });\n          } else {\n            error[index].labels.push(\n              createLabelDescriptionFrom(\n                createControlElement(errorObject.instancePath),\n                errorObject.schema as JsonSchema\n              ).text\n            );\n          }\n        }\n      }\n\n      return error.map((v) => v.labels.join(',') + ': ' + v.message);\n    },\n  },\n});\n</script>\n","<template>\n  <div>\n    <v-tooltip bottom v-if=\"errors.length > 0\">\n      <template v-slot:activator=\"{ props }\">\n        <v-badge\n          :color=\"color\"\n          :bordered=\"bordered\"\n          :inline=\"inline\"\n          :offsetX=\"offsetX\"\n          :offsetY=\"offsetY\"\n          :overlap=\"overlap\"\n        >\n          <template v-slot:badge>\n            {{ errors.length }}\n          </template>\n          <div v-bind=\"props\"><slot></slot></div>\n        </v-badge>\n      </template>\n\n      <p>Validation Errors</p>\n      <p\n        v-for=\"(message, index) in tooltipMessages\"\n        :key=\"`${index}`\"\n        class=\"mb-0\"\n      >\n        {{ message }}\n      </p>\n    </v-tooltip>\n    <slot v-else></slot>\n  </div>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent, PropType } from 'vue';\nimport { VBadge, VTooltip } from 'vuetify/components';\nimport { ErrorObject } from 'ajv';\nimport findIndex from 'lodash/findIndex';\nimport {\n  createControlElement,\n  createLabelDescriptionFrom,\n  JsonSchema,\n} from '@jsonforms/core';\n\nexport default defineComponent({\n  name: 'validation-badge',\n  components: {\n    VBadge,\n    VTooltip,\n  },\n  props: {\n    errors: {\n      required: true,\n      type: Array as PropType<ErrorObject[]>,\n    },\n    bordered: {\n      type: Boolean,\n      default: false,\n    },\n    color: {\n      type: String,\n      default: 'error',\n    },\n    inline: {\n      type: Boolean,\n      default: false,\n    },\n    offsetX: {\n      type: [Number, String],\n      default: undefined,\n    },\n    offsetY: {\n      type: [Number, String],\n      default: undefined,\n    },\n    overlap: {\n      type: Boolean,\n      default: false,\n    },\n  },\n  computed: {\n    tooltipMessages(): string[] {\n      const error: {\n        instancePath: string;\n        schemaPath: string;\n        labels: (string | undefined)[];\n        message: string;\n      }[] = [];\n\n      for (const e of this.errors) {\n        const errorObject = e as ErrorObject;\n        const index = findIndex(error, { schemaPath: errorObject.schemaPath });\n        if (errorObject.message) {\n          if (index == -1) {\n            error.push({\n              schemaPath: errorObject.schemaPath,\n              instancePath: errorObject.instancePath,\n              labels: [\n                createLabelDescriptionFrom(\n                  createControlElement(errorObject.instancePath),\n                  errorObject.schema as JsonSchema\n                ).text,\n              ],\n              message: errorObject.message,\n            });\n          } else {\n            error[index].labels.push(\n              createLabelDescriptionFrom(\n                createControlElement(errorObject.instancePath),\n                errorObject.schema as JsonSchema\n              ).text\n            );\n          }\n        }\n      }\n\n      return error.map((v) => v.labels.join(',') + ': ' + v.message);\n    },\n  },\n});\n</script>\n","<template>\n  <validation-badge v-if=\"errors && errors.length > 0\" :errors=\"errors\">\n    <v-icon color=\"error\">mdi-alert-circle-outline</v-icon>\n  </validation-badge>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent, PropType } from 'vue';\nimport { ErrorObject } from 'ajv';\nimport { default as ValidationBadge } from './ValidationBadge.vue';\nimport { VIcon } from 'vuetify/components';\n\nexport default defineComponent({\n  name: 'validation-icon',\n  components: {\n    ValidationBadge,\n    VIcon,\n  },\n  props: {\n    errors: {\n      required: true,\n      type: Array as PropType<ErrorObject[]>,\n    },\n  },\n});\n</script>\n","<template>\n  <validation-badge v-if=\"errors && errors.length > 0\" :errors=\"errors\">\n    <v-icon color=\"error\">mdi-alert-circle-outline</v-icon>\n  </validation-badge>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent, PropType } from 'vue';\nimport { ErrorObject } from 'ajv';\nimport { default as ValidationBadge } from './ValidationBadge.vue';\nimport { VIcon } from 'vuetify/components';\n\nexport default defineComponent({\n  name: 'validation-icon',\n  components: {\n    ValidationBadge,\n    VIcon,\n  },\n  props: {\n    errors: {\n      required: true,\n      type: Array as PropType<ErrorObject[]>,\n    },\n  },\n});\n</script>\n","<template>\n  <v-card v-if=\"control.visible\" :class=\"styles.arrayList.root\">\n    <v-card-title>\n      <v-toolbar flat :class=\"styles.arrayList.toolbar\">\n        <v-toolbar-title :class=\"styles.arrayList.label\">{{\n          computedLabel\n        }}</v-toolbar-title>\n        <validation-icon\n          v-if=\"\n            control.childErrors.length > 0 &&\n            !appliedOptions.hideArraySummaryValidation\n          \"\n          :errors=\"control.childErrors\"\n          :class=\"styles.arrayList.validationIcon\"\n        />\n        <v-spacer></v-spacer>\n        <slot\n          name=\"toolbar-elements\"\n          :labels=\"translatedLabels\"\n          :addClass=\"styles.arrayList.addButton\"\n          :addDisabled=\"addDisabled\"\n          :addClick=\"addButtonClick\"\n          :control=\"control\"\n          :appliedOptions=\"appliedOptions\"\n          :styles=\"styles\"\n        >\n          <v-tooltip bottom>\n            <template v-slot:activator=\"{ props }\">\n              <v-btn\n                fab\n                text\n                elevation=\"0\"\n                small\n                :aria-label=\"translatedLabels.add\"\n                v-bind=\"props\"\n                :class=\"styles.arrayList.addButton\"\n                :disabled=\"addDisabled\"\n                @click=\"addButtonClick\"\n              >\n                <v-icon>mdi-plus</v-icon>\n              </v-btn>\n            </template>\n            {{ translatedLabels.add }}\n          </v-tooltip>\n        </slot>\n      </v-toolbar>\n    </v-card-title>\n    <v-card-text>\n      <v-container\n        justify-space-around\n        align-content-center\n        :class=\"styles.arrayList.container\"\n      >\n        <v-row justify=\"center\">\n          <v-expansion-panels\n            accordion\n            v-bind=\"expansionPanelsProps\"\n            v-model=\"currentlyExpanded\"\n          >\n            <v-expansion-panel\n              v-for=\"(_element, index) in control.data\"\n              :key=\"`${control.path}-${index}`\"\n              :class=\"styles.arrayList.item\"\n            >\n              <v-expansion-panel-title :class=\"styles.arrayList.itemHeader\">\n                <v-container py-0 :class=\"styles.arrayList.itemContainer\">\n                  <v-row\n                    :style=\"`display: grid; grid-template-columns: ${\n                      !hideAvatar ? 'min-content' : ''\n                    } auto min-content ${\n                      appliedOptions.showSortButtons\n                        ? 'min-content min-content'\n                        : ''\n                    }`\"\n                  >\n                    <v-col v-if=\"!hideAvatar\" align-self=\"center\" class=\"pl-0\">\n                      <validation-badge\n                        overlap\n                        bordered\n                        :errors=\"childErrors(index)\"\n                      >\n                        <v-avatar size=\"40\" aria-label=\"Index\" color=\"primary\">\n                          <span class=\"primary--text text--lighten-5\">{{\n                            index + 1\n                          }}</span></v-avatar\n                        >\n                      </validation-badge>\n                    </v-col>\n\n                    <v-col\n                      align-self=\"center\"\n                      :class=\"`pl-0 text-truncate ${styles.arrayList.itemLabel}`\"\n                      >{{ childLabelForIndex(index) }}</v-col\n                    >\n                    <v-col\n                      align-self=\"center\"\n                      v-if=\"appliedOptions.showSortButtons\"\n                    >\n                      <v-tooltip bottom>\n                        <template v-slot:activator=\"{ props }\">\n                          <v-btn\n                            v-bind=\"props\"\n                            fab\n                            text\n                            elevation=\"0\"\n                            small\n                            class=\"v-expansion-panel-title__icon\"\n                            :aria-label=\"translatedLabels.moveUp\"\n                            :disabled=\"index <= 0 || !control.enabled\"\n                            :class=\"styles.arrayList.itemMoveUp\"\n                            @click.native=\"moveUpClick($event, index)\"\n                          >\n                            <v-icon class=\"notranslate\">mdi-arrow-up</v-icon>\n                          </v-btn>\n                        </template>\n                        {{ translatedLabels.moveUp }}\n                      </v-tooltip>\n                    </v-col>\n                    <v-col\n                      align-self=\"center\"\n                      v-if=\"appliedOptions.showSortButtons\"\n                    >\n                      <v-tooltip bottom>\n                        <template v-slot:activator=\"{ props }\">\n                          <v-btn\n                            v-bind=\"props\"\n                            fab\n                            text\n                            elevation=\"0\"\n                            small\n                            class=\"v-expansion-panel-title__icon\"\n                            :aria-label=\"translatedLabels.moveDown\"\n                            :disabled=\"\n                              index >= dataLength - 1 || !control.enabled\n                            \"\n                            :class=\"styles.arrayList.itemMoveDown\"\n                            @click.native=\"moveDownClick($event, index)\"\n                          >\n                            <v-icon class=\"notranslate\">mdi-arrow-down</v-icon>\n                          </v-btn>\n                        </template>\n                        {{ translatedLabels.moveDown }}\n                      </v-tooltip>\n                    </v-col>\n                    <v-col align-self=\"center\">\n                      <v-tooltip bottom>\n                        <template v-slot:activator=\"{ props }\">\n                          <v-btn\n                            v-bind=\"props\"\n                            fab\n                            text\n                            elevation=\"0\"\n                            small\n                            class=\"v-expansion-panel-title__icon\"\n                            :aria-label=\"translatedLabels.delete\"\n                            :class=\"styles.arrayList.itemDelete\"\n                            :disabled=\"\n                              !control.enabled ||\n                              (appliedOptions.restrict &&\n                                arraySchema !== undefined &&\n                                arraySchema.minItems !== undefined &&\n                                dataLength <= arraySchema.minItems)\n                            \"\n                            @click.stop.native=\"suggestToDelete = index\"\n                          >\n                            <v-icon class=\"notranslate\">mdi-delete</v-icon>\n                          </v-btn>\n                        </template>\n                        {{ translatedLabels.delete }}\n                      </v-tooltip>\n                    </v-col>\n                  </v-row>\n                </v-container>\n              </v-expansion-panel-title>\n              <v-expansion-panel-text :class=\"styles.arrayList.itemContent\">\n                <dispatch-renderer\n                  :schema=\"control.schema\"\n                  :uischema=\"foundUISchema\"\n                  :path=\"composePaths(control.path, `${index}`)\"\n                  :enabled=\"control.enabled\"\n                  :renderers=\"control.renderers\"\n                  :cells=\"control.cells\"\n                />\n              </v-expansion-panel-text>\n            </v-expansion-panel>\n          </v-expansion-panels>\n        </v-row>\n      </v-container>\n      <v-container v-if=\"dataLength === 0\" :class=\"styles.arrayList.noData\">\n        No data\n      </v-container>\n    </v-card-text>\n    <v-card-actions v-if=\"$slots.actions\" class=\"pb-8\">\n      <slot\n        name=\"actions\"\n        :labels=\"translatedLabels\"\n        :addClass=\"styles.arrayList.addButton\"\n        :addDisabled=\"addDisabled\"\n        :addClick=\"addButtonClick\"\n        :control=\"control\"\n        :appliedOptions=\"appliedOptions\"\n        :styles=\"styles\"\n      >\n      </slot>\n    </v-card-actions>\n    <v-dialog\n      :model-value=\"suggestToDelete !== null\"\n      max-width=\"600\"\n      @keydown.esc=\"suggestToDelete = null\"\n      @click:outside=\"suggestToDelete = null\"\n    >\n      <v-card>\n        <v-card-title class=\"text-h5\">\n          {{ translatedLabels.dialogTitle }}\n        </v-card-title>\n\n        <v-card-text> {{ translatedLabels.dialogText }} </v-card-text>\n\n        <v-card-actions>\n          <v-spacer></v-spacer>\n\n          <v-btn text @click=\"suggestToDelete = null\">\n            {{ translatedLabels.dialogCancel }}</v-btn\n          >\n          <v-btn\n            text\n            ref=\"confirm\"\n            @click=\"\n              removeItemsClick(\n                suggestToDelete === null ? null : [suggestToDelete]\n              );\n              suggestToDelete = null;\n            \"\n          >\n            {{ translatedLabels.dialogConfirm }}\n          </v-btn>\n        </v-card-actions>\n      </v-card>\n    </v-dialog>\n  </v-card>\n</template>\n\n<script lang=\"ts\">\nimport {\n  JsonFormsRendererRegistryEntry,\n  ControlElement,\n  rankWith,\n  isObjectArrayWithNesting,\n  composePaths,\n  createDefaultValue,\n  UISchemaElement,\n  findUISchema,\n  Resolve,\n  JsonSchema,\n  getControlPath,\n  getI18nKey,\n} from '@jsonforms/core';\nimport { defineComponent, computed, ref } from 'vue';\nimport {\n  DispatchRenderer,\n  rendererProps,\n  useJsonFormsArrayControl,\n  RendererProps,\n} from '@jsonforms/vue';\nimport {\n  useNested,\n  useVuetifyArrayControl,\n  useTranslator,\n  i18nDefaultMessages,\n} from '../util';\nimport {\n  VCard,\n  VCardActions,\n  VCardTitle,\n  VCardText,\n  VDialog,\n  VRow,\n  VCol,\n  VContainer,\n  VToolbar,\n  VToolbarTitle,\n  VTooltip,\n  VIcon,\n  VBtn,\n  VAvatar,\n  VSpacer,\n  VExpansionPanels,\n  VExpansionPanel,\n  VExpansionPanelTitle,\n  VExpansionPanelText,\n} from 'vuetify/components';\nimport { ValidationIcon, ValidationBadge } from '../controls/components/index';\nimport { ErrorObject } from 'ajv';\nimport merge from 'lodash/merge';\n\ntype I18nArrayLayoutKey = keyof typeof i18nDefaultMessages.arraylayout;\n\nconst controlRenderer = defineComponent({\n  name: 'array-layout-renderer',\n  components: {\n    DispatchRenderer,\n    VCard,\n    VCardActions,\n    VCardTitle,\n    VCardText,\n    VAvatar,\n    VDialog,\n    VRow,\n    VCol,\n    VToolbar,\n    VToolbarTitle,\n    VTooltip,\n    VIcon,\n    VBtn,\n    VSpacer,\n    VExpansionPanels,\n    VExpansionPanel,\n    VExpansionPanelTitle,\n    VExpansionPanelText,\n    VContainer,\n    ValidationIcon,\n    ValidationBadge,\n  },\n  props: {\n    ...rendererProps<ControlElement>(),\n  },\n  setup(props: RendererProps<ControlElement>) {\n    const control = useVuetifyArrayControl(useJsonFormsArrayControl(props));\n    const currentlyExpanded = ref<null | number>(\n      control.appliedOptions.value.initCollapsed ? null : 0\n    );\n    const expansionPanelsProps = computed(() =>\n      merge(\n        { flat: false, focusable: true },\n        control.vuetifyProps('v-expansion-panels')\n      )\n    );\n    const suggestToDelete = ref<null | number>(null);\n    // indicate to our child renderers that we are increasing the \"nested\" level\n    useNested('array');\n    const t = useTranslator();\n    return {\n      ...control,\n      currentlyExpanded,\n      expansionPanelsProps,\n      suggestToDelete,\n      t,\n    };\n  },\n  computed: {\n    addDisabled(): boolean {\n      return (\n        !this.control.enabled ||\n        (this.appliedOptions.restrict &&\n          this.arraySchema !== undefined &&\n          this.arraySchema.maxItems !== undefined &&\n          this.dataLength >= this.arraySchema.maxItems)\n      );\n    },\n    dataLength(): number {\n      return this.control.data ? this.control.data.length : 0;\n    },\n    foundUISchema(): UISchemaElement {\n      return findUISchema(\n        this.control.uischemas,\n        this.control.schema,\n        this.control.uischema.scope,\n        this.control.path,\n        undefined,\n        this.control.uischema,\n        this.control.rootSchema\n      );\n    },\n    arraySchema(): JsonSchema | undefined {\n      return Resolve.schema(\n        this.control.rootSchema,\n        this.control.uischema.scope,\n        this.control.rootSchema\n      );\n    },\n    hideAvatar(): boolean {\n      return !!this.appliedOptions.hideAvatar;\n    },\n    translatedLabels(): { [key in I18nArrayLayoutKey]: string } {\n      const elementToDeleteText = this.childLabelForIndex(this.suggestToDelete);\n      return {\n        add: this.translateLabel('add'),\n        delete: this.translateLabel('delete'),\n        moveUp: this.translateLabel('moveUp'),\n        moveDown: this.translateLabel('moveDown'),\n        dialogTitle: this.translateLabel(\n          'dialogTitle',\n          {\n            element: elementToDeleteText,\n          },\n          (message) =>\n            message.replace(\n              /\\{\\{\\s?element\\s?\\}\\}/,\n              elementToDeleteText || 'element'\n            )\n        ),\n        dialogText: this.translateLabel('dialogText'),\n        dialogCancel: this.translateLabel('dialogCancel'),\n        dialogConfirm: this.translateLabel('dialogConfirm'),\n      };\n    },\n  },\n  methods: {\n    composePaths,\n    createDefaultValue,\n    addButtonClick() {\n      this.addItem(\n        this.control.path,\n        createDefaultValue(\n            this.control.schema,\n            this.control.rootSchema\n        )\n      )();\n      if (!this.appliedOptions.collapseNewItems && this.control.data?.length) {\n        this.currentlyExpanded = this.dataLength - 1;\n      }\n    },\n    moveUpClick(event: Event, toMove: number): void {\n      event.stopPropagation();\n      this.moveUp?.(this.control.path, toMove)();\n    },\n    moveDownClick(event: Event, toMove: number): void {\n      event.stopPropagation();\n      this.moveDown?.(this.control.path, toMove)();\n    },\n    removeItemsClick(toDelete: number[] | null): void {\n      if (toDelete !== null) {\n        this.removeItems?.(this.control.path, toDelete)();\n      }\n    },\n    childErrors(index: number): ErrorObject[] {\n      return this.control.childErrors.filter((e: ErrorObject) => {\n        const errorDataPath = getControlPath(e);\n        return errorDataPath.startsWith(\n          this.composePaths(this.control.path, `${index}`)\n        );\n      });\n    },\n    translateLabel(\n      labelType: I18nArrayLayoutKey,\n      additionalContext: Record<string, unknown> | undefined = undefined,\n      transformMessage: (message: string) => string = (text) => text\n    ): string {\n      const i18nKey = getI18nKey(\n        this.arraySchema,\n        this.control.uischema,\n        this.control.path,\n        labelType\n      );\n      const context = {\n        schema: this.control.schema,\n        uischema: this.control.uischema,\n        path: this.control.path,\n        data: this.control.data,\n        ...additionalContext,\n      };\n      const translation = this.t(i18nKey, undefined, context);\n      if (translation !== undefined) {\n        return translation;\n      }\n      return this.t(\n        `arraylayout.${labelType}`,\n        transformMessage(i18nDefaultMessages.arraylayout[labelType]),\n        context\n      );\n    },\n  },\n});\n\nexport default controlRenderer;\n\nexport const entry: JsonFormsRendererRegistryEntry = {\n  renderer: controlRenderer,\n  tester: rankWith(4, isObjectArrayWithNesting),\n};\n</script>\n\n<style scoped>\n.notranslate {\n  transform: none !important;\n}\n/deep/ .v-toolbar__content {\n  padding-left: 0;\n}\n</style>\n","<template>\n  <v-card v-if=\"control.visible\" :class=\"styles.arrayList.root\">\n    <v-card-title>\n      <v-toolbar flat :class=\"styles.arrayList.toolbar\">\n        <v-toolbar-title :class=\"styles.arrayList.label\">{{\n          computedLabel\n        }}</v-toolbar-title>\n        <validation-icon\n          v-if=\"\n            control.childErrors.length > 0 &&\n            !appliedOptions.hideArraySummaryValidation\n          \"\n          :errors=\"control.childErrors\"\n          :class=\"styles.arrayList.validationIcon\"\n        />\n        <v-spacer></v-spacer>\n        <slot\n          name=\"toolbar-elements\"\n          :labels=\"translatedLabels\"\n          :addClass=\"styles.arrayList.addButton\"\n          :addDisabled=\"addDisabled\"\n          :addClick=\"addButtonClick\"\n          :control=\"control\"\n          :appliedOptions=\"appliedOptions\"\n          :styles=\"styles\"\n        >\n          <v-tooltip bottom>\n            <template v-slot:activator=\"{ props }\">\n              <v-btn\n                fab\n                text\n                elevation=\"0\"\n                small\n                :aria-label=\"translatedLabels.add\"\n                v-bind=\"props\"\n                :class=\"styles.arrayList.addButton\"\n                :disabled=\"addDisabled\"\n                @click=\"addButtonClick\"\n              >\n                <v-icon>mdi-plus</v-icon>\n              </v-btn>\n            </template>\n            {{ translatedLabels.add }}\n          </v-tooltip>\n        </slot>\n      </v-toolbar>\n    </v-card-title>\n    <v-card-text>\n      <v-container\n        justify-space-around\n        align-content-center\n        :class=\"styles.arrayList.container\"\n      >\n        <v-row justify=\"center\">\n          <v-expansion-panels\n            accordion\n            v-bind=\"expansionPanelsProps\"\n            v-model=\"currentlyExpanded\"\n          >\n            <v-expansion-panel\n              v-for=\"(_element, index) in control.data\"\n              :key=\"`${control.path}-${index}`\"\n              :class=\"styles.arrayList.item\"\n            >\n              <v-expansion-panel-title :class=\"styles.arrayList.itemHeader\">\n                <v-container py-0 :class=\"styles.arrayList.itemContainer\">\n                  <v-row\n                    :style=\"`display: grid; grid-template-columns: ${\n                      !hideAvatar ? 'min-content' : ''\n                    } auto min-content ${\n                      appliedOptions.showSortButtons\n                        ? 'min-content min-content'\n                        : ''\n                    }`\"\n                  >\n                    <v-col v-if=\"!hideAvatar\" align-self=\"center\" class=\"pl-0\">\n                      <validation-badge\n                        overlap\n                        bordered\n                        :errors=\"childErrors(index)\"\n                      >\n                        <v-avatar size=\"40\" aria-label=\"Index\" color=\"primary\">\n                          <span class=\"primary--text text--lighten-5\">{{\n                            index + 1\n                          }}</span></v-avatar\n                        >\n                      </validation-badge>\n                    </v-col>\n\n                    <v-col\n                      align-self=\"center\"\n                      :class=\"`pl-0 text-truncate ${styles.arrayList.itemLabel}`\"\n                      >{{ childLabelForIndex(index) }}</v-col\n                    >\n                    <v-col\n                      align-self=\"center\"\n                      v-if=\"appliedOptions.showSortButtons\"\n                    >\n                      <v-tooltip bottom>\n                        <template v-slot:activator=\"{ props }\">\n                          <v-btn\n                            v-bind=\"props\"\n                            fab\n                            text\n                            elevation=\"0\"\n                            small\n                            class=\"v-expansion-panel-title__icon\"\n                            :aria-label=\"translatedLabels.moveUp\"\n                            :disabled=\"index <= 0 || !control.enabled\"\n                            :class=\"styles.arrayList.itemMoveUp\"\n                            @click.native=\"moveUpClick($event, index)\"\n                          >\n                            <v-icon class=\"notranslate\">mdi-arrow-up</v-icon>\n                          </v-btn>\n                        </template>\n                        {{ translatedLabels.moveUp }}\n                      </v-tooltip>\n                    </v-col>\n                    <v-col\n                      align-self=\"center\"\n                      v-if=\"appliedOptions.showSortButtons\"\n                    >\n                      <v-tooltip bottom>\n                        <template v-slot:activator=\"{ props }\">\n                          <v-btn\n                            v-bind=\"props\"\n                            fab\n                            text\n                            elevation=\"0\"\n                            small\n                            class=\"v-expansion-panel-title__icon\"\n                            :aria-label=\"translatedLabels.moveDown\"\n                            :disabled=\"\n                              index >= dataLength - 1 || !control.enabled\n                            \"\n                            :class=\"styles.arrayList.itemMoveDown\"\n                            @click.native=\"moveDownClick($event, index)\"\n                          >\n                            <v-icon class=\"notranslate\">mdi-arrow-down</v-icon>\n                          </v-btn>\n                        </template>\n                        {{ translatedLabels.moveDown }}\n                      </v-tooltip>\n                    </v-col>\n                    <v-col align-self=\"center\">\n                      <v-tooltip bottom>\n                        <template v-slot:activator=\"{ props }\">\n                          <v-btn\n                            v-bind=\"props\"\n                            fab\n                            text\n                            elevation=\"0\"\n                            small\n                            class=\"v-expansion-panel-title__icon\"\n                            :aria-label=\"translatedLabels.delete\"\n                            :class=\"styles.arrayList.itemDelete\"\n                            :disabled=\"\n                              !control.enabled ||\n                              (appliedOptions.restrict &&\n                                arraySchema !== undefined &&\n                                arraySchema.minItems !== undefined &&\n                                dataLength <= arraySchema.minItems)\n                            \"\n                            @click.stop.native=\"suggestToDelete = index\"\n                          >\n                            <v-icon class=\"notranslate\">mdi-delete</v-icon>\n                          </v-btn>\n                        </template>\n                        {{ translatedLabels.delete }}\n                      </v-tooltip>\n                    </v-col>\n                  </v-row>\n                </v-container>\n              </v-expansion-panel-title>\n              <v-expansion-panel-text :class=\"styles.arrayList.itemContent\">\n                <dispatch-renderer\n                  :schema=\"control.schema\"\n                  :uischema=\"foundUISchema\"\n                  :path=\"composePaths(control.path, `${index}`)\"\n                  :enabled=\"control.enabled\"\n                  :renderers=\"control.renderers\"\n                  :cells=\"control.cells\"\n                />\n              </v-expansion-panel-text>\n            </v-expansion-panel>\n          </v-expansion-panels>\n        </v-row>\n      </v-container>\n      <v-container v-if=\"dataLength === 0\" :class=\"styles.arrayList.noData\">\n        No data\n      </v-container>\n    </v-card-text>\n    <v-card-actions v-if=\"$slots.actions\" class=\"pb-8\">\n      <slot\n        name=\"actions\"\n        :labels=\"translatedLabels\"\n        :addClass=\"styles.arrayList.addButton\"\n        :addDisabled=\"addDisabled\"\n        :addClick=\"addButtonClick\"\n        :control=\"control\"\n        :appliedOptions=\"appliedOptions\"\n        :styles=\"styles\"\n      >\n      </slot>\n    </v-card-actions>\n    <v-dialog\n      :model-value=\"suggestToDelete !== null\"\n      max-width=\"600\"\n      @keydown.esc=\"suggestToDelete = null\"\n      @click:outside=\"suggestToDelete = null\"\n    >\n      <v-card>\n        <v-card-title class=\"text-h5\">\n          {{ translatedLabels.dialogTitle }}\n        </v-card-title>\n\n        <v-card-text> {{ translatedLabels.dialogText }} </v-card-text>\n\n        <v-card-actions>\n          <v-spacer></v-spacer>\n\n          <v-btn text @click=\"suggestToDelete = null\">\n            {{ translatedLabels.dialogCancel }}</v-btn\n          >\n          <v-btn\n            text\n            ref=\"confirm\"\n            @click=\"\n              removeItemsClick(\n                suggestToDelete === null ? null : [suggestToDelete]\n              );\n              suggestToDelete = null;\n            \"\n          >\n            {{ translatedLabels.dialogConfirm }}\n          </v-btn>\n        </v-card-actions>\n      </v-card>\n    </v-dialog>\n  </v-card>\n</template>\n\n<script lang=\"ts\">\nimport {\n  JsonFormsRendererRegistryEntry,\n  ControlElement,\n  rankWith,\n  isObjectArrayWithNesting,\n  composePaths,\n  createDefaultValue,\n  UISchemaElement,\n  findUISchema,\n  Resolve,\n  JsonSchema,\n  getControlPath,\n  getI18nKey,\n} from '@jsonforms/core';\nimport { defineComponent, computed, ref } from 'vue';\nimport {\n  DispatchRenderer,\n  rendererProps,\n  useJsonFormsArrayControl,\n  RendererProps,\n} from '@jsonforms/vue';\nimport {\n  useNested,\n  useVuetifyArrayControl,\n  useTranslator,\n  i18nDefaultMessages,\n} from '../util';\nimport {\n  VCard,\n  VCardActions,\n  VCardTitle,\n  VCardText,\n  VDialog,\n  VRow,\n  VCol,\n  VContainer,\n  VToolbar,\n  VToolbarTitle,\n  VTooltip,\n  VIcon,\n  VBtn,\n  VAvatar,\n  VSpacer,\n  VExpansionPanels,\n  VExpansionPanel,\n  VExpansionPanelTitle,\n  VExpansionPanelText,\n} from 'vuetify/components';\nimport { ValidationIcon, ValidationBadge } from '../controls/components/index';\nimport { ErrorObject } from 'ajv';\nimport merge from 'lodash/merge';\n\ntype I18nArrayLayoutKey = keyof typeof i18nDefaultMessages.arraylayout;\n\nconst controlRenderer = defineComponent({\n  name: 'array-layout-renderer',\n  components: {\n    DispatchRenderer,\n    VCard,\n    VCardActions,\n    VCardTitle,\n    VCardText,\n    VAvatar,\n    VDialog,\n    VRow,\n    VCol,\n    VToolbar,\n    VToolbarTitle,\n    VTooltip,\n    VIcon,\n    VBtn,\n    VSpacer,\n    VExpansionPanels,\n    VExpansionPanel,\n    VExpansionPanelTitle,\n    VExpansionPanelText,\n    VContainer,\n    ValidationIcon,\n    ValidationBadge,\n  },\n  props: {\n    ...rendererProps<ControlElement>(),\n  },\n  setup(props: RendererProps<ControlElement>) {\n    const control = useVuetifyArrayControl(useJsonFormsArrayControl(props));\n    const currentlyExpanded = ref<null | number>(\n      control.appliedOptions.value.initCollapsed ? null : 0\n    );\n    const expansionPanelsProps = computed(() =>\n      merge(\n        { flat: false, focusable: true },\n        control.vuetifyProps('v-expansion-panels')\n      )\n    );\n    const suggestToDelete = ref<null | number>(null);\n    // indicate to our child renderers that we are increasing the \"nested\" level\n    useNested('array');\n    const t = useTranslator();\n    return {\n      ...control,\n      currentlyExpanded,\n      expansionPanelsProps,\n      suggestToDelete,\n      t,\n    };\n  },\n  computed: {\n    addDisabled(): boolean {\n      return (\n        !this.control.enabled ||\n        (this.appliedOptions.restrict &&\n          this.arraySchema !== undefined &&\n          this.arraySchema.maxItems !== undefined &&\n          this.dataLength >= this.arraySchema.maxItems)\n      );\n    },\n    dataLength(): number {\n      return this.control.data ? this.control.data.length : 0;\n    },\n    foundUISchema(): UISchemaElement {\n      return findUISchema(\n        this.control.uischemas,\n        this.control.schema,\n        this.control.uischema.scope,\n        this.control.path,\n        undefined,\n        this.control.uischema,\n        this.control.rootSchema\n      );\n    },\n    arraySchema(): JsonSchema | undefined {\n      return Resolve.schema(\n        this.control.rootSchema,\n        this.control.uischema.scope,\n        this.control.rootSchema\n      );\n    },\n    hideAvatar(): boolean {\n      return !!this.appliedOptions.hideAvatar;\n    },\n    translatedLabels(): { [key in I18nArrayLayoutKey]: string } {\n      const elementToDeleteText = this.childLabelForIndex(this.suggestToDelete);\n      return {\n        add: this.translateLabel('add'),\n        delete: this.translateLabel('delete'),\n        moveUp: this.translateLabel('moveUp'),\n        moveDown: this.translateLabel('moveDown'),\n        dialogTitle: this.translateLabel(\n          'dialogTitle',\n          {\n            element: elementToDeleteText,\n          },\n          (message) =>\n            message.replace(\n              /\\{\\{\\s?element\\s?\\}\\}/,\n              elementToDeleteText || 'element'\n            )\n        ),\n        dialogText: this.translateLabel('dialogText'),\n        dialogCancel: this.translateLabel('dialogCancel'),\n        dialogConfirm: this.translateLabel('dialogConfirm'),\n      };\n    },\n  },\n  methods: {\n    composePaths,\n    createDefaultValue,\n    addButtonClick() {\n      this.addItem(\n        this.control.path,\n        createDefaultValue(\n            this.control.schema,\n            this.control.rootSchema\n        )\n      )();\n      if (!this.appliedOptions.collapseNewItems && this.control.data?.length) {\n        this.currentlyExpanded = this.dataLength - 1;\n      }\n    },\n    moveUpClick(event: Event, toMove: number): void {\n      event.stopPropagation();\n      this.moveUp?.(this.control.path, toMove)();\n    },\n    moveDownClick(event: Event, toMove: number): void {\n      event.stopPropagation();\n      this.moveDown?.(this.control.path, toMove)();\n    },\n    removeItemsClick(toDelete: number[] | null): void {\n      if (toDelete !== null) {\n        this.removeItems?.(this.control.path, toDelete)();\n      }\n    },\n    childErrors(index: number): ErrorObject[] {\n      return this.control.childErrors.filter((e: ErrorObject) => {\n        const errorDataPath = getControlPath(e);\n        return errorDataPath.startsWith(\n          this.composePaths(this.control.path, `${index}`)\n        );\n      });\n    },\n    translateLabel(\n      labelType: I18nArrayLayoutKey,\n      additionalContext: Record<string, unknown> | undefined = undefined,\n      transformMessage: (message: string) => string = (text) => text\n    ): string {\n      const i18nKey = getI18nKey(\n        this.arraySchema,\n        this.control.uischema,\n        this.control.path,\n        labelType\n      );\n      const context = {\n        schema: this.control.schema,\n        uischema: this.control.uischema,\n        path: this.control.path,\n        data: this.control.data,\n        ...additionalContext,\n      };\n      const translation = this.t(i18nKey, undefined, context);\n      if (translation !== undefined) {\n        return translation;\n      }\n      return this.t(\n        `arraylayout.${labelType}`,\n        transformMessage(i18nDefaultMessages.arraylayout[labelType]),\n        context\n      );\n    },\n  },\n});\n\nexport default controlRenderer;\n\nexport const entry: JsonFormsRendererRegistryEntry = {\n  renderer: controlRenderer,\n  tester: rankWith(4, isObjectArrayWithNesting),\n};\n</script>\n\n<style scoped>\n.notranslate {\n  transform: none !important;\n}\n/deep/ .v-toolbar__content {\n  padding-left: 0;\n}\n</style>\n","<template>\n  <v-container v-if=\"layout.visible\" :class=\"styles.categorization.root\">\n    <v-row\n      v-if=\"appliedOptions.vertical == true\"\n      v-bind=\"vuetifyProps('v-row')\"\n    >\n      <v-col v-bind=\"vuetifyProps('v-col.v-tabs')\">\n        <v-tabs\n          v-model=\"activeCategory\"\n          v-bind=\"vuetifyProps('v-tabs')\"\n          vertical\n        >\n          <v-tab\n            v-for=\"(_, index) in visibleCategories\"\n            :key=\"`${layout.path}-${index}`\"\n          >\n            {{ visibleCategoryLabels[index] }}\n          </v-tab>\n        </v-tabs>\n      </v-col>\n      <v-col v-bind=\"vuetifyProps('v-col.v-window')\">\n        <v-window\n          v-model=\"activeCategory\"\n          vertical\n          v-bind=\"vuetifyProps('v-window')\"\n        >\n          <v-window-item\n            v-for=\"(element, index) in visibleCategories\"\n            :key=\"`${layout.path}-${index}`\"\n          >\n            <dispatch-renderer\n              :schema=\"layout.schema\"\n              :uischema=\"element\"\n              :path=\"layout.path\"\n              :enabled=\"layout.enabled\"\n              :renderers=\"layout.renderers\"\n              :cells=\"layout.cells\"\n            />\n          </v-window-item>\n        </v-window>\n      </v-col>\n    </v-row>\n    <v-row v-else v-bind=\"vuetifyProps('v-row')\">\n      <v-tabs v-model=\"activeCategory\" v-bind=\"vuetifyProps('v-tabs')\">\n        <v-tab\n          v-for=\"(_, index) in visibleCategories\"\n          :key=\"`${layout.path}-${index}`\"\n        >\n          {{ visibleCategoryLabels[index] }}\n        </v-tab>\n      </v-tabs>\n\n      <v-window v-model=\"activeCategory\" v-bind=\"vuetifyProps('v-window')\">\n        <v-window-item\n          v-for=\"(element, index) in visibleCategories\"\n          :key=\"`${layout.path}-${index}`\"\n        >\n          <dispatch-renderer\n            :schema=\"layout.schema\"\n            :uischema=\"element\"\n            :path=\"layout.path\"\n            :enabled=\"layout.enabled\"\n            :renderers=\"layout.renderers\"\n            :cells=\"layout.cells\"\n          />\n        </v-window-item>\n      </v-window>\n    </v-row>\n  </v-container>\n</template>\n\n<script lang=\"ts\">\nimport {\n  JsonFormsRendererRegistryEntry,\n  Layout,\n  rankWith,\n  and,\n  uiTypeIs,\n  Categorization,\n  Category,\n  Tester,\n  isVisible,\n  categorizationHasCategory,\n  deriveLabelForUISchemaElement,\n} from '@jsonforms/core';\nimport { defineComponent, ref } from 'vue';\nimport {\n  DispatchRenderer,\n  rendererProps,\n  useJsonFormsLayout,\n  RendererProps,\n} from '@jsonforms/vue';\nimport { useAjv, useTranslator, useVuetifyLayout } from '../util';\nimport {\n  VContainer,\n  VTabs,\n  VTab,\n  VWindow,\n  VWindowItem,\n  VRow,\n  VCol,\n} from 'vuetify/components';\n\nconst layoutRenderer = defineComponent({\n  name: 'categorization-renderer',\n  components: {\n    DispatchRenderer,\n    VContainer,\n    VTabs,\n    VTab,\n    VWindow,\n    VWindowItem,\n    VRow,\n    VCol,\n  },\n  props: {\n    ...rendererProps<Layout>(),\n  },\n  setup(props: RendererProps<Layout>) {\n    const activeCategory = ref(0);\n    const ajv = useAjv();\n    const t = useTranslator();\n    return {\n      ...useVuetifyLayout(useJsonFormsLayout(props)),\n      activeCategory,\n      ajv,\n      t,\n    };\n  },\n  computed: {\n    visibleCategories(): (Category | Categorization)[] {\n      return (this.layout.uischema as Categorization).elements.filter(\n        (category: Category | Categorization) =>\n          isVisible(category, this.layout.data, this.layout.path, this.ajv)\n      );\n    },\n    visibleCategoryLabels(): string[] {\n      return this.visibleCategories.map((element) => {\n        return deriveLabelForUISchemaElement(element, this.t) ?? '';\n      });\n    },\n  },\n});\n\nexport default layoutRenderer;\n\nexport const isSingleLevelCategorization: Tester = and(\n  uiTypeIs('Categorization'),\n  categorizationHasCategory\n);\n\nexport const entry: JsonFormsRendererRegistryEntry = {\n  renderer: layoutRenderer,\n  tester: rankWith(2, isSingleLevelCategorization),\n};\n</script>\n\n<style>\n.v-window {\n  width: 100%;\n}\n</style>\n","<template>\n  <v-container v-if=\"layout.visible\" :class=\"styles.categorization.root\">\n    <v-row\n      v-if=\"appliedOptions.vertical == true\"\n      v-bind=\"vuetifyProps('v-row')\"\n    >\n      <v-col v-bind=\"vuetifyProps('v-col.v-tabs')\">\n        <v-tabs\n          v-model=\"activeCategory\"\n          v-bind=\"vuetifyProps('v-tabs')\"\n          vertical\n        >\n          <v-tab\n            v-for=\"(_, index) in visibleCategories\"\n            :key=\"`${layout.path}-${index}`\"\n          >\n            {{ visibleCategoryLabels[index] }}\n          </v-tab>\n        </v-tabs>\n      </v-col>\n      <v-col v-bind=\"vuetifyProps('v-col.v-window')\">\n        <v-window\n          v-model=\"activeCategory\"\n          vertical\n          v-bind=\"vuetifyProps('v-window')\"\n        >\n          <v-window-item\n            v-for=\"(element, index) in visibleCategories\"\n            :key=\"`${layout.path}-${index}`\"\n          >\n            <dispatch-renderer\n              :schema=\"layout.schema\"\n              :uischema=\"element\"\n              :path=\"layout.path\"\n              :enabled=\"layout.enabled\"\n              :renderers=\"layout.renderers\"\n              :cells=\"layout.cells\"\n            />\n          </v-window-item>\n        </v-window>\n      </v-col>\n    </v-row>\n    <v-row v-else v-bind=\"vuetifyProps('v-row')\">\n      <v-tabs v-model=\"activeCategory\" v-bind=\"vuetifyProps('v-tabs')\">\n        <v-tab\n          v-for=\"(_, index) in visibleCategories\"\n          :key=\"`${layout.path}-${index}`\"\n        >\n          {{ visibleCategoryLabels[index] }}\n        </v-tab>\n      </v-tabs>\n\n      <v-window v-model=\"activeCategory\" v-bind=\"vuetifyProps('v-window')\">\n        <v-window-item\n          v-for=\"(element, index) in visibleCategories\"\n          :key=\"`${layout.path}-${index}`\"\n        >\n          <dispatch-renderer\n            :schema=\"layout.schema\"\n            :uischema=\"element\"\n            :path=\"layout.path\"\n            :enabled=\"layout.enabled\"\n            :renderers=\"layout.renderers\"\n            :cells=\"layout.cells\"\n          />\n        </v-window-item>\n      </v-window>\n    </v-row>\n  </v-container>\n</template>\n\n<script lang=\"ts\">\nimport {\n  JsonFormsRendererRegistryEntry,\n  Layout,\n  rankWith,\n  and,\n  uiTypeIs,\n  Categorization,\n  Category,\n  Tester,\n  isVisible,\n  categorizationHasCategory,\n  deriveLabelForUISchemaElement,\n} from '@jsonforms/core';\nimport { defineComponent, ref } from 'vue';\nimport {\n  DispatchRenderer,\n  rendererProps,\n  useJsonFormsLayout,\n  RendererProps,\n} from '@jsonforms/vue';\nimport { useAjv, useTranslator, useVuetifyLayout } from '../util';\nimport {\n  VContainer,\n  VTabs,\n  VTab,\n  VWindow,\n  VWindowItem,\n  VRow,\n  VCol,\n} from 'vuetify/components';\n\nconst layoutRenderer = defineComponent({\n  name: 'categorization-renderer',\n  components: {\n    DispatchRenderer,\n    VContainer,\n    VTabs,\n    VTab,\n    VWindow,\n    VWindowItem,\n    VRow,\n    VCol,\n  },\n  props: {\n    ...rendererProps<Layout>(),\n  },\n  setup(props: RendererProps<Layout>) {\n    const activeCategory = ref(0);\n    const ajv = useAjv();\n    const t = useTranslator();\n    return {\n      ...useVuetifyLayout(useJsonFormsLayout(props)),\n      activeCategory,\n      ajv,\n      t,\n    };\n  },\n  computed: {\n    visibleCategories(): (Category | Categorization)[] {\n      return (this.layout.uischema as Categorization).elements.filter(\n        (category: Category | Categorization) =>\n          isVisible(category, this.layout.data, this.layout.path, this.ajv)\n      );\n    },\n    visibleCategoryLabels(): string[] {\n      return this.visibleCategories.map((element) => {\n        return deriveLabelForUISchemaElement(element, this.t) ?? '';\n      });\n    },\n  },\n});\n\nexport default layoutRenderer;\n\nexport const isSingleLevelCategorization: Tester = and(\n  uiTypeIs('Categorization'),\n  categorizationHasCategory\n);\n\nexport const entry: JsonFormsRendererRegistryEntry = {\n  renderer: layoutRenderer,\n  tester: rankWith(2, isSingleLevelCategorization),\n};\n</script>\n\n<style>\n.v-window {\n  width: 100%;\n}\n</style>\n","<template>\n  <v-card\n    v-if=\"layout.visible\"\n    :class=\"classes\"\n    :elevation=\"!bare ? 2 : undefined\"\n    :outlined=\"bare\"\n    v-bind=\"vuetifyProps('v-card')\"\n  >\n    <v-card-title\n      v-if=\"layout.label\"\n      :class=\"styles.group.label\"\n      v-bind=\"vuetifyProps('v-card-title')\"\n      >{{ layout.label }}</v-card-title\n    >\n\n    <v-card-text\n      v-bind=\"vuetifyProps(`v-card-text[${index}]`)\"\n      v-for=\"(element, index) in layout.uischema.elements\"\n      :key=\"`${layout.path}-${index}`\"\n      :class=\"styles.group.item\"\n    >\n      <dispatch-renderer\n        :schema=\"layout.schema\"\n        :uischema=\"element\"\n        :path=\"layout.path\"\n        :enabled=\"layout.enabled\"\n        :renderers=\"layout.renderers\"\n        :cells=\"layout.cells\"\n      />\n    </v-card-text>\n  </v-card>\n</template>\n\n<script lang=\"ts\">\nimport {\n  JsonFormsRendererRegistryEntry,\n  Layout,\n  rankWith,\n  and,\n  isLayout,\n  uiTypeIs,\n} from '@jsonforms/core';\nimport { defineComponent } from 'vue';\nimport {\n  DispatchRenderer,\n  rendererProps,\n  useJsonFormsLayout,\n  RendererProps,\n} from '@jsonforms/vue';\nimport { useVuetifyLayout } from '../util';\nimport { VCard, VCardTitle, VCardText } from 'vuetify/components';\n\nconst layoutRenderer = defineComponent({\n  name: 'group-renderer',\n  components: {\n    DispatchRenderer,\n    VCard,\n    VCardTitle,\n    VCardText,\n  },\n  props: {\n    ...rendererProps<Layout>(),\n  },\n  setup(props: RendererProps<Layout>) {\n    return useVuetifyLayout(useJsonFormsLayout(props));\n  },\n  computed: {\n    bare(): boolean {\n      return !!this.appliedOptions.bare;\n    },\n    alignLeft(): boolean {\n      return !!this.appliedOptions.alignLeft;\n    },\n    classes(): string {\n      const classes = ['my-1', 'pa-0', `${this.styles.group.root}`];\n      if (this.bare) {\n        classes.push(`${this.styles.group.bare}`);\n      }\n      if (this.alignLeft) {\n        classes.push(`${this.styles.group.alignLeft}`);\n      }\n      return classes.join(' ');\n    },\n  },\n});\n\nexport default layoutRenderer;\n\nexport const entry: JsonFormsRendererRegistryEntry = {\n  renderer: layoutRenderer,\n  tester: rankWith(2, and(isLayout, uiTypeIs('Group'))),\n};\n</script>\n\n<!-- Default styles for the 'nested' feature -->\n<style>\n.group.group-bare {\n  border: 0;\n}\n.group-bare > .group-label,\n.group-bare > .group-item {\n  padding-right: 0;\n}\n.group-align-left > .group-label,\n.group-align-left > .group-item {\n  padding-left: 0;\n}\n</style>\n","<template>\n  <v-card\n    v-if=\"layout.visible\"\n    :class=\"classes\"\n    :elevation=\"!bare ? 2 : undefined\"\n    :outlined=\"bare\"\n    v-bind=\"vuetifyProps('v-card')\"\n  >\n    <v-card-title\n      v-if=\"layout.label\"\n      :class=\"styles.group.label\"\n      v-bind=\"vuetifyProps('v-card-title')\"\n      >{{ layout.label }}</v-card-title\n    >\n\n    <v-card-text\n      v-bind=\"vuetifyProps(`v-card-text[${index}]`)\"\n      v-for=\"(element, index) in layout.uischema.elements\"\n      :key=\"`${layout.path}-${index}`\"\n      :class=\"styles.group.item\"\n    >\n      <dispatch-renderer\n        :schema=\"layout.schema\"\n        :uischema=\"element\"\n        :path=\"layout.path\"\n        :enabled=\"layout.enabled\"\n        :renderers=\"layout.renderers\"\n        :cells=\"layout.cells\"\n      />\n    </v-card-text>\n  </v-card>\n</template>\n\n<script lang=\"ts\">\nimport {\n  JsonFormsRendererRegistryEntry,\n  Layout,\n  rankWith,\n  and,\n  isLayout,\n  uiTypeIs,\n} from '@jsonforms/core';\nimport { defineComponent } from 'vue';\nimport {\n  DispatchRenderer,\n  rendererProps,\n  useJsonFormsLayout,\n  RendererProps,\n} from '@jsonforms/vue';\nimport { useVuetifyLayout } from '../util';\nimport { VCard, VCardTitle, VCardText } from 'vuetify/components';\n\nconst layoutRenderer = defineComponent({\n  name: 'group-renderer',\n  components: {\n    DispatchRenderer,\n    VCard,\n    VCardTitle,\n    VCardText,\n  },\n  props: {\n    ...rendererProps<Layout>(),\n  },\n  setup(props: RendererProps<Layout>) {\n    return useVuetifyLayout(useJsonFormsLayout(props));\n  },\n  computed: {\n    bare(): boolean {\n      return !!this.appliedOptions.bare;\n    },\n    alignLeft(): boolean {\n      return !!this.appliedOptions.alignLeft;\n    },\n    classes(): string {\n      const classes = ['my-1', 'pa-0', `${this.styles.group.root}`];\n      if (this.bare) {\n        classes.push(`${this.styles.group.bare}`);\n      }\n      if (this.alignLeft) {\n        classes.push(`${this.styles.group.alignLeft}`);\n      }\n      return classes.join(' ');\n    },\n  },\n});\n\nexport default layoutRenderer;\n\nexport const entry: JsonFormsRendererRegistryEntry = {\n  renderer: layoutRenderer,\n  tester: rankWith(2, and(isLayout, uiTypeIs('Group'))),\n};\n</script>\n\n<!-- Default styles for the 'nested' feature -->\n<style>\n.group.group-bare {\n  border: 0;\n}\n.group-bare > .group-label,\n.group-bare > .group-item {\n  padding-right: 0;\n}\n.group-align-left > .group-label,\n.group-align-left > .group-item {\n  padding-left: 0;\n}\n</style>\n","<template>\n  <v-container\n    v-if=\"layout.visible\"\n    :class=\"`${styles.horizontalLayout.root}`\"\n    v-bind=\"vuetifyProps('v-container')\"\n  >\n    <v-row v-bind=\"vuetifyProps('v-row')\">\n      <v-col\n        v-for=\"(element, index) in layout.uischema.elements\"\n        :key=\"`${layout.path}-${index}`\"\n        :class=\"styles.horizontalLayout.item\"\n        :cols=\"cols[index]\"\n        v-bind=\"vuetifyProps(`v-col[${index}]`)\"\n      >\n        <dispatch-renderer\n          :schema=\"layout.schema\"\n          :uischema=\"element\"\n          :path=\"layout.path\"\n          :enabled=\"layout.enabled\"\n          :renderers=\"layout.renderers\"\n          :cells=\"layout.cells\"\n        />\n      </v-col>\n    </v-row>\n  </v-container>\n</template>\n\n<script lang=\"ts\">\nimport {\n  uiTypeIs,\n  JsonFormsRendererRegistryEntry,\n  Layout,\n  rankWith,\n} from '@jsonforms/core';\nimport { defineComponent } from 'vue';\nimport {\n  DispatchRenderer,\n  rendererProps,\n  useJsonFormsLayout,\n  RendererProps,\n} from '@jsonforms/vue';\nimport { useVuetifyLayout } from '../util';\nimport { VContainer, VRow, VCol } from 'vuetify/components';\n\nconst layoutRenderer = defineComponent({\n  name: 'horizontal-layout-renderer',\n  components: {\n    DispatchRenderer,\n    VContainer,\n    VRow,\n    VCol,\n  },\n  props: {\n    ...rendererProps<Layout>(),\n  },\n  setup(props: RendererProps<Layout>) {\n    return useVuetifyLayout(useJsonFormsLayout(props));\n  },\n  computed: {\n    collapse() {\n      const { xs, sm, md, lg, xl } = this.$vuetify.display;\n      if (this.appliedOptions.breakHorizontal === 'xs' && xs) {\n        return true;\n      }\n      if (this.appliedOptions.breakHorizontal === 'sm' && (xs || sm)) {\n        return true;\n      }\n      if (this.appliedOptions.breakHorizontal === 'md' && (xs || sm || md)) {\n        return true;\n      }\n      if (\n        this.appliedOptions.breakHorizontal === 'lg' &&\n        (xs || sm || md || lg)\n      ) {\n        return true;\n      }\n      if (\n        this.appliedOptions.breakHorizontal === 'xl' &&\n        (xs || sm || md || lg || xl)\n      ) {\n        return true;\n      }\n      return false;\n    },\n    /**\n     * Combines 'breakHorizontal' with user defined 'col' weights.\n     * 'breakHorizontal' takes precedence.\n     */\n    cols(): (number | false)[] {\n      return this.uischema.elements.map((_, index) => {\n        if (this.collapse) {\n          return 12;\n        }\n        const uiSchemaCols = this.vuetifyProps(`v-col[${index}]`)?.cols;\n        return uiSchemaCols !== undefined ? uiSchemaCols : false;\n      });\n    },\n  },\n});\n\nexport default layoutRenderer;\n\nexport const entry: JsonFormsRendererRegistryEntry = {\n  renderer: layoutRenderer,\n  tester: rankWith(2, uiTypeIs('HorizontalLayout')),\n};\n</script>\n","<template>\n  <v-container\n    v-if=\"layout.visible\"\n    :class=\"`${styles.horizontalLayout.root}`\"\n    v-bind=\"vuetifyProps('v-container')\"\n  >\n    <v-row v-bind=\"vuetifyProps('v-row')\">\n      <v-col\n        v-for=\"(element, index) in layout.uischema.elements\"\n        :key=\"`${layout.path}-${index}`\"\n        :class=\"styles.horizontalLayout.item\"\n        :cols=\"cols[index]\"\n        v-bind=\"vuetifyProps(`v-col[${index}]`)\"\n      >\n        <dispatch-renderer\n          :schema=\"layout.schema\"\n          :uischema=\"element\"\n          :path=\"layout.path\"\n          :enabled=\"layout.enabled\"\n          :renderers=\"layout.renderers\"\n          :cells=\"layout.cells\"\n        />\n      </v-col>\n    </v-row>\n  </v-container>\n</template>\n\n<script lang=\"ts\">\nimport {\n  uiTypeIs,\n  JsonFormsRendererRegistryEntry,\n  Layout,\n  rankWith,\n} from '@jsonforms/core';\nimport { defineComponent } from 'vue';\nimport {\n  DispatchRenderer,\n  rendererProps,\n  useJsonFormsLayout,\n  RendererProps,\n} from '@jsonforms/vue';\nimport { useVuetifyLayout } from '../util';\nimport { VContainer, VRow, VCol } from 'vuetify/components';\n\nconst layoutRenderer = defineComponent({\n  name: 'horizontal-layout-renderer',\n  components: {\n    DispatchRenderer,\n    VContainer,\n    VRow,\n    VCol,\n  },\n  props: {\n    ...rendererProps<Layout>(),\n  },\n  setup(props: RendererProps<Layout>) {\n    return useVuetifyLayout(useJsonFormsLayout(props));\n  },\n  computed: {\n    collapse() {\n      const { xs, sm, md, lg, xl } = this.$vuetify.display;\n      if (this.appliedOptions.breakHorizontal === 'xs' && xs) {\n        return true;\n      }\n      if (this.appliedOptions.breakHorizontal === 'sm' && (xs || sm)) {\n        return true;\n      }\n      if (this.appliedOptions.breakHorizontal === 'md' && (xs || sm || md)) {\n        return true;\n      }\n      if (\n        this.appliedOptions.breakHorizontal === 'lg' &&\n        (xs || sm || md || lg)\n      ) {\n        return true;\n      }\n      if (\n        this.appliedOptions.breakHorizontal === 'xl' &&\n        (xs || sm || md || lg || xl)\n      ) {\n        return true;\n      }\n      return false;\n    },\n    /**\n     * Combines 'breakHorizontal' with user defined 'col' weights.\n     * 'breakHorizontal' takes precedence.\n     */\n    cols(): (number | false)[] {\n      return this.uischema.elements.map((_, index) => {\n        if (this.collapse) {\n          return 12;\n        }\n        const uiSchemaCols = this.vuetifyProps(`v-col[${index}]`)?.cols;\n        return uiSchemaCols !== undefined ? uiSchemaCols : false;\n      });\n    },\n  },\n});\n\nexport default layoutRenderer;\n\nexport const entry: JsonFormsRendererRegistryEntry = {\n  renderer: layoutRenderer,\n  tester: rankWith(2, uiTypeIs('HorizontalLayout')),\n};\n</script>\n","<template>\n  <v-container\n    v-if=\"layout.visible\"\n    fill-height\n    :class=\"`${styles.verticalLayout.root}`\"\n    v-bind=\"vuetifyProps('v-container')\"\n  >\n    <v-row\n      v-for=\"(element, index) in layout.uischema.elements\"\n      :key=\"`${layout.path}-${index}`\"\n      v-bind=\"vuetifyProps(`v-row[${index}]`)\"\n    >\n      <v-col\n        cols=\"12\"\n        :class=\"styles.verticalLayout.item\"\n        v-bind=\"vuetifyProps('v-col')\"\n      >\n        <dispatch-renderer\n          :schema=\"layout.schema\"\n          :uischema=\"element\"\n          :path=\"layout.path\"\n          :enabled=\"layout.enabled\"\n          :renderers=\"layout.renderers\"\n          :cells=\"layout.cells\"\n        />\n      </v-col>\n    </v-row>\n  </v-container>\n</template>\n\n<script lang=\"ts\">\nimport {\n  uiTypeIs,\n  JsonFormsRendererRegistryEntry,\n  Layout,\n  rankWith,\n} from '@jsonforms/core';\nimport { defineComponent } from 'vue';\nimport {\n  DispatchRenderer,\n  rendererProps,\n  useJsonFormsLayout,\n  RendererProps,\n} from '@jsonforms/vue';\nimport { useVuetifyLayout } from '../util';\nimport { VContainer, VRow, VCol } from 'vuetify/components';\n\nconst layoutRenderer = defineComponent({\n  name: 'vertical-layout-renderer',\n  components: {\n    DispatchRenderer,\n    VContainer,\n    VRow,\n    VCol,\n  },\n  props: {\n    ...rendererProps<Layout>(),\n  },\n  setup(props: RendererProps<Layout>) {\n    return useVuetifyLayout(useJsonFormsLayout(props));\n  },\n});\n\nexport default layoutRenderer;\n\nexport const entry: JsonFormsRendererRegistryEntry = {\n  renderer: layoutRenderer,\n  tester: rankWith(2, uiTypeIs('VerticalLayout')),\n};\n</script>\n","<template>\n  <v-container\n    v-if=\"layout.visible\"\n    fill-height\n    :class=\"`${styles.verticalLayout.root}`\"\n    v-bind=\"vuetifyProps('v-container')\"\n  >\n    <v-row\n      v-for=\"(element, index) in layout.uischema.elements\"\n      :key=\"`${layout.path}-${index}`\"\n      v-bind=\"vuetifyProps(`v-row[${index}]`)\"\n    >\n      <v-col\n        cols=\"12\"\n        :class=\"styles.verticalLayout.item\"\n        v-bind=\"vuetifyProps('v-col')\"\n      >\n        <dispatch-renderer\n          :schema=\"layout.schema\"\n          :uischema=\"element\"\n          :path=\"layout.path\"\n          :enabled=\"layout.enabled\"\n          :renderers=\"layout.renderers\"\n          :cells=\"layout.cells\"\n        />\n      </v-col>\n    </v-row>\n  </v-container>\n</template>\n\n<script lang=\"ts\">\nimport {\n  uiTypeIs,\n  JsonFormsRendererRegistryEntry,\n  Layout,\n  rankWith,\n} from '@jsonforms/core';\nimport { defineComponent } from 'vue';\nimport {\n  DispatchRenderer,\n  rendererProps,\n  useJsonFormsLayout,\n  RendererProps,\n} from '@jsonforms/vue';\nimport { useVuetifyLayout } from '../util';\nimport { VContainer, VRow, VCol } from 'vuetify/components';\n\nconst layoutRenderer = defineComponent({\n  name: 'vertical-layout-renderer',\n  components: {\n    DispatchRenderer,\n    VContainer,\n    VRow,\n    VCol,\n  },\n  props: {\n    ...rendererProps<Layout>(),\n  },\n  setup(props: RendererProps<Layout>) {\n    return useVuetifyLayout(useJsonFormsLayout(props));\n  },\n});\n\nexport default layoutRenderer;\n\nexport const entry: JsonFormsRendererRegistryEntry = {\n  renderer: layoutRenderer,\n  tester: rankWith(2, uiTypeIs('VerticalLayout')),\n};\n</script>\n","import {\n  JsonFormsRendererRegistryEntry,\n  rankWith,\n  isLayout,\n} from '@jsonforms/core';\n\nimport { entry as arrayLayoutRendererEntry } from './ArrayLayoutRenderer.vue';\nimport { entry as categorizationRendererEntry } from './CategorizationRenderer.vue';\n// import { entry as categorizationStepperRendererEntry } from './CategorizationStepperRenderer.vue';\nimport { entry as groupRendererEntry } from './GroupRenderer.vue';\nimport { entry as horizontalLayoutRendererEntry } from './HorizontalLayoutRenderer.vue';\nimport { entry as verticalLayoutRendererEntry } from './VerticalLayoutRenderer.vue';\n\nexport {\n  arrayLayoutRendererEntry,\n  categorizationRendererEntry,\n  // categorizationStepperRendererEntry,\n  groupRendererEntry,\n  horizontalLayoutRendererEntry,\n  verticalLayoutRendererEntry,\n};\n\nimport { default as VerticalLayoutRenderer } from './VerticalLayoutRenderer.vue';\nexport { default as ArrayLayoutRenderer } from './ArrayLayoutRenderer.vue';\nexport { default as CategorizationRenderer } from './CategorizationRenderer.vue';\n// export { default as CategorizationStepperRenderer } from './CategorizationStepperRenderer.vue';\nexport { default as GroupRenderer } from './GroupRenderer.vue';\nexport { default as HorizontalLayoutRenderer } from './HorizontalLayoutRenderer.vue';\nexport { default as VerticalLayoutRenderer } from './VerticalLayoutRenderer.vue';\n\n// default layout renderer is the VerticalLayoutRenderer\nconst layoutRendererEntry: JsonFormsRendererRegistryEntry = {\n  renderer: VerticalLayoutRenderer,\n  tester: rankWith(1, isLayout),\n};\n\nexport const layoutRenderers = [\n  layoutRendererEntry,\n  arrayLayoutRendererEntry,\n  categorizationRendererEntry,\n  // categorizationStepperRendererEntry,\n  groupRendererEntry,\n  horizontalLayoutRendererEntry,\n  verticalLayoutRendererEntry,\n];\n","import {\n  JsonFormsRendererRegistryEntry,\n  rankWith,\n  schemaTypeIs,\n} from '@jsonforms/core';\nimport { ArrayLayoutRenderer } from '../layouts';\n\nexport const arrayListRendererEntry: JsonFormsRendererRegistryEntry = {\n  renderer: ArrayLayoutRenderer,\n  tester: rankWith(2, schemaTypeIs('array')),\n};\n\nexport const arrayRenderers = [arrayListRendererEntry];\n","<template>\n  <div v-if=\"isLayoutWithElements\">\n    <dispatch-renderer\n      :schema=\"otherProps\"\n      :path=\"path\"\n      :uischema=\"foundUISchema\"\n    />\n  </div>\n</template>\n\n<script lang=\"ts\">\nimport { Generate, JsonSchema, Layout, UISchemaElement } from '@jsonforms/core';\nimport omit from 'lodash/omit';\nimport { PropType, defineComponent } from 'vue';\nimport { DispatchRenderer } from '@jsonforms/vue';\n\ninterface CombinatorProps {\n  schema: JsonSchema;\n  combinatorKeyword: 'oneOf' | 'anyOf' | 'allOf';\n  path: string;\n}\n\nexport default defineComponent({\n  name: 'combinator-properties',\n  components: {\n    DispatchRenderer,\n  },\n  props: {\n    schema: {\n      type: Object as PropType<JsonSchema>,\n      required: true,\n    },\n    combinatorKeyword: {\n      type: String as PropType<'oneOf' | 'anyOf' | 'allOf'>,\n      required: true,\n    },\n    path: {\n      type: String,\n      required: true,\n    },\n  },\n  setup(props: CombinatorProps) {\n    const otherProps: JsonSchema = omit(\n      props.schema,\n      props.combinatorKeyword\n    ) as JsonSchema;\n    const foundUISchema: UISchemaElement = Generate.uiSchema(\n      otherProps,\n      'VerticalLayout'\n    );\n\n    const isLayout = (uischema: UISchemaElement): uischema is Layout =>\n      Object.prototype.hasOwnProperty.call(uischema, 'elements');\n\n    let isLayoutWithElements = false;\n    if (foundUISchema !== null && isLayout(foundUISchema)) {\n      isLayoutWithElements = foundUISchema.elements.length > 0;\n    }\n\n    return {\n      otherProps,\n      foundUISchema,\n      isLayoutWithElements,\n    };\n  },\n});\n</script>\n","<template>\n  <div v-if=\"isLayoutWithElements\">\n    <dispatch-renderer\n      :schema=\"otherProps\"\n      :path=\"path\"\n      :uischema=\"foundUISchema\"\n    />\n  </div>\n</template>\n\n<script lang=\"ts\">\nimport { Generate, JsonSchema, Layout, UISchemaElement } from '@jsonforms/core';\nimport omit from 'lodash/omit';\nimport { PropType, defineComponent } from 'vue';\nimport { DispatchRenderer } from '@jsonforms/vue';\n\ninterface CombinatorProps {\n  schema: JsonSchema;\n  combinatorKeyword: 'oneOf' | 'anyOf' | 'allOf';\n  path: string;\n}\n\nexport default defineComponent({\n  name: 'combinator-properties',\n  components: {\n    DispatchRenderer,\n  },\n  props: {\n    schema: {\n      type: Object as PropType<JsonSchema>,\n      required: true,\n    },\n    combinatorKeyword: {\n      type: String as PropType<'oneOf' | 'anyOf' | 'allOf'>,\n      required: true,\n    },\n    path: {\n      type: String,\n      required: true,\n    },\n  },\n  setup(props: CombinatorProps) {\n    const otherProps: JsonSchema = omit(\n      props.schema,\n      props.combinatorKeyword\n    ) as JsonSchema;\n    const foundUISchema: UISchemaElement = Generate.uiSchema(\n      otherProps,\n      'VerticalLayout'\n    );\n\n    const isLayout = (uischema: UISchemaElement): uischema is Layout =>\n      Object.prototype.hasOwnProperty.call(uischema, 'elements');\n\n    let isLayoutWithElements = false;\n    if (foundUISchema !== null && isLayout(foundUISchema)) {\n      isLayoutWithElements = foundUISchema.elements.length > 0;\n    }\n\n    return {\n      otherProps,\n      foundUISchema,\n      isLayoutWithElements,\n    };\n  },\n});\n</script>\n","export const DisabledIconFocus = {\n  updated(el: HTMLElement): void {\n    el.querySelectorAll('.v-input__icon button').forEach((x) =>\n      x.setAttribute('tabindex', '-1')\n    );\n  },\n};\n\nexport default DisabledIconFocus;\n","<template>\n  <v-card v-if=\"control.visible\" elevation=\"0\">\n    <v-card-title>\n      <v-toolbar flat>\n        <v-toolbar-title>{{ additionalPropertiesTitle }}</v-toolbar-title>\n        <v-spacer></v-spacer>\n\n        <v-hover v-slot=\"{ isHovering }\">\n          <v-text-field\n            v-disabled-icon-focus\n            :required=\"true\"\n            :class=\"styles.control.input\"\n            :error-messages=\"newPropertyErrors\"\n            v-model=\"newPropertyName\"\n            :clearable=\"isHovering\"\n            :placeholder=\"placeholder\"\n            :disabled=\"!control.enabled\"\n            v-bind=\"vuetifyProps('v-text-field')\"\n          >\n          </v-text-field>\n        </v-hover>\n        <v-tooltip bottom>\n          <template v-slot:activator=\"{ props }\">\n            <v-btn\n              fab\n              text\n              elevation=\"0\"\n              small\n              :aria-label=\"addToLabel\"\n              v-bind=\"props\"\n              :disabled=\"addPropertyDisabled\"\n              @click=\"addProperty\"\n            >\n              <v-icon>mdi-plus</v-icon>\n            </v-btn>\n          </template>\n          {{ addToLabel }}\n        </v-tooltip>\n      </v-toolbar>\n    </v-card-title>\n    <v-container>\n      <v-row\n        v-for=\"(element, index) in additionalPropertyItems\"\n        :key=\"`${index}`\"\n      >\n        <v-col>\n          <dispatch-renderer\n            v-if=\"element.schema && element.uischema\"\n            :schema=\"element.schema\"\n            :uischema=\"element.uischema\"\n            :path=\"element.path\"\n            :enabled=\"control.enabled\"\n            :renderers=\"control.renderers\"\n            :cells=\"control.cells\"\n        /></v-col>\n        <v-col v-if=\"control.enabled\" class=\"shrink\">\n          <v-tooltip bottom>\n            <template v-slot:activator=\"{ props }\">\n              <v-btn\n                v-bind=\"props\"\n                fab\n                text\n                elevation=\"0\"\n                small\n                :aria-label=\"deleteLabel\"\n                :disabled=\"removePropertyDisabled\"\n                @click=\"removeProperty(element.propertyName)\"\n              >\n                <v-icon class=\"notranslate\">mdi-delete</v-icon>\n              </v-btn>\n            </template>\n            {{ deleteLabel }}\n          </v-tooltip></v-col\n        >\n      </v-row>\n    </v-container>\n  </v-card>\n</template>\n\n<script lang=\"ts\">\nimport {\n  composePaths,\n  createControlElement,\n  createDefaultValue,\n  encode,\n  Generate,\n  getI18nKey,\n  GroupLayout,\n  JsonSchema,\n  JsonSchema7,\n  UISchemaElement,\n  validate,\n} from '@jsonforms/core';\nimport {\n  DispatchRenderer,\n  useJsonFormsControlWithDetail,\n} from '@jsonforms/vue';\nimport Ajv, { ValidateFunction } from 'ajv';\nimport get from 'lodash/get';\nimport isPlainObject from 'lodash/isPlainObject';\nimport startCase from 'lodash/startCase';\nimport { defineComponent, PropType, ref } from 'vue';\nimport {\n  VBtn,\n  VCard,\n  VCardTitle,\n  VCol,\n  VContainer,\n  VHover,\n  VIcon,\n  VRow,\n  VSpacer,\n  VTextField,\n  VToolbar,\n  VToolbarTitle,\n  VTooltip,\n} from 'vuetify/components';\nimport { DisabledIconFocus } from '../../controls/directives';\nimport { useStyles } from '../../styles';\nimport { useAjv, useControlAppliedOptions, useTranslator } from '../../util';\n\ntype Input = ReturnType<typeof useJsonFormsControlWithDetail>;\ninterface AdditionalPropertyType {\n  propertyName: string;\n  path: string;\n  schema: JsonSchema | undefined;\n  uischema: UISchemaElement | undefined;\n}\n\nconst reuseAjvForSchema = (ajv: Ajv, schema: JsonSchema): Ajv => {\n  if (\n    Object.prototype.hasOwnProperty.call(schema, 'id') ||\n    Object.prototype.hasOwnProperty.call(schema, '$id')\n  ) {\n    ajv.removeSchema(schema);\n  }\n  return ajv;\n};\n\nexport default defineComponent({\n  name: 'additional-properties',\n  components: {\n    DispatchRenderer,\n    VCard,\n    VTooltip,\n    VToolbar,\n    VIcon,\n    VBtn,\n    VCardTitle,\n    VSpacer,\n    VToolbarTitle,\n    VTextField,\n    VContainer,\n    VRow,\n    VCol,\n    VHover,\n  },\n  directives: {\n    DisabledIconFocus,\n  },\n  props: {\n    input: {\n      type: Object as PropType<Input>,\n      required: true,\n    },\n  },\n  setup(props) {\n    // eslint-disable-next-line vue/no-setup-props-destructure\n    const control = props.input.control;\n    const reservedPropertyNames = Object.keys(\n      control.value.schema.properties || {}\n    );\n\n    const additionalKeys = Object.keys(control.value.data).filter(\n      (k) => !reservedPropertyNames.includes(k)\n    );\n\n    const toAdditionalPropertyType = (\n      propName: string,\n      propValue: any\n    ): AdditionalPropertyType => {\n      let propSchema: JsonSchema | undefined = undefined;\n      let propUiSchema: UISchemaElement | undefined = undefined;\n\n      if (control.value.schema.patternProperties) {\n        const matchedPattern = Object.keys(\n          control.value.schema.patternProperties\n        ).find((pattern) => new RegExp(pattern).test(propName));\n        if (matchedPattern) {\n          propSchema = control.value.schema.patternProperties[matchedPattern];\n        }\n      }\n\n      if (\n        !propSchema &&\n        typeof control.value.schema.additionalProperties === 'object'\n      ) {\n        propSchema = control.value.schema.additionalProperties;\n      }\n\n      if (!propSchema && propValue !== undefined) {\n        // can't find the propertySchema so use the schema based on the value\n        // this covers case where the data in invalid according to the schema\n        propSchema = Generate.jsonSchema(\n          { prop: propValue },\n          {\n            additionalProperties: false,\n            required: () => false,\n          }\n        ).properties?.prop;\n      }\n\n      if (propSchema) {\n        if (propSchema.type === 'object' || propSchema.type === 'array') {\n          propUiSchema = Generate.uiSchema(propSchema, 'Group');\n          (propUiSchema as GroupLayout).label =\n            propSchema.title ?? startCase(propName);\n        } else {\n          propUiSchema = createControlElement(\n            control.value.path + '/' + encode(propName)\n          );\n        }\n      }\n\n      return {\n        propertyName: propName,\n        path: composePaths(control.value.path, propName),\n        schema: propSchema,\n        uischema: propUiSchema,\n      };\n    };\n\n    const appliedOptions = useControlAppliedOptions(props.input);\n    const additionalPropertyItems = ref<AdditionalPropertyType[]>([]);\n\n    additionalKeys.forEach((propName) => {\n      const additionalProperty = toAdditionalPropertyType(\n        propName,\n        control.value.data[propName]\n      );\n      additionalPropertyItems.value.push(additionalProperty);\n    });\n\n    const styles = useStyles(control.value.uischema);\n    const newPropertyName = ref<string | null>('');\n    const ajv = useAjv();\n\n    let propertyNameSchema: JsonSchema7 | undefined = undefined;\n    let propertyNameValidator: ValidateFunction<unknown> | undefined =\n      undefined;\n\n    // TODO: create issue against jsonforms to add propertyNames into the JsonSchema interface\n    // propertyNames exist in draft-6 but not defined in the JsonSchema\n    if (typeof (control.value.schema as any).propertyNames === 'object') {\n      propertyNameSchema = (control.value.schema as any).propertyNames;\n    }\n\n    if (\n      typeof control.value.schema.additionalProperties !== 'object' &&\n      typeof control.value.schema.patternProperties === 'object'\n    ) {\n      const matchPatternPropertiesKeys: JsonSchema7 = {\n        type: 'string',\n        pattern: Object.keys(control.value.schema.patternProperties).join('|'),\n      };\n\n      propertyNameSchema = propertyNameSchema\n        ? { allOf: [propertyNameSchema, matchPatternPropertiesKeys] }\n        : matchPatternPropertiesKeys;\n    }\n\n    if (propertyNameSchema) {\n      propertyNameValidator = reuseAjvForSchema(\n        ajv,\n        propertyNameSchema\n      ).compile(propertyNameSchema);\n    }\n\n    const vuetifyProps = (path: string) => {\n      const props = get(appliedOptions.value?.vuetify, path);\n\n      return props && isPlainObject(props) ? props : {};\n    };\n\n    const t = useTranslator();\n    return {\n      t,\n      vuetifyProps,\n      ajv,\n      propertyNameValidator,\n      control,\n      styles,\n      appliedOptions,\n      additionalPropertyItems,\n      toAdditionalPropertyType,\n      newPropertyName,\n    };\n  },\n  computed: {\n    addPropertyDisabled(): boolean {\n      return (\n        // add is disabled because the overall control is disabled\n        !this.control.enabled ||\n        // add is disabled because of contraints\n        (this.appliedOptions.restrict && this.maxPropertiesReached) ||\n        // add is disabled because there are errors for the new property name or it is not specified\n        this.newPropertyErrors.length > 0 ||\n        !this.newPropertyName\n      );\n    },\n    maxPropertiesReached(): boolean {\n      return (\n        this.control.schema.maxProperties !== undefined && // we have maxProperties constraint\n        this.control.data && // we have data to check\n        // the current number of properties in the object is greater or equals to the maxProperties\n        Object.keys(this.control.data).length >=\n          this.control.schema.maxProperties\n      );\n    },\n    removePropertyDisabled(): boolean {\n      return (\n        // add is disabled because the overall control is disabled\n        !this.control.enabled ||\n        // add is disabled because of contraints\n        (this.appliedOptions.restrict && this.minPropertiesReached)\n      );\n    },\n    minPropertiesReached(): boolean {\n      return (\n        this.control.schema.minProperties !== undefined && // we have minProperties constraint\n        this.control.data && // we have data to check\n        // the current number of properties in the object is less or equals to the minProperties\n        Object.keys(this.control.data).length <=\n          this.control.schema.minProperties\n      );\n    },\n    newPropertyErrors(): string[] {\n      if (this.newPropertyName) {\n        const messages = this.propertyNameValidator\n          ? (validate(this.propertyNameValidator, this.newPropertyName)\n              .map((error) => error.message)\n              .filter((message) => message) as string[])\n          : [];\n        if (\n          this.reservedPropertyNames.includes(this.newPropertyName) ||\n          this.additionalPropertyItems.find(\n            (ap) => ap.propertyName === this.newPropertyName\n          ) !== undefined\n        ) {\n          // already defined\n          messages.push(\n            `Property '${this.newPropertyName}' is already defined`\n          );\n        }\n\n        // JSONForms has special means for \"[].\" chars - those are part of the path composition so for not we can't support those without special handling\n        if (this.newPropertyName.includes('[')) {\n          messages.push('Property name contains invalid char: [');\n        }\n        if (this.newPropertyName.includes(']')) {\n          messages.push('Property name contains invalid char: ]');\n        }\n        if (this.newPropertyName.includes('.')) {\n          messages.push('Property name contains invalid char: .');\n        }\n\n        return messages;\n      }\n\n      return [];\n    },\n    placeholder(): string {\n      return this.t(this.i18nKey('newProperty.placeholder'), 'New Property');\n    },\n    reservedPropertyNames(): string[] {\n      return Object.keys(this.control.schema.properties || {});\n    },\n    additionalPropertiesTitle(): string | undefined {\n      const additionalProperties = this.control.schema.additionalProperties;\n\n      const label =\n        typeof additionalProperties === 'object' &&\n        Object.prototype.hasOwnProperty.call(additionalProperties, 'title')\n          ? additionalProperties.title ?? 'Additional Properties'\n          : 'Additional Properties';\n\n      return this.t(this.i18nKey('title'), label);\n    },\n    addToLabel(): string {\n      return this.t(\n        this.i18nKey('btn.add'),\n        'Add to ${additionalProperties.title}',\n        {\n          additionalProperties: {\n            title: this.additionalPropertiesTitle,\n          },\n        }\n      );\n    },\n    deleteLabel(): string {\n      return this.t(\n        this.i18nKey('btn.delete'),\n        'Delete from ${additionalProperties.title}',\n        {\n          additionalProperties: {\n            title: this.additionalPropertiesTitle,\n          },\n        }\n      );\n    },\n  },\n  watch: {\n    'control.data': {\n      handler(newData) {\n        // revert back any undefined values back to the default value when the key is part of the addtional properties since we want to preserved the key\n        // for example when we have a string additonal property then when we clear the text component the componet by default sets the value to undefined to remove the property from the object - for additional properties we do not want that behaviour\n        if (typeof this.control.data === 'object') {\n          const keys = Object.keys(newData);\n          let hasChanges = false;\n          this.additionalPropertyItems.forEach((ap) => {\n            if (\n              ap.schema &&\n              (!keys.includes(ap.propertyName) ||\n                newData[ap.propertyName] === undefined ||\n                (newData[ap.propertyName] === null &&\n                  ap.schema.type !== 'null')) // createDefaultValue will return null only when the ap.schema.type is 'null'\n            ) {\n              const newValue = createDefaultValue(\n                  ap.schema,\n                  this.control.rootSchema\n              );\n              hasChanges = newData[ap.propertyName] !== newValue;\n              newData[ap.propertyName] = newValue;\n            }\n          });\n          if (hasChanges) {\n            this.input.handleChange(this.control.path, newData);\n          }\n        }\n      },\n      deep: true,\n    },\n  },\n  methods: {\n    composePaths,\n    i18nKey(key: string): string {\n      return getI18nKey(\n        this.control.schema,\n        this.control.uischema,\n        this.control.path,\n        `additionalProperties.${key}`\n      );\n    },\n    addProperty() {\n      if (this.newPropertyName) {\n        const additionalProperty = this.toAdditionalPropertyType(\n          this.newPropertyName,\n          undefined\n        );\n        if (additionalProperty) {\n          this.additionalPropertyItems = [\n            ...this.additionalPropertyItems,\n            additionalProperty,\n          ];\n        }\n\n        if (\n          typeof this.control.data === 'object' &&\n          additionalProperty.schema\n        ) {\n          this.control.data[this.newPropertyName] = createDefaultValue(\n            additionalProperty.schema, this.control.rootSchema\n          );\n          // we need always to preserve the key even when the value is \"empty\"\n          this.input.handleChange(this.control.path, this.control.data);\n        }\n      }\n      this.newPropertyName = '';\n    },\n    removeProperty(propName: string): void {\n      this.additionalPropertyItems = this.additionalPropertyItems.filter(\n        (d) => d.propertyName !== propName\n      );\n      if (typeof this.control.data === 'object') {\n        delete this.control.data[propName];\n        this.input.handleChange(this.control.path, this.control.data);\n      }\n    },\n  },\n});\n</script>\n","<template>\n  <v-card v-if=\"control.visible\" elevation=\"0\">\n    <v-card-title>\n      <v-toolbar flat>\n        <v-toolbar-title>{{ additionalPropertiesTitle }}</v-toolbar-title>\n        <v-spacer></v-spacer>\n\n        <v-hover v-slot=\"{ isHovering }\">\n          <v-text-field\n            v-disabled-icon-focus\n            :required=\"true\"\n            :class=\"styles.control.input\"\n            :error-messages=\"newPropertyErrors\"\n            v-model=\"newPropertyName\"\n            :clearable=\"isHovering\"\n            :placeholder=\"placeholder\"\n            :disabled=\"!control.enabled\"\n            v-bind=\"vuetifyProps('v-text-field')\"\n          >\n          </v-text-field>\n        </v-hover>\n        <v-tooltip bottom>\n          <template v-slot:activator=\"{ props }\">\n            <v-btn\n              fab\n              text\n              elevation=\"0\"\n              small\n              :aria-label=\"addToLabel\"\n              v-bind=\"props\"\n              :disabled=\"addPropertyDisabled\"\n              @click=\"addProperty\"\n            >\n              <v-icon>mdi-plus</v-icon>\n            </v-btn>\n          </template>\n          {{ addToLabel }}\n        </v-tooltip>\n      </v-toolbar>\n    </v-card-title>\n    <v-container>\n      <v-row\n        v-for=\"(element, index) in additionalPropertyItems\"\n        :key=\"`${index}`\"\n      >\n        <v-col>\n          <dispatch-renderer\n            v-if=\"element.schema && element.uischema\"\n            :schema=\"element.schema\"\n            :uischema=\"element.uischema\"\n            :path=\"element.path\"\n            :enabled=\"control.enabled\"\n            :renderers=\"control.renderers\"\n            :cells=\"control.cells\"\n        /></v-col>\n        <v-col v-if=\"control.enabled\" class=\"shrink\">\n          <v-tooltip bottom>\n            <template v-slot:activator=\"{ props }\">\n              <v-btn\n                v-bind=\"props\"\n                fab\n                text\n                elevation=\"0\"\n                small\n                :aria-label=\"deleteLabel\"\n                :disabled=\"removePropertyDisabled\"\n                @click=\"removeProperty(element.propertyName)\"\n              >\n                <v-icon class=\"notranslate\">mdi-delete</v-icon>\n              </v-btn>\n            </template>\n            {{ deleteLabel }}\n          </v-tooltip></v-col\n        >\n      </v-row>\n    </v-container>\n  </v-card>\n</template>\n\n<script lang=\"ts\">\nimport {\n  composePaths,\n  createControlElement,\n  createDefaultValue,\n  encode,\n  Generate,\n  getI18nKey,\n  GroupLayout,\n  JsonSchema,\n  JsonSchema7,\n  UISchemaElement,\n  validate,\n} from '@jsonforms/core';\nimport {\n  DispatchRenderer,\n  useJsonFormsControlWithDetail,\n} from '@jsonforms/vue';\nimport Ajv, { ValidateFunction } from 'ajv';\nimport get from 'lodash/get';\nimport isPlainObject from 'lodash/isPlainObject';\nimport startCase from 'lodash/startCase';\nimport { defineComponent, PropType, ref } from 'vue';\nimport {\n  VBtn,\n  VCard,\n  VCardTitle,\n  VCol,\n  VContainer,\n  VHover,\n  VIcon,\n  VRow,\n  VSpacer,\n  VTextField,\n  VToolbar,\n  VToolbarTitle,\n  VTooltip,\n} from 'vuetify/components';\nimport { DisabledIconFocus } from '../../controls/directives';\nimport { useStyles } from '../../styles';\nimport { useAjv, useControlAppliedOptions, useTranslator } from '../../util';\n\ntype Input = ReturnType<typeof useJsonFormsControlWithDetail>;\ninterface AdditionalPropertyType {\n  propertyName: string;\n  path: string;\n  schema: JsonSchema | undefined;\n  uischema: UISchemaElement | undefined;\n}\n\nconst reuseAjvForSchema = (ajv: Ajv, schema: JsonSchema): Ajv => {\n  if (\n    Object.prototype.hasOwnProperty.call(schema, 'id') ||\n    Object.prototype.hasOwnProperty.call(schema, '$id')\n  ) {\n    ajv.removeSchema(schema);\n  }\n  return ajv;\n};\n\nexport default defineComponent({\n  name: 'additional-properties',\n  components: {\n    DispatchRenderer,\n    VCard,\n    VTooltip,\n    VToolbar,\n    VIcon,\n    VBtn,\n    VCardTitle,\n    VSpacer,\n    VToolbarTitle,\n    VTextField,\n    VContainer,\n    VRow,\n    VCol,\n    VHover,\n  },\n  directives: {\n    DisabledIconFocus,\n  },\n  props: {\n    input: {\n      type: Object as PropType<Input>,\n      required: true,\n    },\n  },\n  setup(props) {\n    // eslint-disable-next-line vue/no-setup-props-destructure\n    const control = props.input.control;\n    const reservedPropertyNames = Object.keys(\n      control.value.schema.properties || {}\n    );\n\n    const additionalKeys = Object.keys(control.value.data).filter(\n      (k) => !reservedPropertyNames.includes(k)\n    );\n\n    const toAdditionalPropertyType = (\n      propName: string,\n      propValue: any\n    ): AdditionalPropertyType => {\n      let propSchema: JsonSchema | undefined = undefined;\n      let propUiSchema: UISchemaElement | undefined = undefined;\n\n      if (control.value.schema.patternProperties) {\n        const matchedPattern = Object.keys(\n          control.value.schema.patternProperties\n        ).find((pattern) => new RegExp(pattern).test(propName));\n        if (matchedPattern) {\n          propSchema = control.value.schema.patternProperties[matchedPattern];\n        }\n      }\n\n      if (\n        !propSchema &&\n        typeof control.value.schema.additionalProperties === 'object'\n      ) {\n        propSchema = control.value.schema.additionalProperties;\n      }\n\n      if (!propSchema && propValue !== undefined) {\n        // can't find the propertySchema so use the schema based on the value\n        // this covers case where the data in invalid according to the schema\n        propSchema = Generate.jsonSchema(\n          { prop: propValue },\n          {\n            additionalProperties: false,\n            required: () => false,\n          }\n        ).properties?.prop;\n      }\n\n      if (propSchema) {\n        if (propSchema.type === 'object' || propSchema.type === 'array') {\n          propUiSchema = Generate.uiSchema(propSchema, 'Group');\n          (propUiSchema as GroupLayout).label =\n            propSchema.title ?? startCase(propName);\n        } else {\n          propUiSchema = createControlElement(\n            control.value.path + '/' + encode(propName)\n          );\n        }\n      }\n\n      return {\n        propertyName: propName,\n        path: composePaths(control.value.path, propName),\n        schema: propSchema,\n        uischema: propUiSchema,\n      };\n    };\n\n    const appliedOptions = useControlAppliedOptions(props.input);\n    const additionalPropertyItems = ref<AdditionalPropertyType[]>([]);\n\n    additionalKeys.forEach((propName) => {\n      const additionalProperty = toAdditionalPropertyType(\n        propName,\n        control.value.data[propName]\n      );\n      additionalPropertyItems.value.push(additionalProperty);\n    });\n\n    const styles = useStyles(control.value.uischema);\n    const newPropertyName = ref<string | null>('');\n    const ajv = useAjv();\n\n    let propertyNameSchema: JsonSchema7 | undefined = undefined;\n    let propertyNameValidator: ValidateFunction<unknown> | undefined =\n      undefined;\n\n    // TODO: create issue against jsonforms to add propertyNames into the JsonSchema interface\n    // propertyNames exist in draft-6 but not defined in the JsonSchema\n    if (typeof (control.value.schema as any).propertyNames === 'object') {\n      propertyNameSchema = (control.value.schema as any).propertyNames;\n    }\n\n    if (\n      typeof control.value.schema.additionalProperties !== 'object' &&\n      typeof control.value.schema.patternProperties === 'object'\n    ) {\n      const matchPatternPropertiesKeys: JsonSchema7 = {\n        type: 'string',\n        pattern: Object.keys(control.value.schema.patternProperties).join('|'),\n      };\n\n      propertyNameSchema = propertyNameSchema\n        ? { allOf: [propertyNameSchema, matchPatternPropertiesKeys] }\n        : matchPatternPropertiesKeys;\n    }\n\n    if (propertyNameSchema) {\n      propertyNameValidator = reuseAjvForSchema(\n        ajv,\n        propertyNameSchema\n      ).compile(propertyNameSchema);\n    }\n\n    const vuetifyProps = (path: string) => {\n      const props = get(appliedOptions.value?.vuetify, path);\n\n      return props && isPlainObject(props) ? props : {};\n    };\n\n    const t = useTranslator();\n    return {\n      t,\n      vuetifyProps,\n      ajv,\n      propertyNameValidator,\n      control,\n      styles,\n      appliedOptions,\n      additionalPropertyItems,\n      toAdditionalPropertyType,\n      newPropertyName,\n    };\n  },\n  computed: {\n    addPropertyDisabled(): boolean {\n      return (\n        // add is disabled because the overall control is disabled\n        !this.control.enabled ||\n        // add is disabled because of contraints\n        (this.appliedOptions.restrict && this.maxPropertiesReached) ||\n        // add is disabled because there are errors for the new property name or it is not specified\n        this.newPropertyErrors.length > 0 ||\n        !this.newPropertyName\n      );\n    },\n    maxPropertiesReached(): boolean {\n      return (\n        this.control.schema.maxProperties !== undefined && // we have maxProperties constraint\n        this.control.data && // we have data to check\n        // the current number of properties in the object is greater or equals to the maxProperties\n        Object.keys(this.control.data).length >=\n          this.control.schema.maxProperties\n      );\n    },\n    removePropertyDisabled(): boolean {\n      return (\n        // add is disabled because the overall control is disabled\n        !this.control.enabled ||\n        // add is disabled because of contraints\n        (this.appliedOptions.restrict && this.minPropertiesReached)\n      );\n    },\n    minPropertiesReached(): boolean {\n      return (\n        this.control.schema.minProperties !== undefined && // we have minProperties constraint\n        this.control.data && // we have data to check\n        // the current number of properties in the object is less or equals to the minProperties\n        Object.keys(this.control.data).length <=\n          this.control.schema.minProperties\n      );\n    },\n    newPropertyErrors(): string[] {\n      if (this.newPropertyName) {\n        const messages = this.propertyNameValidator\n          ? (validate(this.propertyNameValidator, this.newPropertyName)\n              .map((error) => error.message)\n              .filter((message) => message) as string[])\n          : [];\n        if (\n          this.reservedPropertyNames.includes(this.newPropertyName) ||\n          this.additionalPropertyItems.find(\n            (ap) => ap.propertyName === this.newPropertyName\n          ) !== undefined\n        ) {\n          // already defined\n          messages.push(\n            `Property '${this.newPropertyName}' is already defined`\n          );\n        }\n\n        // JSONForms has special means for \"[].\" chars - those are part of the path composition so for not we can't support those without special handling\n        if (this.newPropertyName.includes('[')) {\n          messages.push('Property name contains invalid char: [');\n        }\n        if (this.newPropertyName.includes(']')) {\n          messages.push('Property name contains invalid char: ]');\n        }\n        if (this.newPropertyName.includes('.')) {\n          messages.push('Property name contains invalid char: .');\n        }\n\n        return messages;\n      }\n\n      return [];\n    },\n    placeholder(): string {\n      return this.t(this.i18nKey('newProperty.placeholder'), 'New Property');\n    },\n    reservedPropertyNames(): string[] {\n      return Object.keys(this.control.schema.properties || {});\n    },\n    additionalPropertiesTitle(): string | undefined {\n      const additionalProperties = this.control.schema.additionalProperties;\n\n      const label =\n        typeof additionalProperties === 'object' &&\n        Object.prototype.hasOwnProperty.call(additionalProperties, 'title')\n          ? additionalProperties.title ?? 'Additional Properties'\n          : 'Additional Properties';\n\n      return this.t(this.i18nKey('title'), label);\n    },\n    addToLabel(): string {\n      return this.t(\n        this.i18nKey('btn.add'),\n        'Add to ${additionalProperties.title}',\n        {\n          additionalProperties: {\n            title: this.additionalPropertiesTitle,\n          },\n        }\n      );\n    },\n    deleteLabel(): string {\n      return this.t(\n        this.i18nKey('btn.delete'),\n        'Delete from ${additionalProperties.title}',\n        {\n          additionalProperties: {\n            title: this.additionalPropertiesTitle,\n          },\n        }\n      );\n    },\n  },\n  watch: {\n    'control.data': {\n      handler(newData) {\n        // revert back any undefined values back to the default value when the key is part of the addtional properties since we want to preserved the key\n        // for example when we have a string additonal property then when we clear the text component the componet by default sets the value to undefined to remove the property from the object - for additional properties we do not want that behaviour\n        if (typeof this.control.data === 'object') {\n          const keys = Object.keys(newData);\n          let hasChanges = false;\n          this.additionalPropertyItems.forEach((ap) => {\n            if (\n              ap.schema &&\n              (!keys.includes(ap.propertyName) ||\n                newData[ap.propertyName] === undefined ||\n                (newData[ap.propertyName] === null &&\n                  ap.schema.type !== 'null')) // createDefaultValue will return null only when the ap.schema.type is 'null'\n            ) {\n              const newValue = createDefaultValue(\n                  ap.schema,\n                  this.control.rootSchema\n              );\n              hasChanges = newData[ap.propertyName] !== newValue;\n              newData[ap.propertyName] = newValue;\n            }\n          });\n          if (hasChanges) {\n            this.input.handleChange(this.control.path, newData);\n          }\n        }\n      },\n      deep: true,\n    },\n  },\n  methods: {\n    composePaths,\n    i18nKey(key: string): string {\n      return getI18nKey(\n        this.control.schema,\n        this.control.uischema,\n        this.control.path,\n        `additionalProperties.${key}`\n      );\n    },\n    addProperty() {\n      if (this.newPropertyName) {\n        const additionalProperty = this.toAdditionalPropertyType(\n          this.newPropertyName,\n          undefined\n        );\n        if (additionalProperty) {\n          this.additionalPropertyItems = [\n            ...this.additionalPropertyItems,\n            additionalProperty,\n          ];\n        }\n\n        if (\n          typeof this.control.data === 'object' &&\n          additionalProperty.schema\n        ) {\n          this.control.data[this.newPropertyName] = createDefaultValue(\n            additionalProperty.schema, this.control.rootSchema\n          );\n          // we need always to preserve the key even when the value is \"empty\"\n          this.input.handleChange(this.control.path, this.control.data);\n        }\n      }\n      this.newPropertyName = '';\n    },\n    removeProperty(propName: string): void {\n      this.additionalPropertyItems = this.additionalPropertyItems.filter(\n        (d) => d.propertyName !== propName\n      );\n      if (typeof this.control.data === 'object') {\n        delete this.control.data[propName];\n        this.input.handleChange(this.control.path, this.control.data);\n      }\n    },\n  },\n});\n</script>\n","<template>\n  <div v-if=\"control.visible\">\n    <template v-if=\"delegateUISchema\">\n      <dispatch-renderer\n        :schema=\"control.schema\"\n        :uischema=\"delegateUISchema\"\n        :path=\"control.path\"\n        :enabled=\"control.enabled\"\n        :renderers=\"control.renderers\"\n        :cells=\"control.cells\"\n      />\n    </template>\n    <template v-else-if=\"allOfRenderInfos\">\n      <div>\n        <combinator-properties\n          :schema=\"control.schema\"\n          combinatorKeyword=\"allOf\"\n          :path=\"path\"\n        />\n        <dispatch-renderer\n          v-for=\"(allOfRenderInfo, allOfIndex) in allOfRenderInfos\"\n          :key=\"`${control.path}-${allOfIndex}`\"\n          :schema=\"allOfRenderInfo.schema\"\n          :uischema=\"allOfRenderInfo.uischema\"\n          :path=\"control.path\"\n          :enabled=\"control.enabled\"\n          :renderers=\"control.renderers\"\n          :cells=\"control.cells\"\n        />\n      </div>\n    </template>\n  </div>\n</template>\n\n<script lang=\"ts\">\nimport {\n  CombinatorSubSchemaRenderInfo,\n  ControlElement,\n  createCombinatorRenderInfos,\n  findMatchingUISchema,\n  isAllOfControl,\n  JsonFormsRendererRegistryEntry,\n  rankWith,\n  UISchemaElement,\n} from '@jsonforms/core';\nimport {\n  DispatchRenderer,\n  rendererProps,\n  RendererProps,\n  useJsonFormsAllOfControl,\n} from '@jsonforms/vue';\nimport { defineComponent } from 'vue';\nimport { useVuetifyControl } from '../util';\nimport { CombinatorProperties } from './components';\n\nconst controlRenderer = defineComponent({\n  name: 'all-of-renderer',\n  components: {\n    DispatchRenderer,\n    CombinatorProperties,\n  },\n  props: {\n    ...rendererProps<ControlElement>(),\n  },\n  setup(props: RendererProps<ControlElement>) {\n    return useVuetifyControl(useJsonFormsAllOfControl(props));\n  },\n  computed: {\n    delegateUISchema(): UISchemaElement {\n      return findMatchingUISchema(this.control.uischemas)(\n        this.control.schema,\n        this.control.uischema.scope,\n        this.control.path\n      );\n    },\n    allOfRenderInfos(): CombinatorSubSchemaRenderInfo[] {\n      const result = createCombinatorRenderInfos(\n        // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n        this.control.schema.allOf!,\n        this.control.rootSchema,\n        'allOf',\n        this.control.uischema,\n        this.control.path,\n        this.control.uischemas\n      );\n\n      return result.filter((info) => info.uischema);\n    },\n  },\n});\n\nexport default controlRenderer;\n\nexport const entry: JsonFormsRendererRegistryEntry = {\n  renderer: controlRenderer,\n  tester: rankWith(3, isAllOfControl),\n};\n</script>\n","<template>\n  <div v-if=\"control.visible\">\n    <template v-if=\"delegateUISchema\">\n      <dispatch-renderer\n        :schema=\"control.schema\"\n        :uischema=\"delegateUISchema\"\n        :path=\"control.path\"\n        :enabled=\"control.enabled\"\n        :renderers=\"control.renderers\"\n        :cells=\"control.cells\"\n      />\n    </template>\n    <template v-else-if=\"allOfRenderInfos\">\n      <div>\n        <combinator-properties\n          :schema=\"control.schema\"\n          combinatorKeyword=\"allOf\"\n          :path=\"path\"\n        />\n        <dispatch-renderer\n          v-for=\"(allOfRenderInfo, allOfIndex) in allOfRenderInfos\"\n          :key=\"`${control.path}-${allOfIndex}`\"\n          :schema=\"allOfRenderInfo.schema\"\n          :uischema=\"allOfRenderInfo.uischema\"\n          :path=\"control.path\"\n          :enabled=\"control.enabled\"\n          :renderers=\"control.renderers\"\n          :cells=\"control.cells\"\n        />\n      </div>\n    </template>\n  </div>\n</template>\n\n<script lang=\"ts\">\nimport {\n  CombinatorSubSchemaRenderInfo,\n  ControlElement,\n  createCombinatorRenderInfos,\n  findMatchingUISchema,\n  isAllOfControl,\n  JsonFormsRendererRegistryEntry,\n  rankWith,\n  UISchemaElement,\n} from '@jsonforms/core';\nimport {\n  DispatchRenderer,\n  rendererProps,\n  RendererProps,\n  useJsonFormsAllOfControl,\n} from '@jsonforms/vue';\nimport { defineComponent } from 'vue';\nimport { useVuetifyControl } from '../util';\nimport { CombinatorProperties } from './components';\n\nconst controlRenderer = defineComponent({\n  name: 'all-of-renderer',\n  components: {\n    DispatchRenderer,\n    CombinatorProperties,\n  },\n  props: {\n    ...rendererProps<ControlElement>(),\n  },\n  setup(props: RendererProps<ControlElement>) {\n    return useVuetifyControl(useJsonFormsAllOfControl(props));\n  },\n  computed: {\n    delegateUISchema(): UISchemaElement {\n      return findMatchingUISchema(this.control.uischemas)(\n        this.control.schema,\n        this.control.uischema.scope,\n        this.control.path\n      );\n    },\n    allOfRenderInfos(): CombinatorSubSchemaRenderInfo[] {\n      const result = createCombinatorRenderInfos(\n        // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n        this.control.schema.allOf!,\n        this.control.rootSchema,\n        'allOf',\n        this.control.uischema,\n        this.control.path,\n        this.control.uischemas\n      );\n\n      return result.filter((info) => info.uischema);\n    },\n  },\n});\n\nexport default controlRenderer;\n\nexport const entry: JsonFormsRendererRegistryEntry = {\n  renderer: controlRenderer,\n  tester: rankWith(3, isAllOfControl),\n};\n</script>\n","<template>\n  <div v-if=\"control.visible\">\n    <combinator-properties\n      :schema=\"control.schema\"\n      combinatorKeyword=\"anyOf\"\n      :path=\"path\"\n    />\n\n    <v-tabs v-model=\"selectedIndex\">\n      <v-tab\n        v-for=\"(anyOfRenderInfo, anyOfIndex) in anyOfRenderInfos\"\n        :key=\"`${control.path}-${anyOfIndex}`\"\n      >\n        {{ anyOfRenderInfo.label }}\n      </v-tab>\n    </v-tabs>\n\n    <v-window v-model=\"selectedIndex\">\n      <v-window-item\n        v-for=\"(anyOfRenderInfo, anyOfIndex) in anyOfRenderInfos\"\n        :key=\"`${control.path}-${anyOfIndex}`\"\n      >\n        <dispatch-renderer\n          v-if=\"selectedIndex === anyOfIndex\"\n          :schema=\"anyOfRenderInfo.schema\"\n          :uischema=\"anyOfRenderInfo.uischema\"\n          :path=\"control.path\"\n          :renderers=\"control.renderers\"\n          :cells=\"control.cells\"\n          :enabled=\"control.enabled\"\n        />\n      </v-window-item>\n    </v-window>\n  </div>\n</template>\n\n<script lang=\"ts\">\nimport {\n  CombinatorSubSchemaRenderInfo,\n  ControlElement,\n  createCombinatorRenderInfos,\n  isAnyOfControl,\n  JsonFormsRendererRegistryEntry,\n  rankWith,\n} from '@jsonforms/core';\nimport {\n  DispatchRenderer,\n  rendererProps,\n  RendererProps,\n  useJsonFormsAnyOfControl,\n} from '@jsonforms/vue';\nimport { VTabs, VTab, VWindow, VWindowItem } from 'vuetify/components';\nimport { defineComponent, ref } from 'vue';\nimport { useVuetifyControl } from '../util';\nimport { CombinatorProperties } from './components';\n\nconst controlRenderer = defineComponent({\n  name: 'any-of-renderer',\n  components: {\n    DispatchRenderer,\n    CombinatorProperties,\n    VTabs,\n    VTab,\n    VWindow,\n    VWindowItem,\n  },\n  props: {\n    ...rendererProps<ControlElement>(),\n  },\n  setup(props: RendererProps<ControlElement>) {\n    const input = useJsonFormsAnyOfControl(props);\n    const control = input.control.value;\n    const selectedIndex = ref(control.indexOfFittingSchema || 0);\n\n    return {\n      ...useVuetifyControl(input),\n      selectedIndex,\n    };\n  },\n  computed: {\n    anyOfRenderInfos(): CombinatorSubSchemaRenderInfo[] {\n      const result = createCombinatorRenderInfos(\n        // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n        this.control.schema.anyOf!,\n        this.control.rootSchema,\n        'anyOf',\n        this.control.uischema,\n        this.control.path,\n        this.control.uischemas\n      );\n      return result.filter((info) => info.uischema);\n    },\n  },\n});\n\nexport default controlRenderer;\n\nexport const entry: JsonFormsRendererRegistryEntry = {\n  renderer: controlRenderer,\n  tester: rankWith(3, isAnyOfControl),\n};\n</script>\n","<template>\n  <div v-if=\"control.visible\">\n    <combinator-properties\n      :schema=\"control.schema\"\n      combinatorKeyword=\"anyOf\"\n      :path=\"path\"\n    />\n\n    <v-tabs v-model=\"selectedIndex\">\n      <v-tab\n        v-for=\"(anyOfRenderInfo, anyOfIndex) in anyOfRenderInfos\"\n        :key=\"`${control.path}-${anyOfIndex}`\"\n      >\n        {{ anyOfRenderInfo.label }}\n      </v-tab>\n    </v-tabs>\n\n    <v-window v-model=\"selectedIndex\">\n      <v-window-item\n        v-for=\"(anyOfRenderInfo, anyOfIndex) in anyOfRenderInfos\"\n        :key=\"`${control.path}-${anyOfIndex}`\"\n      >\n        <dispatch-renderer\n          v-if=\"selectedIndex === anyOfIndex\"\n          :schema=\"anyOfRenderInfo.schema\"\n          :uischema=\"anyOfRenderInfo.uischema\"\n          :path=\"control.path\"\n          :renderers=\"control.renderers\"\n          :cells=\"control.cells\"\n          :enabled=\"control.enabled\"\n        />\n      </v-window-item>\n    </v-window>\n  </div>\n</template>\n\n<script lang=\"ts\">\nimport {\n  CombinatorSubSchemaRenderInfo,\n  ControlElement,\n  createCombinatorRenderInfos,\n  isAnyOfControl,\n  JsonFormsRendererRegistryEntry,\n  rankWith,\n} from '@jsonforms/core';\nimport {\n  DispatchRenderer,\n  rendererProps,\n  RendererProps,\n  useJsonFormsAnyOfControl,\n} from '@jsonforms/vue';\nimport { VTabs, VTab, VWindow, VWindowItem } from 'vuetify/components';\nimport { defineComponent, ref } from 'vue';\nimport { useVuetifyControl } from '../util';\nimport { CombinatorProperties } from './components';\n\nconst controlRenderer = defineComponent({\n  name: 'any-of-renderer',\n  components: {\n    DispatchRenderer,\n    CombinatorProperties,\n    VTabs,\n    VTab,\n    VWindow,\n    VWindowItem,\n  },\n  props: {\n    ...rendererProps<ControlElement>(),\n  },\n  setup(props: RendererProps<ControlElement>) {\n    const input = useJsonFormsAnyOfControl(props);\n    const control = input.control.value;\n    const selectedIndex = ref(control.indexOfFittingSchema || 0);\n\n    return {\n      ...useVuetifyControl(input),\n      selectedIndex,\n    };\n  },\n  computed: {\n    anyOfRenderInfos(): CombinatorSubSchemaRenderInfo[] {\n      const result = createCombinatorRenderInfos(\n        // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n        this.control.schema.anyOf!,\n        this.control.rootSchema,\n        'anyOf',\n        this.control.uischema,\n        this.control.path,\n        this.control.uischemas\n      );\n      return result.filter((info) => info.uischema);\n    },\n  },\n});\n\nexport default controlRenderer;\n\nexport const entry: JsonFormsRendererRegistryEntry = {\n  renderer: controlRenderer,\n  tester: rankWith(3, isAnyOfControl),\n};\n</script>\n","<template>\n  <v-card v-if=\"control.visible\" :class=\"styles.arrayList.root\" elevation=\"0\">\n    <v-card-title>\n      <v-toolbar flat :class=\"styles.arrayList.toolbar\">\n        <v-toolbar-title :class=\"styles.arrayList.label\">{{\n          computedLabel\n        }}</v-toolbar-title>\n        <validation-icon\n          v-if=\"control.childErrors.length > 0\"\n          :errors=\"control.childErrors\"\n        />\n        <v-spacer></v-spacer>\n\n        <v-tooltip bottom>\n          <template v-slot:activator=\"{ props }\">\n            <v-btn\n              fab\n              text\n              elevation=\"0\"\n              small\n              :aria-label=\"`Add to ${control.label}`\"\n              v-bind=\"props\"\n              :class=\"styles.arrayList.addButton\"\n              :disabled=\"\n                !control.enabled ||\n                (appliedOptions.restrict &&\n                  arraySchema !== undefined &&\n                  arraySchema.maxItems !== undefined &&\n                  dataLength >= arraySchema.maxItems)\n              \"\n              @click=\"addButtonClick\"\n            >\n              <v-icon>mdi-plus</v-icon>\n            </v-btn>\n          </template>\n          {{ `Add to ${control.label}` }}\n        </v-tooltip>\n      </v-toolbar>\n    </v-card-title>\n    <v-card-text>\n      <v-container justify-space-around align-content-center>\n        <v-row justify=\"center\">\n          <v-table class=\"array-container flex\">\n            <thead v-if=\"control.schema.type === 'object'\">\n              <tr>\n                <th\n                  v-for=\"(prop, index) in getValidColumnProps(control.schema)\"\n                  :key=\"`${control.path}-header-${index}`\"\n                  scope=\"col\"\n                >\n                  {{ title(prop) }}\n                </th>\n                <th\n                  v-if=\"control.enabled\"\n                  :class=\"\n                    appliedOptions.showSortButtons\n                      ? 'fixed-cell'\n                      : 'fixed-cell-small'\n                  \"\n                  scope=\"col\"\n                ></th>\n              </tr>\n            </thead>\n            <tbody>\n              <tr\n                v-for=\"(element, index) in control.data\"\n                :key=\"`${control.path}-${index}`\"\n                :class=\"styles.arrayList.item\"\n              >\n                <td\n                  v-for=\"propName in getValidColumnProps(control.schema)\"\n                  :key=\"\n                    composePaths(\n                      composePaths(control.path, `${index}`),\n                      propName\n                    )\n                  \"\n                >\n                  <dispatch-renderer\n                    :schema=\"control.schema\"\n                    :uischema=\"resolveUiSchema(propName)\"\n                    :path=\"composePaths(control.path, `${index}`)\"\n                    :enabled=\"control.enabled\"\n                    :renderers=\"control.renderers\"\n                    :cells=\"control.cells\"\n                  />\n                </td>\n                <td\n                  v-if=\"control.enabled\"\n                  :class=\"\n                    appliedOptions.showSortButtons\n                      ? 'fixed-cell'\n                      : 'fixed-cell-small'\n                  \"\n                >\n                  <v-tooltip bottom>\n                    <template v-slot:activator=\"{ props }\">\n                      <v-btn\n                        v-bind=\"props\"\n                        v-if=\"appliedOptions.showSortButtons\"\n                        fab\n                        text\n                        elevation=\"0\"\n                        small\n                        aria-label=\"Move up\"\n                        :disabled=\"index <= 0 || !control.enabled\"\n                        :class=\"styles.arrayList.itemMoveUp\"\n                        @click.native=\"moveUpClick($event, index)\"\n                      >\n                        <v-icon class=\"notranslate\">mdi-arrow-up</v-icon>\n                      </v-btn>\n                    </template>\n                    Move Up\n                  </v-tooltip>\n                  <v-tooltip bottom>\n                    <template v-slot:activator=\"{ props }\">\n                      <v-btn\n                        v-bind=\"props\"\n                        v-if=\"appliedOptions.showSortButtons\"\n                        fab\n                        text\n                        elevation=\"0\"\n                        small\n                        aria-label=\"Move down\"\n                        :disabled=\"index >= dataLength - 1 || !control.enabled\"\n                        :class=\"styles.arrayList.itemMoveDown\"\n                        @click.native=\"moveDownClick($event, index)\"\n                      >\n                        <v-icon class=\"notranslate\">mdi-arrow-down</v-icon>\n                      </v-btn>\n                    </template>\n                    Move Down\n                  </v-tooltip>\n                  <v-tooltip bottom>\n                    <template v-slot:activator=\"{ props }\">\n                      <v-btn\n                        v-bind=\"props\"\n                        fab\n                        text\n                        elevation=\"0\"\n                        small\n                        aria-label=\"Delete\"\n                        :class=\"styles.arrayList.itemDelete\"\n                        :disabled=\"\n                          !control.enabled ||\n                          (appliedOptions.restrict &&\n                            arraySchema !== undefined &&\n                            arraySchema.minItems !== undefined &&\n                            dataLength <= arraySchema.minItems)\n                        \"\n                        @click.native=\"removeItemsClick($event, [index])\"\n                      >\n                        <v-icon class=\"notranslate\">mdi-delete</v-icon>\n                      </v-btn>\n                    </template>\n                    Delete\n                  </v-tooltip>\n                </td>\n              </tr>\n            </tbody>\n          </v-table>\n        </v-row>\n      </v-container>\n      <v-container v-if=\"dataLength === 0\" :class=\"styles.arrayList.noData\">\n        No data\n      </v-container>\n    </v-card-text>\n  </v-card>\n</template>\n\n<script lang=\"ts\">\nimport {\n  isObjectArrayControl,\n  isPrimitiveArrayControl,\n  JsonFormsRendererRegistryEntry,\n  or,\n  rankWith,\n  composePaths,\n  createDefaultValue,\n  ControlElement,\n  JsonSchema,\n  Resolve,\n} from '@jsonforms/core';\nimport startCase from 'lodash/startCase';\nimport { defineComponent } from 'vue';\nimport {\n  DispatchCell,\n  DispatchRenderer,\n  rendererProps,\n  useJsonFormsArrayControl,\n  RendererProps,\n} from '@jsonforms/vue';\nimport { useVuetifyArrayControl } from '../util';\nimport {\n  VCard,\n  VCardTitle,\n  VCardText,\n  VRow,\n  VCol,\n  VContainer,\n  VToolbar,\n  VToolbarTitle,\n  VTooltip,\n  VIcon,\n  VBtn,\n  VAvatar,\n  VSpacer,\n  VTable,\n} from 'vuetify/components';\nimport { ValidationIcon, ValidationBadge } from '../controls/components/index';\n\nconst controlRenderer = defineComponent({\n  name: 'array-control-renderer',\n  components: {\n    DispatchCell,\n    DispatchRenderer,\n    VCard,\n    VCardTitle,\n    VCardText,\n    VAvatar,\n    VRow,\n    VCol,\n    VToolbar,\n    VToolbarTitle,\n    VTooltip,\n    VIcon,\n    VBtn,\n    VSpacer,\n    VContainer,\n    ValidationIcon,\n    ValidationBadge,\n    VTable,\n  },\n  props: {\n    ...rendererProps<ControlElement>(),\n  },\n  setup(props: RendererProps<ControlElement>) {\n    return useVuetifyArrayControl(useJsonFormsArrayControl(props));\n  },\n  computed: {\n    arraySchema(): JsonSchema | undefined {\n      return Resolve.schema(\n        this.control.rootSchema,\n        this.control.uischema.scope,\n        this.control.rootSchema\n      );\n    },\n    dataLength(): number {\n      return this.control.data ? this.control.data.length : 0;\n    },\n  },\n  methods: {\n    composePaths,\n    createDefaultValue,\n    addButtonClick() {\n      this.addItem(\n        this.control.path,\n        createDefaultValue(this.control.schema, this.control.rootSchema)\n      )();\n    },\n    moveUpClick(event: Event, toMove: number): void {\n      event.stopPropagation();\n      this.moveUp?.(this.control.path, toMove)();\n    },\n    moveDownClick(event: Event, toMove: number): void {\n      event.stopPropagation();\n      this.moveDown?.(this.control.path, toMove)();\n    },\n    removeItemsClick(event: Event, toDelete: number[]): void {\n      event.stopPropagation();\n      this.removeItems?.(this.control.path, toDelete)();\n    },\n    getValidColumnProps(scopedSchema: JsonSchema) {\n      if (\n        scopedSchema.type === 'object' &&\n        typeof scopedSchema.properties === 'object'\n      ) {\n        return Object.keys(scopedSchema.properties).filter(\n          (prop) => scopedSchema.properties![prop].type !== 'array'\n        );\n      }\n      // primitives\n      return [''];\n    },\n    title(prop: string) {\n      return this.control.schema.properties?.[prop]?.title ?? startCase(prop);\n    },\n    resolveUiSchema(propName: string) {\n      return this.control.schema.properties\n        ? this.controlWithoutLabel(`#/properties/${propName}`)\n        : this.controlWithoutLabel('#');\n    },\n    controlWithoutLabel(scope: string): ControlElement {\n      return { type: 'Control', scope: scope, label: false };\n    },\n  },\n});\n\nexport default controlRenderer;\n\nexport const entry: JsonFormsRendererRegistryEntry = {\n  renderer: controlRenderer,\n  tester: rankWith(3, or(isObjectArrayControl, isPrimitiveArrayControl)),\n};\n</script>\n\n<style scoped>\n.fixed-cell {\n  width: 150px;\n  padding-left: 0 !important;\n  padding-right: 0 !important;\n  text-align: center;\n}\n\n.fixed-cell-small {\n  width: 50px;\n  padding-left: 0 !important;\n  padding-right: 0 !important;\n  text-align: center;\n}\n\n.array-container {\n  width: 100%;\n}\n.array-container tbody tr td {\n  border-bottom: none !important;\n}\n\n.array-container tbody tr td .container {\n  padding: 0;\n  margin: 0;\n}\n</style>\n","<template>\n  <v-card v-if=\"control.visible\" :class=\"styles.arrayList.root\" elevation=\"0\">\n    <v-card-title>\n      <v-toolbar flat :class=\"styles.arrayList.toolbar\">\n        <v-toolbar-title :class=\"styles.arrayList.label\">{{\n          computedLabel\n        }}</v-toolbar-title>\n        <validation-icon\n          v-if=\"control.childErrors.length > 0\"\n          :errors=\"control.childErrors\"\n        />\n        <v-spacer></v-spacer>\n\n        <v-tooltip bottom>\n          <template v-slot:activator=\"{ props }\">\n            <v-btn\n              fab\n              text\n              elevation=\"0\"\n              small\n              :aria-label=\"`Add to ${control.label}`\"\n              v-bind=\"props\"\n              :class=\"styles.arrayList.addButton\"\n              :disabled=\"\n                !control.enabled ||\n                (appliedOptions.restrict &&\n                  arraySchema !== undefined &&\n                  arraySchema.maxItems !== undefined &&\n                  dataLength >= arraySchema.maxItems)\n              \"\n              @click=\"addButtonClick\"\n            >\n              <v-icon>mdi-plus</v-icon>\n            </v-btn>\n          </template>\n          {{ `Add to ${control.label}` }}\n        </v-tooltip>\n      </v-toolbar>\n    </v-card-title>\n    <v-card-text>\n      <v-container justify-space-around align-content-center>\n        <v-row justify=\"center\">\n          <v-table class=\"array-container flex\">\n            <thead v-if=\"control.schema.type === 'object'\">\n              <tr>\n                <th\n                  v-for=\"(prop, index) in getValidColumnProps(control.schema)\"\n                  :key=\"`${control.path}-header-${index}`\"\n                  scope=\"col\"\n                >\n                  {{ title(prop) }}\n                </th>\n                <th\n                  v-if=\"control.enabled\"\n                  :class=\"\n                    appliedOptions.showSortButtons\n                      ? 'fixed-cell'\n                      : 'fixed-cell-small'\n                  \"\n                  scope=\"col\"\n                ></th>\n              </tr>\n            </thead>\n            <tbody>\n              <tr\n                v-for=\"(element, index) in control.data\"\n                :key=\"`${control.path}-${index}`\"\n                :class=\"styles.arrayList.item\"\n              >\n                <td\n                  v-for=\"propName in getValidColumnProps(control.schema)\"\n                  :key=\"\n                    composePaths(\n                      composePaths(control.path, `${index}`),\n                      propName\n                    )\n                  \"\n                >\n                  <dispatch-renderer\n                    :schema=\"control.schema\"\n                    :uischema=\"resolveUiSchema(propName)\"\n                    :path=\"composePaths(control.path, `${index}`)\"\n                    :enabled=\"control.enabled\"\n                    :renderers=\"control.renderers\"\n                    :cells=\"control.cells\"\n                  />\n                </td>\n                <td\n                  v-if=\"control.enabled\"\n                  :class=\"\n                    appliedOptions.showSortButtons\n                      ? 'fixed-cell'\n                      : 'fixed-cell-small'\n                  \"\n                >\n                  <v-tooltip bottom>\n                    <template v-slot:activator=\"{ props }\">\n                      <v-btn\n                        v-bind=\"props\"\n                        v-if=\"appliedOptions.showSortButtons\"\n                        fab\n                        text\n                        elevation=\"0\"\n                        small\n                        aria-label=\"Move up\"\n                        :disabled=\"index <= 0 || !control.enabled\"\n                        :class=\"styles.arrayList.itemMoveUp\"\n                        @click.native=\"moveUpClick($event, index)\"\n                      >\n                        <v-icon class=\"notranslate\">mdi-arrow-up</v-icon>\n                      </v-btn>\n                    </template>\n                    Move Up\n                  </v-tooltip>\n                  <v-tooltip bottom>\n                    <template v-slot:activator=\"{ props }\">\n                      <v-btn\n                        v-bind=\"props\"\n                        v-if=\"appliedOptions.showSortButtons\"\n                        fab\n                        text\n                        elevation=\"0\"\n                        small\n                        aria-label=\"Move down\"\n                        :disabled=\"index >= dataLength - 1 || !control.enabled\"\n                        :class=\"styles.arrayList.itemMoveDown\"\n                        @click.native=\"moveDownClick($event, index)\"\n                      >\n                        <v-icon class=\"notranslate\">mdi-arrow-down</v-icon>\n                      </v-btn>\n                    </template>\n                    Move Down\n                  </v-tooltip>\n                  <v-tooltip bottom>\n                    <template v-slot:activator=\"{ props }\">\n                      <v-btn\n                        v-bind=\"props\"\n                        fab\n                        text\n                        elevation=\"0\"\n                        small\n                        aria-label=\"Delete\"\n                        :class=\"styles.arrayList.itemDelete\"\n                        :disabled=\"\n                          !control.enabled ||\n                          (appliedOptions.restrict &&\n                            arraySchema !== undefined &&\n                            arraySchema.minItems !== undefined &&\n                            dataLength <= arraySchema.minItems)\n                        \"\n                        @click.native=\"removeItemsClick($event, [index])\"\n                      >\n                        <v-icon class=\"notranslate\">mdi-delete</v-icon>\n                      </v-btn>\n                    </template>\n                    Delete\n                  </v-tooltip>\n                </td>\n              </tr>\n            </tbody>\n          </v-table>\n        </v-row>\n      </v-container>\n      <v-container v-if=\"dataLength === 0\" :class=\"styles.arrayList.noData\">\n        No data\n      </v-container>\n    </v-card-text>\n  </v-card>\n</template>\n\n<script lang=\"ts\">\nimport {\n  isObjectArrayControl,\n  isPrimitiveArrayControl,\n  JsonFormsRendererRegistryEntry,\n  or,\n  rankWith,\n  composePaths,\n  createDefaultValue,\n  ControlElement,\n  JsonSchema,\n  Resolve,\n} from '@jsonforms/core';\nimport startCase from 'lodash/startCase';\nimport { defineComponent } from 'vue';\nimport {\n  DispatchCell,\n  DispatchRenderer,\n  rendererProps,\n  useJsonFormsArrayControl,\n  RendererProps,\n} from '@jsonforms/vue';\nimport { useVuetifyArrayControl } from '../util';\nimport {\n  VCard,\n  VCardTitle,\n  VCardText,\n  VRow,\n  VCol,\n  VContainer,\n  VToolbar,\n  VToolbarTitle,\n  VTooltip,\n  VIcon,\n  VBtn,\n  VAvatar,\n  VSpacer,\n  VTable,\n} from 'vuetify/components';\nimport { ValidationIcon, ValidationBadge } from '../controls/components/index';\n\nconst controlRenderer = defineComponent({\n  name: 'array-control-renderer',\n  components: {\n    DispatchCell,\n    DispatchRenderer,\n    VCard,\n    VCardTitle,\n    VCardText,\n    VAvatar,\n    VRow,\n    VCol,\n    VToolbar,\n    VToolbarTitle,\n    VTooltip,\n    VIcon,\n    VBtn,\n    VSpacer,\n    VContainer,\n    ValidationIcon,\n    ValidationBadge,\n    VTable,\n  },\n  props: {\n    ...rendererProps<ControlElement>(),\n  },\n  setup(props: RendererProps<ControlElement>) {\n    return useVuetifyArrayControl(useJsonFormsArrayControl(props));\n  },\n  computed: {\n    arraySchema(): JsonSchema | undefined {\n      return Resolve.schema(\n        this.control.rootSchema,\n        this.control.uischema.scope,\n        this.control.rootSchema\n      );\n    },\n    dataLength(): number {\n      return this.control.data ? this.control.data.length : 0;\n    },\n  },\n  methods: {\n    composePaths,\n    createDefaultValue,\n    addButtonClick() {\n      this.addItem(\n        this.control.path,\n        createDefaultValue(this.control.schema, this.control.rootSchema)\n      )();\n    },\n    moveUpClick(event: Event, toMove: number): void {\n      event.stopPropagation();\n      this.moveUp?.(this.control.path, toMove)();\n    },\n    moveDownClick(event: Event, toMove: number): void {\n      event.stopPropagation();\n      this.moveDown?.(this.control.path, toMove)();\n    },\n    removeItemsClick(event: Event, toDelete: number[]): void {\n      event.stopPropagation();\n      this.removeItems?.(this.control.path, toDelete)();\n    },\n    getValidColumnProps(scopedSchema: JsonSchema) {\n      if (\n        scopedSchema.type === 'object' &&\n        typeof scopedSchema.properties === 'object'\n      ) {\n        return Object.keys(scopedSchema.properties).filter(\n          (prop) => scopedSchema.properties![prop].type !== 'array'\n        );\n      }\n      // primitives\n      return [''];\n    },\n    title(prop: string) {\n      return this.control.schema.properties?.[prop]?.title ?? startCase(prop);\n    },\n    resolveUiSchema(propName: string) {\n      return this.control.schema.properties\n        ? this.controlWithoutLabel(`#/properties/${propName}`)\n        : this.controlWithoutLabel('#');\n    },\n    controlWithoutLabel(scope: string): ControlElement {\n      return { type: 'Control', scope: scope, label: false };\n    },\n  },\n});\n\nexport default controlRenderer;\n\nexport const entry: JsonFormsRendererRegistryEntry = {\n  renderer: controlRenderer,\n  tester: rankWith(3, or(isObjectArrayControl, isPrimitiveArrayControl)),\n};\n</script>\n\n<style scoped>\n.fixed-cell {\n  width: 150px;\n  padding-left: 0 !important;\n  padding-right: 0 !important;\n  text-align: center;\n}\n\n.fixed-cell-small {\n  width: 50px;\n  padding-left: 0 !important;\n  padding-right: 0 !important;\n  text-align: center;\n}\n\n.array-container {\n  width: 100%;\n}\n.array-container tbody tr td {\n  border-bottom: none !important;\n}\n\n.array-container tbody tr td .container {\n  padding: 0;\n  margin: 0;\n}\n</style>\n","<template>\n  <v-container fluid v-if=\"control.visible\">\n    <v-row>\n      <v-col v-for=\"(o, index) in control.options\" :key=\"o.value\">\n        <v-checkbox\n          :label=\"o.label\"\n          :model-value=\"dataHasEnum(o.value)\"\n          :id=\"control.id + `-input-${index}`\"\n          :path=\"composePaths(control.path, `${index}`)\"\n          :error-messages=\"control.errors\"\n          :disabled=\"!control.enabled\"\n          :indeterminate=\"control.data === undefined\"\n          v-bind=\"vuetifyProps(`v-checkbox[${o.value}]`)\"\n          @change=\"(value) => toggle(o.value)\"\n        ></v-checkbox>\n      </v-col>\n    </v-row>\n  </v-container>\n</template>\n\n<script lang=\"ts\">\nimport {\n  and,\n  ControlElement,\n  hasType,\n  JsonFormsRendererRegistryEntry,\n  JsonSchema,\n  rankWith,\n  schemaMatches,\n  schemaSubPathMatches,\n  uiTypeIs,\n  composePaths,\n} from '@jsonforms/core';\nimport { VCheckbox, VContainer, VRow, VCol } from 'vuetify/components';\nimport {\n  rendererProps,\n  RendererProps,\n  useJsonFormsMultiEnumControl,\n} from '@jsonforms/vue';\nimport { defineComponent } from 'vue';\nimport { useVuetifyBasicControl } from '../util';\n\nconst controlRenderer = defineComponent({\n  name: 'enum-array-renderer',\n  components: {\n    VCheckbox,\n    VContainer,\n    VRow,\n    VCol,\n  },\n  props: {\n    ...rendererProps<ControlElement>(),\n  },\n  setup(props: RendererProps<ControlElement>) {\n    return useVuetifyBasicControl(useJsonFormsMultiEnumControl(props));\n  },\n  methods: {\n    dataHasEnum(value: any) {\n      return !!this.control.data?.includes(value);\n    },\n    composePaths,\n    toggle(value: any) {\n      if (!this.dataHasEnum(value)) {\n        this.addItem(this.control.path, value);\n      } else {\n        // mistyped in core\n        this.removeItem?.(this.control.path, value);\n      }\n    },\n  },\n});\n\nexport default controlRenderer;\n\nconst hasOneOfItems = (schema: JsonSchema): boolean =>\n  schema.oneOf !== undefined &&\n  schema.oneOf.length > 0 &&\n  (schema.oneOf as JsonSchema[]).every((entry: JsonSchema) => {\n    return entry.const !== undefined;\n  });\n\nconst hasEnumItems = (schema: JsonSchema): boolean =>\n  schema.type === 'string' && schema.enum !== undefined;\n\nexport const entry: JsonFormsRendererRegistryEntry = {\n  renderer: controlRenderer,\n  tester: rankWith(\n    5,\n    and(\n      uiTypeIs('Control'),\n      and(\n        schemaMatches(\n          (schema) =>\n            hasType(schema, 'array') &&\n            !Array.isArray(schema.items) &&\n            schema.uniqueItems === true\n        ),\n        schemaSubPathMatches('items', (schema) => {\n          return hasOneOfItems(schema) || hasEnumItems(schema);\n        })\n      )\n    )\n  ),\n};\n</script>\n","<template>\n  <v-container fluid v-if=\"control.visible\">\n    <v-row>\n      <v-col v-for=\"(o, index) in control.options\" :key=\"o.value\">\n        <v-checkbox\n          :label=\"o.label\"\n          :model-value=\"dataHasEnum(o.value)\"\n          :id=\"control.id + `-input-${index}`\"\n          :path=\"composePaths(control.path, `${index}`)\"\n          :error-messages=\"control.errors\"\n          :disabled=\"!control.enabled\"\n          :indeterminate=\"control.data === undefined\"\n          v-bind=\"vuetifyProps(`v-checkbox[${o.value}]`)\"\n          @change=\"(value) => toggle(o.value)\"\n        ></v-checkbox>\n      </v-col>\n    </v-row>\n  </v-container>\n</template>\n\n<script lang=\"ts\">\nimport {\n  and,\n  ControlElement,\n  hasType,\n  JsonFormsRendererRegistryEntry,\n  JsonSchema,\n  rankWith,\n  schemaMatches,\n  schemaSubPathMatches,\n  uiTypeIs,\n  composePaths,\n} from '@jsonforms/core';\nimport { VCheckbox, VContainer, VRow, VCol } from 'vuetify/components';\nimport {\n  rendererProps,\n  RendererProps,\n  useJsonFormsMultiEnumControl,\n} from '@jsonforms/vue';\nimport { defineComponent } from 'vue';\nimport { useVuetifyBasicControl } from '../util';\n\nconst controlRenderer = defineComponent({\n  name: 'enum-array-renderer',\n  components: {\n    VCheckbox,\n    VContainer,\n    VRow,\n    VCol,\n  },\n  props: {\n    ...rendererProps<ControlElement>(),\n  },\n  setup(props: RendererProps<ControlElement>) {\n    return useVuetifyBasicControl(useJsonFormsMultiEnumControl(props));\n  },\n  methods: {\n    dataHasEnum(value: any) {\n      return !!this.control.data?.includes(value);\n    },\n    composePaths,\n    toggle(value: any) {\n      if (!this.dataHasEnum(value)) {\n        this.addItem(this.control.path, value);\n      } else {\n        // mistyped in core\n        this.removeItem?.(this.control.path, value);\n      }\n    },\n  },\n});\n\nexport default controlRenderer;\n\nconst hasOneOfItems = (schema: JsonSchema): boolean =>\n  schema.oneOf !== undefined &&\n  schema.oneOf.length > 0 &&\n  (schema.oneOf as JsonSchema[]).every((entry: JsonSchema) => {\n    return entry.const !== undefined;\n  });\n\nconst hasEnumItems = (schema: JsonSchema): boolean =>\n  schema.type === 'string' && schema.enum !== undefined;\n\nexport const entry: JsonFormsRendererRegistryEntry = {\n  renderer: controlRenderer,\n  tester: rankWith(\n    5,\n    and(\n      uiTypeIs('Control'),\n      and(\n        schemaMatches(\n          (schema) =>\n            hasType(schema, 'array') &&\n            !Array.isArray(schema.items) &&\n            schema.uniqueItems === true\n        ),\n        schemaSubPathMatches('items', (schema) => {\n          return hasOneOfItems(schema) || hasEnumItems(schema);\n        })\n      )\n    )\n  ),\n};\n</script>\n","<template>\n  <div v-if=\"control.visible\">\n    <dispatch-renderer\n      :visible=\"control.visible\"\n      :enabled=\"control.enabled\"\n      :schema=\"control.schema\"\n      :uischema=\"detailUiSchema\"\n      :path=\"control.path\"\n      :renderers=\"control.renderers\"\n      :cells=\"control.cells\"\n    />\n    <additional-properties\n      v-if=\"hasAdditionalProperties && showAdditionalProperties\"\n      :input=\"input\"\n    ></additional-properties>\n  </div>\n</template>\n\n<script lang=\"ts\">\nimport {\n  ControlElement,\n  findUISchema,\n  Generate,\n  GroupLayout,\n  isObjectControl,\n  JsonFormsRendererRegistryEntry,\n  rankWith,\n  UISchemaElement,\n} from '@jsonforms/core';\nimport {\n  DispatchRenderer,\n  rendererProps,\n  RendererProps,\n  useJsonFormsControlWithDetail,\n} from '@jsonforms/vue';\nimport cloneDeep from 'lodash/cloneDeep';\nimport isEmpty from 'lodash/isEmpty';\nimport isObject from 'lodash/isObject';\nimport { defineComponent } from 'vue';\nimport { useNested, useVuetifyControl } from '../util';\nimport { AdditionalProperties } from './components';\n\nconst controlRenderer = defineComponent({\n  name: 'object-renderer',\n  components: {\n    DispatchRenderer,\n    AdditionalProperties,\n  },\n  props: {\n    ...rendererProps<ControlElement>(),\n  },\n  setup(props: RendererProps<ControlElement>) {\n    const control = useVuetifyControl(useJsonFormsControlWithDetail(props));\n    const nested = useNested('object');\n    return {\n      ...control,\n      input: control,\n      nested,\n    };\n  },\n  computed: {\n    hasAdditionalProperties(): boolean {\n      return (\n        !isEmpty(this.control.schema.patternProperties) ||\n        isObject(this.control.schema.additionalProperties)\n        // do not support - additionalProperties === true - since then the type should be any and we won't know what kind of renderer we should use for new properties\n      );\n    },\n    showAdditionalProperties(): boolean {\n      const showAdditionalProperties =\n        this.control.uischema.options?.showAdditionalProperties;\n      return (\n        showAdditionalProperties === undefined ||\n        showAdditionalProperties === true\n      );\n    },\n    detailUiSchema(): UISchemaElement {\n      const uiSchemaGenerator = () => {\n        const uiSchema = Generate.uiSchema(this.control.schema, 'Group');\n        if (isEmpty(this.control.path)) {\n          uiSchema.type = 'VerticalLayout';\n        } else {\n          (uiSchema as GroupLayout).label = this.control.label;\n        }\n        return uiSchema;\n      };\n\n      let result = findUISchema(\n        this.control.uischemas,\n        this.control.schema,\n        this.control.uischema.scope,\n        this.control.path,\n        uiSchemaGenerator,\n        this.control.uischema,\n        this.control.rootSchema\n      );\n\n      if (this.nested.level > 0) {\n        result = cloneDeep(result);\n        result.options = {\n          ...result.options,\n          bare: true,\n          alignLeft:\n            this.nested.level >= 4 || this.nested.parentElement === 'array',\n        };\n      }\n\n      return result;\n    },\n  },\n});\n\nexport default controlRenderer;\n\nexport const entry: JsonFormsRendererRegistryEntry = {\n  renderer: controlRenderer,\n  tester: rankWith(2, isObjectControl),\n};\n</script>\n","<template>\n  <div v-if=\"control.visible\">\n    <dispatch-renderer\n      :visible=\"control.visible\"\n      :enabled=\"control.enabled\"\n      :schema=\"control.schema\"\n      :uischema=\"detailUiSchema\"\n      :path=\"control.path\"\n      :renderers=\"control.renderers\"\n      :cells=\"control.cells\"\n    />\n    <additional-properties\n      v-if=\"hasAdditionalProperties && showAdditionalProperties\"\n      :input=\"input\"\n    ></additional-properties>\n  </div>\n</template>\n\n<script lang=\"ts\">\nimport {\n  ControlElement,\n  findUISchema,\n  Generate,\n  GroupLayout,\n  isObjectControl,\n  JsonFormsRendererRegistryEntry,\n  rankWith,\n  UISchemaElement,\n} from '@jsonforms/core';\nimport {\n  DispatchRenderer,\n  rendererProps,\n  RendererProps,\n  useJsonFormsControlWithDetail,\n} from '@jsonforms/vue';\nimport cloneDeep from 'lodash/cloneDeep';\nimport isEmpty from 'lodash/isEmpty';\nimport isObject from 'lodash/isObject';\nimport { defineComponent } from 'vue';\nimport { useNested, useVuetifyControl } from '../util';\nimport { AdditionalProperties } from './components';\n\nconst controlRenderer = defineComponent({\n  name: 'object-renderer',\n  components: {\n    DispatchRenderer,\n    AdditionalProperties,\n  },\n  props: {\n    ...rendererProps<ControlElement>(),\n  },\n  setup(props: RendererProps<ControlElement>) {\n    const control = useVuetifyControl(useJsonFormsControlWithDetail(props));\n    const nested = useNested('object');\n    return {\n      ...control,\n      input: control,\n      nested,\n    };\n  },\n  computed: {\n    hasAdditionalProperties(): boolean {\n      return (\n        !isEmpty(this.control.schema.patternProperties) ||\n        isObject(this.control.schema.additionalProperties)\n        // do not support - additionalProperties === true - since then the type should be any and we won't know what kind of renderer we should use for new properties\n      );\n    },\n    showAdditionalProperties(): boolean {\n      const showAdditionalProperties =\n        this.control.uischema.options?.showAdditionalProperties;\n      return (\n        showAdditionalProperties === undefined ||\n        showAdditionalProperties === true\n      );\n    },\n    detailUiSchema(): UISchemaElement {\n      const uiSchemaGenerator = () => {\n        const uiSchema = Generate.uiSchema(this.control.schema, 'Group');\n        if (isEmpty(this.control.path)) {\n          uiSchema.type = 'VerticalLayout';\n        } else {\n          (uiSchema as GroupLayout).label = this.control.label;\n        }\n        return uiSchema;\n      };\n\n      let result = findUISchema(\n        this.control.uischemas,\n        this.control.schema,\n        this.control.uischema.scope,\n        this.control.path,\n        uiSchemaGenerator,\n        this.control.uischema,\n        this.control.rootSchema\n      );\n\n      if (this.nested.level > 0) {\n        result = cloneDeep(result);\n        result.options = {\n          ...result.options,\n          bare: true,\n          alignLeft:\n            this.nested.level >= 4 || this.nested.parentElement === 'array',\n        };\n      }\n\n      return result;\n    },\n  },\n});\n\nexport default controlRenderer;\n\nexport const entry: JsonFormsRendererRegistryEntry = {\n  renderer: controlRenderer,\n  tester: rankWith(2, isObjectControl),\n};\n</script>\n","<template>\n  <div v-if=\"control.visible\">\n    <combinator-properties\n      :schema=\"control.schema\"\n      combinatorKeyword=\"oneOf\"\n      :path=\"path\"\n    />\n\n    <v-hover v-slot=\"{ isHovering }\">\n      <v-select\n        v-disabled-icon-focus\n        :id=\"control.id + '-input'\"\n        :class=\"styles.control.input\"\n        :disabled=\"!control.enabled\"\n        :autofocus=\"appliedOptions.focus\"\n        :placeholder=\"appliedOptions.placeholder\"\n        :label=\"computedLabel\"\n        :hint=\"control.description\"\n        :persistent-hint=\"persistentHint()\"\n        :required=\"control.required\"\n        :error-messages=\"control.errors\"\n        :clearable=\"isHovering\"\n        :items=\"indexedOneOfRenderInfos\"\n        @change=\"handleSelectChange\"\n        :item-title=\"(item) => t(item.label, item.label)\"\n        item-value=\"index\"\n        v-model=\"selectIndex\"\n        v-bind=\"vuetifyProps('v-select')\"\n        @focus=\"isFocused = true\"\n        @blur=\"handleBlur\"\n      ></v-select>\n    </v-hover>\n    <dispatch-renderer\n      v-if=\"selectedIndex !== undefined && selectedIndex !== null\"\n      :schema=\"indexedOneOfRenderInfos[selectedIndex].schema\"\n      :uischema=\"indexedOneOfRenderInfos[selectedIndex].uischema\"\n      :path=\"control.path\"\n      :renderers=\"control.renderers\"\n      :cells=\"control.cells\"\n      :enabled=\"control.enabled\"\n    />\n\n    <v-dialog v-model=\"dialog\" persistent max-width=\"600\" @keydown.esc=\"cancel\">\n      <v-card>\n        <v-card-title class=\"text-h5\"> Clear form? </v-card-title>\n\n        <v-card-text>\n          Your data will be cleared if you select this new option. Do you want\n          to proceed?\n        </v-card-text>\n\n        <v-card-actions>\n          <v-spacer></v-spacer>\n\n          <v-btn text @click=\"cancel\"> No </v-btn>\n          <v-btn text ref=\"confirm\" @click=\"confirm\"> Yes </v-btn>\n        </v-card-actions>\n      </v-card>\n    </v-dialog>\n  </div>\n</template>\n\n<script lang=\"ts\">\nimport {\n  CombinatorSubSchemaRenderInfo,\n  ControlElement,\n  createCombinatorRenderInfos,\n  createDefaultValue,\n  isOneOfControl,\n  JsonFormsRendererRegistryEntry,\n  rankWith,\n} from '@jsonforms/core';\nimport {\n  DispatchRenderer,\n  rendererProps,\n  RendererProps,\n  useJsonFormsOneOfControl,\n} from '@jsonforms/vue';\nimport isEmpty from 'lodash/isEmpty';\nimport { defineComponent, ref } from 'vue';\nimport {\n  VBtn,\n  VCard,\n  VCardActions,\n  VCardText,\n  VCardTitle,\n  VDialog,\n  VHover,\n  VSelect,\n  VSpacer,\n} from 'vuetify/components';\nimport { DisabledIconFocus } from '../controls/directives';\nimport { useTranslator, useVuetifyControl } from '../util';\nimport { CombinatorProperties } from './components';\n\nconst controlRenderer = defineComponent({\n  name: 'one-of-select-renderer',\n  components: {\n    DispatchRenderer,\n    CombinatorProperties,\n    VDialog,\n    VCard,\n    VCardTitle,\n    VCardText,\n    VCardActions,\n    VSpacer,\n    VBtn,\n    VSelect,\n    VHover,\n  },\n  directives: {\n    DisabledIconFocus,\n  },\n  props: {\n    ...rendererProps<ControlElement>(),\n  },\n  setup(props: RendererProps<ControlElement>) {\n    const input = useJsonFormsOneOfControl(props);\n    const control = input.control.value;\n\n    const selectedIndex = ref(control.indexOfFittingSchema);\n    const selectIndex = ref(selectedIndex.value);\n    const newSelectedIndex = ref(0);\n    const dialog = ref(false);\n    const t = useTranslator();\n\n    return {\n      ...useVuetifyControl(input),\n      selectedIndex,\n      selectIndex,\n      dialog,\n      newSelectedIndex,\n      t,\n    };\n  },\n  computed: {\n    indexedOneOfRenderInfos(): (CombinatorSubSchemaRenderInfo & {\n      index: number;\n    })[] {\n      const result = createCombinatorRenderInfos(\n        // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n        this.control.schema.oneOf!,\n        this.control.rootSchema,\n        'oneOf',\n        this.control.uischema,\n        this.control.path,\n        this.control.uischemas\n      );\n\n      return result\n        .filter((info) => info.uischema)\n        .map((info, index) => ({ ...info, index: index }));\n    },\n  },\n  methods: {\n    handleSelectChange(): void {\n      if (this.control.enabled && !isEmpty(this.control.data)) {\n        this.dialog = true;\n        this.$nextTick(() => {\n          this.newSelectedIndex = this.selectIndex;\n          // revert the selection while the dialog is open\n          this.selectIndex = this.selectedIndex;\n        });\n        // this.$nextTick does not work so use setTimeout\n        setTimeout(() =>\n          // cast to 'any' instead of 'Vue' because of Typescript problems (excessive stack depth when comparing types) during rollup build\n          ((this.$refs.confirm as any).$el as HTMLElement).focus()\n        );\n      } else {\n        this.$nextTick(() => {\n          this.selectedIndex = this.selectIndex;\n        });\n      }\n    },\n    confirm(): void {\n      this.newSelection();\n      this.dialog = false;\n    },\n    cancel(): void {\n      this.newSelectedIndex = this.selectedIndex;\n      this.dialog = false;\n    },\n    newSelection(): void {\n      this.handleChange(\n        this.path,\n        this.newSelectedIndex !== undefined && this.newSelectedIndex !== null\n          ? createDefaultValue(\n              this.indexedOneOfRenderInfos[this.newSelectedIndex].schema,\n              this.control.rootSchema\n            )\n          : {}\n      );\n      this.selectIndex = this.newSelectedIndex;\n      this.selectedIndex = this.newSelectedIndex;\n    },\n  },\n});\n\nexport default controlRenderer;\n\nexport const entry: JsonFormsRendererRegistryEntry = {\n  renderer: controlRenderer,\n  tester: rankWith(3, isOneOfControl),\n};\n</script>\n","<template>\n  <div v-if=\"control.visible\">\n    <combinator-properties\n      :schema=\"control.schema\"\n      combinatorKeyword=\"oneOf\"\n      :path=\"path\"\n    />\n\n    <v-hover v-slot=\"{ isHovering }\">\n      <v-select\n        v-disabled-icon-focus\n        :id=\"control.id + '-input'\"\n        :class=\"styles.control.input\"\n        :disabled=\"!control.enabled\"\n        :autofocus=\"appliedOptions.focus\"\n        :placeholder=\"appliedOptions.placeholder\"\n        :label=\"computedLabel\"\n        :hint=\"control.description\"\n        :persistent-hint=\"persistentHint()\"\n        :required=\"control.required\"\n        :error-messages=\"control.errors\"\n        :clearable=\"isHovering\"\n        :items=\"indexedOneOfRenderInfos\"\n        @change=\"handleSelectChange\"\n        :item-title=\"(item) => t(item.label, item.label)\"\n        item-value=\"index\"\n        v-model=\"selectIndex\"\n        v-bind=\"vuetifyProps('v-select')\"\n        @focus=\"isFocused = true\"\n        @blur=\"handleBlur\"\n      ></v-select>\n    </v-hover>\n    <dispatch-renderer\n      v-if=\"selectedIndex !== undefined && selectedIndex !== null\"\n      :schema=\"indexedOneOfRenderInfos[selectedIndex].schema\"\n      :uischema=\"indexedOneOfRenderInfos[selectedIndex].uischema\"\n      :path=\"control.path\"\n      :renderers=\"control.renderers\"\n      :cells=\"control.cells\"\n      :enabled=\"control.enabled\"\n    />\n\n    <v-dialog v-model=\"dialog\" persistent max-width=\"600\" @keydown.esc=\"cancel\">\n      <v-card>\n        <v-card-title class=\"text-h5\"> Clear form? </v-card-title>\n\n        <v-card-text>\n          Your data will be cleared if you select this new option. Do you want\n          to proceed?\n        </v-card-text>\n\n        <v-card-actions>\n          <v-spacer></v-spacer>\n\n          <v-btn text @click=\"cancel\"> No </v-btn>\n          <v-btn text ref=\"confirm\" @click=\"confirm\"> Yes </v-btn>\n        </v-card-actions>\n      </v-card>\n    </v-dialog>\n  </div>\n</template>\n\n<script lang=\"ts\">\nimport {\n  CombinatorSubSchemaRenderInfo,\n  ControlElement,\n  createCombinatorRenderInfos,\n  createDefaultValue,\n  isOneOfControl,\n  JsonFormsRendererRegistryEntry,\n  rankWith,\n} from '@jsonforms/core';\nimport {\n  DispatchRenderer,\n  rendererProps,\n  RendererProps,\n  useJsonFormsOneOfControl,\n} from '@jsonforms/vue';\nimport isEmpty from 'lodash/isEmpty';\nimport { defineComponent, ref } from 'vue';\nimport {\n  VBtn,\n  VCard,\n  VCardActions,\n  VCardText,\n  VCardTitle,\n  VDialog,\n  VHover,\n  VSelect,\n  VSpacer,\n} from 'vuetify/components';\nimport { DisabledIconFocus } from '../controls/directives';\nimport { useTranslator, useVuetifyControl } from '../util';\nimport { CombinatorProperties } from './components';\n\nconst controlRenderer = defineComponent({\n  name: 'one-of-select-renderer',\n  components: {\n    DispatchRenderer,\n    CombinatorProperties,\n    VDialog,\n    VCard,\n    VCardTitle,\n    VCardText,\n    VCardActions,\n    VSpacer,\n    VBtn,\n    VSelect,\n    VHover,\n  },\n  directives: {\n    DisabledIconFocus,\n  },\n  props: {\n    ...rendererProps<ControlElement>(),\n  },\n  setup(props: RendererProps<ControlElement>) {\n    const input = useJsonFormsOneOfControl(props);\n    const control = input.control.value;\n\n    const selectedIndex = ref(control.indexOfFittingSchema);\n    const selectIndex = ref(selectedIndex.value);\n    const newSelectedIndex = ref(0);\n    const dialog = ref(false);\n    const t = useTranslator();\n\n    return {\n      ...useVuetifyControl(input),\n      selectedIndex,\n      selectIndex,\n      dialog,\n      newSelectedIndex,\n      t,\n    };\n  },\n  computed: {\n    indexedOneOfRenderInfos(): (CombinatorSubSchemaRenderInfo & {\n      index: number;\n    })[] {\n      const result = createCombinatorRenderInfos(\n        // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n        this.control.schema.oneOf!,\n        this.control.rootSchema,\n        'oneOf',\n        this.control.uischema,\n        this.control.path,\n        this.control.uischemas\n      );\n\n      return result\n        .filter((info) => info.uischema)\n        .map((info, index) => ({ ...info, index: index }));\n    },\n  },\n  methods: {\n    handleSelectChange(): void {\n      if (this.control.enabled && !isEmpty(this.control.data)) {\n        this.dialog = true;\n        this.$nextTick(() => {\n          this.newSelectedIndex = this.selectIndex;\n          // revert the selection while the dialog is open\n          this.selectIndex = this.selectedIndex;\n        });\n        // this.$nextTick does not work so use setTimeout\n        setTimeout(() =>\n          // cast to 'any' instead of 'Vue' because of Typescript problems (excessive stack depth when comparing types) during rollup build\n          ((this.$refs.confirm as any).$el as HTMLElement).focus()\n        );\n      } else {\n        this.$nextTick(() => {\n          this.selectedIndex = this.selectIndex;\n        });\n      }\n    },\n    confirm(): void {\n      this.newSelection();\n      this.dialog = false;\n    },\n    cancel(): void {\n      this.newSelectedIndex = this.selectedIndex;\n      this.dialog = false;\n    },\n    newSelection(): void {\n      this.handleChange(\n        this.path,\n        this.newSelectedIndex !== undefined && this.newSelectedIndex !== null\n          ? createDefaultValue(\n              this.indexedOneOfRenderInfos[this.newSelectedIndex].schema,\n              this.control.rootSchema\n            )\n          : {}\n      );\n      this.selectIndex = this.newSelectedIndex;\n      this.selectedIndex = this.newSelectedIndex;\n    },\n  },\n});\n\nexport default controlRenderer;\n\nexport const entry: JsonFormsRendererRegistryEntry = {\n  renderer: controlRenderer,\n  tester: rankWith(3, isOneOfControl),\n};\n</script>\n","<template>\n  <div v-if=\"control.visible\">\n    <combinator-properties\n      :schema=\"control.schema\"\n      combinatorKeyword=\"oneOf\"\n      :path=\"path\"\n    />\n\n    <v-tabs v-model=\"tabIndex\">\n      <v-tab\n        @change=\"handleTabChange\"\n        v-for=\"(oneOfRenderInfo, oneOfIndex) in oneOfRenderInfos\"\n        :key=\"`${control.path}-${oneOfIndex}`\"\n      >\n        {{ oneOfRenderInfo.label }}\n      </v-tab>\n    </v-tabs>\n\n    <v-window v-model=\"selectedIndex\">\n      <v-window-item\n        v-for=\"(oneOfRenderInfo, oneOfIndex) in oneOfRenderInfos\"\n        :key=\"`${control.path}-${oneOfIndex}`\"\n      >\n        <dispatch-renderer\n          v-if=\"selectedIndex === oneOfIndex\"\n          :schema=\"oneOfRenderInfo.schema\"\n          :uischema=\"oneOfRenderInfo.uischema\"\n          :path=\"control.path\"\n          :renderers=\"control.renderers\"\n          :cells=\"control.cells\"\n          :enabled=\"control.enabled\"\n        />\n      </v-window-item>\n    </v-window>\n\n    <v-dialog v-model=\"dialog\" persistent max-width=\"600\" @keydown.esc=\"cancel\">\n      <v-card>\n        <v-card-title class=\"text-h5\"> Clear form? </v-card-title>\n\n        <v-card-text>\n          Your data will be cleared if you navigate away from this tab. Do you\n          want to proceed?\n        </v-card-text>\n\n        <v-card-actions>\n          <v-spacer></v-spacer>\n\n          <v-btn text @click=\"cancel\"> No </v-btn>\n          <v-btn text ref=\"confirm\" @click=\"confirm\"> Yes </v-btn>\n        </v-card-actions>\n      </v-card>\n    </v-dialog>\n  </div>\n</template>\n\n<script lang=\"ts\">\nimport {\n  and,\n  CombinatorSubSchemaRenderInfo,\n  ControlElement,\n  createCombinatorRenderInfos,\n  createDefaultValue,\n  isOneOfControl,\n  JsonFormsRendererRegistryEntry,\n  optionIs,\n  rankWith,\n} from '@jsonforms/core';\nimport {\n  DispatchRenderer,\n  rendererProps,\n  RendererProps,\n  useJsonFormsOneOfControl,\n} from '@jsonforms/vue';\nimport isEmpty from 'lodash/isEmpty';\nimport { defineComponent, ref } from 'vue';\nimport {\n  VBtn,\n  VCard,\n  VCardActions,\n  VCardText,\n  VCardTitle,\n  VDialog,\n  VSpacer,\n  VTab,\n  VWindow,\n  VTabs,\n  VWindowItem,\n} from 'vuetify/components';\nimport { useVuetifyControl } from '../util';\nimport { CombinatorProperties } from './components';\n\nconst controlRenderer = defineComponent({\n  name: 'one-of-renderer',\n  components: {\n    DispatchRenderer,\n    CombinatorProperties,\n    VDialog,\n    VCard,\n    VCardTitle,\n    VCardText,\n    VCardActions,\n    VSpacer,\n    VBtn,\n    VTabs,\n    VTab,\n    VWindow,\n    VWindowItem,\n  },\n  props: {\n    ...rendererProps<ControlElement>(),\n  },\n  setup(props: RendererProps<ControlElement>) {\n    const input = useJsonFormsOneOfControl(props);\n    const control = input.control.value;\n\n    const selectedIndex = ref(control.indexOfFittingSchema || 0);\n    const tabIndex = ref(selectedIndex.value);\n    const newSelectedIndex = ref(0);\n    const dialog = ref(false);\n\n    return {\n      ...useVuetifyControl(input),\n      selectedIndex,\n      tabIndex,\n      dialog,\n      newSelectedIndex,\n    };\n  },\n  computed: {\n    oneOfRenderInfos(): CombinatorSubSchemaRenderInfo[] {\n      const result = createCombinatorRenderInfos(\n        // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n        this.control.schema.oneOf!,\n        this.control.rootSchema,\n        'oneOf',\n        this.control.uischema,\n        this.control.path,\n        this.control.uischemas\n      );\n      return result.filter((info) => info.uischema);\n    },\n  },\n  methods: {\n    handleTabChange(): void {\n      if (this.control.enabled && !isEmpty(this.control.data)) {\n        this.dialog = true;\n        this.$nextTick(() => {\n          this.newSelectedIndex = this.tabIndex;\n          // revert the selection while the dialog is open\n          this.tabIndex = this.selectedIndex;\n        });\n        // this.$nextTick does not work so use setTimeout\n        setTimeout(() =>\n          // cast to 'any' instead of 'Vue' because of Typescript problems (excessive stack depth when comparing types) during rollup build\n          ((this.$refs.confirm as any).$el as HTMLElement).focus()\n        );\n      } else {\n        this.$nextTick(() => {\n          this.selectedIndex = this.tabIndex;\n        });\n      }\n    },\n    confirm(): void {\n      this.openNewTab();\n      this.dialog = false;\n    },\n    cancel(): void {\n      this.newSelectedIndex = this.selectedIndex;\n      this.dialog = false;\n    },\n    openNewTab(): void {\n      this.handleChange(\n        this.path,\n        createDefaultValue(\n            this.oneOfRenderInfos[this.newSelectedIndex].schema,\n            this.control.rootSchema\n        )\n      );\n      this.tabIndex = this.newSelectedIndex;\n      this.selectedIndex = this.newSelectedIndex;\n    },\n  },\n});\n\nexport default controlRenderer;\n\nexport const entry: JsonFormsRendererRegistryEntry = {\n  renderer: controlRenderer,\n  tester: rankWith(4, and(isOneOfControl, optionIs('variant', 'tab'))),\n};\n</script>\n","<template>\n  <div v-if=\"control.visible\">\n    <combinator-properties\n      :schema=\"control.schema\"\n      combinatorKeyword=\"oneOf\"\n      :path=\"path\"\n    />\n\n    <v-tabs v-model=\"tabIndex\">\n      <v-tab\n        @change=\"handleTabChange\"\n        v-for=\"(oneOfRenderInfo, oneOfIndex) in oneOfRenderInfos\"\n        :key=\"`${control.path}-${oneOfIndex}`\"\n      >\n        {{ oneOfRenderInfo.label }}\n      </v-tab>\n    </v-tabs>\n\n    <v-window v-model=\"selectedIndex\">\n      <v-window-item\n        v-for=\"(oneOfRenderInfo, oneOfIndex) in oneOfRenderInfos\"\n        :key=\"`${control.path}-${oneOfIndex}`\"\n      >\n        <dispatch-renderer\n          v-if=\"selectedIndex === oneOfIndex\"\n          :schema=\"oneOfRenderInfo.schema\"\n          :uischema=\"oneOfRenderInfo.uischema\"\n          :path=\"control.path\"\n          :renderers=\"control.renderers\"\n          :cells=\"control.cells\"\n          :enabled=\"control.enabled\"\n        />\n      </v-window-item>\n    </v-window>\n\n    <v-dialog v-model=\"dialog\" persistent max-width=\"600\" @keydown.esc=\"cancel\">\n      <v-card>\n        <v-card-title class=\"text-h5\"> Clear form? </v-card-title>\n\n        <v-card-text>\n          Your data will be cleared if you navigate away from this tab. Do you\n          want to proceed?\n        </v-card-text>\n\n        <v-card-actions>\n          <v-spacer></v-spacer>\n\n          <v-btn text @click=\"cancel\"> No </v-btn>\n          <v-btn text ref=\"confirm\" @click=\"confirm\"> Yes </v-btn>\n        </v-card-actions>\n      </v-card>\n    </v-dialog>\n  </div>\n</template>\n\n<script lang=\"ts\">\nimport {\n  and,\n  CombinatorSubSchemaRenderInfo,\n  ControlElement,\n  createCombinatorRenderInfos,\n  createDefaultValue,\n  isOneOfControl,\n  JsonFormsRendererRegistryEntry,\n  optionIs,\n  rankWith,\n} from '@jsonforms/core';\nimport {\n  DispatchRenderer,\n  rendererProps,\n  RendererProps,\n  useJsonFormsOneOfControl,\n} from '@jsonforms/vue';\nimport isEmpty from 'lodash/isEmpty';\nimport { defineComponent, ref } from 'vue';\nimport {\n  VBtn,\n  VCard,\n  VCardActions,\n  VCardText,\n  VCardTitle,\n  VDialog,\n  VSpacer,\n  VTab,\n  VWindow,\n  VTabs,\n  VWindowItem,\n} from 'vuetify/components';\nimport { useVuetifyControl } from '../util';\nimport { CombinatorProperties } from './components';\n\nconst controlRenderer = defineComponent({\n  name: 'one-of-renderer',\n  components: {\n    DispatchRenderer,\n    CombinatorProperties,\n    VDialog,\n    VCard,\n    VCardTitle,\n    VCardText,\n    VCardActions,\n    VSpacer,\n    VBtn,\n    VTabs,\n    VTab,\n    VWindow,\n    VWindowItem,\n  },\n  props: {\n    ...rendererProps<ControlElement>(),\n  },\n  setup(props: RendererProps<ControlElement>) {\n    const input = useJsonFormsOneOfControl(props);\n    const control = input.control.value;\n\n    const selectedIndex = ref(control.indexOfFittingSchema || 0);\n    const tabIndex = ref(selectedIndex.value);\n    const newSelectedIndex = ref(0);\n    const dialog = ref(false);\n\n    return {\n      ...useVuetifyControl(input),\n      selectedIndex,\n      tabIndex,\n      dialog,\n      newSelectedIndex,\n    };\n  },\n  computed: {\n    oneOfRenderInfos(): CombinatorSubSchemaRenderInfo[] {\n      const result = createCombinatorRenderInfos(\n        // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n        this.control.schema.oneOf!,\n        this.control.rootSchema,\n        'oneOf',\n        this.control.uischema,\n        this.control.path,\n        this.control.uischemas\n      );\n      return result.filter((info) => info.uischema);\n    },\n  },\n  methods: {\n    handleTabChange(): void {\n      if (this.control.enabled && !isEmpty(this.control.data)) {\n        this.dialog = true;\n        this.$nextTick(() => {\n          this.newSelectedIndex = this.tabIndex;\n          // revert the selection while the dialog is open\n          this.tabIndex = this.selectedIndex;\n        });\n        // this.$nextTick does not work so use setTimeout\n        setTimeout(() =>\n          // cast to 'any' instead of 'Vue' because of Typescript problems (excessive stack depth when comparing types) during rollup build\n          ((this.$refs.confirm as any).$el as HTMLElement).focus()\n        );\n      } else {\n        this.$nextTick(() => {\n          this.selectedIndex = this.tabIndex;\n        });\n      }\n    },\n    confirm(): void {\n      this.openNewTab();\n      this.dialog = false;\n    },\n    cancel(): void {\n      this.newSelectedIndex = this.selectedIndex;\n      this.dialog = false;\n    },\n    openNewTab(): void {\n      this.handleChange(\n        this.path,\n        createDefaultValue(\n            this.oneOfRenderInfos[this.newSelectedIndex].schema,\n            this.control.rootSchema\n        )\n      );\n      this.tabIndex = this.newSelectedIndex;\n      this.selectedIndex = this.newSelectedIndex;\n    },\n  },\n});\n\nexport default controlRenderer;\n\nexport const entry: JsonFormsRendererRegistryEntry = {\n  renderer: controlRenderer,\n  tester: rankWith(4, and(isOneOfControl, optionIs('variant', 'tab'))),\n};\n</script>\n","export { default as AllOfRenderer } from './AllOfRenderer.vue';\nexport { default as AnyOfRenderer } from './AnyOfRenderer.vue';\nexport { default as ArrayControlRenderer } from './ArrayControlRenderer.vue';\nexport { default as EnumArrayRenderer } from './EnumArrayRenderer.vue';\nexport { default as ObjectRenderer } from './ObjectRenderer.vue';\nexport { default as OneOfRenderer } from './OneOfRenderer.vue';\nexport { default as OneOfTabRenderer } from './OneOfTabRenderer.vue';\n\nimport { entry as allOfRendererEntry } from './AllOfRenderer.vue';\nimport { entry as anyOfRendererEntry } from './AnyOfRenderer.vue';\nimport { entry as arrayControlRendererEntry } from './ArrayControlRenderer.vue';\nimport { entry as enumArrayRendererEntry } from './EnumArrayRenderer.vue';\nimport { entry as objectRendererEntry } from './ObjectRenderer.vue';\nimport { entry as oneOfRendererEntry } from './OneOfRenderer.vue';\nimport { entry as oneOfTabRendererEntry } from './OneOfTabRenderer.vue';\n\nexport const complexRenderers = [\n  allOfRendererEntry,\n  anyOfRendererEntry,\n  arrayControlRendererEntry,\n  enumArrayRendererEntry,\n  objectRendererEntry,\n  oneOfRendererEntry,\n  oneOfTabRendererEntry,\n];\n\nexport {\n  allOfRendererEntry,\n  anyOfRendererEntry,\n  arrayControlRendererEntry,\n  enumArrayRendererEntry,\n  objectRendererEntry,\n  oneOfRendererEntry,\n  oneOfTabRendererEntry,\n}","<template>\n  <div v-if=\"visible\" :class=\"styles.control.root\" :id=\"id\">\n    <slot></slot>\n  </div>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent, PropType } from 'vue';\nimport { Styles } from '../styles';\n\nexport default defineComponent({\n  name: 'control-wrapper',\n  props: {\n    id: {\n      required: true as const,\n      type: String,\n    },\n    visible: {\n      required: false as const,\n      type: Boolean,\n      default: true,\n    },\n    styles: {\n      required: true,\n      type: Object as PropType<Styles>,\n    },\n  },\n});\n</script>\n","<template>\n  <div v-if=\"visible\" :class=\"styles.control.root\" :id=\"id\">\n    <slot></slot>\n  </div>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent, PropType } from 'vue';\nimport { Styles } from '../styles';\n\nexport default defineComponent({\n  name: 'control-wrapper',\n  props: {\n    id: {\n      required: true as const,\n      type: String,\n    },\n    visible: {\n      required: false as const,\n      type: Boolean,\n      default: true,\n    },\n    styles: {\n      required: true,\n      type: Object as PropType<Styles>,\n    },\n  },\n});\n</script>\n","<template>\n  <control-wrapper\n    v-bind=\"controlWrapper\"\n    :styles=\"styles\"\n    :isFocused=\"isFocused\"\n    :appliedOptions=\"appliedOptions\"\n  >\n    <v-hover v-slot=\"{ isHovering }\">\n      <v-combobox\n        v-disabled-icon-focus\n        :id=\"control.id + '-input'\"\n        :class=\"styles.control.input\"\n        :disabled=\"!control.enabled\"\n        :autofocus=\"appliedOptions.focus\"\n        :placeholder=\"appliedOptions.placeholder\"\n        :label=\"computedLabel\"\n        :hint=\"control.description\"\n        :persistent-hint=\"persistentHint()\"\n        :required=\"control.required\"\n        :error-messages=\"control.errors\"\n        :model-value=\"control.data\"\n        :maxlength=\"\n          appliedOptions.restrict ? control.schema.maxLength : undefined\n        \"\n        :counter=\"\n          control.schema.maxLength !== undefined\n            ? control.schema.maxLength\n            : undefined\n        \"\n        :items=\"items\"\n        :clearable=\"isHovering\"\n        v-bind=\"vuetifyProps('v-combobox')\"\n        @change=\"onChange\"\n        @focus=\"isFocused = true\"\n        @blur=\"handleBlur\"\n      />\n    </v-hover>\n  </control-wrapper>\n</template>\n\n<script lang=\"ts\">\nimport {\n  ControlElement,\n  JsonFormsRendererRegistryEntry,\n  rankWith,\n  and,\n  uiTypeIs,\n  schemaMatches,\n  JsonSchema,\n} from '@jsonforms/core';\nimport { defineComponent } from 'vue';\nimport {\n  rendererProps,\n  useJsonFormsControl,\n  RendererProps,\n} from '@jsonforms/vue';\nimport { default as ControlWrapper } from './ControlWrapper.vue';\nimport { useVuetifyControl } from '../util';\nimport { VHover, VCombobox } from 'vuetify/components';\nimport { DisabledIconFocus } from './directives';\n\nconst controlRenderer = defineComponent({\n  name: 'anyof-string-or-enum-control-renderer',\n  components: {\n    ControlWrapper,\n    VHover,\n    VCombobox,\n  },\n  directives: {\n    DisabledIconFocus,\n  },\n  props: {\n    ...rendererProps<ControlElement>(),\n  },\n  setup(props: RendererProps<ControlElement>) {\n    return useVuetifyControl(\n      useJsonFormsControl(props),\n      (value) => value || undefined\n    );\n  },\n  computed: {\n    items(): string[] {\n      // made sure via the testers\n      // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n      return findEnumSchema(this.control.schema.anyOf!)!.enum!;\n    },\n  },\n});\n\nexport default controlRenderer;\n\nconst findEnumSchema = (schemas: JsonSchema[]) =>\n  schemas.find(\n    (s) => s.enum !== undefined && (s.type === 'string' || s.type === undefined)\n  );\nconst findTextSchema = (schemas: JsonSchema[]) =>\n  schemas.find((s) => s.type === 'string' && s.enum === undefined);\n\nconst hasEnumAndText = (schemas: JsonSchema[]): boolean => {\n  // idea: map to type,enum and check that all types are string and at least one item is of type enum,\n  const enumSchema = findEnumSchema(schemas);\n  const stringSchema = findTextSchema(schemas);\n  const remainingSchemas = schemas.filter(\n    (s) => s !== enumSchema || s !== stringSchema\n  );\n  const wrongType = remainingSchemas.find((s) => s.type && s.type !== 'string');\n  return !!enumSchema && !!stringSchema && !wrongType;\n};\nconst simpleAnyOf = and(\n  uiTypeIs('Control'),\n  schemaMatches(\n    (schema) => Array.isArray(schema.anyOf) && hasEnumAndText(schema.anyOf)\n  )\n);\n\nexport const entry: JsonFormsRendererRegistryEntry = {\n  renderer: controlRenderer,\n  tester: rankWith(5, simpleAnyOf),\n};\n</script>\n","<template>\n  <control-wrapper\n    v-bind=\"controlWrapper\"\n    :styles=\"styles\"\n    :isFocused=\"isFocused\"\n    :appliedOptions=\"appliedOptions\"\n  >\n    <v-hover v-slot=\"{ isHovering }\">\n      <v-combobox\n        v-disabled-icon-focus\n        :id=\"control.id + '-input'\"\n        :class=\"styles.control.input\"\n        :disabled=\"!control.enabled\"\n        :autofocus=\"appliedOptions.focus\"\n        :placeholder=\"appliedOptions.placeholder\"\n        :label=\"computedLabel\"\n        :hint=\"control.description\"\n        :persistent-hint=\"persistentHint()\"\n        :required=\"control.required\"\n        :error-messages=\"control.errors\"\n        :model-value=\"control.data\"\n        :maxlength=\"\n          appliedOptions.restrict ? control.schema.maxLength : undefined\n        \"\n        :counter=\"\n          control.schema.maxLength !== undefined\n            ? control.schema.maxLength\n            : undefined\n        \"\n        :items=\"items\"\n        :clearable=\"isHovering\"\n        v-bind=\"vuetifyProps('v-combobox')\"\n        @change=\"onChange\"\n        @focus=\"isFocused = true\"\n        @blur=\"handleBlur\"\n      />\n    </v-hover>\n  </control-wrapper>\n</template>\n\n<script lang=\"ts\">\nimport {\n  ControlElement,\n  JsonFormsRendererRegistryEntry,\n  rankWith,\n  and,\n  uiTypeIs,\n  schemaMatches,\n  JsonSchema,\n} from '@jsonforms/core';\nimport { defineComponent } from 'vue';\nimport {\n  rendererProps,\n  useJsonFormsControl,\n  RendererProps,\n} from '@jsonforms/vue';\nimport { default as ControlWrapper } from './ControlWrapper.vue';\nimport { useVuetifyControl } from '../util';\nimport { VHover, VCombobox } from 'vuetify/components';\nimport { DisabledIconFocus } from './directives';\n\nconst controlRenderer = defineComponent({\n  name: 'anyof-string-or-enum-control-renderer',\n  components: {\n    ControlWrapper,\n    VHover,\n    VCombobox,\n  },\n  directives: {\n    DisabledIconFocus,\n  },\n  props: {\n    ...rendererProps<ControlElement>(),\n  },\n  setup(props: RendererProps<ControlElement>) {\n    return useVuetifyControl(\n      useJsonFormsControl(props),\n      (value) => value || undefined\n    );\n  },\n  computed: {\n    items(): string[] {\n      // made sure via the testers\n      // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n      return findEnumSchema(this.control.schema.anyOf!)!.enum!;\n    },\n  },\n});\n\nexport default controlRenderer;\n\nconst findEnumSchema = (schemas: JsonSchema[]) =>\n  schemas.find(\n    (s) => s.enum !== undefined && (s.type === 'string' || s.type === undefined)\n  );\nconst findTextSchema = (schemas: JsonSchema[]) =>\n  schemas.find((s) => s.type === 'string' && s.enum === undefined);\n\nconst hasEnumAndText = (schemas: JsonSchema[]): boolean => {\n  // idea: map to type,enum and check that all types are string and at least one item is of type enum,\n  const enumSchema = findEnumSchema(schemas);\n  const stringSchema = findTextSchema(schemas);\n  const remainingSchemas = schemas.filter(\n    (s) => s !== enumSchema || s !== stringSchema\n  );\n  const wrongType = remainingSchemas.find((s) => s.type && s.type !== 'string');\n  return !!enumSchema && !!stringSchema && !wrongType;\n};\nconst simpleAnyOf = and(\n  uiTypeIs('Control'),\n  schemaMatches(\n    (schema) => Array.isArray(schema.anyOf) && hasEnumAndText(schema.anyOf)\n  )\n);\n\nexport const entry: JsonFormsRendererRegistryEntry = {\n  renderer: controlRenderer,\n  tester: rankWith(5, simpleAnyOf),\n};\n</script>\n","<template>\n  <control-wrapper\n    v-bind=\"controlWrapper\"\n    :styles=\"styles\"\n    :isFocused=\"isFocused\"\n    :appliedOptions=\"appliedOptions\"\n  >\n    <v-checkbox\n      :id=\"control.id + '-input'\"\n      :class=\"styles.control.input\"\n      :disabled=\"!control.enabled\"\n      :autofocus=\"appliedOptions.focus\"\n      :placeholder=\"appliedOptions.placeholder\"\n      :label=\"computedLabel\"\n      :hint=\"control.description\"\n      :persistent-hint=\"persistentHint()\"\n      :required=\"control.required\"\n      :error-messages=\"control.errors\"\n      :indeterminate=\"control.data === undefined\"\n      :model-value=\"control.data\"\n      v-bind=\"vuetifyProps('v-checkbox')\"\n      @change=\"onChange\"\n      @focus=\"isFocused = true\"\n      @blur=\"handleBlur\"\n    />\n  </control-wrapper>\n</template>\n\n<script lang=\"ts\">\nimport {\n  ControlElement,\n  JsonFormsRendererRegistryEntry,\n  rankWith,\n  isBooleanControl,\n} from '@jsonforms/core';\nimport { defineComponent } from 'vue';\nimport {\n  rendererProps,\n  useJsonFormsControl,\n  RendererProps,\n} from '@jsonforms/vue';\nimport { default as ControlWrapper } from './ControlWrapper.vue';\nimport { useVuetifyControl } from '../util';\nimport { VCheckbox } from 'vuetify/components';\n\nconst controlRenderer = defineComponent({\n  name: 'boolean-control-renderer',\n  components: {\n    VCheckbox,\n    ControlWrapper,\n  },\n  props: {\n    ...rendererProps<ControlElement>(),\n  },\n  setup(props: RendererProps<ControlElement>) {\n    return useVuetifyControl(useJsonFormsControl(props), (event) => {\n      return event.target.checked || false;\n    });\n  },\n});\n\nexport default controlRenderer;\n\nexport const entry: JsonFormsRendererRegistryEntry = {\n  renderer: controlRenderer,\n  tester: rankWith(1, isBooleanControl),\n};\n</script>\n","<template>\n  <control-wrapper\n    v-bind=\"controlWrapper\"\n    :styles=\"styles\"\n    :isFocused=\"isFocused\"\n    :appliedOptions=\"appliedOptions\"\n  >\n    <v-checkbox\n      :id=\"control.id + '-input'\"\n      :class=\"styles.control.input\"\n      :disabled=\"!control.enabled\"\n      :autofocus=\"appliedOptions.focus\"\n      :placeholder=\"appliedOptions.placeholder\"\n      :label=\"computedLabel\"\n      :hint=\"control.description\"\n      :persistent-hint=\"persistentHint()\"\n      :required=\"control.required\"\n      :error-messages=\"control.errors\"\n      :indeterminate=\"control.data === undefined\"\n      :model-value=\"control.data\"\n      v-bind=\"vuetifyProps('v-checkbox')\"\n      @change=\"onChange\"\n      @focus=\"isFocused = true\"\n      @blur=\"handleBlur\"\n    />\n  </control-wrapper>\n</template>\n\n<script lang=\"ts\">\nimport {\n  ControlElement,\n  JsonFormsRendererRegistryEntry,\n  rankWith,\n  isBooleanControl,\n} from '@jsonforms/core';\nimport { defineComponent } from 'vue';\nimport {\n  rendererProps,\n  useJsonFormsControl,\n  RendererProps,\n} from '@jsonforms/vue';\nimport { default as ControlWrapper } from './ControlWrapper.vue';\nimport { useVuetifyControl } from '../util';\nimport { VCheckbox } from 'vuetify/components';\n\nconst controlRenderer = defineComponent({\n  name: 'boolean-control-renderer',\n  components: {\n    VCheckbox,\n    ControlWrapper,\n  },\n  props: {\n    ...rendererProps<ControlElement>(),\n  },\n  setup(props: RendererProps<ControlElement>) {\n    return useVuetifyControl(useJsonFormsControl(props), (event) => {\n      return event.target.checked || false;\n    });\n  },\n});\n\nexport default controlRenderer;\n\nexport const entry: JsonFormsRendererRegistryEntry = {\n  renderer: controlRenderer,\n  tester: rankWith(1, isBooleanControl),\n};\n</script>\n","<template>\n  <control-wrapper\n    v-bind=\"controlWrapper\"\n    :styles=\"styles\"\n    :isFocused=\"isFocused\"\n    :appliedOptions=\"appliedOptions\"\n  >\n    <v-switch\n      :id=\"control.id + '-input'\"\n      :class=\"styles.control.input\"\n      :disabled=\"!control.enabled\"\n      :autofocus=\"appliedOptions.focus\"\n      :placeholder=\"appliedOptions.placeholder\"\n      :label=\"computedLabel\"\n      :hint=\"control.description\"\n      :persistent-hint=\"persistentHint()\"\n      :required=\"control.required\"\n      :error-messages=\"control.errors\"\n      :input-value=\"control.data\"\n      :model-value=\"control.data\"\n      :true-value=\"true\"\n      :false-value=\"false\"\n      v-bind=\"vuetifyProps('v-switch')\"\n      @change=\"onChange\"\n      @focus=\"isFocused = true\"\n      @blur=\"handleBlur\"\n    />\n  </control-wrapper>\n</template>\n\n<script lang=\"ts\">\nimport {\n  ControlElement,\n  JsonFormsRendererRegistryEntry,\n  rankWith,\n  isBooleanControl,\n  optionIs,\n  and,\n} from '@jsonforms/core';\nimport { defineComponent } from 'vue';\nimport {\n  rendererProps,\n  useJsonFormsControl,\n  RendererProps,\n} from '@jsonforms/vue';\nimport { default as ControlWrapper } from './ControlWrapper.vue';\nimport { useVuetifyControl } from '../util';\nimport { VSwitch } from 'vuetify/components';\n\nconst controlRenderer = defineComponent({\n  name: 'boolean-toggle-control-renderer',\n  components: {\n    ControlWrapper,\n    VSwitch,\n  },\n  props: {\n    ...rendererProps<ControlElement>(),\n  },\n  setup(props: RendererProps<ControlElement>) {\n    return useVuetifyControl(\n      useJsonFormsControl(props),\n      (newValue) => newValue.target.checked || false\n    );\n  },\n});\n\nexport default controlRenderer;\n\nexport const entry: JsonFormsRendererRegistryEntry = {\n  renderer: controlRenderer,\n  tester: rankWith(3, and(isBooleanControl, optionIs('toggle', true))),\n};\n</script>\n","<template>\n  <control-wrapper\n    v-bind=\"controlWrapper\"\n    :styles=\"styles\"\n    :isFocused=\"isFocused\"\n    :appliedOptions=\"appliedOptions\"\n  >\n    <v-switch\n      :id=\"control.id + '-input'\"\n      :class=\"styles.control.input\"\n      :disabled=\"!control.enabled\"\n      :autofocus=\"appliedOptions.focus\"\n      :placeholder=\"appliedOptions.placeholder\"\n      :label=\"computedLabel\"\n      :hint=\"control.description\"\n      :persistent-hint=\"persistentHint()\"\n      :required=\"control.required\"\n      :error-messages=\"control.errors\"\n      :input-value=\"control.data\"\n      :model-value=\"control.data\"\n      :true-value=\"true\"\n      :false-value=\"false\"\n      v-bind=\"vuetifyProps('v-switch')\"\n      @change=\"onChange\"\n      @focus=\"isFocused = true\"\n      @blur=\"handleBlur\"\n    />\n  </control-wrapper>\n</template>\n\n<script lang=\"ts\">\nimport {\n  ControlElement,\n  JsonFormsRendererRegistryEntry,\n  rankWith,\n  isBooleanControl,\n  optionIs,\n  and,\n} from '@jsonforms/core';\nimport { defineComponent } from 'vue';\nimport {\n  rendererProps,\n  useJsonFormsControl,\n  RendererProps,\n} from '@jsonforms/vue';\nimport { default as ControlWrapper } from './ControlWrapper.vue';\nimport { useVuetifyControl } from '../util';\nimport { VSwitch } from 'vuetify/components';\n\nconst controlRenderer = defineComponent({\n  name: 'boolean-toggle-control-renderer',\n  components: {\n    ControlWrapper,\n    VSwitch,\n  },\n  props: {\n    ...rendererProps<ControlElement>(),\n  },\n  setup(props: RendererProps<ControlElement>) {\n    return useVuetifyControl(\n      useJsonFormsControl(props),\n      (newValue) => newValue.target.checked || false\n    );\n  },\n});\n\nexport default controlRenderer;\n\nexport const entry: JsonFormsRendererRegistryEntry = {\n  renderer: controlRenderer,\n  tester: rankWith(3, and(isBooleanControl, optionIs('toggle', true))),\n};\n</script>\n","<template>\n  <control-wrapper\n    v-bind=\"controlWrapper\"\n    :styles=\"styles\"\n    :isFocused=\"isFocused\"\n    :appliedOptions=\"appliedOptions\"\n  >\n    <v-text-field\n      :id=\"control.id + '-input'\"\n      :class=\"styles.control.input\"\n      :disabled=\"!control.enabled\"\n      :autofocus=\"appliedOptions.focus\"\n      :placeholder=\"appliedOptions.placeholder\"\n      :label=\"computedLabel\"\n      :hint=\"control.description\"\n      :persistent-hint=\"persistentHint()\"\n      :required=\"control.required\"\n      :error-messages=\"control.errors\"\n      v-bind=\"vuetifyProps('v-text-field')\"\n      :model-value=\"control.data\"\n      @update:model-value=\"onChange\"\n      @focus=\"isFocused = true\"\n      @blur=\"handleBlur\"\n      type=\"date\"\n    />\n  </control-wrapper>\n</template>\n\n<script lang=\"ts\">\nimport {\n  ControlElement,\n  isDateControl,\n  JsonFormsRendererRegistryEntry,\n  rankWith,\n} from '@jsonforms/core';\nimport { defineComponent } from 'vue';\n\nimport {\n  rendererProps,\n  RendererProps,\n  useJsonFormsControl,\n} from '@jsonforms/vue';\nimport { VTextField } from 'vuetify/components';\nimport { useVuetifyControl } from '../util';\nimport { default as ControlWrapper } from './ControlWrapper.vue';\n\nconst controlRenderer = defineComponent({\n  name: 'date-control-renderer',\n  components: {\n    ControlWrapper,\n    VTextField,\n  },\n  props: {\n    ...rendererProps<ControlElement>(),\n  },\n  setup(props: RendererProps<ControlElement>) {\n    const adaptValue = (value: any) => value || undefined;\n    const control = useVuetifyControl(useJsonFormsControl(props), adaptValue);\n    return { ...control, adaptValue };\n  },\n});\n\nexport default controlRenderer;\n\nexport const entry: JsonFormsRendererRegistryEntry = {\n  renderer: controlRenderer,\n  tester: rankWith(2, isDateControl),\n};\n</script>\n","<template>\n  <control-wrapper\n    v-bind=\"controlWrapper\"\n    :styles=\"styles\"\n    :isFocused=\"isFocused\"\n    :appliedOptions=\"appliedOptions\"\n  >\n    <v-text-field\n      :id=\"control.id + '-input'\"\n      :class=\"styles.control.input\"\n      :disabled=\"!control.enabled\"\n      :autofocus=\"appliedOptions.focus\"\n      :placeholder=\"appliedOptions.placeholder\"\n      :label=\"computedLabel\"\n      :hint=\"control.description\"\n      :persistent-hint=\"persistentHint()\"\n      :required=\"control.required\"\n      :error-messages=\"control.errors\"\n      v-bind=\"vuetifyProps('v-text-field')\"\n      :model-value=\"control.data\"\n      @update:model-value=\"onChange\"\n      @focus=\"isFocused = true\"\n      @blur=\"handleBlur\"\n      type=\"date\"\n    />\n  </control-wrapper>\n</template>\n\n<script lang=\"ts\">\nimport {\n  ControlElement,\n  isDateControl,\n  JsonFormsRendererRegistryEntry,\n  rankWith,\n} from '@jsonforms/core';\nimport { defineComponent } from 'vue';\n\nimport {\n  rendererProps,\n  RendererProps,\n  useJsonFormsControl,\n} from '@jsonforms/vue';\nimport { VTextField } from 'vuetify/components';\nimport { useVuetifyControl } from '../util';\nimport { default as ControlWrapper } from './ControlWrapper.vue';\n\nconst controlRenderer = defineComponent({\n  name: 'date-control-renderer',\n  components: {\n    ControlWrapper,\n    VTextField,\n  },\n  props: {\n    ...rendererProps<ControlElement>(),\n  },\n  setup(props: RendererProps<ControlElement>) {\n    const adaptValue = (value: any) => value || undefined;\n    const control = useVuetifyControl(useJsonFormsControl(props), adaptValue);\n    return { ...control, adaptValue };\n  },\n});\n\nexport default controlRenderer;\n\nexport const entry: JsonFormsRendererRegistryEntry = {\n  renderer: controlRenderer,\n  tester: rankWith(2, isDateControl),\n};\n</script>\n","<template>\n  <control-wrapper\n    v-bind=\"controlWrapper\"\n    :styles=\"styles\"\n    :isFocused=\"isFocused\"\n    :appliedOptions=\"appliedOptions\"\n  >\n    <v-text-field\n      :id=\"control.id + '-input'\"\n      :class=\"styles.control.input\"\n      :disabled=\"!control.enabled\"\n      :autofocus=\"appliedOptions.focus\"\n      :placeholder=\"appliedOptions.placeholder\"\n      :label=\"computedLabel\"\n      :hint=\"control.description\"\n      :persistent-hint=\"persistentHint()\"\n      :required=\"control.required\"\n      :error-messages=\"control.errors\"\n      v-bind=\"vuetifyProps('v-text-field')\"\n      :model-value=\"dataTime\"\n      @update:model-value=\"onChange\"\n      @focus=\"isFocused = true\"\n      @blur=\"handleBlur\"\n      type=\"datetime-local\"\n    >\n    </v-text-field>\n  </control-wrapper>\n</template>\n\n<script lang=\"ts\">\nimport {\n  ControlElement,\n  isDateTimeControl,\n  JsonFormsRendererRegistryEntry,\n  rankWith,\n} from '@jsonforms/core';\nimport { defineComponent } from 'vue';\nimport {\n  rendererProps,\n  RendererProps,\n  useJsonFormsControl,\n} from '@jsonforms/vue';\nimport { VTextField } from 'vuetify/components';\nimport { useVuetifyControl } from '../util';\nimport { default as ControlWrapper } from './ControlWrapper.vue';\n\nconst toISOString = (inputDateTime: string) => {\n  return inputDateTime === '' ? undefined : inputDateTime + ':00.000Z';\n};\n\nconst controlRenderer = defineComponent({\n  name: 'datetime-control-renderer',\n  components: {\n    ControlWrapper,\n    VTextField,\n  },\n  props: {\n    ...rendererProps<ControlElement>(),\n  },\n  setup(props: RendererProps<ControlElement>) {\n    const adaptValue = (value: any) => toISOString(value) || undefined;\n\n    const control = useVuetifyControl(useJsonFormsControl(props), adaptValue);\n    return { ...control, adaptValue };\n  },\n  computed: {\n    dataTime(): string {\n      return (this.control.data ?? '').substr(0, 16);\n    },\n  },\n});\n\nexport default controlRenderer;\n\nexport const entry: JsonFormsRendererRegistryEntry = {\n  renderer: controlRenderer,\n  tester: rankWith(2, isDateTimeControl),\n};\n</script>\n","<template>\n  <control-wrapper\n    v-bind=\"controlWrapper\"\n    :styles=\"styles\"\n    :isFocused=\"isFocused\"\n    :appliedOptions=\"appliedOptions\"\n  >\n    <v-text-field\n      :id=\"control.id + '-input'\"\n      :class=\"styles.control.input\"\n      :disabled=\"!control.enabled\"\n      :autofocus=\"appliedOptions.focus\"\n      :placeholder=\"appliedOptions.placeholder\"\n      :label=\"computedLabel\"\n      :hint=\"control.description\"\n      :persistent-hint=\"persistentHint()\"\n      :required=\"control.required\"\n      :error-messages=\"control.errors\"\n      v-bind=\"vuetifyProps('v-text-field')\"\n      :model-value=\"dataTime\"\n      @update:model-value=\"onChange\"\n      @focus=\"isFocused = true\"\n      @blur=\"handleBlur\"\n      type=\"datetime-local\"\n    >\n    </v-text-field>\n  </control-wrapper>\n</template>\n\n<script lang=\"ts\">\nimport {\n  ControlElement,\n  isDateTimeControl,\n  JsonFormsRendererRegistryEntry,\n  rankWith,\n} from '@jsonforms/core';\nimport { defineComponent } from 'vue';\nimport {\n  rendererProps,\n  RendererProps,\n  useJsonFormsControl,\n} from '@jsonforms/vue';\nimport { VTextField } from 'vuetify/components';\nimport { useVuetifyControl } from '../util';\nimport { default as ControlWrapper } from './ControlWrapper.vue';\n\nconst toISOString = (inputDateTime: string) => {\n  return inputDateTime === '' ? undefined : inputDateTime + ':00.000Z';\n};\n\nconst controlRenderer = defineComponent({\n  name: 'datetime-control-renderer',\n  components: {\n    ControlWrapper,\n    VTextField,\n  },\n  props: {\n    ...rendererProps<ControlElement>(),\n  },\n  setup(props: RendererProps<ControlElement>) {\n    const adaptValue = (value: any) => toISOString(value) || undefined;\n\n    const control = useVuetifyControl(useJsonFormsControl(props), adaptValue);\n    return { ...control, adaptValue };\n  },\n  computed: {\n    dataTime(): string {\n      return (this.control.data ?? '').substr(0, 16);\n    },\n  },\n});\n\nexport default controlRenderer;\n\nexport const entry: JsonFormsRendererRegistryEntry = {\n  renderer: controlRenderer,\n  tester: rankWith(2, isDateTimeControl),\n};\n</script>\n","<template>\n  <control-wrapper\n    v-bind=\"controlWrapper\"\n    :styles=\"styles\"\n    :isFocused=\"isFocused\"\n    :appliedOptions=\"appliedOptions\"\n  >\n    <v-hover v-slot=\"{ isHovering }\">\n      <v-select\n        v-disabled-icon-focus\n        :id=\"control.id + '-input'\"\n        :class=\"styles.control.input\"\n        :disabled=\"!control.enabled\"\n        :autofocus=\"appliedOptions.focus\"\n        :placeholder=\"appliedOptions.placeholder\"\n        :label=\"computedLabel\"\n        :hint=\"control.description\"\n        :persistent-hint=\"persistentHint()\"\n        :required=\"control.required\"\n        :error-messages=\"control.errors\"\n        :clearable=\"isHovering\"\n        :model-value=\"control.data\"\n        :items=\"control.options\"\n        :item-title=\"(item) => t(item.label, item.label)\"\n        item-value=\"value\"\n        v-bind=\"vuetifyProps('v-select')\"\n        @update:modelValue=\"onChange\"\n        @focus=\"isFocused = true\"\n        @blur=\"handleBlur\"\n      />\n    </v-hover>\n  </control-wrapper>\n</template>\n\n<script lang=\"ts\">\nimport {\n  ControlElement,\n  isEnumControl,\n  JsonFormsRendererRegistryEntry,\n  rankWith,\n} from '@jsonforms/core';\nimport {\n  rendererProps,\n  RendererProps,\n  useJsonFormsEnumControl,\n} from '@jsonforms/vue';\nimport { defineComponent } from 'vue';\nimport { VHover, VSelect } from 'vuetify/components';\nimport { useTranslator, useVuetifyControl } from '../util';\nimport { default as ControlWrapper } from './ControlWrapper.vue';\nimport { DisabledIconFocus } from './directives';\n\nconst controlRenderer = defineComponent({\n  name: 'enum-control-renderer',\n  components: {\n    ControlWrapper,\n    VSelect,\n    VHover,\n  },\n  directives: {\n    DisabledIconFocus,\n  },\n  props: {\n    ...rendererProps<ControlElement>(),\n  },\n  setup(props: RendererProps<ControlElement>) {\n    const t = useTranslator();\n\n    const control = useVuetifyControl(useJsonFormsEnumControl(props), (value) =>\n      value !== null ? value : undefined\n    );\n\n    return { ...control, t };\n  },\n});\n\nexport default controlRenderer;\n\nexport const entry: JsonFormsRendererRegistryEntry = {\n  renderer: controlRenderer,\n  tester: rankWith(2, isEnumControl),\n};\n</script>\n","<template>\n  <control-wrapper\n    v-bind=\"controlWrapper\"\n    :styles=\"styles\"\n    :isFocused=\"isFocused\"\n    :appliedOptions=\"appliedOptions\"\n  >\n    <v-hover v-slot=\"{ isHovering }\">\n      <v-select\n        v-disabled-icon-focus\n        :id=\"control.id + '-input'\"\n        :class=\"styles.control.input\"\n        :disabled=\"!control.enabled\"\n        :autofocus=\"appliedOptions.focus\"\n        :placeholder=\"appliedOptions.placeholder\"\n        :label=\"computedLabel\"\n        :hint=\"control.description\"\n        :persistent-hint=\"persistentHint()\"\n        :required=\"control.required\"\n        :error-messages=\"control.errors\"\n        :clearable=\"isHovering\"\n        :model-value=\"control.data\"\n        :items=\"control.options\"\n        :item-title=\"(item) => t(item.label, item.label)\"\n        item-value=\"value\"\n        v-bind=\"vuetifyProps('v-select')\"\n        @update:modelValue=\"onChange\"\n        @focus=\"isFocused = true\"\n        @blur=\"handleBlur\"\n      />\n    </v-hover>\n  </control-wrapper>\n</template>\n\n<script lang=\"ts\">\nimport {\n  ControlElement,\n  isEnumControl,\n  JsonFormsRendererRegistryEntry,\n  rankWith,\n} from '@jsonforms/core';\nimport {\n  rendererProps,\n  RendererProps,\n  useJsonFormsEnumControl,\n} from '@jsonforms/vue';\nimport { defineComponent } from 'vue';\nimport { VHover, VSelect } from 'vuetify/components';\nimport { useTranslator, useVuetifyControl } from '../util';\nimport { default as ControlWrapper } from './ControlWrapper.vue';\nimport { DisabledIconFocus } from './directives';\n\nconst controlRenderer = defineComponent({\n  name: 'enum-control-renderer',\n  components: {\n    ControlWrapper,\n    VSelect,\n    VHover,\n  },\n  directives: {\n    DisabledIconFocus,\n  },\n  props: {\n    ...rendererProps<ControlElement>(),\n  },\n  setup(props: RendererProps<ControlElement>) {\n    const t = useTranslator();\n\n    const control = useVuetifyControl(useJsonFormsEnumControl(props), (value) =>\n      value !== null ? value : undefined\n    );\n\n    return { ...control, t };\n  },\n});\n\nexport default controlRenderer;\n\nexport const entry: JsonFormsRendererRegistryEntry = {\n  renderer: controlRenderer,\n  tester: rankWith(2, isEnumControl),\n};\n</script>\n","<template>\n  <control-wrapper\n    v-bind=\"controlWrapper\"\n    :styles=\"styles\"\n    :isFocused=\"isFocused\"\n    :appliedOptions=\"appliedOptions\"\n  >\n    <v-hover v-slot=\"{ isHovering }\">\n      <v-text-field\n        ref=\"input\"\n        :step=\"step\"\n        :id=\"control.id + '-input'\"\n        :class=\"styles.control.input\"\n        :disabled=\"!control.enabled\"\n        :autofocus=\"appliedOptions.focus\"\n        :placeholder=\"appliedOptions.placeholder\"\n        :label=\"computedLabel\"\n        :hint=\"control.description\"\n        :persistent-hint=\"persistentHint()\"\n        :required=\"control.required\"\n        :error-messages=\"control.errors\"\n        :model-value=\"inputValue\"\n        :clearable=\"isHovering\"\n        v-bind=\"vuetifyProps('v-text-field')\"\n        @update:model-value=\"onInputChange\"\n        @focus=\"isFocused = true\"\n        @blur=\"handleBlur\"\n      ></v-text-field>\n    </v-hover>\n  </control-wrapper>\n</template>\n\n<script lang=\"ts\">\nimport {\n  ControlElement,\n  JsonFormsRendererRegistryEntry,\n  rankWith,\n  isIntegerControl,\n} from '@jsonforms/core';\nimport { defineComponent, ref, unref } from 'vue';\nimport {\n  rendererProps,\n  useJsonFormsControl,\n  RendererProps,\n} from '@jsonforms/vue';\nimport { default as ControlWrapper } from './ControlWrapper.vue';\nimport { useVuetifyControl } from '../util';\nimport { VHover, VTextField } from 'vuetify/components';\n\nconst NUMBER_REGEX_TEST = /^[+-]?\\d+([.]\\d+)?([eE][+-]?\\d+)?$/;\n\nconst controlRenderer = defineComponent({\n  name: 'integer-control-renderer',\n  components: {\n    ControlWrapper,\n    VHover,\n    VTextField,\n  },\n  props: {\n    ...rendererProps<ControlElement>(),\n  },\n  setup(props: RendererProps<ControlElement>) {\n    const adaptValue = (value: any) =>\n      typeof value === 'number' ? value : value || undefined;\n    const input = useVuetifyControl(useJsonFormsControl(props), adaptValue);\n\n    // preserve the value as it was typed by the user - for example when the user type very long number if we rely on the control.data to return back the actual data then the string could appear with exponent form and etc.\n    // otherwise while typing the string in the input can suddenly change\n    const inputValue = ref((unref(input.control).data as string) || '');\n    return { ...input, adaptValue, inputValue };\n  },\n  computed: {\n    step(): number {\n      const options: any = this.appliedOptions;\n      return options.step ?? 1;\n    },\n    allowUnsafeInteger(): boolean {\n      return this.appliedOptions.allowUnsafeInteger;\n    },\n  },\n  methods: {\n    onInputChange(value: string): void {\n      this.inputValue = value;\n      this.onChange(this.toNumberOrString(value));\n    },\n    toNumberOrString(value: string): number | string {\n      // have a regex test before parseFloat to make sure that invalid input won't be ignored and will lead to errors, parseFloat will parse invalid input such 7.22m6 as 7.22\n      if (NUMBER_REGEX_TEST.test(value)) {\n        const num = Number.parseFloat(value);\n        if (\n          Number.isFinite(num) &&\n          (this.allowUnsafeInteger || Number.isSafeInteger(num))\n        ) {\n          // return the parsed number only if it is not NaN or Infinite and it is safe integer (no potential lost of precision otherwise the input will show one value while the data will have different value ) or allowUnsafeInteger options is true\n          return num;\n        }\n      }\n      return value;\n    },\n  },\n});\n\nexport default controlRenderer;\n\nexport const entry: JsonFormsRendererRegistryEntry = {\n  renderer: controlRenderer,\n  tester: rankWith(1, isIntegerControl),\n};\n</script>\n","<template>\n  <control-wrapper\n    v-bind=\"controlWrapper\"\n    :styles=\"styles\"\n    :isFocused=\"isFocused\"\n    :appliedOptions=\"appliedOptions\"\n  >\n    <v-hover v-slot=\"{ isHovering }\">\n      <v-text-field\n        ref=\"input\"\n        :step=\"step\"\n        :id=\"control.id + '-input'\"\n        :class=\"styles.control.input\"\n        :disabled=\"!control.enabled\"\n        :autofocus=\"appliedOptions.focus\"\n        :placeholder=\"appliedOptions.placeholder\"\n        :label=\"computedLabel\"\n        :hint=\"control.description\"\n        :persistent-hint=\"persistentHint()\"\n        :required=\"control.required\"\n        :error-messages=\"control.errors\"\n        :model-value=\"inputValue\"\n        :clearable=\"isHovering\"\n        v-bind=\"vuetifyProps('v-text-field')\"\n        @update:model-value=\"onInputChange\"\n        @focus=\"isFocused = true\"\n        @blur=\"handleBlur\"\n      ></v-text-field>\n    </v-hover>\n  </control-wrapper>\n</template>\n\n<script lang=\"ts\">\nimport {\n  ControlElement,\n  JsonFormsRendererRegistryEntry,\n  rankWith,\n  isIntegerControl,\n} from '@jsonforms/core';\nimport { defineComponent, ref, unref } from 'vue';\nimport {\n  rendererProps,\n  useJsonFormsControl,\n  RendererProps,\n} from '@jsonforms/vue';\nimport { default as ControlWrapper } from './ControlWrapper.vue';\nimport { useVuetifyControl } from '../util';\nimport { VHover, VTextField } from 'vuetify/components';\n\nconst NUMBER_REGEX_TEST = /^[+-]?\\d+([.]\\d+)?([eE][+-]?\\d+)?$/;\n\nconst controlRenderer = defineComponent({\n  name: 'integer-control-renderer',\n  components: {\n    ControlWrapper,\n    VHover,\n    VTextField,\n  },\n  props: {\n    ...rendererProps<ControlElement>(),\n  },\n  setup(props: RendererProps<ControlElement>) {\n    const adaptValue = (value: any) =>\n      typeof value === 'number' ? value : value || undefined;\n    const input = useVuetifyControl(useJsonFormsControl(props), adaptValue);\n\n    // preserve the value as it was typed by the user - for example when the user type very long number if we rely on the control.data to return back the actual data then the string could appear with exponent form and etc.\n    // otherwise while typing the string in the input can suddenly change\n    const inputValue = ref((unref(input.control).data as string) || '');\n    return { ...input, adaptValue, inputValue };\n  },\n  computed: {\n    step(): number {\n      const options: any = this.appliedOptions;\n      return options.step ?? 1;\n    },\n    allowUnsafeInteger(): boolean {\n      return this.appliedOptions.allowUnsafeInteger;\n    },\n  },\n  methods: {\n    onInputChange(value: string): void {\n      this.inputValue = value;\n      this.onChange(this.toNumberOrString(value));\n    },\n    toNumberOrString(value: string): number | string {\n      // have a regex test before parseFloat to make sure that invalid input won't be ignored and will lead to errors, parseFloat will parse invalid input such 7.22m6 as 7.22\n      if (NUMBER_REGEX_TEST.test(value)) {\n        const num = Number.parseFloat(value);\n        if (\n          Number.isFinite(num) &&\n          (this.allowUnsafeInteger || Number.isSafeInteger(num))\n        ) {\n          // return the parsed number only if it is not NaN or Infinite and it is safe integer (no potential lost of precision otherwise the input will show one value while the data will have different value ) or allowUnsafeInteger options is true\n          return num;\n        }\n      }\n      return value;\n    },\n  },\n});\n\nexport default controlRenderer;\n\nexport const entry: JsonFormsRendererRegistryEntry = {\n  renderer: controlRenderer,\n  tester: rankWith(1, isIntegerControl),\n};\n</script>\n","<template>\n  <control-wrapper\n    v-bind=\"controlWrapper\"\n    :styles=\"styles\"\n    :isFocused=\"isFocused\"\n    :appliedOptions=\"appliedOptions\"\n  >\n    <v-hover v-slot=\"{ isHovering }\">\n      <v-textarea\n        v-disabled-icon-focus\n        :id=\"control.id + '-input'\"\n        :class=\"styles.control.input\"\n        :disabled=\"!control.enabled\"\n        :autofocus=\"appliedOptions.focus\"\n        :placeholder=\"appliedOptions.placeholder\"\n        :label=\"computedLabel\"\n        :hint=\"control.description\"\n        :persistent-hint=\"persistentHint()\"\n        :required=\"control.required\"\n        :error-messages=\"control.errors\"\n        :model-value=\"control.data\"\n        :maxlength=\"\n          appliedOptions.restrict ? control.schema.maxLength : undefined\n        \"\n        :size=\"\n          appliedOptions.trim && control.schema.maxLength !== undefined\n            ? control.schema.maxLength\n            : undefined\n        \"\n        :clearable=\"isHovering\"\n        multi-line\n        v-bind=\"vuetifyProps('v-textarea')\"\n        @update:model-value=\"onChange\"\n        @focus=\"isFocused = true\"\n        @blur=\"handleBlur\"\n      />\n    </v-hover>\n  </control-wrapper>\n</template>\n\n<script lang=\"ts\">\nimport {\n  ControlElement,\n  JsonFormsRendererRegistryEntry,\n  rankWith,\n  isStringControl,\n  isMultiLineControl,\n  and,\n} from '@jsonforms/core';\nimport { defineComponent } from 'vue';\nimport {\n  rendererProps,\n  useJsonFormsControl,\n  RendererProps,\n} from '@jsonforms/vue';\nimport { default as ControlWrapper } from './ControlWrapper.vue';\nimport { useVuetifyControl } from '../util';\nimport { VHover, VTextarea } from 'vuetify/components';\nimport { DisabledIconFocus } from './directives';\n\nconst controlRenderer = defineComponent({\n  name: 'multi-string-control-renderer',\n  components: {\n    ControlWrapper,\n    VHover,\n    VTextarea,\n  },\n  directives: {\n    DisabledIconFocus,\n  },\n  props: {\n    ...rendererProps<ControlElement>(),\n  },\n  setup(props: RendererProps<ControlElement>) {\n    return useVuetifyControl(\n      useJsonFormsControl(props),\n      (value) => value || undefined,\n      300\n    );\n  },\n});\n\nexport default controlRenderer;\n\nexport const entry: JsonFormsRendererRegistryEntry = {\n  renderer: controlRenderer,\n  tester: rankWith(2, and(isStringControl, isMultiLineControl)),\n};\n</script>\n","<template>\n  <control-wrapper\n    v-bind=\"controlWrapper\"\n    :styles=\"styles\"\n    :isFocused=\"isFocused\"\n    :appliedOptions=\"appliedOptions\"\n  >\n    <v-hover v-slot=\"{ isHovering }\">\n      <v-textarea\n        v-disabled-icon-focus\n        :id=\"control.id + '-input'\"\n        :class=\"styles.control.input\"\n        :disabled=\"!control.enabled\"\n        :autofocus=\"appliedOptions.focus\"\n        :placeholder=\"appliedOptions.placeholder\"\n        :label=\"computedLabel\"\n        :hint=\"control.description\"\n        :persistent-hint=\"persistentHint()\"\n        :required=\"control.required\"\n        :error-messages=\"control.errors\"\n        :model-value=\"control.data\"\n        :maxlength=\"\n          appliedOptions.restrict ? control.schema.maxLength : undefined\n        \"\n        :size=\"\n          appliedOptions.trim && control.schema.maxLength !== undefined\n            ? control.schema.maxLength\n            : undefined\n        \"\n        :clearable=\"isHovering\"\n        multi-line\n        v-bind=\"vuetifyProps('v-textarea')\"\n        @update:model-value=\"onChange\"\n        @focus=\"isFocused = true\"\n        @blur=\"handleBlur\"\n      />\n    </v-hover>\n  </control-wrapper>\n</template>\n\n<script lang=\"ts\">\nimport {\n  ControlElement,\n  JsonFormsRendererRegistryEntry,\n  rankWith,\n  isStringControl,\n  isMultiLineControl,\n  and,\n} from '@jsonforms/core';\nimport { defineComponent } from 'vue';\nimport {\n  rendererProps,\n  useJsonFormsControl,\n  RendererProps,\n} from '@jsonforms/vue';\nimport { default as ControlWrapper } from './ControlWrapper.vue';\nimport { useVuetifyControl } from '../util';\nimport { VHover, VTextarea } from 'vuetify/components';\nimport { DisabledIconFocus } from './directives';\n\nconst controlRenderer = defineComponent({\n  name: 'multi-string-control-renderer',\n  components: {\n    ControlWrapper,\n    VHover,\n    VTextarea,\n  },\n  directives: {\n    DisabledIconFocus,\n  },\n  props: {\n    ...rendererProps<ControlElement>(),\n  },\n  setup(props: RendererProps<ControlElement>) {\n    return useVuetifyControl(\n      useJsonFormsControl(props),\n      (value) => value || undefined,\n      300\n    );\n  },\n});\n\nexport default controlRenderer;\n\nexport const entry: JsonFormsRendererRegistryEntry = {\n  renderer: controlRenderer,\n  tester: rankWith(2, and(isStringControl, isMultiLineControl)),\n};\n</script>\n","<template>\n  <control-wrapper\n    v-bind=\"controlWrapper\"\n    :styles=\"styles\"\n    :isFocused=\"isFocused\"\n    :appliedOptions=\"appliedOptions\"\n  >\n    <v-hover v-slot=\"{ isHovering }\">\n      <v-text-field\n        ref=\"input\"\n        :step=\"step\"\n        :id=\"control.id + '-input'\"\n        :class=\"styles.control.input\"\n        :disabled=\"!control.enabled\"\n        :autofocus=\"appliedOptions.focus\"\n        :placeholder=\"appliedOptions.placeholder\"\n        :label=\"computedLabel\"\n        :hint=\"control.description\"\n        :persistent-hint=\"persistentHint()\"\n        :required=\"control.required\"\n        :error-messages=\"control.errors\"\n        :model-value=\"inputValue\"\n        :clearable=\"isHovering\"\n        v-bind=\"vuetifyProps('v-text-field')\"\n        @update:model-value=\"onInputChange\"\n        @focus=\"isFocused = true\"\n        @blur=\"handleBlur\"\n      ></v-text-field>\n    </v-hover>\n  </control-wrapper>\n</template>\n\n<script lang=\"ts\">\nimport {\n  ControlElement,\n  JsonFormsRendererRegistryEntry,\n  rankWith,\n  isNumberControl,\n} from '@jsonforms/core';\nimport { defineComponent, ref, unref } from 'vue';\nimport {\n  rendererProps,\n  useJsonFormsControl,\n  RendererProps,\n} from '@jsonforms/vue';\nimport { default as ControlWrapper } from './ControlWrapper.vue';\nimport { useVuetifyControl } from '../util';\nimport { VHover, VTextField } from 'vuetify/components';\n\nconst NUMBER_REGEX_TEST = /^[+-]?\\d+([.]\\d+)?([eE][+-]?\\d+)?$/;\n\nconst controlRenderer = defineComponent({\n  name: 'number-control-renderer',\n  components: {\n    ControlWrapper,\n    VHover,\n    VTextField,\n  },\n  props: {\n    ...rendererProps<ControlElement>(),\n  },\n  setup(props: RendererProps<ControlElement>) {\n    const adaptValue = (value: any) =>\n      typeof value === 'number' ? value : value || undefined;\n    const input = useVuetifyControl(useJsonFormsControl(props), adaptValue);\n\n    // preserve the value as it was typed by the user - for example when the user type very long number if we rely on the control.data to return back the actual data then the string could appear with exponent form and etc.\n    // otherwise while typing the string in the input can suddenly change\n    const inputValue = ref((unref(input.control).data as string) || '');\n    return { ...input, adaptValue, inputValue };\n  },\n  computed: {\n    step(): number {\n      const options: any = this.appliedOptions;\n      return options.step ?? 0.1;\n    },\n  },\n  methods: {\n    onInputChange(value: string): void {\n      this.inputValue = value;\n      const result = this.toNumberOrString(value);\n      if (typeof result === 'number') {\n        // if user entered 5675.4444444444444444444444444444444 but the actual data is 5675.444444444444 then sync the input with what the data represents and try to preserve the format\n        const inputStringIsInExponentForm =\n          this.inputValue.includes('E') || this.inputValue.includes('e');\n\n        const numberAsString = inputStringIsInExponentForm\n          ? result.toExponential()\n          : result.toPrecision();\n\n        const numberIsInExponentForm =\n          numberAsString.includes('E') || numberAsString.includes('e');\n\n        if (\n          this.inputValue !== numberAsString &&\n          inputStringIsInExponentForm === numberIsInExponentForm // only change the input if both the user input and the string representation of the number are in the same form\n        ) {\n          this.$nextTick(() => (this.inputValue = numberAsString));\n        }\n      }\n      this.onChange(result);\n    },\n    toNumberOrString(value: string): number | string {\n      // have a regex test before parseFloat to make sure that invalid input won't be ignored and will lead to errors, parseFloat will parse invalid input such 7.22m6 as 7.22\n      if (NUMBER_REGEX_TEST.test(value)) {\n        const num = Number.parseFloat(value);\n        if (Number.isFinite(num)) {\n          // return the parsed number only if it is not NaN or Infinite\n          return num;\n        }\n      }\n      return value;\n    },\n  },\n});\n\nexport default controlRenderer;\n\nexport const entry: JsonFormsRendererRegistryEntry = {\n  renderer: controlRenderer,\n  tester: rankWith(1, isNumberControl),\n};\n</script>\n","<template>\n  <control-wrapper\n    v-bind=\"controlWrapper\"\n    :styles=\"styles\"\n    :isFocused=\"isFocused\"\n    :appliedOptions=\"appliedOptions\"\n  >\n    <v-hover v-slot=\"{ isHovering }\">\n      <v-text-field\n        ref=\"input\"\n        :step=\"step\"\n        :id=\"control.id + '-input'\"\n        :class=\"styles.control.input\"\n        :disabled=\"!control.enabled\"\n        :autofocus=\"appliedOptions.focus\"\n        :placeholder=\"appliedOptions.placeholder\"\n        :label=\"computedLabel\"\n        :hint=\"control.description\"\n        :persistent-hint=\"persistentHint()\"\n        :required=\"control.required\"\n        :error-messages=\"control.errors\"\n        :model-value=\"inputValue\"\n        :clearable=\"isHovering\"\n        v-bind=\"vuetifyProps('v-text-field')\"\n        @update:model-value=\"onInputChange\"\n        @focus=\"isFocused = true\"\n        @blur=\"handleBlur\"\n      ></v-text-field>\n    </v-hover>\n  </control-wrapper>\n</template>\n\n<script lang=\"ts\">\nimport {\n  ControlElement,\n  JsonFormsRendererRegistryEntry,\n  rankWith,\n  isNumberControl,\n} from '@jsonforms/core';\nimport { defineComponent, ref, unref } from 'vue';\nimport {\n  rendererProps,\n  useJsonFormsControl,\n  RendererProps,\n} from '@jsonforms/vue';\nimport { default as ControlWrapper } from './ControlWrapper.vue';\nimport { useVuetifyControl } from '../util';\nimport { VHover, VTextField } from 'vuetify/components';\n\nconst NUMBER_REGEX_TEST = /^[+-]?\\d+([.]\\d+)?([eE][+-]?\\d+)?$/;\n\nconst controlRenderer = defineComponent({\n  name: 'number-control-renderer',\n  components: {\n    ControlWrapper,\n    VHover,\n    VTextField,\n  },\n  props: {\n    ...rendererProps<ControlElement>(),\n  },\n  setup(props: RendererProps<ControlElement>) {\n    const adaptValue = (value: any) =>\n      typeof value === 'number' ? value : value || undefined;\n    const input = useVuetifyControl(useJsonFormsControl(props), adaptValue);\n\n    // preserve the value as it was typed by the user - for example when the user type very long number if we rely on the control.data to return back the actual data then the string could appear with exponent form and etc.\n    // otherwise while typing the string in the input can suddenly change\n    const inputValue = ref((unref(input.control).data as string) || '');\n    return { ...input, adaptValue, inputValue };\n  },\n  computed: {\n    step(): number {\n      const options: any = this.appliedOptions;\n      return options.step ?? 0.1;\n    },\n  },\n  methods: {\n    onInputChange(value: string): void {\n      this.inputValue = value;\n      const result = this.toNumberOrString(value);\n      if (typeof result === 'number') {\n        // if user entered 5675.4444444444444444444444444444444 but the actual data is 5675.444444444444 then sync the input with what the data represents and try to preserve the format\n        const inputStringIsInExponentForm =\n          this.inputValue.includes('E') || this.inputValue.includes('e');\n\n        const numberAsString = inputStringIsInExponentForm\n          ? result.toExponential()\n          : result.toPrecision();\n\n        const numberIsInExponentForm =\n          numberAsString.includes('E') || numberAsString.includes('e');\n\n        if (\n          this.inputValue !== numberAsString &&\n          inputStringIsInExponentForm === numberIsInExponentForm // only change the input if both the user input and the string representation of the number are in the same form\n        ) {\n          this.$nextTick(() => (this.inputValue = numberAsString));\n        }\n      }\n      this.onChange(result);\n    },\n    toNumberOrString(value: string): number | string {\n      // have a regex test before parseFloat to make sure that invalid input won't be ignored and will lead to errors, parseFloat will parse invalid input such 7.22m6 as 7.22\n      if (NUMBER_REGEX_TEST.test(value)) {\n        const num = Number.parseFloat(value);\n        if (Number.isFinite(num)) {\n          // return the parsed number only if it is not NaN or Infinite\n          return num;\n        }\n      }\n      return value;\n    },\n  },\n});\n\nexport default controlRenderer;\n\nexport const entry: JsonFormsRendererRegistryEntry = {\n  renderer: controlRenderer,\n  tester: rankWith(1, isNumberControl),\n};\n</script>\n","<template>\n  <control-wrapper\n    v-bind=\"controlWrapper\"\n    :styles=\"styles\"\n    :isFocused=\"isFocused\"\n    :appliedOptions=\"appliedOptions\"\n  >\n    <v-hover v-slot=\"{ isHovering }\">\n      <v-select\n        v-disabled-icon-focus\n        :id=\"control.id + '-input'\"\n        :class=\"styles.control.input\"\n        :disabled=\"!control.enabled\"\n        :autofocus=\"appliedOptions.focus\"\n        :placeholder=\"appliedOptions.placeholder\"\n        :label=\"computedLabel\"\n        :hint=\"control.description\"\n        :persistent-hint=\"persistentHint()\"\n        :required=\"control.required\"\n        :error-messages=\"control.errors\"\n        :clearable=\"isHovering\"\n        :model-value=\"control.data\"\n        :items=\"control.options\"\n        :item-title=\"(item) => t(item.label, item.label)\"\n        item-value=\"value\"\n        v-bind=\"vuetifyProps('v-select')\"\n        @change=\"onChange\"\n        @focus=\"isFocused = true\"\n        @blur=\"handleBlur\"\n      />\n    </v-hover>\n  </control-wrapper>\n</template>\n\n<script lang=\"ts\">\nimport {\n  ControlElement,\n  isOneOfEnumControl,\n  JsonFormsRendererRegistryEntry,\n  rankWith,\n} from '@jsonforms/core';\nimport {\n  rendererProps,\n  RendererProps,\n  useJsonFormsOneOfEnumControl,\n} from '@jsonforms/vue';\nimport { defineComponent } from 'vue';\nimport { VHover, VSelect } from 'vuetify/components';\nimport { useTranslator, useVuetifyControl } from '../util';\nimport { default as ControlWrapper } from './ControlWrapper.vue';\nimport { DisabledIconFocus } from './directives';\n\nconst controlRenderer = defineComponent({\n  name: 'oneof-enum-control-renderer',\n  components: {\n    ControlWrapper,\n    VSelect,\n    VHover,\n  },\n  directives: {\n    DisabledIconFocus,\n  },\n  props: {\n    ...rendererProps<ControlElement>(),\n  },\n  setup(props: RendererProps<ControlElement>) {\n    const t = useTranslator();\n\n    const control = useVuetifyControl(\n      useJsonFormsOneOfEnumControl(props),\n      (value) => (value !== null ? value : undefined)\n    );\n    return { ...control, t };\n  },\n});\n\nexport default controlRenderer;\n\nexport const entry: JsonFormsRendererRegistryEntry = {\n  renderer: controlRenderer,\n  tester: rankWith(5, isOneOfEnumControl),\n};\n</script>\n","<template>\n  <control-wrapper\n    v-bind=\"controlWrapper\"\n    :styles=\"styles\"\n    :isFocused=\"isFocused\"\n    :appliedOptions=\"appliedOptions\"\n  >\n    <v-hover v-slot=\"{ isHovering }\">\n      <v-select\n        v-disabled-icon-focus\n        :id=\"control.id + '-input'\"\n        :class=\"styles.control.input\"\n        :disabled=\"!control.enabled\"\n        :autofocus=\"appliedOptions.focus\"\n        :placeholder=\"appliedOptions.placeholder\"\n        :label=\"computedLabel\"\n        :hint=\"control.description\"\n        :persistent-hint=\"persistentHint()\"\n        :required=\"control.required\"\n        :error-messages=\"control.errors\"\n        :clearable=\"isHovering\"\n        :model-value=\"control.data\"\n        :items=\"control.options\"\n        :item-title=\"(item) => t(item.label, item.label)\"\n        item-value=\"value\"\n        v-bind=\"vuetifyProps('v-select')\"\n        @change=\"onChange\"\n        @focus=\"isFocused = true\"\n        @blur=\"handleBlur\"\n      />\n    </v-hover>\n  </control-wrapper>\n</template>\n\n<script lang=\"ts\">\nimport {\n  ControlElement,\n  isOneOfEnumControl,\n  JsonFormsRendererRegistryEntry,\n  rankWith,\n} from '@jsonforms/core';\nimport {\n  rendererProps,\n  RendererProps,\n  useJsonFormsOneOfEnumControl,\n} from '@jsonforms/vue';\nimport { defineComponent } from 'vue';\nimport { VHover, VSelect } from 'vuetify/components';\nimport { useTranslator, useVuetifyControl } from '../util';\nimport { default as ControlWrapper } from './ControlWrapper.vue';\nimport { DisabledIconFocus } from './directives';\n\nconst controlRenderer = defineComponent({\n  name: 'oneof-enum-control-renderer',\n  components: {\n    ControlWrapper,\n    VSelect,\n    VHover,\n  },\n  directives: {\n    DisabledIconFocus,\n  },\n  props: {\n    ...rendererProps<ControlElement>(),\n  },\n  setup(props: RendererProps<ControlElement>) {\n    const t = useTranslator();\n\n    const control = useVuetifyControl(\n      useJsonFormsOneOfEnumControl(props),\n      (value) => (value !== null ? value : undefined)\n    );\n    return { ...control, t };\n  },\n});\n\nexport default controlRenderer;\n\nexport const entry: JsonFormsRendererRegistryEntry = {\n  renderer: controlRenderer,\n  tester: rankWith(5, isOneOfEnumControl),\n};\n</script>\n","<template>\n  <control-wrapper\n    v-bind=\"controlWrapper\"\n    :styles=\"styles\"\n    :isFocused=\"isFocused\"\n    :appliedOptions=\"appliedOptions\"\n  >\n    <v-label :for=\"control.id + '-input'\" v-bind=\"vuetifyProps('v-label')\">{{\n      computedLabel\n    }}</v-label>\n    <v-radio-group\n      :id=\"control.id + '-input'\"\n      :class=\"styles.control.input\"\n      :disabled=\"!control.enabled\"\n      :autofocus=\"appliedOptions.focus\"\n      :placeholder=\"appliedOptions.placeholder\"\n      :hint=\"control.description\"\n      :persistent-hint=\"persistentHint()\"\n      :required=\"control.required\"\n      :error-messages=\"control.errors\"\n      v-bind=\"vuetifyProps('v-radio-group')\"\n      :model-value=\"control.data\"\n      @change=\"onChange\"\n      @focus=\"isFocused = true\"\n      @blur=\"handleBlur\"\n    >\n      <v-radio\n        v-for=\"o in control.options\"\n        v-bind=\"vuetifyProps(`v-radio[${o.value}]`)\"\n        :key=\"o.value\"\n        :label=\"o.label\"\n        :model-value=\"o.value\"\n      ></v-radio>\n    </v-radio-group>\n  </control-wrapper>\n</template>\n\n<script lang=\"ts\">\nimport {\n  ControlElement,\n  JsonFormsRendererRegistryEntry,\n  rankWith,\n  isOneOfEnumControl,\n  optionIs,\n  and,\n} from '@jsonforms/core';\nimport { defineComponent } from 'vue';\nimport {\n  rendererProps,\n  useJsonFormsOneOfEnumControl,\n  RendererProps,\n} from '@jsonforms/vue';\nimport { default as ControlWrapper } from './ControlWrapper.vue';\nimport { useVuetifyControl } from '../util';\nimport { VRadioGroup, VRadio, VLabel } from 'vuetify/components';\n\nconst controlRenderer = defineComponent({\n  name: 'oneof-radio-group-control-renderer',\n  components: {\n    ControlWrapper,\n    VRadioGroup,\n    VRadio,\n    VLabel,\n  },\n  props: {\n    ...rendererProps<ControlElement>(),\n  },\n  setup(props: RendererProps<ControlElement>) {\n    return useVuetifyControl(useJsonFormsOneOfEnumControl(props));\n  },\n});\n\nexport default controlRenderer;\n\nexport const entry: JsonFormsRendererRegistryEntry = {\n  renderer: controlRenderer,\n  tester: rankWith(20, and(isOneOfEnumControl, optionIs('format', 'radio'))),\n};\n</script>\n","<template>\n  <control-wrapper\n    v-bind=\"controlWrapper\"\n    :styles=\"styles\"\n    :isFocused=\"isFocused\"\n    :appliedOptions=\"appliedOptions\"\n  >\n    <v-label :for=\"control.id + '-input'\" v-bind=\"vuetifyProps('v-label')\">{{\n      computedLabel\n    }}</v-label>\n    <v-radio-group\n      :id=\"control.id + '-input'\"\n      :class=\"styles.control.input\"\n      :disabled=\"!control.enabled\"\n      :autofocus=\"appliedOptions.focus\"\n      :placeholder=\"appliedOptions.placeholder\"\n      :hint=\"control.description\"\n      :persistent-hint=\"persistentHint()\"\n      :required=\"control.required\"\n      :error-messages=\"control.errors\"\n      v-bind=\"vuetifyProps('v-radio-group')\"\n      :model-value=\"control.data\"\n      @change=\"onChange\"\n      @focus=\"isFocused = true\"\n      @blur=\"handleBlur\"\n    >\n      <v-radio\n        v-for=\"o in control.options\"\n        v-bind=\"vuetifyProps(`v-radio[${o.value}]`)\"\n        :key=\"o.value\"\n        :label=\"o.label\"\n        :model-value=\"o.value\"\n      ></v-radio>\n    </v-radio-group>\n  </control-wrapper>\n</template>\n\n<script lang=\"ts\">\nimport {\n  ControlElement,\n  JsonFormsRendererRegistryEntry,\n  rankWith,\n  isOneOfEnumControl,\n  optionIs,\n  and,\n} from '@jsonforms/core';\nimport { defineComponent } from 'vue';\nimport {\n  rendererProps,\n  useJsonFormsOneOfEnumControl,\n  RendererProps,\n} from '@jsonforms/vue';\nimport { default as ControlWrapper } from './ControlWrapper.vue';\nimport { useVuetifyControl } from '../util';\nimport { VRadioGroup, VRadio, VLabel } from 'vuetify/components';\n\nconst controlRenderer = defineComponent({\n  name: 'oneof-radio-group-control-renderer',\n  components: {\n    ControlWrapper,\n    VRadioGroup,\n    VRadio,\n    VLabel,\n  },\n  props: {\n    ...rendererProps<ControlElement>(),\n  },\n  setup(props: RendererProps<ControlElement>) {\n    return useVuetifyControl(useJsonFormsOneOfEnumControl(props));\n  },\n});\n\nexport default controlRenderer;\n\nexport const entry: JsonFormsRendererRegistryEntry = {\n  renderer: controlRenderer,\n  tester: rankWith(20, and(isOneOfEnumControl, optionIs('format', 'radio'))),\n};\n</script>\n","<template>\n  <control-wrapper\n    v-bind=\"controlWrapper\"\n    :styles=\"styles\"\n    :isFocused=\"isFocused\"\n    :appliedOptions=\"appliedOptions\"\n  >\n    <v-text-field\n      :type=\"passwordVisible ? 'text' : 'password'\"\n      :append-icon=\"passwordVisible ? 'mdi-eye' : 'mdi-eye-off'\"\n      @click:append=\"() => (passwordVisible = !passwordVisible)\"\n      :id=\"control.id + '-input'\"\n      :class=\"styles.control.input\"\n      :disabled=\"!control.enabled\"\n      :autofocus=\"appliedOptions.focus\"\n      :placeholder=\"appliedOptions.placeholder\"\n      :label=\"computedLabel\"\n      :hint=\"control.description\"\n      :persistent-hint=\"persistentHint()\"\n      :required=\"control.required\"\n      :error-messages=\"control.errors\"\n      :model-value=\"control.data\"\n      :maxlength=\"\n        appliedOptions.restrict ? control.schema.maxLength : undefined\n      \"\n      :size=\"\n        appliedOptions.trim && control.schema.maxLength !== undefined\n          ? control.schema.maxLength\n          : undefined\n      \"\n      v-bind=\"vuetifyProps('v-text-field')\"\n      @update:model-value=\"onChange\"\n      @focus=\"isFocused = true\"\n      @blur=\"handleBlur\"\n    />\n  </control-wrapper>\n</template>\n\n<script lang=\"ts\">\nimport {\n  ControlElement,\n  JsonFormsRendererRegistryEntry,\n  rankWith,\n  isStringControl,\n  and,\n  formatIs,\n} from '@jsonforms/core';\nimport { defineComponent, ref } from 'vue';\nimport {\n  rendererProps,\n  useJsonFormsControl,\n  RendererProps,\n} from '@jsonforms/vue';\nimport { default as ControlWrapper } from './ControlWrapper.vue';\nimport { useVuetifyControl } from '../util';\nimport { VTextField } from 'vuetify/components';\n\nconst controlRenderer = defineComponent({\n  name: 'password-control-renderer',\n  components: {\n    ControlWrapper,\n    VTextField,\n  },\n  props: {\n    ...rendererProps<ControlElement>(),\n  },\n  setup(props: RendererProps<ControlElement>) {\n    const passwordVisible = ref(false);\n\n    return {\n      ...useVuetifyControl(\n        useJsonFormsControl(props),\n        (value) => value || undefined,\n        300\n      ),\n      passwordVisible,\n    };\n  },\n});\n\nexport default controlRenderer;\n\nexport const entry: JsonFormsRendererRegistryEntry = {\n  renderer: controlRenderer,\n  tester: rankWith(2, and(isStringControl, formatIs('password'))),\n};\n</script>\n","<template>\n  <control-wrapper\n    v-bind=\"controlWrapper\"\n    :styles=\"styles\"\n    :isFocused=\"isFocused\"\n    :appliedOptions=\"appliedOptions\"\n  >\n    <v-text-field\n      :type=\"passwordVisible ? 'text' : 'password'\"\n      :append-icon=\"passwordVisible ? 'mdi-eye' : 'mdi-eye-off'\"\n      @click:append=\"() => (passwordVisible = !passwordVisible)\"\n      :id=\"control.id + '-input'\"\n      :class=\"styles.control.input\"\n      :disabled=\"!control.enabled\"\n      :autofocus=\"appliedOptions.focus\"\n      :placeholder=\"appliedOptions.placeholder\"\n      :label=\"computedLabel\"\n      :hint=\"control.description\"\n      :persistent-hint=\"persistentHint()\"\n      :required=\"control.required\"\n      :error-messages=\"control.errors\"\n      :model-value=\"control.data\"\n      :maxlength=\"\n        appliedOptions.restrict ? control.schema.maxLength : undefined\n      \"\n      :size=\"\n        appliedOptions.trim && control.schema.maxLength !== undefined\n          ? control.schema.maxLength\n          : undefined\n      \"\n      v-bind=\"vuetifyProps('v-text-field')\"\n      @update:model-value=\"onChange\"\n      @focus=\"isFocused = true\"\n      @blur=\"handleBlur\"\n    />\n  </control-wrapper>\n</template>\n\n<script lang=\"ts\">\nimport {\n  ControlElement,\n  JsonFormsRendererRegistryEntry,\n  rankWith,\n  isStringControl,\n  and,\n  formatIs,\n} from '@jsonforms/core';\nimport { defineComponent, ref } from 'vue';\nimport {\n  rendererProps,\n  useJsonFormsControl,\n  RendererProps,\n} from '@jsonforms/vue';\nimport { default as ControlWrapper } from './ControlWrapper.vue';\nimport { useVuetifyControl } from '../util';\nimport { VTextField } from 'vuetify/components';\n\nconst controlRenderer = defineComponent({\n  name: 'password-control-renderer',\n  components: {\n    ControlWrapper,\n    VTextField,\n  },\n  props: {\n    ...rendererProps<ControlElement>(),\n  },\n  setup(props: RendererProps<ControlElement>) {\n    const passwordVisible = ref(false);\n\n    return {\n      ...useVuetifyControl(\n        useJsonFormsControl(props),\n        (value) => value || undefined,\n        300\n      ),\n      passwordVisible,\n    };\n  },\n});\n\nexport default controlRenderer;\n\nexport const entry: JsonFormsRendererRegistryEntry = {\n  renderer: controlRenderer,\n  tester: rankWith(2, and(isStringControl, formatIs('password'))),\n};\n</script>\n","<template>\n  <control-wrapper\n    v-bind=\"controlWrapper\"\n    :styles=\"styles\"\n    :isFocused=\"isFocused\"\n    :appliedOptions=\"appliedOptions\"\n  >\n    <v-label :for=\"control.id + '-input'\" v-bind=\"vuetifyProps('v-label')\">{{\n      computedLabel\n    }}</v-label>\n    <v-radio-group\n      :id=\"control.id + '-input'\"\n      :class=\"styles.control.input\"\n      :disabled=\"!control.enabled\"\n      :autofocus=\"appliedOptions.focus\"\n      :placeholder=\"appliedOptions.placeholder\"\n      :hint=\"control.description\"\n      :persistent-hint=\"persistentHint()\"\n      :required=\"control.required\"\n      :error-messages=\"control.errors\"\n      :model-value=\"control.data\"\n      v-bind=\"vuetifyProps('v-radio-group')\"\n      @change=\"onChange\"\n      @focus=\"isFocused = true\"\n      @blur=\"handleBlur\"\n    >\n      <v-radio\n        v-for=\"o in control.options\"\n        v-bind=\"vuetifyProps(`v-radio[${o.value}]`)\"\n        :key=\"o.value\"\n        :label=\"o.label\"\n        :model-value=\"o.value\"\n      ></v-radio>\n    </v-radio-group>\n  </control-wrapper>\n</template>\n\n<script lang=\"ts\">\nimport {\n  ControlElement,\n  JsonFormsRendererRegistryEntry,\n  rankWith,\n  isEnumControl,\n  optionIs,\n  and,\n} from '@jsonforms/core';\nimport { defineComponent } from 'vue';\nimport {\n  rendererProps,\n  useJsonFormsEnumControl,\n  RendererProps,\n} from '@jsonforms/vue';\nimport { default as ControlWrapper } from './ControlWrapper.vue';\nimport { useVuetifyControl } from '../util';\nimport { VRadioGroup, VRadio, VLabel } from 'vuetify/components';\n\nconst controlRenderer = defineComponent({\n  name: 'radio-group-control-renderer',\n  components: {\n    ControlWrapper,\n    VRadioGroup,\n    VRadio,\n    VLabel,\n  },\n  props: {\n    ...rendererProps<ControlElement>(),\n  },\n  setup(props: RendererProps<ControlElement>) {\n    return useVuetifyControl(useJsonFormsEnumControl(props));\n  },\n});\n\nexport default controlRenderer;\n\nexport const entry: JsonFormsRendererRegistryEntry = {\n  renderer: controlRenderer,\n  tester: rankWith(20, and(isEnumControl, optionIs('format', 'radio'))),\n};\n</script>\n","<template>\n  <control-wrapper\n    v-bind=\"controlWrapper\"\n    :styles=\"styles\"\n    :isFocused=\"isFocused\"\n    :appliedOptions=\"appliedOptions\"\n  >\n    <v-label :for=\"control.id + '-input'\" v-bind=\"vuetifyProps('v-label')\">{{\n      computedLabel\n    }}</v-label>\n    <v-radio-group\n      :id=\"control.id + '-input'\"\n      :class=\"styles.control.input\"\n      :disabled=\"!control.enabled\"\n      :autofocus=\"appliedOptions.focus\"\n      :placeholder=\"appliedOptions.placeholder\"\n      :hint=\"control.description\"\n      :persistent-hint=\"persistentHint()\"\n      :required=\"control.required\"\n      :error-messages=\"control.errors\"\n      :model-value=\"control.data\"\n      v-bind=\"vuetifyProps('v-radio-group')\"\n      @change=\"onChange\"\n      @focus=\"isFocused = true\"\n      @blur=\"handleBlur\"\n    >\n      <v-radio\n        v-for=\"o in control.options\"\n        v-bind=\"vuetifyProps(`v-radio[${o.value}]`)\"\n        :key=\"o.value\"\n        :label=\"o.label\"\n        :model-value=\"o.value\"\n      ></v-radio>\n    </v-radio-group>\n  </control-wrapper>\n</template>\n\n<script lang=\"ts\">\nimport {\n  ControlElement,\n  JsonFormsRendererRegistryEntry,\n  rankWith,\n  isEnumControl,\n  optionIs,\n  and,\n} from '@jsonforms/core';\nimport { defineComponent } from 'vue';\nimport {\n  rendererProps,\n  useJsonFormsEnumControl,\n  RendererProps,\n} from '@jsonforms/vue';\nimport { default as ControlWrapper } from './ControlWrapper.vue';\nimport { useVuetifyControl } from '../util';\nimport { VRadioGroup, VRadio, VLabel } from 'vuetify/components';\n\nconst controlRenderer = defineComponent({\n  name: 'radio-group-control-renderer',\n  components: {\n    ControlWrapper,\n    VRadioGroup,\n    VRadio,\n    VLabel,\n  },\n  props: {\n    ...rendererProps<ControlElement>(),\n  },\n  setup(props: RendererProps<ControlElement>) {\n    return useVuetifyControl(useJsonFormsEnumControl(props));\n  },\n});\n\nexport default controlRenderer;\n\nexport const entry: JsonFormsRendererRegistryEntry = {\n  renderer: controlRenderer,\n  tester: rankWith(20, and(isEnumControl, optionIs('format', 'radio'))),\n};\n</script>\n","<template>\n  <control-wrapper\n    v-bind=\"controlWrapper\"\n    :styles=\"styles\"\n    :isFocused=\"isFocused\"\n    :appliedOptions=\"appliedOptions\"\n  >\n    <v-slider\n      :step=\"control.schema.multipleOf || 1\"\n      :min=\"control.schema.minimum\"\n      :max=\"control.schema.maximum\"\n      :thumb-label=\"true\"\n      :id=\"control.id + '-input'\"\n      :class=\"styles.control.input\"\n      :disabled=\"!control.enabled\"\n      :autofocus=\"appliedOptions.focus\"\n      :placeholder=\"appliedOptions.placeholder\"\n      :label=\"computedLabel\"\n      :hint=\"control.description\"\n      :persistent-hint=\"persistentHint()\"\n      :required=\"control.required\"\n      :error-messages=\"control.errors\"\n      :model-value=\"control.data\"\n      v-bind=\"vuetifyProps('v-slider')\"\n      @update:model-value=\"onChange\"\n      @focus=\"isFocused = true\"\n      @blur=\"handleBlur\"\n    />\n  </control-wrapper>\n</template>\n\n<script lang=\"ts\">\nimport {\n  ControlElement,\n  JsonFormsRendererRegistryEntry,\n  rankWith,\n  isRangeControl,\n} from '@jsonforms/core';\nimport { defineComponent } from 'vue';\nimport {\n  rendererProps,\n  useJsonFormsControl,\n  RendererProps,\n} from '@jsonforms/vue';\nimport { default as ControlWrapper } from './ControlWrapper.vue';\nimport { useVuetifyControl } from '../util';\nimport { VSlider } from 'vuetify/components';\n\nconst controlRenderer = defineComponent({\n  name: 'slider-control-renderer',\n  components: {\n    ControlWrapper,\n    VSlider,\n  },\n  props: {\n    ...rendererProps<ControlElement>(),\n  },\n  setup(props: RendererProps<ControlElement>) {\n    return useVuetifyControl(useJsonFormsControl(props), (value) => {\n      return Number(value);\n    });\n  },\n});\n\nexport default controlRenderer;\n\nexport const entry: JsonFormsRendererRegistryEntry = {\n  renderer: controlRenderer,\n  tester: rankWith(4, isRangeControl),\n};\n</script>\n","<template>\n  <control-wrapper\n    v-bind=\"controlWrapper\"\n    :styles=\"styles\"\n    :isFocused=\"isFocused\"\n    :appliedOptions=\"appliedOptions\"\n  >\n    <v-slider\n      :step=\"control.schema.multipleOf || 1\"\n      :min=\"control.schema.minimum\"\n      :max=\"control.schema.maximum\"\n      :thumb-label=\"true\"\n      :id=\"control.id + '-input'\"\n      :class=\"styles.control.input\"\n      :disabled=\"!control.enabled\"\n      :autofocus=\"appliedOptions.focus\"\n      :placeholder=\"appliedOptions.placeholder\"\n      :label=\"computedLabel\"\n      :hint=\"control.description\"\n      :persistent-hint=\"persistentHint()\"\n      :required=\"control.required\"\n      :error-messages=\"control.errors\"\n      :model-value=\"control.data\"\n      v-bind=\"vuetifyProps('v-slider')\"\n      @update:model-value=\"onChange\"\n      @focus=\"isFocused = true\"\n      @blur=\"handleBlur\"\n    />\n  </control-wrapper>\n</template>\n\n<script lang=\"ts\">\nimport {\n  ControlElement,\n  JsonFormsRendererRegistryEntry,\n  rankWith,\n  isRangeControl,\n} from '@jsonforms/core';\nimport { defineComponent } from 'vue';\nimport {\n  rendererProps,\n  useJsonFormsControl,\n  RendererProps,\n} from '@jsonforms/vue';\nimport { default as ControlWrapper } from './ControlWrapper.vue';\nimport { useVuetifyControl } from '../util';\nimport { VSlider } from 'vuetify/components';\n\nconst controlRenderer = defineComponent({\n  name: 'slider-control-renderer',\n  components: {\n    ControlWrapper,\n    VSlider,\n  },\n  props: {\n    ...rendererProps<ControlElement>(),\n  },\n  setup(props: RendererProps<ControlElement>) {\n    return useVuetifyControl(useJsonFormsControl(props), (value) => {\n      return Number(value);\n    });\n  },\n});\n\nexport default controlRenderer;\n\nexport const entry: JsonFormsRendererRegistryEntry = {\n  renderer: controlRenderer,\n  tester: rankWith(4, isRangeControl),\n};\n</script>\n","<template>\n  <control-wrapper\n    v-bind=\"controlWrapper\"\n    :styles=\"styles\"\n    :isFocused=\"isFocused\"\n    :appliedOptions=\"appliedOptions\"\n  >\n    <v-hover v-slot=\"{ isHovering }\">\n      <v-combobox\n        v-if=\"suggestions !== undefined\"\n        v-disabled-icon-focus\n        :id=\"control.id + '-input'\"\n        :class=\"styles.control.input\"\n        :disabled=\"!control.enabled\"\n        :autofocus=\"appliedOptions.focus\"\n        :placeholder=\"appliedOptions.placeholder\"\n        :label=\"computedLabel\"\n        :hint=\"control.description\"\n        :persistent-hint=\"persistentHint()\"\n        :required=\"control.required\"\n        :error-messages=\"control.errors\"\n        :maxlength=\"\n          appliedOptions.restrict ? control.schema.maxLength : undefined\n        \"\n        :counter=\"\n          control.schema.maxLength !== undefined\n            ? control.schema.maxLength\n            : undefined\n        \"\n        :clearable=\"isHovering\"\n        :model-value=\"control.data\"\n        :items=\"suggestions\"\n        hide-no-data\n        v-bind=\"vuetifyProps('v-combobox')\"\n        @update:model-value=\"onChange\"\n        @focus=\"isFocused = true\"\n        @blur=\"handleBlur\"\n      />\n      <v-text-field\n        v-else\n        :id=\"control.id + '-input'\"\n        :class=\"styles.control.input\"\n        :disabled=\"!control.enabled\"\n        :autofocus=\"appliedOptions.focus\"\n        :placeholder=\"appliedOptions.placeholder\"\n        :label=\"computedLabel\"\n        :hint=\"control.description\"\n        :persistent-hint=\"persistentHint()\"\n        :required=\"control.required\"\n        :error-messages=\"control.errors\"\n        :model-value=\"control.data\"\n        :maxlength=\"\n          appliedOptions.restrict ? control.schema.maxLength : undefined\n        \"\n        :counter=\"\n          control.schema.maxLength !== undefined\n            ? control.schema.maxLength\n            : undefined\n        \"\n        :clearable=\"isHovering\"\n        v-bind=\"vuetifyProps('v-text-field')\"\n        @update:model-value=\"onChange\"\n        @focus=\"isFocused = true\"\n        @blur=\"handleBlur\"\n      />\n    </v-hover>\n  </control-wrapper>\n</template>\n\n<script lang=\"ts\">\nimport {\n  ControlElement,\n  JsonFormsRendererRegistryEntry,\n  rankWith,\n  isStringControl,\n} from '@jsonforms/core';\nimport {defineComponent} from 'vue';\nimport {\n  rendererProps,\n  useJsonFormsControl,\n  RendererProps,\n} from '@jsonforms/vue';\nimport { default as ControlWrapper } from './ControlWrapper.vue';\nimport { useVuetifyControl } from '../util';\nimport { VHover, VTextField, VCombobox } from 'vuetify/components';\nimport { DisabledIconFocus } from './directives';\nimport isArray from 'lodash/isArray';\nimport every from 'lodash/every';\nimport isString from 'lodash/isString';\n\nconst controlRenderer = defineComponent({\n  name: 'string-control-renderer',\n  components: {\n    ControlWrapper,\n    VHover,\n    VTextField,\n    VCombobox,\n  },\n  directives: {\n    DisabledIconFocus,\n  },\n  props: {\n    ...rendererProps<ControlElement>(),\n  },\n  setup(props: RendererProps<ControlElement>) {\n    return useVuetifyControl(\n      useJsonFormsControl(props),\n      (value) => value || undefined,\n      300\n    );\n  },\n  computed: {\n    suggestions(): string[] | undefined {\n      const suggestions = this.control.uischema.options?.suggestion;\n\n      if (\n        suggestions === undefined ||\n        !isArray(suggestions) ||\n        !every(suggestions, isString)\n      ) {\n        // check for incorrect data\n        return undefined;\n      }\n      return suggestions;\n    },\n  },\n});\n\nexport default controlRenderer;\n\nexport const entry: JsonFormsRendererRegistryEntry = {\n  renderer: controlRenderer,\n  tester: rankWith(1, isStringControl),\n};\n</script>\n","<template>\n  <control-wrapper\n    v-bind=\"controlWrapper\"\n    :styles=\"styles\"\n    :isFocused=\"isFocused\"\n    :appliedOptions=\"appliedOptions\"\n  >\n    <v-hover v-slot=\"{ isHovering }\">\n      <v-combobox\n        v-if=\"suggestions !== undefined\"\n        v-disabled-icon-focus\n        :id=\"control.id + '-input'\"\n        :class=\"styles.control.input\"\n        :disabled=\"!control.enabled\"\n        :autofocus=\"appliedOptions.focus\"\n        :placeholder=\"appliedOptions.placeholder\"\n        :label=\"computedLabel\"\n        :hint=\"control.description\"\n        :persistent-hint=\"persistentHint()\"\n        :required=\"control.required\"\n        :error-messages=\"control.errors\"\n        :maxlength=\"\n          appliedOptions.restrict ? control.schema.maxLength : undefined\n        \"\n        :counter=\"\n          control.schema.maxLength !== undefined\n            ? control.schema.maxLength\n            : undefined\n        \"\n        :clearable=\"isHovering\"\n        :model-value=\"control.data\"\n        :items=\"suggestions\"\n        hide-no-data\n        v-bind=\"vuetifyProps('v-combobox')\"\n        @update:model-value=\"onChange\"\n        @focus=\"isFocused = true\"\n        @blur=\"handleBlur\"\n      />\n      <v-text-field\n        v-else\n        :id=\"control.id + '-input'\"\n        :class=\"styles.control.input\"\n        :disabled=\"!control.enabled\"\n        :autofocus=\"appliedOptions.focus\"\n        :placeholder=\"appliedOptions.placeholder\"\n        :label=\"computedLabel\"\n        :hint=\"control.description\"\n        :persistent-hint=\"persistentHint()\"\n        :required=\"control.required\"\n        :error-messages=\"control.errors\"\n        :model-value=\"control.data\"\n        :maxlength=\"\n          appliedOptions.restrict ? control.schema.maxLength : undefined\n        \"\n        :counter=\"\n          control.schema.maxLength !== undefined\n            ? control.schema.maxLength\n            : undefined\n        \"\n        :clearable=\"isHovering\"\n        v-bind=\"vuetifyProps('v-text-field')\"\n        @update:model-value=\"onChange\"\n        @focus=\"isFocused = true\"\n        @blur=\"handleBlur\"\n      />\n    </v-hover>\n  </control-wrapper>\n</template>\n\n<script lang=\"ts\">\nimport {\n  ControlElement,\n  JsonFormsRendererRegistryEntry,\n  rankWith,\n  isStringControl,\n} from '@jsonforms/core';\nimport {defineComponent} from 'vue';\nimport {\n  rendererProps,\n  useJsonFormsControl,\n  RendererProps,\n} from '@jsonforms/vue';\nimport { default as ControlWrapper } from './ControlWrapper.vue';\nimport { useVuetifyControl } from '../util';\nimport { VHover, VTextField, VCombobox } from 'vuetify/components';\nimport { DisabledIconFocus } from './directives';\nimport isArray from 'lodash/isArray';\nimport every from 'lodash/every';\nimport isString from 'lodash/isString';\n\nconst controlRenderer = defineComponent({\n  name: 'string-control-renderer',\n  components: {\n    ControlWrapper,\n    VHover,\n    VTextField,\n    VCombobox,\n  },\n  directives: {\n    DisabledIconFocus,\n  },\n  props: {\n    ...rendererProps<ControlElement>(),\n  },\n  setup(props: RendererProps<ControlElement>) {\n    return useVuetifyControl(\n      useJsonFormsControl(props),\n      (value) => value || undefined,\n      300\n    );\n  },\n  computed: {\n    suggestions(): string[] | undefined {\n      const suggestions = this.control.uischema.options?.suggestion;\n\n      if (\n        suggestions === undefined ||\n        !isArray(suggestions) ||\n        !every(suggestions, isString)\n      ) {\n        // check for incorrect data\n        return undefined;\n      }\n      return suggestions;\n    },\n  },\n});\n\nexport default controlRenderer;\n\nexport const entry: JsonFormsRendererRegistryEntry = {\n  renderer: controlRenderer,\n  tester: rankWith(1, isStringControl),\n};\n</script>\n","<template>\n  <control-wrapper\n    v-bind=\"controlWrapper\"\n    :styles=\"styles\"\n    :isFocused=\"isFocused\"\n    :appliedOptions=\"appliedOptions\"\n  >\n    <v-text-field\n      :id=\"control.id + '-input'\"\n      :class=\"styles.control.input\"\n      :disabled=\"!control.enabled\"\n      :autofocus=\"appliedOptions.focus\"\n      :placeholder=\"appliedOptions.placeholder\"\n      :label=\"computedLabel\"\n      :hint=\"control.description\"\n      :persistent-hint=\"persistentHint()\"\n      :required=\"control.required\"\n      :error-messages=\"control.errors\"\n      v-bind=\"vuetifyProps('v-text-field')\"\n      :model-value=\"control.data\"\n      @update:model-value=\"onChange\"\n      @focus=\"isFocused = true\"\n      @blur=\"handleBlur\"\n      type=\"time\"\n    >\n    </v-text-field>\n  </control-wrapper>\n</template>\n\n<script lang=\"ts\">\nimport {\n  ControlElement,\n  isTimeControl,\n  JsonFormsRendererRegistryEntry,\n  rankWith,\n} from '@jsonforms/core';\nimport { defineComponent } from 'vue';\nimport {\n  rendererProps,\n  RendererProps,\n  useJsonFormsControl,\n} from '@jsonforms/vue';\nimport { VTextField } from 'vuetify/components';\nimport { useVuetifyControl } from '../util';\nimport { default as ControlWrapper } from './ControlWrapper.vue';\n\n/**\n * AJV 'time' format expects HH:mm:ss while <input type='time'> only returns HH:mm.\n * Therefore we append ':00' when the seconds are missing.\n */\nconst appendSecondsIfNecessary = (value: unknown) => {\n  if (typeof value === 'string') {\n    const splitValue = value.split(':');\n    if (splitValue.length === 2) {\n      splitValue.push('00');\n    }\n    return splitValue.join(':');\n  }\n  return value;\n};\n\nconst controlRenderer = defineComponent({\n  name: 'time-control-renderer',\n  components: {\n    ControlWrapper,\n    VTextField,\n  },\n  props: {\n    ...rendererProps<ControlElement>(),\n  },\n  setup(props: RendererProps<ControlElement>) {\n    const adaptValue = (value: any) =>\n      appendSecondsIfNecessary(value) || undefined;\n    const control = useVuetifyControl(useJsonFormsControl(props), adaptValue);\n    return { ...control, adaptValue };\n  },\n});\n\nexport default controlRenderer;\n\nexport const entry: JsonFormsRendererRegistryEntry = {\n  renderer: controlRenderer,\n  tester: rankWith(2, isTimeControl),\n};\n</script>\n","<template>\n  <control-wrapper\n    v-bind=\"controlWrapper\"\n    :styles=\"styles\"\n    :isFocused=\"isFocused\"\n    :appliedOptions=\"appliedOptions\"\n  >\n    <v-text-field\n      :id=\"control.id + '-input'\"\n      :class=\"styles.control.input\"\n      :disabled=\"!control.enabled\"\n      :autofocus=\"appliedOptions.focus\"\n      :placeholder=\"appliedOptions.placeholder\"\n      :label=\"computedLabel\"\n      :hint=\"control.description\"\n      :persistent-hint=\"persistentHint()\"\n      :required=\"control.required\"\n      :error-messages=\"control.errors\"\n      v-bind=\"vuetifyProps('v-text-field')\"\n      :model-value=\"control.data\"\n      @update:model-value=\"onChange\"\n      @focus=\"isFocused = true\"\n      @blur=\"handleBlur\"\n      type=\"time\"\n    >\n    </v-text-field>\n  </control-wrapper>\n</template>\n\n<script lang=\"ts\">\nimport {\n  ControlElement,\n  isTimeControl,\n  JsonFormsRendererRegistryEntry,\n  rankWith,\n} from '@jsonforms/core';\nimport { defineComponent } from 'vue';\nimport {\n  rendererProps,\n  RendererProps,\n  useJsonFormsControl,\n} from '@jsonforms/vue';\nimport { VTextField } from 'vuetify/components';\nimport { useVuetifyControl } from '../util';\nimport { default as ControlWrapper } from './ControlWrapper.vue';\n\n/**\n * AJV 'time' format expects HH:mm:ss while <input type='time'> only returns HH:mm.\n * Therefore we append ':00' when the seconds are missing.\n */\nconst appendSecondsIfNecessary = (value: unknown) => {\n  if (typeof value === 'string') {\n    const splitValue = value.split(':');\n    if (splitValue.length === 2) {\n      splitValue.push('00');\n    }\n    return splitValue.join(':');\n  }\n  return value;\n};\n\nconst controlRenderer = defineComponent({\n  name: 'time-control-renderer',\n  components: {\n    ControlWrapper,\n    VTextField,\n  },\n  props: {\n    ...rendererProps<ControlElement>(),\n  },\n  setup(props: RendererProps<ControlElement>) {\n    const adaptValue = (value: any) =>\n      appendSecondsIfNecessary(value) || undefined;\n    const control = useVuetifyControl(useJsonFormsControl(props), adaptValue);\n    return { ...control, adaptValue };\n  },\n});\n\nexport default controlRenderer;\n\nexport const entry: JsonFormsRendererRegistryEntry = {\n  renderer: controlRenderer,\n  tester: rankWith(2, isTimeControl),\n};\n</script>\n","export * from './components';\nexport * from './directives';\n\nexport { default as AnyOfStringOrEnumControlRenderer } from './AnyOfStringOrEnumControlRenderer.vue';\nexport { default as BooleanControlRenderer } from './BooleanControlRenderer.vue';\nexport { default as BooleanToggleControlRenderer } from './BooleanToggleControlRenderer.vue';\nexport { default as ControlWrapper } from './ControlWrapper.vue';\nexport { default as DateControlRenderer } from './DateControlRenderer.vue';\nexport { default as DateTimeControlRenderer } from './DateTimeControlRenderer.vue';\nexport { default as EnumControlRenderer } from './EnumControlRenderer.vue';\nexport { default as IntegerControlRenderer } from './IntegerControlRenderer.vue';\nexport { default as MultiStringControlRenderer } from './MultiStringControlRenderer.vue';\nexport { default as NumberControlRenderer } from './NumberControlRenderer.vue';\nexport { default as OneOfEnumControlRenderer } from './OneOfEnumControlRenderer.vue';\nexport { default as OneOfRadioGroupControlRenderer } from './OneOfRadioGroupControlRenderer.vue';\nexport { default as PasswordControlRenderer } from './PasswordControlRenderer.vue';\nexport { default as RadioGroupControlRenderer } from './RadioGroupControlRenderer.vue';\nexport { default as SliderControlRenderer } from './SliderControlRenderer.vue';\nexport { default as StringControlRenderer } from './StringControlRenderer.vue';\n// export { default as StringMaskControlRenderer } from './StringMaskControlRenderer.vue';\nexport { default as TimeControlRenderer } from './TimeControlRenderer.vue';\n\nimport { entry as anyOfStringOrEnumControlRendererEntry } from './AnyOfStringOrEnumControlRenderer.vue';\nimport { entry as booleanControlRendererEntry } from './BooleanControlRenderer.vue';\nimport { entry as booleanToggleControlRendererEntry } from './BooleanToggleControlRenderer.vue';\nimport { entry as dateControlRendererEntry } from './DateControlRenderer.vue';\nimport { entry as dateTimeControlRendererEntry } from './DateTimeControlRenderer.vue';\nimport { entry as enumControlRendererEntry } from './EnumControlRenderer.vue';\nimport { entry as integerControlRendererEntry } from './IntegerControlRenderer.vue';\nimport { entry as multiStringControlRendererEntry } from './MultiStringControlRenderer.vue';\nimport { entry as numberControlRendererEntry } from './NumberControlRenderer.vue';\nimport { entry as oneOfEnumControlRendererEntry } from './OneOfEnumControlRenderer.vue';\nimport { entry as oneOfRadioGroupControlRendererEntry } from './OneOfRadioGroupControlRenderer.vue';\nimport { entry as passwordControlRendererEntry } from './PasswordControlRenderer.vue';\nimport { entry as radioGroupControlRendererEntry } from './RadioGroupControlRenderer.vue';\nimport { entry as sliderControlRendererEntry } from './SliderControlRenderer.vue';\nimport { entry as stringControlRendererEntry } from './StringControlRenderer.vue';\n// import { entry as stringMaskControlRendererEntry } from './StringMaskControlRenderer.vue';\nimport { entry as timeControlRendererEntry } from './TimeControlRenderer.vue';\n\nexport const controlRenderers = [\n  anyOfStringOrEnumControlRendererEntry,\n  booleanControlRendererEntry,\n  booleanToggleControlRendererEntry,\n  dateControlRendererEntry,\n  dateTimeControlRendererEntry,\n  enumControlRendererEntry,\n  integerControlRendererEntry,\n  multiStringControlRendererEntry,\n  numberControlRendererEntry,\n  oneOfEnumControlRendererEntry,\n  oneOfRadioGroupControlRendererEntry,\n  passwordControlRendererEntry,\n  radioGroupControlRendererEntry,\n  sliderControlRendererEntry,\n  stringControlRendererEntry,\n  // stringMaskControlRendererEntry,\n  timeControlRendererEntry,\n];\nexport {\n  anyOfStringOrEnumControlRendererEntry,\n  booleanControlRendererEntry,\n  booleanToggleControlRendererEntry,\n  dateControlRendererEntry,\n  dateTimeControlRendererEntry,\n  enumControlRendererEntry,\n  integerControlRendererEntry,\n  multiStringControlRendererEntry,\n  numberControlRendererEntry,\n  oneOfEnumControlRendererEntry,\n  oneOfRadioGroupControlRendererEntry,\n  passwordControlRendererEntry,\n  radioGroupControlRendererEntry,\n  sliderControlRendererEntry,\n  stringControlRendererEntry,\n  // stringMaskControlRendererEntry,\n  timeControlRendererEntry,\n};","<template>\n  <control-wrapper\n    v-bind=\"controlWrapper\"\n    :styles=\"styles\"\n    :isFocused=\"isFocused\"\n    :appliedOptions=\"appliedOptions\"\n  >\n    <v-hover v-slot=\"{ isHovering }\">\n      <v-select\n        v-if=\"appliedOptions.autocomplete === false\"\n        v-disabled-icon-focus\n        :id=\"control.id + '-input'\"\n        :class=\"styles.control.input\"\n        :disabled=\"!control.enabled\"\n        :autofocus=\"appliedOptions.focus\"\n        :placeholder=\"appliedOptions.placeholder\"\n        :label=\"computedLabel\"\n        :hint=\"control.description\"\n        :persistent-hint=\"persistentHint()\"\n        :required=\"control.required\"\n        :error-messages=\"control.errors\"\n        :clearable=\"isHovering\"\n        :model-value=\"control.data\"\n        :items=\"control.options\"\n        :item-title=\"(item) => t(item.label, item.label)\"\n        item-value=\"value\"\n        v-bind=\"vuetifyProps('v-select')\"\n        @change=\"onChange\"\n        @focus=\"isFocused = true\"\n        @blur=\"handleBlur\"\n      />\n      <v-autocomplete\n        v-else\n        v-disabled-icon-focus\n        :id=\"control.id + '-input'\"\n        :class=\"styles.control.input\"\n        :disabled=\"!control.enabled\"\n        :autofocus=\"appliedOptions.focus\"\n        :placeholder=\"appliedOptions.placeholder\"\n        :label=\"computedLabel\"\n        :hint=\"control.description\"\n        :persistent-hint=\"persistentHint()\"\n        :required=\"control.required\"\n        :error-messages=\"control.errors\"\n        :clearable=\"isHovering\"\n        :model-value=\"control.data\"\n        :items=\"control.options\"\n        :item-title=\"(item) => t(item.label, item.label)\"\n        item-value=\"value\"\n        v-bind=\"vuetifyProps('v-autocomplete')\"\n        @update:model-value=\"onChange\"\n        @focus=\"isFocused = true\"\n        @blur=\"handleBlur\"\n      />\n    </v-hover>\n  </control-wrapper>\n</template>\n\n<script lang=\"ts\">\nimport {\n  ControlElement,\n  isEnumControl,\n  JsonFormsRendererRegistryEntry,\n  rankWith,\n} from '@jsonforms/core';\nimport {\n  rendererProps,\n  RendererProps,\n  useJsonFormsEnumControl,\n} from '@jsonforms/vue';\nimport { defineComponent } from 'vue';\nimport { VAutocomplete, VHover, VSelect } from 'vuetify/components';\nimport { default as ControlWrapper } from '../controls/ControlWrapper.vue';\nimport { DisabledIconFocus } from '../controls/directives';\nimport { useTranslator, useVuetifyControl } from '../util';\n\nconst controlRenderer = defineComponent({\n  name: 'autocomplete-enum-control-renderer',\n  components: {\n    ControlWrapper,\n    VSelect,\n    VAutocomplete,\n    VHover,\n  },\n  directives: {\n    DisabledIconFocus,\n  },\n  props: {\n    ...rendererProps<ControlElement>(),\n  },\n  setup(props: RendererProps<ControlElement>) {\n    const t = useTranslator();\n\n    const control = useVuetifyControl(\n      useJsonFormsEnumControl(props),\n      (value) => (value !== null ? value : undefined),\n      300\n    );\n    return { ...control, t };\n  },\n});\n\nexport default controlRenderer;\n\nexport const entry: JsonFormsRendererRegistryEntry = {\n  renderer: controlRenderer,\n  tester: rankWith(10, isEnumControl),\n};\n</script>\n","<template>\n  <control-wrapper\n    v-bind=\"controlWrapper\"\n    :styles=\"styles\"\n    :isFocused=\"isFocused\"\n    :appliedOptions=\"appliedOptions\"\n  >\n    <v-hover v-slot=\"{ isHovering }\">\n      <v-select\n        v-if=\"appliedOptions.autocomplete === false\"\n        v-disabled-icon-focus\n        :id=\"control.id + '-input'\"\n        :class=\"styles.control.input\"\n        :disabled=\"!control.enabled\"\n        :autofocus=\"appliedOptions.focus\"\n        :placeholder=\"appliedOptions.placeholder\"\n        :label=\"computedLabel\"\n        :hint=\"control.description\"\n        :persistent-hint=\"persistentHint()\"\n        :required=\"control.required\"\n        :error-messages=\"control.errors\"\n        :clearable=\"isHovering\"\n        :model-value=\"control.data\"\n        :items=\"control.options\"\n        :item-title=\"(item) => t(item.label, item.label)\"\n        item-value=\"value\"\n        v-bind=\"vuetifyProps('v-select')\"\n        @change=\"onChange\"\n        @focus=\"isFocused = true\"\n        @blur=\"handleBlur\"\n      />\n      <v-autocomplete\n        v-else\n        v-disabled-icon-focus\n        :id=\"control.id + '-input'\"\n        :class=\"styles.control.input\"\n        :disabled=\"!control.enabled\"\n        :autofocus=\"appliedOptions.focus\"\n        :placeholder=\"appliedOptions.placeholder\"\n        :label=\"computedLabel\"\n        :hint=\"control.description\"\n        :persistent-hint=\"persistentHint()\"\n        :required=\"control.required\"\n        :error-messages=\"control.errors\"\n        :clearable=\"isHovering\"\n        :model-value=\"control.data\"\n        :items=\"control.options\"\n        :item-title=\"(item) => t(item.label, item.label)\"\n        item-value=\"value\"\n        v-bind=\"vuetifyProps('v-autocomplete')\"\n        @update:model-value=\"onChange\"\n        @focus=\"isFocused = true\"\n        @blur=\"handleBlur\"\n      />\n    </v-hover>\n  </control-wrapper>\n</template>\n\n<script lang=\"ts\">\nimport {\n  ControlElement,\n  isEnumControl,\n  JsonFormsRendererRegistryEntry,\n  rankWith,\n} from '@jsonforms/core';\nimport {\n  rendererProps,\n  RendererProps,\n  useJsonFormsEnumControl,\n} from '@jsonforms/vue';\nimport { defineComponent } from 'vue';\nimport { VAutocomplete, VHover, VSelect } from 'vuetify/components';\nimport { default as ControlWrapper } from '../controls/ControlWrapper.vue';\nimport { DisabledIconFocus } from '../controls/directives';\nimport { useTranslator, useVuetifyControl } from '../util';\n\nconst controlRenderer = defineComponent({\n  name: 'autocomplete-enum-control-renderer',\n  components: {\n    ControlWrapper,\n    VSelect,\n    VAutocomplete,\n    VHover,\n  },\n  directives: {\n    DisabledIconFocus,\n  },\n  props: {\n    ...rendererProps<ControlElement>(),\n  },\n  setup(props: RendererProps<ControlElement>) {\n    const t = useTranslator();\n\n    const control = useVuetifyControl(\n      useJsonFormsEnumControl(props),\n      (value) => (value !== null ? value : undefined),\n      300\n    );\n    return { ...control, t };\n  },\n});\n\nexport default controlRenderer;\n\nexport const entry: JsonFormsRendererRegistryEntry = {\n  renderer: controlRenderer,\n  tester: rankWith(10, isEnumControl),\n};\n</script>\n","<template>\n  <control-wrapper\n    v-bind=\"controlWrapper\"\n    :styles=\"styles\"\n    :isFocused=\"isFocused\"\n    :appliedOptions=\"appliedOptions\"\n  >\n    <v-hover v-slot=\"{ isHovering }\">\n      <v-select\n        v-if=\"appliedOptions.autocomplete === false\"\n        v-disabled-icon-focus\n        :id=\"control.id + '-input'\"\n        :class=\"styles.control.input\"\n        :disabled=\"!control.enabled\"\n        :autofocus=\"appliedOptions.focus\"\n        :placeholder=\"appliedOptions.placeholder\"\n        :label=\"computedLabel\"\n        :hint=\"control.description\"\n        :persistent-hint=\"persistentHint()\"\n        :required=\"control.required\"\n        :error-messages=\"control.errors\"\n        :clearable=\"isHovering\"\n        :model-value=\"control.data\"\n        :items=\"control.options\"\n        :item-title=\"(item) => t(item.label, item.label)\"\n        item-value=\"value\"\n        v-bind=\"vuetifyProps('v-select')\"\n        @change=\"onChange\"\n        @focus=\"isFocused = true\"\n        @blur=\"handleBlur\"\n      />\n      <v-autocomplete\n        v-else\n        v-disabled-icon-focus\n        :id=\"control.id + '-input'\"\n        :class=\"styles.control.input\"\n        :disabled=\"!control.enabled\"\n        :autofocus=\"appliedOptions.focus\"\n        :placeholder=\"appliedOptions.placeholder\"\n        :label=\"computedLabel\"\n        :hint=\"control.description\"\n        :persistent-hint=\"persistentHint()\"\n        :required=\"control.required\"\n        :error-messages=\"control.errors\"\n        :clearable=\"isHovering\"\n        :model-value=\"control.data\"\n        :items=\"control.options\"\n        :item-title=\"(item) => t(item.label, item.label)\"\n        item-value=\"value\"\n        v-bind=\"vuetifyProps('v-autocomplete')\"\n        @update:model-value=\"onChange\"\n        @focus=\"isFocused = true\"\n        @blur=\"handleBlur\"\n      />\n    </v-hover>\n  </control-wrapper>\n</template>\n\n<script lang=\"ts\">\nimport {\n  ControlElement,\n  isOneOfEnumControl,\n  JsonFormsRendererRegistryEntry,\n  rankWith,\n} from '@jsonforms/core';\nimport {\n  rendererProps,\n  RendererProps,\n  useJsonFormsOneOfEnumControl,\n} from '@jsonforms/vue';\nimport { defineComponent } from 'vue';\nimport { VAutocomplete, VHover, VSelect } from 'vuetify/components';\nimport { default as ControlWrapper } from '../controls/ControlWrapper.vue';\nimport { DisabledIconFocus } from '../controls/directives';\nimport { useTranslator, useVuetifyControl } from '../util';\n\nconst controlRenderer = defineComponent({\n  name: 'autocomplete-oneof-enum-control-renderer',\n  components: {\n    ControlWrapper,\n    VSelect,\n    VAutocomplete,\n    VHover,\n  },\n  directives: {\n    DisabledIconFocus,\n  },\n  props: {\n    ...rendererProps<ControlElement>(),\n  },\n  setup(props: RendererProps<ControlElement>) {\n    const t = useTranslator();\n\n    const control = useVuetifyControl(\n      useJsonFormsOneOfEnumControl(props),\n      (value) => (value !== null ? value : undefined),\n      300\n    );\n    return { ...control, t };\n  },\n});\n\nexport default controlRenderer;\n\nexport const entry: JsonFormsRendererRegistryEntry = {\n  renderer: controlRenderer,\n  tester: rankWith(10, isOneOfEnumControl),\n};\n</script>\n","<template>\n  <control-wrapper\n    v-bind=\"controlWrapper\"\n    :styles=\"styles\"\n    :isFocused=\"isFocused\"\n    :appliedOptions=\"appliedOptions\"\n  >\n    <v-hover v-slot=\"{ isHovering }\">\n      <v-select\n        v-if=\"appliedOptions.autocomplete === false\"\n        v-disabled-icon-focus\n        :id=\"control.id + '-input'\"\n        :class=\"styles.control.input\"\n        :disabled=\"!control.enabled\"\n        :autofocus=\"appliedOptions.focus\"\n        :placeholder=\"appliedOptions.placeholder\"\n        :label=\"computedLabel\"\n        :hint=\"control.description\"\n        :persistent-hint=\"persistentHint()\"\n        :required=\"control.required\"\n        :error-messages=\"control.errors\"\n        :clearable=\"isHovering\"\n        :model-value=\"control.data\"\n        :items=\"control.options\"\n        :item-title=\"(item) => t(item.label, item.label)\"\n        item-value=\"value\"\n        v-bind=\"vuetifyProps('v-select')\"\n        @change=\"onChange\"\n        @focus=\"isFocused = true\"\n        @blur=\"handleBlur\"\n      />\n      <v-autocomplete\n        v-else\n        v-disabled-icon-focus\n        :id=\"control.id + '-input'\"\n        :class=\"styles.control.input\"\n        :disabled=\"!control.enabled\"\n        :autofocus=\"appliedOptions.focus\"\n        :placeholder=\"appliedOptions.placeholder\"\n        :label=\"computedLabel\"\n        :hint=\"control.description\"\n        :persistent-hint=\"persistentHint()\"\n        :required=\"control.required\"\n        :error-messages=\"control.errors\"\n        :clearable=\"isHovering\"\n        :model-value=\"control.data\"\n        :items=\"control.options\"\n        :item-title=\"(item) => t(item.label, item.label)\"\n        item-value=\"value\"\n        v-bind=\"vuetifyProps('v-autocomplete')\"\n        @update:model-value=\"onChange\"\n        @focus=\"isFocused = true\"\n        @blur=\"handleBlur\"\n      />\n    </v-hover>\n  </control-wrapper>\n</template>\n\n<script lang=\"ts\">\nimport {\n  ControlElement,\n  isOneOfEnumControl,\n  JsonFormsRendererRegistryEntry,\n  rankWith,\n} from '@jsonforms/core';\nimport {\n  rendererProps,\n  RendererProps,\n  useJsonFormsOneOfEnumControl,\n} from '@jsonforms/vue';\nimport { defineComponent } from 'vue';\nimport { VAutocomplete, VHover, VSelect } from 'vuetify/components';\nimport { default as ControlWrapper } from '../controls/ControlWrapper.vue';\nimport { DisabledIconFocus } from '../controls/directives';\nimport { useTranslator, useVuetifyControl } from '../util';\n\nconst controlRenderer = defineComponent({\n  name: 'autocomplete-oneof-enum-control-renderer',\n  components: {\n    ControlWrapper,\n    VSelect,\n    VAutocomplete,\n    VHover,\n  },\n  directives: {\n    DisabledIconFocus,\n  },\n  props: {\n    ...rendererProps<ControlElement>(),\n  },\n  setup(props: RendererProps<ControlElement>) {\n    const t = useTranslator();\n\n    const control = useVuetifyControl(\n      useJsonFormsOneOfEnumControl(props),\n      (value) => (value !== null ? value : undefined),\n      300\n    );\n    return { ...control, t };\n  },\n});\n\nexport default controlRenderer;\n\nexport const entry: JsonFormsRendererRegistryEntry = {\n  renderer: controlRenderer,\n  tester: rankWith(10, isOneOfEnumControl),\n};\n</script>\n","export { default as AutocompleteEnumControlRenderer } from './AutocompleteEnumControlRenderer.vue';\nexport { default as AutocompleteOneOfEnumControlRenderer } from './AutocompleteOneOfEnumControlRenderer.vue';\n\nimport { entry as autocompleteEnumControlRendererEntry } from './AutocompleteEnumControlRenderer.vue';\nimport { entry as autocompleteOneOfEnumControlRendererEntry } from './AutocompleteOneOfEnumControlRenderer.vue';\n\nexport const extendedRenderers = [\n  autocompleteEnumControlRendererEntry,\n  autocompleteOneOfEnumControlRendererEntry,\n];\n\nexport {\n  autocompleteEnumControlRendererEntry,\n  autocompleteOneOfEnumControlRendererEntry,\n}","import { additionalRenderers } from './additional';\nimport { arrayRenderers } from './array';\nimport { complexRenderers } from './complex';\nimport { controlRenderers } from './controls';\nimport { extendedRenderers } from './extended';\nimport { layoutRenderers } from './layouts';\n\nexport const vuetifyRenderers = [\n  ...additionalRenderers,\n  ...arrayRenderers,\n  ...complexRenderers,\n  ...controlRenderers,\n  ...layoutRenderers,\n];\n\nexport const extendedVuetifyRenderers = [\n  ...extendedRenderers,\n  ...vuetifyRenderers,\n];\n"],"names":["defaultStyles","control","root","input","verticalLayout","item","horizontalLayout","group","label","bare","alignLeft","arrayList","toolbar","validationIcon","addButton","noData","itemHeader","itemLabel","itemContent","itemMoveUp","itemMoveDown","itemDelete","listWithDetail","categorization","createEmptyStyles","useStyles","element","_element$options","_element$options2","userStyles","inject","options","styles","merge","classes","strings","_len","arguments","length","variables","Array","_key","reduce","acc","curr","index","concat","trim","mergeStyles","stylesA","stylesB","cloneDeep","mergeWith","aValue","bValue","undefined","useControlAppliedOptions","computed","value","config","uischema","useComputedLabel","appliedOptions","_appliedOptions$value","computeLabel","required","hideRequiredAsterisk","useVuetifyLabel","vuetifyProps","path","_appliedOptions$value2","props","get","vuetify","isPlainObject","_objectSpread","useVuetifyControl","adaptValue","v","debounceWait","touched","ref","changeEmitter","debounce","handleChange","onChange","isFocused","handleBlur","filteredErrors","enableFilterErrorsBeforeTouch","errors","persistentHint","_appliedOptions$value3","isDescriptionHidden","visible","description","showUnfocusedDescription","computedLabel","controlWrapper","_input$control$value","id","_appliedOptions$value4","overwrittenControl","rawErrors","rawChildErrors","childErrors","useTranslator","jsonforms","Error","i18n","translate","useVuetifyLayout","layout","_appliedOptions$value5","useVuetifyArrayControl","_appliedOptions$value6","childLabelForIndex","_input$control$value$","_input$control$value$2","childLabelProp","getFirstPrimitiveProp","schema","labelValue","Resolve","data","composePaths","Number","isNaN","filteredChildErrors","_appliedOptions$value7","filtered","useVuetifyBasicControl","_appliedOptions$value8","useAjv","_jsonforms$core","core","ajv","useNested","nestedInfo","level","provide","parentElement","createAjv","createAjvCore","addFormat","_","dayjs","extend","customParsing","utc","timezone","parseDateTime","format","dayjsData","isValid","i18nDefaultMessages","arraylayout","add","moveUp","moveDown","dialogTitle","dialogText","dialogConfirm","dialogCancel","labelRenderer","defineComponent","name","components","DispatchRenderer","VLabel","rendererProps","setup","useJsonFormsLabel","entry","renderer","tester","rankWith","uiTypeIs","_ctx","_openBlock","_createBlock","_component_v_label","_mergeProps","_createTextVNode","_toDisplayString","text","additionalRenderers","labelRendererEntry","VBadge","VTooltip","type","bordered","Boolean","color","String","inline","offsetX","offsetY","overlap","tooltipMessages","error","_iterator","_createForOfIteratorHelper","_step","s","n","done","e","errorObject","findIndex","schemaPath","message","push","instancePath","labels","createLabelDescriptionFrom","createControlElement","err","f","map","join","_hoisted_1","_createElementVNode","_createElementBlock","_component_v_tooltip","bottom","activator","_withCtx","_ref","_createVNode","_component_v_badge","badge","_renderSlot","$slots","_Fragment","_renderList","key","ValidationBadge","VIcon","_component_validation_badge","_component_v_icon","controlRenderer","VCard","VCardActions","VCardTitle","VCardText","VAvatar","VDialog","VRow","VCol","VToolbar","VToolbarTitle","VBtn","VSpacer","VExpansionPanels","VExpansionPanel","VExpansionPanelTitle","VExpansionPanelText","VContainer","ValidationIcon","useJsonFormsArrayControl","currentlyExpanded","initCollapsed","expansionPanelsProps","flat","focusable","suggestToDelete","t","addDisabled","enabled","restrict","arraySchema","maxItems","dataLength","foundUISchema","findUISchema","uischemas","scope","rootSchema","hideAvatar","translatedLabels","elementToDeleteText","translateLabel","replace","methods","createDefaultValue","addButtonClick","_this$control$data","addItem","collapseNewItems","moveUpClick","event","toMove","_this$moveUp","stopPropagation","call","moveDownClick","_this$moveDown","removeItemsClick","toDelete","_this$removeItems","removeItems","_this","filter","errorDataPath","getControlPath","startsWith","labelType","additionalContext","transformMessage","i18nKey","getI18nKey","context","translation","isObjectArrayWithNesting","_component_v_card","_normalizeClass","_component_v_card_title","_component_v_toolbar","_component_v_toolbar_title","hideArraySummaryValidation","_component_validation_icon","_component_v_spacer","addClass","addClick","_component_v_btn","fab","elevation","small","disabled","onClick","_component_v_card_text","_component_v_container","container","_component_v_row","justify","_component_v_expansion_panels","accordion","$event","_element","_component_v_expansion_panel","_component_v_expansion_panel_title","itemContainer","style","_normalizeStyle","showSortButtons","size","_component_v_col","_ref2","_ref3","_ref4","minItems","_withModifiers","_component_v_expansion_panel_text","_component_dispatch_renderer","renderers","cells","actions","_component_v_card_actions","onKeydown","_cache","_withKeys","layoutRenderer","VTabs","VTab","VWindow","VWindowItem","activeCategory","useJsonFormsLayout","visibleCategories","elements","category","isVisible","visibleCategoryLabels","_this2","_deriveLabelForUISche","deriveLabelForUISchemaElement","isSingleLevelCategorization","and","categorizationHasCategory","vertical","_component_v_tabs","_component_v_tab","_component_v_window","_component_v_window_item","isLayout","outlined","collapse","_this$$vuetify$displa","$vuetify","display","xs","sm","md","lg","xl","breakHorizontal","cols","_this$vuetifyProps","uiSchemaCols","layoutRendererEntry","VerticalLayoutRenderer","layoutRenderers","arrayLayoutRendererEntry","categorizationRendererEntry","groupRendererEntry","horizontalLayoutRendererEntry","verticalLayoutRendererEntry","arrayListRendererEntry","ArrayLayoutRenderer","schemaTypeIs","arrayRenderers","Object","combinatorKeyword","otherProps","omit","Generate","uiSchema","prototype","hasOwnProperty","isLayoutWithElements","DisabledIconFocus","updated","el","querySelectorAll","forEach","x","setAttribute","reuseAjvForSchema","removeSchema","VTextField","VHover","directives","reservedPropertyNames","keys","properties","additionalKeys","k","includes","toAdditionalPropertyType","propName","propValue","propSchema","propUiSchema","patternProperties","matchedPattern","find","pattern","RegExp","test","_typeof","additionalProperties","_Generate$jsonSchema$","jsonSchema","prop","_propSchema$title","title","startCase","encode","propertyName","additionalPropertyItems","additionalProperty","newPropertyName","propertyNameSchema","propertyNameValidator","propertyNames","matchPatternPropertiesKeys","allOf","compile","addPropertyDisabled","maxPropertiesReached","newPropertyErrors","maxProperties","removePropertyDisabled","minPropertiesReached","minProperties","messages","validate","ap","placeholder","additionalPropertiesTitle","_additionalProperties","addToLabel","deleteLabel","watch","handler","newData","hasChanges","newValue","deep","addProperty","_toConsumableArray","removeProperty","d","_component_v_hover","isHovering","_withDirectives","_component_v_text_field","clearable","CombinatorProperties","useJsonFormsAllOfControl","delegateUISchema","findMatchingUISchema","allOfRenderInfos","result","createCombinatorRenderInfos","info","isAllOfControl","_hoisted_2","_component_combinator_properties","allOfRenderInfo","allOfIndex","useJsonFormsAnyOfControl","selectedIndex","indexOfFittingSchema","anyOfRenderInfos","anyOf","isAnyOfControl","anyOfRenderInfo","anyOfIndex","DispatchCell","VTable","getValidColumnProps","scopedSchema","_this$control$schema$","_this$control$schema$2","resolveUiSchema","controlWithoutLabel","or","isObjectArrayControl","isPrimitiveArrayControl","_component_v_table","VCheckbox","useJsonFormsMultiEnumControl","dataHasEnum","toggle","_this$removeItem","removeItem","hasOneOfItems","oneOf","every","hasEnumItems","schemaMatches","hasType","isArray","items","uniqueItems","schemaSubPathMatches","fluid","o","_component_v_checkbox","indeterminate","AdditionalProperties","useJsonFormsControlWithDetail","nested","hasAdditionalProperties","isEmpty","isObject","showAdditionalProperties","_this$control$uischem","detailUiSchema","uiSchemaGenerator","isObjectControl","_component_additional_properties","VSelect","useJsonFormsOneOfControl","selectIndex","newSelectedIndex","dialog","indexedOneOfRenderInfos","handleSelectChange","$nextTick","setTimeout","$refs","confirm","$el","focus","newSelection","cancel","isOneOfControl","_component_v_select","autofocus","hint","itemTitle","onFocus","onBlur","_component_v_dialog","persistent","tabIndex","oneOfRenderInfos","handleTabChange","openNewTab","optionIs","oneOfRenderInfo","oneOfIndex","complexRenderers","allOfRendererEntry","anyOfRendererEntry","arrayControlRendererEntry","enumArrayRendererEntry","objectRendererEntry","oneOfRendererEntry","oneOfTabRendererEntry","ControlWrapper","VCombobox","useJsonFormsControl","findEnumSchema","schemas","findTextSchema","hasEnumAndText","enumSchema","stringSchema","remainingSchemas","wrongType","simpleAnyOf","_component_control_wrapper","_component_v_combobox","maxlength","maxLength","counter","target","checked","isBooleanControl","VSwitch","_component_v_switch","isDateControl","toISOString","inputDateTime","dataTime","substr","isDateTimeControl","useJsonFormsEnumControl","isEnumControl","NUMBER_REGEX_TEST","inputValue","unref","step","_options$step","allowUnsafeInteger","onInputChange","toNumberOrString","num","parseFloat","isFinite","isSafeInteger","isIntegerControl","VTextarea","isStringControl","isMultiLineControl","_component_v_textarea","inputStringIsInExponentForm","numberAsString","toExponential","toPrecision","numberIsInExponentForm","isNumberControl","useJsonFormsOneOfEnumControl","isOneOfEnumControl","VRadioGroup","VRadio","_component_v_radio_group","_component_v_radio","passwordVisible","formatIs","VSlider","isRangeControl","_component_v_slider","multipleOf","min","minimum","max","maximum","suggestions","suggestion","isString","appendSecondsIfNecessary","splitValue","split","isTimeControl","controlRenderers","anyOfStringOrEnumControlRendererEntry","booleanControlRendererEntry","booleanToggleControlRendererEntry","dateControlRendererEntry","dateTimeControlRendererEntry","enumControlRendererEntry","integerControlRendererEntry","multiStringControlRendererEntry","numberControlRendererEntry","oneOfEnumControlRendererEntry","oneOfRadioGroupControlRendererEntry","passwordControlRendererEntry","radioGroupControlRendererEntry","sliderControlRendererEntry","stringControlRendererEntry","timeControlRendererEntry","VAutocomplete","autocomplete","_component_v_autocomplete","extendedRenderers","autocompleteEnumControlRendererEntry","autocompleteOneOfEnumControlRendererEntry","vuetifyRenderers","extendedVuetifyRenderers"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEO,IAAMA,aAAa,GAAW;AACnCC,EAAAA,OAAO,EAAE;AACPC,IAAAA,IAAI,EAAE,SAAS;AACfC,IAAAA,KAAK,EAAE,OAAA;GACR;AACDC,EAAAA,cAAc,EAAE;AACdF,IAAAA,IAAI,EAAE,iBAAiB;AACvBG,IAAAA,IAAI,EAAE,sBAAA;GACP;AACDC,EAAAA,gBAAgB,EAAE;AAChBJ,IAAAA,IAAI,EAAE,mBAAmB;AACzBG,IAAAA,IAAI,EAAE,wBAAA;GACP;AACDE,EAAAA,KAAK,EAAE;AACLL,IAAAA,IAAI,EAAE,OAAO;AACbM,IAAAA,KAAK,EAAE,aAAa;AACpBH,IAAAA,IAAI,EAAE,YAAY;AAClBI,IAAAA,IAAI,EAAE,YAAY;AAClBC,IAAAA,SAAS,EAAE,kBAAA;GACZ;AACDC,EAAAA,SAAS,EAAE;AACTT,IAAAA,IAAI,EAAE,YAAY;AAClBU,IAAAA,OAAO,EAAE,oBAAoB;AAC7BC,IAAAA,cAAc,EAAE,uBAAuB;AACvCC,IAAAA,SAAS,EAAE,gBAAgB;AAC3BN,IAAAA,KAAK,EAAE,kBAAkB;AACzBO,IAAAA,MAAM,EAAE,oBAAoB;AAC5BV,IAAAA,IAAI,EAAE,iBAAiB;AACvBW,IAAAA,UAAU,EAAE,wBAAwB;AACpCC,IAAAA,SAAS,EAAE,uBAAuB;AAClCC,IAAAA,WAAW,EAAE,yBAAyB;AACtCC,IAAAA,UAAU,EAAE,yBAAyB;AACrCC,IAAAA,YAAY,EAAE,2BAA2B;AACzCC,IAAAA,UAAU,EAAE,wBAAA;GACb;AACDC,EAAAA,cAAc,EAAE;AACdpB,IAAAA,IAAI,EAAE,kBAAkB;AACxBU,IAAAA,OAAO,EAAE,0BAA0B;AACnCE,IAAAA,SAAS,EAAE,sBAAsB;AACjCN,IAAAA,KAAK,EAAE,wBAAwB;AAC/BO,IAAAA,MAAM,EAAE,0BAA0B;AAClCV,IAAAA,IAAI,EAAE,uBAAuB;AAC7BY,IAAAA,SAAS,EAAE,6BAA6B;AACxCC,IAAAA,WAAW,EAAE,+BAA+B;AAC5CC,IAAAA,UAAU,EAAE,+BAA+B;AAC3CC,IAAAA,YAAY,EAAE,iCAAiC;AAC/CC,IAAAA,UAAU,EAAE,8BAAA;GACb;AACDb,EAAAA,KAAK,EAAE;AACLN,IAAAA,IAAI,EAAE,eAAA;GACP;AACDqB,EAAAA,cAAc,EAAE;AACdrB,IAAAA,IAAI,EAAE,gBAAA;AACP,GAAA;;;AClDH,IAAMsB,iBAAiB,GAAG,SAApBA,iBAAiBA,GAAA;EAAA,OAAkB;IACvCvB,OAAO,EAAE,EAAE;IACXG,cAAc,EAAE,EAAE;IAClBE,gBAAgB,EAAE,EAAE;IACpBC,KAAK,EAAE,EAAE;IACTI,SAAS,EAAE,EAAE;IACbW,cAAc,EAAE,EAAE;IAClBd,KAAK,EAAE,EAAE;AACTe,IAAAA,cAAc,EAAE,EAAE;GACnB,CAAA;AAAA,CAAC,CAAA;IA4DWE,SAAS,GAAG,SAAZA,SAASA,CAAIC,OAAyB,EAAY;EAAA,IAAAC,gBAAA,EAAAC,iBAAA,CAAA;AAC7D,EAAA,IAAMC,UAAU,GAAGC,MAAM,CAAC,QAAQ,EAAE9B,aAAa,CAAC,CAAA;AAClD,EAAA,IAAI,EAAC0B,OAAO,KAAA,IAAA,IAAPA,OAAO,KAAA,KAAA,CAAA,IAAA,CAAAC,gBAAA,GAAPD,OAAO,CAAEK,OAAO,cAAAJ,gBAAA,KAAA,KAAA,CAAA,IAAhBA,gBAAA,CAAkBK,MAAM,CAAE,EAAA;AAC7B,IAAA,OAAOH,UAAU,CAAA;AAClB,GAAA;AACD,EAAA,IAAMG,MAAM,GAAGR,iBAAiB,EAAE,CAAA;AAClC,EAAA,IAAIK,UAAU,EAAE;AACdI,IAAAA,KAAK,CAACD,MAAM,EAAEH,UAAU,CAAC,CAAA;AAC1B,GAAA,MAAM;AACLI,IAAAA,KAAK,CAACD,MAAM,EAAEhC,aAAa,CAAC,CAAA;AAC7B,GAAA;AACD,EAAA,IAAI0B,OAAO,KAAA,IAAA,IAAPA,OAAO,KAAA,KAAA,CAAA,IAAA,CAAAE,iBAAA,GAAPF,OAAO,CAAEK,OAAO,cAAAH,iBAAA,KAAA,KAAA,CAAA,IAAhBA,iBAAA,CAAkBI,MAAM,EAAE;IAC5BC,KAAK,CAACD,MAAM,EAAEN,OAAO,CAACK,OAAO,CAACC,MAAM,CAAC,CAAA;AACtC,GAAA;AACD,EAAA,OAAOA,MAAM,CAAA;AACf;;ICrFaE,OAAO,GAAG,SAAVA,OAAOA,CAClBC,OAA6B,EAEnB;EAAA,KAAAC,IAAAA,IAAA,GAAAC,SAAA,CAAAC,MAAA,EADPC,SAAgB,OAAAC,KAAA,CAAAJ,IAAA,GAAAA,CAAAA,GAAAA,IAAA,WAAAK,IAAA,GAAA,CAAA,EAAAA,IAAA,GAAAL,IAAA,EAAAK,IAAA,EAAA,EAAA;AAAhBF,IAAAA,SAAgB,CAAAE,IAAA,GAAAJ,CAAAA,CAAAA,GAAAA,SAAA,CAAAI,IAAA,CAAA,CAAA;AAAA,GAAA;EAEnB,OAAON,OAAO,CACXO,MAAM,CAAC,UAACC,GAAG,EAAEC,IAAI,EAAEC,KAAK,EAAI;AAC3B,IAAA,OAAA,EAAA,CAAAC,MAAA,CAAUH,GAAG,CAAA,CAAAG,MAAA,CAAGF,IAAI,CAAAE,CAAAA,MAAA,CAAGP,SAAS,CAACM,KAAK,CAAC,IAAI,EAAE,CAAA,CAAA;AAC/C,GAAC,EAAE,EAAE,CAAC,CACLE,IAAI,EAAE,CAAA;AACX,EAAC;AAUM,IAAMC,WAAW,GAAG,SAAdA,WAAWA,CACtBC,OAAwB,EACxBC,OAAwB,EACL;AACnB,EAAA,IAAMlB,MAAM,GAAGmB,SAAS,CAACF,OAAO,CAAC,CAAA;EACjCG,SAAS,CAACpB,MAAM,EAAEkB,OAAO,EAAE,UAACG,MAAM,EAAEC,MAAM,EAAI;IAC5C,IAAI,OAAOD,MAAM,KAAK,QAAQ,IAAI,OAAOC,MAAM,KAAK,QAAQ,EAAE;AAC5D,MAAA,OAAA,EAAA,CAAAR,MAAA,CAAUO,MAAM,EAAAP,GAAAA,CAAAA,CAAAA,MAAA,CAAIQ,MAAM,CAAA,CAAA;AAC3B,KAAA;AACD,IAAA,OAAOC,SAAS,CAAA;AAClB,GAAC,CAAC,CAAA;AACF,EAAA,OAAOvB,MAAM,CAAA;AACf;;IClBawB,wBAAwB,GAAG,SAA3BA,wBAAwBA,CACnCrD,KAAQ,EACN;AACF,EAAA,OAAOsD,QAAQ,CAAC,YAAA;AAAA,IAAA,OACdxB,KAAK,CACH,EAAE,EACFkB,SAAS,CAAChD,KAAK,CAACF,OAAO,CAACyD,KAAK,CAACC,MAAM,CAAC,EACrCR,SAAS,CAAChD,KAAK,CAACF,OAAO,CAACyD,KAAK,CAACE,QAAQ,CAAC7B,OAAO,CAAC,CAChD,CAAA;GACF,CAAA,CAAA;AACH,EAAC;AAEM,IAAM8B,gBAAgB,GAAG,SAAnBA,gBAAgBA,CAC3B1D,KAAQ,EACR2D,cAAgC,EAC9B;EACF,OAAOL,QAAQ,CAAC,YAAa;AAAA,IAAA,IAAAM,qBAAA,CAAA;AAC3B,IAAA,OAAOC,YAAY,CACjB7D,KAAK,CAACF,OAAO,CAACyD,KAAK,CAAClD,KAAK,EACzBL,KAAK,CAACF,OAAO,CAACyD,KAAK,CAACO,QAAQ,EAC5B,CAAC,EAAAF,CAAAA,qBAAA,GAACD,cAAc,CAACJ,KAAK,MAAA,IAAA,IAAAK,qBAAA,KAAA,KAAA,CAAA,IAApBA,qBAAA,CAAsBG,oBAAoB,CAC7C,CAAA,CAAA;AACH,GAAC,CAAC,CAAA;AACJ,EAAC;IAKYC,eAAe,GAAG,SAAlBA,eAAeA,CAA8BhE,KAAQ,EAAI;EACpE,IAAM6B,MAAM,GAAGP,SAAS,CAACtB,KAAK,CAACK,KAAK,CAACkD,KAAK,CAACE,QAAQ,CAAC,CAAA;EACpD,IAAME,cAAc,GAAGL,QAAQ,CAAC,YAAA;AAAA,IAAA,OAC9BxB,KAAK,CACH,EAAE,EACFkB,SAAS,CAAChD,KAAK,CAACK,KAAK,CAACkD,KAAK,CAACC,MAAM,CAAC,EACnCR,SAAS,CAAChD,KAAK,CAACK,KAAK,CAACkD,KAAK,CAACE,QAAQ,CAAC7B,OAAO,CAAC,CAC9C,CAAA;GACF,CAAA,CAAA;AACD,EAAA,IAAMqC,YAAY,GAAG,SAAfA,YAAYA,CAAIC,IAAY,EAAI;AAAA,IAAA,IAAAC,sBAAA,CAAA;AACpC,IAAA,IAAMC,KAAK,GAAGC,GAAG,CAAAF,CAAAA,sBAAA,GAACR,cAAc,CAACJ,KAAK,MAAA,IAAA,IAAAY,sBAAA,KAApBA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,sBAAA,CAAsBG,OAAO,EAAEJ,IAAI,CAAC,CAAA;IAEtD,OAAOE,KAAK,IAAIG,aAAa,CAACH,KAAK,CAAC,GAAGA,KAAK,GAAG,EAAE,CAAA;GAClD,CAAA;AACD,EAAA,OAAAI,cAAA,CAAAA,cAAA,CAAA,EAAA,EACKxE,KAAK,CAAA,EAAA,EAAA,EAAA;AACR2D,IAAAA,cAAc,EAAdA,cAAc;AACdM,IAAAA,YAAY,EAAZA,YAAY;AACZpC,IAAAA,MAAM,EAANA,MAAAA;AAAM,GAAA,CAAA,CAAA;AAEV,EAAC;IAKY4C,iBAAiB,GAAG,SAApBA,iBAAiBA,CAG5BzE,KAAQ,EAGN;AAAA,EAAA,IAFF0E,UAAA,GAAAxC,SAAA,CAAAC,MAAA,GAAA,CAAA,IAAAD,SAAA,CAAA,CAAA,CAAA,KAAAkB,SAAA,GAAAlB,SAAA,CAAA,CAAA,CAAA,GAAmC,UAACyC,CAAC,EAAA;AAAA,IAAA,OAAKA,CAAC,CAAA;AAAA,GAAA,CAAA;EAAA,IAC3CC,YAAqB,GAAA1C,SAAA,CAAAC,MAAA,GAAAD,CAAAA,GAAAA,SAAA,MAAAkB,SAAA,CAAA;AAErB,EAAA,IAAMyB,OAAO,GAAGC,GAAG,CAAC,KAAK,CAAC,CAAA;AAC1B,EAAA,IAAMC,aAAa,GACjB,OAAOH,YAAY,KAAK,QAAQ,GAC5BI,QAAQ,CAAChF,KAAK,CAACiF,YAAY,EAAEL,YAAY,CAAC,GAC1C5E,KAAK,CAACiF,YAAY,CAAA;AAExB,EAAA,IAAMC,QAAQ,GAAG,SAAXA,QAAQA,CAAI3B,KAAU,EAAI;AAC9BwB,IAAAA,aAAa,CAAC/E,KAAK,CAACF,OAAO,CAACyD,KAAK,CAACW,IAAI,EAAEQ,UAAU,CAACnB,KAAK,CAAC,CAAC,CAAA;GAC3D,CAAA;AAED,EAAA,IAAMI,cAAc,GAAGN,wBAAwB,CAACrD,KAAK,CAAC,CAAA;AACtD,EAAA,IAAMmF,SAAS,GAAGL,GAAG,CAAC,KAAK,CAAC,CAAA;AAE5B,EAAA,IAAMM,UAAU,GAAG,SAAbA,UAAUA,GAAQ;IACtBP,OAAO,CAACtB,KAAK,GAAG,IAAI,CAAA;IACpB4B,SAAS,CAAC5B,KAAK,GAAG,KAAK,CAAA;GACxB,CAAA;AAED,EAAA,IAAM8B,cAAc,GAAG/B,QAAQ,CAAC,YAAK;IACnC,OAAQuB,OAAO,CAACtB,KAAK,IAAI,CAACvD,KAAK,CAACF,OAAO,CAACyD,KAAK,CAACC,MAAM,CAAC8B,6BAA6B,GAAGtF,KAAK,CAACF,OAAO,CAACyD,KAAK,CAACgC,MAAM,GAAG,EAAE,CAAA;AACtH,GAAC,CAAC,CAAA;AAEF,EAAA,IAAMC,cAAc,GAAG,SAAjBA,cAAcA,GAAiB;AAAA,IAAA,IAAAC,sBAAA,CAAA;AACnC,IAAA,OAAO,CAACC,mBAAmB,CACzB1F,KAAK,CAACF,OAAO,CAACyD,KAAK,CAACoC,OAAO,EAC3B3F,KAAK,CAACF,OAAO,CAACyD,KAAK,CAACqC,WAAW,EAC/BT,SAAS,CAAC5B,KAAK,EACf,CAAC,EAAA,CAAAkC,sBAAA,GAAC9B,cAAc,CAACJ,KAAK,cAAAkC,sBAAA,KAAA,KAAA,CAAA,IAApBA,sBAAA,CAAsBI,wBAAwB,CACjD,CAAA,CAAA;GACF,CAAA;AAED,EAAA,IAAMC,aAAa,GAAGpC,gBAAgB,CAAC1D,KAAK,EAAE2D,cAAc,CAAC,CAAA;AAE7D,EAAA,IAAMoC,cAAc,GAAGzC,QAAQ,CAAC,YAAK;AACnC,IAAA,IAAA0C,oBAAA,GACEhG,KAAK,CAACF,OAAO,CAACyD,KAAK;MADb0C,EAAE,GAAAD,oBAAA,CAAFC,EAAE;MAAEL,WAAW,GAAAI,oBAAA,CAAXJ,WAAW;MAAEL,MAAM,GAAAS,oBAAA,CAANT,MAAM;MAAElF,KAAK,GAAA2F,oBAAA,CAAL3F,KAAK;MAAEsF,OAAO,GAAAK,oBAAA,CAAPL,OAAO;MAAE7B,QAAQ,GAAAkC,oBAAA,CAARlC,QAAQ,CAAA;IAEzD,OAAO;AAAEmC,MAAAA,EAAE,EAAFA,EAAE;AAAEL,MAAAA,WAAW,EAAXA,WAAW;AAAEL,MAAAA,MAAM,EAANA,MAAM;AAAElF,MAAAA,KAAK,EAALA,KAAK;AAAEsF,MAAAA,OAAO,EAAPA,OAAO;AAAE7B,MAAAA,QAAQ,EAARA,QAAAA;KAAU,CAAA;AAC9D,GAAC,CAAC,CAAA;EAEF,IAAMjC,MAAM,GAAGP,SAAS,CAACtB,KAAK,CAACF,OAAO,CAACyD,KAAK,CAACE,QAAQ,CAAC,CAAA;AAEtD,EAAA,IAAMQ,YAAY,GAAG,SAAfA,YAAYA,CAAIC,IAAY,EAAI;AAAA,IAAA,IAAAgC,sBAAA,CAAA;AACpC,IAAA,IAAM9B,KAAK,GAAGC,GAAG,CAAA6B,CAAAA,sBAAA,GAACvC,cAAc,CAACJ,KAAK,MAAA,IAAA,IAAA2C,sBAAA,KAApBA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,sBAAA,CAAsB5B,OAAO,EAAEJ,IAAI,CAAC,CAAA;IAEtD,OAAOE,KAAK,IAAIG,aAAa,CAACH,KAAK,CAAC,GAAGA,KAAK,GAAG,EAAE,CAAA;GAClD,CAAA;AAED,EAAA,IAAM+B,kBAAkB,GAAG7C,QAAQ,CAAC,YAAK;IACzC,OAAAkB,cAAA,CAAAA,cAAA,CAAA,EAAA,EAAWxE,KAAK,CAACF,OAAO,CAACyD,KAAK,CAAA,EAAA,EAAA,EAAA;MAC5B8B,cAAc,EAAEA,cAAc,CAAC9B,KAAK;MAChCgC,MAAM,EAAEF,cAAc,CAAC9B,KAAK;AAC5B6C,MAAAA,SAAS,EAAEpG,KAAK,CAACF,OAAO,CAACyD,KAAK,CAACgC,MAAM;AACzCc,MAAAA,cAAc,EAAErG,KAAK,CAACF,OAAO,CAACyD,KAAK,CAAC+C,WAAAA;AAAW,KAAA,CAAA,CAAA;AAEjD,GAAC,CAAC,CAAA;EAEF,IAAMF,SAAS,GAAG9C,QAAQ,CAAC,YAAA;AAAA,IAAA,OAAMtD,KAAK,CAACF,OAAO,CAACyD,KAAK,CAACgC,MAAM,CAAA;GAAC,CAAA,CAAA;AAI5D,EAAA,OAAAf,cAAA,CAAAA,cAAA,CAAA,EAAA,EACKxE,KAAK,CAAA,EAAA,EAAA,EAAA;AACRF,IAAAA,OAAO,EAAEqG,kBAAkB;AAC3Bd,IAAAA,cAAc,EAAdA,cAAc;AACde,IAAAA,SAAS,EAATA,SAAS;AACTvE,IAAAA,MAAM,EAANA,MAAM;AACNsD,IAAAA,SAAS,EAATA,SAAS;AACTxB,IAAAA,cAAc,EAAdA,cAAc;AACdoC,IAAAA,cAAc,EAAdA,cAAc;AACdb,IAAAA,QAAQ,EAARA,QAAQ;AACRjB,IAAAA,YAAY,EAAZA,YAAY;AACZuB,IAAAA,cAAc,EAAdA,cAAc;AACdM,IAAAA,aAAa,EAAbA,aAAa;AACbjB,IAAAA,OAAO,EAAPA,OAAO;AACPO,IAAAA,UAAU,EAAVA,UAAAA;AAAU,GAAA,CAAA,CAAA;AAEd,EAAC;IAEYmB,aAAa,GAAG,SAAhBA,aAAaA,GAAQ;AAChC,EAAA,IAAMC,SAAS,GAAG7E,MAAM,CAAqB,WAAW,CAAC,CAAA;EAEzD,IAAI,CAAC6E,SAAS,EAAE;AACd,IAAA,MAAM,IAAIC,KAAK,CACb,6DAA6D,CAC9D,CAAA;AACF,GAAA;EAED,IAAI,CAACD,SAAS,CAACE,IAAI,IAAI,CAACF,SAAS,CAACE,IAAI,CAACC,SAAS,EAAE;AAChD,IAAA,MAAM,IAAIF,KAAK,CACb,kEAAkE,CACnE,CAAA;AACF,GAAA;AAED,EAAA,IAAME,SAAS,GAAGrD,QAAQ,CAAC,YAAK;AAE9B,IAAA,OAAOkD,SAAS,CAACE,IAAK,CAACC,SAAU,CAAA;AACnC,GAAC,CAAC,CAAA;AAEF,EAAA,OAAOA,SAAS,CAAA;AAClB,EAAC;IAKYC,gBAAgB,GAAG,SAAnBA,gBAAgBA,CAA+B5G,KAAQ,EAAI;AACtE,EAAA,IAAM2D,cAAc,GAAGL,QAAQ,CAAC,YAAK;AACnC,IAAA,OAAOxB,KAAK,CACV,EAAE,EACFkB,SAAS,CAAChD,KAAK,CAAC6G,MAAM,CAACtD,KAAK,CAACC,MAAM,CAAC,EACpCR,SAAS,CAAChD,KAAK,CAAC6G,MAAM,CAACtD,KAAK,CAACE,QAAQ,CAAC7B,OAAO,CAAC,CAC/C,CAAA;AACH,GAAC,CAAC,CAAA;AAEF,EAAA,IAAMqC,YAAY,GAAG,SAAfA,YAAYA,CAAIC,IAAY,EAAI;AAAA,IAAA,IAAA4C,sBAAA,CAAA;AACpC,IAAA,IAAM1C,KAAK,GAAGC,GAAG,CAAAyC,CAAAA,sBAAA,GAACnD,cAAc,CAACJ,KAAK,MAAA,IAAA,IAAAuD,sBAAA,KAApBA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,sBAAA,CAAsBxC,OAAO,EAAEJ,IAAI,CAAC,CAAA;IAEtD,OAAOE,KAAK,IAAIG,aAAa,CAACH,KAAK,CAAC,GAAGA,KAAK,GAAG,EAAE,CAAA;GAClD,CAAA;AAED,EAAA,OAAAI,cAAA,CAAAA,cAAA,CAAA,EAAA,EACKxE,KAAK,CAAA,EAAA,EAAA,EAAA;IACR6B,MAAM,EAAEP,SAAS,CAACtB,KAAK,CAAC6G,MAAM,CAACtD,KAAK,CAACE,QAAQ,CAAC;AAC9CE,IAAAA,cAAc,EAAdA,cAAc;AACdM,IAAAA,YAAY,EAAZA,YAAAA;AAAY,GAAA,CAAA,CAAA;AAEhB,EAAC;IAKY8C,sBAAsB,GAAG,SAAzBA,sBAAsBA,CACjC/G,KAAQ,EACN;AACF,EAAA,IAAM2D,cAAc,GAAGN,wBAAwB,CAACrD,KAAK,CAAC,CAAA;AAEtD,EAAA,IAAM8F,aAAa,GAAGpC,gBAAgB,CAAC1D,KAAK,EAAE2D,cAAc,CAAC,CAAA;AAE7D,EAAA,IAAMM,YAAY,GAAG,SAAfA,YAAYA,CAAIC,IAAY,EAAI;AAAA,IAAA,IAAA8C,sBAAA,CAAA;AACpC,IAAA,IAAM5C,KAAK,GAAGC,GAAG,CAAA2C,CAAAA,sBAAA,GAACrD,cAAc,CAACJ,KAAK,MAAA,IAAA,IAAAyD,sBAAA,KAApBA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,sBAAA,CAAsB1C,OAAO,EAAEJ,IAAI,CAAC,CAAA;IAEtD,OAAOE,KAAK,IAAIG,aAAa,CAACH,KAAK,CAAC,GAAGA,KAAK,GAAG,EAAE,CAAA;GAClD,CAAA;AAED,EAAA,IAAM6C,kBAAkB,GAAG,SAArBA,kBAAkBA,CAAIvE,KAAoB,EAAI;IAAA,IAAAwE,qBAAA,EAAAC,sBAAA,CAAA;IAClD,IAAIzE,KAAK,KAAK,IAAI,EAAE;AAClB,MAAA,OAAO,EAAE,CAAA;AACV,KAAA;AACD,IAAA,IAAM0E,cAAc,GAAA,CAAAF,qBAAA,GAAA,CAAAC,sBAAA,GAClBnH,KAAK,CAACF,OAAO,CAACyD,KAAK,CAACE,QAAQ,CAAC7B,OAAO,MAAAuF,IAAAA,IAAAA,sBAAA,KAApCA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,sBAAA,CAAsCC,cAAc,MAAA,IAAA,IAAAF,qBAAA,KAAA,KAAA,CAAA,GAAAA,qBAAA,GACpDG,qBAAqB,CAACrH,KAAK,CAACF,OAAO,CAACyD,KAAK,CAAC+D,MAAM,CAAC,CAAA;IACnD,IAAI,CAACF,cAAc,EAAE;MACnB,OAAAzE,EAAAA,CAAAA,MAAA,CAAUD,KAAK,CAAA,CAAA;AAChB,KAAA;IACD,IAAM6E,UAAU,GAAGC,OAAO,CAACC,IAAI,CAC7BzH,KAAK,CAACF,OAAO,CAACyD,KAAK,CAACkE,IAAI,EACxBC,YAAY,CAAA/E,EAAAA,CAAAA,MAAA,CAAID,KAAK,CAAA,EAAI0E,cAAc,CAAC,CACzC,CAAA;AACD,IAAA,IACEG,UAAU,KAAKnE,SAAS,IACxBmE,UAAU,KAAK,IAAI,IACnBI,MAAM,CAACC,KAAK,CAACL,UAAU,CAAC,EACxB;AACA,MAAA,OAAO,EAAE,CAAA;AACV,KAAA;IACD,OAAA5E,EAAAA,CAAAA,MAAA,CAAU4E,UAAU,CAAA,CAAA;GACrB,CAAA;AACD,EAAA,IAAMM,mBAAmB,GAAGvE,QAAQ,CAAC,YAAK;AAAA,IAAA,IAAAwE,sBAAA,CAAA;IAGxC,IAAMC,QAAQ,GAAkB,CAAAD,sBAAA,GAAAnE,cAAc,CAACJ,KAAK,MAAA,IAAA,IAAAuE,sBAAA,KAAA,KAAA,CAAA,IAApBA,sBAAA,CAAsBxC,6BAA6B,GAAG,EAAE,GAAGtF,KAAK,CAACF,OAAO,CAACyD,KAAK,CAAC+C,WAAW,CAAA;AAC1H,IAAA,OAAOyB,QAAQ,CAAA;AACjB,GAAC,CAAC,CAAA;AACF,EAAA,IAAM5B,kBAAkB,GAAG7C,QAAQ,CAAC,YAAK;IACvC,OAAAkB,cAAA,CAAAA,cAAA,CAAA,EAAA,EAAWxE,KAAK,CAACF,OAAO,CAACyD,KAAK,CAAA,EAAA,EAAA,EAAA;MAC5B+C,WAAW,EAAEuB,mBAAmB,CAACtE,KAAK;AACtC8C,MAAAA,cAAc,EAAErG,KAAK,CAACF,OAAO,CAACyD,KAAK,CAAC+C,WAAAA;AAAW,KAAA,CAAA,CAAA;AAEnD,GAAC,CAAC,CAAA;AACF,EAAA,OAAA9B,cAAA,CAAAA,cAAA,CAAA,EAAA,EACKxE,KAAK,CAAA,EAAA,EAAA,EAAA;AACRF,IAAAA,OAAO,EAAEqG,kBAAkB;IAC3BtE,MAAM,EAAEP,SAAS,CAACtB,KAAK,CAACF,OAAO,CAACyD,KAAK,CAACE,QAAQ,CAAC;AAC/CE,IAAAA,cAAc,EAAdA,cAAc;AACdsD,IAAAA,kBAAkB,EAAlBA,kBAAkB;AAClBnB,IAAAA,aAAa,EAAbA,aAAa;AACb7B,IAAAA,YAAY,EAAZA,YAAAA;AAAY,GAAA,CAAA,CAAA;AAEhB,EAAC;IAKY+D,sBAAsB,GAAG,SAAzBA,sBAAsBA,CACjChI,KAAQ,EACN;AACF,EAAA,IAAM2D,cAAc,GAAGN,wBAAwB,CAACrD,KAAK,CAAC,CAAA;AAEtD,EAAA,IAAMiE,YAAY,GAAG,SAAfA,YAAYA,CAAIC,IAAY,EAAI;AAAA,IAAA,IAAA+D,sBAAA,CAAA;AACpC,IAAA,IAAM7D,KAAK,GAAGC,GAAG,CAAA4D,CAAAA,sBAAA,GAACtE,cAAc,CAACJ,KAAK,MAAA,IAAA,IAAA0E,sBAAA,KAApBA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,sBAAA,CAAsB3D,OAAO,EAAEJ,IAAI,CAAC,CAAA;IAEtD,OAAOE,KAAK,IAAIG,aAAa,CAACH,KAAK,CAAC,GAAGA,KAAK,GAAG,EAAE,CAAA;GAClD,CAAA;AAED,EAAA,OAAAI,cAAA,CAAAA,cAAA,CAAA,EAAA,EACKxE,KAAK,CAAA,EAAA,EAAA,EAAA;IACR6B,MAAM,EAAEP,SAAS,CAACtB,KAAK,CAACF,OAAO,CAACyD,KAAK,CAACE,QAAQ,CAAC;AAC/CE,IAAAA,cAAc,EAAdA,cAAc;AACdM,IAAAA,YAAY,EAAZA,YAAAA;AAAY,GAAA,CAAA,CAAA;AAEhB,EAAC;IAKYiE,MAAM,GAAG,SAATA,MAAMA,GAAQ;AAAA,EAAA,IAAAC,eAAA,CAAA;AACzB,EAAA,IAAM3B,SAAS,GAAG7E,MAAM,CAAqB,WAAW,CAAC,CAAA;EAEzD,IAAI,CAAC6E,SAAS,EAAE;AACd,IAAA,MAAM,IAAIC,KAAK,CACb,8DAA8D,CAC/D,CAAA;AACF,GAAA;EAGD,OAAA0B,CAAAA,eAAA,GAAO3B,SAAS,CAAC4B,IAAI,cAAAD,eAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAdA,eAAA,CAAgBE,GAAU,CAAA;AACnC,EAAC;IAMYC,SAAS,GAAG,SAAZA,SAASA,CAAI/G,OAAmC,EAAgB;AAC3E,EAAA,IAAMgH,UAAU,GAAG5G,MAAM,CAAa,sBAAsB,EAAE;AAAE6G,IAAAA,KAAK,EAAE,CAAA;AAAG,GAAA,CAAC,CAAA;AAC3E,EAAA,IAAIjH,OAAO,EAAE;IACXkH,OAAO,CAAC,sBAAsB,EAAE;AAC9BD,MAAAA,KAAK,EAAED,UAAU,CAACC,KAAK,GAAG,CAAC;AAC3BE,MAAAA,aAAa,EAAEnH,OAAAA;AAChB,KAAA,CAAC,CAAA;AACH,GAAA;AACD,EAAA,OAAOgH,UAAU,CAAA;AACnB;;ICzTaI,SAAS,GAAG,SAAZA,SAASA,CAAI/G,OAAiB,EAAS;AAClD,EAAA,IAAMyG,GAAG,GAAGO,WAAa,CAAChH,OAAO,CAAC,CAAA;AAClCyG,EAAAA,GAAG,CAACQ,SAAS,CAAC,UAAU,EAAE,UAACC,CAAC,EAAA;AAAA,IAAA,OAAK,IAAI,CAAA;GAAC,CAAA,CAAA;AACtC,EAAA,OAAOT,GAAG,CAAA;AACZ;;ACFAU,KAAK,CAACC,MAAM,CAACC,aAAa,CAAC,CAAA;AAC3BF,KAAK,CAACC,MAAM,CAACE,GAAG,CAAC,CAAA;AACjBH,KAAK,CAACC,MAAM,CAACG,QAAQ,CAAC,CAAA;AAEf,IAAMC,aAAa,GAAG,SAAhBA,aAAaA,CACxB3B,IAA+B,EAC/B4B,MAAqC,EACf;EACtB,IAAI,CAAC5B,IAAI,EAAE;AACT,IAAA,OAAO,IAAI,CAAA;AACZ,GAAA;AACD,EAAA,IAAM6B,SAAS,GAAGP,KAAK,CAACtB,IAAI,EAAE4B,MAAM,CAAC,CAAA;AACrC,EAAA,IAAI,CAACC,SAAS,CAACC,OAAO,EAAE,EAAE;AACxB,IAAA,OAAO,IAAI,CAAA;AACZ,GAAA;AACD,EAAA,OAAOD,SAAS,CAAA;AAClB;;ACtBO,IAAME,mBAAmB,GAAG;AACjCC,EAAAA,WAAW,EAAE;AACXC,IAAAA,GAAG,EAAE,KAAK;AACV,IAAA,QAAA,EAAQ,QAAQ;AAChBC,IAAAA,MAAM,EAAE,SAAS;AACjBC,IAAAA,QAAQ,EAAE,WAAW;AACrBC,IAAAA,WAAW,EAAE,uBAAuB;AACpCC,IAAAA,UAAU,EAAE,8BAA8B;AAC1CC,IAAAA,aAAa,EAAE,QAAQ;AACvBC,IAAAA,YAAY,EAAE,QAAA;AACf,GAAA;;;ACiBGC,IAAAA,aAAc,GAAEC,eAAe,CAAC;AACpCC,EAAAA,IAAI,EAAE,gBAAgB;AACtBC,EAAAA,UAAU,EAAE;AACVC,IAAAA,gBAAgB,EAAhBA,gBAAgB;AAChBC,IAAAA,MAAM,EAANA,MAAAA;GACD;AACDlG,EAAAA,KAAK,EAAAI,cAAA,CAAA,EAAA,EACA+F,aAAa,EAAgB,CACjC;EACDC,KAAK,EAAA,SAAAA,KAACpG,CAAAA,KAAkC,EAAA;AACtC,IAAA,OAAOJ,eAAe,CAACyG,iBAAiB,CAACrG,KAAK,CAAC,CAAC,CAAA;AAClD,GAAA;AACD,CAAA,EAAC;AAIK,IAAMsG,OAAK,GAAmC;AACnDC,EAAAA,QAAQ,EAAEV,aAAa;EACvBW,MAAM,EAAEC,QAAQ,CAAC,CAAC,EAAEC,QAAQ,CAAC,OAAO,CAAC,CAAA;;;;;AC3C7B,EAAA,OAAAC,IAAA,CAAA1K,KAAK,CAACsF,OAAO,IADrBqF,SAAA,EAAA,EAAAC,WAAA,CAMSC,oBANTC,UAMS,CAAA;;AAJN,IAAA,OAAA,EAAOJ,IAAA,CAAAlJ,MAAM,CAACxB,KAAK,CAACN,IAAAA;KACbgL,IAAY,CAAA9G,YAAA,CAAA,SAAA,CAAA,CAAA,EAAA;uBAEpB,YAAA;AAAA,MAAA,OAAe,CAAZmH,eAAA,CAAAC,eAAA,CAAAN,IAAA,CAAA1K,KAAK,CAACiL,IAAG,CAAA,EAAA,CAAA,CAAA;;;;;;;;ACAT,IAAMC,mBAAmB,GAAG,CACjCC,OAAAA;AACA;;ACmCF,eAAetB,eAAe,CAAC;AAC7BC,EAAAA,IAAI,EAAE,kBAAkB;AACxBC,EAAAA,UAAU,EAAE;AACVqB,IAAAA,MAAM,EAANA,MAAM;AACNC,IAAAA,QAAQ,EAARA,QAAAA;GACD;AACDtH,EAAAA,KAAK,EAAE;AACLmB,IAAAA,MAAM,EAAE;AACNzB,MAAAA,QAAQ,EAAE,IAAI;AACd6H,MAAAA,IAAI,EAAEtJ,KAAAA;KACP;AACDuJ,IAAAA,QAAQ,EAAE;AACRD,MAAAA,IAAI,EAAEE,OAAO;MACb,SAAS,EAAA,KAAA;KACV;AACDC,IAAAA,KAAK,EAAE;AACLH,MAAAA,IAAI,EAAEI,MAAM;MACZ,SAAS,EAAA,OAAA;KACV;AACDC,IAAAA,MAAM,EAAE;AACNL,MAAAA,IAAI,EAAEE,OAAO;MACb,SAAS,EAAA,KAAA;KACV;AACDI,IAAAA,OAAO,EAAE;AACPN,MAAAA,IAAI,EAAE,CAAChE,MAAM,EAAEoE,MAAM,CAAC;MACtB,SAAS3I,EAAAA,SAAAA;KACV;AACD8I,IAAAA,OAAO,EAAE;AACPP,MAAAA,IAAI,EAAE,CAAChE,MAAM,EAAEoE,MAAM,CAAC;MACtB,SAAS3I,EAAAA,SAAAA;KACV;AACD+I,IAAAA,OAAO,EAAE;AACPR,MAAAA,IAAI,EAAEE,OAAO;MACb,SAAS,EAAA,KAAA;AACV,KAAA;GACF;AACDvI,EAAAA,QAAQ,EAAE;IACR8I,eAAe,EAAA,SAAAA,kBAAA;MACb,IAAMC,KAAK,GAKL,EAAE,CAAA;AAAA,MAAA,IAAAC,SAAA,GAAAC,0BAAA,CAEQ,IAAI,CAAChH,MAAM,CAAA;QAAAiH,KAAA,CAAA;AAAA,MAAA,IAAA;QAA3B,KAAAF,SAAA,CAAAG,CAAA,EAAAD,EAAAA,CAAAA,CAAAA,KAAA,GAAAF,SAAA,CAAAI,CAAA,EAAAC,EAAAA,IAAA,GAA6B;AAAA,UAAA,IAAlBC,CAAA,GAAAJ,KAAA,CAAAjJ,KAAA,CAAA;UACT,IAAMsJ,WAAY,GAAED,CAAgB,CAAA;AACpC,UAAA,IAAMlK,KAAM,GAAEoK,SAAS,CAACT,KAAK,EAAE;YAAEU,UAAU,EAAEF,WAAW,CAACE,UAAAA;AAAS,WAAG,CAAC,CAAA;UACtE,IAAIF,WAAW,CAACG,OAAO,EAAE;AACvB,YAAA,IAAItK,KAAI,IAAK,CAAC,CAAC,EAAE;cACf2J,KAAK,CAACY,IAAI,CAAC;gBACTF,UAAU,EAAEF,WAAW,CAACE,UAAU;gBAClCG,YAAY,EAAEL,WAAW,CAACK,YAAY;AACtCC,gBAAAA,MAAM,EAAE,CACNC,0BAA0B,CACxBC,oBAAoB,CAACR,WAAW,CAACK,YAAY,CAAC,EAC9CL,WAAW,CAACvF,MAAmB,CAChC,CAACgE,IAAI,CACP;gBACD0B,OAAO,EAAEH,WAAW,CAACG,OAAAA;AACtB,eAAA,CAAC,CAAA;AACF,aAAA,MAAK;cACLX,KAAK,CAAC3J,KAAK,CAAC,CAACyK,MAAM,CAACF,IAAI,CACtBG,0BAA0B,CACxBC,oBAAoB,CAACR,WAAW,CAACK,YAAY,CAAC,EAC9CL,WAAW,CAACvF,MAAmB,CAChC,CAACgE,IAAG,CACN,CAAA;AACH,aAAA;AACF,WAAA;AACF,SAAA;AAAA,OAAA,CAAA,OAAAgC,GAAA,EAAA;QAAAhB,SAAA,CAAAM,CAAA,CAAAU,GAAA,CAAA,CAAA;AAAA,OAAA,SAAA;AAAAhB,QAAAA,SAAA,CAAAiB,CAAA,EAAA,CAAA;AAAA,OAAA;AAEA,MAAA,OAAOlB,KAAK,CAACmB,GAAG,CAAC,UAAC7I,CAAC,EAAA;AAAA,QAAA,OAAKA,CAAC,CAACwI,MAAM,CAACM,IAAI,CAAC,GAAG,CAAA,GAAI,IAAK,GAAE9I,CAAC,CAACqI,OAAO,CAAA;OAAC,CAAA,CAAA;AAChE,KAAA;AACD,GAAA;AACF,CAAA,CAAC;;ACnGI,IAAAU,YAAA,GAAAC,kBAAA,CAAuB,WAApB,mBAAiB,EAAA,CAAA,CAAA,CAAA,CAAA;;;;sBAlBxBC,kBA4BK,CAAA,KAAA,EAAA,IAAA,EAAA,CA3BqB7C,IAAA,CAAAxF,MAAM,CAACpD,MAAO,GAAA,CAAA,iBAAtC8I,WAyBW,CAAA4C,oBAAA,EAAA;;AAzBAC,IAAAA,MAAK,EAAL,EAAA;;AACQC,IAAAA,SAAS,EAAAC,OAAA,CACxB,UAAAC,IAAA,EAAA;AAAA,MAAA,IAD4B7J,KAAI,GAAA6J,IAAA,CAAJ7J,KAAI,CAAA;AAAA,MAAA,OAAA,CAChC8J,WAYS,CAAAC,kBAAA,EAAA;QAXNrC,KAAK,EAAEf,IAAK,CAAAe,KAAA;QACZF,QAAQ,EAAEb,IAAQ,CAAAa,QAAA;QAClBI,MAAM,EAAEjB,IAAM,CAAAiB,MAAA;QACdC,OAAO,EAAElB,IAAO,CAAAkB,OAAA;QAChBC,OAAO,EAAEnB,IAAO,CAAAmB,OAAA;QAChBC,OAAO,EAAEpB,IAAO,CAAAoB,OAAAA;;QAEAiC,KAAK,UACpB,YAAA;AAAA,UAAA,OAAkB,CAAfhD,eAAA,CAAAC,eAAA,CAAAN,IAAA,CAAAxF,MAAM,CAACpD;;2BAEZ,YAAA;UAAA,OAAsC,CAAtCwL,kBAAA,CAAsC,yCAAzBvJ,KAAK,CAAA,CAAA,EAAA,CAAEiK,UAAa,CAAAtD,IAAA,CAAAuD,MAAA,EAAA,SAAA,CAAA;;;;;uBAIrC,YAAA;MAAA,OAAuB,CAAvBZ,YAAuB,GACvB1C,SAAA,CAAA,IAAA,CAAA,EAAA4C,kBAAA,CAMGW,QAL0B,EAAA,IAAA,EAAAC,UAAA,CAAAzD,IAAA,CAAAqB,eAAe,EAAlC,UAAAY,OAAO,EAAEtK,KAAK,EAAA;4BADxBkL,kBAMG,CAAA,GAAA,EAAA;AAJAa,UAAAA,GAAG,EAAA9L,EAAAA,CAAAA,MAAA,CAAKD,KAAK,CAAA;UACd,OAAM,EAAA,MAAA;2BAEHsK;;;;QAGPqB,UAAmB,CAAAtD,IAAA,CAAAuD,MAAA,EAAA,SAAA,EAAA;AAAAG,IAAAA,GAAA,EAAA,CAAA;GAAA,CAAA;;;;;AChBvB,eAAevE,eAAe,CAAC;AAC7BC,EAAAA,IAAI,EAAE,iBAAiB;AACvBC,EAAAA,UAAU,EAAE;AACVsE,IAAAA,eAAe,EAAfA,QAAe;AACfC,IAAAA,KAAK,EAALA,KAAAA;GACD;AACDvK,EAAAA,KAAK,EAAE;AACLmB,IAAAA,MAAM,EAAE;AACNzB,MAAAA,QAAQ,EAAE,IAAI;AACd6H,MAAAA,IAAI,EAAEtJ,KAAAA;AACP,KAAA;AACF,GAAA;AACF,CAAA,CAAC;;;;;SCvBwB0I,IAAK,CAAAxF,MAAA,IAAKwF,IAAM,CAAAxF,MAAA,CAACpD,MAAO,GAAA,CAAA,iBAAhD8I,WAEkB,CAAA2D,2BAAA,EAAA;;IAFoCrJ,MAAM,EAAEwF,IAAM,CAAAxF,MAAAA;;uBAClE,YAAA;AAAA,MAAA,OAAsD,CAAtD2I,WAAsD,CAAAW,iBAAA,EAAA;AAA9C/C,QAAAA,KAAK,EAAC,OAAA;AAAO,OAAA,EAAA;2BAAC,YAAA;AAAA,UAAA,OAAwB,iBAAxB,0BAAwB,CAAA;;;;;;;;;;;AC2S5CgD,IAAAA,iBAAc,GAAI5E,eAAe,CAAC;AACtCC,EAAAA,IAAI,EAAE,uBAAuB;AAC7BC,EAAAA,UAAU,EAAE;AACVC,IAAAA,gBAAgB,EAAhBA,gBAAgB;AAChB0E,IAAAA,KAAK,EAALA,KAAK;AACLC,IAAAA,YAAY,EAAZA,YAAY;AACZC,IAAAA,UAAU,EAAVA,UAAU;AACVC,IAAAA,SAAS,EAATA,SAAS;AACTC,IAAAA,OAAO,EAAPA,OAAO;AACPC,IAAAA,OAAO,EAAPA,OAAO;AACPC,IAAAA,IAAI,EAAJA,IAAI;AACJC,IAAAA,IAAI,EAAJA,IAAI;AACJC,IAAAA,QAAQ,EAARA,QAAQ;AACRC,IAAAA,aAAa,EAAbA,aAAa;AACb9D,IAAAA,QAAQ,EAARA,QAAQ;AACRiD,IAAAA,KAAK,EAALA,KAAK;AACLc,IAAAA,IAAI,EAAJA,IAAI;AACJC,IAAAA,OAAO,EAAPA,OAAO;AACPC,IAAAA,gBAAgB,EAAhBA,gBAAgB;AAChBC,IAAAA,eAAe,EAAfA,eAAe;AACfC,IAAAA,oBAAoB,EAApBA,oBAAoB;AACpBC,IAAAA,mBAAmB,EAAnBA,mBAAmB;AACnBC,IAAAA,UAAU,EAAVA,UAAU;AACVC,IAAAA,cAAc,EAAdA,QAAc;AACdtB,IAAAA,eAAe,EAAfA,QAAAA;GACD;AACDtK,EAAAA,KAAK,EAAAI,cAAA,CAAA,EAAA,EACA+F,aAAa,EAAkB,CACnC;EACDC,KAAK,EAAA,SAAAA,KAACpG,CAAAA,KAAoC,EAAA;IACxC,IAAMtE,OAAQ,GAAEiH,sBAAsB,CAACkJ,wBAAwB,CAAC7L,KAAK,CAAC,CAAC,CAAA;AACvE,IAAA,IAAM8L,oBAAoBpL,GAAG,CAC3BhF,OAAO,CAAC6D,cAAc,CAACJ,KAAK,CAAC4M,aAAY,GAAI,IAAG,GAAI,CAAA,CACrD,CAAA;IACD,IAAMC,oBAAqB,GAAE9M,QAAQ,CAAC,YAAA;AAAA,MAAA,OACpCxB,KAAK,CACH;AAAEuO,QAAAA,IAAI,EAAE,KAAK;AAAEC,QAAAA,SAAS,EAAE,IAAA;AAAM,OAAA,EAChCxQ,OAAO,CAACmE,YAAY,CAAC,oBAAoB,CAAA,CAC3C,CAAA;KACD,CAAA,CAAA;AACD,IAAA,IAAMsM,eAAgB,GAAEzL,GAAG,CAAgB,IAAI,CAAC,CAAA;IAEhDwD,SAAS,CAAC,OAAO,CAAC,CAAA;AAClB,IAAA,IAAMkI,IAAIjK,aAAa,EAAE,CAAA;AACzB,IAAA,OAAA/B,cAAA,CAAAA,cAAA,CAAA,EAAA,EACK1E,OAAO,CAAA,EAAA,EAAA,EAAA;AACVoQ,MAAAA,iBAAiB,EAAjBA,iBAAiB;AACjBE,MAAAA,oBAAoB,EAApBA,oBAAoB;AACpBG,MAAAA,eAAe,EAAfA,eAAe;AACfC,MAAAA,CAAC,EAADA,CAAAA;AAAC,KAAA,CAAA,CAAA;GAEJ;AACDlN,EAAAA,QAAQ,EAAE;IACRmN,WAAW,EAAA,SAAAA,cAAA;AACT,MAAA,OACE,CAAC,IAAI,CAAC3Q,OAAO,CAAC4Q,WACb,IAAI,CAAC/M,cAAc,CAACgN,QAAO,IAC1B,IAAI,CAACC,WAAU,KAAMxN,SAAQ,IAC7B,IAAI,CAACwN,WAAW,CAACC,QAAS,KAAIzN,aAC9B,IAAI,CAAC0N,UAAS,IAAK,IAAI,CAACF,WAAW,CAACC,QAAQ,CAAA;KAEjD;IACDC,UAAU,EAAA,SAAAA,aAAA;AACR,MAAA,OAAO,IAAI,CAAChR,OAAO,CAAC2H,IAAG,GAAI,IAAI,CAAC3H,OAAO,CAAC2H,IAAI,CAACtF,MAAO,GAAE,CAAC,CAAA;KACxD;IACD4O,aAAa,EAAA,SAAAA,gBAAA;AACX,MAAA,OAAOC,YAAY,CACjB,IAAI,CAAClR,OAAO,CAACmR,SAAS,EACtB,IAAI,CAACnR,OAAO,CAACwH,MAAM,EACnB,IAAI,CAACxH,OAAO,CAAC2D,QAAQ,CAACyN,KAAK,EAC3B,IAAI,CAACpR,OAAO,CAACoE,IAAI,EACjBd,SAAS,EACT,IAAI,CAACtD,OAAO,CAAC2D,QAAQ,EACrB,IAAI,CAAC3D,OAAO,CAACqR,UAAS,CACvB,CAAA;KACF;IACDP,WAAW,EAAA,SAAAA,cAAA;MACT,OAAOpJ,OAAO,CAACF,MAAM,CACnB,IAAI,CAACxH,OAAO,CAACqR,UAAU,EACvB,IAAI,CAACrR,OAAO,CAAC2D,QAAQ,CAACyN,KAAK,EAC3B,IAAI,CAACpR,OAAO,CAACqR,UAAS,CACvB,CAAA;KACF;IACDC,UAAU,EAAA,SAAAA,aAAA;AACR,MAAA,OAAO,CAAC,CAAC,IAAI,CAACzN,cAAc,CAACyN,UAAU,CAAA;KACxC;IACDC,gBAAgB,EAAA,SAAAA,mBAAA;MACd,IAAMC,sBAAsB,IAAI,CAACrK,kBAAkB,CAAC,IAAI,CAACsJ,eAAe,CAAC,CAAA;MACzE,OAAO;AACL7G,QAAAA,GAAG,EAAE,IAAI,CAAC6H,cAAc,CAAC,KAAK,CAAC;AAC/B,QAAA,QAAA,EAAQ,IAAI,CAACA,cAAc,CAAC,QAAQ,CAAC;AACrC5H,QAAAA,MAAM,EAAE,IAAI,CAAC4H,cAAc,CAAC,QAAQ,CAAC;AACrC3H,QAAAA,QAAQ,EAAE,IAAI,CAAC2H,cAAc,CAAC,UAAU,CAAC;AACzC1H,QAAAA,WAAW,EAAE,IAAI,CAAC0H,cAAc,CAC9B,aAAa,EACb;AACEhQ,UAAAA,OAAO,EAAE+P,mBAAAA;SACV,EACD,UAACtE,OAAO,EAAA;UAAA,OACNA,OAAO,CAACwE,OAAO,CACb,uBAAuB,EACvBF,mBAAoB,IAAG,SAAQ,CACjC,CAAA;SACH,CAAA;AACDxH,QAAAA,UAAU,EAAE,IAAI,CAACyH,cAAc,CAAC,YAAY,CAAC;AAC7CvH,QAAAA,YAAY,EAAE,IAAI,CAACuH,cAAc,CAAC,cAAc,CAAC;AACjDxH,QAAAA,aAAa,EAAE,IAAI,CAACwH,cAAc,CAAC,eAAe,CAAA;OACnD,CAAA;AACH,KAAA;GACD;AACDE,EAAAA,OAAO,EAAE;AACP/J,IAAAA,YAAY,EAAZA,YAAY;AACZgK,IAAAA,kBAAkB,EAAlBA,kBAAkB;IAClBC,cAAc,EAAA,SAAAA,iBAAA;AAAA,MAAA,IAAAC,kBAAA,CAAA;MACZ,IAAI,CAACC,OAAO,CACV,IAAI,CAAC/R,OAAO,CAACoE,IAAI,EACjBwN,kBAAkB,CACd,IAAI,CAAC5R,OAAO,CAACwH,MAAM,EACnB,IAAI,CAACxH,OAAO,CAACqR,UAAS,CAC1B,CACD,EAAE,CAAA;MACH,IAAI,CAAC,IAAI,CAACxN,cAAc,CAACmO,gBAAe,IAAA,CAAAF,kBAAA,GAAK,IAAI,CAAC9R,OAAO,CAAC2H,IAAI,MAAAmK,IAAAA,IAAAA,kBAAA,eAAjBA,kBAAA,CAAmBzP,MAAM,EAAE;AACtE,QAAA,IAAI,CAAC+N,iBAAgB,GAAI,IAAI,CAACY,UAAS,GAAI,CAAC,CAAA;AAC9C,OAAA;KACD;AACDiB,IAAAA,WAAW,EAAAA,SAAAA,WAAAA,CAACC,KAAY,EAAEC,MAAc,EAAA;AAAA,MAAA,IAAAC,YAAA,CAAA;MACtCF,KAAK,CAACG,eAAe,EAAE,CAAA;MACvB,CAAAD,YAAA,OAAI,CAACvI,MAAM,cAAAuI,YAAA,KAAA,KAAA,CAAA,IAAXA,YAAA,CAAAE,IAAA,KAAI,EAAU,IAAI,CAACtS,OAAO,CAACoE,IAAI,EAAE+N,MAAM,CAAC,EAAE,CAAA;KAC3C;AACDI,IAAAA,aAAa,EAAAA,SAAAA,aAAAA,CAACL,KAAY,EAAEC,MAAc,EAAA;AAAA,MAAA,IAAAK,cAAA,CAAA;MACxCN,KAAK,CAACG,eAAe,EAAE,CAAA;MACvB,CAAAG,cAAA,OAAI,CAAC1I,QAAQ,cAAA0I,cAAA,KAAA,KAAA,CAAA,IAAbA,cAAA,CAAAF,IAAA,KAAI,EAAY,IAAI,CAACtS,OAAO,CAACoE,IAAI,EAAE+N,MAAM,CAAC,EAAE,CAAA;KAC7C;IACDM,gBAAgB,EAAA,SAAAA,gBAACC,CAAAA,QAAyB,EAAA;MACxC,IAAIA,QAAO,KAAM,IAAI,EAAE;AAAA,QAAA,IAAAC,iBAAA,CAAA;QACrB,CAAAA,iBAAA,OAAI,CAACC,WAAW,cAAAD,iBAAA,KAAA,KAAA,CAAA,IAAhBA,iBAAA,CAAAL,IAAA,KAAI,EAAe,IAAI,CAACtS,OAAO,CAACoE,IAAI,EAAEsO,QAAQ,CAAC,EAAE,CAAA;AACnD,OAAA;KACD;IACDlM,WAAW,EAAA,SAAAA,WAAC5D,CAAAA,KAAa,EAAA;AAAA,MAAA,IAAAiQ,KAAA,GAAA,IAAA,CAAA;MACvB,OAAO,IAAI,CAAC7S,OAAO,CAACwG,WAAW,CAACsM,MAAM,CAAC,UAAChG,CAAc,EAAK;AACzD,QAAA,IAAMiG,aAAY,GAAIC,cAAc,CAAClG,CAAC,CAAC,CAAA;AACvC,QAAA,OAAOiG,aAAa,CAACE,UAAU,CAC7BJ,KAAI,CAACjL,YAAY,CAACiL,KAAI,CAAC7S,OAAO,CAACoE,IAAI,EAAAvB,EAAAA,CAAAA,MAAA,CAAKD,KAAK,CAAE,CAAA,CAChD,CAAA;AACH,OAAC,CAAC,CAAA;KACH;IACD6O,cAAc,EAAA,SAAAA,cACZyB,CAAAA,SAA6B,EAEgC;AAAA,MAAA,IAD7DC,iBAAA,GAAA/Q,SAAA,CAAAC,MAAA,GAAA,CAAA,IAAAD,SAAA,CAAA,CAAA,CAAA,KAAAkB,SAAA,GAAAlB,SAAA,CAAA,CAAA,CAAA,GAAyDkB,SAAS,CAAA;AAAA,MAAA,IAClE8P,gBAAgD,GAAAhR,SAAA,CAAAC,MAAA,GAAA,CAAA,IAAAD,SAAA,CAAA,CAAA,CAAA,KAAAkB,SAAA,GAAAlB,SAAA,CAAA,CAAA,CAAA,GAAA,UAACoJ,IAAI,EAAA;AAAA,QAAA,OAAKA,IAAG,CAAA;AAAA,OAAA,CAAA;MAE7D,IAAM6H,UAAUC,UAAU,CACxB,IAAI,CAACxC,WAAW,EAChB,IAAI,CAAC9Q,OAAO,CAAC2D,QAAQ,EACrB,IAAI,CAAC3D,OAAO,CAACoE,IAAI,EACjB8O,SAAQ,CACT,CAAA;MACD,IAAMK,OAAM,GAAA7O,cAAA,CAAA;AACV8C,QAAAA,MAAM,EAAE,IAAI,CAACxH,OAAO,CAACwH,MAAM;AAC3B7D,QAAAA,QAAQ,EAAE,IAAI,CAAC3D,OAAO,CAAC2D,QAAQ;AAC/BS,QAAAA,IAAI,EAAE,IAAI,CAACpE,OAAO,CAACoE,IAAI;AACvBuD,QAAAA,IAAI,EAAE,IAAI,CAAC3H,OAAO,CAAC2H,IAAAA;AAAI,OAAA,EACpBwL,iBAAiB,CACrB,CAAA;MACD,IAAMK,cAAc,IAAI,CAAC9C,CAAC,CAAC2C,OAAO,EAAE/P,SAAS,EAAEiQ,OAAO,CAAC,CAAA;MACvD,IAAIC,gBAAgBlQ,SAAS,EAAE;AAC7B,QAAA,OAAOkQ,WAAW,CAAA;AACpB,OAAA;AACA,MAAA,OAAO,IAAI,CAAC9C,CAAC,gBAAA7N,MAAA,CACIqQ,SAAS,CACxBE,EAAAA,gBAAgB,CAAC1J,mBAAmB,CAACC,WAAW,CAACuJ,SAAS,CAAC,CAAC,EAC5DK,OAAM,CACP,CAAA;AACH,KAAA;AACD,GAAA;AACF,CAAA,EAAC;AAIK,IAAM3I,OAAK,GAAmC;AACnDC,EAAAA,QAAQ,EAAEmE,iBAAe;AACzBlE,EAAAA,MAAM,EAAEC,QAAQ,CAAC,CAAC,EAAE0I,wBAAwB,CAAA;;;AC/Yd,IAAA7F,YAAA,GAAA;EAAA,OAAI,EAAA,+BAAA;AAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;AAlFpB,EAAA,OAAA3C,IAAA,CAAAjL,OAAO,CAAC6F,OAAO,IAA7BqF,SAAA,EAAA,EAAAC,WAAA,CAAAuI,iBAAA,EAAA;;IAAgC,OAAOC,EAAAA,cAAA,CAAA1I,IAAA,CAAAlJ,MAAM,CAACrB,SAAS,CAACT,IAAI,CAAA;;uBAC1D,YAAA;AAAA,MAAA,OA6CY,CA7CZmO,WA6CY,CAAAwF,uBAAA,EAAA,IAAA,EAAA;2BA5CV,YAAA;AAAA,UAAA,OA2CY,CA3CZxF,WA2CY,CAAAyF,oBAAA,EAAA;AA3CDtD,YAAAA,IAAG,EAAH,EAAG;YAAG,OAAOoD,EAAAA,cAAA,CAAA1I,IAAA,CAAAlJ,MAAM,CAACrB,SAAS,CAACC,OAAO,CAAA;;+BAC9C,YAAA;AAAA,cAAA,OAEmB,CAFnByN,WAEmB,CAAA0F,0BAAA,EAAA;gBAFD,OAAOH,EAAAA,cAAA,CAAA1I,IAAA,CAAAlJ,MAAM,CAACrB,SAAS,CAACH,KAAK,CAAA;;mCAAE,YAAA;AAAA,kBAAA,OAE/C,iCADA0K,IAAY,CAAAjF,aAAA,CAAA,EAAA,CAAA,CAAA;;;gCAGPiF,IAAA,CAAAjL,OAAA,CAAAwG,WAAA,CAAAnE,MAAA,GAAA,CAAA,IAAA,CAAA4I,IAAA,CAAApH,cAAA,CAAAkQ,0BAAA,iBADP5I,WAQE,CAAA6I,0BAAA,EAAA;;AAFCvO,gBAAAA,MAAM,EAAEwF,IAAO,CAAAjL,OAAA,CAACwG,WAAW;gBAC7B,OAAAmN,EAAAA,cAAA,CAAA1I,IAAA,CAAAlJ,MAAA,CAAArB,SAAA,CAAAE,cAAA,CAAA;gFAEDwN,WAAI,CAAA6F,mBAAA,CAAA,EA6BG1F,UAAA,CAAAtD,IAAA,CAAAuD,MAAA,EAAA,kBAAA,EAAA;gBA1BJnB,MAAM,EAAEpC,IAAgB,CAAAsG,gBAAA;AACxB2C,gBAAAA,QAAQ,EAAEjJ,IAAA,CAAAlJ,MAAM,CAACrB,SAAO,CAAAG,SAAA;gBACxB8P,WAAW,EAAE1F,IAAW,CAAA0F,WAAA;gBACxBwD,QAAQ,EAAElJ,IAAM,CAAA4G,cAAA;gBAChB7R,OAAO,EAAEiL,IAAO,CAAAjL,OAAA;gBAChB6D,cAAc,EAAAoH,IAAA,CAAApH,cAAA;gBACjB9B,MAAA,EAAAkJ,IAAA,CAAAlJ,MAAAA;AAoBO,eAAA,EAAA,YAAA;AAAA,gBAAA,OAAA,aADDgM,oBAjBQ,EAAA;AAAAC,kBAAAA,MAAK,EAAL,EAAA;AAAK,iBAAA,EAAA;AACRC,kBAAAA,SAAA,EAAAC,OAAA,CAAA,UAAAC,IAAA,EAAA;AAAA,oBAAA,IAAA7J,KAAA,GAAA6J,IAAA,CAAA7J,KAAA,CAAA;AAAA,oBAAA,OAAA,aAaG8P,gBAAA,EAAA/I,UAAA,CAAA;AAXNgJ,sBAAAA,GAAG,EAAH,EAAG;AACH7I,sBAAAA,IAAI,EAAJ,EAAI;AACJ8I,sBAAAA,SAAI,EAAA,GAAA;AACJC,sBAAAA,KAAK,EAAL,EAAK;AACJ,sBAAA,YAAU,EAAEtJ,IAAA,CAAAsG,gBAAA,CAAA3H,GAAAA;uBACLtF,KAAK,EAAA;AACZ,sBAAA,OAAA,EAAO2G,IAAA,CAAAlJ,MAAM,CAACrB,SAAO,CAAAG,SAAA;sBACrB2T,QAAQ,EAAEvJ,IAAW,CAAA0F,WAAA;sBACxB8D,OAAA,EAAAxJ,IAAA,CAAA4G,cAAAA;;yCAEE,YAAA;AAAA,wBAAA,OAAK,CAALzD,WAAK,CAAAW,iBAAA,EAAA,IAAA,EAAA;6CAAA,YAAA;AAAA,4BAAA,OAAA,iBAAA,UAAA,CAAA;;;;;;;;qCAEE,YAAA;AAAA,oBAAA,OACX,iBADW,GACX,GAAAxD,eAAA,CAAGN,IAAM,CAAAsG,gBAAA,CAAA3H,GAAA,CAAA,EAAA,CAAA,CAAA;;;;;;;;;;UAwJHwE,WAAA,CAAAsG,sBAAA,EAAA,IAAA,EAAA;AAJD,QAAA,SAAA,EAAAxG,OAAA,CAAA,YAAA;AAAA,UAAA,OAAA,CAAAE,WAAA,CAAAuG,sBAAA,EAAA;AA7IT,YAAA,sBAAmB,EAAnB,EAAmB;AACnB,YAAA,sBAAoB,EAApB,EAAoB;YACtB,OAAAhB,EAAAA,cAAA,CAAA1I,IAAA,CAAAlJ,MAAA,CAAArB,SAAA,CAAAkU,SAAA,CAAA;;AA0IU,YAAA,SAAA,EAAA1G,OAAA,CAAA,YAAA;AAAA,cAAA,OAAA,aAAA2G,gBAxID,EAAA;AAAAC,gBAAAA,OAAO,EAAC,QAAA;AAAK,eAAA,EAAA;AAuId,gBAAA,SAAA,EAAA5G,OAAA,CAAA,YAAA;AAAA,kBAAA,OAAA,CAAAE,WAAA,CAAA2G,6BAAA,EAAA1J,UAAA,CAAA;AArIF2J,oBAAAA,SAAS,EAAT,EAAA;qBACQ/J,IAAkB,CAAAqF,oBAAA,EAAA;gCAC5BrF,IAAA,CAAAmF,iBAAA;;6BAAAnF,IAAA,CAAAmF,iBAAA,GAAA6E,MAAA,CAAA;qBAAA,CAAA;;uCAGI,YAAA;sBAAA,OAAgC,EA+Hd/J,SAAA,CAAA,IAAA,CAAA,EAAA4C,kBAAA,CAAAW,QAAA,EAAA,IAAA,EAAAC,UAAA,CA/HUzD,YAAI,CAAAtD,IAAA,EAAxB,UAAAuN,QAAQ,EAAEtS,KAAK,EAAA;AA+HL,wBAAA,OAAAsI,SAAA,EAAA,EAAAC,WAAA,CAAAgK,4BAAA,EAAA;AA9HjBxG,0BAAAA,GAAG,EAAA9L,EAAAA,CAAAA,MAAA,CAAKoI,IAAA,CAAAjL,OAAO,CAACoE,IAAI,EAAAvB,GAAAA,CAAAA,CAAAA,MAAA,CAAID,KAAI,CAAA;0BAC/B,OAAA+Q,EAAAA,cAAA,CAAA1I,IAAA,CAAAlJ,MAAA,CAAArB,SAAA,CAAAN,IAAA,CAAA;;AAkH4B,0BAAA,SAAA,EAAA8N,OAAA,CAAA,YAAA;AAAA,4BAAA,OAAA,CAAAE,WAAA,CAAAgH,kCAAA,EAAA;8BAhHA,OAAOzB,EAAAA,cAAA,CAAA1I,IAAA,CAAAlJ,MAAM,CAACrB,SAAS,CAACK,UAAS,CAAA;;AA+G3C,8BAAA,SAAA,EAAAmN,OAAA,CAAA,YAAA;AAAA,gCAAA,OAAA,CAAAE,WAAA,CAAAuG,sBAAA,EAAA;AA9GP,kCAAA,MAAA,EAAA,EAAA;kCAAA,OAAAhB,EAAAA,cAAA,CAAA1I,IAAA,CAAAlJ,MAAA,CAAArB,SAAA,CAAA2U,aAAA,CAAA;;AA6GG,kCAAA,SAAA,EAAAnH,OAAA,CAAA,YAAA;AAAA,oCAAA,OAAA,CAAAE,WAAA,CAAAyG,gBAAA,EAAA;sCA3GAS,KAAA,EAAAC,cAAA,CAAA,wCAAA,CAAA1S,MAAA,EAA2BoI,IAAA,CAAAqG,UAAA,GAAA,aAAA,GAAA,EAAA,EAAAzO,oBAAAA,CAAAA,CAAAA,MAAA,CAAAoI,IAAA,CAAApH,cAAA,CAAA2R,eAAA;;;iDAQnBvK,IAAI,CAAAqG,UAAA;;AAAA,0CAAA,YAAA,EAAA,QAAA;0CAAA,OAAA,EAAA,MAAA;;AAWX,0CAAA,SAAA,EAAApD,OAAA,CAAA,YAAA;AAAA,4CAAA,OAAA,CAAAE,WAAA,CAAAU,2BAAA,EAAA;AATHzC,8CAAAA,OAAO,EAAP,EAAO;AACPP,8CAAAA,QAAQ,EAAR,EAAQ;AACVrG,8CAAAA,MAAA,EAAAwF,IAAA,CAAAzE,WAAA,CAAA5D,KAAA,CAAA;;;;AAEY6S,kDAAAA,IAAI,EAAC,IAAI;AAAC,kDAAA,YAAU,EAAC,OAAO;AAACzJ,kDAAAA,KAAK,EAAC,SAAA;;AAG7C,kDAAA,SAAA,EAAAkC,OAAA,CAAA,YAAA;AAAA,oDAAA,OAAA,CAAAL,kBAAA,CAAA,MAAA,EAAAD,YAAA,kBADIhL,KAAK,GAAA,CAAA,CAAA,EAAA,CAAA,CAAA;;;;;;;;;;AAOX,0CAAA,YAAU,EAAC,QAAQ;0CAClB,OAA6B+Q,EAAAA,cAAA,CAAA9Q,qBAAAA,CAAAA,MAAA,CAAAoI,IAAA,CAAAlJ,MAAM,CAACrB,SAAC,CAAAM,SAAA,CAAA,CAAA;;6DACxC,YAAA;AAAA,4CAAA,OAAA,CAAAsK,eAAA,CAAAC,eAAA,CAAAN,IAAA,CAAA9D,kBAAA,CAAAvE,KAAA,CAAA,CAAA,EAAA,CAAA,CAAA;;;6DAIAqI,IAAA,CAAApH,cAAA,CAAA2R,eAAA,IAqBKtK,SAAA,EAAA,EAAAC,WAAA,CAAAuK,gBAAA,EAAA;;AAtBH,0CAAA,YAAU,EAAC,QAAA;;AAqBN,0CAAA,SAAA,EAAAxH,OAAA,CAAA,YAAA;AAAA,4CAAA,OAAA,aAAAH,oBAlBO,EAAA;AAAAC,8CAAAA,MAAK,EAAL,EAAA;AAAK,6CAAA,EAAA;AACRC,8CAAAA,SAAA,EAAAC,OAAA,CAAA,UAAAyH,KAAA,EAAA;AAAA,gDAAA,IAAArR,KAAA,GAAAqR,KAAA,CAAArR,KAAA,CAAA;gDAAA,OAAA,CAcG8J,WAAA,CAAAgG,gBAAA,EAAA/I,UAAA,CAZJ/G,KAAA,EAAA;AACF+P,kDAAAA,GAAG,EAAH,EAAG;AACH7I,kDAAAA,IAAI,EAAJ,EAAI;AACJ8I,kDAAAA,SAAI,EAAA,GAAA;AACJC,kDAAAA,KAAK,EAAL,EAAK;kDACL,UAAM,+BAA8B,EAG5BtJ,WAAM,CAACvK,SAAS,CAACQ,UAAU,CAAA;AAFlC,kDAAA,YAAU,EAAE+J,IAAgB,CAAAsG,gBAAA,CAAC1H,MAAM;kDACnC2K,QAAQ,EAAE5R,KAAK,IAAU,CAAA,IAAA,CAAAqI,IAAA,CAAAjL,OAAO,CAAC4Q,OAAC;kDAErC6D,OAAA,EAAA,SAAAA,OAAAA,CAAAQ,MAAA,EAAA;AAAA,oDAAA,OAAAhK,IAAA,CAAAgH,WAAA,CAAAgD,MAAA,EAAArS,KAAA,CAAA,CAAA;AAAA,mDAAA;;qEAEE,YAAA;AAAA,oDAAA,OAAK,CAALwL,WAAK,CAAAW,iBAAA,EAAA;sDAAA,OAAA,EAAA,aAAA;AAAA,qDAAA,EAAA;yEAAA,YAAA;AAAA,wDAAA,OAAA,iBAAA,cAAA,CAAA;;;;;;;;iEAEE,YAAA;AAAA,gDAAA,OACX,iBADW,GACX,GAAAxD,eAAA,CAAGN,IAAM,CAAAsG,gBAAA,CAAA1H,MAAA,CAAA,EAAA,CAAA,CAAA;;;;;;kFAKboB,IAAA,CAAApH,cAAA,CAAA2R,eAAA,IAuBQtK,SAAA,EAAA,EAAAC,WAAA,CAAAuK,gBAAA,EAAA;;AAxBN,0CAAA,YAAU,EAAC,QAAA;;AAuBN,0CAAA,SAAA,EAAAxH,OAAA,CAAA,YAAA;AAAA,4CAAA,OAAA,aAAAH,oBApBO,EAAA;AAAAC,8CAAAA,MAAK,EAAL,EAAA;AAAK,6CAAA,EAAA;AACRC,8CAAAA,SAAA,EAAAC,OAAA,CAAA,UAAA0H,KAAA,EAAA;AAAA,gDAAA,IAAAtR,KAAA,GAAAsR,KAAA,CAAAtR,KAAA,CAAA;gDAAA,OAAA,CAgBG8J,WAAA,CAAAgG,gBAAA,EAAA/I,UAAA,CAdJ/G,KAAA,EAAA;AACF+P,kDAAAA,GAAG,EAAH,EAAG;AACH7I,kDAAAA,IAAI,EAAJ,EAAI;AACJ8I,kDAAAA,SAAI,EAAA,GAAA;AACJC,kDAAAA,KAAK,EAAL,EAAK;kDACL,UAAM,+BAA+B,EAK7BtJ,WAAM,CAACvK,SAAS,CAACS,YAAY,CAAA;AAJpC,kDAAA,YAAS,EAAA8J,IAAA,CAAAsG,gBAAA,CAAAzH,QAAA;AACD0K,kDAAAA,QAAA,EAAiC5R,KAAE,IAAAqI,IAAA,CAAA+F,UAAA,GAAA,CAAA,IAAA,CAAA/F,IAAA,CAAAjL,OAAA,CAAA4Q,OAAA;kDAI9C6D,OAAA,EAAA,SAAAA,OAAAA,CAAAQ,MAAA,EAAA;AAAA,oDAAA,OAAAhK,IAAA,CAAAsH,aAAA,CAAA0C,MAAA,EAAArS,KAAA,CAAA,CAAA;AAAA,mDAAA;;qEAEE,YAAA;AAAA,oDAAA,OAAK,CAALwL,WAAK,CAAAW,iBAAA,EAAA;sDAAA,OAAA,EAAA,aAAA;AAAA,qDAAA,EAAA;yEAAA,YAAA;AAAA,wDAAA,OAAA,iBAAA,gBAAA,CAAA;;;;;;;;iEAEE,YAAA;AAAA,gDAAA,OACX,iBADW,GACX,GAAAxD,eAAA,CAAGN,IAAM,CAAAsG,gBAAA,CAAAzH,QAAA,CAAA,EAAA,CAAA,CAAA;;;;;;8FAgCL4L,gBA7BD,EAAA;AAAA,0CAAA,YAAU,EAAC,QAAA;AAAC,yCAAA,EAAA;AA4BL,0CAAA,SAAA,EAAAxH,OAAA,CAAA,YAAA;AAAA,4CAAA,OAAA,aAAAH,oBA3BA,EAAA;AAAAC,8CAAAA,MAAK,EAAL,EAAA;AAAK,6CAAA,EAAA;AACRC,8CAAAA,SAAA,EAAAC,OAAA,CAAA,UAAA2H,KAAA,EAAA;AAAA,gDAAA,IAAAvR,KAAA,GAAAuR,KAAA,CAAAvR,KAAA,CAAA;gDAAA,OAAA,CAuBJ8J,WAAA,CAAAgG,gBAAA,EAAA/I,UAAA,CArBG/G,KAAA,EAAA;AACF+P,kDAAAA,GAAG,EAAH,EAAG;AACH7I,kDAAAA,IAAI,EAAJ,EAAI;AACJ8I,kDAAAA,SAAI,EAAA,GAAA;AACJC,kDAAAA,KAAK,EAAL,EAAK;kDACL,UAAM,+BAA8B,EAE5BtJ,WAAE,CAAAvK,SAAA,CAAAU,UAAA,CAAA;AADT,kDAAA,YAAU,EAAE6J,IAAgB,CAAAsG,gBAAA,CAAM,QAAA,CAAA;AAE1BiD,kDAAAA,QAAA,EAAW,CAAAvJ,IAAA,CAAAjL,OAAA,CAAA4Q,OAAA,IAAA3F,IAAA,CAAApH,cAAA,CAAAgN,QAAA,IAAA5F,IAAA,CAAA6F,WAAA,KAAAxN,SAAA,IAAA2H,IAAA,CAAA6F,WAAA,CAAAgF,QAAA,KAAAxS,SAAA,IAAA2H,IAAA,CAAA+F,UAAA,IAAA/F,IAAA,CAAA6F,WAAA,CAAAgF,QAAA;AAUnBrB,kDAAAA,OAAK,EAAAsB,aAAA,CAAA,UAAAd,MAAA,EAAA;AAAA,oDAAA,OAAAhK,IAAA,CAAAwF,eAAA,GAAA7N,KAAA,CAAA;mDAAA,EAAA,CAAA,MAAA,CAAA,CAAA;;qEAEN,YAAA;AAAA,oDAAA,OAAK,CAALwL,WAAK,CAAAW,iBAAA,EAAA;sDAAA,OAAA,EAAA,aAAA;AAAA,qDAAA,EAAA;yEAAA,YAAA;AAAA,wDAAA,OAAA,iBAAA,YAAA,CAAA;;;;;;;;iEAER,YAAA;AAAA,gDAAA,OACD,iBADC,GACD,GAAAxD,eAAA,CAAGN,IAAE,CAAAsG,gBAAA,CAAA,QAAA,CAAA,CAAA,EAAA,CAAA,CAAA;;;;;;;;;;;;;;;iDAeVnD,WAAA,CAAA4H,iCAAA,EAAA;8BAToB,OAAOrC,EAAAA,cAAA,CAAA1I,IAAA,CAAAlJ,MAAM,CAACrB,SAAS,CAACO,WAAA,CAAA;;AAQhD,8BAAA,SAAA,EAAAiN,OAAA,CAAA,YAAA;AAAA,gCAAA,OAAA,CAAAE,WAAA,CAAA6H,4BAAA,EAAA;AANIzO,kCAAAA,MAAM,EAAEyD,IAAO,CAAAjL,OAAA,CAACwH,MAAM;kCACtB7D,QAAQ,EAAEsH,IAAU,CAAAgG,aAAA;AACtB7M,kCAAAA,IAAA,EAAA6G,IAAA,CAAArD,YAAA,CAAAqD,YAAA,CAAA7G,IAAA,EAAAvB,EAAAA,CAAAA,MAAA,CAAAD,KAAA,CAAA,CAAA;AACEgO,kCAAAA,OAAO,EAAE3F,IAAO,CAAAjL,OAAA,CAAC4Q,OAAE;AACnBsF,kCAAAA,SAAS,EAAEjL,IAAC,CAAAjL,OAAA,CAAAkW,SAAA;AACZC,kCAAAA,KAAK,EAAElL,IAAI,CAAAjL,OAAA,CAAAmW,KAAAA;;;;;;;;;;;;;;;;;4BAOLlL,IAAU,CAAA+F,UAAA,KAAA,CAAA,iBAA7B7F,WAEc,CAAAwJ,sBAAA,EAAA;;YAFwB,OAAOhB,EAAAA,cAAA,CAAA1I,IAAA,CAAAlJ,MAAG,CAAArB,SAAA,CAAAI,MAAA,CAAA;;AAAA,YAAA,SAAA,EAAAoN,OAAA,CAAA,YAAA;AAAA,cAAA,OAAA,CAAA5C,eAAA,CAAA,WAAA,CAAA;;;;;;UAI5BL,IAAA,CAAAuD,MAAM,CAAC4H,OAAO,IAYnBlL,SAAA,EAAA,EAAAC,WAAA,CAAAkL,yBAAA,EAAA;;QAZqB,OAAG,EAAA,MAAA;;AAWhC,QAAA,SAAA,EAAAnI,OAAA,CAAA,YAAA;UAAA,OAAA,CAAAK,UAAA,CAAAtD,IAAA,CAAAuD,MAAA,EAAA,SAAA,EAAA;YARJnB,MAAM,EAAEpC,IAAQ,CAAAsG,gBAAA;AAChB2C,YAAAA,QAAQ,EAAEjJ,IAAA,CAAAlJ,MAAM,CAACrB,SAAS,CAACG,SAAG;YAC9B8P,WAAW,EAAE1F,IAAC,CAAA0F,WAAA;YACjBwD,QAAA,EAAAlJ,IAAA,CAAA4G,cAAA;YACG7R,OAAG,EAAAiL,IAAA,CAAAjL,OAAA;YACH6D,cAAW,EAAAoH,IAAA,CAAApH,cAAA;YACX9B,MAAG,EAAAkJ,IAAA,CAAAlJ,MAAAA;;;;;AAKR,QAAA,aAAA,EAAAkJ,IAAA,CAAAwF,eAAA,KAAA,IAAA;AACE,QAAA,WAAO,EAAA,KAAA;AACC6F,QAAAA,SAAA,EAAAC,MAAA,CAAA,CAAA,CAAA,KAAAA,MAAA,CAAA,CAAA,CAAA,GAAAC,QAAA,CAAA,UAAAvB,MAAA,EAAA;AAAA,UAAA,OAAMhK,IAAe,CAAAwF,eAAA,GAAA,IAAA,CAAA;AAAA,SAAA,EAAA,CAAA,KAAA,CAAA,CAAA,CAAA;AACf,QAAA,iBAAA,EAAA8F,MAAA,CAAA,CAAA,CAAA,KAAAA,MAAA,CAAA,CAAA,CAAA,GAAA,UAAAtB,MAAA,EAAA;AAAA,UAAA,OAAEhK,IAAe,CAAAwF,eAAA,GAAA,IAAA,CAAA;SAAA,CAAA;;;;+BAG7B,YAAA;AAAA,cAAA,OAEe,CAFfrC,WAEe,CAAAwF,uBAAA,EAAA;gBAFD,OAAM,EAAA,SAAA;AAAS,eAAA,EAAA;;;;;;;;;;;mCAO3B,YAAA;kBAAA,OAAA,CAAAxF,WAAA,CAAA6F,mBAAA,CAAA;AAEKzI,oBAAAA,IAAA,EAAA,EAAA;AAAAiJ,oBAAAA,OAAA;6BAAAxJ,IAAA,CAAAwF,eAAA,GAAA,IAAA,CAAA;qBAAA,CAAA;;uCACH,YAAA;AAAA,sBAAA,OAAY,CAATnF,eAAA,CAAAC,eAAA,CAAAN,IAAA,CAAAsG,gBAAS,CAAArH,YAAA,CAAA,EAAA,CAAA,CAAA;;;sBAadkE,WAAA,CAAAgG,gBAAA,EAAA;wBAVM,EAAA,EAAA;AACDpP,oBAAAA,GAAA,EAAA,SAAA;AACGyP,oBAAAA,OAAA,EAAA8B,MAAA,CAAA,CAAA,CAAA,KAAAA,MAAA,CAAA,CAAA,CAAA,GAAA,UAAAtB,MAAA,EAAA;AAAiBhK,sBAAAA,IAAC,CAAAwH,gBAAA,CAAAxH,IAAA,CAAAwF,eAAA,oBAAAxF,IAAA,CAAAwF,eAAA;sBAAAxF,IAAA,CAAAwF,eAAA,GAAA,IAAA,CAAA;;;uCAOxB,YAAA;AAAA,sBAAA,OAAE,CAAAnF,eAAA,CAAAC,eAAA,CAAAN,IAAA,CAAAsG,gBAAA,CAAAtH,aAAA,CAAA,EAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;ACvIRwM,IAAAA,gBAAe,GAAErM,eAAe,CAAC;AACrCC,EAAAA,IAAI,EAAE,yBAAyB;AAC/BC,EAAAA,UAAU,EAAE;AACVC,IAAAA,gBAAgB,EAAhBA,gBAAgB;AAChB0F,IAAAA,UAAU,EAAVA,UAAU;AACVyG,IAAAA,KAAK,EAALA,KAAK;AACLC,IAAAA,IAAI,EAAJA,IAAI;AACJC,IAAAA,OAAO,EAAPA,OAAO;AACPC,IAAAA,WAAW,EAAXA,WAAW;AACXtH,IAAAA,IAAI,EAAJA,IAAI;AACJC,IAAAA,IAAI,EAAJA,IAAAA;GACD;AACDlL,EAAAA,KAAK,EAAAI,cAAA,CAAA,EAAA,EACA+F,aAAa,EAAU,CAC3B;EACDC,KAAK,EAAA,SAAAA,KAACpG,CAAAA,KAA4B,EAAA;AAChC,IAAA,IAAMwS,cAAe,GAAE9R,GAAG,CAAC,CAAC,CAAC,CAAA;AAC7B,IAAA,IAAMuD,GAAE,GAAIH,MAAM,EAAE,CAAA;AACpB,IAAA,IAAMsI,IAAIjK,aAAa,EAAE,CAAA;IACzB,OAAA/B,cAAA,CAAAA,cAAA,CACKoC,EAAAA,EAAAA,gBAAgB,CAACiQ,kBAAkB,CAACzS,KAAK,CAAC,CAAC,CAAA,EAAA,EAAA,EAAA;AAC9CwS,MAAAA,cAAc,EAAdA,cAAc;AACdvO,MAAAA,GAAG,EAAHA,GAAG;AACHmI,MAAAA,CAAC,EAADA,CAAAA;AAAC,KAAA,CAAA,CAAA;GAEJ;AACDlN,EAAAA,QAAQ,EAAE;IACRwT,iBAAiB,EAAA,SAAAA,oBAAA;AAAA,MAAA,IAAAnE,KAAA,GAAA,IAAA,CAAA;MACf,OAAQ,IAAI,CAAC9L,MAAM,CAACpD,QAA2B,CAACsT,QAAQ,CAACnE,MAAM,CAC7D,UAACoE,QAAmC,EAAA;AAAA,QAAA,OAClCC,SAAS,CAACD,QAAQ,EAAErE,KAAI,CAAC9L,MAAM,CAACY,IAAI,EAAEkL,KAAI,CAAC9L,MAAM,CAAC3C,IAAI,EAAEyO,KAAI,CAACtK,GAAG,CAAA,CAAA;OACnE,CAAA,CAAA;KACF;IACD6O,qBAAqB,EAAA,SAAAA,wBAAA;AAAA,MAAA,IAAAC,MAAA,GAAA,IAAA,CAAA;MACnB,OAAO,IAAI,CAACL,iBAAiB,CAACtJ,GAAG,CAAC,UAACjM,OAAO,EAAK;AAAA,QAAA,IAAA6V,qBAAA,CAAA;AAC7C,QAAA,OAAA,CAAAA,qBAAA,GAAOC,6BAA6B,CAAC9V,OAAO,EAAE4V,MAAI,CAAC3G,CAAC,CAAE,MAAA4G,IAAAA,IAAAA,qBAAA,KAAAA,KAAAA,CAAAA,GAAAA,qBAAA,GAAG,EAAE,CAAA;AAC7D,OAAC,CAAC,CAAA;AACJ,KAAA;AACD,GAAA;AACF,CAAA,EAAC;AAIK,IAAME,2BAA2B,GAAWC,GAAG,CACpDzM,QAAQ,CAAC,gBAAgB,CAAC,EAC1B0M,yBAAwB,CACzB,CAAA;AAEM,IAAM9M,OAAK,GAAmC;AACnDC,EAAAA,QAAQ,EAAE4L,gBAAc;AACxB3L,EAAAA,MAAM,EAAEC,QAAQ,CAAC,CAAC,EAAEyM,2BAA2B,CAAA;;;;;;;;;;;;ACxJ5B,EAAA,OAAAvM,IAAA,CAAAlE,MAAM,CAAClB,OAAO,iBAAjCsF,WAmEa,CAAAwJ,sBAAA,EAAA;;IAnEuB,OAAOhB,EAAAA,cAAA,CAAA1I,IAAA,CAAAlJ,MAAM,CAACT,cAAc,CAACrB,IAAI,CAAA;;uBACnE,YAAA;MAAA,OAuCO,CAtCCgL,IAAA,CAAApH,cAAc,CAAC8T,oBADvBzM,SAAA,EAAA,EAAAC,WAAA,CAuCO0J;;SArCG5J,IAAY,CAAA9G,YAAA,CAAA,OAAA,CAAA,CAAA,CAAA,EAAA;2BAEpB,YAAA;AAAA,UAAA,OAaO,CAbPiK,WAAA,CAaOsH,oDAbQzK,IAAY,CAAA9G,YAAA,CAAA,cAAA,CAAA,CAAA,CAAA,EAAA;+BACzB,YAAA;AAAA,cAAA,OAWQ,CAXRiK,WAAA,CAWQwJ,mBAXRvM,UAWQ,CAAA;4BAVGJ,IAAc,CAAA6L,cAAA;;yBAAd7L,IAAc,CAAA6L,cAAA,GAAA7B,MAAA,CAAA;iBAAA,CAAA;iBACfhK,IAAY,CAAA9G,YAAA,CAAA,QAAA,CAAA,EAAA;AACpBwT,gBAAAA,QAAO,EAAP,EAAA;AAAO,eAAA,CAAA,EAAA;mCAGL,YAAA;kBAAA,OAAsC,EADxCzM,SAAA,CAAA,IAAA,CAAA,EAAA4C,kBAAA,CAKOW,QAJgB,EAAA,IAAA,EAAAC,UAAA,CAAAzD,IAAA,CAAA+L,iBAAiB,EAA9B,UAAAhO,CAAC,EAAEpG,KAAK,EAAA;wCADlBuI,WAKO,CAAA0M,gBAAA,EAAA;sBAHJlJ,GAAG,EAAA,EAAA,CAAA9L,MAAA,CAAKoI,IAAA,CAAAlE,MAAM,CAAC3C,IAAI,EAAA,GAAA,CAAA,CAAAvB,MAAA,CAAID,KAAK,CAAA;;yCAE7B,YAAA;AAAA,wBAAA,OAAiC,CAA9B0I,eAAA,CAAAC,eAAA,CAAAN,IAAA,CAAAmM,qBAAqB,CAACxU,KAAK,CAAA,CAAA,EAAA,CAAA,CAAA;;;;;;;;;;kBAIpCwL,WAAA,CAoBOsH,oDApBQzK,IAAY,CAAA9G,YAAA,CAAA,gBAAA,CAAA,CAAA,CAAA,EAAA;+BACzB,YAAA;AAAA,cAAA,OAkBU,CAlBViK,WAAA,CAkBU0J,qBAlBVzM,UAkBU,CAAA;4BAjBCJ,IAAc,CAAA6L,cAAA;;yBAAd7L,IAAc,CAAA6L,cAAA,GAAA7B,MAAA,CAAA;AAAA,iBAAA,CAAA;AACvB0C,gBAAAA,QAAO,EAAP,EAAA;iBACQ1M,IAAY,CAAA9G,YAAA,CAAA,UAAA,CAAA,CAAA,EAAA;mCAGlB,YAAA;kBAAA,OAA4C,EAD9C+G,SAAA,CAAA,IAAA,CAAA,EAAA4C,kBAAA,CAYeW,QAXc,EAAA,IAAA,EAAAC,UAAA,CAAAzD,IAAA,CAAA+L,iBAAiB,EAApC,UAAAvV,OAAO,EAAEmB,KAAK,EAAA;wCADxBuI,WAYe,CAAA4M,wBAAA,EAAA;sBAVZpJ,GAAG,EAAA,EAAA,CAAA9L,MAAA,CAAKoI,IAAA,CAAAlE,MAAM,CAAC3C,IAAI,EAAA,GAAA,CAAA,CAAAvB,MAAA,CAAID,KAAK,CAAA;;yCAE7B,YAAA;AAAA,wBAAA,OAOC,CAPDwL,WAOC,CAAA6H,4BAAA,EAAA;AANEzO,0BAAAA,MAAM,EAAEyD,IAAM,CAAAlE,MAAA,CAACS,MAAM;AACrB7D,0BAAAA,QAAQ,EAAElC,OAAO;AACjB2C,0BAAAA,IAAI,EAAE6G,IAAM,CAAAlE,MAAA,CAAC3C,IAAI;AACjBwM,0BAAAA,OAAO,EAAE3F,IAAM,CAAAlE,MAAA,CAAC6J,OAAO;AACvBsF,0BAAAA,SAAS,EAAEjL,IAAM,CAAAlE,MAAA,CAACmP,SAAS;AAC3BC,0BAAAA,KAAK,EAAElL,IAAM,CAAAlE,MAAA,CAACoP,KAAAA;;;;;;;;;;;;;;iBAMzBjL,SAAA,EAAA,EAAAC,WAAA,CAyBO0J;;SAzBe5J,IAAY,CAAA9G,YAAA,CAAA,OAAA,CAAA,CAAA,CAAA,EAAA;2BAChC,YAAA;AAAA,UAAA,OAOQ,CAPRiK,WAAA,CAOQwJ,mBAPRvM,UAOQ,CAAA;wBAPSJ,IAAc,CAAA6L,cAAA;;qBAAd7L,IAAc,CAAA6L,cAAA,GAAA7B,MAAA,CAAA;aAAA,CAAA;aAAUhK,IAAY,CAAA9G,YAAA,CAAA,QAAA,CAAA,CAAA,EAAA;+BAEjD,YAAA;cAAA,OAAsC,EADxC+G,SAAA,CAAA,IAAA,CAAA,EAAA4C,kBAAA,CAKOW,QAJgB,EAAA,IAAA,EAAAC,UAAA,CAAAzD,IAAA,CAAA+L,iBAAiB,EAA9B,UAAAhO,CAAC,EAAEpG,KAAK,EAAA;oCADlBuI,WAKO,CAAA0M,gBAAA,EAAA;kBAHJlJ,GAAG,EAAA,EAAA,CAAA9L,MAAA,CAAKoI,IAAA,CAAAlE,MAAM,CAAC3C,IAAI,EAAA,GAAA,CAAA,CAAAvB,MAAA,CAAID,KAAK,CAAA;;qCAE7B,YAAA;AAAA,oBAAA,OAAiC,CAA9B0I,eAAA,CAAAC,eAAA,CAAAN,IAAA,CAAAmM,qBAAqB,CAACxU,KAAK,CAAA,CAAA,EAAA,CAAA,CAAA;;;;;;;kCAIlCwL,WAAA,CAcU0J,qBAdVzM,UAcU,CAAA;wBAdSJ,IAAc,CAAA6L,cAAA;;qBAAd7L,IAAc,CAAA6L,cAAA,GAAA7B,MAAA,CAAA;aAAA,CAAA;aAAUhK,IAAY,CAAA9G,YAAA,CAAA,UAAA,CAAA,CAAA,EAAA;+BAEnD,YAAA;cAAA,OAA4C,EAD9C+G,SAAA,CAAA,IAAA,CAAA,EAAA4C,kBAAA,CAYeW,QAXc,EAAA,IAAA,EAAAC,UAAA,CAAAzD,IAAA,CAAA+L,iBAAiB,EAApC,UAAAvV,OAAO,EAAEmB,KAAK,EAAA;oCADxBuI,WAYe,CAAA4M,wBAAA,EAAA;kBAVZpJ,GAAG,EAAA,EAAA,CAAA9L,MAAA,CAAKoI,IAAA,CAAAlE,MAAM,CAAC3C,IAAI,EAAA,GAAA,CAAA,CAAAvB,MAAA,CAAID,KAAK,CAAA;;qCAE7B,YAAA;AAAA,oBAAA,OAOC,CAPDwL,WAOC,CAAA6H,4BAAA,EAAA;AANEzO,sBAAAA,MAAM,EAAEyD,IAAM,CAAAlE,MAAA,CAACS,MAAM;AACrB7D,sBAAAA,QAAQ,EAAElC,OAAO;AACjB2C,sBAAAA,IAAI,EAAE6G,IAAM,CAAAlE,MAAA,CAAC3C,IAAI;AACjBwM,sBAAAA,OAAO,EAAE3F,IAAM,CAAAlE,MAAA,CAAC6J,OAAO;AACvBsF,sBAAAA,SAAS,EAAEjL,IAAM,CAAAlE,MAAA,CAACmP,SAAS;AAC3BC,sBAAAA,KAAK,EAAElL,IAAM,CAAAlE,MAAA,CAACoP,KAAAA;;;;;;;;;;;;;;;;;;;ACXrBM,IAAAA,gBAAe,GAAErM,eAAe,CAAC;AACrCC,EAAAA,IAAI,EAAE,gBAAgB;AACtBC,EAAAA,UAAU,EAAE;AACVC,IAAAA,gBAAgB,EAAhBA,gBAAgB;AAChB0E,IAAAA,KAAK,EAALA,KAAK;AACLE,IAAAA,UAAU,EAAVA,UAAU;AACVC,IAAAA,SAAS,EAATA,SAAAA;GACD;AACD9K,EAAAA,KAAK,EAAAI,cAAA,CAAA,EAAA,EACA+F,aAAa,EAAU,CAC3B;EACDC,KAAK,EAAA,SAAAA,KAACpG,CAAAA,KAA4B,EAAA;AAChC,IAAA,OAAOwC,gBAAgB,CAACiQ,kBAAkB,CAACzS,KAAK,CAAC,CAAC,CAAA;GACnD;AACDd,EAAAA,QAAQ,EAAE;IACRhD,IAAI,EAAA,SAAAA,OAAA;AACF,MAAA,OAAO,CAAC,CAAC,IAAI,CAACqD,cAAc,CAACrD,IAAI,CAAA;KAClC;IACDC,SAAS,EAAA,SAAAA,YAAA;AACP,MAAA,OAAO,CAAC,CAAC,IAAI,CAACoD,cAAc,CAACpD,SAAS,CAAA;KACvC;IACDwB,OAAO,EAAA,SAAAA,UAAA;AACL,MAAA,IAAMA,OAAQ,GAAE,CAAC,MAAM,EAAE,MAAM,EAAAY,EAAAA,CAAAA,MAAA,CAAK,IAAI,CAACd,MAAM,CAACzB,KAAK,CAACL,IAAI,CAAG,CAAA,CAAA;MAC7D,IAAI,IAAI,CAACO,IAAI,EAAE;AACbyB,QAAAA,OAAO,CAACkL,IAAI,CAAAtK,EAAAA,CAAAA,MAAA,CAAI,IAAI,CAACd,MAAM,CAACzB,KAAK,CAACE,IAAI,CAAE,CAAC,CAAA;AAC3C,OAAA;MACA,IAAI,IAAI,CAACC,SAAS,EAAE;AAClBwB,QAAAA,OAAO,CAACkL,IAAI,CAAAtK,EAAAA,CAAAA,MAAA,CAAI,IAAI,CAACd,MAAM,CAACzB,KAAK,CAACG,SAAS,CAAE,CAAC,CAAA;AAChD,OAAA;AACA,MAAA,OAAOwB,OAAO,CAAC0L,IAAI,CAAC,GAAG,CAAC,CAAA;AAC1B,KAAA;AACD,GAAA;AACF,CAAA,EAAC;AAIK,IAAM/C,OAAK,GAAmC;AACnDC,EAAAA,QAAQ,EAAE4L,gBAAc;AACxB3L,EAAAA,MAAM,EAAEC,QAAQ,CAAC,CAAC,EAAE0M,GAAG,CAACO,QAAQ,EAAEhN,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAA;;;;;;;;ACxF5C,EAAA,OAAAC,IAAA,CAAAlE,MAAM,CAAClB,OAAO,IADtBqF,SAAA,EAAA,EAAAC,WAAA,CA6BQuI,mBA7BRrI,UA6BQ,CAAA;;IA3BL,OAAOJ,EAAAA,IAAO,CAAAhJ,OAAA;IACdqS,SAAS,EAAA,CAAGrJ,IAAK,CAAAzK,IAAA,GAAA,CAAA,GAAM8C,SAAS;IAChC2U,QAAQ,EAAEhN,IAAI,CAAAzK,IAAAA;KACPyK,IAAY,CAAA9G,YAAA,CAAA,QAAA,CAAA,CAAA,EAAA;AAEpB,IAAA,SAAA,EAAA+J,OAAA,CAAA,YAAA;AAAA,MAAA,OAAA,CACQjD,IAAA,CAAAlE,MAAM,CAACxG,KAAK,iBADpB4K,WAAA,CAAAyI,uBAAA,EAAAvI,UAAA,CAAA;;AAEG,QAAA,OAAA,EAAOJ,IAAA,CAAAlJ,MAAM,CAACzB,KAAK,CAACC,KAAAA;SACb0K,IAAY,CAAA9G,YAAA,CAAA,cAAA,CAAA,CAAA,EAAA;2BACnB,YAAA;AAAA,UAAA,OAAkB,CAAfmH,eAAA,CAAAC,eAAA,CAAAN,IAAA,CAAAlE,MAAM,CAACxG,KAAI,CAAA,EAAA,CAAA,CAAA;;;2EAGjBuN,kBAca,CAAAW,QAAA,EAAA,IAAA,EAAAC,UAAA,CAZgBzD,WAAM,CAACtH,QAAQ,CAACsT,QAAQ,EAAA,UAA3CxV,OAAO,EAAEmB,KAAK,EAAA;AAFxB,QAAA,OAAAsI,SAAA,EAAA,EAAAC,WAAA,CAcauJ,sBAdb,EAAArJ,UAAA,CACUJ,IAaG,CAAA9G,YAbS,CAAAtB,cAAAA,CAAAA,MAAA,CAAgBD,KAAK,EAAA,GAAA,CAAA,CAAA,EAAA;AAExC+L,UAAAA,GAAG,EAAA9L,EAAAA,CAAAA,MAAA,CAAKoI,IAAA,CAAAlE,MAAM,CAAC3C,IAAI,EAAAvB,GAAAA,CAAAA,CAAAA,MAAA,CAAID,KAAK,CAAA;AAC5B,UAAA,OAAA,EAAOqI,IAAA,CAAAlJ,MAAM,CAACzB,KAAK,CAACF,IAAAA;;6BAErB,YAAA;AAAA,YAAA,OAOC,CAPDgO,WAOC,CAAA6H,4BAAA,EAAA;AANEzO,cAAAA,MAAM,EAAEyD,IAAM,CAAAlE,MAAA,CAACS,MAAM;AACrB7D,cAAAA,QAAQ,EAAElC,OAAO;AACjB2C,cAAAA,IAAI,EAAE6G,IAAM,CAAAlE,MAAA,CAAC3C,IAAI;AACjBwM,cAAAA,OAAO,EAAE3F,IAAM,CAAAlE,MAAA,CAAC6J,OAAO;AACvBsF,cAAAA,SAAS,EAAEjL,IAAM,CAAAlE,MAAA,CAACmP,SAAS;AAC3BC,cAAAA,KAAK,EAAElL,IAAM,CAAAlE,MAAA,CAACoP,KAAAA;;;;;;;;;;;;;ACiBjBM,IAAAA,gBAAe,GAAErM,eAAe,CAAC;AACrCC,EAAAA,IAAI,EAAE,4BAA4B;AAClCC,EAAAA,UAAU,EAAE;AACVC,IAAAA,gBAAgB,EAAhBA,gBAAgB;AAChB0F,IAAAA,UAAU,EAAVA,UAAU;AACVV,IAAAA,IAAI,EAAJA,IAAI;AACJC,IAAAA,IAAI,EAAJA,IAAAA;GACD;AACDlL,EAAAA,KAAK,EAAAI,cAAA,CAAA,EAAA,EACA+F,aAAa,EAAU,CAC3B;EACDC,KAAK,EAAA,SAAAA,KAACpG,CAAAA,KAA4B,EAAA;AAChC,IAAA,OAAOwC,gBAAgB,CAACiQ,kBAAkB,CAACzS,KAAK,CAAC,CAAC,CAAA;GACnD;AACDd,EAAAA,QAAQ,EAAE;IACR0U,QAAQ,EAAA,SAAAA,WAAA;AACN,MAAA,IAAAC,qBAAA,GAA+B,IAAI,CAACC,QAAQ,CAACC,OAAO;QAA5CC,EAAE,GAAAH,qBAAA,CAAFG,EAAE;QAAEC,EAAE,GAAAJ,qBAAA,CAAFI,EAAE;QAAEC,EAAE,GAAAL,qBAAA,CAAFK,EAAE;QAAEC,EAAE,GAAAN,qBAAA,CAAFM,EAAE;QAAEC,EAAG,GAAAP,qBAAA,CAAHO,EAAG,CAAA;MAC3B,IAAI,IAAI,CAAC7U,cAAc,CAAC8U,eAAc,KAAM,QAAQL,EAAE,EAAE;AACtD,QAAA,OAAO,IAAI,CAAA;AACb,OAAA;AACA,MAAA,IAAI,IAAI,CAACzU,cAAc,CAAC8U,eAAc,KAAM,IAAG,KAAML,EAAG,IAAGC,EAAE,CAAC,EAAE;AAC9D,QAAA,OAAO,IAAI,CAAA;AACb,OAAA;AACA,MAAA,IAAI,IAAI,CAAC1U,cAAc,CAAC8U,eAAgB,KAAI,IAAG,KAAML,EAAG,IAAGC,EAAG,IAAGC,EAAE,CAAC,EAAE;AACpE,QAAA,OAAO,IAAI,CAAA;AACb,OAAA;AACA,MAAA,IACE,IAAI,CAAC3U,cAAc,CAAC8U,eAAc,KAAM,SACvCL,EAAC,IAAKC,EAAC,IAAKC,EAAC,IAAKC,EAAE,CAAA,EACrB;AACA,QAAA,OAAO,IAAI,CAAA;AACb,OAAA;AACA,MAAA,IACE,IAAI,CAAC5U,cAAc,CAAC8U,eAAc,KAAM,SACvCL,EAAG,IAAGC,MAAMC,EAAC,IAAKC,MAAMC,EAAE,CAAA,EAC3B;AACA,QAAA,OAAO,IAAI,CAAA;AACb,OAAA;AACA,MAAA,OAAO,KAAK,CAAA;KACb;IAKDE,IAAI,EAAA,SAAAA,OAAA;AAAA,MAAA,IAAA/F,KAAA,GAAA,IAAA,CAAA;AACF,MAAA,OAAO,IAAI,CAAClP,QAAQ,CAACsT,QAAQ,CAACvJ,GAAG,CAAC,UAAC1E,CAAC,EAAEpG,KAAK,EAAK;AAAA,QAAA,IAAAiW,kBAAA,CAAA;QAC9C,IAAIhG,KAAI,CAACqF,QAAQ,EAAE;AACjB,UAAA,OAAO,EAAE,CAAA;AACX,SAAA;AACA,QAAA,IAAMY,YAAa,GAAAD,CAAAA,kBAAA,GAAEhG,KAAI,CAAC1O,YAAY,CAAAtB,QAAAA,CAAAA,MAAA,CAAUD,KAAK,MAAG,CAAC,MAAA,IAAA,IAAAiW,kBAAA,KAApCA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,kBAAA,CAAsCD,IAAI,CAAA;AAC/D,QAAA,OAAOE,iBAAiBxV,SAAQ,GAAIwV,YAAW,GAAI,KAAK,CAAA;AAC1D,OAAC,CAAC,CAAA;AACJ,KAAA;AACD,GAAA;AACF,CAAA,EAAC;AAIK,IAAMlO,OAAK,GAAmC;AACnDC,EAAAA,QAAQ,EAAE4L,gBAAc;EACxB3L,MAAM,EAAEC,QAAQ,CAAC,CAAC,EAAEC,QAAQ,CAAC,kBAAkB,CAAC,CAAA;;;;;;;;ACtGxC,EAAA,OAAAC,IAAA,CAAAlE,MAAM,CAAClB,OAAO,IADtBqF,SAAA,EAAA,EAAAC,WAAA,CAuBawJ,wBAvBbtJ,UAuBa,CAAA;;IArBV,OAAAxI,EAAAA,EAAAA,CAAAA,MAAA,CAAUoI,IAAA,CAAAlJ,MAAM,CAAC1B,gBAAgB,CAACJ,IAAI,CAAA;KAC/BgL,IAAY,CAAA9G,YAAA,CAAA,aAAA,CAAA,CAAA,EAAA;uBAEpB,YAAA;AAAA,MAAA,OAiBO,CAjBPiK,WAAA,CAiBOyG,oDAjBQ5J,IAAY,CAAA9G,YAAA,CAAA,OAAA,CAAA,CAAA,CAAA,EAAA;2BAEvB,YAAA;UAAA,OAAmD,mBADrD2J,kBAeO,CAAAW,QAAA,EAAA,IAAA,EAAAC,UAAA,CAdsBzD,WAAM,CAACtH,QAAQ,CAACsT,QAAQ,EAAA,UAA3CxV,OAAO,EAAEmB,KAAK,EAAA;YADxB,OAAAsI,SAAA,EAAA,EAAAC,WAAA,CAeOuK,kBAfPrK,UAeO,CAAA;AAbJsD,cAAAA,GAAG,EAAA9L,EAAAA,CAAAA,MAAA,CAAKoI,IAAA,CAAAlE,MAAM,CAAC3C,IAAI,EAAAvB,GAAAA,CAAAA,CAAAA,MAAA,CAAID,KAAK,CAAA;AAC5B,cAAA,OAAA,EAAOqI,IAAA,CAAAlJ,MAAM,CAAC1B,gBAAgB,CAACD,IAAI;AACnCwY,cAAAA,IAAI,EAAE3N,IAAI,CAAA2N,IAAA,CAAChW,KAAK,CAAA;aACT,EAAAqI,IAAA,CAAA9G,YAAY,CAAA,QAAA,CAAAtB,MAAA,CAAUD,KAAK,EAAA,GAAA,CAAA,CAAA,CAAA,EAAA;iCAEnC,YAAA;AAAA,gBAAA,OAOC,CAPDwL,WAOC,CAAA6H,4BAAA,EAAA;AANEzO,kBAAAA,MAAM,EAAEyD,IAAM,CAAAlE,MAAA,CAACS,MAAM;AACrB7D,kBAAAA,QAAQ,EAAElC,OAAO;AACjB2C,kBAAAA,IAAI,EAAE6G,IAAM,CAAAlE,MAAA,CAAC3C,IAAI;AACjBwM,kBAAAA,OAAO,EAAE3F,IAAM,CAAAlE,MAAA,CAAC6J,OAAO;AACvBsF,kBAAAA,SAAS,EAAEjL,IAAM,CAAAlE,MAAA,CAACmP,SAAS;AAC3BC,kBAAAA,KAAK,EAAElL,IAAM,CAAAlE,MAAA,CAACoP,KAAAA;;;;;;;;;;;;;;;;AC2BnBM,IAAAA,cAAe,GAAErM,eAAe,CAAC;AACrCC,EAAAA,IAAI,EAAE,0BAA0B;AAChCC,EAAAA,UAAU,EAAE;AACVC,IAAAA,gBAAgB,EAAhBA,gBAAgB;AAChB0F,IAAAA,UAAU,EAAVA,UAAU;AACVV,IAAAA,IAAI,EAAJA,IAAI;AACJC,IAAAA,IAAI,EAAJA,IAAAA;GACD;AACDlL,EAAAA,KAAK,EAAAI,cAAA,CAAA,EAAA,EACA+F,aAAa,EAAU,CAC3B;EACDC,KAAK,EAAA,SAAAA,KAACpG,CAAAA,KAA4B,EAAA;AAChC,IAAA,OAAOwC,gBAAgB,CAACiQ,kBAAkB,CAACzS,KAAK,CAAC,CAAC,CAAA;AACpD,GAAA;AACD,CAAA,EAAC;AAIK,IAAMsG,OAAK,GAAmC;AACnDC,EAAAA,QAAQ,EAAE4L,cAAc;EACxB3L,MAAM,EAAEC,QAAQ,CAAC,CAAC,EAAEC,QAAQ,CAAC,gBAAgB,CAAC,CAAA;;;;;;;;ACjEtC,EAAA,OAAAC,IAAA,CAAAlE,MAAM,CAAClB,OAAO,IADtBqF,SAAA,EAAA,EAAAC,WAAA,CA0BawJ,wBA1BbtJ,UA0Ba,CAAA;;AAxBX,IAAA,aAAU,EAAV,EAAU;IACT,OAAAxI,EAAAA,EAAAA,CAAAA,MAAA,CAAUoI,IAAA,CAAAlJ,MAAM,CAAC5B,cAAc,CAACF,IAAI,CAAA;KAC7BgL,IAAY,CAAA9G,YAAA,CAAA,aAAA,CAAA,CAAA,EAAA;uBAGlB,YAAA;MAAA,OAAmD,mBADrD2J,kBAmBO,CAAAW,QAAA,EAAA,IAAA,EAAAC,UAAA,CAlBsBzD,WAAM,CAACtH,QAAQ,CAACsT,QAAQ,EAAA,UAA3CxV,OAAO,EAAEmB,KAAK,EAAA;QADxB,OAAAsI,SAAA,EAAA,EAAAC,WAAA,CAmBO0J,kBAnBPxJ,UAmBO,CAAA;UAjBJsD,GAAG,EAAA,EAAA,CAAA9L,MAAA,CAAKoI,IAAA,CAAAlE,MAAM,CAAC3C,IAAI,EAAA,GAAA,CAAA,CAAAvB,MAAA,CAAID,KAAK,CAAA;SACrB,EAAAqI,IAAA,CAAA9G,YAAY,CAAA,QAAA,CAAAtB,MAAA,CAAUD,KAAK,EAAA,GAAA,CAAA,CAAA,CAAA,EAAA;6BAEnC,YAAA;AAAA,YAAA,OAaO,CAbPwL,WAAA,CAaOsH,kBAbPrK,UAaO,CAAA;AAZLuN,cAAAA,IAAI,EAAC,IAAG;AACP,cAAA,OAAA,EAAO3N,IAAA,CAAAlJ,MAAM,CAAC5B,cAAc,CAACC,IAAAA;eACtB6K,IAAY,CAAA9G,YAAA,CAAA,OAAA,CAAA,CAAA,EAAA;iCAEpB,YAAA;AAAA,gBAAA,OAOC,CAPDiK,WAOC,CAAA6H,4BAAA,EAAA;AANEzO,kBAAAA,MAAM,EAAEyD,IAAM,CAAAlE,MAAA,CAACS,MAAM;AACrB7D,kBAAAA,QAAQ,EAAElC,OAAO;AACjB2C,kBAAAA,IAAI,EAAE6G,IAAM,CAAAlE,MAAA,CAAC3C,IAAI;AACjBwM,kBAAAA,OAAO,EAAE3F,IAAM,CAAAlE,MAAA,CAAC6J,OAAO;AACvBsF,kBAAAA,SAAS,EAAEjL,IAAM,CAAAlE,MAAA,CAACmP,SAAS;AAC3BC,kBAAAA,KAAK,EAAElL,IAAM,CAAAlE,MAAA,CAACoP,KAAAA;;;;;;;;;;;;;;;;ACQzB,IAAM4C,mBAAmB,GAAmC;AAC1DlO,EAAAA,QAAQ,EAAEmO,cAAsB;AAChClO,EAAAA,MAAM,EAAEC,QAAQ,CAAC,CAAC,EAAEiN,QAAQ,CAAA;CAC7B,CAAA;AAEM,IAAMiB,eAAe,GAAG,CAC7BF,mBAAmB,EACnBG,OAAwB,EACxBC,OAA2B;AAE3BC,OAAkB,EAClBC,OAA6B,EAC7BC,OAA2B;;ACpCtB,IAAMC,sBAAsB,GAAmC;AACpE1O,EAAAA,QAAQ,EAAE2O,iBAAmB;EAC7B1O,MAAM,EAAEC,QAAQ,CAAC,CAAC,EAAE0O,YAAY,CAAC,OAAO,CAAC,CAAA;EAC1C;AAEYC,IAAAA,cAAc,GAAG,CAACH,sBAAsB;;ACUrD,eAAenP,eAAe,CAAC;AAC7BC,EAAAA,IAAI,EAAE,uBAAuB;AAC7BC,EAAAA,UAAU,EAAE;AACVC,IAAAA,gBAAgB,EAAhBA,gBAAAA;GACD;AACDjG,EAAAA,KAAK,EAAE;AACLkD,IAAAA,MAAM,EAAE;AACNqE,MAAAA,IAAI,EAAE8N,MAA8B;AACpC3V,MAAAA,QAAQ,EAAE,IAAA;KACX;AACD4V,IAAAA,iBAAiB,EAAE;AACjB/N,MAAAA,IAAI,EAAEI,MAA+C;AACrDjI,MAAAA,QAAQ,EAAE,IAAA;KACX;AACDI,IAAAA,IAAI,EAAE;AACJyH,MAAAA,IAAI,EAAEI,MAAM;AACZjI,MAAAA,QAAQ,EAAE,IAAA;AACX,KAAA;GACF;EACD0G,KAAK,EAAA,SAAAA,KAACpG,CAAAA,KAAsB,EAAA;IAC1B,IAAMuV,UAAU,GAAeC,IAAI,CACjCxV,KAAK,CAACkD,MAAM,EACZlD,KAAK,CAACsV,iBAAgB,CACT,CAAA;IACf,IAAM3I,aAAa,GAAoB8I,QAAQ,CAACC,QAAQ,CACtDH,UAAU,EACV,gBAAe,CAChB,CAAA;AAED,IAAA,IAAM7B,QAAS,GAAE,SAAXA,QAASA,CAAGrU,QAAyB,EAAA;MAAA,OACzCgW,MAAM,CAACM,SAAS,CAACC,cAAc,CAAC5H,IAAI,CAAC3O,QAAQ,EAAE,UAAU,CAAC,CAAA;AAAA,KAAA,CAAA;IAE5D,IAAIwW,oBAAqB,GAAE,KAAK,CAAA;IAChC,IAAIlJ,aAAc,KAAI,IAAK,IAAG+G,QAAQ,CAAC/G,aAAa,CAAC,EAAE;AACrDkJ,MAAAA,uBAAuBlJ,aAAa,CAACgG,QAAQ,CAAC5U,MAAO,GAAE,CAAC,CAAA;AAC1D,KAAA;IAEA,OAAO;AACLwX,MAAAA,UAAU,EAAVA,UAAU;AACV5I,MAAAA,aAAa,EAAbA,aAAa;AACbkJ,MAAAA,oBAAoB,EAApBA,oBAAAA;KACD,CAAA;AACH,GAAA;AACD,CAAA,CAAC;;;;;;;SChEWlP,IAAoB,CAAAkP,oBAAA,iBAA/BrM,kBAMK,CAAA,KAAA,EAAAF,YAAA,EAAA,CALHQ,WAIC,CAAA6H,4BAAA,EAAA;IAHEzO,MAAM,EAAEyD,IAAU,CAAA4O,UAAA;IAClBzV,IAAI,EAAE6G,IAAI,CAAA7G,IAAA;IACVT,QAAQ,EAAEsH,IAAa,CAAAgG,aAAAA;;;;;;ACLvB,IAAMmJ,iBAAiB,GAAG;EAC/BC,OAAO,EAAA,SAAAA,OAACC,CAAAA,EAAe,EAAA;IACrBA,EAAE,CAACC,gBAAgB,CAAC,uBAAuB,CAAC,CAACC,OAAO,CAAC,UAACC,CAAC,EAAA;AAAA,MAAA,OACrDA,CAAC,CAACC,YAAY,CAAC,UAAU,EAAE,IAAI,CAAC,CAAA;KACjC,CAAA,CAAA;AACH,GAAA;;;AC4HF,IAAMC,iBAAgB,GAAI,SAApBA,iBAAgBA,CAAKpS,GAAQ,EAAEf,MAAkB,EAAU;EAC/D,IACEmS,MAAM,CAACM,SAAS,CAACC,cAAc,CAAC5H,IAAI,CAAC9K,MAAM,EAAE,IAAI,CAAA,IACjDmS,MAAM,CAACM,SAAS,CAACC,cAAc,CAAC5H,IAAI,CAAC9K,MAAM,EAAE,KAAK,CAAA,EAClD;AACAe,IAAAA,GAAG,CAACqS,YAAY,CAACpT,MAAM,CAAC,CAAA;AAC1B,GAAA;AACA,EAAA,OAAOe,GAAG,CAAA;AACZ,CAAC,CAAA;AAED,eAAe6B,eAAe,CAAC;AAC7BC,EAAAA,IAAI,EAAE,uBAAuB;AAC7BC,EAAAA,UAAU,EAAE;AACVC,IAAAA,gBAAgB,EAAhBA,gBAAgB;AAChB0E,IAAAA,KAAK,EAALA,KAAK;AACLrD,IAAAA,QAAQ,EAARA,QAAQ;AACR6D,IAAAA,QAAQ,EAARA,QAAQ;AACRZ,IAAAA,KAAK,EAALA,KAAK;AACLc,IAAAA,IAAI,EAAJA,IAAI;AACJR,IAAAA,UAAU,EAAVA,UAAU;AACVS,IAAAA,OAAO,EAAPA,OAAO;AACPF,IAAAA,aAAa,EAAbA,aAAa;AACbmL,IAAAA,UAAU,EAAVA,UAAU;AACV5K,IAAAA,UAAU,EAAVA,UAAU;AACVV,IAAAA,IAAI,EAAJA,IAAI;AACJC,IAAAA,IAAI,EAAJA,IAAI;AACJsL,IAAAA,MAAM,EAANA,MAAAA;GACD;AACDC,EAAAA,UAAU,EAAE;AACVX,IAAAA,iBAAiB,EAAjBA,iBAAAA;GACD;AACD9V,EAAAA,KAAK,EAAE;AACLpE,IAAAA,KAAK,EAAE;AACL2L,MAAAA,IAAI,EAAE8N,MAAyB;AAC/B3V,MAAAA,QAAQ,EAAE,IAAA;AACX,KAAA;GACF;EACD0G,KAAK,EAAA,SAAAA,KAACpG,CAAAA,KAAK,EAAA;AAET,IAAA,IAAMtE,OAAQ,GAAEsE,KAAK,CAACpE,KAAK,CAACF,OAAO,CAAA;AACnC,IAAA,IAAMgb,qBAAoB,GAAIrB,MAAM,CAACsB,IAAI,CACvCjb,OAAO,CAACyD,KAAK,CAAC+D,MAAM,CAAC0T,UAAW,IAAG,EAAC,CACrC,CAAA;AAED,IAAA,IAAMC,cAAa,GAAIxB,MAAM,CAACsB,IAAI,CAACjb,OAAO,CAACyD,KAAK,CAACkE,IAAI,CAAC,CAACmL,MAAM,CAC3D,UAACsI,CAAC,EAAA;AAAA,MAAA,OAAK,CAACJ,qBAAqB,CAACK,QAAQ,CAACD,CAAC,CAAA,CAAA;KACzC,CAAA,CAAA;IAED,IAAME,wBAAuB,GAAI,SAA3BA,wBAAuBA,CAC3BC,QAAgB,EAChBC,SAAa,EACc;MAC3B,IAAIC,UAAU,GAA2BnY,SAAS,CAAA;MAClD,IAAIoY,YAAY,GAAgCpY,SAAS,CAAA;AAEzD,MAAA,IAAItD,OAAO,CAACyD,KAAK,CAAC+D,MAAM,CAACmU,iBAAiB,EAAE;AAC1C,QAAA,IAAMC,cAAa,GAAIjC,MAAM,CAACsB,IAAI,CAChCjb,OAAO,CAACyD,KAAK,CAAC+D,MAAM,CAACmU,iBAAgB,CACtC,CAACE,IAAI,CAAC,UAACC,OAAO,EAAA;UAAA,OAAK,IAAIC,MAAM,CAACD,OAAO,CAAC,CAACE,IAAI,CAACT,QAAQ,CAAC,CAAA;SAAC,CAAA,CAAA;AACvD,QAAA,IAAIK,cAAc,EAAE;UAClBH,UAAW,GAAEzb,OAAO,CAACyD,KAAK,CAAC+D,MAAM,CAACmU,iBAAiB,CAACC,cAAc,CAAC,CAAA;AACrE,SAAA;AACF,OAAA;AAEA,MAAA,IACE,CAACH,UAAS,IACVQ,OAAA,CAAOjc,OAAO,CAACyD,KAAK,CAAC+D,MAAM,CAAC0U,oBAAqB,CAAA,KAAI,QAAO,EAC5D;AACAT,QAAAA,UAAS,GAAIzb,OAAO,CAACyD,KAAK,CAAC+D,MAAM,CAAC0U,oBAAoB,CAAA;AACxD,OAAA;AAEA,MAAA,IAAI,CAACT,UAAS,IAAKD,SAAU,KAAIlY,SAAS,EAAE;AAAA,QAAA,IAAA6Y,qBAAA,CAAA;AAG1CV,QAAAA,UAAW,IAAAU,qBAAA,GAAEpC,QAAQ,CAACqC,UAAU,CAC9B;AAAEC,UAAAA,IAAI,EAAEb,SAAAA;SAAW,EACnB;AACEU,UAAAA,oBAAoB,EAAE,KAAK;UAC3BlY,QAAQ,EAAE,SAAAA,QAAA,GAAA;AAAA,YAAA,OAAM,KAAK,CAAA;AAAA,WAAA;SACvB,CACD,CAACkX,UAAU,MAAA,IAAA,IAAAiB,qBAAA,KANCA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,qBAAA,CAMCE,IAAI,CAAA;AACpB,OAAA;AAEA,MAAA,IAAIZ,UAAU,EAAE;QACd,IAAIA,UAAU,CAAC5P,IAAG,KAAM,YAAY4P,UAAU,CAAC5P,IAAG,KAAM,OAAO,EAAE;AAAA,UAAA,IAAAyQ,iBAAA,CAAA;UAC/DZ,YAAW,GAAI3B,QAAQ,CAACC,QAAQ,CAACyB,UAAU,EAAE,OAAO,CAAC,CAAA;AACpDC,UAAAA,YAA4B,CAACnb,KAAM,GAAA,CAAA+b,iBAAA,GAClCb,UAAU,CAACc,sEAASC,SAAS,CAACjB,QAAQ,CAAC,CAAA;AACzC,SAAA,MAAK;AACLG,UAAAA,YAAa,GAAEnO,oBAAoB,CACjCvN,OAAO,CAACyD,KAAK,CAACW,IAAK,GAAE,MAAMqY,MAAM,CAAClB,QAAQ,CAAA,CAC3C,CAAA;AACH,SAAA;AACF,OAAA;MAEA,OAAO;AACLmB,QAAAA,YAAY,EAAEnB,QAAQ;QACtBnX,IAAI,EAAEwD,YAAY,CAAC5H,OAAO,CAACyD,KAAK,CAACW,IAAI,EAAEmX,QAAQ,CAAC;AAChD/T,QAAAA,MAAM,EAAEiU,UAAU;AAClB9X,QAAAA,QAAQ,EAAE+X,YAAAA;OACX,CAAA;KACF,CAAA;AAED,IAAA,IAAM7X,cAAe,GAAEN,wBAAwB,CAACe,KAAK,CAACpE,KAAK,CAAC,CAAA;AAC5D,IAAA,IAAMyc,uBAAwB,GAAE3X,GAAG,CAA2B,EAAE,CAAC,CAAA;AAEjEmW,IAAAA,cAAc,CAACX,OAAO,CAAC,UAACe,QAAQ,EAAK;AACnC,MAAA,IAAMqB,kBAAmB,GAAEtB,wBAAwB,CACjDC,QAAQ,EACRvb,OAAO,CAACyD,KAAK,CAACkE,IAAI,CAAC4T,QAAQ,CAAA,CAC5B,CAAA;AACDoB,MAAAA,uBAAuB,CAAClZ,KAAK,CAAC0J,IAAI,CAACyP,kBAAkB,CAAC,CAAA;AACxD,KAAC,CAAC,CAAA;IAEF,IAAM7a,SAASP,SAAS,CAACxB,OAAO,CAACyD,KAAK,CAACE,QAAQ,CAAC,CAAA;AAChD,IAAA,IAAMkZ,eAAc,GAAI7X,GAAG,CAAgB,EAAE,CAAC,CAAA;AAC9C,IAAA,IAAMuD,GAAE,GAAIH,MAAM,EAAE,CAAA;IAEpB,IAAI0U,kBAAkB,GAA4BxZ,SAAS,CAAA;IAC3D,IAAIyZ,qBAAqB,GACvBzZ,SAAS,CAAA;IAIX,IAAI2Y,OAAA,CAAQjc,OAAO,CAACyD,KAAK,CAAC+D,MAAc,CAACwV,aAAc,CAAI,KAAA,QAAQ,EAAE;AACnEF,MAAAA,kBAAiB,GAAK9c,OAAO,CAACyD,KAAK,CAAC+D,MAAc,CAACwV,aAAa,CAAA;AAClE,KAAA;IAEA,IACEf,OAAA,CAAOjc,OAAO,CAACyD,KAAK,CAAC+D,MAAM,CAAC0U,oBAAqB,CAAI,KAAA,QAAO,IAC5DD,OAAA,CAAOjc,OAAO,CAACyD,KAAK,CAAC+D,MAAM,CAACmU,iBAAgB,CAAM,KAAA,QAAO,EACzD;AACA,MAAA,IAAMsB,0BAA0B,GAAgB;AAC9CpR,QAAAA,IAAI,EAAE,QAAQ;AACdiQ,QAAAA,OAAO,EAAEnC,MAAM,CAACsB,IAAI,CAACjb,OAAO,CAACyD,KAAK,CAAC+D,MAAM,CAACmU,iBAAiB,CAAC,CAAChO,IAAI,CAAC,GAAG,CAAA;OACtE,CAAA;MAEDmP,kBAAiB,GAAIA,kBAAiB,GAClC;AAAEI,QAAAA,KAAK,EAAE,CAACJ,kBAAkB,EAAEG,0BAA0B,CAAA;AAAE,OAAA,GAC1DA,0BAA0B,CAAA;AAChC,KAAA;AAEA,IAAA,IAAIH,kBAAkB,EAAE;MACtBC,qBAAoB,GAAIpC,iBAAiB,CACvCpS,GAAG,EACHuU,kBAAiB,CAClB,CAACK,OAAO,CAACL,kBAAkB,CAAC,CAAA;AAC/B,KAAA;AAEA,IAAA,IAAM3Y,YAAa,GAAE,SAAfA,YAAaA,CAAGC,IAAY,EAAK;AAAA,MAAA,IAAAN,qBAAA,CAAA;AACrC,MAAA,IAAMQ,KAAI,GAAIC,GAAG,CAAAT,CAAAA,qBAAA,GAACD,cAAc,CAACJ,KAAK,MAAA,IAAA,IAAAK,qBAAA,KAApBA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,qBAAA,CAAsBU,OAAO,EAAEJ,IAAI,CAAC,CAAA;MAEtD,OAAOE,KAAM,IAAGG,aAAa,CAACH,KAAK,CAAE,GAAEA,KAAM,GAAE,EAAE,CAAA;KAClD,CAAA;AAED,IAAA,IAAMoM,IAAIjK,aAAa,EAAE,CAAA;IACzB,OAAO;AACLiK,MAAAA,CAAC,EAADA,CAAC;AACDvM,MAAAA,YAAY,EAAZA,YAAY;AACZoE,MAAAA,GAAG,EAAHA,GAAG;AACHwU,MAAAA,qBAAqB,EAArBA,qBAAqB;AACrB/c,MAAAA,OAAO,EAAPA,OAAO;AACP+B,MAAAA,MAAM,EAANA,MAAM;AACN8B,MAAAA,cAAc,EAAdA,cAAc;AACd8Y,MAAAA,uBAAuB,EAAvBA,uBAAuB;AACvBrB,MAAAA,wBAAwB,EAAxBA,wBAAwB;AACxBuB,MAAAA,eAAe,EAAfA,eAAAA;KACD,CAAA;GACF;AACDrZ,EAAAA,QAAQ,EAAE;IACR4Z,mBAAmB,EAAA,SAAAA,sBAAA;AACjB,MAAA;AAEE,QAAA,CAAC,IAAI,CAACpd,OAAO,CAAC4Q;AAEb,QAAA,IAAI,CAAC/M,cAAc,CAACgN,QAAO,IAAK,IAAI,CAACwM,oBAAoB;QAE1D,IAAI,CAACC,iBAAiB,CAACjb,MAAO,GAAE,KAChC,CAAC,IAAI,CAACwa,eAAAA;AAAc,QAAA;KAEvB;IACDQ,oBAAoB,EAAA,SAAAA,uBAAA;MAClB,OACE,IAAI,CAACrd,OAAO,CAACwH,MAAM,CAAC+V,aAAY,KAAMja,SAAQ;MAC9C,IAAI,CAACtD,OAAO,CAAC2H,IAAK;AAElBgS,MAAAA,MAAM,CAACsB,IAAI,CAAC,IAAI,CAACjb,OAAO,CAAC2H,IAAI,CAAC,CAACtF,UAC7B,IAAI,CAACrC,OAAO,CAACwH,MAAM,CAAC+V,aAAY,CAAA;KAErC;IACDC,sBAAsB,EAAA,SAAAA,yBAAA;AACpB,MAAA;AAEE,QAAA,CAAC,IAAI,CAACxd,OAAO,CAAC4Q;AAEb,QAAA,IAAI,CAAC/M,cAAc,CAACgN,YAAY,IAAI,CAAC4M,oBAAAA;AAAoB,QAAA;KAE7D;IACDA,oBAAoB,EAAA,SAAAA,uBAAA;MAClB,OACE,IAAI,CAACzd,OAAO,CAACwH,MAAM,CAACkW,aAAY,KAAMpa,SAAQ;MAC9C,IAAI,CAACtD,OAAO,CAAC2H,IAAK;AAElBgS,MAAAA,MAAM,CAACsB,IAAI,CAAC,IAAI,CAACjb,OAAO,CAAC2H,IAAI,CAAC,CAACtF,UAC7B,IAAI,CAACrC,OAAO,CAACwH,MAAM,CAACkW,aAAY,CAAA;KAErC;IACDJ,iBAAiB,EAAA,SAAAA,oBAAA;AAAA,MAAA,IAAAzK,KAAA,GAAA,IAAA,CAAA;MACf,IAAI,IAAI,CAACgK,eAAe,EAAE;QACxB,IAAMc,QAAS,GAAE,IAAI,CAACZ,qBAAoB,GACrCa,QAAQ,CAAC,IAAI,CAACb,qBAAqB,EAAE,IAAI,CAACF,eAAe,CAAA,CACvDnP,GAAG,CAAC,UAACnB,KAAK,EAAA;UAAA,OAAKA,KAAK,CAACW,OAAO,CAAA;AAAA,SAAA,CAAA,CAC5B4F,MAAM,CAAC,UAAC5F,OAAO,EAAA;AAAA,UAAA,OAAKA,OAAO,CAAA;AAAA,SAAA,CAAa,GAC3C,EAAE,CAAA;AACN,QAAA,IACE,IAAI,CAAC8N,qBAAqB,CAACK,QAAQ,CAAC,IAAI,CAACwB,eAAe,CAAA,IACxD,IAAI,CAACF,uBAAuB,CAACd,IAAI,CAC/B,UAACgC,EAAE,EAAA;AAAA,UAAA,OAAKA,EAAE,CAACnB,YAAW,KAAM7J,KAAI,CAACgK,eAAc,CAAA;SAC/C,CAAA,KAAIvZ,SAAQ,EACd;UAEAqa,QAAQ,CAACxQ,IAAI,CAAAtK,YAAAA,CAAAA,MAAA,CACE,IAAI,CAACga,eAAe,EAAA,sBAAA,CAAqB,CACvD,CAAA;AACH,SAAA;QAGA,IAAI,IAAI,CAACA,eAAe,CAACxB,QAAQ,CAAC,GAAG,CAAC,EAAE;AACtCsC,UAAAA,QAAQ,CAACxQ,IAAI,CAAC,wCAAwC,CAAC,CAAA;AACzD,SAAA;QACA,IAAI,IAAI,CAAC0P,eAAe,CAACxB,QAAQ,CAAC,GAAG,CAAC,EAAE;AACtCsC,UAAAA,QAAQ,CAACxQ,IAAI,CAAC,wCAAwC,CAAC,CAAA;AACzD,SAAA;QACA,IAAI,IAAI,CAAC0P,eAAe,CAACxB,QAAQ,CAAC,GAAG,CAAC,EAAE;AACtCsC,UAAAA,QAAQ,CAACxQ,IAAI,CAAC,wCAAwC,CAAC,CAAA;AACzD,SAAA;AAEA,QAAA,OAAOwQ,QAAQ,CAAA;AACjB,OAAA;AAEA,MAAA,OAAO,EAAE,CAAA;KACV;IACDG,WAAW,EAAA,SAAAA,cAAA;AACT,MAAA,OAAO,IAAI,CAACpN,CAAC,CAAC,IAAI,CAAC2C,OAAO,CAAC,yBAAyB,CAAC,EAAE,cAAc,CAAC,CAAA;KACvE;IACD2H,qBAAqB,EAAA,SAAAA,wBAAA;AACnB,MAAA,OAAOrB,MAAM,CAACsB,IAAI,CAAC,IAAI,CAACjb,OAAO,CAACwH,MAAM,CAAC0T,cAAc,EAAE,CAAC,CAAA;KACzD;IACD6C,yBAAyB,EAAA,SAAAA,4BAAA;AAAA,MAAA,IAAAC,qBAAA,CAAA;MACvB,IAAM9B,oBAAqB,GAAE,IAAI,CAAClc,OAAO,CAACwH,MAAM,CAAC0U,oBAAoB,CAAA;AAErE,MAAA,IAAM3b,KAAM,GACV0b,OAAA,CAAOC,oBAAmB,CAAM,KAAA,YAChCvC,MAAM,CAACM,SAAS,CAACC,cAAc,CAAC5H,IAAI,CAAC4J,oBAAoB,EAAE,OAAO,CAAA,GAAA8B,CAAAA,qBAAA,GAC9D9B,oBAAoB,CAACK,KAAM,MAAA,IAAA,IAAAyB,qBAAA,KAAAA,KAAAA,CAAAA,GAAAA,qBAAA,GAAG,uBAAsB,GACpD,uBAAuB,CAAA;AAE7B,MAAA,OAAO,IAAI,CAACtN,CAAC,CAAC,IAAI,CAAC2C,OAAO,CAAC,OAAO,CAAC,EAAE9S,KAAK,CAAC,CAAA;KAC5C;IACD0d,UAAU,EAAA,SAAAA,aAAA;AACR,MAAA,OAAO,IAAI,CAACvN,CAAC,CACX,IAAI,CAAC2C,OAAO,CAAC,SAAS,CAAC,EACvB,sCAAsC,EACtC;AACE6I,QAAAA,oBAAoB,EAAE;UACpBK,KAAK,EAAE,IAAI,CAACwB,yBAAAA;AACb,SAAA;AACH,OAAA,CACD,CAAA;KACF;IACDG,WAAW,EAAA,SAAAA,cAAA;AACT,MAAA,OAAO,IAAI,CAACxN,CAAC,CACX,IAAI,CAAC2C,OAAO,CAAC,YAAY,CAAC,EAC1B,2CAA2C,EAC3C;AACE6I,QAAAA,oBAAoB,EAAE;UACpBK,KAAK,EAAE,IAAI,CAACwB,yBAAAA;AACb,SAAA;AACH,OAAA,CACD,CAAA;AACH,KAAA;GACD;AACDI,EAAAA,KAAK,EAAE;AACL,IAAA,cAAc,EAAE;MACdC,OAAO,EAAA,SAAAA,OAACC,CAAAA,OAAO,EAAA;AAAA,QAAA,IAAAhH,MAAA,GAAA,IAAA,CAAA;QAGb,IAAI4E,OAAA,CAAO,IAAI,CAACjc,OAAO,CAAC2H,IAAG,CAAM,KAAA,QAAQ,EAAE;AACzC,UAAA,IAAMsT,IAAG,GAAItB,MAAM,CAACsB,IAAI,CAACoD,OAAO,CAAC,CAAA;UACjC,IAAIC,UAAW,GAAE,KAAK,CAAA;AACtB,UAAA,IAAI,CAAC3B,uBAAuB,CAACnC,OAAO,CAAC,UAACqD,EAAE,EAAK;AAC3C,YAAA,IACEA,EAAE,CAACrW,WACF,CAACyT,IAAI,CAACI,QAAQ,CAACwC,EAAE,CAACnB,YAAY,KAC7B2B,OAAO,CAACR,EAAE,CAACnB,YAAY,CAAE,KAAIpZ,aAC5B+a,OAAO,CAACR,EAAE,CAACnB,YAAY,CAAA,KAAM,QAC5BmB,EAAE,CAACrW,MAAM,CAACqE,SAAS,MAAO;cAC9B;AACA,cAAA,IAAM0S,QAAO,GAAI3M,kBAAkB,CAC/BiM,EAAE,CAACrW,MAAM,EACT6P,MAAI,CAACrX,OAAO,CAACqR,UAAS,CACzB,CAAA;cACDiN,UAAW,GAAED,OAAO,CAACR,EAAE,CAACnB,YAAY,CAAA,KAAM6B,QAAQ,CAAA;AAClDF,cAAAA,OAAO,CAACR,EAAE,CAACnB,YAAY,CAAE,GAAE6B,QAAQ,CAAA;AACrC,aAAA;AACF,WAAC,CAAC,CAAA;AACF,UAAA,IAAID,UAAU,EAAE;AACd,YAAA,IAAI,CAACpe,KAAK,CAACiF,YAAY,CAAC,IAAI,CAACnF,OAAO,CAACoE,IAAI,EAAEia,OAAO,CAAC,CAAA;AACrD,WAAA;AACF,SAAA;OACD;AACDG,MAAAA,IAAI,EAAE,IAAA;AACP,KAAA;GACF;AACD7M,EAAAA,OAAO,EAAE;AACP/J,IAAAA,YAAY,EAAZA,YAAY;IACZyL,OAAO,EAAA,SAAAA,OAAC1E,CAAAA,GAAW,EAAA;MACjB,OAAO2E,UAAU,CACf,IAAI,CAACtT,OAAO,CAACwH,MAAM,EACnB,IAAI,CAACxH,OAAO,CAAC2D,QAAQ,EACrB,IAAI,CAAC3D,OAAO,CAACoE,IAAI,0BAAAvB,MAAA,CACO8L,GAAG,CAAC,CAC7B,CAAA;KACF;IACD8P,WAAW,EAAA,SAAAA,cAAA;MACT,IAAI,IAAI,CAAC5B,eAAe,EAAE;QACxB,IAAMD,kBAAmB,GAAE,IAAI,CAACtB,wBAAwB,CACtD,IAAI,CAACuB,eAAe,EACpBvZ,SAAQ,CACT,CAAA;AACD,QAAA,IAAIsZ,kBAAkB,EAAE;AACtB,UAAA,IAAI,CAACD,uBAAsB,GAAA9Z,EAAAA,CAAAA,MAAA,CAAA6b,kBAAA,CACtB,IAAI,CAAC/B,uBAAuB,CAC/BC,EAAAA,CAAAA,kBAAkB,CACnB,CAAA,CAAA;AACH,SAAA;AAEA,QAAA,IACEX,OAAA,CAAO,IAAI,CAACjc,OAAO,CAAC2H,IAAG,CAAA,KAAM,YAC7BiV,kBAAkB,CAACpV,MAAK,EACxB;UACA,IAAI,CAACxH,OAAO,CAAC2H,IAAI,CAAC,IAAI,CAACkV,eAAe,CAAE,GAAEjL,kBAAkB,CAC1DgL,kBAAkB,CAACpV,MAAM,EAAE,IAAI,CAACxH,OAAO,CAACqR,UAAS,CAClD,CAAA;AAED,UAAA,IAAI,CAACnR,KAAK,CAACiF,YAAY,CAAC,IAAI,CAACnF,OAAO,CAACoE,IAAI,EAAE,IAAI,CAACpE,OAAO,CAAC2H,IAAI,CAAC,CAAA;AAC/D,SAAA;AACF,OAAA;MACA,IAAI,CAACkV,eAAc,GAAI,EAAE,CAAA;KAC1B;IACD8B,cAAc,EAAA,SAAAA,cAACpD,CAAAA,QAAgB,EAAA;MAC7B,IAAI,CAACoB,uBAAwB,GAAE,IAAI,CAACA,uBAAuB,CAAC7J,MAAM,CAChE,UAAC8L,CAAC,EAAA;AAAA,QAAA,OAAKA,CAAC,CAAClC,YAAa,KAAInB,QAAO,CAAA;OAClC,CAAA,CAAA;MACD,IAAIU,OAAA,CAAO,IAAI,CAACjc,OAAO,CAAC2H,IAAG,CAAM,KAAA,QAAQ,EAAE;AACzC,QAAA,OAAO,IAAI,CAAC3H,OAAO,CAAC2H,IAAI,CAAC4T,QAAQ,CAAC,CAAA;AAClC,QAAA,IAAI,CAACrb,KAAK,CAACiF,YAAY,CAAC,IAAI,CAACnF,OAAO,CAACoE,IAAI,EAAE,IAAI,CAACpE,OAAO,CAAC2H,IAAI,CAAC,CAAA;AAC/D,OAAA;AACF,KAAA;AACD,GAAA;AACF,CAAA,CAAC;;;;;;;;;;;;;;;;;;ACxec,EAAA,OAAAsD,IAAA,CAAAjL,OAAO,CAAC6F,OAAO,iBAA7BsF,WA2EQ,CAAAuI,iBAAA,EAAA;;AA3EuBY,IAAAA,SAAS,EAAC,GAAA;;uBACvC,YAAA;AAAA,MAAA,OAqCc,CArCdlG,WAqCc,CAAAwF,uBAAA,EAAA,IAAA,EAAA;2BApCZ,YAAA;AAAA,UAAA,OAmCW,CAnCXxF,WAmCW,CAAAyF,oBAAA,EAAA;AAnCAtD,YAAAA,IAAI,EAAJ,EAAA;AAAI,WAAA,EAAA;+BACb,YAAA;AAAA,cAAA,OAAiE,CAAjEnC,WAAiE,CAAA0F,0BAAA,EAAA,IAAA,EAAA;mCAAhD,YAAA;AAAA,kBAAA,OAA+B,iCAA5B7I,IAA0B,CAAA8S,yBAAA,CAAA,EAAA,CAAA,CAAA;;;kBAC9C3P,WAAoB,CAAA6F,mBAAA,CAAA,EAEpB7F,WAaS,CAAAyQ,kBAAA,EAAA,IAAA,EAAA;gBAZP,SAAA3Q,EAAAA,OAAA,CAAA,UAAAC,IAAA,EAAA;AAAA,kBAAA,IADiB2Q,UAAW,GAAA3Q,IAAA,CAAX2Q,UAAW,CAAA;kBAAA,OAAA,CAC5BC,cAAA,CAAA3Q,WAAA,CAWc4Q,yBAXd3T,UAWc,CAAA;AATXrH,oBAAAA,QAAQ,EAAE,IAAI;AACd,oBAAA,OAAA,EAAOiH,IAAA,CAAAlJ,MAAM,CAAC/B,OAAO,CAACE,KAAK;oBAC3B,gBAAc,EAAE+K,IAAiB,CAAAqS,iBAAA;gCACzBrS,IAAe,CAAA4R,eAAA;;6BAAf5R,IAAe,CAAA4R,eAAA,GAAA5H,MAAA,CAAA;AAAA,qBAAA,CAAA;AACvBgK,oBAAAA,SAAS,EAAEH,UAAU;oBACrBhB,WAAW,EAAE7S,IAAW,CAAA6S,WAAA;AACxBtJ,oBAAAA,QAAQ,EAAA,CAAGvJ,IAAO,CAAAjL,OAAA,CAAC4Q,OAAAA;qBACZ3F,IAAY,CAAA9G,YAAA,CAAA,cAAA,CAAA,CAAA,EAAA,IAAA,EAAA,EAAA,EAAA,CAAA,OAAA,EAAA,gBAAA,EAAA,YAAA,EAAA,WAAA,EAAA,aAAA,EAAA,UAAA,CAAA,CAAA,EAAA;;;kBAIxBiK,WAgBW,CAAAL,oBAAA,EAAA;AAhBAC,gBAAAA,MAAM,EAAN,EAAA;AAAM,eAAA,EAAA;AACEC,gBAAAA,SAAS,EAAAC,OAAA,CACxB,UAAAyH,KAAA,EAAA;AAAA,kBAAA,IAD4BrR,KAAI,GAAAqR,KAAA,CAAJrR,KAAI,CAAA;AAAA,kBAAA,OAAA,CAChC8J,WAAA,CAWOgG,kBAXP/I,UAWO,CAAA;AAVLgJ,oBAAAA,GAAE,EAAF,EAAE;AACF7I,oBAAAA,IAAG,EAAH,EAAG;AACH8I,oBAAAA,SAAS,EAAC,GAAE;AACZC,oBAAAA,KAAI,EAAJ,EAAI;oBACH,YAAU,EAAEtJ,IAAU,CAAAgT,UAAAA;qBACf3Z,KAAK,EAAA;oBACZkQ,QAAQ,EAAEvJ,IAAmB,CAAAmS,mBAAA;oBAC7B3I,OAAK,EAAExJ,IAAW,CAAAwT,WAAAA;;uCAEnB,YAAA;AAAA,sBAAA,OAAwB,CAAxBrQ,WAAwB,CAAAW,iBAAA,EAAA,IAAA,EAAA;2CAAhB,YAAA;AAAA,0BAAA,OAAQ,iBAAR,UAAQ,CAAA;;;;;;;;mCAEV,YAAA;AAAA,kBAAA,OACV,CADUzD,eAAA,CAAA,GACV,mBAAGL,IAAS,CAAAgT,UAAA,CAAA,EAAA,CAAA,CAAA;;;;;;;;;UAIlB7P,WAmCa,CAAAuG,sBAAA,EAAA,IAAA,EAAA;2BAjCT,YAAA;UAAA,OAAkD,EADpDzJ,SAAA,CAAA,IAAA,CAAA,EAAA4C,kBAAA,CAiCOW,QAhCsB,EAAA,IAAA,EAAAC,UAAA,CAAAzD,IAAA,CAAA0R,uBAAuB,EAA1C,UAAAlb,OAAO,EAAEmB,KAAK,EAAA;gCADxBuI,WAiCO,CAAA0J,gBAAA,EAAA;cA/BJlG,GAAG,EAAA,EAAA,CAAA9L,MAAA,CAAKD,KAAK,CAAA;;iCAEd,YAAA;AAAA,gBAAA,OASS,CATTwL,WASS,CAAAsH,gBAAA,EAAA,IAAA,EAAA;qCARP,YAAA;AAAA,oBAAA,OAQA,CAPQjU,OAAO,CAAC+F,MAAO,IAAG/F,OAAO,CAACkC,QAAQ,iBAD1CwH,WAQA,CAAA8K,4BAAA,EAAA;;sBANGzO,MAAM,EAAE/F,OAAO,CAAC+F,MAAM;sBACtB7D,QAAQ,EAAElC,OAAO,CAACkC,QAAQ;sBAC1BS,IAAI,EAAE3C,OAAO,CAAC2C,IAAI;AAClBwM,sBAAAA,OAAO,EAAE3F,IAAO,CAAAjL,OAAA,CAAC4Q,OAAO;AACxBsF,sBAAAA,SAAS,EAAEjL,IAAO,CAAAjL,OAAA,CAACkW,SAAS;AAC5BC,sBAAAA,KAAK,EAAElL,IAAO,CAAAjL,OAAA,CAACmW,KAAAA;;;;0BAEPlL,IAAA,CAAAjL,OAAO,CAAC4Q,OAAO,IAA5B1F,SAAA,EAAA,EAAAC,WAAA,CAAAuK,gBAAA,EAAA;;kBAA8B,OAAM,EAAA,QAAA;;qCAClC,YAAA;AAAA,oBAAA,OAgBY,CAhBZtH,WAgBY,CAAAL,oBAAA,EAAA;AAhBDC,sBAAAA,MAAM,EAAN,EAAA;AAAM,qBAAA,EAAA;AACEC,sBAAAA,SAAS,EAAAC,OAAA,CACxB,UAAA0H,KAAA,EAAA;AAAA,wBAAA,IAD4BtR,KAAI,GAAAsR,KAAA,CAAJtR,KAAI,CAAA;wBAAA,OAAA,CAChC8J,WAWO,CAAAgG,gBAAA,EAXP/I,UACU,CAUH/G,KAVQ,EAAA;AACb+P,0BAAAA,GAAE,EAAF,EAAE;AACF7I,0BAAAA,IAAG,EAAH,EAAG;AACH8I,0BAAAA,SAAS,EAAC,GAAE;AACZC,0BAAAA,KAAI,EAAJ,EAAI;0BACH,YAAU,EAAEtJ,IAAW,CAAAiT,WAAA;0BACvB1J,QAAQ,EAAEvJ,IAAsB,CAAAuS,sBAAA;0BAChC/I,OAAK,EAAE,SAAAA,OAAAA,CAAAQ,MAAA,EAAA;AAAA,4BAAA,OAAAhK,IAAA,CAAA0T,cAAc,CAACld,OAAO,CAACib,YAAY,CAAA,CAAA;AAAA,2BAAA;;6CAE3C,YAAA;AAAA,4BAAA,OAA8C,CAA9CtO,WAA8C,CAAAW,iBAAA,EAAA;8BAAtC,OAAM,EAAA,aAAA;AAAa,6BAAA,EAAA;iDAAC,YAAA;AAAA,gCAAA,OAAU,iBAAV,YAAU,CAAA;;;;;;;;yCAEhC,YAAA;AAAA,wBAAA,OACV,CADUzD,eAAA,CAAA,GACV,mBAAGL,IAAU,CAAAiT,WAAA,CAAA,EAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;AChBnBlP,IAAAA,iBAAc,GAAI5E,eAAe,CAAC;AACtCC,EAAAA,IAAI,EAAE,iBAAiB;AACvBC,EAAAA,UAAU,EAAE;AACVC,IAAAA,gBAAgB,EAAhBA,gBAAgB;AAChB2U,IAAAA,oBAAoB,EAApBA,QAAAA;GACD;AACD5a,EAAAA,KAAK,EAAAI,cAAA,CAAA,EAAA,EACA+F,aAAa,EAAkB,CACnC;EACDC,KAAK,EAAA,SAAAA,KAACpG,CAAAA,KAAoC,EAAA;AACxC,IAAA,OAAOK,iBAAiB,CAACwa,wBAAwB,CAAC7a,KAAK,CAAC,CAAC,CAAA;GAC1D;AACDd,EAAAA,QAAQ,EAAE;IACR4b,gBAAgB,EAAA,SAAAA,mBAAA;AACd,MAAA,OAAOC,oBAAoB,CAAC,IAAI,CAACrf,OAAO,CAACmR,SAAS,CAAC,CACjD,IAAI,CAACnR,OAAO,CAACwH,MAAM,EACnB,IAAI,CAACxH,OAAO,CAAC2D,QAAQ,CAACyN,KAAK,EAC3B,IAAI,CAACpR,OAAO,CAACoE,IAAG,CACjB,CAAA;KACF;IACDkb,gBAAgB,EAAA,SAAAA,mBAAA;MACd,IAAMC,MAAK,GAAIC,2BAA2B;AAExC,MAAA,IAAI,CAACxf,OAAO,CAACwH,MAAM,CAAC0V,KAAM,EAC1B,IAAI,CAACld,OAAO,CAACqR,UAAU,EACvB,OAAO,EACP,IAAI,CAACrR,OAAO,CAAC2D,QAAQ,EACrB,IAAI,CAAC3D,OAAO,CAACoE,IAAI,EACjB,IAAI,CAACpE,OAAO,CAACmR,SAAQ,CACtB,CAAA;AAED,MAAA,OAAOoO,MAAM,CAACzM,MAAM,CAAC,UAAC2M,IAAI,EAAA;QAAA,OAAKA,IAAI,CAAC9b,QAAQ,CAAA;OAAC,CAAA,CAAA;AAC/C,KAAA;AACD,GAAA;AACF,CAAA,EAAC;AAIK,IAAMiH,OAAK,GAAmC;AACnDC,EAAAA,QAAQ,EAAEmE,iBAAe;AACzBlE,EAAAA,MAAM,EAAEC,QAAQ,CAAC,CAAC,EAAE2U,cAAc,CAAA;;;;;;;;;;;;AC9FvB,EAAA,OAAAzU,IAAA,CAAAjL,OAAO,CAAC6F,OAAO,iBAA1BiI,kBA8BK,CAAA,KAAA,EAAAF,YAAA,EAAA,CA7Ba3C,IAAgB,CAAAmU,gBAAA,iBAC9BjU,WAOC,CAAA8K,4BAAA,EAAA;;AANEzO,IAAAA,MAAM,EAAEyD,IAAO,CAAAjL,OAAA,CAACwH,MAAM;IACtB7D,QAAQ,EAAEsH,IAAgB,CAAAmU,gBAAA;AAC1Bhb,IAAAA,IAAI,EAAE6G,IAAO,CAAAjL,OAAA,CAACoE,IAAI;AAClBwM,IAAAA,OAAO,EAAE3F,IAAO,CAAAjL,OAAA,CAAC4Q,OAAO;AACxBsF,IAAAA,SAAS,EAAEjL,IAAO,CAAAjL,OAAA,CAACkW,SAAS;AAC5BC,IAAAA,KAAK,EAAElL,IAAO,CAAAjL,OAAA,CAACmW,KAAAA;kFAGClL,IAAgB,CAAAqU,gBAAA,iBACnCxR,kBAgBK,CAAA,KAAA,EAAA6R,UAAA,EAAA,CAfHvR,WAIC,CAAAwR,gCAAA,EAAA;AAHEpY,IAAAA,MAAM,EAAEyD,IAAO,CAAAjL,OAAA,CAACwH,MAAM;AACvBoS,IAAAA,iBAAiB,EAAC,OAAM;IACvBxV,IAAI,EAAE6G,IAAI,CAAA7G,IAAAA;oCAEb8G,SAAA,CAAA,IAAA,CAAA,EAAA4C,kBAAA,CASCW,QARyC,EAAA,IAAA,EAAAC,UAAA,CAAAzD,IAAA,CAAAqU,gBAAgB,EAAhD,UAAAO,eAAe,EAAEC,UAAU,EAAA;wBADrC3U,WASC,CAAA8K,4BAAA,EAAA;AAPEtH,MAAAA,GAAG,EAAA9L,EAAAA,CAAAA,MAAA,CAAKoI,IAAA,CAAAjL,OAAO,CAACoE,IAAI,EAAAvB,GAAAA,CAAAA,CAAAA,MAAA,CAAIid,UAAU,CAAA;MAClCtY,MAAM,EAAEqY,eAAe,CAACrY,MAAM;MAC9B7D,QAAQ,EAAEkc,eAAe,CAAClc,QAAQ;AAClCS,MAAAA,IAAI,EAAE6G,IAAO,CAAAjL,OAAA,CAACoE,IAAI;AAClBwM,MAAAA,OAAO,EAAE3F,IAAO,CAAAjL,OAAA,CAAC4Q,OAAO;AACxBsF,MAAAA,SAAS,EAAEjL,IAAO,CAAAjL,OAAA,CAACkW,SAAS;AAC5BC,MAAAA,KAAK,EAAElL,IAAO,CAAAjL,OAAA,CAACmW,KAAAA;;;;;;;AC6BpBnH,IAAAA,iBAAc,GAAI5E,eAAe,CAAC;AACtCC,EAAAA,IAAI,EAAE,iBAAiB;AACvBC,EAAAA,UAAU,EAAE;AACVC,IAAAA,gBAAgB,EAAhBA,gBAAgB;AAChB2U,IAAAA,oBAAoB,EAApBA,QAAoB;AACpBxI,IAAAA,KAAK,EAALA,KAAK;AACLC,IAAAA,IAAI,EAAJA,IAAI;AACJC,IAAAA,OAAO,EAAPA,OAAO;AACPC,IAAAA,WAAW,EAAXA,WAAAA;GACD;AACDvS,EAAAA,KAAK,EAAAI,cAAA,CAAA,EAAA,EACA+F,aAAa,EAAkB,CACnC;EACDC,KAAK,EAAA,SAAAA,KAACpG,CAAAA,KAAoC,EAAA;AACxC,IAAA,IAAMpE,KAAI,GAAI6f,wBAAwB,CAACzb,KAAK,CAAC,CAAA;AAC7C,IAAA,IAAMtE,OAAQ,GAAEE,KAAK,CAACF,OAAO,CAACyD,KAAK,CAAA;IACnC,IAAMuc,aAAY,GAAIhb,GAAG,CAAChF,OAAO,CAACigB,oBAAqB,IAAG,CAAC,CAAC,CAAA;AAE5D,IAAA,OAAAvb,cAAA,CAAAA,cAAA,KACKC,iBAAiB,CAACzE,KAAK,CAAC,CAAA,EAAA,EAAA,EAAA;AAC3B8f,MAAAA,aAAa,EAAbA,aAAAA;AAAa,KAAA,CAAA,CAAA;GAEhB;AACDxc,EAAAA,QAAQ,EAAE;IACR0c,gBAAgB,EAAA,SAAAA,mBAAA;MACd,IAAMX,MAAK,GAAIC,2BAA2B;AAExC,MAAA,IAAI,CAACxf,OAAO,CAACwH,MAAM,CAAC2Y,KAAM,EAC1B,IAAI,CAACngB,OAAO,CAACqR,UAAU,EACvB,OAAO,EACP,IAAI,CAACrR,OAAO,CAAC2D,QAAQ,EACrB,IAAI,CAAC3D,OAAO,CAACoE,IAAI,EACjB,IAAI,CAACpE,OAAO,CAACmR,SAAQ,CACtB,CAAA;AACD,MAAA,OAAOoO,MAAM,CAACzM,MAAM,CAAC,UAAC2M,IAAI,EAAA;QAAA,OAAKA,IAAI,CAAC9b,QAAQ,CAAA;OAAC,CAAA,CAAA;AAC/C,KAAA;AACD,GAAA;AACF,CAAA,EAAC;AAIK,IAAMiH,OAAK,GAAmC;AACnDC,EAAAA,QAAQ,EAAEmE,iBAAe;AACzBlE,EAAAA,MAAM,EAAEC,QAAQ,CAAC,CAAC,EAAEqV,cAAc,CAAA;;;;;;;;;;;;;EClGvB,OAAAnV,IAAA,CAAAjL,OAAO,CAAC6F,OAAO,iBAA1BiI,kBAgCK,CAAA,KAAA,EAAAF,YAAA,EAAA,CA/BHQ,WAIC,CAAAwR,gCAAA,EAAA;AAHEpY,IAAAA,MAAM,EAAEyD,IAAO,CAAAjL,OAAA,CAACwH,MAAM;AACvBoS,IAAAA,iBAAiB,EAAC,OAAM;IACvBxV,IAAI,EAAE6G,IAAI,CAAA7G,IAAAA;mCAGbgK,WAOQ,CAAAwJ,iBAAA,EAAA;gBAPS3M,IAAa,CAAA+U,aAAA;;aAAb/U,IAAa,CAAA+U,aAAA,GAAA/K,MAAA,CAAA;KAAA,CAAA;;uBAE1B,YAAA;MAAA,OAAwD,EAD1D/J,SAAA,CAAA,IAAA,CAAA,EAAA4C,kBAAA,CAKOW,QAJmC,EAAA,IAAA,EAAAC,UAAA,CAAAzD,IAAA,CAAAiV,gBAAgB,EAAhD,UAAAG,eAAe,EAAEC,UAAU,EAAA;4BADrCnV,WAKO,CAAA0M,gBAAA,EAAA;UAHJlJ,GAAG,EAAA,EAAA,CAAA9L,MAAA,CAAKoI,IAAA,CAAAjL,OAAO,CAACoE,IAAI,EAAA,GAAA,CAAA,CAAAvB,MAAA,CAAIyd,UAAU,CAAA;;6BAEnC,YAAA;AAAA,YAAA,OAA0B,CAAvBhV,eAAA,CAAAC,eAAA,CAAA8U,eAAe,CAAC9f,KAAI,CAAA,EAAA,CAAA,CAAA;;;;;;;yBAI3B6N,WAeU,CAAA0J,mBAAA,EAAA;gBAfS7M,IAAa,CAAA+U,aAAA;;aAAb/U,IAAa,CAAA+U,aAAA,GAAA/K,MAAA,CAAA;KAAA,CAAA;;uBAE5B,YAAA;MAAA,OAAwD,EAD1D/J,SAAA,CAAA,IAAA,CAAA,EAAA4C,kBAAA,CAaeW,QAZ2B,EAAA,IAAA,EAAAC,UAAA,CAAAzD,IAAA,CAAAiV,gBAAgB,EAAhD,UAAAG,eAAe,EAAEC,UAAU,EAAA;4BADrCnV,WAae,CAAA4M,wBAAA,EAAA;UAXZpJ,GAAG,EAAA,EAAA,CAAA9L,MAAA,CAAKoI,IAAA,CAAAjL,OAAO,CAACoE,IAAI,EAAA,GAAA,CAAA,CAAAvB,MAAA,CAAIyd,UAAU,CAAA;;6BAEnC,YAAA;AAAA,YAAA,OAQC,CAPOrV,IAAA,CAAA+U,aAAc,KAAIM,UAAU,iBADpCnV,WAQC,CAAA8K,4BAAA,EAAA;;cANEzO,MAAM,EAAE6Y,eAAe,CAAC7Y,MAAM;cAC9B7D,QAAQ,EAAE0c,eAAe,CAAC1c,QAAQ;AAClCS,cAAAA,IAAI,EAAE6G,IAAO,CAAAjL,OAAA,CAACoE,IAAI;AAClB8R,cAAAA,SAAS,EAAEjL,IAAO,CAAAjL,OAAA,CAACkW,SAAS;AAC5BC,cAAAA,KAAK,EAAElL,IAAO,CAAAjL,OAAA,CAACmW,KAAK;AACpBvF,cAAAA,OAAO,EAAE3F,IAAO,CAAAjL,OAAA,CAAC4Q,OAAAA;;;;;;;;;;;;;AC4LtB5B,IAAAA,iBAAc,GAAI5E,eAAe,CAAC;AACtCC,EAAAA,IAAI,EAAE,wBAAwB;AAC9BC,EAAAA,UAAU,EAAE;AACViW,IAAAA,YAAY,EAAZA,YAAY;AACZhW,IAAAA,gBAAgB,EAAhBA,gBAAgB;AAChB0E,IAAAA,KAAK,EAALA,KAAK;AACLE,IAAAA,UAAU,EAAVA,UAAU;AACVC,IAAAA,SAAS,EAATA,SAAS;AACTC,IAAAA,OAAO,EAAPA,OAAO;AACPE,IAAAA,IAAI,EAAJA,IAAI;AACJC,IAAAA,IAAI,EAAJA,IAAI;AACJC,IAAAA,QAAQ,EAARA,QAAQ;AACRC,IAAAA,aAAa,EAAbA,aAAa;AACb9D,IAAAA,QAAQ,EAARA,QAAQ;AACRiD,IAAAA,KAAK,EAALA,KAAK;AACLc,IAAAA,IAAI,EAAJA,IAAI;AACJC,IAAAA,OAAO,EAAPA,OAAO;AACPK,IAAAA,UAAU,EAAVA,UAAU;AACVC,IAAAA,cAAc,EAAdA,QAAc;AACdtB,IAAAA,eAAe,EAAfA,QAAe;AACf4R,IAAAA,MAAM,EAANA,MAAAA;GACD;AACDlc,EAAAA,KAAK,EAAAI,cAAA,CAAA,EAAA,EACA+F,aAAa,EAAkB,CACnC;EACDC,KAAK,EAAA,SAAAA,KAACpG,CAAAA,KAAoC,EAAA;AACxC,IAAA,OAAO2C,sBAAsB,CAACkJ,wBAAwB,CAAC7L,KAAK,CAAC,CAAC,CAAA;GAC/D;AACDd,EAAAA,QAAQ,EAAE;IACRsN,WAAW,EAAA,SAAAA,cAAA;MACT,OAAOpJ,OAAO,CAACF,MAAM,CACnB,IAAI,CAACxH,OAAO,CAACqR,UAAU,EACvB,IAAI,CAACrR,OAAO,CAAC2D,QAAQ,CAACyN,KAAK,EAC3B,IAAI,CAACpR,OAAO,CAACqR,UAAS,CACvB,CAAA;KACF;IACDL,UAAU,EAAA,SAAAA,aAAA;AACR,MAAA,OAAO,IAAI,CAAChR,OAAO,CAAC2H,IAAG,GAAI,IAAI,CAAC3H,OAAO,CAAC2H,IAAI,CAACtF,MAAO,GAAE,CAAC,CAAA;AACzD,KAAA;GACD;AACDsP,EAAAA,OAAO,EAAE;AACP/J,IAAAA,YAAY,EAAZA,YAAY;AACZgK,IAAAA,kBAAkB,EAAlBA,kBAAkB;IAClBC,cAAc,EAAA,SAAAA,iBAAA;MACZ,IAAI,CAACE,OAAO,CACV,IAAI,CAAC/R,OAAO,CAACoE,IAAI,EACjBwN,kBAAkB,CAAC,IAAI,CAAC5R,OAAO,CAACwH,MAAM,EAAE,IAAI,CAACxH,OAAO,CAACqR,UAAU,CAAA,CAChE,EAAE,CAAA;KACJ;AACDY,IAAAA,WAAW,EAAAA,SAAAA,WAAAA,CAACC,KAAY,EAAEC,MAAc,EAAA;AAAA,MAAA,IAAAC,YAAA,CAAA;MACtCF,KAAK,CAACG,eAAe,EAAE,CAAA;MACvB,CAAAD,YAAA,OAAI,CAACvI,MAAM,cAAAuI,YAAA,KAAA,KAAA,CAAA,IAAXA,YAAA,CAAAE,IAAA,KAAI,EAAU,IAAI,CAACtS,OAAO,CAACoE,IAAI,EAAE+N,MAAM,CAAC,EAAE,CAAA;KAC3C;AACDI,IAAAA,aAAa,EAAAA,SAAAA,aAAAA,CAACL,KAAY,EAAEC,MAAc,EAAA;AAAA,MAAA,IAAAK,cAAA,CAAA;MACxCN,KAAK,CAACG,eAAe,EAAE,CAAA;MACvB,CAAAG,cAAA,OAAI,CAAC1I,QAAQ,cAAA0I,cAAA,KAAA,KAAA,CAAA,IAAbA,cAAA,CAAAF,IAAA,KAAI,EAAY,IAAI,CAACtS,OAAO,CAACoE,IAAI,EAAE+N,MAAM,CAAC,EAAE,CAAA;KAC7C;AACDM,IAAAA,gBAAgB,EAAAA,SAAAA,gBAAAA,CAACP,KAAY,EAAEQ,QAAkB,EAAA;AAAA,MAAA,IAAAC,iBAAA,CAAA;MAC/CT,KAAK,CAACG,eAAe,EAAE,CAAA;MACvB,CAAAM,iBAAA,OAAI,CAACC,WAAW,cAAAD,iBAAA,KAAA,KAAA,CAAA,IAAhBA,iBAAA,CAAAL,IAAA,KAAI,EAAe,IAAI,CAACtS,OAAO,CAACoE,IAAI,EAAEsO,QAAQ,CAAC,EAAE,CAAA;KAClD;IACD+N,mBAAmB,EAAA,SAAAA,mBAACC,CAAAA,YAAwB,EAAA;AAC1C,MAAA,IACEA,YAAY,CAAC7U,IAAK,KAAI,QAAO,IAC7BoQ,OAAA,CAAOyE,YAAY,CAACxF,UAAS,CAAA,KAAM,QAAO,EAC1C;AACA,QAAA,OAAOvB,MAAM,CAACsB,IAAI,CAACyF,YAAY,CAACxF,UAAU,CAAC,CAACpI,MAAM,CAChD,UAACuJ,IAAI,EAAA;UAAA,OAAKqE,YAAY,CAACxF,UAAW,CAACmB,IAAI,CAAC,CAACxQ,IAAK,KAAI,OAAM,CAAA;SACzD,CAAA,CAAA;AACH,OAAA;MAEA,OAAO,CAAC,EAAE,CAAC,CAAA;KACZ;IACD0Q,KAAK,EAAA,SAAAA,KAACF,CAAAA,IAAY,EAAA;MAAA,IAAAsE,qBAAA,EAAAC,sBAAA,CAAA;AAChB,MAAA,OAAA,CAAAD,qBAAA,GAAA,CAAAC,sBAAA,GAAO,IAAI,CAAC5gB,OAAO,CAACwH,MAAM,CAAC0T,UAAU,MAAA,IAAA,IAAA0F,sBAAA,KAAA,KAAA,CAAA,IAAA,CAAAA,sBAAA,GAA9BA,sBAAA,CAAiCvE,IAAI,CAAC,MAAA,IAAA,IAAAuE,sBAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAtCA,sBAAA,CAAwCrE,KAAI,MAAAoE,IAAAA,IAAAA,qBAAA,cAAAA,qBAAA,GAAKnE,SAAS,CAACH,IAAI,CAAC,CAAA;KACxE;IACDwE,eAAe,EAAA,SAAAA,eAACtF,CAAAA,QAAgB,EAAA;MAC9B,OAAO,IAAI,CAACvb,OAAO,CAACwH,MAAM,CAAC0T,UAAS,GAChC,IAAI,CAAC4F,mBAAmB,iBAAAje,MAAA,CAAiB0Y,QAAQ,CAAE,CAAA,GACnD,IAAI,CAACuF,mBAAmB,CAAC,GAAG,CAAC,CAAA;KAClC;IACDA,mBAAmB,EAAA,SAAAA,mBAAC1P,CAAAA,KAAa,EAAA;MAC/B,OAAO;AAAEvF,QAAAA,IAAI,EAAE,SAAS;AAAEuF,QAAAA,KAAK,EAAEA,KAAK;AAAE7Q,QAAAA,KAAK,EAAE,KAAA;OAAO,CAAA;AACxD,KAAA;AACD,GAAA;AACF,CAAA,EAAC;AAIK,IAAMqK,OAAK,GAAmC;AACnDC,EAAAA,QAAQ,EAAEmE,iBAAe;EACzBlE,MAAM,EAAEC,QAAQ,CAAC,CAAC,EAAEgW,EAAE,CAACC,oBAAoB,EAAEC,uBAAuB,CAAC,CAAA;;;;;;;;;;;;;;;;;;;;;ACnTvD,EAAA,OAAAhW,IAAA,CAAAjL,OAAO,CAAC6F,OAAO,IAA7BqF,SAAA,EAAA,EAAAC,WAAA,CAAAuI,iBAAA,EAAA;;IAAgC,OAAOC,EAAAA,cAAA,CAAA1I,IAAA,CAAAlJ,MAAM,CAACrB,SAAS,CAACT,IAAI,CAAA;AAAEqU,IAAAA,SAAS,EAAC,GAAA;;uBACtE,YAAA;AAAA,MAAA,OAuCe,CAvCflG,WAuCe,CAAAwF,uBAAA,EAAA,IAAA,EAAA;2BAtCb,YAAA;AAAA,UAAA,OAqCW,CArCXxF,WAqCW,CAAAyF,oBAAA,EAAA;AArCAtD,YAAAA,IAAG,EAAH,EAAG;YAAG,OAAOoD,EAAAA,cAAA,CAAA1I,IAAA,CAAAlJ,MAAM,CAACrB,SAAS,CAACC,OAAO,CAAA;;+BAC9C,YAAA;AAAA,cAAA,OAEmB,CAFnByN,WAEmB,CAAA0F,0BAAA,EAAA;gBAFD,OAAOH,EAAAA,cAAA,CAAA1I,IAAA,CAAAlJ,MAAM,CAACrB,SAAS,CAACH,KAAK,CAAA;;mCAAE,YAAA;AAAA,kBAAA,OAE/C,iCADA0K,IAAY,CAAAjF,aAAA,CAAA,EAAA,CAAA,CAAA;;;gCAGNiF,IAAO,CAAAjL,OAAA,CAACwG,WAAW,CAACnE,MAAK,GAAA,CAAA,iBADjC8I,WAGC,CAAA6I,0BAAA,EAAA;;AADEvO,gBAAAA,MAAM,EAAEwF,IAAO,CAAAjL,OAAA,CAACwG,WAAAA;uEAEnB4H,WAAoB,CAAA6F,mBAAA,CAAA,EAEpB7F,WA0BQ,CAAAL,oBAAA,EAAA;AA1BGC,gBAAAA,MAAM,EAAN,EAAA;AAAM,eAAA,EAAA;AACEC,gBAAAA,SAAS,EAAAC,OAAA,CACxB,UAAAC,IAAA,EAAA;AAAA,kBAAA,IAD4B7J,KAAI,GAAA6J,IAAA,CAAJ7J,KAAI,CAAA;AAAA,kBAAA,OAAA,CAChC8J,WAAA,CAqBOgG,kBArBP/I,UAqBO,CAAA;AApBLgJ,oBAAAA,GAAE,EAAF,EAAE;AACF7I,oBAAAA,IAAG,EAAH,EAAG;AACH8I,oBAAAA,SAAS,EAAC,GAAE;AACZC,oBAAAA,KAAI,EAAJ,EAAI;AACH,oBAAA,YAAU,YAAA1R,MAAA,CAAYoI,IAAO,CAAAjL,OAAA,CAACO,KAAK,CAAA;qBAC5B+D,KAAK,EAAA;AACZ,oBAAA,OAAA,EAAO2G,IAAA,CAAAlJ,MAAM,CAACrB,SAAS,CAACG,SAAS;AACjC2T,oBAAAA,QAAQ,EAAC,CAAAvJ,IAAA,CAAAjL,OAAA,CAAA4Q,OAAA,IAAA3F,IAAA,CAAApH,cAAA,CAAAgN,QAAA,IAAA5F,IAAA,CAAA6F,WAAA,KAAAxN,SAAA,IAAA2H,IAAA,CAAA6F,WAAA,CAAAC,QAAA,KAAAzN,SAAA,IAAA2H,IAAA,CAAA+F,UAAA,IAAA/F,IAAA,CAAA6F,WAAA,CAAAC,QAAA;oBAUT0D,OAAI,EAAAxJ,IAAA,CAAA4G,cAAAA;;uCAEL,YAAA;AAAA,sBAAA,OAAyB,CAAzBzD,WAAyB,CAAAW,iBAAA,EAAA,IAAA,EAAA;2CAAjB,YAAA;AAAA,0BAAA,OAAQ,iBAAR,UAAQ,CAAA;;;;;;;;mCAEb,YAAA;AAAA,kBAAA,OACP,iBADO,GACP,GAAAxD,eAAA,WAAA1I,MAAA,CAAQoI,IAAA,CAAAjL,OAAA,CAAAO,KAAA,CAAA,CAAA,EAAA,CAAA,CAAA;;;;;;;;;;;;AAKC,YAAA,sBAAoB,EAApB,EAAoB;AAAC,YAAA,sBAAkB,EAAlB,EAAA;;AA4H9B,YAAA,SAAA,EAAA2N,OAAA,CAAA,YAAA;AAAA,cAAA,OAAA,aAAA2G,gBA3HK,EAAA;AAAAC,gBAAAA,OAAE,EAAA,QAAA;AAAA,eAAA,EAAA;AA0HA,gBAAA,SAAA,EAAA5G,OAAA,CAAA,YAAA;AAAA,kBAAA,OAAA,aAAAgT,kBAzHC,EAAA;oBAAA,OAAA,EAAA,sBAAA;AAAA,mBAAA,EAAA;AAoBE,oBAAA,SAAA,EAAAhT,OAAA,CAAA,YAAA;sBAAA,OAAA,CAnBKjD,IAAO,CAAAjL,OAAA,CAACwH,MAAM,CAACqE,IAAI,KAAA,QAAA,IAmBxBX,SAAA,EAAA,EAAA4C,kBAAA,CAAA,OAAA,EAAAF,YAAA,EAAA,CADJC,kBAAA,CAAA,IAAA,EAAA,IAAA,EAAA,sCAVKY,QALL,EAAA,IAAA,EAAAC,UAAA,CAAAzD,IAAA,CAAAwV,mBAAA,CAAAxV,IAAA,CAAAjL,OAAA,CAAAwH,MAAA,CAAA,EAAA,UAAA6U,IAAA,EAAAzZ,KAAA,EAAA;AAKK,wBAAA,OAAAsI,SAAA,EAAA,EAAA4C,kBAAA,CAAA,IAAA,EAAA;AAJFa,0BAAAA,GAAG,EAAA9L,EAAAA,CAAAA,MAAA,CAAKoI,IAAA,CAAAjL,OAAO,CAAAoE,IAAA,EAAAvB,UAAAA,CAAAA,CAAAA,MAAA,CAAAD,KAAA,CAAA;AAChBwO,0BAAAA,KAAE,EAAA,KAAA;AAEC,yBAAA,EAAA7F,eAAA,CAAAN,IAAA,CAAAsR,KAAK,CAACF,IAAI,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA;iCAGPpR,IAAA,CAAAjL,OAAO,CAAC4Q,OAAG,IAOjB1F,SAAA,EAAA,EAAA4C,kBAAA,CAAA,IAAA,EAAA;;wBANM,OAAA6F,EAAAA,cAAA,CAAiB1I,IAAA,CAAApH,cAAA,CAAA2R,eAAA;AAKvBpE,wBAAAA,KAAC,EAAA,KAAA;uGAuGAvD,kBAAA,CAAA,OAAA,EAAA,IAAA,EAAA,EADL3C,SAAA,CAAA,IAAA,CAAA,EAAA4C,kBAAA,CAAAW,QAAA,EAAA,IAAA,EAAAC,UAAA,CAhGAzD,YAAA,CAAAtD,IAAA,EAAA,UAAAlG,OAAA,EAAAmB,KAAA,EAAA;AAgGA,wBAAA,OAAAsI,SAAA,EAAA,EAAA4C,kBAAA,CAAA,IAAA,EAAA;AA/FGa,0BAAAA,GAAC,EAAA9L,EAAAA,CAAAA,MAAA,CAAAoI,IAAA,CAAAjL,OAAA,CAAAoE,IAAA,EAAAvB,GAAAA,CAAAA,CAAAA,MAAA,CAAAD,KAAA,CAAA;0BACI,OAAA+Q,EAAAA,cAAA,CAAE1I,IAAM,CAAAlJ,MAAA,CAACrB,SAAS,CAACN,IAAI,CAAA;6BAmBxB8K,SAAA,CAAA,IAAA,CAAA,EAAA4C,kBAAA,CAAAW,QAAA,EAAA,IAAA,EAAAC,UAAA,CAhBgBzD,wBAAmB,CAACA,IAAA,CAAAjL,OAAG,CAAAwH,MAAA,aAAnC+T,QAAQ,EAAA;AAgBZ,0BAAA,OAAArQ,SAAA,EAAA,EAAA4C,kBAAA,CAAA,IAAA,EAAA;4BAfCa,GAAA,EAAO1D,IAAA,CAAArD,YAAA,CAAAqD,IAAA,CAAArD,YAAA,CAAAqD,IAAA,CAAAjL,OAAA,CAAAoE,IAAA,EAAAvB,EAAAA,CAAAA,MAAA,CAAAD,KAAA,CAAA,CAAA,EAAA2Y;8BAcTnN,WAAA,CAAA6H,4BAAA,EAAA;AANCzO,4BAAAA,MAAM,EAAEyD,IAAO,CAAAjL,OAAA,CAACwH,MAAM;AACtB7D,4BAAAA,QAAQ,EAAEsH,IAAe,CAAA4V,eAAA,CAACtF,QAAE,CAAA;AAC5BnX,4BAAAA,IAAI,EAAE6G,IAAY,CAAArD,YAAA,CAACqD,YAAC,CAAA7G,IAAA,EAAAvB,EAAAA,CAAAA,MAAA,CAAAD,KAAA,CAAA,CAAA;AACtBgO,4BAAAA,OAAA,EAAA3F,IAAA,CAAAjL,OAAA,CAAA4Q,OAAA;AACCsF,4BAAAA,SAAA,EAAAjL,IAAA,CAAAjL,OAAA,CAAAkW,SAAA;AACFC,4BAAAA,KAAA,EAAAlL,IAAA,CAAAjL,OAAA,CAAAmW,KAAAA;;mCAIMlL,IAAA,CAAAjL,OAAO,CAAC4Q,OAAG,IAwEd1F,SAAA,EAAA,EAAA4C,kBAAA,CAAA,IAAA,EAAA;;0BAvEG,OAAA6F,EAAAA,cAAA,CAAiB1I,IAAA,CAAApH,cAAA,CAAA2R,eAAA;wCAwBdzH,oBAlBE,EAAA;AAAAC,0BAAAA,MAAM,EAAN,EAAA;AAAM,yBAAA,EAAA;AACEC,0BAAAA,SAAS,EAAAC,OAAA,CAAA,UAAAyH,KAAA,EAAA;AAAA,4BAAA,IAAIrR,KAAK,GAAAqR,KAAA,CAALrR,KAAK,CAAA;AAAA,4BAAA,OAAA,CAGzB2G,IAAA,CAAApH,cAAM,CAAA2R,eAAA,IAWPtK,SAAA,EAAA,EAAAC,WAAA,CAAAiJ,gBAAA,EAAA/I,UAAA,CAAA;;+BAZF/G,KAAA,EAAA;AAEH+P,8BAAAA,GAAG,EAAH,EAAG;AACH7I,8BAAAA,IAAI,EAAJ,EAAI;AACJ8I,8BAAAA,SAAS,EAAC,GAAG;AACbC,8BAAAA,KAAK,EAAL,EAAK;AACL,8BAAA,YAAU,EAAC,SAAS;8BACtBC,QAAA,EAAA5R,KAAA,IAAA,CAAA,IAAA,CAAAqI,IAAA,CAAAjL,OAAA,CAAA4Q,OAAA;AACG,8BAAA,OAAA,EAAO3F,IAAA,CAAAlJ,MAAM,CAACrB,SAAS,CAACQ,UAAU;8BAClCuT,OAAI,EAAA,SAAAA,OAAAA,CAAAQ,MAAA,EAAA;AAAA,gCAAA,OAAAhK,IAAA,CAAAgH,WAAA,CAAAgD,MAAA,EAAArS,KAAA,CAAA,CAAA;AAAA,+BAAA;;iDAEN,YAAA;AAAA,gCAAA,OAAG,CAAHwL,WAAG,CAAAW,iBAAA,EAAA;kCAAA,OAAA,EAAA,aAAA;AAAA,iCAAA,EAAA;qDAAA,YAAA;AAAA,oCAAA,OAAA,iBAAA,cAAA,CAAA;;;;;;;;AAEK,0BAAA,SAAA,EAAAb,OAAA,CAAA,YAAA;AAAA,4BAAA,OAAA,CAAA5C,eAAA,CAAA,WAAA,CAAA;;;8CAqBJyC,oBAlBE,EAAA;AAAAC,0BAAAA,MAAM,EAAN,EAAA;AAAM,yBAAA,EAAA;AACEC,0BAAAA,SAAS,EAAAC,OAAA,CAAA,UAAA0H,KAAA,EAAA;AAAA,4BAAA,IAAItR,KAAK,GAAAsR,KAAA,CAALtR,KAAK,CAAA;AAAA,4BAAA,OAAA,CAGzB2G,IAAA,CAAApH,cAAM,CAAA2R,eAAA,IAWPtK,SAAA,EAAA,EAAAC,WAAA,CAAAiJ,gBAAA,EAAA/I,UAAA,CAAA;;+BAZF/G,KAAA,EAAA;AAEH+P,8BAAAA,GAAG,EAAH,EAAG;AACH7I,8BAAAA,IAAI,EAAJ,EAAI;AACJ8I,8BAAAA,SAAS,EAAC,GAAG;AACbC,8BAAAA,KAAK,EAAL,EAAK;AACL,8BAAA,YAAU,EAAC,WAAW;AACxBC,8BAAAA,QAAA,EAAA5R,KAAA,IAAAqI,eAAA,GAAA,CAAA,IAAA,CAAAA,IAAA,CAAAjL,OAAA,CAAA4Q,OAAA;AACG,8BAAA,OAAA,EAAO3F,IAAA,CAAAlJ,MAAM,CAACrB,SAAS,CAACS,YAAY;8BACpCsT,OAAI,EAAA,SAAAA,OAAAA,CAAAQ,MAAA,EAAA;AAAA,gCAAA,OAAAhK,IAAA,CAAAsH,aAAA,CAAA0C,MAAA,EAAArS,KAAA,CAAA,CAAA;AAAA,+BAAA;;iDAEJ,YAAA;AAAA,gCAAA,OAAG,CAAHwL,WAAG,CAAAW,iBAAA,EAAA;kCAAA,OAAA,EAAA,aAAA;AAAA,iCAAA,EAAA;qDAAA,YAAA;AAAA,oCAAA,OAAA,iBAAA,gBAAA,CAAA;;;;;;;;AAEG,0BAAA,SAAA,EAAAb,OAAA,CAAA,YAAA;AAAA,4BAAA,OAAA,CAAA5C,eAAA,CAAA,aAAA,CAAA;;;8CA6BZyC,oBA1BU,EAAA;AAAAC,0BAAAA,MAAM,EAAN,EAAA;AAAM,yBAAA,EAAA;AACTC,0BAAAA,SAAA,EAAAC,OAAA,CAAA,UAAA2H,KAAA,EAAA;AAAA,4BAAA,IAAAvR,KAAA,GAAAuR,KAAA,CAAAvR,KAAA,CAAA;4BAAA,OAAA,CAsBP8J,WAAA,CAAAgG,gBAAA,EAAA/I,UAAA,CApBa/G,KAAI,EAAA;AACZ+P,8BAAAA,GAAG,EAAH,EAAG;AACH7I,8BAAAA,IAAI,EAAJ,EAAI;AACJ8I,8BAAAA,SAAS,EAAC,GAAG;AACbC,8BAAAA,KAAK,EAAL,EAAK;AACK,8BAAA,YAAA,EAAC,QAAQ;AACb,8BAAA,OAAA,EAAEtJ,IAAM,CAAAlJ,MAAA,CAACrB,SAAS,CAACU,UAAG;AACnBoT,8BAAAA,QAAA,EAAsB,CAAAvJ,IAAA,CAAAjL,OAAA,CAAA4Q,OAAA,IAAA3F,IAAA,CAAApH,cAAA,CAAAgN,QAAA,IAAA5F,IAAA,CAAA6F,WAAA,KAAAxN,SAAA,IAAA2H,IAAA,CAAA6F,WAAA,CAAAgF,QAAA,KAAAxS,SAAA,IAAA2H,IAAA,CAAA+F,UAAA,IAAA/F,IAAA,CAAA6F,WAAA,CAAAgF,QAAA;8BAU9BrB,OAAI,EAAA,SAAAA,OAAAA,CAAAQ,MAAA,EAAA;gCAAA,OAAAhK,IAAA,CAAAwH,gBAAA,CAAAwC,MAAA,GAAArS,KAAA,CAAA,CAAA,CAAA;AAAA,+BAAA;;iDAEX,YAAA;AAAA,gCAAA,OAAA,CAAAwL,WAAA,CAAAW,iBAAA,EAAA;kCAAA,OAAA,EAAA,aAAA;AAAA,iCAAA,EAAA;qDAAA,YAAA;AAAA,oCAAA,OAAA,iBAAA,YAAA,CAAA;;;;;;;;6CAEC,YAAA;AAAA,4BAAA,OAED,iBAFC,UAED,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACxHZC,IAAAA,iBAAc,GAAI5E,eAAe,CAAC;AACtCC,EAAAA,IAAI,EAAE,qBAAqB;AAC3BC,EAAAA,UAAU,EAAE;AACV6W,IAAAA,SAAS,EAATA,SAAS;AACTlR,IAAAA,UAAU,EAAVA,UAAU;AACVV,IAAAA,IAAI,EAAJA,IAAI;AACJC,IAAAA,IAAI,EAAJA,IAAAA;GACD;AACDlL,EAAAA,KAAK,EAAAI,cAAA,CAAA,EAAA,EACA+F,aAAa,EAAkB,CACnC;EACDC,KAAK,EAAA,SAAAA,KAACpG,CAAAA,KAAoC,EAAA;AACxC,IAAA,OAAO4D,sBAAsB,CAACkZ,4BAA4B,CAAC9c,KAAK,CAAC,CAAC,CAAA;GACnE;AACDqN,EAAAA,OAAO,EAAE;IACP0P,WAAW,EAAA,SAAAA,WAAC5d,CAAAA,KAAU,EAAA;AAAA,MAAA,IAAAqO,kBAAA,CAAA;AACpB,MAAA,OAAO,CAAC,EAAAA,CAAAA,kBAAA,GAAC,IAAI,CAAC9R,OAAO,CAAC2H,IAAI,MAAA,IAAA,IAAAmK,kBAAA,KAAjBA,KAAAA,CAAAA,IAAAA,kBAAA,CAAmBuJ,QAAQ,CAAC5X,KAAK,CAAC,CAAA,CAAA;KAC5C;AACDmE,IAAAA,YAAY,EAAZA,YAAY;IACZ0Z,MAAM,EAAA,SAAAA,MAAC7d,CAAAA,KAAU,EAAA;AACf,MAAA,IAAI,CAAC,IAAI,CAAC4d,WAAW,CAAC5d,KAAK,CAAC,EAAE;QAC5B,IAAI,CAACsO,OAAO,CAAC,IAAI,CAAC/R,OAAO,CAACoE,IAAI,EAAEX,KAAK,CAAC,CAAA;AACtC,OAAA,MAAK;AAAA,QAAA,IAAA8d,gBAAA,CAAA;AAEL,QAAA,CAAAA,gBAAA,GAAI,IAAA,CAACC,UAAU,MAAAD,IAAAA,IAAAA,gBAAA,eAAfA,gBAAA,CAAAjP,IAAA,CAAI,IAAA,EAAc,IAAI,CAACtS,OAAO,CAACoE,IAAI,EAAEX,KAAK,CAAC,CAAA;AAC7C,OAAA;AACF,KAAA;AACD,GAAA;AACF,CAAA,EAAC;AAIF,IAAMge,gBAAgB,SAAhBA,cAAiBja,MAAkB,EAAA;EAAA,OACvCA,MAAM,CAACka,KAAI,KAAMpe,SAAQ,IACzBkE,MAAM,CAACka,KAAK,CAACrf,MAAO,GAAE,KACrBmF,MAAM,CAACka,KAAsB,CAACC,KAAK,CAAC,UAAC/W,KAAiB,EAAK;IAC1D,OAAOA,KAAK,CAAO,OAAA,CAAA,KAAItH,SAAS,CAAA;AAClC,GAAC,CAAC,CAAA;AAAA,CAAA,CAAA;AAEJ,IAAMse,YAAW,GAAI,SAAfA,YAAWA,CAAKpa,MAAkB,EAAA;EAAA,OACtCA,MAAM,CAACqE,IAAG,KAAM,QAAS,IAAGrE,MAAM,CAAI,MAAA,CAAA,KAAMlE,SAAS,CAAA;AAAA,CAAA,CAAA;AAEhD,IAAMsH,OAAK,GAAmC;AACnDC,EAAAA,QAAQ,EAAEmE,iBAAe;AACzBlE,EAAAA,MAAM,EAAEC,QAAQ,CACd,CAAC,EACD0M,GAAG,CACDzM,QAAQ,CAAC,SAAS,CAAC,EACnByM,GAAG,CACDoK,aAAa,CACX,UAACra,MAAM,EAAA;IAAA,OACLsa,OAAO,CAACta,MAAM,EAAE,OAAO,CAAA,IACvB,CAACjF,KAAK,CAACwf,OAAO,CAACva,MAAM,CAACwa,KAAK,CAAA,IAC3Bxa,MAAM,CAACya,WAAU,KAAM,IAAG,CAAA;AAAA,GAAA,CAC7B,EACDC,oBAAoB,CAAC,OAAO,EAAE,UAAC1a,MAAM,EAAK;IACxC,OAAOia,aAAa,CAACja,MAAM,CAAA,IAAKoa,YAAY,CAACpa,MAAM,CAAC,CAAA;GACrD,CAAA,CACH,CACF,CAAA;;;;;;;;ACpGuB,EAAA,OAAAyD,IAAA,CAAAjL,OAAO,CAAC6F,OAAO,iBAAxCsF,WAgBa,CAAAwJ,sBAAA,EAAA;;AAhBAwN,IAAAA,OAAA,EAAA;;uBACX,YAAA;AAAA,MAAA,OAcO,CAdP/T,WAcO,CAAAyG,gBAAA,EAAA,IAAA,EAAA;2BAbE,YAAA;UAAA,OAAsC,EAA7C3J,SAAA,CAAA,IAAA,CAAA,EAAA4C,kBAAA,CAYOW,2BAZqBxD,IAAO,CAAAjL,OAAA,CAAC8B,OAAO,EAA5B,UAAAsgB,CAAC,EAAExf,KAAK,EAAA;gCAAvBuI,WAYO,CAAAuK,gBAAA,EAAA;cAZuC/G,GAAG,EAAEyT,CAAC,CAAC3e,KAAAA;;iCACnD,YAAA;AAAA,gBAAA,OAUa,CAVb2K,WAAA,CAUaiU,uBAVbhX,UAUa,CAAA;kBATV9K,KAAK,EAAE6hB,CAAC,CAAC7hB,KAAK;kBACd,aAAW,EAAE0K,IAAA,CAAAoW,WAAW,CAACe,CAAC,CAAC3e,KAAK,CAAA;kBAChC0C,EAAE,EAAE8E,IAAA,CAAAjL,OAAO,CAACmG,EAAG,GAAAtD,SAAAA,CAAAA,MAAA,CAAYD,KAAK,CAAA;AAChCwB,kBAAAA,IAAI,EAAE6G,IAAY,CAAArD,YAAA,CAACqD,YAAO,CAAC7G,IAAI,EAAAvB,EAAAA,CAAAA,MAAA,CAAKD,KAAK,CAAA,CAAA;AACzC,kBAAA,gBAAc,EAAEqI,IAAO,CAAAjL,OAAA,CAACyF,MAAM;AAC9B+O,kBAAAA,QAAQ,EAAA,CAAGvJ,IAAO,CAAAjL,OAAA,CAAC4Q,OAAO;AAC1B0R,kBAAAA,aAAa,EAAErX,IAAA,CAAAjL,OAAO,CAAC2H,SAASrE,SAAAA;mBACzB2H,IAAY,CAAA9G,YAAA,CAAAtB,aAAAA,CAAAA,MAAA,CAAeuf,CAAC,CAAC3e,KAAK,EAAA,GAAA,CAAA,CAAA,EAAA;kBACzC2B,QAAM,oBAAG3B,KAAK,EAAA;AAAA,oBAAA,OAAKwH,WAAM,CAACmX,CAAC,CAAC3e,KAAK,CAAA,CAAA;AAAA,mBAAA;;;;;;;;;;;;;;;;AC6BtCuL,IAAAA,iBAAc,GAAI5E,eAAe,CAAC;AACtCC,EAAAA,IAAI,EAAE,iBAAiB;AACvBC,EAAAA,UAAU,EAAE;AACVC,IAAAA,gBAAgB,EAAhBA,gBAAgB;AAChBgY,IAAAA,oBAAoB,EAApBA,QAAAA;GACD;AACDje,EAAAA,KAAK,EAAAI,cAAA,CAAA,EAAA,EACA+F,aAAa,EAAkB,CACnC;EACDC,KAAK,EAAA,SAAAA,KAACpG,CAAAA,KAAoC,EAAA;IACxC,IAAMtE,OAAQ,GAAE2E,iBAAiB,CAAC6d,6BAA6B,CAACle,KAAK,CAAC,CAAC,CAAA;AACvE,IAAA,IAAMme,MAAK,GAAIja,SAAS,CAAC,QAAQ,CAAC,CAAA;AAClC,IAAA,OAAA9D,cAAA,CAAAA,cAAA,CAAA,EAAA,EACK1E,OAAO,CAAA,EAAA,EAAA,EAAA;AACVE,MAAAA,KAAK,EAAEF,OAAO;AACdyiB,MAAAA,MAAM,EAANA,MAAAA;AAAM,KAAA,CAAA,CAAA;GAET;AACDjf,EAAAA,QAAQ,EAAE;IACRkf,uBAAuB,EAAA,SAAAA,0BAAA;MACrB,OACE,CAACC,OAAO,CAAC,IAAI,CAAC3iB,OAAO,CAACwH,MAAM,CAACmU,iBAAiB,CAAA,IAC9CiH,QAAQ,CAAC,IAAI,CAAC5iB,OAAO,CAACwH,MAAM,CAAC0U,oBAAoB,CAAA;AACjD,OAAA;KAEH;IACD2G,wBAAwB,EAAA,SAAAA,2BAAA;AAAA,MAAA,IAAAC,qBAAA,CAAA;AACtB,MAAA,IAAMD,wBAAyB,GAAAC,CAAAA,qBAAA,GAC7B,IAAI,CAAC9iB,OAAO,CAAC2D,QAAQ,CAAC7B,OAAO,MAAAghB,IAAAA,IAAAA,qBAAA,KAA7BA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,qBAAA,CAA+BD,wBAAwB,CAAA;AACzD,MAAA,OACEA,wBAAyB,KAAIvf,aAC7Buf,wBAAyB,KAAI,IAAG,CAAA;KAEnC;IACDE,cAAc,EAAA,SAAAA,iBAAA;AAAA,MAAA,IAAAlQ,KAAA,GAAA,IAAA,CAAA;AACZ,MAAA,IAAMmQ,iBAAgB,GAAI,SAApBA,iBAAgBA,GAAU;AAC9B,QAAA,IAAMhJ,QAAS,GAAED,QAAQ,CAACC,QAAQ,CAACnH,KAAI,CAAC7S,OAAO,CAACwH,MAAM,EAAE,OAAO,CAAC,CAAA;QAChE,IAAImb,OAAO,CAAC9P,KAAI,CAAC7S,OAAO,CAACoE,IAAI,CAAC,EAAE;UAC9B4V,QAAQ,CAACnO,IAAG,GAAI,gBAAgB,CAAA;AAChC,SAAA,MAAK;AACJmO,UAAAA,QAAwB,CAACzZ,KAAM,GAAEsS,KAAI,CAAC7S,OAAO,CAACO,KAAK,CAAA;AACtD,SAAA;AACA,QAAA,OAAOyZ,QAAQ,CAAA;OAChB,CAAA;AAED,MAAA,IAAIuF,SAASrO,YAAY,CACvB,IAAI,CAAClR,OAAO,CAACmR,SAAS,EACtB,IAAI,CAACnR,OAAO,CAACwH,MAAM,EACnB,IAAI,CAACxH,OAAO,CAAC2D,QAAQ,CAACyN,KAAK,EAC3B,IAAI,CAACpR,OAAO,CAACoE,IAAI,EACjB4e,iBAAiB,EACjB,IAAI,CAAChjB,OAAO,CAAC2D,QAAQ,EACrB,IAAI,CAAC3D,OAAO,CAACqR,UAAS,CACvB,CAAA;AAED,MAAA,IAAI,IAAI,CAACoR,MAAM,CAAC/Z,KAAI,GAAI,CAAC,EAAE;AACzB6W,QAAAA,SAASrc,SAAS,CAACqc,MAAM,CAAC,CAAA;QAC1BA,MAAM,CAACzd,4CACFyd,MAAM,CAACzd,OAAO,CAAA,EAAA,EAAA,EAAA;AACjBtB,UAAAA,IAAI,EAAE,IAAI;AACVC,UAAAA,SAAS,EACP,IAAI,CAACgiB,MAAM,CAAC/Z,KAAM,IAAG,CAAA,IAAK,IAAI,CAAC+Z,MAAM,CAAC7Z,aAAc,KAAI,OAAA;SAC3D,CAAA,CAAA;AACH,OAAA;AAEA,MAAA,OAAO2W,MAAM,CAAA;AACf,KAAA;AACD,GAAA;AACF,CAAA,EAAC;AAIK,IAAM3U,OAAK,GAAmC;AACnDC,EAAAA,QAAQ,EAAEmE,iBAAe;AACzBlE,EAAAA,MAAM,EAAEC,QAAQ,CAAC,CAAC,EAAEkY,eAAe,CAAA;;;;;;;;;ECnHxB,OAAAhY,IAAA,CAAAjL,OAAO,CAAC6F,OAAO,iBAA1BiI,kBAcK,CAAA,KAAA,EAAAF,YAAA,EAAA,CAbHQ,WAQC,CAAA6H,4BAAA,EAAA;AAPEpQ,IAAAA,OAAO,EAAEoF,IAAO,CAAAjL,OAAA,CAAC6F,OAAO;AACxB+K,IAAAA,OAAO,EAAE3F,IAAO,CAAAjL,OAAA,CAAC4Q,OAAO;AACxBpJ,IAAAA,MAAM,EAAEyD,IAAO,CAAAjL,OAAA,CAACwH,MAAM;IACtB7D,QAAQ,EAAEsH,IAAc,CAAA8X,cAAA;AACxB3e,IAAAA,IAAI,EAAE6G,IAAO,CAAAjL,OAAA,CAACoE,IAAI;AAClB8R,IAAAA,SAAS,EAAEjL,IAAO,CAAAjL,OAAA,CAACkW,SAAS;AAC5BC,IAAAA,KAAK,EAAElL,IAAO,CAAAjL,OAAA,CAACmW,KAAAA;2FAGVlL,IAAA,CAAAyX,uBAAwB,IAAGzX,IAAwB,CAAA4X,wBAAA,iBAD3D1X,WAGwB,CAAA+X,gCAAA,EAAA;;IADrBhjB,KAAK,EAAE+K,IAAK,CAAA/K,KAAAA;;;;;;ACkFb8O,IAAAA,iBAAc,GAAI5E,eAAe,CAAC;AACtCC,EAAAA,IAAI,EAAE,wBAAwB;AAC9BC,EAAAA,UAAU,EAAE;AACVC,IAAAA,gBAAgB,EAAhBA,gBAAgB;AAChB2U,IAAAA,oBAAoB,EAApBA,QAAoB;AACpB5P,IAAAA,OAAO,EAAPA,OAAO;AACPL,IAAAA,KAAK,EAALA,KAAK;AACLE,IAAAA,UAAU,EAAVA,UAAU;AACVC,IAAAA,SAAS,EAATA,SAAS;AACTF,IAAAA,YAAY,EAAZA,YAAY;AACZU,IAAAA,OAAO,EAAPA,OAAO;AACPD,IAAAA,IAAI,EAAJA,IAAI;AACJwT,IAAAA,OAAO,EAAPA,OAAO;AACPrI,IAAAA,MAAM,EAANA,MAAAA;GACD;AACDC,EAAAA,UAAU,EAAE;AACVX,IAAAA,iBAAiB,EAAjBA,iBAAAA;GACD;AACD9V,EAAAA,KAAK,EAAAI,cAAA,CAAA,EAAA,EACA+F,aAAa,EAAkB,CACnC;EACDC,KAAK,EAAA,SAAAA,KAACpG,CAAAA,KAAoC,EAAA;AACxC,IAAA,IAAMpE,KAAI,GAAIkjB,wBAAwB,CAAC9e,KAAK,CAAC,CAAA;AAC7C,IAAA,IAAMtE,OAAQ,GAAEE,KAAK,CAACF,OAAO,CAACyD,KAAK,CAAA;AAEnC,IAAA,IAAMuc,aAAc,GAAEhb,GAAG,CAAChF,OAAO,CAACigB,oBAAoB,CAAC,CAAA;AACvD,IAAA,IAAMoD,WAAY,GAAEre,GAAG,CAACgb,aAAa,CAACvc,KAAK,CAAC,CAAA;AAC5C,IAAA,IAAM6f,gBAAe,GAAIte,GAAG,CAAC,CAAC,CAAC,CAAA;AAC/B,IAAA,IAAMue,MAAK,GAAIve,GAAG,CAAC,KAAK,CAAC,CAAA;AACzB,IAAA,IAAM0L,IAAIjK,aAAa,EAAE,CAAA;AAEzB,IAAA,OAAA/B,cAAA,CAAAA,cAAA,KACKC,iBAAiB,CAACzE,KAAK,CAAC,CAAA,EAAA,EAAA,EAAA;AAC3B8f,MAAAA,aAAa,EAAbA,aAAa;AACbqD,MAAAA,WAAW,EAAXA,WAAW;AACXE,MAAAA,MAAM,EAANA,MAAM;AACND,MAAAA,gBAAgB,EAAhBA,gBAAgB;AAChB5S,MAAAA,CAAC,EAADA,CAAAA;AAAC,KAAA,CAAA,CAAA;GAEJ;AACDlN,EAAAA,QAAQ,EAAE;IACRggB,uBAAuB,EAAA,SAAAA,0BAAA;MAGrB,IAAMjE,MAAK,GAAIC,2BAA2B;AAExC,MAAA,IAAI,CAACxf,OAAO,CAACwH,MAAM,CAACka,KAAM,EAC1B,IAAI,CAAC1hB,OAAO,CAACqR,UAAU,EACvB,OAAO,EACP,IAAI,CAACrR,OAAO,CAAC2D,QAAQ,EACrB,IAAI,CAAC3D,OAAO,CAACoE,IAAI,EACjB,IAAI,CAACpE,OAAO,CAACmR,SAAQ,CACtB,CAAA;AAED,MAAA,OAAOoO,MAAK,CACTzM,MAAM,CAAC,UAAC2M,IAAI,EAAA;QAAA,OAAKA,IAAI,CAAC9b,QAAQ,CAAA;AAAA,OAAA,CAAA,CAC9B+J,GAAG,CAAC,UAAC+R,IAAI,EAAE7c,KAAK,EAAA;AAAA,QAAA,OAAA8B,cAAA,CAAAA,cAAA,CAAA,EAAA,EAAW+a,IAAI,CAAA,EAAA,EAAA,EAAA;AAAE7c,UAAAA,KAAK,EAAEA,KAAAA;AAAM,SAAA,CAAA,CAAA;AAAA,OAAE,CAAC,CAAA;AACtD,KAAA;GACD;AACD+O,EAAAA,OAAO,EAAE;IACP8R,kBAAkB,EAAA,SAAAA,qBAAA;AAAA,MAAA,IAAA5Q,KAAA,GAAA,IAAA,CAAA;AAChB,MAAA,IAAI,IAAI,CAAC7S,OAAO,CAAC4Q,OAAQ,IAAG,CAAC+R,OAAO,CAAC,IAAI,CAAC3iB,OAAO,CAAC2H,IAAI,CAAC,EAAE;QACvD,IAAI,CAAC4b,MAAO,GAAE,IAAI,CAAA;QAClB,IAAI,CAACG,SAAS,CAAC,YAAM;AACnB7Q,UAAAA,KAAI,CAACyQ,gBAAe,GAAIzQ,KAAI,CAACwQ,WAAW,CAAA;AAExCxQ,UAAAA,KAAI,CAACwQ,WAAY,GAAExQ,KAAI,CAACmN,aAAa,CAAA;AACvC,SAAC,CAAC,CAAA;AAEF2D,QAAAA,UAAU,CAAC,YAAA;AAAA,UAAA;YAEP9Q,KAAI,CAAC+Q,KAAK,CAACC,OAAe,CAACC,GAAmB,CAACC,KAAK,EAAC;AAAA,YAAA;SACxD,CAAA,CAAA;AACD,OAAA,MAAK;QACL,IAAI,CAACL,SAAS,CAAC,YAAM;AACnB7Q,UAAAA,KAAI,CAACmN,aAAc,GAAEnN,KAAI,CAACwQ,WAAW,CAAA;AACvC,SAAC,CAAC,CAAA;AACJ,OAAA;KACD;IACDQ,OAAO,EAAA,SAAAA,UAAA;MACL,IAAI,CAACG,YAAY,EAAE,CAAA;MACnB,IAAI,CAACT,SAAS,KAAK,CAAA;KACpB;IACDU,MAAM,EAAA,SAAAA,SAAA;AACJ,MAAA,IAAI,CAACX,gBAAiB,GAAE,IAAI,CAACtD,aAAa,CAAA;MAC1C,IAAI,CAACuD,SAAS,KAAK,CAAA;KACpB;IACDS,YAAY,EAAA,SAAAA,eAAA;AACV,MAAA,IAAI,CAAC7e,YAAY,CACf,IAAI,CAACf,IAAI,EACT,IAAI,CAACkf,gBAAe,KAAMhgB,SAAQ,IAAK,IAAI,CAACggB,gBAAiB,KAAI,IAAG,GAChE1R,kBAAkB,CAChB,IAAI,CAAC4R,uBAAuB,CAAC,IAAI,CAACF,gBAAgB,CAAC,CAAC9b,MAAM,EAC1D,IAAI,CAACxH,OAAO,CAACqR,UAAS,CACxB,GACA,EAAC,CACN,CAAA;AACD,MAAA,IAAI,CAACgS,WAAU,GAAI,IAAI,CAACC,gBAAgB,CAAA;AACxC,MAAA,IAAI,CAACtD,gBAAgB,IAAI,CAACsD,gBAAgB,CAAA;AAC5C,KAAA;AACD,GAAA;AACF,CAAA,EAAC;AAIK,IAAM1Y,OAAK,GAAmC;AACnDC,EAAAA,QAAQ,EAAEmE,iBAAe;AACzBlE,EAAAA,MAAM,EAAEC,QAAQ,CAAC,CAAC,EAAEmZ,cAAc,CAAA;;;;;;;;;;;;;;;;;;;ECzMvB,OAAAjZ,IAAA,CAAAjL,OAAO,CAAC6F,OAAO,iBAA1BiI,kBA0DK,CAAA,KAAA,EAAAF,YAAA,EAAA,CAzDHQ,WAIC,CAAAwR,gCAAA,EAAA;AAHEpY,IAAAA,MAAM,EAAEyD,IAAO,CAAAjL,OAAA,CAACwH,MAAM;AACvBoS,IAAAA,iBAAiB,EAAC,OAAM;IACvBxV,IAAI,EAAE6G,IAAI,CAAA7G,IAAAA;mCAGbgK,WAuBS,CAAAyQ,kBAAA,EAAA,IAAA,EAAA;IAtBP,SAAA3Q,EAAAA,OAAA,CAAA,UAAAC,IAAA,EAAA;AAAA,MAAA,IADiB2Q,UAAW,GAAA3Q,IAAA,CAAX2Q,UAAW,CAAA;MAAA,OAAA,CAC5BC,cAAA,CAAA3Q,WAAA,CAqBW+V,qBArBX9Y,UAqBW,CAAA;AAnBRlF,QAAAA,EAAE,EAAE8E,IAAO,CAAAjL,OAAA,CAACmG,EAAC,GAAA,QAAA;AACb,QAAA,OAAA,EAAO8E,IAAA,CAAAlJ,MAAM,CAAC/B,OAAO,CAACE,KAAK;AAC3BsU,QAAAA,QAAQ,EAAA,CAAGvJ,IAAO,CAAAjL,OAAA,CAAC4Q,OAAO;AAC1BwT,QAAAA,SAAS,EAAEnZ,IAAc,CAAApH,cAAA,CAACkgB,KAAK;AAC/BjG,QAAAA,WAAW,EAAE7S,IAAc,CAAApH,cAAA,CAACia,WAAW;QACvCvd,KAAK,EAAE0K,IAAa,CAAAjF,aAAA;AACpBqe,QAAAA,IAAI,EAAEpZ,IAAO,CAAAjL,OAAA,CAAC8F,WAAW;AACzB,QAAA,iBAAe,EAAEmF,IAAc,CAAAvF,cAAA,EAAA;AAC/B1B,QAAAA,QAAQ,EAAEiH,IAAO,CAAAjL,OAAA,CAACgE,QAAQ;AAC1B,QAAA,gBAAc,EAAEiH,IAAO,CAAAjL,OAAA,CAACyF,MAAM;AAC9BwZ,QAAAA,SAAS,EAAEH,UAAU;QACrBkD,KAAK,EAAE/W,IAAuB,CAAAuY,uBAAA;QAC9Bpe,QAAM,EAAE6F,IAAkB,CAAAwY,kBAAA;QAC1B,YAAU,EAAA,SAAAa,SAAAA,CAAGlkB,IAAI,EAAA;UAAA,OAAK6K,IAAC,CAAAyF,CAAA,CAACtQ,IAAI,CAACG,KAAK,EAAEH,IAAI,CAACG,KAAK,CAAA,CAAA;AAAA,SAAA;AAC/C,QAAA,YAAU,EAAC,OAAM;oBACR0K,IAAW,CAAAoY,WAAA;;iBAAXpY,IAAW,CAAAoY,WAAA,GAAApO,MAAA,CAAA;SAAA,CAAA;SACZhK,IAAY,CAAA9G,YAAA,CAAA,UAAA,CAAA,EAAA;AACnBogB,QAAAA,OAAK;iBAAEtZ,IAAQ,CAAA5F,SAAA,GAAA,IAAA,CAAA;AAAA,SAAA,CAAA;QACfmf,MAAI,EAAEvZ,IAAU,CAAA3F,UAAAA;;;;MAIb2F,IAAY,CAAA+U,aAAA,KAAM1c,SAAQ,IAAK2H,IAAc,CAAA+U,aAAA,KAAA,IAAA,iBADrD7U,WAQC,CAAA8K,4BAAA,EAAA;;IANEzO,MAAM,EAAEyD,IAAA,CAAAuY,uBAAuB,CAACvY,IAAA,CAAA+U,aAAa,EAAExY,MAAM;IACrD7D,QAAQ,EAAEsH,IAAA,CAAAuY,uBAAuB,CAACvY,IAAA,CAAA+U,aAAa,EAAErc,QAAQ;AACzDS,IAAAA,IAAI,EAAE6G,IAAO,CAAAjL,OAAA,CAACoE,IAAI;AAClB8R,IAAAA,SAAS,EAAEjL,IAAO,CAAAjL,OAAA,CAACkW,SAAS;AAC5BC,IAAAA,KAAK,EAAElL,IAAO,CAAAjL,OAAA,CAACmW,KAAK;AACpBvF,IAAAA,OAAO,EAAE3F,IAAO,CAAAjL,OAAA,CAAC4Q,OAAAA;gHAGpBxC,WAgBU,CAAAqW,mBAAA,EAAA;gBAhBSxZ,IAAM,CAAAsY,MAAA;;aAANtY,IAAM,CAAAsY,MAAA,GAAAtO,MAAA,CAAA;AAAA,KAAA,CAAA;AAAEyP,IAAAA,UAAS,EAAT,EAAS;AAAE,IAAA,WAAS,EAAC,KAAI;IAAGpO,SAAO,WAAMrL,IAAM,CAAAgZ,MAAA,EAAA,CAAA,KAAA,CAAA,CAAA;;uBACxE,YAAA;AAAA,MAAA,OAcQ,CAdR7V,WAcQ,CAAAsF,iBAAA,EAAA,IAAA,EAAA;2BAbN,YAAA;AAAA,UAAA,OAAyD,CAAzDtF,WAAyD,CAAAwF,uBAAA,EAAA;YAA3C,OAAM,EAAA,SAAA;AAAS,WAAA,EAAA;+BAAA,YAAA;AAAA,cAAA,OAAc,iBAAd,eAAc,CAAA;;;cAE3CxF,WAGa,CAAAsG,sBAAA,EAAA,IAAA,EAAA;+BAHD,YAAA;AAAA,cAAA,OAGZ,iBAHY,oFAGZ,CAAA;;;cAEAtG,WAKgB,CAAAiI,yBAAA,EAAA,IAAA,EAAA;+BAJd,YAAA;cAAA,OAAoB,CAApBjI,WAAoB,CAAA6F,mBAAA,CAAA,EAEpB7F,WAAuC,CAAAgG,gBAAA,EAAA;AAAhC5I,gBAAAA,IAAG,EAAH,EAAG;gBAAGiJ,OAAK,EAAExJ,IAAM,CAAAgZ,MAAAA;;mCAAC,YAAA;AAAA,kBAAA,OAAK,iBAAL,MAAK,CAAA;;;kCAChC7V,WAAuD,CAAAgG,gBAAA,EAAA;AAAhD5I,gBAAAA,IAAG,EAAH,EAAG;AAAExG,gBAAAA,GAAG,EAAC,SAAQ;gBAAGyP,OAAK,EAAExJ,IAAO,CAAA4Y,OAAAA;;mCAAG,YAAA;AAAA,kBAAA,OAAI,iBAAJ,OAAI,CAAA;;;;;;;;;;;;;;;;;ACoCpD7U,IAAAA,iBAAc,GAAI5E,eAAe,CAAC;AACtCC,EAAAA,IAAI,EAAE,iBAAiB;AACvBC,EAAAA,UAAU,EAAE;AACVC,IAAAA,gBAAgB,EAAhBA,gBAAgB;AAChB2U,IAAAA,oBAAoB,EAApBA,QAAoB;AACpB5P,IAAAA,OAAO,EAAPA,OAAO;AACPL,IAAAA,KAAK,EAALA,KAAK;AACLE,IAAAA,UAAU,EAAVA,UAAU;AACVC,IAAAA,SAAS,EAATA,SAAS;AACTF,IAAAA,YAAY,EAAZA,YAAY;AACZU,IAAAA,OAAO,EAAPA,OAAO;AACPD,IAAAA,IAAI,EAAJA,IAAI;AACJ+G,IAAAA,KAAK,EAALA,KAAK;AACLC,IAAAA,IAAI,EAAJA,IAAI;AACJC,IAAAA,OAAO,EAAPA,OAAO;AACPC,IAAAA,WAAW,EAAXA,WAAAA;GACD;AACDvS,EAAAA,KAAK,EAAAI,cAAA,CAAA,EAAA,EACA+F,aAAa,EAAkB,CACnC;EACDC,KAAK,EAAA,SAAAA,KAACpG,CAAAA,KAAoC,EAAA;AACxC,IAAA,IAAMpE,KAAI,GAAIkjB,wBAAwB,CAAC9e,KAAK,CAAC,CAAA;AAC7C,IAAA,IAAMtE,OAAQ,GAAEE,KAAK,CAACF,OAAO,CAACyD,KAAK,CAAA;IAEnC,IAAMuc,aAAY,GAAIhb,GAAG,CAAChF,OAAO,CAACigB,oBAAqB,IAAG,CAAC,CAAC,CAAA;AAC5D,IAAA,IAAM0E,QAAS,GAAE3f,GAAG,CAACgb,aAAa,CAACvc,KAAK,CAAC,CAAA;AACzC,IAAA,IAAM6f,gBAAe,GAAIte,GAAG,CAAC,CAAC,CAAC,CAAA;AAC/B,IAAA,IAAMue,MAAK,GAAIve,GAAG,CAAC,KAAK,CAAC,CAAA;AAEzB,IAAA,OAAAN,cAAA,CAAAA,cAAA,KACKC,iBAAiB,CAACzE,KAAK,CAAC,CAAA,EAAA,EAAA,EAAA;AAC3B8f,MAAAA,aAAa,EAAbA,aAAa;AACb2E,MAAAA,QAAQ,EAARA,QAAQ;AACRpB,MAAAA,MAAM,EAANA,MAAM;AACND,MAAAA,gBAAgB,EAAhBA,gBAAAA;AAAgB,KAAA,CAAA,CAAA;GAEnB;AACD9f,EAAAA,QAAQ,EAAE;IACRohB,gBAAgB,EAAA,SAAAA,mBAAA;MACd,IAAMrF,MAAK,GAAIC,2BAA2B;AAExC,MAAA,IAAI,CAACxf,OAAO,CAACwH,MAAM,CAACka,KAAM,EAC1B,IAAI,CAAC1hB,OAAO,CAACqR,UAAU,EACvB,OAAO,EACP,IAAI,CAACrR,OAAO,CAAC2D,QAAQ,EACrB,IAAI,CAAC3D,OAAO,CAACoE,IAAI,EACjB,IAAI,CAACpE,OAAO,CAACmR,SAAQ,CACtB,CAAA;AACD,MAAA,OAAOoO,MAAM,CAACzM,MAAM,CAAC,UAAC2M,IAAI,EAAA;QAAA,OAAKA,IAAI,CAAC9b,QAAQ,CAAA;OAAC,CAAA,CAAA;AAC/C,KAAA;GACD;AACDgO,EAAAA,OAAO,EAAE;IACPkT,eAAe,EAAA,SAAAA,kBAAA;AAAA,MAAA,IAAAhS,KAAA,GAAA,IAAA,CAAA;AACb,MAAA,IAAI,IAAI,CAAC7S,OAAO,CAAC4Q,OAAQ,IAAG,CAAC+R,OAAO,CAAC,IAAI,CAAC3iB,OAAO,CAAC2H,IAAI,CAAC,EAAE;QACvD,IAAI,CAAC4b,MAAO,GAAE,IAAI,CAAA;QAClB,IAAI,CAACG,SAAS,CAAC,YAAM;AACnB7Q,UAAAA,KAAI,CAACyQ,gBAAe,GAAIzQ,KAAI,CAAC8R,QAAQ,CAAA;AAErC9R,UAAAA,KAAI,CAAC8R,QAAO,GAAI9R,KAAI,CAACmN,aAAa,CAAA;AACpC,SAAC,CAAC,CAAA;AAEF2D,QAAAA,UAAU,CAAC,YAAA;AAAA,UAAA;YAEP9Q,KAAI,CAAC+Q,KAAK,CAACC,OAAe,CAACC,GAAmB,CAACC,KAAK,EAAC;AAAA,YAAA;SACxD,CAAA,CAAA;AACD,OAAA,MAAK;QACL,IAAI,CAACL,SAAS,CAAC,YAAM;AACnB7Q,UAAAA,KAAI,CAACmN,aAAY,GAAInN,KAAI,CAAC8R,QAAQ,CAAA;AACpC,SAAC,CAAC,CAAA;AACJ,OAAA;KACD;IACDd,OAAO,EAAA,SAAAA,UAAA;MACL,IAAI,CAACiB,UAAU,EAAE,CAAA;MACjB,IAAI,CAACvB,SAAS,KAAK,CAAA;KACpB;IACDU,MAAM,EAAA,SAAAA,SAAA;AACJ,MAAA,IAAI,CAACX,gBAAiB,GAAE,IAAI,CAACtD,aAAa,CAAA;MAC1C,IAAI,CAACuD,SAAS,KAAK,CAAA;KACpB;IACDuB,UAAU,EAAA,SAAAA,aAAA;MACR,IAAI,CAAC3f,YAAY,CACf,IAAI,CAACf,IAAI,EACTwN,kBAAkB,CACd,IAAI,CAACgT,gBAAgB,CAAC,IAAI,CAACtB,gBAAgB,CAAC,CAAC9b,MAAM,EACnD,IAAI,CAACxH,OAAO,CAACqR,UAAS,CAC1B,CACD,CAAA;AACD,MAAA,IAAI,CAACsT,QAAS,GAAE,IAAI,CAACrB,gBAAgB,CAAA;AACrC,MAAA,IAAI,CAACtD,gBAAgB,IAAI,CAACsD,gBAAgB,CAAA;AAC5C,KAAA;AACD,GAAA;AACF,CAAA,EAAC;AAIK,IAAM1Y,OAAK,GAAmC;AACnDC,EAAAA,QAAQ,EAAEmE,iBAAe;AACzBlE,EAAAA,MAAM,EAAEC,QAAQ,CAAC,CAAC,EAAE0M,GAAG,CAACyM,cAAc,EAAEa,QAAQ,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC,CAAA;;;;;;;;;;;;;;;;;;;;EC3LxD,OAAA9Z,IAAA,CAAAjL,OAAO,CAAC6F,OAAO,iBAA1BiI,kBAmDK,CAAA,KAAA,EAAAF,YAAA,EAAA,CAlDHQ,WAIC,CAAAwR,gCAAA,EAAA;AAHEpY,IAAAA,MAAM,EAAEyD,IAAO,CAAAjL,OAAA,CAACwH,MAAM;AACvBoS,IAAAA,iBAAiB,EAAC,OAAM;IACvBxV,IAAI,EAAE6G,IAAI,CAAA7G,IAAAA;mCAGbgK,WAQQ,CAAAwJ,iBAAA,EAAA;gBARS3M,IAAQ,CAAA0Z,QAAA;;aAAR1Z,IAAQ,CAAA0Z,QAAA,GAAA1P,MAAA,CAAA;KAAA,CAAA;;uBAGrB,YAAA;MAAA,OAAwD,EAF1D/J,SAAA,CAAA,IAAA,CAAA,EAAA4C,kBAAA,CAMOW,QAJmC,EAAA,IAAA,EAAAC,UAAA,CAAAzD,IAAA,CAAA2Z,gBAAgB,EAAhD,UAAAI,eAAe,EAAEC,UAAU,EAAA;4BAFrC9Z,WAMO,CAAA0M,gBAAA,EAAA;UALJzS,QAAM,EAAE6F,IAAe,CAAA4Z,eAAA;UAEvBlW,GAAG,EAAA,EAAA,CAAA9L,MAAA,CAAKoI,IAAA,CAAAjL,OAAO,CAACoE,IAAI,EAAA,GAAA,CAAA,CAAAvB,MAAA,CAAIoiB,UAAU,CAAA;;6BAEnC,YAAA;AAAA,YAAA,OAA0B,CAAvB3Z,eAAA,CAAAC,eAAA,CAAAyZ,eAAe,CAACzkB,KAAI,CAAA,EAAA,CAAA,CAAA;;;;;;;yBAI3B6N,WAeU,CAAA0J,mBAAA,EAAA;gBAfS7M,IAAa,CAAA+U,aAAA;;aAAb/U,IAAa,CAAA+U,aAAA,GAAA/K,MAAA,CAAA;KAAA,CAAA;;uBAE5B,YAAA;MAAA,OAAwD,EAD1D/J,SAAA,CAAA,IAAA,CAAA,EAAA4C,kBAAA,CAaeW,QAZ2B,EAAA,IAAA,EAAAC,UAAA,CAAAzD,IAAA,CAAA2Z,gBAAgB,EAAhD,UAAAI,eAAe,EAAEC,UAAU,EAAA;4BADrC9Z,WAae,CAAA4M,wBAAA,EAAA;UAXZpJ,GAAG,EAAA,EAAA,CAAA9L,MAAA,CAAKoI,IAAA,CAAAjL,OAAO,CAACoE,IAAI,EAAA,GAAA,CAAA,CAAAvB,MAAA,CAAIoiB,UAAU,CAAA;;6BAEnC,YAAA;AAAA,YAAA,OAQC,CAPOha,IAAA,CAAA+U,aAAc,KAAIiF,UAAU,iBADpC9Z,WAQC,CAAA8K,4BAAA,EAAA;;cANEzO,MAAM,EAAEwd,eAAe,CAACxd,MAAM;cAC9B7D,QAAQ,EAAEqhB,eAAe,CAACrhB,QAAQ;AAClCS,cAAAA,IAAI,EAAE6G,IAAO,CAAAjL,OAAA,CAACoE,IAAI;AAClB8R,cAAAA,SAAS,EAAEjL,IAAO,CAAAjL,OAAA,CAACkW,SAAS;AAC5BC,cAAAA,KAAK,EAAElL,IAAO,CAAAjL,OAAA,CAACmW,KAAK;AACpBvF,cAAAA,OAAO,EAAE3F,IAAO,CAAAjL,OAAA,CAAC4Q,OAAAA;;;;;;;;yBAKxBxC,WAgBU,CAAAqW,mBAAA,EAAA;gBAhBSxZ,IAAM,CAAAsY,MAAA;;aAANtY,IAAM,CAAAsY,MAAA,GAAAtO,MAAA,CAAA;AAAA,KAAA,CAAA;AAAEyP,IAAAA,UAAS,EAAT,EAAS;AAAE,IAAA,WAAS,EAAC,KAAI;IAAGpO,SAAO,WAAMrL,IAAM,CAAAgZ,MAAA,EAAA,CAAA,KAAA,CAAA,CAAA;;uBACxE,YAAA;AAAA,MAAA,OAcQ,CAdR7V,WAcQ,CAAAsF,iBAAA,EAAA,IAAA,EAAA;2BAbN,YAAA;AAAA,UAAA,OAAyD,CAAzDtF,WAAyD,CAAAwF,uBAAA,EAAA;YAA3C,OAAM,EAAA,SAAA;AAAS,WAAA,EAAA;+BAAA,YAAA;AAAA,cAAA,OAAc,iBAAd,eAAc,CAAA;;;cAE3CxF,WAGa,CAAAsG,sBAAA,EAAA,IAAA,EAAA;+BAHD,YAAA;AAAA,cAAA,OAGZ,iBAHY,yFAGZ,CAAA;;;cAEAtG,WAKgB,CAAAiI,yBAAA,EAAA,IAAA,EAAA;+BAJd,YAAA;cAAA,OAAoB,CAApBjI,WAAoB,CAAA6F,mBAAA,CAAA,EAEpB7F,WAAuC,CAAAgG,gBAAA,EAAA;AAAhC5I,gBAAAA,IAAG,EAAH,EAAG;gBAAGiJ,OAAK,EAAExJ,IAAM,CAAAgZ,MAAAA;;mCAAC,YAAA;AAAA,kBAAA,OAAK,iBAAL,MAAK,CAAA;;;kCAChC7V,WAAuD,CAAAgG,gBAAA,EAAA;AAAhD5I,gBAAAA,IAAG,EAAH,EAAG;AAAExG,gBAAAA,GAAG,EAAC,SAAQ;gBAAGyP,OAAK,EAAExJ,IAAO,CAAA4Y,OAAAA;;mCAAG,YAAA;AAAA,kBAAA,OAAI,iBAAJ,OAAI,CAAA;;;;;;;;;;;;;;;;;IChC7CqB,gBAAgB,GAAG,CAC9BC,OAAkB,EAClBC,OAAkB,EAClBC,OAAyB,EACzBC,OAAsB,EACtBC,OAAmB,EACnBC,OAAkB,EAClBC,OAAqB;;ACbvB,aAAerb,eAAe,CAAC;AAC7BC,EAAAA,IAAI,EAAE,iBAAiB;AACvB/F,EAAAA,KAAK,EAAE;AACL6B,IAAAA,EAAE,EAAE;AACFnC,MAAAA,QAAQ,EAAE,IAAa;AACvB6H,MAAAA,IAAI,EAAEI,MAAAA;KACP;AACDpG,IAAAA,OAAO,EAAE;AACP7B,MAAAA,QAAQ,EAAE,KAAc;AACxB6H,MAAAA,IAAI,EAAEE,OAAO;MACb,SAAS,EAAA,IAAA;KACV;AACDhK,IAAAA,MAAM,EAAE;AACNiC,MAAAA,QAAQ,EAAE,IAAI;AACd6H,MAAAA,IAAI,EAAE8N,MAAAA;AACP,KAAA;AACF,GAAA;AACF,CAAA,CAAC;;;;SC1BW1O,IAAO,CAAApF,OAAA,iBAAlBiI,kBAEK,CAAA,KAAA,EAAA;;IAFgB,OAAO6F,EAAAA,cAAA,CAAA1I,IAAA,CAAAlJ,MAAM,CAAC/B,OAAO,CAACC,IAAI,CAAA;IAAGkG,EAAE,EAAE8E,IAAE,CAAA9E,EAAAA;MACtDoI,UAAY,CAAAtD,IAAA,CAAAuD,MAAA,EAAA,SAAA,CAAA;;;;;AC2DVQ,IAAAA,iBAAc,GAAI5E,eAAe,CAAC;AACtCC,EAAAA,IAAI,EAAE,uCAAuC;AAC7CC,EAAAA,UAAU,EAAE;AACVob,IAAAA,cAAc,EAAdA,MAAc;AACd5K,IAAAA,MAAM,EAANA,MAAM;AACN6K,IAAAA,SAAS,EAATA,SAAAA;GACD;AACD5K,EAAAA,UAAU,EAAE;AACVX,IAAAA,iBAAiB,EAAjBA,iBAAAA;GACD;AACD9V,EAAAA,KAAK,EAAAI,cAAA,CAAA,EAAA,EACA+F,aAAa,EAAkB,CACnC;EACDC,KAAK,EAAA,SAAAA,KAACpG,CAAAA,KAAoC,EAAA;IACxC,OAAOK,iBAAiB,CACtBihB,mBAAmB,CAACthB,KAAK,CAAC,EAC1B,UAACb,KAAK,EAAA;MAAA,OAAKA,KAAM,IAAGH,SAAQ,CAAA;KAC7B,CAAA,CAAA;GACF;AACDE,EAAAA,QAAQ,EAAE;IACRwe,KAAK,EAAA,SAAAA,QAAA;MAGH,OAAO6D,cAAc,CAAC,IAAI,CAAC7lB,OAAO,CAACwH,MAAM,CAAC2Y,KAAM,CAAE,CAAM,MAAA,CAAA,CAAA;AAC1D,KAAA;AACD,GAAA;AACF,CAAA,EAAC;AAIF,IAAM0F,iBAAiB,SAAjBA,eAAkBC,OAAqB,EAAA;AAAA,EAAA,OAC3CA,OAAO,CAACjK,IAAI,CACV,UAAClP,CAAC,EAAA;AAAA,IAAA,OAAKA,CAAC,CAAI,MAAA,CAAA,KAAMrJ,SAAQ,KAAMqJ,CAAC,CAACd,IAAK,KAAI,QAAO,IAAKc,CAAC,CAACd,IAAG,KAAMvI,SAAS,CAAA,CAAA;GAC5E,CAAA,CAAA;AAAA,CAAA,CAAA;AACH,IAAMyiB,iBAAiB,SAAjBA,eAAkBD,OAAqB,EAAA;AAAA,EAAA,OAC3CA,OAAO,CAACjK,IAAI,CAAC,UAAClP,CAAC,EAAA;IAAA,OAAKA,CAAC,CAACd,IAAG,KAAM,QAAO,IAAKc,CAAC,aAAUrJ,SAAS,CAAA;GAAC,CAAA,CAAA;AAAA,CAAA,CAAA;AAElE,IAAM0iB,cAAa,GAAI,SAAjBA,cAAaA,CAAKF,OAAqB,EAAc;AAEzD,EAAA,IAAMG,UAAW,GAAEJ,cAAc,CAACC,OAAO,CAAC,CAAA;AAC1C,EAAA,IAAMI,YAAW,GAAIH,cAAc,CAACD,OAAO,CAAC,CAAA;AAC5C,EAAA,IAAMK,gBAAiB,GAAEL,OAAO,CAAChT,MAAM,CACrC,UAACnG,CAAC,EAAA;AAAA,IAAA,OAAKA,MAAMsZ,UAAW,IAAGtZ,CAAA,KAAMuZ,YAAW,CAAA;GAC7C,CAAA,CAAA;AACD,EAAA,IAAME,YAAYD,gBAAgB,CAACtK,IAAI,CAAC,UAAClP,CAAC,EAAA;IAAA,OAAKA,CAAC,CAACd,IAAG,IAAKc,CAAC,CAACd,IAAK,KAAI,QAAQ,CAAA;GAAC,CAAA,CAAA;EAC7E,OAAO,CAAC,CAACoa,cAAc,CAAC,CAACC,YAAa,IAAG,CAACE,SAAS,CAAA;AACrD,CAAC,CAAA;AACD,IAAMC,cAAc5O,GAAG,CACrBzM,QAAQ,CAAC,SAAS,CAAC,EACnB6W,aAAa,CACX,UAACra,MAAM,EAAA;AAAA,EAAA,OAAKjF,KAAK,CAACwf,OAAO,CAACva,MAAM,CAAC2Y,KAAK,CAAA,IAAK6F,cAAc,CAACxe,MAAM,CAAC2Y,KAAK,CAAA,CAAA;AAAA,CAAA,CACxE,CACD,CAAA;AAEM,IAAMvV,OAAK,GAAmC;AACnDC,EAAAA,QAAQ,EAAEmE,iBAAe;AACzBlE,EAAAA,MAAM,EAAEC,QAAQ,CAAC,CAAC,EAAEsb,WAAW,CAAA;;;;;;;;sBCpH/Blb,WAoCiB,CAAAmb,0BAAA,EApCjBjb,UACU,CAmCOJ,IAnCO,CAAAhF,cAAA,EAAA;IACrBlE,MAAM,EAAEkJ,IAAM,CAAAlJ,MAAA;IACdsD,SAAS,EAAE4F,IAAS,CAAA5F,SAAA;IACpBxB,cAAc,EAAEoH,IAAc,CAAApH,cAAAA;;uBAE/B,YAAA;AAAA,MAAA,OA6BS,CA7BTuK,WA6BS,CAAAyQ,kBAAA,EAAA,IAAA,EAAA;QA5BP,SAAA3Q,EAAAA,OAAA,CAAA,UAAAC,IAAA,EAAA;AAAA,UAAA,IADiB2Q,UAAW,GAAA3Q,IAAA,CAAX2Q,UAAW,CAAA;UAAA,OAAA,CAC5BC,cAAA,CAAA3Q,WAAA,CA2BCmY,uBA3BDlb,UA2BC,CAAA;AAzBElF,YAAAA,EAAE,EAAE8E,IAAO,CAAAjL,OAAA,CAACmG,EAAC,GAAA,QAAA;AACb,YAAA,OAAA,EAAO8E,IAAA,CAAAlJ,MAAM,CAAC/B,OAAO,CAACE,KAAK;AAC3BsU,YAAAA,QAAQ,EAAA,CAAGvJ,IAAO,CAAAjL,OAAA,CAAC4Q,OAAO;AAC1BwT,YAAAA,SAAS,EAAEnZ,IAAc,CAAApH,cAAA,CAACkgB,KAAK;AAC/BjG,YAAAA,WAAW,EAAE7S,IAAc,CAAApH,cAAA,CAACia,WAAW;YACvCvd,KAAK,EAAE0K,IAAa,CAAAjF,aAAA;AACpBqe,YAAAA,IAAI,EAAEpZ,IAAO,CAAAjL,OAAA,CAAC8F,WAAW;AACzB,YAAA,iBAAe,EAAEmF,IAAc,CAAAvF,cAAA,EAAA;AAC/B1B,YAAAA,QAAQ,EAAEiH,IAAO,CAAAjL,OAAA,CAACgE,QAAQ;AAC1B,YAAA,gBAAc,EAAEiH,IAAO,CAAAjL,OAAA,CAACyF,MAAM;AAC9B,YAAA,aAAW,EAAEwF,IAAO,CAAAjL,OAAA,CAAC2H,IAAI;AACzB6e,YAAAA,SAAS,EAACvb,IAAA,CAAApH,cAAA,CAAAgN,QAAA,GAAA5F,IAAA,CAAAjL,OAAA,CAAAwH,MAAA,CAAAif,SAAA,GAAAnjB,SAAA;AAGVojB,YAAAA,OAAO,EAACzb,IAAA,CAAAjL,OAAA,CAAAwH,MAAA,CAAAif,SAAA,KAAAnjB,SAAA,GAAA2H,IAAA,CAAAjL,OAAA,CAAAwH,MAAA,CAAAif,SAAA,GAAAnjB,SAAA;YAKR0e,KAAK,EAAE/W,IAAK,CAAA+W,KAAA;AACZ/C,YAAAA,SAAS,EAAEH,UAAAA;aACJ7T,IAAY,CAAA9G,YAAA,CAAA,YAAA,CAAA,EAAA;YACnBiB,QAAM,EAAE6F,IAAQ,CAAA7F,QAAA;AAChBmf,YAAAA,OAAK;qBAAEtZ,IAAQ,CAAA5F,SAAA,GAAA,IAAA,CAAA;AAAA,aAAA,CAAA;YACfmf,MAAI,EAAEvZ,IAAU,CAAA3F,UAAAA;;;;;;;;;;;;ACWnB0J,IAAAA,iBAAc,GAAI5E,eAAe,CAAC;AACtCC,EAAAA,IAAI,EAAE,0BAA0B;AAChCC,EAAAA,UAAU,EAAE;AACV6W,IAAAA,SAAS,EAATA,SAAS;AACTuE,IAAAA,cAAc,EAAdA,MAAAA;GACD;AACDphB,EAAAA,KAAK,EAAAI,cAAA,CAAA,EAAA,EACA+F,aAAa,EAAkB,CACnC;EACDC,KAAK,EAAA,SAAAA,KAACpG,CAAAA,KAAoC,EAAA;IACxC,OAAOK,iBAAiB,CAACihB,mBAAmB,CAACthB,KAAK,CAAC,EAAE,UAAC4N,KAAK,EAAK;AAC9D,MAAA,OAAOA,KAAK,CAACyU,MAAM,CAACC,OAAQ,IAAG,KAAK,CAAA;AACtC,KAAC,CAAC,CAAA;AACJ,GAAA;AACD,CAAA,EAAC;AAIK,IAAMhc,OAAK,GAAmC;AACnDC,EAAAA,QAAQ,EAAEmE,iBAAe;AACzBlE,EAAAA,MAAM,EAAEC,QAAQ,CAAC,CAAC,EAAE8b,gBAAgB,CAAA;;;;;;sBChEpC1b,WAwBiB,CAAAmb,0BAAA,EAxBjBjb,UACU,CAuBOJ,IAvBO,CAAAhF,cAAA,EAAA;IACrBlE,MAAM,EAAEkJ,IAAM,CAAAlJ,MAAA;IACdsD,SAAS,EAAE4F,IAAS,CAAA5F,SAAA;IACpBxB,cAAc,EAAEoH,IAAc,CAAApH,cAAAA;;uBAE/B,YAAA;AAAA,MAAA,OAiBC,CAjBDuK,WAAA,CAiBCiU,uBAjBDhX,UAiBC,CAAA;AAhBElF,QAAAA,EAAE,EAAE8E,IAAO,CAAAjL,OAAA,CAACmG,EAAC,GAAA,QAAA;AACb,QAAA,OAAA,EAAO8E,IAAA,CAAAlJ,MAAM,CAAC/B,OAAO,CAACE,KAAK;AAC3BsU,QAAAA,QAAQ,EAAA,CAAGvJ,IAAO,CAAAjL,OAAA,CAAC4Q,OAAO;AAC1BwT,QAAAA,SAAS,EAAEnZ,IAAc,CAAApH,cAAA,CAACkgB,KAAK;AAC/BjG,QAAAA,WAAW,EAAE7S,IAAc,CAAApH,cAAA,CAACia,WAAW;QACvCvd,KAAK,EAAE0K,IAAa,CAAAjF,aAAA;AACpBqe,QAAAA,IAAI,EAAEpZ,IAAO,CAAAjL,OAAA,CAAC8F,WAAW;AACzB,QAAA,iBAAe,EAAEmF,IAAc,CAAAvF,cAAA,EAAA;AAC/B1B,QAAAA,QAAQ,EAAEiH,IAAO,CAAAjL,OAAA,CAACgE,QAAQ;AAC1B,QAAA,gBAAc,EAAEiH,IAAO,CAAAjL,OAAA,CAACyF,MAAM;AAC9B6c,QAAAA,aAAa,EAAErX,IAAA,CAAAjL,OAAO,CAAC2H,SAASrE,SAAS;AACzC,QAAA,aAAW,EAAE2H,IAAO,CAAAjL,OAAA,CAAC2H,IAAAA;SACdsD,IAAY,CAAA9G,YAAA,CAAA,YAAA,CAAA,EAAA;QACnBiB,QAAM,EAAE6F,IAAQ,CAAA7F,QAAA;AAChBmf,QAAAA,OAAK;iBAAEtZ,IAAQ,CAAA5F,SAAA,GAAA,IAAA,CAAA;AAAA,SAAA,CAAA;QACfmf,MAAI,EAAEvZ,IAAU,CAAA3F,UAAAA;;;;;;;;;AC0BjB0J,IAAAA,iBAAc,GAAI5E,eAAe,CAAC;AACtCC,EAAAA,IAAI,EAAE,iCAAiC;AACvCC,EAAAA,UAAU,EAAE;AACVob,IAAAA,cAAc,EAAdA,MAAc;AACdoB,IAAAA,OAAO,EAAPA,OAAAA;GACD;AACDxiB,EAAAA,KAAK,EAAAI,cAAA,CAAA,EAAA,EACA+F,aAAa,EAAkB,CACnC;EACDC,KAAK,EAAA,SAAAA,KAACpG,CAAAA,KAAoC,EAAA;IACxC,OAAOK,iBAAiB,CACtBihB,mBAAmB,CAACthB,KAAK,CAAC,EAC1B,UAACia,QAAQ,EAAA;AAAA,MAAA,OAAKA,QAAQ,CAACoI,MAAM,CAACC,OAAQ,IAAG,KAAI,CAAA;KAC9C,CAAA,CAAA;AACH,GAAA;AACD,CAAA,EAAC;AAIK,IAAMhc,OAAK,GAAmC;AACnDC,EAAAA,QAAQ,EAAEmE,iBAAe;AACzBlE,EAAAA,MAAM,EAAEC,QAAQ,CAAC,CAAC,EAAE0M,GAAG,CAACoP,gBAAgB,EAAE9B,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAA;;;;;;sBCrEnE5Z,WA0BiB,CAAAmb,0BAAA,EA1BjBjb,UACU,CAyBOJ,IAzBO,CAAAhF,cAAA,EAAA;IACrBlE,MAAM,EAAEkJ,IAAM,CAAAlJ,MAAA;IACdsD,SAAS,EAAE4F,IAAS,CAAA5F,SAAA;IACpBxB,cAAc,EAAEoH,IAAc,CAAApH,cAAAA;;uBAE/B,YAAA;AAAA,MAAA,OAmBC,CAnBDuK,WAAA,CAmBC2Y,qBAnBD1b,UAmBC,CAAA;AAlBElF,QAAAA,EAAE,EAAE8E,IAAO,CAAAjL,OAAA,CAACmG,EAAC,GAAA,QAAA;AACb,QAAA,OAAA,EAAO8E,IAAA,CAAAlJ,MAAM,CAAC/B,OAAO,CAACE,KAAK;AAC3BsU,QAAAA,QAAQ,EAAA,CAAGvJ,IAAO,CAAAjL,OAAA,CAAC4Q,OAAO;AAC1BwT,QAAAA,SAAS,EAAEnZ,IAAc,CAAApH,cAAA,CAACkgB,KAAK;AAC/BjG,QAAAA,WAAW,EAAE7S,IAAc,CAAApH,cAAA,CAACia,WAAW;QACvCvd,KAAK,EAAE0K,IAAa,CAAAjF,aAAA;AACpBqe,QAAAA,IAAI,EAAEpZ,IAAO,CAAAjL,OAAA,CAAC8F,WAAW;AACzB,QAAA,iBAAe,EAAEmF,IAAc,CAAAvF,cAAA,EAAA;AAC/B1B,QAAAA,QAAQ,EAAEiH,IAAO,CAAAjL,OAAA,CAACgE,QAAQ;AAC1B,QAAA,gBAAc,EAAEiH,IAAO,CAAAjL,OAAA,CAACyF,MAAM;AAC9B,QAAA,aAAW,EAAEwF,IAAO,CAAAjL,OAAA,CAAC2H,IAAI;AACzB,QAAA,aAAW,EAAEsD,IAAO,CAAAjL,OAAA,CAAC2H,IAAI;AACzB,QAAA,YAAU,EAAE,IAAI;AAChB,QAAA,aAAW,EAAE,KAAA;SACNsD,IAAY,CAAA9G,YAAA,CAAA,UAAA,CAAA,EAAA;QACnBiB,QAAM,EAAE6F,IAAQ,CAAA7F,QAAA;AAChBmf,QAAAA,OAAK;iBAAEtZ,IAAQ,CAAA5F,SAAA,GAAA,IAAA,CAAA;AAAA,SAAA,CAAA;QACfmf,MAAI,EAAEvZ,IAAU,CAAA3F,UAAAA;;;;;;;;;ACqBjB0J,IAAAA,iBAAc,GAAI5E,eAAe,CAAC;AACtCC,EAAAA,IAAI,EAAE,uBAAuB;AAC7BC,EAAAA,UAAU,EAAE;AACVob,IAAAA,cAAc,EAAdA,MAAc;AACd7K,IAAAA,UAAU,EAAVA,UAAAA;GACD;AACDvW,EAAAA,KAAK,EAAAI,cAAA,CAAA,EAAA,EACA+F,aAAa,EAAkB,CACnC;EACDC,KAAK,EAAA,SAAAA,KAACpG,CAAAA,KAAoC,EAAA;AACxC,IAAA,IAAMM,UAAW,GAAE,SAAbA,UAAWA,CAAGnB,KAAU,EAAA;MAAA,OAAKA,KAAI,IAAKH,SAAS,CAAA;AAAA,KAAA,CAAA;IACrD,IAAMtD,OAAQ,GAAE2E,iBAAiB,CAACihB,mBAAmB,CAACthB,KAAK,CAAC,EAAEM,UAAU,CAAC,CAAA;AACzE,IAAA,OAAAF,cAAA,CAAAA,cAAA,CAAA,EAAA,EAAY1E,OAAO,CAAA,EAAA,EAAA,EAAA;AAAE4E,MAAAA,UAAS,EAATA,UAAAA;AAAS,KAAA,CAAA,CAAA;AAChC,GAAA;AACD,CAAA,EAAC;AAIK,IAAMgG,OAAK,GAAmC;AACnDC,EAAAA,QAAQ,EAAEmE,iBAAe;AACzBlE,EAAAA,MAAM,EAAEC,QAAQ,CAAC,CAAC,EAAEic,aAAa,CAAA;;;;;;sBCjEjC7b,WAwBiB,CAAAmb,0BAAA,EAxBjBjb,UACU,CAuBOJ,IAvBO,CAAAhF,cAAA,EAAA;IACrBlE,MAAM,EAAEkJ,IAAM,CAAAlJ,MAAA;IACdsD,SAAS,EAAE4F,IAAS,CAAA5F,SAAA;IACpBxB,cAAc,EAAEoH,IAAc,CAAApH,cAAAA;;uBAE/B,YAAA;AAAA,MAAA,OAiBC,CAjBDuK,WAAA,CAiBC4Q,yBAjBD3T,UAiBC,CAAA;AAhBElF,QAAAA,EAAE,EAAE8E,IAAO,CAAAjL,OAAA,CAACmG,EAAC,GAAA,QAAA;AACb,QAAA,OAAA,EAAO8E,IAAA,CAAAlJ,MAAM,CAAC/B,OAAO,CAACE,KAAK;AAC3BsU,QAAAA,QAAQ,EAAA,CAAGvJ,IAAO,CAAAjL,OAAA,CAAC4Q,OAAO;AAC1BwT,QAAAA,SAAS,EAAEnZ,IAAc,CAAApH,cAAA,CAACkgB,KAAK;AAC/BjG,QAAAA,WAAW,EAAE7S,IAAc,CAAApH,cAAA,CAACia,WAAW;QACvCvd,KAAK,EAAE0K,IAAa,CAAAjF,aAAA;AACpBqe,QAAAA,IAAI,EAAEpZ,IAAO,CAAAjL,OAAA,CAAC8F,WAAW;AACzB,QAAA,iBAAe,EAAEmF,IAAc,CAAAvF,cAAA,EAAA;AAC/B1B,QAAAA,QAAQ,EAAEiH,IAAO,CAAAjL,OAAA,CAACgE,QAAQ;AAC1B,QAAA,gBAAc,EAAEiH,IAAO,CAAAjL,OAAA,CAACyF,MAAAA;SACjBwF,IAAY,CAAA9G,YAAA,CAAA,cAAA,CAAA,EAAA;AACnB,QAAA,aAAW,EAAE8G,IAAO,CAAAjL,OAAA,CAAC2H,IAAI;QACzB,qBAAkB,EAAEsD,IAAQ,CAAA7F,QAAA;AAC5Bmf,QAAAA,OAAK;iBAAEtZ,IAAQ,CAAA5F,SAAA,GAAA,IAAA,CAAA;AAAA,SAAA,CAAA;QACfmf,MAAI,EAAEvZ,IAAU,CAAA3F,UAAA;AACjBuG,QAAAA,IAAI,EAAC,MAAA;;;;;;;;;ACuBX,IAAMob,WAAY,GAAE,SAAdA,WAAYA,CAAGC,aAAqB,EAAK;EAC7C,OAAOA,aAAY,KAAM,EAAG,GAAE5jB,SAAQ,GAAI4jB,aAAY,GAAI,UAAU,CAAA;AACtE,CAAC,CAAA;AAEKlY,IAAAA,iBAAc,GAAI5E,eAAe,CAAC;AACtCC,EAAAA,IAAI,EAAE,2BAA2B;AACjCC,EAAAA,UAAU,EAAE;AACVob,IAAAA,cAAc,EAAdA,MAAc;AACd7K,IAAAA,UAAU,EAAVA,UAAAA;GACD;AACDvW,EAAAA,KAAK,EAAAI,cAAA,CAAA,EAAA,EACA+F,aAAa,EAAkB,CACnC;EACDC,KAAK,EAAA,SAAAA,KAACpG,CAAAA,KAAoC,EAAA;AACxC,IAAA,IAAMM,aAAa,SAAbA,WAAcnB,KAAU,EAAA;AAAA,MAAA,OAAKwjB,WAAW,CAACxjB,KAAK,CAAA,IAAKH,SAAS,CAAA;AAAA,KAAA,CAAA;IAElE,IAAMtD,OAAQ,GAAE2E,iBAAiB,CAACihB,mBAAmB,CAACthB,KAAK,CAAC,EAAEM,UAAU,CAAC,CAAA;AACzE,IAAA,OAAAF,cAAA,CAAAA,cAAA,CAAA,EAAA,EAAY1E,OAAO,CAAA,EAAA,EAAA,EAAA;AAAE4E,MAAAA,UAAS,EAATA,UAAAA;AAAS,KAAA,CAAA,CAAA;GAC/B;AACDpB,EAAAA,QAAQ,EAAE;IACR2jB,QAAQ,EAAA,SAAAA,WAAA;AAAA,MAAA,IAAArV,kBAAA,CAAA;MACN,OAAO,CAAA,CAAAA,kBAAA,GAAC,IAAI,CAAC9R,OAAO,CAAC2H,uEAAQ,EAAE,EAAEyf,MAAM,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;AAChD,KAAA;AACD,GAAA;AACF,CAAA,EAAC;AAIK,IAAMxc,OAAK,GAAmC;AACnDC,EAAAA,QAAQ,EAAEmE,iBAAe;AACzBlE,EAAAA,MAAM,EAAEC,QAAQ,CAAC,CAAC,EAAEsc,iBAAiB,CAAA;;;;;;sBC3ErClc,WAyBiB,CAAAmb,0BAAA,EAzBjBjb,UACU,CAwBOJ,IAxBO,CAAAhF,cAAA,EAAA;IACrBlE,MAAM,EAAEkJ,IAAM,CAAAlJ,MAAA;IACdsD,SAAS,EAAE4F,IAAS,CAAA5F,SAAA;IACpBxB,cAAc,EAAEoH,IAAc,CAAApH,cAAAA;;uBAE/B,YAAA;AAAA,MAAA,OAkBc,CAlBduK,WAAA,CAkBc4Q,yBAlBd3T,UAkBc,CAAA;AAjBXlF,QAAAA,EAAE,EAAE8E,IAAO,CAAAjL,OAAA,CAACmG,EAAC,GAAA,QAAA;AACb,QAAA,OAAA,EAAO8E,IAAA,CAAAlJ,MAAM,CAAC/B,OAAO,CAACE,KAAK;AAC3BsU,QAAAA,QAAQ,EAAA,CAAGvJ,IAAO,CAAAjL,OAAA,CAAC4Q,OAAO;AAC1BwT,QAAAA,SAAS,EAAEnZ,IAAc,CAAApH,cAAA,CAACkgB,KAAK;AAC/BjG,QAAAA,WAAW,EAAE7S,IAAc,CAAApH,cAAA,CAACia,WAAW;QACvCvd,KAAK,EAAE0K,IAAa,CAAAjF,aAAA;AACpBqe,QAAAA,IAAI,EAAEpZ,IAAO,CAAAjL,OAAA,CAAC8F,WAAW;AACzB,QAAA,iBAAe,EAAEmF,IAAc,CAAAvF,cAAA,EAAA;AAC/B1B,QAAAA,QAAQ,EAAEiH,IAAO,CAAAjL,OAAA,CAACgE,QAAQ;AAC1B,QAAA,gBAAc,EAAEiH,IAAO,CAAAjL,OAAA,CAACyF,MAAAA;SACjBwF,IAAY,CAAA9G,YAAA,CAAA,cAAA,CAAA,EAAA;QACnB,aAAW,EAAE8G,IAAQ,CAAAkc,QAAA;QACrB,qBAAkB,EAAElc,IAAQ,CAAA7F,QAAA;AAC5Bmf,QAAAA,OAAK;iBAAEtZ,IAAQ,CAAA5F,SAAA,GAAA,IAAA,CAAA;AAAA,SAAA,CAAA;QACfmf,MAAI,EAAEvZ,IAAU,CAAA3F,UAAA;AACjBuG,QAAAA,IAAI,EAAC,gBAAA;;;;;;;;;AC6BLmD,IAAAA,iBAAc,GAAI5E,eAAe,CAAC;AACtCC,EAAAA,IAAI,EAAE,uBAAuB;AAC7BC,EAAAA,UAAU,EAAE;AACVob,IAAAA,cAAc,EAAdA,MAAc;AACdvC,IAAAA,OAAO,EAAPA,OAAO;AACPrI,IAAAA,MAAM,EAANA,MAAAA;GACD;AACDC,EAAAA,UAAU,EAAE;AACVX,IAAAA,iBAAiB,EAAjBA,iBAAAA;GACD;AACD9V,EAAAA,KAAK,EAAAI,cAAA,CAAA,EAAA,EACA+F,aAAa,EAAkB,CACnC;EACDC,KAAK,EAAA,SAAAA,KAACpG,CAAAA,KAAoC,EAAA;AACxC,IAAA,IAAMoM,IAAIjK,aAAa,EAAE,CAAA;IAEzB,IAAMzG,OAAM,GAAI2E,iBAAiB,CAAC2iB,uBAAuB,CAAChjB,KAAK,CAAC,EAAE,UAACb,KAAK,EAAA;AAAA,MAAA,OACtEA,KAAM,KAAI,IAAK,GAAEA,KAAI,GAAIH,SAAQ,CAAA;KAClC,CAAA,CAAA;AAED,IAAA,OAAAoB,cAAA,CAAAA,cAAA,CAAA,EAAA,EAAY1E,OAAO,CAAA,EAAA,EAAA,EAAA;AAAE0Q,MAAAA,GAAAA,CAAAA;;AACvB,GAAA;AACD,CAAA,EAAC;AAIK,IAAM9F,OAAK,GAAmC;AACnDC,EAAAA,QAAQ,EAAEmE,iBAAe;AACzBlE,EAAAA,MAAM,EAAEC,QAAQ,CAAC,CAAC,EAAEwc,aAAa,CAAA;;;;;;;;sBC/EjCpc,WA8BiB,CAAAmb,0BAAA,EA9BjBjb,UACU,CA6BOJ,IA7BO,CAAAhF,cAAA,EAAA;IACrBlE,MAAM,EAAEkJ,IAAM,CAAAlJ,MAAA;IACdsD,SAAS,EAAE4F,IAAS,CAAA5F,SAAA;IACpBxB,cAAc,EAAEoH,IAAc,CAAApH,cAAAA;;uBAE/B,YAAA;AAAA,MAAA,OAuBS,CAvBTuK,WAuBS,CAAAyQ,kBAAA,EAAA,IAAA,EAAA;QAtBP,SAAA3Q,EAAAA,OAAA,CAAA,UAAAC,IAAA,EAAA;AAAA,UAAA,IADiB2Q,UAAW,GAAA3Q,IAAA,CAAX2Q,UAAW,CAAA;UAAA,OAAA,CAC5BC,cAAA,CAAA3Q,WAAA,CAqBC+V,qBArBD9Y,UAqBC,CAAA;AAnBElF,YAAAA,EAAE,EAAE8E,IAAO,CAAAjL,OAAA,CAACmG,EAAC,GAAA,QAAA;AACb,YAAA,OAAA,EAAO8E,IAAA,CAAAlJ,MAAM,CAAC/B,OAAO,CAACE,KAAK;AAC3BsU,YAAAA,QAAQ,EAAA,CAAGvJ,IAAO,CAAAjL,OAAA,CAAC4Q,OAAO;AAC1BwT,YAAAA,SAAS,EAAEnZ,IAAc,CAAApH,cAAA,CAACkgB,KAAK;AAC/BjG,YAAAA,WAAW,EAAE7S,IAAc,CAAApH,cAAA,CAACia,WAAW;YACvCvd,KAAK,EAAE0K,IAAa,CAAAjF,aAAA;AACpBqe,YAAAA,IAAI,EAAEpZ,IAAO,CAAAjL,OAAA,CAAC8F,WAAW;AACzB,YAAA,iBAAe,EAAEmF,IAAc,CAAAvF,cAAA,EAAA;AAC/B1B,YAAAA,QAAQ,EAAEiH,IAAO,CAAAjL,OAAA,CAACgE,QAAQ;AAC1B,YAAA,gBAAc,EAAEiH,IAAO,CAAAjL,OAAA,CAACyF,MAAM;AAC9BwZ,YAAAA,SAAS,EAAEH,UAAU;AACrB,YAAA,aAAW,EAAE7T,IAAO,CAAAjL,OAAA,CAAC2H,IAAI;AACzBqa,YAAAA,KAAK,EAAE/W,IAAO,CAAAjL,OAAA,CAAC8B,OAAO;YACtB,YAAU,EAAA,SAAAwiB,SAAAA,CAAGlkB,IAAI,EAAA;cAAA,OAAK6K,IAAC,CAAAyF,CAAA,CAACtQ,IAAI,CAACG,KAAK,EAAEH,IAAI,CAACG,KAAK,CAAA,CAAA;AAAA,aAAA;AAC/C,YAAA,YAAU,EAAC,OAAA;aACH0K,IAAY,CAAA9G,YAAA,CAAA,UAAA,CAAA,EAAA;YACnB,qBAAiB,EAAE8G,IAAQ,CAAA7F,QAAA;AAC3Bmf,YAAAA,OAAK;qBAAEtZ,IAAQ,CAAA5F,SAAA,GAAA,IAAA,CAAA;AAAA,aAAA,CAAA;YACfmf,MAAI,EAAEvZ,IAAU,CAAA3F,UAAAA;;;;;;;;;;;;ACqBzB,IAAMkiB,mBAAkB,GAAE,oCAAoC,CAAA;AAExDxY,IAAAA,iBAAc,GAAI5E,eAAe,CAAC;AACtCC,EAAAA,IAAI,EAAE,0BAA0B;AAChCC,EAAAA,UAAU,EAAE;AACVob,IAAAA,cAAc,EAAdA,MAAc;AACd5K,IAAAA,MAAM,EAANA,MAAM;AACND,IAAAA,UAAU,EAAVA,UAAAA;GACD;AACDvW,EAAAA,KAAK,EAAAI,cAAA,CAAA,EAAA,EACA+F,aAAa,EAAkB,CACnC;EACDC,KAAK,EAAA,SAAAA,KAACpG,CAAAA,KAAoC,EAAA;AACxC,IAAA,IAAMM,aAAa,SAAbA,WAAcnB,KAAU,EAAA;MAAA,OAC5B,OAAOA,UAAU,QAAO,GAAIA,KAAI,GAAIA,KAAI,IAAKH,SAAS,CAAA;AAAA,KAAA,CAAA;IACxD,IAAMpD,KAAM,GAAEyE,iBAAiB,CAACihB,mBAAmB,CAACthB,KAAK,CAAC,EAAEM,UAAU,CAAC,CAAA;AAIvE,IAAA,IAAM6iB,UAAW,GAAEziB,GAAG,CAAE0iB,KAAK,CAACxnB,KAAK,CAACF,OAAO,CAAC,CAAC2H,IAAc,IAAK,EAAE,CAAC,CAAA;AACnE,IAAA,OAAAjD,cAAA,CAAAA,cAAA,CAAA,EAAA,EAAYxE,KAAK,CAAA,EAAA,EAAA,EAAA;AAAE0E,MAAAA,UAAU,EAAVA,UAAU;AAAE6iB,MAAAA,YAAAA,UAAAA;;GAChC;AACDjkB,EAAAA,QAAQ,EAAE;IACRmkB,IAAI,EAAA,SAAAA,OAAA;AAAA,MAAA,IAAAC,aAAA,CAAA;AACF,MAAA,IAAM9lB,OAAO,GAAQ,IAAI,CAAC+B,cAAc,CAAA;MACxC,OAAA+jB,CAAAA,aAAA,GAAO9lB,OAAO,CAAC6lB,IAAK,cAAAC,aAAA,KAAA,KAAA,CAAA,GAAAA,aAAA,GAAG,CAAC,CAAA;KACzB;IACDC,kBAAkB,EAAA,SAAAA,qBAAA;AAChB,MAAA,OAAO,IAAI,CAAChkB,cAAc,CAACgkB,kBAAkB,CAAA;AAC/C,KAAA;GACD;AACDlW,EAAAA,OAAO,EAAE;IACPmW,aAAa,EAAA,SAAAA,aAACrkB,CAAAA,KAAa,EAAA;MACzB,IAAI,CAACgkB,UAAW,GAAEhkB,KAAK,CAAA;MACvB,IAAI,CAAC2B,QAAQ,CAAC,IAAI,CAAC2iB,gBAAgB,CAACtkB,KAAK,CAAC,CAAC,CAAA;KAC5C;IACDskB,gBAAgB,EAAA,SAAAA,gBAACtkB,CAAAA,KAAa,EAAA;AAE5B,MAAA,IAAI+jB,mBAAiB,CAACxL,IAAI,CAACvY,KAAK,CAAC,EAAE;AACjC,QAAA,IAAMukB,GAAI,GAAEngB,MAAM,CAACogB,UAAU,CAACxkB,KAAK,CAAC,CAAA;AACpC,QAAA,IACEoE,MAAM,CAACqgB,QAAQ,CAACF,GAAG,MAClB,IAAI,CAACH,kBAAmB,IAAGhgB,MAAM,CAACsgB,aAAa,CAACH,GAAG,CAAC,CAAA,EACrD;AAEA,UAAA,OAAOA,GAAG,CAAA;AACZ,SAAA;AACF,OAAA;AACA,MAAA,OAAOvkB,KAAK,CAAA;AACd,KAAA;AACD,GAAA;AACF,CAAA,EAAC;AAIK,IAAMmH,OAAK,GAAmC;AACnDC,EAAAA,QAAQ,EAAEmE,iBAAe;AACzBlE,EAAAA,MAAM,EAAEC,QAAQ,CAAC,CAAC,EAAEqd,gBAAgB,CAAA;;;;;;;sBCzGpCjd,WA4BiB,CAAAmb,0BAAA,EA5BjBjb,UACU,CA2BOJ,IA3BO,CAAAhF,cAAA,EAAA;IACrBlE,MAAM,EAAEkJ,IAAM,CAAAlJ,MAAA;IACdsD,SAAS,EAAE4F,IAAS,CAAA5F,SAAA;IACpBxB,cAAc,EAAEoH,IAAc,CAAApH,cAAAA;;uBAE/B,YAAA;AAAA,MAAA,OAqBS,CArBTuK,WAqBS,CAAAyQ,kBAAA,EAAA,IAAA,EAAA;QApBP,SAAA3Q,EAAAA,OAAA,CAAA,UAAAC,IAAA,EAAA;AAAA,UAAA,IADiB2Q,UAAW,GAAA3Q,IAAA,CAAX2Q,UAAW,CAAA;AAAA,UAAA,OAAA,CAC5B1Q,WAAA,CAmBe4Q,yBAnBf3T,UAmBe,CAAA;AAlBbrG,YAAAA,GAAG,EAAC,OAAM;YACT2iB,IAAI,EAAE1c,IAAI,CAAA0c,IAAA;AACVxhB,YAAAA,EAAE,EAAE8E,IAAO,CAAAjL,OAAA,CAACmG,EAAC,GAAA,QAAA;AACb,YAAA,OAAA,EAAO8E,IAAA,CAAAlJ,MAAM,CAAC/B,OAAO,CAACE,KAAK;AAC3BsU,YAAAA,QAAQ,EAAA,CAAGvJ,IAAO,CAAAjL,OAAA,CAAC4Q,OAAO;AAC1BwT,YAAAA,SAAS,EAAEnZ,IAAc,CAAApH,cAAA,CAACkgB,KAAK;AAC/BjG,YAAAA,WAAW,EAAE7S,IAAc,CAAApH,cAAA,CAACia,WAAW;YACvCvd,KAAK,EAAE0K,IAAa,CAAAjF,aAAA;AACpBqe,YAAAA,IAAI,EAAEpZ,IAAO,CAAAjL,OAAA,CAAC8F,WAAW;AACzB,YAAA,iBAAe,EAAEmF,IAAc,CAAAvF,cAAA,EAAA;AAC/B1B,YAAAA,QAAQ,EAAEiH,IAAO,CAAAjL,OAAA,CAACgE,QAAQ;AAC1B,YAAA,gBAAc,EAAEiH,IAAO,CAAAjL,OAAA,CAACyF,MAAM;YAC9B,aAAW,EAAEwF,IAAU,CAAAwc,UAAA;AACvBxI,YAAAA,SAAS,EAAEH,UAAAA;aACJ7T,IAAY,CAAA9G,YAAA,CAAA,cAAA,CAAA,EAAA;YACnB,qBAAkB,EAAE8G,IAAa,CAAA6c,aAAA;AACjCvD,YAAAA,OAAK;qBAAEtZ,IAAQ,CAAA5F,SAAA,GAAA,IAAA,CAAA;AAAA,aAAA,CAAA;YACfmf,MAAI,EAAEvZ,IAAU,CAAA3F,UAAAA;;;;;;;;;;;;ACkCnB0J,IAAAA,iBAAc,GAAI5E,eAAe,CAAC;AACtCC,EAAAA,IAAI,EAAE,+BAA+B;AACrCC,EAAAA,UAAU,EAAE;AACVob,IAAAA,cAAc,EAAdA,MAAc;AACd5K,IAAAA,MAAM,EAANA,MAAM;AACNuN,IAAAA,SAAS,EAATA,SAAAA;GACD;AACDtN,EAAAA,UAAU,EAAE;AACVX,IAAAA,iBAAiB,EAAjBA,iBAAAA;GACD;AACD9V,EAAAA,KAAK,EAAAI,cAAA,CAAA,EAAA,EACA+F,aAAa,EAAkB,CACnC;EACDC,KAAK,EAAA,SAAAA,KAACpG,CAAAA,KAAoC,EAAA;IACxC,OAAOK,iBAAiB,CACtBihB,mBAAmB,CAACthB,KAAK,CAAC,EAC1B,UAACb,KAAK,EAAA;MAAA,OAAKA,KAAM,IAAGH,SAAS,CAAA;AAAA,KAAA,EAC7B,GAAE,CACH,CAAA;AACH,GAAA;AACD,CAAA,EAAC;AAIK,IAAMsH,OAAK,GAAmC;AACnDC,EAAAA,QAAQ,EAAEmE,iBAAe;EACzBlE,MAAM,EAAEC,QAAQ,CAAC,CAAC,EAAE0M,GAAG,CAAC6Q,eAAe,EAAEC,kBAAkB,CAAC,CAAA;;;;;;;;sBCrF5Dpd,WAoCiB,CAAAmb,0BAAA,EApCjBjb,UACU,CAmCOJ,IAnCO,CAAAhF,cAAA,EAAA;IACrBlE,MAAM,EAAEkJ,IAAM,CAAAlJ,MAAA;IACdsD,SAAS,EAAE4F,IAAS,CAAA5F,SAAA;IACpBxB,cAAc,EAAEoH,IAAc,CAAApH,cAAAA;;uBAE/B,YAAA;AAAA,MAAA,OA6BS,CA7BTuK,WA6BS,CAAAyQ,kBAAA,EAAA,IAAA,EAAA;QA5BP,SAAA3Q,EAAAA,OAAA,CAAA,UAAAC,IAAA,EAAA;AAAA,UAAA,IADiB2Q,UAAW,GAAA3Q,IAAA,CAAX2Q,UAAW,CAAA;UAAA,OAAA,CAC5BC,cAAA,CAAA3Q,WAAA,CA2BCoa,uBA3BDnd,UA2BC,CAAA;AAzBElF,YAAAA,EAAE,EAAE8E,IAAO,CAAAjL,OAAA,CAACmG,EAAC,GAAA,QAAA;AACb,YAAA,OAAA,EAAO8E,IAAA,CAAAlJ,MAAM,CAAC/B,OAAO,CAACE,KAAK;AAC3BsU,YAAAA,QAAQ,EAAA,CAAGvJ,IAAO,CAAAjL,OAAA,CAAC4Q,OAAO;AAC1BwT,YAAAA,SAAS,EAAEnZ,IAAc,CAAApH,cAAA,CAACkgB,KAAK;AAC/BjG,YAAAA,WAAW,EAAE7S,IAAc,CAAApH,cAAA,CAACia,WAAW;YACvCvd,KAAK,EAAE0K,IAAa,CAAAjF,aAAA;AACpBqe,YAAAA,IAAI,EAAEpZ,IAAO,CAAAjL,OAAA,CAAC8F,WAAW;AACzB,YAAA,iBAAe,EAAEmF,IAAc,CAAAvF,cAAA,EAAA;AAC/B1B,YAAAA,QAAQ,EAAEiH,IAAO,CAAAjL,OAAA,CAACgE,QAAQ;AAC1B,YAAA,gBAAc,EAAEiH,IAAO,CAAAjL,OAAA,CAACyF,MAAM;AAC9B,YAAA,aAAW,EAAEwF,IAAO,CAAAjL,OAAA,CAAC2H,IAAI;AACzB6e,YAAAA,SAAS,EAACvb,IAAA,CAAApH,cAAA,CAAAgN,QAAA,GAAA5F,IAAA,CAAAjL,OAAA,CAAAwH,MAAA,CAAAif,SAAA,GAAAnjB,SAAA;YAGVmS,IAAI,EAACxK,IAAA,CAAApH,cAAA,CAAAf,IAAA,IAAAmI,IAAA,CAAAjL,OAAA,CAAAwH,MAAA,CAAAif,SAAA,KAAAnjB,SAAA,GAAA2H,IAAA,CAAAjL,OAAA,CAAAwH,MAAA,CAAAif,SAAA,GAAAnjB,SAAA;AAKL2b,YAAAA,SAAS,EAAEH,UAAU;AACtB,YAAA,YAAS,EAAT,EAAA;aACQ7T,IAAY,CAAA9G,YAAA,CAAA,YAAA,CAAA,EAAA;YACnB,qBAAkB,EAAE8G,IAAQ,CAAA7F,QAAA;AAC5Bmf,YAAAA,OAAK;qBAAEtZ,IAAQ,CAAA5F,SAAA,GAAA,IAAA,CAAA;AAAA,aAAA,CAAA;YACfmf,MAAI,EAAEvZ,IAAU,CAAA3F,UAAAA;;;;;;;;;;;;ACezB,IAAMkiB,iBAAkB,GAAE,oCAAoC,CAAA;AAExDxY,IAAAA,iBAAc,GAAI5E,eAAe,CAAC;AACtCC,EAAAA,IAAI,EAAE,yBAAyB;AAC/BC,EAAAA,UAAU,EAAE;AACVob,IAAAA,cAAc,EAAdA,MAAc;AACd5K,IAAAA,MAAM,EAANA,MAAM;AACND,IAAAA,UAAU,EAAVA,UAAAA;GACD;AACDvW,EAAAA,KAAK,EAAAI,cAAA,CAAA,EAAA,EACA+F,aAAa,EAAkB,CACnC;EACDC,KAAK,EAAA,SAAAA,KAACpG,CAAAA,KAAoC,EAAA;AACxC,IAAA,IAAMM,aAAa,SAAbA,WAAcnB,KAAU,EAAA;MAAA,OAC5B,OAAOA,UAAU,QAAO,GAAIA,KAAI,GAAIA,KAAI,IAAKH,SAAS,CAAA;AAAA,KAAA,CAAA;IACxD,IAAMpD,KAAM,GAAEyE,iBAAiB,CAACihB,mBAAmB,CAACthB,KAAK,CAAC,EAAEM,UAAU,CAAC,CAAA;AAIvE,IAAA,IAAM6iB,UAAW,GAAEziB,GAAG,CAAE0iB,KAAK,CAACxnB,KAAK,CAACF,OAAO,CAAC,CAAC2H,IAAc,IAAK,EAAE,CAAC,CAAA;AACnE,IAAA,OAAAjD,cAAA,CAAAA,cAAA,CAAA,EAAA,EAAYxE,KAAK,CAAA,EAAA,EAAA,EAAA;AAAE0E,MAAAA,UAAU,EAAVA,UAAU;AAAE6iB,MAAAA,YAAAA,UAAAA;;GAChC;AACDjkB,EAAAA,QAAQ,EAAE;IACRmkB,IAAI,EAAA,SAAAA,OAAA;AAAA,MAAA,IAAAC,aAAA,CAAA;AACF,MAAA,IAAM9lB,OAAO,GAAQ,IAAI,CAAC+B,cAAc,CAAA;MACxC,OAAA+jB,CAAAA,aAAA,GAAO9lB,OAAO,CAAC6lB,6DAAQ,GAAG,CAAA;AAC5B,KAAA;GACD;AACDhW,EAAAA,OAAO,EAAE;IACPmW,aAAa,EAAA,SAAAA,aAACrkB,CAAAA,KAAa,EAAA;AAAA,MAAA,IAAAoP,KAAA,GAAA,IAAA,CAAA;MACzB,IAAI,CAAC4U,UAAW,GAAEhkB,KAAK,CAAA;AACvB,MAAA,IAAM8b,MAAK,GAAI,IAAI,CAACwI,gBAAgB,CAACtkB,KAAK,CAAC,CAAA;AAC3C,MAAA,IAAI,OAAO8b,MAAO,KAAI,QAAQ,EAAE;AAE9B,QAAA,IAAMkJ,2BAA4B,GAChC,IAAI,CAAChB,UAAU,CAACpM,QAAQ,CAAC,GAAG,CAAE,IAAG,IAAI,CAACoM,UAAU,CAACpM,QAAQ,CAAC,GAAG,CAAC,CAAA;AAEhE,QAAA,IAAMqN,cAAe,GAAED,2BAA0B,GAC7ClJ,MAAM,CAACoJ,aAAa,EAAC,GACrBpJ,MAAM,CAACqJ,WAAW,EAAE,CAAA;AAExB,QAAA,IAAMC,sBAAuB,GAC3BH,cAAc,CAACrN,QAAQ,CAAC,GAAG,CAAE,IAAGqN,cAAc,CAACrN,QAAQ,CAAC,GAAG,CAAC,CAAA;QAE9D,IACE,IAAI,CAACoM,UAAW,KAAIiB,kBACpBD,2BAA4B,KAAII,sBAAuB;UACvD;UACA,IAAI,CAACnF,SAAS,CAAC,YAAA;AAAA,YAAA,OAAO7Q,KAAI,CAAC4U,UAAS,GAAIiB,cAAc,CAAA;AAAA,WAAC,CAAC,CAAA;AAC1D,SAAA;AACF,OAAA;AACA,MAAA,IAAI,CAACtjB,QAAQ,CAACma,MAAM,CAAC,CAAA;KACtB;IACDwI,gBAAgB,EAAA,SAAAA,gBAACtkB,CAAAA,KAAa,EAAA;AAE5B,MAAA,IAAI+jB,iBAAiB,CAACxL,IAAI,CAACvY,KAAK,CAAC,EAAE;AACjC,QAAA,IAAMukB,GAAI,GAAEngB,MAAM,CAACogB,UAAU,CAACxkB,KAAK,CAAC,CAAA;AACpC,QAAA,IAAIoE,MAAM,CAACqgB,QAAQ,CAACF,GAAG,CAAC,EAAE;AAExB,UAAA,OAAOA,GAAG,CAAA;AACZ,SAAA;AACF,OAAA;AACA,MAAA,OAAOvkB,KAAK,CAAA;AACd,KAAA;AACD,GAAA;AACF,CAAA,EAAC;AAIK,IAAMmH,OAAK,GAAmC;AACnDC,EAAAA,QAAQ,EAAEmE,iBAAe;AACzBlE,EAAAA,MAAM,EAAEC,QAAQ,CAAC,CAAC,EAAE+d,eAAe,CAAA;;;;;;;sBCvHnC3d,WA4BiB,CAAAmb,0BAAA,EA5BjBjb,UACU,CA2BOJ,IA3BO,CAAAhF,cAAA,EAAA;IACrBlE,MAAM,EAAEkJ,IAAM,CAAAlJ,MAAA;IACdsD,SAAS,EAAE4F,IAAS,CAAA5F,SAAA;IACpBxB,cAAc,EAAEoH,IAAc,CAAApH,cAAAA;;uBAE/B,YAAA;AAAA,MAAA,OAqBS,CArBTuK,WAqBS,CAAAyQ,kBAAA,EAAA,IAAA,EAAA;QApBP,SAAA3Q,EAAAA,OAAA,CAAA,UAAAC,IAAA,EAAA;AAAA,UAAA,IADiB2Q,UAAW,GAAA3Q,IAAA,CAAX2Q,UAAW,CAAA;AAAA,UAAA,OAAA,CAC5B1Q,WAAA,CAmBe4Q,yBAnBf3T,UAmBe,CAAA;AAlBbrG,YAAAA,GAAG,EAAC,OAAM;YACT2iB,IAAI,EAAE1c,IAAI,CAAA0c,IAAA;AACVxhB,YAAAA,EAAE,EAAE8E,IAAO,CAAAjL,OAAA,CAACmG,EAAC,GAAA,QAAA;AACb,YAAA,OAAA,EAAO8E,IAAA,CAAAlJ,MAAM,CAAC/B,OAAO,CAACE,KAAK;AAC3BsU,YAAAA,QAAQ,EAAA,CAAGvJ,IAAO,CAAAjL,OAAA,CAAC4Q,OAAO;AAC1BwT,YAAAA,SAAS,EAAEnZ,IAAc,CAAApH,cAAA,CAACkgB,KAAK;AAC/BjG,YAAAA,WAAW,EAAE7S,IAAc,CAAApH,cAAA,CAACia,WAAW;YACvCvd,KAAK,EAAE0K,IAAa,CAAAjF,aAAA;AACpBqe,YAAAA,IAAI,EAAEpZ,IAAO,CAAAjL,OAAA,CAAC8F,WAAW;AACzB,YAAA,iBAAe,EAAEmF,IAAc,CAAAvF,cAAA,EAAA;AAC/B1B,YAAAA,QAAQ,EAAEiH,IAAO,CAAAjL,OAAA,CAACgE,QAAQ;AAC1B,YAAA,gBAAc,EAAEiH,IAAO,CAAAjL,OAAA,CAACyF,MAAM;YAC9B,aAAW,EAAEwF,IAAU,CAAAwc,UAAA;AACvBxI,YAAAA,SAAS,EAAEH,UAAAA;aACJ7T,IAAY,CAAA9G,YAAA,CAAA,cAAA,CAAA,EAAA;YACnB,qBAAkB,EAAE8G,IAAa,CAAA6c,aAAA;AACjCvD,YAAAA,OAAK;qBAAEtZ,IAAQ,CAAA5F,SAAA,GAAA,IAAA,CAAA;AAAA,aAAA,CAAA;YACfmf,MAAI,EAAEvZ,IAAU,CAAA3F,UAAAA;;;;;;;;;;;;AC0BnB0J,IAAAA,iBAAc,GAAI5E,eAAe,CAAC;AACtCC,EAAAA,IAAI,EAAE,6BAA6B;AACnCC,EAAAA,UAAU,EAAE;AACVob,IAAAA,cAAc,EAAdA,MAAc;AACdvC,IAAAA,OAAO,EAAPA,OAAO;AACPrI,IAAAA,MAAM,EAANA,MAAAA;GACD;AACDC,EAAAA,UAAU,EAAE;AACVX,IAAAA,iBAAiB,EAAjBA,iBAAAA;GACD;AACD9V,EAAAA,KAAK,EAAAI,cAAA,CAAA,EAAA,EACA+F,aAAa,EAAkB,CACnC;EACDC,KAAK,EAAA,SAAAA,KAACpG,CAAAA,KAAoC,EAAA;AACxC,IAAA,IAAMoM,IAAIjK,aAAa,EAAE,CAAA;IAEzB,IAAMzG,OAAQ,GAAE2E,iBAAiB,CAC/BokB,4BAA4B,CAACzkB,KAAK,CAAC,EACnC,UAACb,KAAK,EAAA;AAAA,MAAA,OAAMA,KAAM,KAAI,OAAOA,KAAM,GAAEH,SAAS,CAAA;AAAA,KAAA,CAC/C,CAAA;AACD,IAAA,OAAAoB,cAAA,CAAAA,cAAA,CAAA,EAAA,EAAY1E,OAAO,CAAA,EAAA,EAAA,EAAA;AAAE0Q,MAAAA,GAAAA,CAAAA;;AACvB,GAAA;AACD,CAAA,EAAC;AAIK,IAAM9F,OAAK,GAAmC;AACnDC,EAAAA,QAAQ,EAAEmE,iBAAe;AACzBlE,EAAAA,MAAM,EAAEC,QAAQ,CAAC,CAAC,EAAEie,kBAAkB,CAAA;;;;;;;;sBC/EtC7d,WA8BiB,CAAAmb,0BAAA,EA9BjBjb,UACU,CA6BOJ,IA7BO,CAAAhF,cAAA,EAAA;IACrBlE,MAAM,EAAEkJ,IAAM,CAAAlJ,MAAA;IACdsD,SAAS,EAAE4F,IAAS,CAAA5F,SAAA;IACpBxB,cAAc,EAAEoH,IAAc,CAAApH,cAAAA;;uBAE/B,YAAA;AAAA,MAAA,OAuBS,CAvBTuK,WAuBS,CAAAyQ,kBAAA,EAAA,IAAA,EAAA;QAtBP,SAAA3Q,EAAAA,OAAA,CAAA,UAAAC,IAAA,EAAA;AAAA,UAAA,IADiB2Q,UAAW,GAAA3Q,IAAA,CAAX2Q,UAAW,CAAA;UAAA,OAAA,CAC5BC,cAAA,CAAA3Q,WAAA,CAqBC+V,qBArBD9Y,UAqBC,CAAA;AAnBElF,YAAAA,EAAE,EAAE8E,IAAO,CAAAjL,OAAA,CAACmG,EAAC,GAAA,QAAA;AACb,YAAA,OAAA,EAAO8E,IAAA,CAAAlJ,MAAM,CAAC/B,OAAO,CAACE,KAAK;AAC3BsU,YAAAA,QAAQ,EAAA,CAAGvJ,IAAO,CAAAjL,OAAA,CAAC4Q,OAAO;AAC1BwT,YAAAA,SAAS,EAAEnZ,IAAc,CAAApH,cAAA,CAACkgB,KAAK;AAC/BjG,YAAAA,WAAW,EAAE7S,IAAc,CAAApH,cAAA,CAACia,WAAW;YACvCvd,KAAK,EAAE0K,IAAa,CAAAjF,aAAA;AACpBqe,YAAAA,IAAI,EAAEpZ,IAAO,CAAAjL,OAAA,CAAC8F,WAAW;AACzB,YAAA,iBAAe,EAAEmF,IAAc,CAAAvF,cAAA,EAAA;AAC/B1B,YAAAA,QAAQ,EAAEiH,IAAO,CAAAjL,OAAA,CAACgE,QAAQ;AAC1B,YAAA,gBAAc,EAAEiH,IAAO,CAAAjL,OAAA,CAACyF,MAAM;AAC9BwZ,YAAAA,SAAS,EAAEH,UAAU;AACrB,YAAA,aAAW,EAAE7T,IAAO,CAAAjL,OAAA,CAAC2H,IAAI;AACzBqa,YAAAA,KAAK,EAAE/W,IAAO,CAAAjL,OAAA,CAAC8B,OAAO;YACtB,YAAU,EAAA,SAAAwiB,SAAAA,CAAGlkB,IAAI,EAAA;cAAA,OAAK6K,IAAC,CAAAyF,CAAA,CAACtQ,IAAI,CAACG,KAAK,EAAEH,IAAI,CAACG,KAAK,CAAA,CAAA;AAAA,aAAA;AAC/C,YAAA,YAAU,EAAC,OAAA;aACH0K,IAAY,CAAA9G,YAAA,CAAA,UAAA,CAAA,EAAA;YACnBiB,QAAM,EAAE6F,IAAQ,CAAA7F,QAAA;AAChBmf,YAAAA,OAAK;qBAAEtZ,IAAQ,CAAA5F,SAAA,GAAA,IAAA,CAAA;AAAA,aAAA,CAAA;YACfmf,MAAI,EAAEvZ,IAAU,CAAA3F,UAAAA;;;;;;;;;;;;AC4BnB0J,IAAAA,iBAAc,GAAI5E,eAAe,CAAC;AACtCC,EAAAA,IAAI,EAAE,oCAAoC;AAC1CC,EAAAA,UAAU,EAAE;AACVob,IAAAA,cAAc,EAAdA,MAAc;AACduD,IAAAA,WAAW,EAAXA,WAAW;AACXC,IAAAA,MAAM,EAANA,MAAM;AACN1e,IAAAA,MAAM,EAANA,MAAAA;GACD;AACDlG,EAAAA,KAAK,EAAAI,cAAA,CAAA,EAAA,EACA+F,aAAa,EAAkB,CACnC;EACDC,KAAK,EAAA,SAAAA,KAACpG,CAAAA,KAAoC,EAAA;AACxC,IAAA,OAAOK,iBAAiB,CAACokB,4BAA4B,CAACzkB,KAAK,CAAC,CAAC,CAAA;AAC/D,GAAA;AACD,CAAA,EAAC;AAIK,IAAMsG,OAAK,GAAmC;AACnDC,EAAAA,QAAQ,EAAEmE,iBAAe;AACzBlE,EAAAA,MAAM,EAAEC,QAAQ,CAAC,EAAE,EAAE0M,GAAG,CAACuR,kBAAkB,EAAEjE,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAA;;;;;;;;sBC3EzE5Z,WAiCiB,CAAAmb,0BAAA,EAjCjBjb,UACU,CAgCOJ,IAhCO,CAAAhF,cAAA,EAAA;IACrBlE,MAAM,EAAEkJ,IAAM,CAAAlJ,MAAA;IACdsD,SAAS,EAAE4F,IAAS,CAAA5F,SAAA;IACpBxB,cAAc,EAAEoH,IAAc,CAAApH,cAAAA;;uBAE/B,YAAA;AAAA,MAAA,OAEW,CAFXuK,WAAA,CAEWhD,oBAFXC,UAEW,CAAA;AAFD,QAAA,KAAA,EAAKJ,IAAO,CAAAjL,OAAA,CAACmG,EAAG,GAAA,QAAA;SAAoB8E,IAAY,CAAA9G,YAAA,CAAA,SAAA,CAAA,CAAA,EAAA;2BAAa,YAAA;AAAA,UAAA,OAErE,iCADA8G,IAAY,CAAAjF,aAAA,CAAA,EAAA,CAAA,CAAA;;;uBAEdoI,WAAA,CAuBe+a,0BAvBf9d,UAuBe,CAAA;AAtBZlF,QAAAA,EAAE,EAAE8E,IAAO,CAAAjL,OAAA,CAACmG,EAAC,GAAA,QAAA;AACb,QAAA,OAAA,EAAO8E,IAAA,CAAAlJ,MAAM,CAAC/B,OAAO,CAACE,KAAK;AAC3BsU,QAAAA,QAAQ,EAAA,CAAGvJ,IAAO,CAAAjL,OAAA,CAAC4Q,OAAO;AAC1BwT,QAAAA,SAAS,EAAEnZ,IAAc,CAAApH,cAAA,CAACkgB,KAAK;AAC/BjG,QAAAA,WAAW,EAAE7S,IAAc,CAAApH,cAAA,CAACia,WAAW;AACvCuG,QAAAA,IAAI,EAAEpZ,IAAO,CAAAjL,OAAA,CAAC8F,WAAW;AACzB,QAAA,iBAAe,EAAEmF,IAAc,CAAAvF,cAAA,EAAA;AAC/B1B,QAAAA,QAAQ,EAAEiH,IAAO,CAAAjL,OAAA,CAACgE,QAAQ;AAC1B,QAAA,gBAAc,EAAEiH,IAAO,CAAAjL,OAAA,CAACyF,MAAAA;SACjBwF,IAAY,CAAA9G,YAAA,CAAA,eAAA,CAAA,EAAA;AACnB,QAAA,aAAW,EAAE8G,IAAO,CAAAjL,OAAA,CAAC2H,IAAI;QACzBvC,QAAM,EAAE6F,IAAQ,CAAA7F,QAAA;AAChBmf,QAAAA,OAAK;iBAAEtZ,IAAQ,CAAA5F,SAAA,GAAA,IAAA,CAAA;AAAA,SAAA,CAAA;QACfmf,MAAI,EAAEvZ,IAAU,CAAA3F,UAAAA;;2BAGf,YAAA;UAAA,OAA2B,EAD7B4F,SAAA,CAAA,IAAA,CAAA,EAAA4C,kBAAA,CAMUW,QALI,EAAA,IAAA,EAAAC,UAAA,CAAAzD,IAAA,CAAAjL,OAAO,CAAC8B,OAAO,YAApBsgB,CAAA,EAAA;YADT,OAAAlX,SAAA,EAAA,EAAAC,WAAA,CAMUie,oBANV/d,UAEU,CAIAJ,iBAJY,YAAApI,MAAA,CAAYuf,CAAC,CAAC3e,KAAK,EAAA,GAAA,CAAA,CAAA,EAAA;cACtCkL,GAAG,EAAEyT,CAAC,CAAC3e,KAAK;cACZlD,KAAK,EAAE6hB,CAAC,CAAC7hB,KAAK;cACd,aAAW,EAAE6hB,CAAC,CAAC3e,KAAAA;;;;;;;;;;;;;AC0BlBuL,IAAAA,iBAAc,GAAI5E,eAAe,CAAC;AACtCC,EAAAA,IAAI,EAAE,2BAA2B;AACjCC,EAAAA,UAAU,EAAE;AACVob,IAAAA,cAAc,EAAdA,MAAc;AACd7K,IAAAA,UAAU,EAAVA,UAAAA;GACD;AACDvW,EAAAA,KAAK,EAAAI,cAAA,CAAA,EAAA,EACA+F,aAAa,EAAkB,CACnC;EACDC,KAAK,EAAA,SAAAA,KAACpG,CAAAA,KAAoC,EAAA;AACxC,IAAA,IAAM+kB,eAAgB,GAAErkB,GAAG,CAAC,KAAK,CAAC,CAAA;AAElC,IAAA,OAAAN,cAAA,CAAAA,cAAA,CAAA,EAAA,EACKC,iBAAiB,CAClBihB,mBAAmB,CAACthB,KAAK,CAAC,EAC1B,UAACb,KAAK,EAAA;MAAA,OAAKA,KAAM,IAAGH,SAAS,CAAA;AAAA,KAAA,EAC7B,GAAE,CACH,CAAA,EAAA,EAAA,EAAA;AACD+lB,MAAAA,eAAe,EAAfA,eAAAA;AAAe,KAAA,CAAA,CAAA;AAEnB,GAAA;AACD,CAAA,EAAC;AAIK,IAAMze,OAAK,GAAmC;AACnDC,EAAAA,QAAQ,EAAEmE,iBAAe;AACzBlE,EAAAA,MAAM,EAAEC,QAAQ,CAAC,CAAC,EAAE0M,GAAG,CAAC6Q,eAAe,EAAEgB,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAA;;;;;;sBCnF9Dne,WAkCiB,CAAAmb,0BAAA,EAlCjBjb,UACU,CAiCOJ,IAjCO,CAAAhF,cAAA,EAAA;IACrBlE,MAAM,EAAEkJ,IAAM,CAAAlJ,MAAA;IACdsD,SAAS,EAAE4F,IAAS,CAAA5F,SAAA;IACpBxB,cAAc,EAAEoH,IAAc,CAAApH,cAAAA;;uBAE/B,YAAA;AAAA,MAAA,OA2BC,CA3BDuK,WAAA,CA2BC4Q,yBA3BD3T,UA2BC,CAAA;AA1BEQ,QAAAA,IAAI,EAAEZ,IAAc,CAAAoe,eAAA,GAAA,MAAA,GAAA,UAAA;AACpB,QAAA,aAAW,EAAEpe,IAAc,CAAAoe,eAAA,GAAA,SAAA,GAAA,aAAA;QAC3B,gBAAY,EAAA9S,MAAA,CAAA,CAAA,CAAA,KAAAA,MAAA,CAAA,CAAA,CAAA,GAAA,YAAA;AAAA,UAAA,OAAStL,IAAgB,CAAAoe,eAAA,GAAA,CAAGpe,IAAe,CAAAoe,eAAA,CAAA;AAAA,SAAA,CAAA;AACvDljB,QAAAA,EAAE,EAAE8E,IAAO,CAAAjL,OAAA,CAACmG,EAAC,GAAA,QAAA;AACb,QAAA,OAAA,EAAO8E,IAAA,CAAAlJ,MAAM,CAAC/B,OAAO,CAACE,KAAK;AAC3BsU,QAAAA,QAAQ,EAAA,CAAGvJ,IAAO,CAAAjL,OAAA,CAAC4Q,OAAO;AAC1BwT,QAAAA,SAAS,EAAEnZ,IAAc,CAAApH,cAAA,CAACkgB,KAAK;AAC/BjG,QAAAA,WAAW,EAAE7S,IAAc,CAAApH,cAAA,CAACia,WAAW;QACvCvd,KAAK,EAAE0K,IAAa,CAAAjF,aAAA;AACpBqe,QAAAA,IAAI,EAAEpZ,IAAO,CAAAjL,OAAA,CAAC8F,WAAW;AACzB,QAAA,iBAAe,EAAEmF,IAAc,CAAAvF,cAAA,EAAA;AAC/B1B,QAAAA,QAAQ,EAAEiH,IAAO,CAAAjL,OAAA,CAACgE,QAAQ;AAC1B,QAAA,gBAAc,EAAEiH,IAAO,CAAAjL,OAAA,CAACyF,MAAM;AAC9B,QAAA,aAAW,EAAEwF,IAAO,CAAAjL,OAAA,CAAC2H,IAAI;AACzB6e,QAAAA,SAAS,EAACvb,IAAA,CAAApH,cAAA,CAAAgN,QAAA,GAAA5F,IAAA,CAAAjL,OAAA,CAAAwH,MAAA,CAAAif,SAAA,GAAAnjB,SAAA;QAGVmS,IAAI,EAACxK,IAAA,CAAApH,cAAA,CAAAf,IAAA,IAAAmI,IAAA,CAAAjL,OAAA,CAAAwH,MAAA,CAAAif,SAAA,KAAAnjB,SAAA,GAAA2H,IAAA,CAAAjL,OAAA,CAAAwH,MAAA,CAAAif,SAAA,GAAAnjB,SAAAA;SAKE2H,IAAY,CAAA9G,YAAA,CAAA,cAAA,CAAA,EAAA;QACnB,qBAAkB,EAAE8G,IAAQ,CAAA7F,QAAA;AAC5Bmf,QAAAA,OAAK;iBAAEtZ,IAAQ,CAAA5F,SAAA,GAAA,IAAA,CAAA;AAAA,SAAA,CAAA;QACfmf,MAAI,EAAEvZ,IAAU,CAAA3F,UAAAA;;;;;;;;;ACuBjB0J,IAAAA,iBAAc,GAAI5E,eAAe,CAAC;AACtCC,EAAAA,IAAI,EAAE,8BAA8B;AACpCC,EAAAA,UAAU,EAAE;AACVob,IAAAA,cAAc,EAAdA,MAAc;AACduD,IAAAA,WAAW,EAAXA,WAAW;AACXC,IAAAA,MAAM,EAANA,MAAM;AACN1e,IAAAA,MAAM,EAANA,MAAAA;GACD;AACDlG,EAAAA,KAAK,EAAAI,cAAA,CAAA,EAAA,EACA+F,aAAa,EAAkB,CACnC;EACDC,KAAK,EAAA,SAAAA,KAACpG,CAAAA,KAAoC,EAAA;AACxC,IAAA,OAAOK,iBAAiB,CAAC2iB,uBAAuB,CAAChjB,KAAK,CAAC,CAAC,CAAA;AAC1D,GAAA;AACD,CAAA,EAAC;AAIK,IAAMsG,OAAK,GAAmC;AACnDC,EAAAA,QAAQ,EAAEmE,iBAAe;AACzBlE,EAAAA,MAAM,EAAEC,QAAQ,CAAC,EAAE,EAAE0M,GAAG,CAAC8P,aAAa,EAAExC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAA;;;;;;;;sBC3EpE5Z,WAiCiB,CAAAmb,0BAAA,EAjCjBjb,UACU,CAgCOJ,IAhCO,CAAAhF,cAAA,EAAA;IACrBlE,MAAM,EAAEkJ,IAAM,CAAAlJ,MAAA;IACdsD,SAAS,EAAE4F,IAAS,CAAA5F,SAAA;IACpBxB,cAAc,EAAEoH,IAAc,CAAApH,cAAAA;;uBAE/B,YAAA;AAAA,MAAA,OAEW,CAFXuK,WAAA,CAEWhD,oBAFXC,UAEW,CAAA;AAFD,QAAA,KAAA,EAAKJ,IAAO,CAAAjL,OAAA,CAACmG,EAAG,GAAA,QAAA;SAAoB8E,IAAY,CAAA9G,YAAA,CAAA,SAAA,CAAA,CAAA,EAAA;2BAAa,YAAA;AAAA,UAAA,OAErE,iCADA8G,IAAY,CAAAjF,aAAA,CAAA,EAAA,CAAA,CAAA;;;uBAEdoI,WAAA,CAuBe+a,0BAvBf9d,UAuBe,CAAA;AAtBZlF,QAAAA,EAAE,EAAE8E,IAAO,CAAAjL,OAAA,CAACmG,EAAC,GAAA,QAAA;AACb,QAAA,OAAA,EAAO8E,IAAA,CAAAlJ,MAAM,CAAC/B,OAAO,CAACE,KAAK;AAC3BsU,QAAAA,QAAQ,EAAA,CAAGvJ,IAAO,CAAAjL,OAAA,CAAC4Q,OAAO;AAC1BwT,QAAAA,SAAS,EAAEnZ,IAAc,CAAApH,cAAA,CAACkgB,KAAK;AAC/BjG,QAAAA,WAAW,EAAE7S,IAAc,CAAApH,cAAA,CAACia,WAAW;AACvCuG,QAAAA,IAAI,EAAEpZ,IAAO,CAAAjL,OAAA,CAAC8F,WAAW;AACzB,QAAA,iBAAe,EAAEmF,IAAc,CAAAvF,cAAA,EAAA;AAC/B1B,QAAAA,QAAQ,EAAEiH,IAAO,CAAAjL,OAAA,CAACgE,QAAQ;AAC1B,QAAA,gBAAc,EAAEiH,IAAO,CAAAjL,OAAA,CAACyF,MAAM;AAC9B,QAAA,aAAW,EAAEwF,IAAO,CAAAjL,OAAA,CAAC2H,IAAAA;SACdsD,IAAY,CAAA9G,YAAA,CAAA,eAAA,CAAA,EAAA;QACnBiB,QAAM,EAAE6F,IAAQ,CAAA7F,QAAA;AAChBmf,QAAAA,OAAK;iBAAEtZ,IAAQ,CAAA5F,SAAA,GAAA,IAAA,CAAA;AAAA,SAAA,CAAA;QACfmf,MAAI,EAAEvZ,IAAU,CAAA3F,UAAAA;;2BAGf,YAAA;UAAA,OAA2B,EAD7B4F,SAAA,CAAA,IAAA,CAAA,EAAA4C,kBAAA,CAMUW,QALI,EAAA,IAAA,EAAAC,UAAA,CAAAzD,IAAA,CAAAjL,OAAO,CAAC8B,OAAO,YAApBsgB,CAAA,EAAA;YADT,OAAAlX,SAAA,EAAA,EAAAC,WAAA,CAMUie,oBANV/d,UAEU,CAIAJ,iBAJY,YAAApI,MAAA,CAAYuf,CAAC,CAAC3e,KAAK,EAAA,GAAA,CAAA,CAAA,EAAA;cACtCkL,GAAG,EAAEyT,CAAC,CAAC3e,KAAK;cACZlD,KAAK,EAAE6hB,CAAC,CAAC7hB,KAAK;cACd,aAAW,EAAE6hB,CAAC,CAAC3e,KAAAA;;;;;;;;;;;;;ACiBlBuL,IAAAA,iBAAc,GAAI5E,eAAe,CAAC;AACtCC,EAAAA,IAAI,EAAE,yBAAyB;AAC/BC,EAAAA,UAAU,EAAE;AACVob,IAAAA,cAAc,EAAdA,MAAc;AACd6D,IAAAA,OAAO,EAAPA,OAAAA;GACD;AACDjlB,EAAAA,KAAK,EAAAI,cAAA,CAAA,EAAA,EACA+F,aAAa,EAAkB,CACnC;EACDC,KAAK,EAAA,SAAAA,KAACpG,CAAAA,KAAoC,EAAA;IACxC,OAAOK,iBAAiB,CAACihB,mBAAmB,CAACthB,KAAK,CAAC,EAAE,UAACb,KAAK,EAAK;MAC9D,OAAOoE,MAAM,CAACpE,KAAK,CAAC,CAAA;AACtB,KAAC,CAAC,CAAA;AACJ,GAAA;AACD,CAAA,EAAC;AAIK,IAAMmH,OAAK,GAAmC;AACnDC,EAAAA,QAAQ,EAAEmE,iBAAe;AACzBlE,EAAAA,MAAM,EAAEC,QAAQ,CAAC,CAAC,EAAEye,cAAc,CAAA;;;;;;sBCnElCre,WA2BiB,CAAAmb,0BAAA,EA3BjBjb,UACU,CA0BOJ,IA1BO,CAAAhF,cAAA,EAAA;IACrBlE,MAAM,EAAEkJ,IAAM,CAAAlJ,MAAA;IACdsD,SAAS,EAAE4F,IAAS,CAAA5F,SAAA;IACpBxB,cAAc,EAAEoH,IAAc,CAAApH,cAAAA;;uBAE/B,YAAA;AAAA,MAAA,OAoBC,CApBDuK,WAAA,CAoBCqb,qBApBDpe,UAoBC,CAAA;QAnBEsc,IAAI,EAAE1c,IAAA,CAAAjL,OAAO,CAACwH,MAAM,CAACkiB,UAAW,IAAA,CAAA;AAChCC,QAAAA,GAAG,EAAE1e,IAAA,CAAAjL,OAAO,CAACwH,MAAM,CAACoiB,OAAO;AAC3BC,QAAAA,GAAG,EAAE5e,IAAA,CAAAjL,OAAO,CAACwH,MAAM,CAACsiB,OAAO;AAC3B,QAAA,aAAW,EAAE,IAAI;AACjB3jB,QAAAA,EAAE,EAAE8E,IAAO,CAAAjL,OAAA,CAACmG,EAAC,GAAA,QAAA;AACb,QAAA,OAAA,EAAO8E,IAAA,CAAAlJ,MAAM,CAAC/B,OAAO,CAACE,KAAK;AAC3BsU,QAAAA,QAAQ,EAAA,CAAGvJ,IAAO,CAAAjL,OAAA,CAAC4Q,OAAO;AAC1BwT,QAAAA,SAAS,EAAEnZ,IAAc,CAAApH,cAAA,CAACkgB,KAAK;AAC/BjG,QAAAA,WAAW,EAAE7S,IAAc,CAAApH,cAAA,CAACia,WAAW;QACvCvd,KAAK,EAAE0K,IAAa,CAAAjF,aAAA;AACpBqe,QAAAA,IAAI,EAAEpZ,IAAO,CAAAjL,OAAA,CAAC8F,WAAW;AACzB,QAAA,iBAAe,EAAEmF,IAAc,CAAAvF,cAAA,EAAA;AAC/B1B,QAAAA,QAAQ,EAAEiH,IAAO,CAAAjL,OAAA,CAACgE,QAAQ;AAC1B,QAAA,gBAAc,EAAEiH,IAAO,CAAAjL,OAAA,CAACyF,MAAM;AAC9B,QAAA,aAAW,EAAEwF,IAAO,CAAAjL,OAAA,CAAC2H,IAAAA;SACdsD,IAAY,CAAA9G,YAAA,CAAA,UAAA,CAAA,EAAA;QACnB,qBAAkB,EAAE8G,IAAQ,CAAA7F,QAAA;AAC5Bmf,QAAAA,OAAK;iBAAEtZ,IAAQ,CAAA5F,SAAA,GAAA,IAAA,CAAA;AAAA,SAAA,CAAA;QACfmf,MAAI,EAAEvZ,IAAU,CAAA3F,UAAAA;;;;;;;;;ACgEjB0J,IAAAA,iBAAc,GAAI5E,eAAe,CAAC;AACtCC,EAAAA,IAAI,EAAE,yBAAyB;AAC/BC,EAAAA,UAAU,EAAE;AACVob,IAAAA,cAAc,EAAdA,MAAc;AACd5K,IAAAA,MAAM,EAANA,MAAM;AACND,IAAAA,UAAU,EAAVA,UAAU;AACV8K,IAAAA,SAAS,EAATA,SAAAA;GACD;AACD5K,EAAAA,UAAU,EAAE;AACVX,IAAAA,iBAAiB,EAAjBA,iBAAAA;GACD;AACD9V,EAAAA,KAAK,EAAAI,cAAA,CAAA,EAAA,EACA+F,aAAa,EAAkB,CACnC;EACDC,KAAK,EAAA,SAAAA,KAACpG,CAAAA,KAAoC,EAAA;IACxC,OAAOK,iBAAiB,CACtBihB,mBAAmB,CAACthB,KAAK,CAAC,EAC1B,UAACb,KAAK,EAAA;MAAA,OAAKA,KAAM,IAAGH,SAAS,CAAA;AAAA,KAAA,EAC7B,GAAE,CACH,CAAA;GACF;AACDE,EAAAA,QAAQ,EAAE;IACRumB,WAAW,EAAA,SAAAA,cAAA;AAAA,MAAA,IAAAjH,qBAAA,CAAA;AACT,MAAA,IAAMiH,WAAY,GAAAjH,CAAAA,qBAAA,GAAE,IAAI,CAAC9iB,OAAO,CAAC2D,QAAQ,CAAC7B,OAAO,MAAAghB,IAAAA,IAAAA,qBAAA,KAA7BA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,qBAAA,CAA+BkH,UAAU,CAAA;AAE7D,MAAA,IACED,WAAY,KAAIzmB,SAAQ,IACxB,CAACye,OAAO,CAACgI,WAAW,KACpB,CAACpI,KAAK,CAACoI,WAAW,EAAEE,QAAQ,CAAA,EAC5B;AAEA,QAAA,OAAO3mB,SAAS,CAAA;AAClB,OAAA;AACA,MAAA,OAAOymB,WAAW,CAAA;AACpB,KAAA;AACD,GAAA;AACF,CAAA,EAAC;AAIK,IAAMnf,OAAK,GAAmC;AACnDC,EAAAA,QAAQ,EAAEmE,iBAAe;AACzBlE,EAAAA,MAAM,EAAEC,QAAQ,CAAC,CAAC,EAAEud,eAAe,CAAA;;;;;;;;;sBCnInCnd,WAiEiB,CAAAmb,0BAAA,EAjEjBjb,UACU,CAgEOJ,IAhEO,CAAAhF,cAAA,EAAA;IACrBlE,MAAM,EAAEkJ,IAAM,CAAAlJ,MAAA;IACdsD,SAAS,EAAE4F,IAAS,CAAA5F,SAAA;IACpBxB,cAAc,EAAEoH,IAAc,CAAApH,cAAAA;;uBAE/B,YAAA;AAAA,MAAA,OA0DS,CA1DTuK,WA0DS,CAAAyQ,kBAAA,EAAA,IAAA,EAAA;QAzDP,SAAA3Q,EAAAA,OAAA,CAAA,UAAAC,IAAA,EAAA;AAAA,UAAA,IADiB2Q,UAAW,GAAA3Q,IAAA,CAAX2Q,UAAW,CAAA;AAAA,UAAA,OAAA,CAEpB7T,IAAA,CAAA8e,WAAY,KAAIzmB,SAAS,GADjCyb,cAAA,EAAA7T,SAAA,EAAA,EAAAC,WAAA,CA6BCob,uBA7BDlb,UA6BC,CAAA;;AA1BElF,YAAAA,EAAE,EAAE8E,IAAO,CAAAjL,OAAA,CAACmG,EAAC,GAAA,QAAA;AACb,YAAA,OAAA,EAAO8E,IAAA,CAAAlJ,MAAM,CAAC/B,OAAO,CAACE,KAAK;AAC3BsU,YAAAA,QAAQ,EAAA,CAAGvJ,IAAO,CAAAjL,OAAA,CAAC4Q,OAAO;AAC1BwT,YAAAA,SAAS,EAAEnZ,IAAc,CAAApH,cAAA,CAACkgB,KAAK;AAC/BjG,YAAAA,WAAW,EAAE7S,IAAc,CAAApH,cAAA,CAACia,WAAW;YACvCvd,KAAK,EAAE0K,IAAa,CAAAjF,aAAA;AACpBqe,YAAAA,IAAI,EAAEpZ,IAAO,CAAAjL,OAAA,CAAC8F,WAAW;AACzB,YAAA,iBAAe,EAAEmF,IAAc,CAAAvF,cAAA,EAAA;AAC/B1B,YAAAA,QAAQ,EAAEiH,IAAO,CAAAjL,OAAA,CAACgE,QAAQ;AAC1B,YAAA,gBAAc,EAAEiH,IAAO,CAAAjL,OAAA,CAACyF,MAAM;AAC9B+gB,YAAAA,SAAS,EAACvb,IAAA,CAAApH,cAAA,CAAAgN,QAAA,GAAA5F,IAAA,CAAAjL,OAAA,CAAAwH,MAAA,CAAAif,SAAA,GAAAnjB,SAAA;AAGVojB,YAAAA,OAAO,EAACzb,IAAA,CAAAjL,OAAA,CAAAwH,MAAA,CAAAif,SAAA,KAAAnjB,SAAA,GAAA2H,IAAA,CAAAjL,OAAA,CAAAwH,MAAA,CAAAif,SAAA,GAAAnjB,SAAA;AAKR2b,YAAAA,SAAS,EAAEH,UAAU;AACrB,YAAA,aAAW,EAAE7T,IAAO,CAAAjL,OAAA,CAAC2H,IAAI;YACzBqa,KAAK,EAAE/W,IAAW,CAAA8e,WAAA;AACnB,YAAA,cAAW,EAAX,EAAA;aACQ9e,IAAY,CAAA9G,YAAA,CAAA,YAAA,CAAA,EAAA;YACnB,qBAAkB,EAAE8G,IAAQ,CAAA7F,QAAA;AAC5Bmf,YAAAA,OAAK;qBAAEtZ,IAAQ,CAAA5F,SAAA,GAAA,IAAA,CAAA;AAAA,aAAA,CAAA;YACfmf,MAAI,EAAEvZ,IAAU,CAAA3F,UAAAA;0RAEnB4F,SAAA,EAAA,EAAAC,WAAA,CA0BC6T,yBA1BD3T,UA0BC,CAAA;;AAxBElF,YAAAA,EAAE,EAAE8E,IAAO,CAAAjL,OAAA,CAACmG,EAAC,GAAA,QAAA;AACb,YAAA,OAAA,EAAO8E,IAAA,CAAAlJ,MAAM,CAAC/B,OAAO,CAACE,KAAK;AAC3BsU,YAAAA,QAAQ,EAAA,CAAGvJ,IAAO,CAAAjL,OAAA,CAAC4Q,OAAO;AAC1BwT,YAAAA,SAAS,EAAEnZ,IAAc,CAAApH,cAAA,CAACkgB,KAAK;AAC/BjG,YAAAA,WAAW,EAAE7S,IAAc,CAAApH,cAAA,CAACia,WAAW;YACvCvd,KAAK,EAAE0K,IAAa,CAAAjF,aAAA;AACpBqe,YAAAA,IAAI,EAAEpZ,IAAO,CAAAjL,OAAA,CAAC8F,WAAW;AACzB,YAAA,iBAAe,EAAEmF,IAAc,CAAAvF,cAAA,EAAA;AAC/B1B,YAAAA,QAAQ,EAAEiH,IAAO,CAAAjL,OAAA,CAACgE,QAAQ;AAC1B,YAAA,gBAAc,EAAEiH,IAAO,CAAAjL,OAAA,CAACyF,MAAM;AAC9B,YAAA,aAAW,EAAEwF,IAAO,CAAAjL,OAAA,CAAC2H,IAAI;AACzB6e,YAAAA,SAAS,EAACvb,IAAA,CAAApH,cAAA,CAAAgN,QAAA,GAAA5F,IAAA,CAAAjL,OAAA,CAAAwH,MAAA,CAAAif,SAAA,GAAAnjB,SAAA;AAGVojB,YAAAA,OAAO,EAACzb,IAAA,CAAAjL,OAAA,CAAAwH,MAAA,CAAAif,SAAA,KAAAnjB,SAAA,GAAA2H,IAAA,CAAAjL,OAAA,CAAAwH,MAAA,CAAAif,SAAA,GAAAnjB,SAAA;AAKR2b,YAAAA,SAAS,EAAEH,UAAAA;aACJ7T,IAAY,CAAA9G,YAAA,CAAA,cAAA,CAAA,EAAA;YACnB,qBAAkB,EAAE8G,IAAQ,CAAA7F,QAAA;AAC5Bmf,YAAAA,OAAK;qBAAEtZ,IAAQ,CAAA5F,SAAA,GAAA,IAAA,CAAA;AAAA,aAAA,CAAA;YACfmf,MAAI,EAAEvZ,IAAU,CAAA3F,UAAAA;;;;;;;;;;;;ACbzB,IAAM4kB,wBAAuB,GAAI,SAA3BA,wBAAuBA,CAAKzmB,KAAc,EAAK;AACnD,EAAA,IAAI,OAAOA,UAAU,QAAQ,EAAE;AAC7B,IAAA,IAAM0mB,UAAW,GAAE1mB,KAAK,CAAC2mB,KAAK,CAAC,GAAG,CAAC,CAAA;AACnC,IAAA,IAAID,UAAU,CAAC9nB,WAAW,CAAC,EAAE;AAC3B8nB,MAAAA,UAAU,CAAChd,IAAI,CAAC,IAAI,CAAC,CAAA;AACvB,KAAA;AACA,IAAA,OAAOgd,UAAU,CAACxc,IAAI,CAAC,GAAG,CAAC,CAAA;AAC7B,GAAA;AACA,EAAA,OAAOlK,KAAK,CAAA;AACd,CAAC,CAAA;AAEKuL,IAAAA,iBAAc,GAAI5E,eAAe,CAAC;AACtCC,EAAAA,IAAI,EAAE,uBAAuB;AAC7BC,EAAAA,UAAU,EAAE;AACVob,IAAAA,cAAc,EAAdA,MAAc;AACd7K,IAAAA,UAAU,EAAVA,UAAAA;GACD;AACDvW,EAAAA,KAAK,EAAAI,cAAA,CAAA,EAAA,EACA+F,aAAa,EAAkB,CACnC;EACDC,KAAK,EAAA,SAAAA,KAACpG,CAAAA,KAAoC,EAAA;AACxC,IAAA,IAAMM,aAAa,SAAbA,WAAcnB,KAAU,EAAA;AAAA,MAAA,OAC5BymB,wBAAwB,CAACzmB,KAAK,CAAE,IAAGH,SAAS,CAAA;AAAA,KAAA,CAAA;IAC9C,IAAMtD,OAAQ,GAAE2E,iBAAiB,CAACihB,mBAAmB,CAACthB,KAAK,CAAC,EAAEM,UAAU,CAAC,CAAA;AACzE,IAAA,OAAAF,cAAA,CAAAA,cAAA,CAAA,EAAA,EAAY1E,OAAO,CAAA,EAAA,EAAA,EAAA;AAAE4E,MAAAA,UAAS,EAATA,UAAAA;AAAS,KAAA,CAAA,CAAA;AAChC,GAAA;AACD,CAAA,EAAC;AAIK,IAAMgG,OAAK,GAAmC;AACnDC,EAAAA,QAAQ,EAAEmE,iBAAe;AACzBlE,EAAAA,MAAM,EAAEC,QAAQ,CAAC,CAAC,EAAEsf,aAAa,CAAA;;;;;;sBCjFjClf,WAyBiB,CAAAmb,0BAAA,EAzBjBjb,UACU,CAwBOJ,IAxBO,CAAAhF,cAAA,EAAA;IACrBlE,MAAM,EAAEkJ,IAAM,CAAAlJ,MAAA;IACdsD,SAAS,EAAE4F,IAAS,CAAA5F,SAAA;IACpBxB,cAAc,EAAEoH,IAAc,CAAApH,cAAAA;;uBAE/B,YAAA;AAAA,MAAA,OAkBc,CAlBduK,WAAA,CAkBc4Q,yBAlBd3T,UAkBc,CAAA;AAjBXlF,QAAAA,EAAE,EAAE8E,IAAO,CAAAjL,OAAA,CAACmG,EAAC,GAAA,QAAA;AACb,QAAA,OAAA,EAAO8E,IAAA,CAAAlJ,MAAM,CAAC/B,OAAO,CAACE,KAAK;AAC3BsU,QAAAA,QAAQ,EAAA,CAAGvJ,IAAO,CAAAjL,OAAA,CAAC4Q,OAAO;AAC1BwT,QAAAA,SAAS,EAAEnZ,IAAc,CAAApH,cAAA,CAACkgB,KAAK;AAC/BjG,QAAAA,WAAW,EAAE7S,IAAc,CAAApH,cAAA,CAACia,WAAW;QACvCvd,KAAK,EAAE0K,IAAa,CAAAjF,aAAA;AACpBqe,QAAAA,IAAI,EAAEpZ,IAAO,CAAAjL,OAAA,CAAC8F,WAAW;AACzB,QAAA,iBAAe,EAAEmF,IAAc,CAAAvF,cAAA,EAAA;AAC/B1B,QAAAA,QAAQ,EAAEiH,IAAO,CAAAjL,OAAA,CAACgE,QAAQ;AAC1B,QAAA,gBAAc,EAAEiH,IAAO,CAAAjL,OAAA,CAACyF,MAAAA;SACjBwF,IAAY,CAAA9G,YAAA,CAAA,cAAA,CAAA,EAAA;AACnB,QAAA,aAAW,EAAE8G,IAAO,CAAAjL,OAAA,CAAC2H,IAAI;QACzB,qBAAkB,EAAEsD,IAAQ,CAAA7F,QAAA;AAC5Bmf,QAAAA,OAAK;iBAAEtZ,IAAQ,CAAA5F,SAAA,GAAA,IAAA,CAAA;AAAA,SAAA,CAAA;QACfmf,MAAI,EAAEvZ,IAAU,CAAA3F,UAAA;AACjBuG,QAAAA,IAAI,EAAC,MAAA;;;;;;;;;ACiBEye,IAAAA,gBAAgB,GAAG,CAC9BC,OAAqC,EACrCC,OAA2B,EAC3BC,OAAiC,EACjCC,OAAwB,EACxBC,OAA4B,EAC5BC,OAAwB,EACxBC,OAA2B,EAC3BC,OAA+B,EAC/BC,OAA0B,EAC1BC,OAA6B,EAC7BC,OAAmC,EACnCC,OAA4B,EAC5BC,OAA8B,EAC9BC,OAA0B,EAC1BC,OAA0B;AAE1BC,OAAwB;;ACmBpBtc,IAAAA,iBAAc,GAAI5E,eAAe,CAAC;AACtCC,EAAAA,IAAI,EAAE,oCAAoC;AAC1CC,EAAAA,UAAU,EAAE;AACVob,IAAAA,cAAc,EAAdA,MAAc;AACdvC,IAAAA,OAAO,EAAPA,OAAO;AACPoI,IAAAA,aAAa,EAAbA,aAAa;AACbzQ,IAAAA,MAAM,EAANA,MAAAA;GACD;AACDC,EAAAA,UAAU,EAAE;AACVX,IAAAA,iBAAiB,EAAjBA,iBAAAA;GACD;AACD9V,EAAAA,KAAK,EAAAI,cAAA,CAAA,EAAA,EACA+F,aAAa,EAAkB,CACnC;EACDC,KAAK,EAAA,SAAAA,KAACpG,CAAAA,KAAoC,EAAA;AACxC,IAAA,IAAMoM,IAAIjK,aAAa,EAAE,CAAA;IAEzB,IAAMzG,OAAQ,GAAE2E,iBAAiB,CAC/B2iB,uBAAuB,CAAChjB,KAAK,CAAC,EAC9B,UAACb,KAAK,EAAA;AAAA,MAAA,OAAMA,KAAM,KAAI,OAAOA,KAAM,GAAEH,SAAS,CAAA;KAAC,EAC/C,GAAE,CACH,CAAA;AACD,IAAA,OAAAoB,cAAA,CAAAA,cAAA,CAAA,EAAA,EAAY1E,OAAO,CAAA,EAAA,EAAA,EAAA;AAAE0Q,MAAAA,GAAAA,CAAAA;;AACvB,GAAA;AACD,CAAA,EAAC;AAIK,IAAM9F,OAAK,GAAmC;AACnDC,EAAAA,QAAQ,EAAEmE,iBAAe;AACzBlE,EAAAA,MAAM,EAAEC,QAAQ,CAAC,EAAE,EAAEwc,aAAa,CAAA;;;;;;;;;sBCzGlCpc,WAsDiB,CAAAmb,0BAAA,EAtDjBjb,UACU,CAqDOJ,IArDO,CAAAhF,cAAA,EAAA;IACrBlE,MAAM,EAAEkJ,IAAM,CAAAlJ,MAAA;IACdsD,SAAS,EAAE4F,IAAS,CAAA5F,SAAA;IACpBxB,cAAc,EAAEoH,IAAc,CAAApH,cAAAA;;uBAE/B,YAAA;AAAA,MAAA,OA+CS,CA/CTuK,WA+CS,CAAAyQ,kBAAA,EAAA,IAAA,EAAA;QA9CP,SAAA3Q,EAAAA,OAAA,CAAA,UAAAC,IAAA,EAAA;AAAA,UAAA,IADiB2Q,UAAW,GAAA3Q,IAAA,CAAX2Q,UAAW,CAAA;UAAA,OAAA,CAEpB7T,IAAA,CAAApH,cAAc,CAAC2nB,YAAW,KAAA,KAAA,GADlCzM,cAAA,EAAA7T,SAAA,EAAA,EAAAC,WAAA,CAsBCgZ,qBAtBD9Y,UAsBC,CAAA;;AAnBElF,YAAAA,EAAE,EAAE8E,IAAO,CAAAjL,OAAA,CAACmG,EAAC,GAAA,QAAA;AACb,YAAA,OAAA,EAAO8E,IAAA,CAAAlJ,MAAM,CAAC/B,OAAO,CAACE,KAAK;AAC3BsU,YAAAA,QAAQ,EAAA,CAAGvJ,IAAO,CAAAjL,OAAA,CAAC4Q,OAAO;AAC1BwT,YAAAA,SAAS,EAAEnZ,IAAc,CAAApH,cAAA,CAACkgB,KAAK;AAC/BjG,YAAAA,WAAW,EAAE7S,IAAc,CAAApH,cAAA,CAACia,WAAW;YACvCvd,KAAK,EAAE0K,IAAa,CAAAjF,aAAA;AACpBqe,YAAAA,IAAI,EAAEpZ,IAAO,CAAAjL,OAAA,CAAC8F,WAAW;AACzB,YAAA,iBAAe,EAAEmF,IAAc,CAAAvF,cAAA,EAAA;AAC/B1B,YAAAA,QAAQ,EAAEiH,IAAO,CAAAjL,OAAA,CAACgE,QAAQ;AAC1B,YAAA,gBAAc,EAAEiH,IAAO,CAAAjL,OAAA,CAACyF,MAAM;AAC9BwZ,YAAAA,SAAS,EAAEH,UAAU;AACrB,YAAA,aAAW,EAAE7T,IAAO,CAAAjL,OAAA,CAAC2H,IAAI;AACzBqa,YAAAA,KAAK,EAAE/W,IAAO,CAAAjL,OAAA,CAAC8B,OAAO;YACtB,YAAU,EAAA,SAAAwiB,SAAAA,CAAGlkB,IAAI,EAAA;cAAA,OAAK6K,IAAC,CAAAyF,CAAA,CAACtQ,IAAI,CAACG,KAAK,EAAEH,IAAI,CAACG,KAAK,CAAA,CAAA;AAAA,aAAA;AAC/C,YAAA,YAAU,EAAC,OAAA;aACH0K,IAAY,CAAA9G,YAAA,CAAA,UAAA,CAAA,EAAA;YACnBiB,QAAM,EAAE6F,IAAQ,CAAA7F,QAAA;AAChBmf,YAAAA,OAAK;qBAAEtZ,IAAQ,CAAA5F,SAAA,GAAA,IAAA,CAAA;AAAA,aAAA,CAAA;YACfmf,MAAI,EAAEvZ,IAAU,CAAA3F,UAAAA;oQAEnByZ,cAAA,EAAA7T,SAAA,EAAA,EAAAC,WAAA,CAsBCsgB,2BAtBDpgB,UAsBC,CAAA;;AAnBElF,YAAAA,EAAE,EAAE8E,IAAO,CAAAjL,OAAA,CAACmG,EAAC,GAAA,QAAA;AACb,YAAA,OAAA,EAAO8E,IAAA,CAAAlJ,MAAM,CAAC/B,OAAO,CAACE,KAAK;AAC3BsU,YAAAA,QAAQ,EAAA,CAAGvJ,IAAO,CAAAjL,OAAA,CAAC4Q,OAAO;AAC1BwT,YAAAA,SAAS,EAAEnZ,IAAc,CAAApH,cAAA,CAACkgB,KAAK;AAC/BjG,YAAAA,WAAW,EAAE7S,IAAc,CAAApH,cAAA,CAACia,WAAW;YACvCvd,KAAK,EAAE0K,IAAa,CAAAjF,aAAA;AACpBqe,YAAAA,IAAI,EAAEpZ,IAAO,CAAAjL,OAAA,CAAC8F,WAAW;AACzB,YAAA,iBAAe,EAAEmF,IAAc,CAAAvF,cAAA,EAAA;AAC/B1B,YAAAA,QAAQ,EAAEiH,IAAO,CAAAjL,OAAA,CAACgE,QAAQ;AAC1B,YAAA,gBAAc,EAAEiH,IAAO,CAAAjL,OAAA,CAACyF,MAAM;AAC9BwZ,YAAAA,SAAS,EAAEH,UAAU;AACrB,YAAA,aAAW,EAAE7T,IAAO,CAAAjL,OAAA,CAAC2H,IAAI;AACzBqa,YAAAA,KAAK,EAAE/W,IAAO,CAAAjL,OAAA,CAAC8B,OAAO;YACtB,YAAU,EAAA,SAAAwiB,SAAAA,CAAGlkB,IAAI,EAAA;cAAA,OAAK6K,IAAC,CAAAyF,CAAA,CAACtQ,IAAI,CAACG,KAAK,EAAEH,IAAI,CAACG,KAAK,CAAA,CAAA;AAAA,aAAA;AAC/C,YAAA,YAAU,EAAC,OAAA;aACH0K,IAAY,CAAA9G,YAAA,CAAA,gBAAA,CAAA,EAAA;YACnB,qBAAkB,EAAE8G,IAAQ,CAAA7F,QAAA;AAC5Bmf,YAAAA,OAAK;qBAAEtZ,IAAQ,CAAA5F,SAAA,GAAA,IAAA,CAAA;AAAA,aAAA,CAAA;YACfmf,MAAI,EAAEvZ,IAAU,CAAA3F,UAAAA;;;;;;;;;;;;ACwBnB0J,IAAAA,eAAc,GAAI5E,eAAe,CAAC;AACtCC,EAAAA,IAAI,EAAE,0CAA0C;AAChDC,EAAAA,UAAU,EAAE;AACVob,IAAAA,cAAc,EAAdA,MAAc;AACdvC,IAAAA,OAAO,EAAPA,OAAO;AACPoI,IAAAA,aAAa,EAAbA,aAAa;AACbzQ,IAAAA,MAAM,EAANA,MAAAA;GACD;AACDC,EAAAA,UAAU,EAAE;AACVX,IAAAA,iBAAiB,EAAjBA,iBAAAA;GACD;AACD9V,EAAAA,KAAK,EAAAI,cAAA,CAAA,EAAA,EACA+F,aAAa,EAAkB,CACnC;EACDC,KAAK,EAAA,SAAAA,KAACpG,CAAAA,KAAoC,EAAA;AACxC,IAAA,IAAMoM,IAAIjK,aAAa,EAAE,CAAA;IAEzB,IAAMzG,OAAQ,GAAE2E,iBAAiB,CAC/BokB,4BAA4B,CAACzkB,KAAK,CAAC,EACnC,UAACb,KAAK,EAAA;AAAA,MAAA,OAAMA,KAAM,KAAI,OAAOA,KAAM,GAAEH,SAAS,CAAA;KAAC,EAC/C,GAAE,CACH,CAAA;AACD,IAAA,OAAAoB,cAAA,CAAAA,cAAA,CAAA,EAAA,EAAY1E,OAAO,CAAA,EAAA,EAAA,EAAA;AAAE0Q,MAAAA,GAAAA,CAAAA;;AACvB,GAAA;AACD,CAAA,EAAC;AAIK,IAAM9F,KAAK,GAAmC;AACnDC,EAAAA,QAAQ,EAAEmE,eAAe;AACzBlE,EAAAA,MAAM,EAAEC,QAAQ,CAAC,EAAE,EAAEie,kBAAkB,CAAA;;;;;;;;;sBCzGvC7d,WAsDiB,CAAAmb,0BAAA,EAtDjBjb,UACU,CAqDOJ,IArDO,CAAAhF,cAAA,EAAA;IACrBlE,MAAM,EAAEkJ,IAAM,CAAAlJ,MAAA;IACdsD,SAAS,EAAE4F,IAAS,CAAA5F,SAAA;IACpBxB,cAAc,EAAEoH,IAAc,CAAApH,cAAAA;;uBAE/B,YAAA;AAAA,MAAA,OA+CS,CA/CTuK,WA+CS,CAAAyQ,kBAAA,EAAA,IAAA,EAAA;QA9CP,SAAA3Q,EAAAA,OAAA,CAAA,UAAAC,IAAA,EAAA;AAAA,UAAA,IADiB2Q,UAAW,GAAA3Q,IAAA,CAAX2Q,UAAW,CAAA;UAAA,OAAA,CAEpB7T,IAAA,CAAApH,cAAc,CAAC2nB,YAAW,KAAA,KAAA,GADlCzM,cAAA,EAAA7T,SAAA,EAAA,EAAAC,WAAA,CAsBCgZ,qBAtBD9Y,UAsBC,CAAA;;AAnBElF,YAAAA,EAAE,EAAE8E,IAAO,CAAAjL,OAAA,CAACmG,EAAC,GAAA,QAAA;AACb,YAAA,OAAA,EAAO8E,IAAA,CAAAlJ,MAAM,CAAC/B,OAAO,CAACE,KAAK;AAC3BsU,YAAAA,QAAQ,EAAA,CAAGvJ,IAAO,CAAAjL,OAAA,CAAC4Q,OAAO;AAC1BwT,YAAAA,SAAS,EAAEnZ,IAAc,CAAApH,cAAA,CAACkgB,KAAK;AAC/BjG,YAAAA,WAAW,EAAE7S,IAAc,CAAApH,cAAA,CAACia,WAAW;YACvCvd,KAAK,EAAE0K,IAAa,CAAAjF,aAAA;AACpBqe,YAAAA,IAAI,EAAEpZ,IAAO,CAAAjL,OAAA,CAAC8F,WAAW;AACzB,YAAA,iBAAe,EAAEmF,IAAc,CAAAvF,cAAA,EAAA;AAC/B1B,YAAAA,QAAQ,EAAEiH,IAAO,CAAAjL,OAAA,CAACgE,QAAQ;AAC1B,YAAA,gBAAc,EAAEiH,IAAO,CAAAjL,OAAA,CAACyF,MAAM;AAC9BwZ,YAAAA,SAAS,EAAEH,UAAU;AACrB,YAAA,aAAW,EAAE7T,IAAO,CAAAjL,OAAA,CAAC2H,IAAI;AACzBqa,YAAAA,KAAK,EAAE/W,IAAO,CAAAjL,OAAA,CAAC8B,OAAO;YACtB,YAAU,EAAA,SAAAwiB,SAAAA,CAAGlkB,IAAI,EAAA;cAAA,OAAK6K,IAAC,CAAAyF,CAAA,CAACtQ,IAAI,CAACG,KAAK,EAAEH,IAAI,CAACG,KAAK,CAAA,CAAA;AAAA,aAAA;AAC/C,YAAA,YAAU,EAAC,OAAA;aACH0K,IAAY,CAAA9G,YAAA,CAAA,UAAA,CAAA,EAAA;YACnBiB,QAAM,EAAE6F,IAAQ,CAAA7F,QAAA;AAChBmf,YAAAA,OAAK;qBAAEtZ,IAAQ,CAAA5F,SAAA,GAAA,IAAA,CAAA;AAAA,aAAA,CAAA;YACfmf,MAAI,EAAEvZ,IAAU,CAAA3F,UAAAA;oQAEnByZ,cAAA,EAAA7T,SAAA,EAAA,EAAAC,WAAA,CAsBCsgB,2BAtBDpgB,UAsBC,CAAA;;AAnBElF,YAAAA,EAAE,EAAE8E,IAAO,CAAAjL,OAAA,CAACmG,EAAC,GAAA,QAAA;AACb,YAAA,OAAA,EAAO8E,IAAA,CAAAlJ,MAAM,CAAC/B,OAAO,CAACE,KAAK;AAC3BsU,YAAAA,QAAQ,EAAA,CAAGvJ,IAAO,CAAAjL,OAAA,CAAC4Q,OAAO;AAC1BwT,YAAAA,SAAS,EAAEnZ,IAAc,CAAApH,cAAA,CAACkgB,KAAK;AAC/BjG,YAAAA,WAAW,EAAE7S,IAAc,CAAApH,cAAA,CAACia,WAAW;YACvCvd,KAAK,EAAE0K,IAAa,CAAAjF,aAAA;AACpBqe,YAAAA,IAAI,EAAEpZ,IAAO,CAAAjL,OAAA,CAAC8F,WAAW;AACzB,YAAA,iBAAe,EAAEmF,IAAc,CAAAvF,cAAA,EAAA;AAC/B1B,YAAAA,QAAQ,EAAEiH,IAAO,CAAAjL,OAAA,CAACgE,QAAQ;AAC1B,YAAA,gBAAc,EAAEiH,IAAO,CAAAjL,OAAA,CAACyF,MAAM;AAC9BwZ,YAAAA,SAAS,EAAEH,UAAU;AACrB,YAAA,aAAW,EAAE7T,IAAO,CAAAjL,OAAA,CAAC2H,IAAI;AACzBqa,YAAAA,KAAK,EAAE/W,IAAO,CAAAjL,OAAA,CAAC8B,OAAO;YACtB,YAAU,EAAA,SAAAwiB,SAAAA,CAAGlkB,IAAI,EAAA;cAAA,OAAK6K,IAAC,CAAAyF,CAAA,CAACtQ,IAAI,CAACG,KAAK,EAAEH,IAAI,CAACG,KAAK,CAAA,CAAA;AAAA,aAAA;AAC/C,YAAA,YAAU,EAAC,OAAA;aACH0K,IAAY,CAAA9G,YAAA,CAAA,gBAAA,CAAA,EAAA;YACnB,qBAAkB,EAAE8G,IAAQ,CAAA7F,QAAA;AAC5Bmf,YAAAA,OAAK;qBAAEtZ,IAAQ,CAAA5F,SAAA,GAAA,IAAA,CAAA;AAAA,aAAA,CAAA;YACfmf,MAAI,EAAEvZ,IAAU,CAAA3F,UAAAA;;;;;;;;;;;;IC9CZomB,iBAAiB,GAAG,CAC/BC,OAAoC,EACpCC,KAAyC;;ACDpC,IAAMC,gBAAgB,GAAA,EAAA,CAAAhpB,MAAA,CAAA6b,kBAAA,CACxBjT,mBAAmB,CAAAiT,EAAAA,kBAAA,CACnBhF,cAAc,GAAAgF,kBAAA,CACdwG,gBAAgB,CAAA,EAAAxG,kBAAA,CAChB4L,gBAAgB,CAAA5L,EAAAA,kBAAA,CAChBzF,eAAe,CACnB,EAAA;AAEY6S,IAAAA,wBAAwB,GAAAjpB,EAAAA,CAAAA,MAAA,CAAA6b,kBAAA,CAChCgN,iBAAiB,CAAAhN,EAAAA,kBAAA,CACjBmN,gBAAgB,CACpB;;;;"}